diff -Nru goldendict-1.0.2~git20130620/.gitignore goldendict-1.5.0~ppa131019/.gitignore --- goldendict-1.0.2~git20130620/.gitignore 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/.gitignore 2013-10-18 14:32:58.000000000 +0000 @@ -8,7 +8,9 @@ debug/ build/ release/ +tmp/ goldendict +winlibs/lib32-48/ Makefile Makefile.Debug @@ -30,3 +32,9 @@ .DS_Store Info.plist GoldenDict.xcodeproj/ + +# visual studio files +*.sdf +*.opensdf +*.suo +*.vcxproj.user diff -Nru goldendict-1.0.2~git20130620/.gitmodules goldendict-1.5.0~ppa131019/.gitmodules --- goldendict-1.0.2~git20130620/.gitmodules 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/.gitmodules 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,3 @@ +[submodule "winlibs/lib/msvc"] + path = winlibs/lib/msvc + url = git://github.com/Tvangeste/goldendict-winlibs-prebuilt.git diff -Nru goldendict-1.0.2~git20130620/CREDITS.txt goldendict-1.5.0~ppa131019/CREDITS.txt --- goldendict-1.0.2~git20130620/CREDITS.txt 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/CREDITS.txt 2013-10-18 14:32:58.000000000 +0000 @@ -19,9 +19,12 @@ Zdenko Podobný : Slovak translation Şükrü Yekta Karabulut : Turkish translation Amos Batto : Quechua, Aymara and Bolivian Spanish translations -Carlos A. Cortijo Bon: Spanish from Spain translation +Carlos A. Cortijo Bon : Spanish from Spain translation Victor Ibragimov : Tajik translation Maksim Tamkovič : Belarusian translation and transliteration VirtualTam : French translation Panho Ku : Korean translation +Тим Перце : Serbian translation +Cris van Minnen: Dutch translation Timon Wong : MDict (*.mdx/*.mdd) dictionary format +PICTT Turkmenistan: Turkmen translation diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.props goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.props --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.props 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.props 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + %(Filename).qm + false + $(QTDIR)\bin\lrelease.exe + %(LRELEASE) [AllOptions] [AdditionalOptions] [Inputs] + + + + $(BuildGenerateSourcesTargets);_QtTranslate + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.targets goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.targets --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.targets 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.targets 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + QtTranslate + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml + + + + + + + + + + + + + @(QtTranslate, '|') + + + + + + + + + + + True + %(QtTranslate.Identity) + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.xml goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.xml --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/lrelease.xml 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/lrelease.xml 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.props goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.props --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.props 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.props 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + %(Filename)%(Extension).$(Platform).$(Configuration).cpp + false + false + + + + false + + + + + $(QTDIR)\bin\moc.exe + + + + %(MOC) [AllOptions] [AdditionalOptions] [Inputs] + + + + $(BuildGenerateSourcesTargets);_QtMOCCompile + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.targets goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.targets --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.targets 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.targets 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,137 @@ + + + + + + + QtMOCCompile + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml + + + + + + + + + + + + + + + true + + + + + + @(BuddyClCompile->'%(AdditionalIncludeDirectories)') + @(BuddyClCompile->'%(PreprocessorDefinitions)') + @(BuddyClCompile->'%(UndefinePreprocessorDefinitions)') + + + + + @(QtMOCCompile, '|') + + + + + + + + + + + + + + + + + True + %(QtMOCCompile.Identity) + TurnOffAllWarnings + NotUsing + %(QtMOCCompile.AdditionalIncludeDirectories);%(QtMOCCompile.DefaultIncludeDirectories) + %(QtMOCCompile.DefaultPreprocessorDefinitions);%(QtMOCCompile.PreprocessorDefinitions) + %(QtMOCCompile.DefaultUndefinePreprocessorDefinitions);%(QtMOCCompile.UndefinePreprocessorDefinitions) + %(QtMOCCompile.ClCompileAssemblerListingLocation) + %(QtMOCCompile.ClCompileObjectFileName) + %(QtMOCCompile.ClCompileXMLDocumentationFileName) + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.xml goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.xml --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/moc.xml 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/moc.xml 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.props goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.props --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.props 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.props 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + + %(Filename)%(Extension).cpp + %(Filename) + + -1 + + true + false + $(QTDIR)\bin\rcc.exe + $(QTDIR)\bin\rcc.exe;$(MSBuildProjectFile) + + + + %(RCC) [AllOptions] [AdditionalOptions] [Inputs] + + + + $(BuildGenerateSourcesTargets);_QtRCCCompile + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.targets goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.targets --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.targets 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.targets 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,124 @@ + + + + + + + QtRCCCompile + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml + + + + + + + + + + + + + + + + + + + + @(QtRCCDeps);%(QtRCCCompile.AdditionalDependencies) + + + + + + + + + + + @(QtRCCCompile, '|') + + + + + + + + + + + True + %(QtRCCCompile.Identity) + TurnOffAllWarnings + NotUsing + %(QtRCCCompile.ClCompileAssemblerListingLocation) + %(QtRCCCompile.ClCompileObjectFileName) + %(QtRCCCompile.ClCompileXMLDocumentationFileName) + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.xml goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.xml --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/rcc.xml 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/rcc.xml 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.props goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.props --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.props 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.props 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + %(Filename)%(Extension).h + + false + $(QTDIR)\bin\uic.exe + %(UIC) [AllOptions] [AdditionalOptions] [Inputs] + + + + $(BuildGenerateSourcesTargets);_QtUICCompile + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.targets goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.targets --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.targets 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.targets 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + + + QtUICCompile + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml + + + + + + + + + + + + + @(QtUICCompile, '|') + + + + + + + + + + + True + %(QtUICCompile.Identity) + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.xml goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.xml --- goldendict-1.0.2~git20130620/MSBuild/QtExtensions/uic.xml 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/QtExtensions/uic.xml 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/custom.props goldendict-1.5.0~ppa131019/MSBuild/custom.props --- goldendict-1.0.2~git20130620/MSBuild/custom.props 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/custom.props 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,6 @@ + + + + diff -Nru goldendict-1.0.2~git20130620/MSBuild/custom.targets goldendict-1.5.0~ppa131019/MSBuild/custom.targets --- goldendict-1.0.2~git20130620/MSBuild/custom.targets 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/MSBuild/custom.targets 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,43 @@ + + + + + $(ProjectDir)version.txt + $(IntDir)version.txt + + + + + + + + + + $([System.IO.File]::ReadAllText($(VersionFile)).Trim()) + $([System.IO.File]::ReadAllText($(NewVersionFile)).Trim()) + + + + + + + + + + + + diff -Nru goldendict-1.0.2~git20130620/README.md goldendict-1.5.0~ppa131019/README.md --- goldendict-1.0.2~git20130620/README.md 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/README.md 2013-10-18 14:32:58.000000000 +0000 @@ -8,17 +8,17 @@ ### External Deps -* Make, GCC -* Qt framework 4.7.* or 4.8.* +* Make, GCC, Git +* Qt framework. Minumal required version is 4.5. But Qt 4.7 or 4.8 is recommended. * Qt Creator IDE is recommended for development * Various libraries on Linux (png, zlib, etc) * On Mac and Windows all the libraries are already included in the repository ### Installing External Deps on Ubuntu Linux - sudo apt-get install pkg-config build-essential qt4-qmake \ + sudo apt-get install git pkg-config build-essential qt4-qmake \ libvorbis-dev zlib1g-dev libhunspell-dev x11proto-record-dev \ - qt4-qmake libqt4-dev libxtst-dev liblzo2-dev libbz2-dev \ + libqt4-dev libqtwebkit-dev libxtst-dev liblzo2-dev libbz2-dev \ libao-dev libavutil-dev libavformat-dev ## How to build @@ -27,10 +27,11 @@ git clone git://github.com/goldendict/goldendict.git -And then invoke `qmake` and `make`: +And then invoke `qmake-qt4` and `make`: - cd goldendict && qmake && make + cd goldendict && qmake-qt4 && make +In case when qmake-qt4 does not exist, try using `qmake` but make sure it is indeed from the Qt 4 installation. Alternatively, you might want to load `goldendict.pro` file from within Qt Creator, especially on Windows. ### Building without internal audio player diff -Nru goldendict-1.0.2~git20130620/aard.cc goldendict-1.5.0~ppa131019/aard.cc --- goldendict-1.0.2~git20130620/aard.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/aard.cc 2013-10-18 14:32:58.000000000 +0000 @@ -7,7 +7,6 @@ #include "utf8.hh" #include "chunkedstorage.hh" #include "langcoder.hh" -#include "dprintf.hh" #include "fsencoding.hh" #include "decompress.hh" @@ -50,9 +49,7 @@ DEF_EX_STR( exWordIsTooLarge, "Enountered a word that is too large:", Dictionary::Ex ) DEF_EX_STR( exSuddenEndOfFile, "Sudden end of file", Dictionary::Ex ) -#ifdef _MSC_VER #pragma pack( push, 1 ) -#endif /// AAR file header struct AAR_header @@ -118,9 +115,7 @@ #endif ; -#ifdef _MSC_VER -#pragma pack( pop, 1 ) -#endif +#pragma pack( pop ) bool indexIsOldOrBad( string const & indexFile ) { @@ -370,6 +365,9 @@ text.replace( QRegExp( "<\\s*a\\s*href\\s*=\\s*[\\\"'](w:|s:){0,1}([^#](?!ttp://)[^\\\"']*)(.)" ), "]*)/>", Qt::CaseInsensitive ); //
+ text.replace( self_closing_divs, "\\1>
" ); + // Fix outstanding elements text += "
"; @@ -406,6 +404,11 @@ articleBody.resize( articleSize ); df.read( &articleBody.front(), articleSize ); } + catch( std::exception &ex ) + { + qWarning( "AARD: Failed loading article from \"%s\", reason: %s\n", getName().c_str(), ex.what() ); + break; + } catch(...) { break; @@ -474,7 +477,19 @@ else articleText = string( QObject::tr( "Article decoding error" ).toUtf8().constData() ); - articleText = "
" + articleText + "
"; + // See Issue #271: A mechanism to clean-up invalid HTML cards. + string cleaner = """""""""""" + """""""""""" + "" + "" + "
"; + + string prefix( "
"; } QString const& AardDictionary::getDescription() @@ -740,11 +755,14 @@ { try { + + qDebug( "Aard: Building the index for dictionary: %s", i->c_str() ); + { QFileInfo info( FsEncoding::decode( i->c_str() ) ); if( info.size() > ULONG_MAX ) { - DPRINTF( "File %s is too large", i->c_str() ); + qWarning( "File %s is too large", i->c_str() ); continue; } } @@ -760,7 +778,7 @@ || strncmp( dictHeader.keyLengthFormat, ">H", 2 ) || strncmp( dictHeader.articleLengthFormat, ">L", 2) ) { - DPRINTF( "File %s is not in supported aard format", i->c_str() ); + qWarning( "File %s is not in supported aard format", i->c_str() ); continue; } @@ -769,7 +787,7 @@ if( size == 0 ) { - DPRINTF( "File %s has invalid metadata", i->c_str() ); + qWarning( "File %s has invalid metadata", i->c_str() ); continue; } @@ -783,7 +801,7 @@ if( meta.empty() ) { - DPRINTF( "File %s has invalid metadata", i->c_str() ); + qWarning( "File %s has invalid metadata", i->c_str() ); continue; } @@ -927,13 +945,13 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Aard dictionary indexing failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Aard dictionary indexing failed: %s, error: %s\n", + i->c_str(), e.what() ); continue; } catch( ... ) { - FDPRINTF( stderr, "Aard dictionary indexing failed\n" ); + qWarning( "Aard dictionary indexing failed\n" ); continue; } } // if need to rebuild diff -Nru goldendict-1.0.2~git20130620/about.cc goldendict-1.5.0~ppa131019/about.cc --- goldendict-1.0.2~git20130620/about.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/about.cc 2013-10-18 14:32:58.000000000 +0000 @@ -19,9 +19,19 @@ version = QString::fromLatin1( versionFile.readAll() ).trimmed(); ui.version->setText( version ); + +#if defined (_MSC_VER) + QString compilerVersion = QString( "Visual C++ %1.%2.%3" ) + .arg( GD_CXX_MSVC_MAJOR ) + .arg( GD_CXX_MSVC_MINOR ) + .arg( GD_CXX_MSVC_BUILD ); +#else + QString compilerVersion = QLatin1String( "GCC " ) + QLatin1String( __VERSION__ ); +#endif + ui.qtVersion->setText( tr( "Based on Qt %1 (%2, %3 bit)" ).arg( QLatin1String( qVersion() ), - QLatin1String( "GCC " ) + QLatin1String( __VERSION__ ), + compilerVersion, QString::number( QSysInfo::WordSize ) ) ); QFile creditsFile( ":/CREDITS.txt" ); diff -Nru goldendict-1.0.2~git20130620/about.hh goldendict-1.5.0~ppa131019/about.hh --- goldendict-1.0.2~git20130620/about.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/about.hh 2013-10-18 14:32:58.000000000 +0000 @@ -4,8 +4,22 @@ #ifndef ABOUT_HH #define ABOUT_HH -#include #include "ui_about.h" +#include + +// Microsoft Visual C++ version +#if defined (_MSC_VER) + // how many digits does the build number have? +# if _MSC_FULL_VER / 10000 == _MSC_VER +# define GD_CXX_MSVC_BUILD (_MSC_FULL_VER % 10000) // four digits +# elif _MSC_FULL_VER / 100000 == _MSC_VER +# define GD_CXX_MSVC_BUILD (_MSC_FULL_VER % 100000) // five digits +# else +# define GD_CXX_MSVC_BUILD 0 +# endif +# define GD_CXX_MSVC_MAJOR (_MSC_VER/100-6) +# define GD_CXX_MSVC_MINOR (_MSC_VER%100) +#endif class About: public QDialog { diff -Nru goldendict-1.0.2~git20130620/about.ui goldendict-1.5.0~ppa131019/about.ui --- goldendict-1.0.2~git20130620/about.ui 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/about.ui 2013-10-18 14:32:58.000000000 +0000 @@ -23,13 +23,28 @@ - + + + + 80 + 80 + + + + + 80 + 80 + + :/icons/programicon.png + + true + Qt::AlignCenter diff -Nru goldendict-1.0.2~git20130620/article-style-st-lingoes-blue.css goldendict-1.5.0~ppa131019/article-style-st-lingoes-blue.css --- goldendict-1.0.2~git20130620/article-style-st-lingoes-blue.css 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/article-style-st-lingoes-blue.css 2013-10-18 14:32:58.000000000 +0000 @@ -1,7 +1,7 @@ body { background: #EAF0F8; margin: 0.3em; - font-family: "Arial Unicode MS", "Lucida Sans Unicode", Tahoma, "Palatino Linotype"; + font-family: "Arial Unicode MS", "Lucida Sans Unicode", Tahoma, Verdana, "Palatino Linotype", sans-serif; line-height: 120%; } diff -Nru goldendict-1.0.2~git20130620/article-style-st-lingoes.css goldendict-1.5.0~ppa131019/article-style-st-lingoes.css --- goldendict-1.0.2~git20130620/article-style-st-lingoes.css 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/article-style-st-lingoes.css 2013-10-18 14:32:58.000000000 +0000 @@ -19,7 +19,7 @@ { background: #fffef2; color: black; - font-family: "Tahoma, SimSun, SimSun-ExtB"; + font-family: Tahoma, Verdana, SimSun, SimSun-ExtB, sans-serif; margin: 5px; } diff -Nru goldendict-1.0.2~git20130620/article-style-st-modern.css goldendict-1.5.0~ppa131019/article-style-st-modern.css --- goldendict-1.0.2~git20130620/article-style-st-modern.css 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/article-style-st-modern.css 2013-10-18 14:32:58.000000000 +0000 @@ -10,7 +10,7 @@ margin-left: 2px; margin-bottom: 3px; background: white; - font-family: Tahoma, Segoe UI, Palatino Linotype, Arial Unicode MS; + font-family: Tahoma, Verdana, "Lucida Sans Unicode", "Segoe UI", "Palatino Linotype", "Arial Unicode MS", sans-serif; } a diff -Nru goldendict-1.0.2~git20130620/article-style.css goldendict-1.5.0~ppa131019/article-style.css --- goldendict-1.0.2~git20130620/article-style.css 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/article-style.css 2013-10-18 14:32:58.000000000 +0000 @@ -348,6 +348,11 @@ color: green; } +.dsl_m, .dsl_m0 +{ + padding-left: 0px; +} + .dsl_m1 { padding-left: 9px; @@ -449,6 +454,31 @@ vertical-align: text-bottom; } +.dsl_s_wav img +{ + /* Ugly hack since "vertical-align: middle;" looks _terrible_ in Qt4's webkit: */ + vertical-align: -30%; +} + +.dsl_video .img +{ + display: inline-block; + background: url('qrcx://localhost/icons/video.png'); + background-repeat: no-repeat; + /* Ugly hack since "vertical-align: middle;" looks _terrible_ in Qt4's webkit: */ + vertical-align: -30%; + width: 22px; + height: 22px; + margin: 0; + padding: 0; +} + +.dsl_video .filename +{ + display: none; /* by default, the file name is hidden */ + padding-left: 5px; +} + /************* MDict dictionaries **************/ .mdict { @@ -461,6 +491,14 @@ color: inherit; } +/************* Zim dictionaries **************/ + +.zimdict_headword +{ + font-weight: bold!important; +/* font-size: 150%; */ +} + /************* Spelling suggestions *****************/ .gdspellsuggestion diff -Nru goldendict-1.0.2~git20130620/article_maker.cc goldendict-1.5.0~ppa131019/article_maker.cc --- goldendict-1.0.2~git20130620/article_maker.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/article_maker.cc 2013-10-18 14:32:58.000000000 +0000 @@ -176,9 +176,16 @@ { string result( "

" ); + QString str( word ); + if( str.isRightToLeft() ) + { + str.insert( 0, (ushort)0x202E ); // RLE, Right-to-Left Embedding + str.append( (ushort)0x202C ); // PDF, POP DIRECTIONAL FORMATTING + } + if ( word.size() ) result += tr( "No translation for %1 was found in group %2." ). - arg( QString::fromUtf8( Html::escape( word.toUtf8().data() ).c_str() ) ). + arg( QString::fromUtf8( Html::escape( str.toUtf8().data() ).c_str() ) ). arg( QString::fromUtf8( Html::escape( group.toUtf8().data() ).c_str() ) ). toUtf8().data(); else @@ -429,7 +436,9 @@ if ( altSearches.empty() ) { - DPRINTF( "alts finished\n" ); +#ifdef QT_DEBUG + qDebug( "alts finished\n" ); +#endif // They all've finished! Now we can look up bodies @@ -437,16 +446,12 @@ vector< wstring > altsVector( alts.begin(), alts.end() ); +#ifdef QT_DEBUG for( unsigned x = 0; x < altsVector.size(); ++x ) { - DPRINTF( "Alt: %ls\n", -#ifdef Q_OS_WIN - gd::toQString( altsVector[ x ] ).toStdWString().c_str() -#else - altsVector[ x ].c_str() -#endif - ); + qDebug() << "Alt:" << gd::toQString( altsVector[ x ] ); } +#endif wstring wordStd = gd::toWString( word ); @@ -455,14 +460,22 @@ for( unsigned x = 0; x < activeDicts.size(); ++x ) { - sptr< Dictionary::DataRequest > r = - activeDicts[ x ]->getArticle( wordStd, altsVector, - gd::toWString( contexts.value( QString::fromStdString( activeDicts[ x ]->getId() ) ) ) ); + try + { + sptr< Dictionary::DataRequest > r = + activeDicts[ x ]->getArticle( wordStd, altsVector, + gd::toWString( contexts.value( QString::fromStdString( activeDicts[ x ]->getId() ) ) ) ); - connect( r.get(), SIGNAL( finished() ), - this, SLOT( bodyFinished() ), Qt::QueuedConnection ); + connect( r.get(), SIGNAL( finished() ), + this, SLOT( bodyFinished() ), Qt::QueuedConnection ); - bodyRequests.push_back( r ); + bodyRequests.push_back( r ); + } + catch( std::exception & e ) + { + qWarning( "getArticle request error (%s) in \"%s\"\n", + e.what(), activeDicts[ x ]->getName().c_str() ); + } } bodyFinished(); // Handle any ones which have already finished @@ -624,9 +637,16 @@ memcpy( &data.front() + offset, head.data(), head.size() ); - if ( req.dataSize() > 0 ) - bodyRequests.front()->getDataSlice( 0, req.dataSize(), - &data.front() + offset + head.size() ); + try + { + if ( req.dataSize() > 0 ) + bodyRequests.front()->getDataSlice( 0, req.dataSize(), + &data.front() + offset + head.size() ); + } + catch( std::exception & e ) + { + qWarning( "getDataSlice error: %s\n", e.what() ); + } wasUpdated = true; @@ -811,7 +831,10 @@ footer += "

" + Html::escape( tr( "Individual words: " ).toUtf8().data() ) + - ""; + "getData().front() ), bytes.data(), bytes.size() ); return ico; } - return dictionaries[ x ]->getResource( url.path().mid( 1 ).toUtf8().data() ); + try + { + return dictionaries[ x ]->getResource( url.path().mid( 1 ).toUtf8().data() ); + } + catch( std::exception & e ) + { + qWarning( "getResource request error (%s) in \"%s\"\n", e.what(), + dictionaries[ x ]->getName().c_str() ); + return sptr< Dictionary::DataRequest >(); + } } } else @@ -301,6 +310,11 @@ qint64 ArticleResourceReply::readData( char * out, qint64 maxSize ) { + // From the doc: "This function might be called with a maxSize of 0, + // which can be used to perform post-reading operations". + if ( maxSize == 0 ) + return 0; + DPRINTF( "====reading %d bytes\n", (int)maxSize ); bool finished = req->isFinished(); @@ -314,7 +328,14 @@ size_t toRead = maxSize < left ? maxSize : left; - req->getDataSlice( alreadyRead, toRead, out ); + try + { + req->getDataSlice( alreadyRead, toRead, out ); + } + catch( std::exception & e ) + { + qWarning( "getDataSlice error: %s\n", e.what() ); + } alreadyRead += toRead; diff -Nru goldendict-1.0.2~git20130620/articleinspector.cc goldendict-1.5.0~ppa131019/articleinspector.cc --- goldendict-1.0.2~git20130620/articleinspector.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/articleinspector.cc 2013-10-18 14:32:58.000000000 +0000 @@ -1,5 +1,7 @@ #include "articleinspector.hh" +#if QT_VERSION >= 0x040600 + #include using std::list; @@ -49,3 +51,5 @@ QWebInspector::showEvent( event ); } + +#endif // QT_VERSION diff -Nru goldendict-1.0.2~git20130620/articleinspector.hh goldendict-1.5.0~ppa131019/articleinspector.hh --- goldendict-1.0.2~git20130620/articleinspector.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/articleinspector.hh 2013-10-18 14:32:58.000000000 +0000 @@ -1,6 +1,10 @@ #ifndef ARTICLEINSPECTOR_HH #define ARTICLEINSPECTOR_HH +#include + +#if QT_VERSION >= 0x040600 + #include #include #include "config.hh" @@ -28,4 +32,6 @@ static std::list< ArticleInspector * > openedInspectors; }; +#endif // QT_VERSION + #endif // ARTICLEINSPECTOR_HH diff -Nru goldendict-1.0.2~git20130620/articleview.cc goldendict-1.5.0~ppa131019/articleview.cc --- goldendict-1.0.2~git20130620/articleview.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/articleview.cc 2013-10-18 14:32:58.000000000 +0000 @@ -19,9 +19,12 @@ #include "dprintf.hh" #include "ffmpegaudio.hh" #include -#include #include +#if QT_VERSION >= 0x040600 +#include +#endif + #include #ifdef Q_OS_WIN32 @@ -190,12 +193,24 @@ ArticleView::~ArticleView() { cleanupTemp(); + +#ifndef DISABLE_INTERNAL_PLAYER + if ( cfg.preferences.useInternalPlayer ) + Ffmpeg::AudioPlayer::instance().stop(); +#endif } void ArticleView::showDefinition( QString const & word, unsigned group, QString const & scrollTo, Contexts const & contexts ) { + +#ifndef DISABLE_INTERNAL_PLAYER + // first, let's stop the player + if ( cfg.preferences.useInternalPlayer ) + Ffmpeg::AudioPlayer::instance().stop(); +#endif + QUrl req; req.setScheme( "gdlookup" ); @@ -409,12 +424,12 @@ return QString(); } -void ArticleView::jumpToDictionary( QString const & id ) +void ArticleView::jumpToDictionary( QString const & id, bool force ) { QString targetArticle = "gdfrom-" + id; - // jump only if neceessary - if ( targetArticle != getCurrentArticle() ) + // jump only if neceessary, or when forced + if ( force || targetArticle != getCurrentArticle() ) { setCurrentArticle( targetArticle, true ); } @@ -688,6 +703,23 @@ msg = tr( "Picture" ); } else + if ( url.scheme() == "gdvideo" ) + { + if ( url.path().isEmpty() ) + { + msg = tr( "Video" ); + } + else + { + QString path = url.path(); + if ( path.startsWith( '/' ) ) + { + path = path.mid( 1 ); + } + msg = tr( "Video: %1" ).arg( path ); + } + } + else if (url.scheme() == "gdlookup" || url.scheme().compare( "bword" ) == 0) { QString def = url.path(); @@ -784,7 +816,7 @@ } } else - if ( url.scheme() == "bres" || url.scheme() == "gdau" || + if ( url.scheme() == "bres" || url.scheme() == "gdau" || url.scheme() == "gdvideo" || Dictionary::WebMultimediaDownload::isAudioUrl( url ) ) { // Download it @@ -831,30 +863,39 @@ if ( activeDicts ) for( unsigned x = 0; x < activeDicts->size(); ++x ) { - sptr< Dictionary::DataRequest > req = - (*activeDicts)[ x ]->getResource( - url.path().mid( 1 ).toUtf8().data() ); - - if ( req->isFinished() && req->dataSize() >= 0 ) + try { - // A request was instantly finished with success. - // If we've managed to spawn some lingering requests already, - // erase them. - resourceDownloadRequests.clear(); - - // Handle the result - resourceDownloadRequests.push_back( req ); - resourceDownloadFinished(); + sptr< Dictionary::DataRequest > req = + (*activeDicts)[ x ]->getResource( + url.path().mid( 1 ).toUtf8().data() ); + + if ( req->isFinished() && req->dataSize() >= 0 ) + { + // A request was instantly finished with success. + // If we've managed to spawn some lingering requests already, + // erase them. + resourceDownloadRequests.clear(); + + // Handle the result + resourceDownloadRequests.push_back( req ); + resourceDownloadFinished(); - return; + return; + } + else + if ( !req->isFinished() ) + { + resourceDownloadRequests.push_back( req ); + + connect( req.get(), SIGNAL( finished() ), + this, SLOT( resourceDownloadFinished() ) ); + } } - else - if ( !req->isFinished() ) + catch( std::exception & e ) { - resourceDownloadRequests.push_back( req ); - - connect( req.get(), SIGNAL( finished() ), - this, SLOT( resourceDownloadFinished() ) ); + emit statusBarMessage( + tr( "ERROR: %1" ).arg( e.what() ), + 10000, QPixmap( ":/icons/error.png" ) ); } } } @@ -1007,11 +1048,19 @@ { for( unsigned x = 0; x < activeDicts->size(); ++x ) { - req = (*activeDicts)[ x ]->getResource( - url.path().mid( 1 ).toUtf8().data() ); + try + { + req = (*activeDicts)[ x ]->getResource( + url.path().mid( 1 ).toUtf8().data() ); - ResourceToSaveHandler * handler = new ResourceToSaveHandler( this, req, fileName ); - handlers.push_back( handler ); + ResourceToSaveHandler * handler = new ResourceToSaveHandler( this, req, fileName ); + handlers.push_back( handler ); + } + catch( std::exception & e ) + { + qWarning( "getResource request error (%s) in \"%s\"\n", e.what(), + (*activeDicts)[ x ]->getName().c_str() ); + } } } } @@ -1021,8 +1070,11 @@ QString contentType; req = articleNetMgr.getResource( url, contentType ); - ResourceToSaveHandler * handler = new ResourceToSaveHandler( this, req, fileName ); - handlers.push_back( handler ); + if( req.get() ) + { + ResourceToSaveHandler * handler = new ResourceToSaveHandler( this, req, fileName ); + handlers.push_back( handler ); + } } } else @@ -1207,6 +1259,7 @@ } } +#if QT_VERSION >= 0x040600 QWebElement el = r.element(); QUrl imageUrl; if( !popupView && el.tagName().compare( "img", Qt::CaseInsensitive ) == 0 ) @@ -1226,6 +1279,7 @@ saveSoundAction = new QAction( tr( "Save s&ound..." ), &menu ); menu.addAction( saveSoundAction ); } +#endif QString selectedText = ui.definition->selectedText(); @@ -1234,8 +1288,15 @@ // We don't prompt for selections larger or equal to 60 chars, since // it ruins the menu and it's hardly a single word anyway. + QString text = ui.definition->selectedText(); + if( text.isRightToLeft() ) + { + text.insert( 0, (ushort)0x202E ); // RLE, Right-to-Left Embedding + text.append( (ushort)0x202C ); // PDF, POP DIRECTIONAL FORMATTING + } + lookupSelection = new QAction( tr( "&Look up \"%1\"" ). - arg( ui.definition->selectedText() ), + arg( text ), &menu ); menu.addAction( lookupSelection ); @@ -1243,18 +1304,18 @@ { lookupSelectionNewTab = new QAction( QIcon( ":/icons/addtab.png" ), tr( "Look up \"%1\" in &New Tab" ). - arg( ui.definition->selectedText() ), + arg( text ), &menu ); menu.addAction( lookupSelectionNewTab ); sendWordToInputLineAction = new QAction( tr( "Send \"%1\" to input line" ). - arg( ui.definition->selectedText() ), + arg( text ), &menu ); menu.addAction( sendWordToInputLineAction ); } addWordToHistoryAction = new QAction( tr( "&Add \"%1\" to history" ). - arg( ui.definition->selectedText() ), + arg( text ), &menu ); menu.addAction( addWordToHistoryAction ); @@ -1396,6 +1457,7 @@ else if( result == saveImageAction || result == saveSoundAction ) { +#if QT_VERSION >= 0x040600 QUrl url = ( result == saveImageAction ) ? imageUrl : targetUrl; QString savePath; QString fileName; @@ -1444,6 +1506,7 @@ emit storeResourceSavePath( QDir::toNativeSeparators( fileInfo.absoluteDir().absolutePath() ) ); saveResource( url, ui.definition->url(), fileName ); } +#endif } else { @@ -1578,7 +1641,16 @@ QApplication::clipboard()->text() ) ) ); if ( text.size() ) - showDefinition( text, getGroup( ui.definition->url() ), getCurrentArticle() ); + { + unsigned groupId = getGroup( ui.definition->url() ); + if ( groupId == 0 ) + { + // We couldn't figure out the group out of the URL, + // so let's try the currently selected group. + groupId = groupComboBox->getCurrentGroup(); + } + showDefinition( text, groupId, getCurrentArticle() ); + } } void ArticleView::moveOneArticleUp() @@ -1741,8 +1813,9 @@ if ( ui.searchCaseSensitive->isChecked() ) f |= QWebPage::FindCaseSensitively; - +#if QT_VERSION >= 0x040600 f |= QWebPage::HighlightAllOccurrences; +#endif ui.definition->findText( "", f ); diff -Nru goldendict-1.0.2~git20130620/articleview.hh goldendict-1.5.0~ppa131019/articleview.hh --- goldendict-1.0.2~git20130620/articleview.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/articleview.hh 2013-10-18 14:32:58.000000000 +0000 @@ -151,7 +151,7 @@ /// Jumps to the article specified by the dictionary id, /// by executing a javascript code. - void jumpToDictionary( QString const & ); + void jumpToDictionary( QString const &, bool force ); /// Returns all articles currently present in view, as a list of dictionary /// string ids. diff -Nru goldendict-1.0.2~git20130620/articlewebview.cc goldendict-1.5.0~ppa131019/articlewebview.cc --- goldendict-1.0.2~git20130620/articlewebview.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/articlewebview.cc 2013-10-18 14:32:58.000000000 +0000 @@ -7,10 +7,15 @@ #include #include "articleinspector.hh" +#ifdef Q_OS_WIN32 +#include +#endif ArticleWebView::ArticleWebView( QWidget *parent ): QWebView( parent ), +#if QT_VERSION >= 0x040600 inspector( NULL ), +#endif midButtonPressed( false ), selectionBySingleClick( false ), showInspectorDirectly( true ) @@ -19,8 +24,10 @@ ArticleWebView::~ArticleWebView() { +#if QT_VERSION >= 0x040600 if ( inspector ) inspector->deleteLater(); +#endif } void ArticleWebView::setUp( Config::Class * cfg ) @@ -30,6 +37,7 @@ void ArticleWebView::triggerPageAction( QWebPage::WebAction action, bool checked ) { +#if QT_VERSION >= 0x040600 if ( action == QWebPage::InspectElement ) { // Get or create inspector instance for current view. @@ -50,6 +58,7 @@ return; } } +#endif QWebView::triggerPageAction( action, checked ); } @@ -102,9 +111,13 @@ void ArticleWebView::mouseDoubleClickEvent( QMouseEvent * event ) { QWebView::mouseDoubleClickEvent( event ); - +#if QT_VERSION >= 0x040600 int scrollBarWidth = page()->mainFrame()->scrollBarGeometry( Qt::Vertical ).width(); int scrollBarHeight = page()->mainFrame()->scrollBarGeometry( Qt::Horizontal ).height(); +#else + int scrollBarWidth = 0; + int scrollBarHeight = 0; +#endif // emit the signal only if we are not double-clicking on scrollbars if ( ( event->x() < width() - scrollBarWidth ) && @@ -134,6 +147,27 @@ void ArticleWebView::wheelEvent( QWheelEvent *ev ) { +#ifdef Q_OS_WIN32 + + // Avoid wrong mouse wheel handling in QWebView + // if system preferences is set to "scroll by page" + + if( ev->modifiers() == Qt::NoModifier ) + { + unsigned nLines; + SystemParametersInfo( SPI_GETWHEELSCROLLLINES, 0, &nLines, 0 ); + if( nLines == WHEEL_PAGESCROLL ) + { + QKeyEvent kev( QEvent::KeyPress, ev->delta() > 0 ? Qt::Key_PageUp : Qt::Key_PageDown, + Qt::NoModifier ); + QApplication::sendEvent( this, &kev ); + + ev->accept(); + return; + } + } +#endif + if ( ev->modifiers().testFlag( Qt::ControlModifier ) ) { ev->ignore(); diff -Nru goldendict-1.0.2~git20130620/bgl.cc goldendict-1.5.0~ppa131019/bgl.cc --- goldendict-1.0.2~git20130620/bgl.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/bgl.cc 2013-10-18 14:32:58.000000000 +0000 @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -197,8 +198,7 @@ if ( result < 0 ) { - FDPRINTF( stderr, "Failed to decode utf8 of headword %s, skipping it.\n", - word.c_str() ); + qWarning( "Failed to decode utf8 of headword \"%s\", skipping it.", word.c_str() ); return; } @@ -746,8 +746,9 @@ articlesIncluded.insert( chain[ x ].articleOffset ); } // try - catch( Utf8::exCantDecode ) + catch( std::exception &ex ) { + qWarning( "BGL: Failed loading article from \"%s\", reason: %s\n", dict.getName().c_str(), ex.what() ); } } @@ -768,13 +769,13 @@ ""; for( i = mainArticles.begin(); i != mainArticles.end(); ++i ) { - if (dict.idxHeader.langFrom == hebrew) // Hebrew support - format as RTL + if (dict.isFromLanguageRTL() ) // RTL support result += "

"; else result += "

"; result += postfixToSuperscript( i->second.first ); result += "

"; - if ( dict.idxHeader.langTo == hebrew ) + if ( dict.isToLanguageRTL() ) result += "
" + i->second.second + "
"; else result += "
" + i->second.second + "
"; @@ -784,13 +785,13 @@ for( i = alternateArticles.begin(); i != alternateArticles.end(); ++i ) { - if (dict.idxHeader.langFrom == hebrew) // Hebrew support - format as RTL + if (dict.isFromLanguageRTL() ) // RTL support result += "

"; else result += "

"; result += postfixToSuperscript( i->second.first ); result += "

"; - if ( dict.idxHeader.langTo == hebrew ) + if ( dict.isToLanguageRTL() ) result += "
" + i->second.second + "
"; else result += "
" + i->second.second + "
"; @@ -960,8 +961,7 @@ compressedData.size() ) != Z_OK || decompressedLength != data.size() ) { - DPRINTF( "Failed to decompress resource %s, ignoring it.\n", - name.c_str() ); + qWarning( "Failed to decompress resource \"%s\", ignoring it.\n", name.c_str() ); } else hasAnyData = true; @@ -1042,8 +1042,7 @@ if ( compress( &compressedData.front(), &compressedSize, (unsigned char const *) data, size ) != Z_OK ) { - FDPRINTF( stderr, "Failed to compress the body of resource %s, dropping it.\n", - filename.c_str() ); + qWarning( "Failed to compress the body of resource \"%s\", dropping it.\n", filename.c_str() ); return; } @@ -1087,6 +1086,8 @@ { // Building the index + qDebug() << "Bgl: Building the index for dictionary: " << i->c_str(); + Babylon b( *i ); if ( !b.open() ) @@ -1096,7 +1097,7 @@ if ( !b.read( sourceCharset, targetCharset ) ) { - FDPRINTF( stderr, "Failed to start reading from %s, skipping it\n", i->c_str() ); + qWarning( "Failed to start reading from %s, skipping it\n", i->c_str() ); continue; } diff -Nru goldendict-1.0.2~git20130620/bgl_babylon.cc goldendict-1.5.0~ppa131019/bgl_babylon.cc --- goldendict-1.0.2~git20130620/bgl_babylon.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/bgl_babylon.cc 2013-10-18 14:32:58.000000000 +0000 @@ -33,6 +33,7 @@ #include "iconv.hh" #include "htmlescape.hh" #include +#include #ifdef _WIN32 #include @@ -560,7 +561,7 @@ } catch( Iconv::Ex & e ) { - DPRINTF("Bgl: charset convertion error, no trancription processing's done: %s\n", e.what()); + qWarning() << "Bgl: charset convertion error, no trancription processing's done: " << e.what(); transcription = std::string( block.data + pos + 3, length ); } } @@ -593,7 +594,7 @@ } catch( Iconv::Ex & e ) { - DPRINTF("Bgl: charset convertion error, no trancription processing's done: %s\n", e.what()); + qWarning() << "Bgl: charset convertion error, no trancription processing's done: " << e.what(); transcription = std::string( block.data + pos + 4, length ); } } @@ -786,7 +787,7 @@ iconv_t cd = iconv_open( "UTF-8", charset.c_str() ); if( cd == (iconv_t)(-1) ) { - DPRINTF( "Error openning iconv library\n" ); + qFatal( "Error openning iconv library" ); exit(1); } @@ -803,8 +804,7 @@ defbuf = outbuf; while (inbufbytes) { if (iconv(cd, &inbuf, &inbufbytes, &outbuf, &outbufbytes) == (size_t)-1) { - DPRINTF( "\n%s\n", inbuf ); - DPRINTF( "Error in iconv conversion\n" ); + qWarning() << "\"" << inbuf << "\" - error in iconv conversion"; break; // inbuf++; // inbufbytes--; diff -Nru goldendict-1.0.2~git20130620/btreeidx.cc goldendict-1.5.0~ppa131019/btreeidx.cc --- goldendict-1.0.2~git20130620/btreeidx.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/btreeidx.cc 2013-10-18 14:32:58.000000000 +0000 @@ -11,6 +11,7 @@ #include #include #include "dprintf.hh" +#include "wstring_qt.hh" //#define __BTREE_USE_LZO // LZO mode is experimental and unsupported. Tests didn't show any substantial @@ -79,26 +80,39 @@ { vector< WordArticleLink > result; - wstring folded = Folding::apply( str ); - if( folded.empty() ) - folded = Folding::applyWhitespaceOnly( str ); + try + { + wstring folded = Folding::apply( str ); + if( folded.empty() ) + folded = Folding::applyWhitespaceOnly( str ); - bool exactMatch; + bool exactMatch; - vector< char > leaf; - uint32_t nextLeaf; + vector< char > leaf; + uint32_t nextLeaf; - char const * leafEnd; + char const * leafEnd; - char const * chainOffset = findChainOffsetExactOrPrefix( folded, exactMatch, - leaf, nextLeaf, - leafEnd ); + char const * chainOffset = findChainOffsetExactOrPrefix( folded, exactMatch, + leaf, nextLeaf, + leafEnd ); - if ( chainOffset && exactMatch ) - { - result = readChain( chainOffset ); + if ( chainOffset && exactMatch ) + { + result = readChain( chainOffset ); - antialias( str, result ); + antialias( str, result ); + } + } + catch( std::exception & e ) + { + qWarning( "Articles searching failed, error: %s\n", e.what() ); + result.clear(); + } + catch(...) + { + qWarning( "Articles searching failed\n" ); + result.clear(); } return result; @@ -210,99 +224,114 @@ charsLeftToChop = maxSuffixVariation; } - for( ; ; ) + try { - bool exactMatch; - - vector< char > leaf; - uint32_t nextLeaf; - char const * leafEnd; - - char const * chainOffset = dict.findChainOffsetExactOrPrefix( folded, exactMatch, - leaf, nextLeaf, - leafEnd ); - - if ( chainOffset ) for( ; ; ) { - if ( isCancelled ) - break; - - //DPRINTF( "offset = %u, size = %u\n", chainOffset - &leaf.front(), leaf.size() ); - - vector< WordArticleLink > chain = dict.readChain( chainOffset ); - - wstring chainHead = Utf8::decode( chain[ 0 ].word ); - - wstring resultFolded = Folding::apply( chainHead ); - if( resultFolded.empty() ) - resultFolded = Folding::applyWhitespaceOnly( chainHead ); + bool exactMatch; - if ( resultFolded.size() >= folded.size() && !resultFolded.compare( 0, folded.size(), folded ) ) + vector< char > leaf; + uint32_t nextLeaf; + char const * leafEnd; + + char const * chainOffset = dict.findChainOffsetExactOrPrefix( folded, exactMatch, + leaf, nextLeaf, + leafEnd ); + + if ( chainOffset ) + for( ; ; ) { - // Exact or prefix match + if ( isCancelled ) + break; - Mutex::Lock _( dataMutex ); - - for( unsigned x = 0; x < chain.size(); ++x ) + //DPRINTF( "offset = %u, size = %u\n", chainOffset - &leaf.front(), leaf.size() ); + + vector< WordArticleLink > chain = dict.readChain( chainOffset ); + + wstring chainHead = Utf8::decode( chain[ 0 ].word ); + + wstring resultFolded = Folding::apply( chainHead ); + if( resultFolded.empty() ) + resultFolded = Folding::applyWhitespaceOnly( chainHead ); + + if ( resultFolded.size() >= folded.size() && !resultFolded.compare( 0, folded.size(), folded ) ) { - // Skip middle matches, if requested. If suffix variation is specified, - // make sure the string isn't larger than requested. - if ( ( allowMiddleMatches || Folding::apply( Utf8::decode( chain[ x ].prefix ) ).empty() ) && - ( maxSuffixVariation < 0 || (int)resultFolded.size() - initialFoldedSize <= maxSuffixVariation ) ) - matches.push_back( Utf8::decode( chain[ x ].prefix + chain[ x ].word ) ); + // Exact or prefix match + + Mutex::Lock _( dataMutex ); + + for( unsigned x = 0; x < chain.size(); ++x ) + { + // Skip middle matches, if requested. If suffix variation is specified, + // make sure the string isn't larger than requested. + if ( ( allowMiddleMatches || Folding::apply( Utf8::decode( chain[ x ].prefix ) ).empty() ) && + ( maxSuffixVariation < 0 || (int)resultFolded.size() - initialFoldedSize <= maxSuffixVariation ) ) + matches.push_back( Utf8::decode( chain[ x ].prefix + chain[ x ].word ) ); + } + + if ( matches.size() >= maxResults ) + { + // For now we actually allow more than maxResults if the last + // chain yield more than one result. That's ok and maybe even more + // desirable. + break; + } } - - if ( matches.size() >= maxResults ) - { - // For now we actually allow more than maxResults if the last - // chain yield more than one result. That's ok and maybe even more - // desirable. + else + // Neither exact nor a prefix match, end this break; - } - } - else - // Neither exact nor a prefix match, end this - break; - - // Fetch new leaf if we're out of chains here - - if ( chainOffset >= leafEnd ) - { - // We're past the current leaf, fetch the next one - - //DPRINTF( "advancing\n" ); - - if ( nextLeaf ) + + // Fetch new leaf if we're out of chains here + + if ( chainOffset >= leafEnd ) { - Mutex::Lock _( *dict.idxFileMutex ); - - dict.readNode( nextLeaf, leaf ); - leafEnd = &leaf.front() + leaf.size(); - - nextLeaf = dict.idxFile->read< uint32_t >(); - chainOffset = &leaf.front() + sizeof( uint32_t ); - - uint32_t leafEntries = *(uint32_t *)&leaf.front(); - - if ( leafEntries == 0xffffFFFF ) + // We're past the current leaf, fetch the next one + + //DPRINTF( "advancing\n" ); + + if ( nextLeaf ) { - //DPRINTF( "bah!\n" ); - exit( 1 ); + Mutex::Lock _( *dict.idxFileMutex ); + + dict.readNode( nextLeaf, leaf ); + leafEnd = &leaf.front() + leaf.size(); + + nextLeaf = dict.idxFile->read< uint32_t >(); + chainOffset = &leaf.front() + sizeof( uint32_t ); + + uint32_t leafEntries = *(uint32_t *)&leaf.front(); + + if ( leafEntries == 0xffffFFFF ) + { + //DPRINTF( "bah!\n" ); + exit( 1 ); + } } + else + break; // That was the last leaf } - else - break; // That was the last leaf } - } - if ( charsLeftToChop && !isCancelled ) - { - --charsLeftToChop; - folded.resize( folded.size() - 1 ); + if ( isCancelled ) + break; + + if ( charsLeftToChop && !isCancelled ) + { + --charsLeftToChop; + folded.resize( folded.size() - 1 ); + } + else + break; } - else - break; + } + catch( std::exception & e ) + { + qWarning( "Index searching failed: \"%s\", error: %s\n", e.what(), + dict.getName().c_str() ); + } + catch(...) + { + qWarning( "Index searching failed: \"%s\"\n", dict.getName().c_str() ); } finish(); @@ -710,13 +739,13 @@ void BtreeIndex::antialias( wstring const & str, vector< WordArticleLink > & chain ) { - wstring caseFolded = Folding::applySimpleCaseOnly( str ); + wstring caseFolded = Folding::applySimpleCaseOnly( gd::normalize( str ) ); for( unsigned x = chain.size(); x--; ) { // If after applying case folding to each word they wouldn't match, we // drop the entry. - if ( Folding::applySimpleCaseOnly( Utf8::decode( chain[ x ].prefix + chain[ x ].word ) ) != + if ( Folding::applySimpleCaseOnly( gd::normalize( Utf8::decode( chain[ x ].prefix + chain[ x ].word ) ) ) != caseFolded ) chain.erase( chain.begin() + x ); else @@ -864,7 +893,7 @@ if ( compress( &compressedData.front(), &compressedSize, &uncompressedData.front(), uncompressedData.size() ) != Z_OK ) { - FDPRINTF( stderr, "Failed to compress btree node.\n" ); + qFatal( "Failed to compress btree node." ); abort(); } diff -Nru goldendict-1.0.2~git20130620/btreeidx.hh goldendict-1.5.0~ppa131019/btreeidx.hh --- goldendict-1.0.2~git20130620/btreeidx.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/btreeidx.hh 2013-10-18 14:32:58.000000000 +0000 @@ -74,8 +74,6 @@ BtreeIndex(); -protected: - /// Opens the index. The file reference is saved to be used for /// subsequent lookups. /// The mutex is the one to be locked when working with the file. @@ -85,6 +83,8 @@ /// is performed. vector< WordArticleLink > findArticles( wstring const & ); +protected: + /// Finds the offset in the btree leaf for the given word, either matching /// by an exact match, or by finding the smallest entry that might match /// by prefix. It can return zero if there isn't even a possible prefx diff -Nru goldendict-1.0.2~git20130620/chunkedstorage.cc goldendict-1.5.0~ppa131019/chunkedstorage.cc --- goldendict-1.0.2~git20130620/chunkedstorage.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/chunkedstorage.cc 2013-10-18 14:32:58.000000000 +0000 @@ -125,7 +125,10 @@ { file.seek( offset ); - offsets.resize( file.read< uint32_t >() ); + uint32_t size = file.read< uint32_t >(); + if ( size == 0 ) + return; + offsets.resize( size ); file.read( &offsets.front(), offsets.size() * sizeof( uint32_t ) ); } diff -Nru goldendict-1.0.2~git20130620/config.cc goldendict-1.5.0~ppa131019/config.cc --- goldendict-1.0.2~git20130620/config.cc 2013-06-20 19:14:23.000000000 +0000 +++ goldendict-1.5.0~ppa131019/config.cc 2013-10-18 14:32:58.000000000 +0000 @@ -178,6 +178,8 @@ mw.push_back( MediaWiki( "21c64bca5ec10ba17ff19f3066bc962a", "German Wiktionary", "http://de.wiktionary.org/w", false, "" ) ); mw.push_back( MediaWiki( "96957cb2ad73a20c7a1d561fc83c253a", "Portuguese Wikipedia", "http://pt.wikipedia.org/w", false, "" ) ); mw.push_back( MediaWiki( "ed4c3929196afdd93cc08b9a903aad6a", "Portuguese Wiktionary", "http://pt.wiktionary.org/w", false, "" ) ); + mw.push_back( MediaWiki( "f3b4ec8531e52ddf5b10d21e4577a7a2", "Greek Wikipedia", "http://el.wikipedia.org/w", false, "" ) ); + mw.push_back( MediaWiki( "5d45232075d06e002dea72fe3e137da1", "Greek Wiktionary", "http://el.wiktionary.org/w", false, "" ) ); return mw; } @@ -308,6 +310,12 @@ if ( QDir( "/usr/share/dictd" ).exists() ) c.paths.push_back( Path( "/usr/share/dictd", true ) ); + if ( QDir( "/usr/share/opendict/dictionaries" ).exists() ) + c.paths.push_back( Path( "/usr/share/opendict/dictionaries", true ) ); + + if ( QDir( "/usr/share/goldendict-wordnet" ).exists() ) + c.paths.push_back( Path( "/usr/share/goldendict-wordnet", true ) ); + if ( QDir( "/usr/share/WyabdcRealPeopleTTS" ).exists() ) c.soundDirs.push_back( SoundDir( "/usr/share/WyabdcRealPeopleTTS", "WyabdcRealPeopleTTS" ) ); diff -Nru goldendict-1.0.2~git20130620/debian/changelog goldendict-1.5.0~ppa131019/debian/changelog --- goldendict-1.0.2~git20130620/debian/changelog 2013-06-20 19:28:17.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/changelog 2013-10-19 16:06:18.000000000 +0000 @@ -1,353 +1,5 @@ -goldendict (1.0.2~git20130620-1) unstable; urgency=low +goldendict (1.5.0~ppa131019-1) saucy; urgency=low - * New snapshot. + * Initial release - -- Dmitry E. Oboukhov Thu, 20 Jun 2013 23:27:54 +0400 - -goldendict (1.0.2~git20120929-3) unstable; urgency=low - - * Drop .desktop file, closes: #689205. - - -- Dmitry E. Oboukhov Mon, 01 Oct 2012 11:23:16 +0400 - -goldendict (1.0.2~git20120929-2) unstable; urgency=low - - * Repatch old debian patches. - - -- Dmitry E. Oboukhov Sun, 30 Sep 2012 00:06:24 +0400 - -goldendict (1.0.2~git20120929-1) unstable; urgency=low - - * New GIT-snapshot - - -- Dmitry E. Oboukhov Sat, 29 Sep 2012 18:52:52 +0400 - -goldendict (1.0.2~git20110906-1) unstable; urgency=low - - * New GIT-snapshot. - - -- Dmitry E. Oboukhov Tue, 06 Sep 2011 09:43:30 +0400 - -goldendict (1.0.2~git20110805-1) unstable; urgency=low - - * New GIT snapshot. - - -- Dmitry E. Oboukhov Fri, 05 Aug 2011 16:21:30 +0400 - -goldendict (1.0.2~git20110706-1) unstable; urgency=low - - * New GIT-snapshot. - * Fix a few lintian warnings. - - -- Dmitry E. Oboukhov Wed, 06 Jul 2011 13:48:58 +0400 - -goldendict (1.0.2~git20110314-1) unstable; urgency=low - - * New GIT-snapshot. - * Fixed B-D, closes: #618180. - - -- Dmitry E. Oboukhov Mon, 14 Mar 2011 16:22:44 +0300 - -goldendict (1.0.1-1) unstable; urgency=low - - * New upstream version. - * Support for Forvo online pronunciations added. - * Support for Phonon for audio file playback (DirectShow under Windows). - This allows playing most audio files (.mp3 etc). - * History of search queries added. - * Dictionary bar added, allowing to disable individual dictionaries - in the currently selected group. - * Multi-word queries are now split into individual words and - presented as links, and all compound expressions (expressions - consisting of two or more words) within the query are found - and displayed. - * Morphological analysis is now applied to compound expressions - as well (e.g. "dozing off" -> "doze off") - * It is now possible to assign keyboard shortcuts to the groups - for fast switching now. - * It is now possible to use any file as a group icon. - * Content not originating from the site the user browses can - now be blocked (hides ads). - * Internal links in websites are now followed in-place. - * Audio files from websites are now played. - * Drop-down list of open tabs added. - * Clicking a link with middle mouse button now opens it in a new tab. - * Double-clicking words in an article translates them right - away (hold Ctrl to open in new tabs). - * Typing while focused on the word list initiates new search now. - * Zooming fonts in word list and translate line is now possible. - * Simply moving the mouse away from the scan popup window hides it. - * Toggling main window gives focus to the translation line. - * Zip files are now indexed, conserving memory and startup - times considerably. - * Better support for RTL languages. - * Improvements in BGL and DSL support. - * Support for portable version mode (just create the - portable/directory to enable it). - * Checking for the running instance is now always done correctly. - * Lots and lots of smaller improvements, speedups and bugfixes. - - -- Dmitry E. Oboukhov Sat, 04 Dec 2010 17:54:24 +0300 - -goldendict (0.9.1~git20101013-1) experimental; urgency=low - - * New GIT-snapshot - - -- Dmitry E. Oboukhov Wed, 13 Oct 2010 08:53:01 +0400 - -goldendict (0.9.1~git20100719-2) unstable; urgency=low - - * Fixed typos in debian/control, thanks for - Erik Esterer , closes: #590007. - - -- Dmitry E. Oboukhov Fri, 23 Jul 2010 09:50:16 +0400 - -goldendict (0.9.1~git20100719-1) unstable; urgency=low - - * New GIT-snapshot - * Added menu item, closes: #589302. - - -- Dmitry E. Oboukhov Mon, 19 Jul 2010 09:44:35 +0400 - -goldendict (0.9.1~git20100707-1) unstable; urgency=low - - * New GIT-snapshot - - -- Dmitry E. Oboukhov Wed, 07 Jul 2010 10:30:00 +0400 - -goldendict (0.9.1~git20100609-3) unstable; urgency=low - - * Unstable upload. - - -- Dmitry E. Oboukhov Thu, 10 Jun 2010 20:25:58 +0400 - -goldendict (0.9.1~git20100609-2) experimental; urgency=low - - * New GIT-snapshot (merge from git://gitorious.org/goldendict/goldendict.git) - - -- Dmitry E. Oboukhov Wed, 09 Jun 2010 11:50:43 +0400 - -goldendict (0.9.1~git20100609-1) unstable; urgency=low - - * New GIT-snapshot - - -- Dmitry E. Oboukhov Wed, 09 Jun 2010 11:44:36 +0400 - -goldendict (0.9.1~git20100413-1) unstable; urgency=low - - * New GIT-snapshot - - -- Dmitry E. Oboukhov Tue, 13 Apr 2010 10:18:32 +0400 - -goldendict (0.9.1~git20100322-1) unstable; urgency=low - - * New GIT-snapshot. - - -- Dmitry E. Oboukhov Mon, 22 Mar 2010 22:54:29 +0300 - -goldendict (0.9.1~git20100204-3) unstable; urgency=low - - * Added pkg-config into BD-list, closes: #568955, - thanks for "Aaron M. Ucko" . - - -- Dmitry E. Oboukhov Tue, 09 Feb 2010 09:18:05 +0300 - -goldendict (0.9.1~git20100204-2) unstable; urgency=low - - * Unstable uploading. - * Standards-Version bumped to 3.8.4. - - -- Dmitry E. Oboukhov Fri, 05 Feb 2010 09:19:38 +0300 - -goldendict (0.9.1~git20100204-1) experimental; urgency=low - - * New GIT-snapshot. - * I don't care such managers as kde/gnome. From now I'll set tag 'wontfix' - for every reports about adding/excluding/editing .desktop files. I am - fed up with their problems. Now .desktop was removed, closes: #568425. - - -- Dmitry E. Oboukhov Thu, 04 Feb 2010 23:39:57 +0300 - -goldendict (0.9.1~git20100117-1) unstable; urgency=low - - * New GIT-snapshot. - - -- Dmitry E. Oboukhov Sun, 17 Jan 2010 11:46:25 +0300 - -goldendict (0.9.1~git20091117-1) unstable; urgency=low - - * New GIT snapshot. - * Added goldendict-wordnet into Suggests. - - -- Dmitry E. Oboukhov Tue, 17 Nov 2009 12:30:10 +0300 - -goldendict (0.9.1~git20091108-3) unstable; urgency=low - - * Added manpage, closes lintian error. - - -- Dmitry E. Oboukhov Sun, 08 Nov 2009 20:47:44 +0300 - -goldendict (0.9.1~git20091108-2) unstable; urgency=low - - * Fixed FTBFS with mips platphorm. - - -- Dmitry E. Oboukhov Sun, 08 Nov 2009 16:32:17 +0300 - -goldendict (0.9.1~git20091108-1) unstable; urgency=low - - * New GIT snapshot. - * Depend on libzip was removed in upstream. - * FTBFS with binutils-gold has been fixed, closes: #554694, - thanks for Peter Fritzsche . - - -- Dmitry E. Oboukhov Sun, 08 Nov 2009 11:38:12 +0300 - -goldendict (0.9.0+svn404-1) unstable; urgency=low - - * SVN revision: 404. - * Zip files are now indexed along with the articles. This means that - their listings aren't now loaded into memory, resulting in many - megabytes of memory savings (with larger zips) and faster startup, - too. - * Change SJIS-WIN to CP932 in Babylon parser. This may fix problems - with Babylon Japanese dictionaries under Windows, where libiconv - had problems with the former encoding name. - * Clicking a link with middle mouse button opens it in a new tab. - * Don't save overly large search queries into history. Those are - usually large bogus selections of whole text blocks and they - only mess up menus. - * Prevent triggering spurious translations when changing group or - editing the query while there's an item in the word list selected. - * Fix problem with the 'All' group in history. The value of it is - too large for a signed int. - * History of search queries implemented. - * Remove the internal copy of libzip. (Debian patches was removed, too). - * Standards-Version bumped to 3.8.3. - - -- Dmitry E. Oboukhov Mon, 26 Oct 2009 11:35:09 +0300 - -goldendict (0.9.0+svn387-1) experimental; urgency=low - - * SVN revision: 387. - - -- Dmitry E. Oboukhov Mon, 12 Oct 2009 17:14:45 +0400 - -goldendict (0.9.0+svn386-1) unstable; urgency=low - - * SVN revision: 386. - * Updated Greek translations. - * Add 'Show names in dictionary bar' option. This should - aid StarDict users since there're no icons in those - dictionaries. - - -- Dmitry E. Oboukhov Mon, 12 Oct 2009 16:58:32 +0400 - -goldendict (0.9.0+svn384-1) unstable; urgency=low - - * SVN revision: 384. - * Fix crash with Qt >= 4.5.3 when browsing MediaWiki sites by deleting - network replies after they signal completion, not immediately during - that moment. - * All translations were "lupdated" and now include all the latest - untranslated strings. - * German translation update by Daniel Kaneider. - * Allow the "file.dsl.files.zip" naming scheme for file.dsl.dz files. - The old one, "file.dsl.dz.files.zip" still works too. - * Warn if a user's running certain X.Org releases which have the RECORD - extension broken. - * Dictionary bar, a bar with dictonary icons for the current group, was - implemented. Clicking icons disables corresponding dictionaries. When - clicking with Shift/Ctrl, a dictionary can be made solo. - * View' menu introduced. It allows switching toolbars and side pane on/off - without any arcane knowledge on how to toggle them on/off via RMB. - * Greek translation added (thanks to Jennie Petoumenou) - * Fixes overblown menus when there's a large selection present. - - -- Dmitry E. Oboukhov Mon, 12 Oct 2009 11:25:00 +0400 - -goldendict (0.9.0+svn369-1) unstable; urgency=low - - * SVN revision: 369. - * Correctly handle bword:// links when they contain non-ascii - letters and dots by independently decoding IDN for each part. - * Prevent accidential index purging when the program is terminated - in some obsure way and the dictionary loading thread gets killed - prematurely. - * Add an option to block content (images, frames etc) not originating - from the site the user browses. This effectively hides all - advertisements on the websites. - - -- Dmitry E. Oboukhov Tue, 08 Sep 2009 21:54:36 +0400 - -goldendict (0.9.0+svn366-1) unstable; urgency=low - - * SVN revision: 366. - * Always allow session shutdown to proceed without any cancellations. - This fixes problems with GoldenDict preventing KDE4 from shutting down. - * Support all ISO-8859 encodings in form of %ISO1%, %ISO2% etc for - websites. - * Translate language code to a code of a major country speaking that - language, and use that country's flag as an icon for the language. - Previously the language code was used as a country code without any - translation, which only worked right if they were matching, that - being merely a coincidence (e.g. ru => RU, but zh => CN). - * German translation added (thanks to Daniel Kaneider) - The translation is 90% complete -- this is an ongoing effort. - * In Qt style file, specify foreground color as well, so the colors would - always be consistent no matter the chosen system color theme. - * Remove some erroneous sokuon cases from Romaji tables. - * Support for double consonants (sokuon) added. - * When performing diacritics folding, weed out any combining marks which - managed to get past the normal diacritic folding routine. - * Fixed list in the long description, closes: #542455, - thanks for Gerfried Fuchs . - - -- Dmitry E. Oboukhov Fri, 21 Aug 2009 11:54:07 +0400 - -goldendict (0.9.0+svn357-1) unstable; urgency=low - - * SVN revision: 357 (all my patches were applied by upstream). - * Now a few translations are available under debian. - - -- Dmitry E. Oboukhov Mon, 03 Aug 2009 23:56:29 +0400 - -goldendict (0.9.0+svn354-5) unstable; urgency=low - - * Now bug in libzip was fixed, so we can restore the dependence. - - -- Dmitry E. Oboukhov Wed, 29 Jul 2009 09:52:23 +0400 - -goldendict (0.9.0+svn354-4) unstable; urgency=low - - * Middle click on mainwindow. - * Double click add dictionary to group. - - -- Dmitry E. Oboukhov Thu, 23 Jul 2009 15:39:10 +0400 - -goldendict (0.9.0+svn354-3) unstable; urgency=low - - * Fix FTBFS on S390. - - -- Dmitry E. Oboukhov Mon, 13 Jul 2009 10:05:18 +0400 - -goldendict (0.9.0+svn354-2) unstable; urgency=low - - * Middle mouse click on TrayIcon. - * Patched version of libzip was temporary given back into goldendict, - we are waiting for close the bug: #536215. - - -- Dmitry E. Oboukhov Fri, 10 Jul 2009 09:25:17 +0400 - -goldendict (0.9.0+svn354-1) experimental; urgency=low - - * SVN revision: 354. - * Standards-Version bumped to 3.8.2. - - -- Dmitry E. Oboukhov Wed, 08 Jul 2009 11:16:40 +0400 - -goldendict (0.9.0+deb1-1) unstable; urgency=low - - * Initial Release, closes: #531766. - * Sources were repackaged: added external dependence to libzip. - - -- Dmitry E. Oboukhov Mon, 25 May 2009 23:51:31 +0400 + -- Maksim Tomkowicz Sat, 19 Oct 2013 18:55:12 +0300 diff -Nru goldendict-1.0.2~git20130620/debian/control goldendict-1.5.0~ppa131019/debian/control --- goldendict-1.0.2~git20130620/debian/control 2013-06-20 19:20:37.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/control 2013-10-19 16:06:18.000000000 +0000 @@ -1,29 +1,18 @@ Source: goldendict Priority: optional Section: utils -Maintainer: Dmitry E. Oboukhov -Standards-Version: 3.9.3 -Build-Depends: cdbs, debhelper (>= 7), - libao-dev, - libavformat-dev, - libavutil-dev, - liblzo2-dev, - libxtst-dev, - libbz2-dev, - libhunspell-dev, - libphonon-dev, - libqt4-dev (>= 4.5.1), - libqtwebkit-dev, - libvorbis-dev, - libx11-dev, - libxtst-dev, - pkg-config, - qt4-qmake, - x11proto-record-dev, - zlib1g-dev -Homepage: http://goldendict.berlios.de/ -VCS-Browser: http://git.debian.org/?p=collab-maint/goldendict.git;a=summary -VCS-Git: git://git.debian.org/collab-maint/goldendict.git +Maintainer: Maksim Tomkowicz +Standards-Version: 3.9.4 +Build-Depends: cdbs, debhelper (>= 8.0.0), + x11proto-record-dev, libxtst-dev, + qt4-qmake, libqt4-dev (>= 4.8.0), libvorbis-dev, + libhunspell-dev, libx11-dev, zlib1g-dev, + pkg-config, libqtwebkit-dev, libbz2-dev, + liblz-dev, libogg-dev, liblzo2-dev, libao-dev, + libavutil-dev, libavformat-dev, libavcodec-dev +Homepage: https://github.com/goldendict/goldendict +Vcs-Git: git://github.com/goldendict/goldendict.git +Vcs-Browser: https://github.com/goldendict/goldendict Package: goldendict Suggests: goldendict-wordnet diff -Nru goldendict-1.0.2~git20130620/debian/copyright goldendict-1.5.0~ppa131019/debian/copyright --- goldendict-1.0.2~git20130620/debian/copyright 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/copyright 2013-10-19 16:06:18.000000000 +0000 @@ -1,5 +1,5 @@ -This package was debianized by Dmitry E. Oboukhov on -Thu Jun 4 00:08:48 MSD 2009. +This package was debianized by Maksim Tomkowicz on +Thu Mon, 10 Jun 2013 20:50:35 +0300. It was downloaded from: http://goldendict.berlios.de @@ -7,7 +7,7 @@ Upstream Author: Konstantin Isakov - Copyright (c) 2008-2009 Konstantin Isakov + Copyright (c) 2008-2013 Konstantin Isakov This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -94,5 +94,5 @@ or other dealings in these Data Files or Software without prior written authorization of the copyright holder. -The Debian packaging is (C) 2009, Dmitry E. Oboukhov and -is licensed under the GPL, see `/usr/share/common-licenses/GPL-3'. +The Debian packaging is (C) 2013, Maksim Tomkowicz +andi is licensed under the GPL, see `/usr/share/common-licenses/GPL-3'. diff -Nru goldendict-1.0.2~git20130620/debian/goldendict.install goldendict-1.5.0~ppa131019/debian/goldendict.install --- goldendict-1.0.2~git20130620/debian/goldendict.install 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/goldendict.install 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -locale/*.qm /usr/share/apps/goldendict/locale/ diff -Nru goldendict-1.0.2~git20130620/debian/goldendict.manpages goldendict-1.5.0~ppa131019/debian/goldendict.manpages --- goldendict-1.0.2~git20130620/debian/goldendict.manpages 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/goldendict.manpages 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -debian/goldendict.1 diff -Nru goldendict-1.0.2~git20130620/debian/goldendict.menu goldendict-1.5.0~ppa131019/debian/goldendict.menu --- goldendict-1.0.2~git20130620/debian/goldendict.menu 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/goldendict.menu 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -?package(goldendict):needs="X11" section="Applications/Office"\ - title="GoldenDict" command="/usr/bin/goldendict"\ - hints="a feature-rich dictionary lookup program" \ - icon="/usr/share/pixmaps/goldendict.png" - diff -Nru goldendict-1.0.2~git20130620/debian/goldendict.pod goldendict-1.5.0~ppa131019/debian/goldendict.pod --- goldendict-1.0.2~git20130620/debian/goldendict.pod 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/goldendict.pod 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ -=encoding utf-8 - -=head1 NAME - -goldendict - a feature-rich dictionary lookup program - -=head1 SYNOPSIS - - goldendict - -=head1 DESCRIPTION - -B is a cross-platform and international dictionary written -in QT. - -=head1 Features - -=over - -=item * - -Use of WebKit for an accurate articles' representation, -complete with all formatting, colors, images and links. - -=item * - -Support of multiple dictionary file formats, namely: - -=over - -=item * - -Babylon .BGL files, complete with images and resources - -=item * - -StarDict .ifo/.dict./.idx/.syn dictionaries - -=item * - -Dictd .index/.dict(.dz) dictionary files - -=item * - -ABBYY Lingvo .dsl source files, together with abbreviations. -The files can be optionally compressed with dictzip. Dictionary -res-urces can be packed together into a .zip file. - -=item * - -ABBYY Lingvo .lsa/.dat audio archives. Those can be indexed -separately, -r be referred to from .dsl files. - -=back - -=item * - -Support for Wikipedia, Wiktionary, or any other MediaWiki-based -sites to perform lookups in. - -=item * - -Ability to use arbitrary websites as dictionaries via templated -Url patterns. - -=item * - -Hunspell-based morphology system, used for word stemming and -spelling suggestions. - -=item * - -Ability to index arbitrary directories with audio files for -pronunciation lookups. - -=item * - -Full Unicode case, diacritics, punctuation and whitespace folding. -This means the ability to type in words without any accents, -correct case, punctuation or spaces (e.g. typing 'Grussen' would -yield 'grüßen' in German dictionaries). - -=item * - -Scan popup functionality. A small window pops up with the -translation of a word chosen from another application. - -=item * - -Support for global hotkeys. You can spawn the program window at -any point, or directly translate a word from the clipboard. - -=item * - -Tabbed browsing in a modern Qt 4 interface. - -=back - -=head1 LICENSE - -Copyright (c) 2008-2009 Konstantin Isakov L - -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 3 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. - -=head1 HOMEPAGE - -http://goldendict.berlios.de/ - -=head1 BUGREPORTS - -For bugreports into upstream use forum L. - -If You use goldendict under Debian, You can submit a bugreport upto Debian-BTS. -For additional information use the link: L. - -This manpage was written by Dmitry E. Oboukhov L for -Debian project. diff -Nru goldendict-1.0.2~git20130620/debian/patches/desktop-category goldendict-1.5.0~ppa131019/debian/patches/desktop-category --- goldendict-1.0.2~git20130620/debian/patches/desktop-category 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/patches/desktop-category 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- goldendict-1.0.2~git20120929.orig/redist/goldendict.desktop -+++ goldendict-1.0.2~git20120929/redist/goldendict.desktop -@@ -1,7 +1,7 @@ - [Desktop Entry] - Type=Application - Terminal=false --Categories=Office;Dictionary;Education;Qt;Applications -+Categories=Office;Dictionary;Education;Qt - Name=GoldenDict - GenericName=Multiformat Dictionary - Comment=GoldenDict diff -Nru goldendict-1.0.2~git20130620/debian/patches/desktop-file-does-not-conflict-with-the-other-packages goldendict-1.5.0~ppa131019/debian/patches/desktop-file-does-not-conflict-with-the-other-packages --- goldendict-1.0.2~git20130620/debian/patches/desktop-file-does-not-conflict-with-the-other-packages 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/patches/desktop-file-does-not-conflict-with-the-other-packages 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ ---- goldendict-1.0.2~git20120929.orig/goldendict.pro -+++ goldendict-1.0.2~git20120929/goldendict.pro -@@ -79,15 +79,15 @@ unix:!mac { - icons.path = $$PREFIX/share/pixmaps - icons.files = redist/icons/*.* - INSTALLS += icons -- icons2.path = $$PREFIX/share/app-install/icons -- icons2.files = redist/icons/*.* -- INSTALLS += icons2 -+# icons2.path = $$PREFIX/share/app-install/icons -+# icons2.files = redist/icons/*.* -+# INSTALLS += icons2 - desktops.path = $$PREFIX/share/applications - desktops.files = redist/*.desktop - INSTALLS += desktops -- desktops2.path = $$PREFIX/share/app-install/desktop -- desktops2.files = redist/*.desktop -- INSTALLS += desktops2 -+# desktops2.path = $$PREFIX/share/app-install/desktop -+# desktops2.files = redist/*.desktop -+# INSTALLS += desktops2 - } - mac { - TARGET = GoldenDict diff -Nru goldendict-1.0.2~git20130620/debian/patches/disable-autostart-control goldendict-1.5.0~ppa131019/debian/patches/disable-autostart-control --- goldendict-1.0.2~git20130620/debian/patches/disable-autostart-control 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/patches/disable-autostart-control 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ ---- goldendict-1.0.2~git20120929.orig/preferences.ui -+++ goldendict-1.0.2~git20120929/preferences.ui -@@ -159,6 +159,9 @@ the application. - - - -+ -+ false -+ - - Automatically starts GoldenDict after operation system bootup. - diff -Nru goldendict-1.0.2~git20130620/debian/patches/series goldendict-1.5.0~ppa131019/debian/patches/series --- goldendict-1.0.2~git20130620/debian/patches/series 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -desktop-category -disable-autostart-control -wordnet-dict-paths -desktop-file-does-not-conflict-with-the-other-packages diff -Nru goldendict-1.0.2~git20130620/debian/patches/wordnet-dict-paths goldendict-1.5.0~ppa131019/debian/patches/wordnet-dict-paths --- goldendict-1.0.2~git20130620/debian/patches/wordnet-dict-paths 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/patches/wordnet-dict-paths 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - goldendict (1.0.2~git20120929-1) unstable; urgency=low - . - * New GIT-snapshot -Author: Dmitry E. Oboukhov - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: http://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- goldendict-1.0.2~git20120929.orig/config.cc -+++ goldendict-1.0.2~git20120929/config.cc -@@ -304,6 +304,9 @@ Class load() throw( exError ) - - if ( QDir( "/usr/share/dictd" ).exists() ) - c.paths.push_back( Path( "/usr/share/dictd", true ) ); -+ -+ if ( QDir( "/usr/share/goldendict-wordnet" ).exists() ) -+ c.paths.push_back( Path( "/usr/share/goldendict-wordnet", true ) ); - - if ( QDir( "/usr/share/WyabdcRealPeopleTTS" ).exists() ) - c.soundDirs.push_back( SoundDir( "/usr/share/WyabdcRealPeopleTTS", "WyabdcRealPeopleTTS" ) ); diff -Nru goldendict-1.0.2~git20130620/debian/rules goldendict-1.5.0~ppa131019/debian/rules --- goldendict-1.0.2~git20130620/debian/rules 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/rules 2013-10-19 16:06:18.000000000 +0000 @@ -19,7 +19,6 @@ install/goldendict:: find debian/goldendict -type f -name '*.*' -exec chmod 0644 '{}' + - pod2man debian/goldendict.pod debian/goldendict.1 clean:: rm -f debian/goldendict.1 version.txt diff -Nru goldendict-1.0.2~git20130620/debian/source/format goldendict-1.5.0~ppa131019/debian/source/format --- goldendict-1.0.2~git20130620/debian/source/format 2013-10-19 16:06:17.742566891 +0000 +++ goldendict-1.5.0~ppa131019/debian/source/format 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3.0 (quilt) diff -Nru goldendict-1.0.2~git20130620/debian/watch goldendict-1.5.0~ppa131019/debian/watch --- goldendict-1.0.2~git20130620/debian/watch 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/debian/watch 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -version=3 -opts=dversionmangle=s/\+deb\d+$// \ -http://goldendict.berlios.de/download.php \ - http://prdownload.berlios.de/goldendict/goldendict-(\d+(?:\.\d+)+)-src.*?.tar.bz2 diff -Nru goldendict-1.0.2~git20130620/decompress.cc goldendict-1.5.0~ppa131019/decompress.cc --- goldendict-1.0.2~git20130620/decompress.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/decompress.cc 2013-10-18 14:32:58.000000000 +0000 @@ -2,6 +2,10 @@ #include "zlib.h" #include "bzlib.h" +#ifdef MAKE_ZIM_SUPPORT +#include "lzma.h" +#endif + #define CHUNK_SIZE 2048 QByteArray zlibDecompress( const char * bufptr, unsigned length ) @@ -74,3 +78,42 @@ return str; } +#ifdef MAKE_ZIM_SUPPORT + +#define BUFSIZE 0xFFFF + +string decompressLzma2( const char * bufptr, unsigned length ) +{ +string str; +lzma_ret res; +char buf[BUFSIZE]; + + lzma_stream strm = LZMA_STREAM_INIT; + strm.next_in = reinterpret_cast< const uint8_t * >( bufptr ); + strm.avail_in = length; + + while( 1 ) + { + res = lzma_stream_decoder( &strm, UINT64_MAX, 0 ); + if( res != LZMA_OK ) + break; + + while ( res != LZMA_STREAM_END ) + { + strm.next_out = reinterpret_cast< uint8_t * >( buf ); + strm.avail_out = BUFSIZE; + res = lzma_code( &strm, LZMA_RUN ); + str.append( buf, BUFSIZE - strm.avail_out ); + if( res != LZMA_OK && res != LZMA_STREAM_END ) + break; + } + lzma_end( &strm ); + if( res != LZMA_STREAM_END ) + str.clear(); + + break; + } + return str; +} + +#endif diff -Nru goldendict-1.0.2~git20130620/decompress.hh goldendict-1.5.0~ppa131019/decompress.hh --- goldendict-1.0.2~git20130620/decompress.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/decompress.hh 2013-10-18 14:32:58.000000000 +0000 @@ -12,4 +12,10 @@ string decompressBzip2( const char * bufptr, unsigned length ); +#ifdef MAKE_ZIM_SUPPORT + +string decompressLzma2( const char * bufptr, unsigned length ); + +#endif + #endif // DECOMPRESS_HH diff -Nru goldendict-1.0.2~git20130620/delegate.cc goldendict-1.5.0~ppa131019/delegate.cc --- goldendict-1.0.2~git20130620/delegate.cc 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/delegate.cc 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,29 @@ +#include + +#include "delegate.hh" + +WordListItemDelegate::WordListItemDelegate( QAbstractItemDelegate * delegate ) : +QStyledItemDelegate() +{ + mainDelegate = static_cast< QStyledItemDelegate * >( delegate ); +} + +void WordListItemDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const +{ + QStyleOptionViewItemV4 opt4 = option; + QStyleOptionViewItem opt = option; + initStyleOption( &opt4, index ); + if( opt4.text.isRightToLeft() ) + { + opt.direction = Qt::RightToLeft; + if( opt4.textElideMode != Qt::ElideNone ) + opt.textElideMode = Qt::ElideLeft; + } + else + { + opt.direction = Qt::LeftToRight; + if( opt4.textElideMode != Qt::ElideNone ) + opt.textElideMode = Qt::ElideRight; + } + mainDelegate->paint( painter, opt, index ); +} diff -Nru goldendict-1.0.2~git20130620/delegate.hh goldendict-1.5.0~ppa131019/delegate.hh --- goldendict-1.0.2~git20130620/delegate.hh 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/delegate.hh 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,18 @@ +#ifndef __DELEGATE_HH_INCLUDED__ +#define __DELEGATE_HH_INCLUDED__ + +#include +#include + +class WordListItemDelegate : public QStyledItemDelegate +{ +public: + WordListItemDelegate( QAbstractItemDelegate * delegate ); + virtual void paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; + +private: + QStyledItemDelegate * mainDelegate; +}; + +#endif + diff -Nru goldendict-1.0.2~git20130620/dictdfiles.cc goldendict-1.5.0~ppa131019/dictdfiles.cc --- goldendict-1.0.2~git20130620/dictdfiles.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dictdfiles.cc 2013-10-18 14:32:58.000000000 +0000 @@ -18,6 +18,8 @@ #include #include "dprintf.hh" +#include + #ifdef _MSC_VER #include #endif @@ -291,13 +293,19 @@ static QRegExp phonetic( "\\\\([^\\\\]+)\\\\", Qt::CaseInsensitive ); // phonetics: \stuff\ ... static QRegExp refs( "\\{([^\\{\\}]+)\\}", Qt::CaseInsensitive ); // links: {stuff} - articleText = string( "
" ) + - QString::fromUtf8( Html::preformat( articleBody ).c_str() ) + articleText = string( "
\\1") .replace(refs, "\\1") - .toUtf8().data() + - "
"; - free( articleBody ); + .toUtf8().data(); + articleText += "
"; } // Ok. Now, does it go to main articles, or to alternate ones? We list @@ -391,6 +399,9 @@ { // Building the index string dictionaryName = nameFromFileName( dictFiles[ 0 ] ); + + qDebug( "DictD: Building the index for dictionary: %s\n", dictionaryName.c_str() ); + initializing.indexingDictionary( dictionaryName ); File::Class idx( indexFile, "wb" ); @@ -535,8 +546,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Dictd dictionary reading failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Dictd dictionary \"%s\" reading failed, error: %s\n", + i->c_str(), e.what() ); } } diff -Nru goldendict-1.0.2~git20130620/dictionary.cc goldendict-1.5.0~ppa131019/dictionary.cc --- goldendict-1.0.2~git20130620/dictionary.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dictionary.cc 2013-10-18 14:32:58.000000000 +0000 @@ -18,6 +18,7 @@ #include #include #include "fsencoding.hh" +#include "langcoder.hh" #include #include @@ -100,6 +101,9 @@ void DataRequest::getDataSlice( size_t offset, size_t size, void * buffer ) throw( exSliceOutOfRange ) { + if ( size == 0 ) + return; + Mutex::Lock _( dataMutex ); if ( offset + size > data.size() || !hasAnyData ) diff -Nru goldendict-1.0.2~git20130620/dictionary.hh goldendict-1.5.0~ppa131019/dictionary.hh --- goldendict-1.0.2~git20130620/dictionary.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dictionary.hh 2013-10-18 14:32:58.000000000 +0000 @@ -13,6 +13,7 @@ #include "ex.hh" #include "mutex.hh" #include "wstring.hh" +#include "langcoder.hh" /// Abstract dictionary-related stuff namespace Dictionary { @@ -389,6 +390,12 @@ // Return dictionary main file name virtual QString getMainFilename(); + /// Check text direction + bool isFromLanguageRTL() + { return LangCoder::isLanguageRTL( getLangFrom() ); } + bool isToLanguageRTL() + { return LangCoder::isLanguageRTL( getLangTo() ); } + /// Return true if dictionary is local dictionary virtual bool isLocalDictionary() { return false; } diff -Nru goldendict-1.0.2~git20130620/dictzip.c goldendict-1.5.0~ppa131019/dictzip.c --- goldendict-1.0.2~git20130620/dictzip.c 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dictzip.c 2013-10-18 14:32:58.000000000 +0000 @@ -460,6 +460,9 @@ for(;;) { +#ifdef __WIN32 + wchar_t wname[16384]; +#endif if (dict_read_header( filename, h, computeCRC )) { break; /* err_fatal( __func__, @@ -467,7 +470,6 @@ } #ifdef __WIN32 - wchar_t wname[16384]; if( MultiByteToWideChar( CP_UTF8, 0, filename, -1, wname, 16384 ) == 0 ) break; @@ -543,9 +545,8 @@ dictData *h, unsigned long start, unsigned long size, const char *preFilter, const char *postFilter ) { - (void) preFilter; - (void) postFilter; - char *buffer, *pt; + char * buffer; + char * pt; unsigned long end; int count; char *inBuffer; @@ -554,6 +555,8 @@ int firstOffset, lastOffset; int i, j; int found, target, lastStamp; + (void) preFilter; + (void) postFilter; end = start + size; @@ -670,6 +673,10 @@ count = h->cache[target].count; inBuffer = h->cache[target].inBuffer; } else { +#ifdef __WIN32 + DWORD pos ; + DWORD readed; +#endif h->cache[target].chunk = -1; if (!h->cache[target].inBuffer) h->cache[target].inBuffer = xmalloc( h->chunkLength ); @@ -688,8 +695,8 @@ } #ifdef __WIN32 - DWORD pos = SetFilePointer( h->fd, h->offsets[ i ], 0, FILE_BEGIN ); - DWORD readed = 0; + pos = SetFilePointer( h->fd, h->offsets[ i ], 0, FILE_BEGIN ); + readed = 0; if( pos != INVALID_SET_FILE_POINTER || GetLastError() != NO_ERROR ) ReadFile( h->fd, outBuffer, h->chunks[ i ], &readed, 0 ); if( h->chunks[ i ] != readed ) diff -Nru goldendict-1.0.2~git20130620/dsl.cc goldendict-1.5.0~ppa131019/dsl.cc --- goldendict-1.0.2~git20130620/dsl.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dsl.cc 2013-10-18 14:32:58.000000000 +0000 @@ -73,7 +73,7 @@ enum { Signature = 0x584c5344, // DSLX on little-endian, XLSD on big-endian - CurrentFormatVersion = 18 + BtreeIndexing::FormatVersion + Folding::Version, + CurrentFormatVersion = 19 + BtreeIndexing::FormatVersion + Folding::Version, CurrentZipSupportVersion = 2 }; @@ -346,7 +346,7 @@ chunks = new ChunkedStorage::Reader( idx, idxHeader.chunksOffset ); - // Open the .dict file + // Open the .dsl file dz = dict_data_open( getDictionaryFilenames()[ 0 ].c_str(), 0 ); @@ -519,6 +519,10 @@ DslIconv::getEncodingNameFor( DslEncoding( idxHeader.dslEncoding ) ), articleBody, articleSize ); free( articleBody ); + + // Strip DSL comments + bool b = false; + stripComments( articleData, b ); } catch( ... ) { @@ -668,7 +672,7 @@ string DslDictionary::dslToHtml( wstring const & str ) { // Normalize the string - wstring normalizedStr = gd::toWString( gd::toQString( str ).normalized( QString::NormalizationForm_C ) ); + wstring normalizedStr = gd::normalize( str ); ArticleDom dom( normalizedStr ); @@ -676,18 +680,7 @@ string html = processNodeChildren( dom.root ); - // Lines seem to indicate paragraphs in Dsls, so we enclose each line within - // a

. - - for( size_t x = html.size(); x--; ) - if ( html[ x ] == '\n' ) - html.insert( x + 1, "

" ); - - return -#if 0 // Enable this to enable dsl source in html as a comment - "" -#endif - "

" + html + "

"; + return html; } string DslDictionary::processNodeChildren( ArticleDom::Node const & node ) @@ -702,10 +695,26 @@ } string DslDictionary::nodeToHtml( ArticleDom::Node const & node ) { + string result; + if ( !node.isTag ) - return Html::escape( Utf8::encode( node.text ) ); + { + result = Html::escape( Utf8::encode( node.text ) ); - string result; + // Handle all end-of-line + + string::size_type n; + + // Strip all '\r' + while( ( n = result.find( '\r' ) ) != string::npos ) + result.erase( n, 1 ); + + // Replace all '\n' + while( ( n = result.find( '\n' ) ) != string::npos ) + result.replace( n, 1, "

" ); + + return result; + } if ( node.tagName == GD_NATIVE_TO_WS( L"b" ) ) result += "" + processNodeChildren( node ) + ""; @@ -739,6 +748,9 @@ result += "
" + processNodeChildren( node ) + "
"; } else + if ( node.tagName == GD_NATIVE_TO_WS( L"m" ) ) + result += "
" + processNodeChildren( node ) + "
"; + else if ( node.tagName.size() == 2 && node.tagName[ 0 ] == L'm' && iswdigit( node.tagName[ 1 ] ) ) result += "
" + processNodeChildren( node ) + "
"; @@ -861,6 +873,17 @@ + "\" alt=\"" + Html::escape( filename ) + "\"/>"; } else + if ( Filetype::isNameOfVideo( filename ) ) { + QUrl url; + url.setScheme( "gdvideo" ); + url.setHost( QString::fromUtf8( getId().c_str() ) ); + url.setPath( QString::fromUtf8( filename.c_str() ) ); + + result += string( "" + + "" + + "" + processNodeChildren( node ) + "" + ""; + } + else { // Unknown file type, downgrade to a hyperlink @@ -875,7 +898,12 @@ } else if ( node.tagName == GD_NATIVE_TO_WS( L"url" ) ) - result += "" + processNodeChildren( node ) + ""; + { + string link = Html::escape( Utf8::encode( node.renderAsText() ) ); + if( QUrl::fromEncoded( link.c_str() ).scheme().isEmpty() ) + link = "http://" + link; + result += "" + processNodeChildren( node ) + ""; + } else if ( node.tagName == GD_NATIVE_TO_WS( L"!trs" ) ) result += "" + processNodeChildren( node ) + ""; @@ -1215,54 +1243,71 @@ wstring articleBody; unsigned headwordIndex; - dict.loadArticle( chain[ x ].articleOffset, wordCaseFolded, tildeValue, - displayedHeadword, headwordIndex, articleBody ); - - if ( !articlesIncluded.insert( std::make_pair( chain[ x ].articleOffset, - headwordIndex ) ).second ) - continue; // We already have this article in the body. + string articleText, articleAfter; - dict.articleNom += 1; + try + { + dict.loadArticle( chain[ x ].articleOffset, wordCaseFolded, tildeValue, + displayedHeadword, headwordIndex, articleBody ); - if( displayedHeadword.empty() || isDslWs( displayedHeadword[ 0 ] ) ) - displayedHeadword = word; // Special case - insided card + if ( !articlesIncluded.insert( std::make_pair( chain[ x ].articleOffset, + headwordIndex ) ).second ) + continue; // We already have this article in the body. + + dict.articleNom += 1; + + if( displayedHeadword.empty() || isDslWs( displayedHeadword[ 0 ] ) ) + displayedHeadword = word; // Special case - insided card + + articleText += ""; + articleText += "
"; - articleText += "
"; + /// After this may be expand button will be inserted - if( displayedHeadword.size() == 1 && displayedHeadword[0] == '<' ) // Fix special case - "<" header - articleText += "<"; // dslToHtml can't handle it correctly. - else - articleText += dict.dslToHtml( displayedHeadword ); + articleAfter += "

"; - /// After this may be expand button will be inserted + expandTildes( articleBody, tildeValue ); - articleAfter += "
"; + articleAfter += "
"; - articleAfter += dict.dslToHtml( articleBody ); - articleAfter += "
"; - articleAfter += "
"; + if( dict.hasHiddenZones() ) + { + string prefix = "O" + dict.getId().substr( 0, 7 ) + "_" + QString::number( dict.articleNom ).toStdString(); + string id1 = prefix + "_expand"; + string id2 = prefix + "_opt_"; + string button = " \"[+]\"/"; + if( articleText.compare( articleText.size() - 4, 4, "

" ) == 0 ) + articleText.insert( articleText.size() - 4, " " + button ); + else + articleText += button; + } - if( dict.hasHiddenZones() ) + articleText += articleAfter; + } + catch( std::exception &ex ) { - string prefix = "O" + dict.getId().substr( 0, 7 ) + "_" + QString::number( dict.articleNom ).toStdString(); - string id1 = prefix + "_expand"; - string id2 = prefix + "_opt_"; - string button = "\"[+]\"/"; - if( articleText.compare( articleText.size() - 4, 4, "

" ) == 0 ) - articleText.insert( articleText.size() - 4, " " + button ); - else - articleText += button; + qWarning( "DSL: Failed loading article from \"%s\", reason: %s\n", dict.getName().c_str(), ex.what() ); + articleText = string( "" ) + + string( QObject::tr( "Article loading error" ).toUtf8().constData() ) + + ""; } - articleText += articleAfter; - Mutex::Lock _( dataMutex ); data.resize( data.size() + articleText.size() ); @@ -1442,13 +1487,11 @@ hasAnyData = true; } - catch( File::Ex & ) - { - // No such resource -- we don't set the hasAnyData flag then - } - catch( Utf8::exCantDecode ) + catch( std::exception &ex ) { - // Failed to decode some utf8 -- probably the resource name is no good + qWarning( "DSL: Failed loading resource \"%s\" for \"%s\", reason: %s\n", + resourceName.c_str(), dict.getName().c_str(), ex.what() ); + // Resource not loaded -- we don't set the hasAnyData flag then } finish(); @@ -1577,13 +1620,8 @@ // Building the index initializing.indexingDictionary( Utf8::encode( scanner.getDictionaryName() ) ); - DPRINTF( "Dictionary name: %ls\n", -#ifdef Q_OS_WIN - gd::toQString( scanner.getDictionaryName() ).toStdWString().c_str() -#else - scanner.getDictionaryName().c_str() -#endif - ); + qDebug() << "Dsl: Building the index for dictionary:" + << gd::toQString( scanner.getDictionaryName() ); File::Class idx( indexFile, "wb" ); @@ -1623,7 +1661,7 @@ for( ; ; ) { // Skip any whitespace - if ( !abrvScanner.readNextLine( curString, curOffset ) ) + if ( !abrvScanner.readNextLineWithoutComments( curString, curOffset ) ) break; if ( curString.empty() || isDslWs( curString[ 0 ] ) ) continue; @@ -1642,9 +1680,9 @@ expandOptionalParts( curString, &keys ); - if ( !abrvScanner.readNextLine( curString, curOffset ) || curString.empty() ) + if ( !abrvScanner.readNextLineWithoutComments( curString, curOffset ) || curString.empty() ) { - FDPRINTF( stderr, "Warning: premature end of file %s\n", abrvFileName.c_str() ); + qWarning( "Warning: premature end of file %s\n", abrvFileName.c_str() ); eof = true; break; } @@ -1696,8 +1734,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Error reading abrv file %s: %s. Skipping it.\n", - abrvFileName.c_str(), e.what() ); + qWarning( "Error reading abrv file \"%s\", error: %s. Skipping it.\n", + abrvFileName.c_str(), e.what() ); } } @@ -1711,7 +1749,7 @@ { // Find the main headword - if ( !hasString && !scanner.readNextLine( curString, curOffset ) ) + if ( !hasString && !scanner.readNextLineWithoutComments( curString, curOffset ) ) break; // Clean end of file hasString = false; @@ -1730,7 +1768,7 @@ { if ( !isDslWs( curString[ x ] ) ) { - FDPRINTF( stderr, "Warning: garbage string in %s at offset 0x%lX\n", i->c_str(), (unsigned long) curOffset ); + qWarning( "Warning: garbage string in %s at offset 0x%lX\n", i->c_str(), (unsigned long) curOffset ); break; } } @@ -1752,9 +1790,9 @@ for( ; ; ) { - if ( ! ( hasString = scanner.readNextLine( curString, curOffset ) ) ) + if ( ! ( hasString = scanner.readNextLineWithoutComments( curString, curOffset ) ) ) { - FDPRINTF( stderr, "Warning: premature end of file %s\n", i->c_str() ); + qWarning( "Warning: premature end of file %s\n", i->c_str() ); break; } @@ -1765,13 +1803,9 @@ if ( isDslWs( curString[ 0 ] ) ) break; // No more headwords - DPRINTF( "Alt headword: %ls\n", -#ifdef Q_OS_WIN - gd::toQString( curString ).toStdWString().c_str() -#else - curString.c_str() +#ifdef QT_DEBUG + qDebug() << "Alt headword" << gd::toQString( curString ); #endif - ); processUnsortedParts( curString, true ); expandTildes( curString, allEntryWords.front() ); @@ -1807,7 +1841,7 @@ for( ; ; ) { - if ( ! ( hasString = scanner.readNextLine( curString, curOffset ) ) + if ( ! ( hasString = scanner.readNextLineWithoutComments( curString, curOffset ) ) || ( curString.size() && !isDslWs( curString[ 0 ] ) ) ) { if( insideInsided ) @@ -1951,8 +1985,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "DSL dictionary reading failed: %s:%u, error: %s\n", - i->c_str(), atLine, e.what() ); + qWarning( "DSL dictionary reading failed: %s:%u, error: %s\n", + i->c_str(), atLine, e.what() ); } } diff -Nru goldendict-1.0.2~git20130620/dsl_details.cc goldendict-1.5.0~ppa131019/dsl_details.cc --- goldendict-1.0.2~git20130620/dsl_details.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dsl_details.cc 2013-10-18 14:32:58.000000000 +0000 @@ -2,16 +2,15 @@ * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ #include "dsl_details.hh" + #include "folding.hh" #include "langcoder.hh" -#include -#include #include "dprintf.hh" #include "ufile.hh" - -#ifdef Q_OS_WIN #include "wstring_qt.hh" -#endif + +#include +#include namespace Dsl { namespace Details { @@ -224,9 +223,10 @@ if ( !isClosing ) { - if ( name.size() == 2 && name[ 0 ] == L'm' && iswdigit( name[ 1 ] ) ) + if ( name == GD_NATIVE_TO_WS( L"m" ) || + ( name.size() == 2 && name[ 0 ] == L'm' && iswdigit( name[ 1 ] ) ) ) { - // Opening an 'mX' tag closes any previous 'm' tag + // Opening an 'mX' or 'm' tag closes any previous 'm' tag closeTag( GD_NATIVE_TO_WS( L"m" ), stack, false ); } @@ -544,13 +544,8 @@ else if ( warn ) { - FDPRINTF( stderr, "Warning: no corresponding opening tag for closing tag \"/%ls\" found.\n", -#ifdef Q_OS_WIN - gd::toQString( name ).toStdWString().c_str() -#else - name.c_str() -#endif - ); + qWarning() << "Warning: no corresponding opening tag for closing tag" << + gd::toQString( name ) << "found."; } } @@ -591,7 +586,7 @@ DslScanner::DslScanner( string const & fileName ) throw( Ex, Iconv::Ex ): encoding( Windows1252 ), iconv( encoding ), readBufferPtr( readBuffer ), - readBufferLeft( 0 ), linesRead( 0 ) + readBufferLeft( 0 ), wcharBuffer( 64 ), linesRead( 0 ) { // Since .dz is backwards-compatible with .gz, we use gz- functions to // read it -- they are much nicer than the dict_data- ones. @@ -860,6 +855,34 @@ } } +bool DslScanner::readNextLineWithoutComments( wstring & out, size_t & offset ) + throw( Ex, Iconv::Ex ) +{ + wstring str; + bool commentToNextLine = false; + size_t currentOffset; + + out.erase(); + offset = 0; + + do + { + bool b = readNextLine( str, currentOffset ); + + if( offset == 0 ) + offset = currentOffset; + + if( !b ) + return false; + + stripComments( str, commentToNextLine); + + out += str; + } + while( commentToNextLine ); + + return true; +} /////////////// DslScanner @@ -1067,6 +1090,35 @@ result->merge( expanded ); } +static const wstring openBraces( GD_NATIVE_TO_WS( L"{{" ) ); +static const wstring closeBraces( GD_NATIVE_TO_WS( L"}}" ) ); + +void stripComments( wstring & str, bool & nextLine ) +{ + string::size_type n = 0, n2 = 0; + + for( ; ; ) + { + if( nextLine ) + { + n = str.find( closeBraces, n2 ); + if( n == string::npos ) + { + str.erase( n2, n ); + return; + } + str.erase( n2, n - n2 + 2 ); + nextLine = false; + } + + n = str.find( openBraces, n2 ); + if( n == string::npos ) + return; + nextLine = true; + n2 = n; + } +} + void expandTildes( wstring & str, wstring const & tildeReplacement ) { for( size_t x = 0; x < str.size(); ) diff -Nru goldendict-1.0.2~git20130620/dsl_details.hh goldendict-1.5.0~ppa131019/dsl_details.hh --- goldendict-1.0.2~git20130620/dsl_details.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/dsl_details.hh 2013-10-18 14:32:58.000000000 +0000 @@ -145,6 +145,9 @@ /// with #). bool readNextLine( wstring &, size_t & offset ) throw( Ex, Iconv::Ex ); + /// Similar readNextLine but strip all DSL comments {{...}} + bool readNextLineWithoutComments( wstring &, size_t & offset ) throw( Ex, Iconv::Ex ); + /// Returns the number of lines read so far from the file. unsigned getLinesRead() const { return linesRead; } @@ -168,14 +171,17 @@ /// them. void expandTildes( wstring & str, wstring const & tildeReplacement ); -// Unescapes any escaped chars. Be sure to handle all their special meanings -// before unescaping them. +/// Unescapes any escaped chars. Be sure to handle all their special meanings +/// before unescaping them. void unescapeDsl( wstring & str ); -// Normalizes the headword. Currently turns any sequences of consecutive spaces -// into a single space. +/// Normalizes the headword. Currently turns any sequences of consecutive spaces +/// into a single space. void normalizeHeadword( wstring & ); +/// Strip DSL {{...}} comments +void stripComments( wstring &, bool & ); + inline size_t DslScanner::distanceToBytes( size_t x ) const { switch( encoding ) diff -Nru goldendict-1.0.2~git20130620/editdictionaries.cc goldendict-1.5.0~ppa131019/editdictionaries.cc --- goldendict-1.0.2~git20130620/editdictionaries.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/editdictionaries.cc 2013-10-18 14:32:58.000000000 +0000 @@ -48,7 +48,7 @@ connect( &sources, SIGNAL( rescan() ), this, SLOT( rescanSources() ) ); connect( groups.get(), SIGNAL( showDictionaryInfo( QString const & ) ), - this, SLOT( showDictionaryInfo(QString const & ) ) ); + this, SIGNAL( showDictionaryInfo(QString const & ) ) ); } void EditDictionaries::editGroup( unsigned id ) @@ -236,17 +236,3 @@ origCfg.inactiveDictionaries = orderAndProps->getCurrentInactiveDictionaries(); } } - -void EditDictionaries::showDictionaryInfo( QString const & dictId ) -{ - unsigned n; - for( n = 0; n < dictionaries.size(); n++ ) - if( dictId.compare( QString::fromUtf8( dictionaries[ n ]->getId().c_str() ) ) == 0 ) - break; - if( n < dictionaries.size() ) - { - DictInfo infoMsg( cfg, this ); - infoMsg.showInfo( dictionaries[ n ] ); - infoMsg.exec(); - } -} diff -Nru goldendict-1.0.2~git20130620/editdictionaries.hh goldendict-1.5.0~ppa131019/editdictionaries.hh --- goldendict-1.0.2~git20130620/editdictionaries.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/editdictionaries.hh 2013-10-18 14:32:58.000000000 +0000 @@ -47,6 +47,8 @@ void rescanSources(); +signals: + void showDictionaryInfo( QString const & dictId ); private: diff -Nru goldendict-1.0.2~git20130620/extlineedit.cc goldendict-1.5.0~ppa131019/extlineedit.cc --- goldendict-1.0.2~git20130620/extlineedit.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/extlineedit.cc 2013-10-18 14:32:58.000000000 +0000 @@ -5,6 +5,10 @@ #include +#if QT_VERSION >= 0x040600 +#include +#endif + ExtLineEdit::ExtLineEdit(QWidget *parent) : QLineEdit(parent) { @@ -95,10 +99,9 @@ int leftMargin = iconButtons[realLeft]->pixmap().width() + 8; int rightMargin = iconButtons[realRight]->pixmap().width() + 8; - QMargins margins((iconEnabled[realLeft] ? leftMargin : 0), 1, - (iconEnabled[realRight] ? rightMargin : 0), 1); - - setTextMargins(margins); + setTextMargins( + (iconEnabled[realLeft] ? leftMargin : 0), 1, + (iconEnabled[realRight] ? rightMargin : 0), 1); } void ExtLineEdit::updateButtonPositions() @@ -110,10 +113,14 @@ iconPos = (iconPos == Left ? Right : Left); if (iconPos == ExtLineEdit::Right) { - const int iconoffset = textMargins().right() + 4; + int right; + getTextMargins(0, 0, &right, 0); + const int iconoffset = right + 4; iconButtons[i]->setGeometry(contentRect.adjusted(width() - iconoffset, 0, 0, 0)); } else { - const int iconoffset = textMargins().left() + 4; + int left; + getTextMargins(&left, 0, 0, 0); + const int iconoffset = left + 4; iconButtons[i]->setGeometry(contentRect.adjusted(0, 0, -width() + iconoffset, 0)); } } @@ -172,6 +179,7 @@ void IconButton::animate(bool visible) { +#if QT_VERSION >= 0x040600 QPropertyAnimation *animation = new QPropertyAnimation(this, "opacity"); animation->setDuration(250); if (visible) @@ -183,4 +191,7 @@ animation->setEndValue(0.0); } animation->start(QAbstractAnimation::DeleteWhenStopped); +#else + setOpacity(visible ? 1.0 : 0.0); +#endif } diff -Nru goldendict-1.0.2~git20130620/extlineedit.hh goldendict-1.5.0~ppa131019/extlineedit.hh --- goldendict-1.0.2~git20130620/extlineedit.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/extlineedit.hh 2013-10-18 14:32:58.000000000 +0000 @@ -6,7 +6,6 @@ #include #include -#include class IconButton: public QAbstractButton { diff -Nru goldendict-1.0.2~git20130620/ffmpegaudio.cc goldendict-1.5.0~ppa131019/ffmpegaudio.cc --- goldendict-1.0.2~git20130620/ffmpegaudio.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/ffmpegaudio.cc 2013-10-18 14:32:58.000000000 +0000 @@ -23,6 +23,7 @@ #include #include +#include #include @@ -71,6 +72,11 @@ thread->start(); } +void AudioPlayer::stop() +{ + emit cancelPlaying( false ); +} + struct DecoderContext { enum diff -Nru goldendict-1.0.2~git20130620/ffmpegaudio.hh goldendict-1.5.0~ppa131019/ffmpegaudio.hh --- goldendict-1.0.2~git20130620/ffmpegaudio.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/ffmpegaudio.hh 2013-10-18 14:32:58.000000000 +0000 @@ -19,6 +19,7 @@ public: static AudioPlayer & instance(); void playMemory( const void * ptr, int size ); + void stop(); signals: void cancelPlaying( bool waitUntilFinished ); diff -Nru goldendict-1.0.2~git20130620/file.cc goldendict-1.5.0~ppa131019/file.cc --- goldendict-1.0.2~git20130620/file.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/file.cc 2013-10-18 14:32:58.000000000 +0000 @@ -9,7 +9,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #ifdef __WIN32 #include @@ -248,7 +250,7 @@ if ( writeBuffer ) flushWriteBuffer(); - return feof( f ); + return feof( f ) != 0; } FILE * Class::file() throw( exWriteError ) diff -Nru goldendict-1.0.2~git20130620/filetype.cc goldendict-1.5.0~ppa131019/filetype.cc --- goldendict-1.0.2~git20130620/filetype.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/filetype.cc 2013-10-18 14:32:58.000000000 +0000 @@ -53,7 +53,6 @@ endsWith( s, ".voc" ) || endsWith( s, ".ogg" ) || endsWith( s, ".mp3" ) || - endsWith( s, ".mp4" ) || endsWith( s, ".m4a") || endsWith( s, ".aac" ) || endsWith( s, ".flac" ) || @@ -66,6 +65,28 @@ endsWith( s, ".spx" ); } +bool isNameOfVideo( string const & name ) +{ + string s = simplifyString( name ); + + return + endsWith( s, ".mpg" ) || + endsWith( s, ".mpeg" )|| + endsWith( s, ".mpe" ) || + endsWith( s, ".ogv" ) || + endsWith( s, ".ogm" ) || + endsWith( s, ".avi" ) || + endsWith( s, ".m4v" ) || + endsWith( s, ".mp4" ) || + endsWith( s, ".mkv" ) || + endsWith( s, ".wmv" ) || + endsWith( s, ".sfw" ) || + endsWith( s, ".flv" ) || + endsWith( s, ".divx" ) || + endsWith( s, ".3gp" ) || + endsWith( s, ".mov" ); +} + bool isNameOfPicture( string const & name ) { string s = simplifyString( name ); diff -Nru goldendict-1.0.2~git20130620/filetype.hh goldendict-1.5.0~ppa131019/filetype.hh --- goldendict-1.0.2~git20130620/filetype.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/filetype.hh 2013-10-18 14:32:58.000000000 +0000 @@ -14,6 +14,9 @@ /// Returns true if the name resembles the one of a sound file (i.e. ends /// with .wav, .ogg and such). bool isNameOfSound( string const & ); +/// Returns true if the name resembles the one of a video file (i.e. ends +/// with .mpg, .ogv and such). +bool isNameOfVideo( string const & ); /// Returns true if the name resembles the one of a picture file (i.e. ends /// with .jpg, .png and such). bool isNameOfPicture( string const & ); diff -Nru goldendict-1.0.2~git20130620/forvo.cc goldendict-1.5.0~ppa131019/forvo.cc --- goldendict-1.0.2~git20130620/forvo.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/forvo.cc 2013-10-18 14:32:58.000000000 +0000 @@ -153,13 +153,7 @@ void ForvoArticleRequest::addQuery( QNetworkAccessManager & mgr, wstring const & str ) { - DPRINTF( "Requesting article %ls\n", -#ifdef Q_OS_WIN - gd::toQString( str ).toStdWString().c_str() -#else - str.c_str() -#endif - ); + qDebug() << "Forvo: requesting article" << gd::toQString( str ); QString key; diff -Nru goldendict-1.0.2~git20130620/gdappstyle.cc goldendict-1.5.0~ppa131019/gdappstyle.cc --- goldendict-1.0.2~git20130620/gdappstyle.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/gdappstyle.cc 2013-10-18 14:32:58.000000000 +0000 @@ -2,6 +2,9 @@ * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ #include "gdappstyle.hh" + +#if QT_VERSION >= 0x040600 + #include "dictionarybar.hh" #include @@ -44,3 +47,5 @@ return false; } + +#endif // QT_VERSION diff -Nru goldendict-1.0.2~git20130620/gdappstyle.hh goldendict-1.5.0~ppa131019/gdappstyle.hh --- goldendict-1.0.2~git20130620/gdappstyle.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/gdappstyle.hh 2013-10-18 14:32:58.000000000 +0000 @@ -4,6 +4,11 @@ #ifndef GDAPPSTYLE_HH #define GDAPPSTYLE_HH +#include + +#if QT_VERSION >= 0x040600 + +#include #include #include @@ -25,4 +30,6 @@ }; +#endif // QT_VERSION + #endif // GDAPPSTYLE_HH diff -Nru goldendict-1.0.2~git20130620/goldendict.pro goldendict-1.5.0~ppa131019/goldendict.pro --- goldendict-1.0.2~git20130620/goldendict.pro 2013-06-20 19:14:34.000000000 +0000 +++ goldendict-1.5.0~ppa131019/goldendict.pro 2013-10-18 14:32:58.000000000 +0000 @@ -35,7 +35,38 @@ !isEmpty(DISABLE_INTERNAL_PLAYER): DEFINES += DISABLE_INTERNAL_PLAYER win32 { - TARGET = GoldenDict + TARGET = GoldenDict + + win32-msvc* { + VERSION = 1.5.0 # More complicated things cause errors during compilation under MSVC++ + DEFINES += __WIN32 _CRT_SECURE_NO_WARNINGS + contains(QMAKE_TARGET.arch, x86_64) { + DEFINES += NOMINMAX __WIN64 + LIBS += -L$${PWD}/winlibs/lib/msvc/x64 + } else { + LIBS += -L$${PWD}/winlibs/lib/msvc + } + QMAKE_CXXFLAGS += /wd4290 # silence the warning C4290: C++ exception specification ignored + QMAKE_LFLAGS_RELEASE += /LTCG /OPT:REF /OPT:ICF + # QMAKE_CXXFLAGS_RELEASE += /GL # slows down the linking significantly + LIBS += -lshell32 -luser32 -lsapi -lole32 -lhunspell + HUNSPELL_LIB = hunspell + } else { + LIBS += -lhunspell-1.3.2 + CONFIG(gcc48) { + x64 { + LIBS += -L$${PWD}/winlibs/lib64-48 + QMAKE_CXXFLAGS += -m64 + QMAKE_CFLAGS += -m64 + } else { + LIBS += -L$${PWD}/winlibs/lib32-48 + } + } else { + LIBS += -L$${PWD}/winlibs/lib + } + !x64:QMAKE_LFLAGS += -Wl,--large-address-aware + } + LIBS += -liconv \ -lwsock32 \ -lpsapi \ @@ -45,8 +76,8 @@ -lcomdlg32 LIBS += -lvorbisfile \ -lvorbis \ - -logg \ - -lhunspell-1.3.2 + -logg + isEmpty(DISABLE_INTERNAL_PLAYER) { LIBS += -lao \ -lavutil-gd \ @@ -55,15 +86,15 @@ } RC_FILE = goldendict.rc INCLUDEPATH += winlibs/include - LIBS += -L$${PWD}/winlibs/lib # Enable console in Debug mode on Windows, with useful logging messages Debug:CONFIG += console Release:DEFINES += NO_CONSOLE - !x64:QMAKE_LFLAGS += -Wl,--large-address-aware gcc48:QMAKE_CXXFLAGS += -Wno-unused-local-typedefs + + CONFIG += zim_support } unix:!mac { @@ -87,26 +118,27 @@ } else { LIBS += -lX11 -lXtst } - PREFIX = $$(PREFIX) + + # Install prefix: first try to use qmake's PREFIX variable, + # then $PREFIX from system environment, and if both fails, + # use the hardcoded /usr/local. + PREFIX = $${PREFIX} + isEmpty( PREFIX ):PREFIX = $$(PREFIX) isEmpty( PREFIX ):PREFIX = /usr/local - DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\" + message(Install Prefix is: $$PREFIX) + + DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\" target.path = $$PREFIX/bin/ - locale.path = $$PREFIX/share/apps/goldendict/locale/ + locale.path = $$PREFIX/share/goldendict/locale/ locale.files = locale/*.qm INSTALLS += target \ locale icons.path = $$PREFIX/share/pixmaps icons.files = redist/icons/*.* INSTALLS += icons - icons2.path = $$PREFIX/share/app-install/icons - icons2.files = redist/icons/*.* - INSTALLS += icons2 desktops.path = $$PREFIX/share/applications desktops.files = redist/*.desktop INSTALLS += desktops - desktops2.path = $$PREFIX/share/app-install/desktop - desktops2.files = redist/*.desktop - INSTALLS += desktops2 } mac { TARGET = GoldenDict @@ -135,10 +167,13 @@ macmouseover.mm \ speechclient_mac.mm ICON = icons/macicon.icns + QMAKE_INFO_PLIST = myInfo.plist QMAKE_POST_LINK = mkdir -p GoldenDict.app/Contents/Frameworks & \ cp -nR $${PWD}/maclibs/lib/ GoldenDict.app/Contents/Frameworks/ & \ mkdir -p GoldenDict.app/Contents/MacOS/locale & \ cp -R locale/*.qm GoldenDict.app/Contents/MacOS/locale/ + + CONFIG += zim_support } DEFINES += PROGRAM_VERSION=\\\"$$VERSION\\\" @@ -242,7 +277,9 @@ mdx.hh \ voiceengines.hh \ ffmpegaudio.hh \ - articleinspector.hh + articleinspector.hh \ + delegate.hh \ + zim.hh FORMS += groups.ui \ dictgroupwidget.ui \ @@ -350,7 +387,9 @@ mdx.cc \ voiceengines.cc \ ffmpegaudio.cc \ - articleinspector.cc + articleinspector.cc \ + delegate.cc \ + zim.cc win32 { FORMS += texttospeechsource.ui @@ -380,6 +419,11 @@ SOURCES += texttospeechsource.cc } +CONFIG( zim_support ) { + DEFINES += MAKE_ZIM_SUPPORT + LIBS += -llzma +} + RESOURCES += resources.qrc \ flags.qrc TRANSLATIONS += locale/ru_RU.ts \ @@ -410,7 +454,10 @@ locale/be_BY@latin.ts \ locale/fr_FR.ts \ locale/ko_KR.ts \ - locale/nl_NL.ts + locale/nl_NL.ts \ + locale/sr_SR.ts \ + locale/sv_SE.ts \ + locale/tk_TM.ts # Build version file !isEmpty( hasGit ) { @@ -435,6 +482,14 @@ win32:# Windows doesn't seem to have *-qt4 symlinks isEmpty(QMAKE_LRELEASE):QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease isEmpty(QMAKE_LRELEASE):QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease-qt4 + +# The *.qm files might not exist when qmake is run for the first time, +# causing the standard install rule to be ignored, and no translations +# will be installed. With this, we create the qm files during qmake run. +!win32 { + system($${QMAKE_LRELEASE} -silent $${_PRO_FILE_} 2> /dev/null) +} + updateqm.input = TRANSLATIONS updateqm.output = locale/${QMAKE_FILE_BASE}.qm updateqm.commands = $$QMAKE_LRELEASE \ diff -Nru goldendict-1.0.2~git20130620/goldendict.rc goldendict-1.5.0~ppa131019/goldendict.rc --- goldendict-1.0.2~git20130620/goldendict.rc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/goldendict.rc 2013-10-18 14:32:58.000000000 +0000 @@ -1,10 +1,13 @@ -#include "winuser.h" +#include "windows.h" IDI_ICON1 ICON DISCARDABLE "icons/programicon.ico" +IDI_ICON2 ICON DISCARDABLE "icons/programicon_old.ico" #define GOLDENDICT_VER 1,5,0,0 #define GOLDENDICT_VER_STR "1.5.0" +#ifndef _MSC_VER // Visual Studio embeds the manifest automatically 1 RT_MANIFEST GoldenDict.exe.manifest +#endif 1 VERSIONINFO FILEVERSION GOLDENDICT_VER diff -Nru goldendict-1.0.2~git20130620/goldendict.sln goldendict-1.5.0~ppa131019/goldendict.sln --- goldendict-1.0.2~git20130620/goldendict.sln 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/goldendict.sln 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "goldendict", "goldendict.vcxproj", "{C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug-Qt4|Win32 = Debug-Qt4|Win32 + Debug-Qt4|x64 = Debug-Qt4|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-Qt4|Win32 = Release-Qt4|Win32 + Release-Qt4|x64 = Release-Qt4|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug|Win32.ActiveCfg = Debug|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug|Win32.Build.0 = Debug|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug|x64.ActiveCfg = Debug|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug|x64.Build.0 = Debug|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug-Qt4|Win32.ActiveCfg = Debug-Qt4|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug-Qt4|Win32.Build.0 = Debug-Qt4|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug-Qt4|x64.ActiveCfg = Debug-Qt4|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Debug-Qt4|x64.Build.0 = Debug-Qt4|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release|Win32.ActiveCfg = Release|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release|Win32.Build.0 = Release|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release|x64.ActiveCfg = Release|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release|x64.Build.0 = Release|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release-Qt4|Win32.ActiveCfg = Release-Qt4|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release-Qt4|Win32.Build.0 = Release-Qt4|Win32 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release-Qt4|x64.ActiveCfg = Release-Qt4|x64 + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8}.Release-Qt4|x64.Build.0 = Release-Qt4|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff -Nru goldendict-1.0.2~git20130620/goldendict.vcxproj goldendict-1.5.0~ppa131019/goldendict.vcxproj --- goldendict-1.0.2~git20130620/goldendict.vcxproj 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/goldendict.vcxproj 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,1373 @@ + + + + + Debug-Qt4 + Win32 + + + Debug-Qt4 + x64 + + + Debug + x64 + + + Release-Qt4 + Win32 + + + Release-Qt4 + x64 + + + Release + Win32 + + + Debug + Win32 + + + Release + x64 + + + + {C3D65E5B-B7EE-3F85-B73F-6D65D9C501A8} + GoldenDict + Qt4VSv1.0 + + + + v110 + release\ + false + Unicode + Application + build\ + GoldenDict1 + true + + + v110 + release\ + false + Unicode + Application + build\ + GoldenDict1 + true + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + true + + + v110 + debug\ + false + Unicode + Application + build\ + GoldenDict1 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + tmp\ + GoldenDict + GoldenDict + true + true + false + false + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + tmp\ + tmp\ + GoldenDict + GoldenDict + GoldenDict + GoldenDict + GoldenDict + GoldenDict + true + true + true + true + true + true + + + + + + + false + $(ProjectDir)\tmp\$(Configuration)\$(Platform)\ + true + + + false + $(ProjectDir)\tmp\$(Configuration)\$(Platform)\ + true + + + + + + ".";"winlibs\include";"qtsingleapplication\src";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKitWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQuick";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimediaWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtOpenGL";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtPrintSupport";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSvg";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKit";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimedia";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSensors";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtNetwork";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtXml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtGui";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtANGLE";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtCore";"build";"build";..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + Sync + MaxSpeed + __LZO_EXPORT1XXXX#__declspec(dllimport);_WINDOWS;UNICODE;WIN32;NO_CONSOLE;PROGRAM_VERSION="1.5.0+git";QT_NO_DEBUG;QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;NDEBUG;__WIN32;NOMINMAX;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreadedDLL + true + true + true + Level3 + 4290;%(DisableSpecificWarnings) + true + Speed + false + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;hunspell.lib;lzo2.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\Qt5WebKitWidgets.lib;$(QTDIR)\lib\Qt5Quick.lib;$(QTDIR)\lib\Qt5MultimediaWidgets.lib;$(QTDIR)\lib\Qt5OpenGL.lib;$(QTDIR)\lib\Qt5PrintSupport.lib;$(QTDIR)\lib\Qt5Svg.lib;$(QTDIR)\lib\Qt5WebKit.lib;$(QTDIR)\lib\Qt5Qml.lib;$(QTDIR)\lib\Qt5Multimedia.lib;$(QTDIR)\lib\Qt5Widgets.lib;$(QTDIR)\lib\Qt5Sensors.lib;$(QTDIR)\lib\Qt5Network.lib;$(QTDIR)\lib\Qt5Xml.lib;$(QTDIR)\lib\Qt5Gui.lib;$(QTDIR)\lib\Qt5Core.lib;libEGL.lib;libGLESv2.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + false + true + false + $(OutDir)\GoldenDict.exe + true + Windows + true + 1.5 + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;WIN32;NO_CONSOLE;PROGRAM_VERSION=\"1.5.0+git\";QT_NO_DEBUG;QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + ".";"winlibs\include";"qtsingleapplication\src";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKitWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQuick";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimediaWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtOpenGL";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtPrintSupport";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSvg";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKit";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimedia";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSensors";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtNetwork";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtXml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtGui";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtANGLE";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtCore";"build";"build";..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + Sync + MaxSpeed + __WIN32;__WIN64;NOMINMAX;_CRT_SECURE_NO_WARNINGS;QT_NO_OPENSSL;UNICODE;WIN32;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + false + MultiThreadedDLL + true + true + true + Level3 + 4290;%(DisableSpecificWarnings) + true + Speed + false + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;hunspell.lib;lzo2.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\Qt5WebKitWidgets.lib;$(QTDIR)\lib\Qt5Quick.lib;$(QTDIR)\lib\Qt5MultimediaWidgets.lib;$(QTDIR)\lib\Qt5OpenGL.lib;$(QTDIR)\lib\Qt5PrintSupport.lib;$(QTDIR)\lib\Qt5Svg.lib;$(QTDIR)\lib\Qt5WebKit.lib;$(QTDIR)\lib\Qt5Qml.lib;$(QTDIR)\lib\Qt5Multimedia.lib;$(QTDIR)\lib\Qt5Widgets.lib;$(QTDIR)\lib\Qt5Sensors.lib;$(QTDIR)\lib\Qt5Network.lib;$(QTDIR)\lib\Qt5Xml.lib;$(QTDIR)\lib\Qt5Gui.lib;$(QTDIR)\lib\Qt5Core.lib;libEGL.lib;libGLESv2.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc\x64;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + false + true + false + $(OutDir)\GoldenDict.exe + true + Windows + true + 1.5 + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;WIN32;NO_CONSOLE;PROGRAM_VERSION=\"1.5.0+git\";QT_NO_DEBUG;QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\x64\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + ".";"winlibs\include";"qtsingleapplication\src";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKitWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQuick";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimediaWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtOpenGL";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtPrintSupport";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSvg";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKit";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimedia";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSensors";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtNetwork";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtXml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtGui";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtANGLE";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtCore";"build";"build";..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + ProgramDatabase + Sync + Disabled + __LZO_EXPORT1XXXX#__declspec(dllimport);_CONSOLE;UNICODE;WIN32;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;DISABLE_INTERNAL_PLAYER;__WIN32;NOMINMAX;HUNSPELL_STATIC;USING_STATIC_LIBICONV;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + true + Level3 + 4290;%(DisableSpecificWarnings) + EnableFastChecks + true + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;hunspell.lib;lzo2.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\Qt5WebKitWidgetsd.lib;$(QTDIR)\lib\Qt5Quickd.lib;$(QTDIR)\lib\Qt5MultimediaWidgetsd.lib;$(QTDIR)\lib\Qt5OpenGLd.lib;$(QTDIR)\lib\Qt5PrintSupportd.lib;$(QTDIR)\lib\Qt5Svgd.lib;$(QTDIR)\lib\Qt5WebKitd.lib;$(QTDIR)\lib\Qt5Qmld.lib;$(QTDIR)\lib\Qt5Multimediad.lib;$(QTDIR)\lib\Qt5Widgetsd.lib;$(QTDIR)\lib\Qt5Sensorsd.lib;$(QTDIR)\lib\Qt5Networkd.lib;$(QTDIR)\lib\Qt5Xmld.lib;$(QTDIR)\lib\Qt5Guid.lib;$(QTDIR)\lib\Qt5Cored.lib;libEGLd.lib;libGLESv2d.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\GoldenDict.exe + true + Console + true + NotSet + 1.5 + true + true + iconv.dll + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + ".";"winlibs\include";"qtsingleapplication\src";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKitWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQuick";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimediaWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtOpenGL";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtPrintSupport";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSvg";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWebKit";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtQml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtMultimedia";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtWidgets";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtSensors";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtNetwork";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtXml";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtGui";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtANGLE";"..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\include\QtCore";"build";"build";..\..\Qt\Qt5.1.0-msvc2012\5.1.0\msvc2012\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + ProgramDatabase + Sync + Disabled + __WIN32;__WIN64;NOMINMAX;_CRT_SECURE_NO_WARNINGS;QT_NO_OPENSSL;UNICODE;WIN32;DEBUG;_DEBUG;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + true + Level3 + 4290;%(DisableSpecificWarnings) + EnableFastChecks + true + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;hunspell.lib;lzo2.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\Qt5WebKitWidgetsd.lib;$(QTDIR)\lib\Qt5Quickd.lib;$(QTDIR)\lib\Qt5MultimediaWidgetsd.lib;$(QTDIR)\lib\Qt5OpenGLd.lib;$(QTDIR)\lib\Qt5PrintSupportd.lib;$(QTDIR)\lib\Qt5Svgd.lib;$(QTDIR)\lib\Qt5WebKitd.lib;$(QTDIR)\lib\Qt5Qmld.lib;$(QTDIR)\lib\Qt5Multimediad.lib;$(QTDIR)\lib\Qt5Widgetsd.lib;$(QTDIR)\lib\Qt5Sensorsd.lib;$(QTDIR)\lib\Qt5Networkd.lib;$(QTDIR)\lib\Qt5Xmld.lib;$(QTDIR)\lib\Qt5Guid.lib;$(QTDIR)\lib\Qt5Cored.lib;libEGLd.lib;libGLESv2d.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc\x64;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\GoldenDict.exe + true + Console + true + NotSet + 1.5 + true + true + iconv.dll + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\x64\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + ProgramDatabase + Sync + Disabled + __LZO_EXPORT1XXXX#__declspec(dllimport);QT_NO_OPENSSL;_CONSOLE;UNICODE;WIN32;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;DISABLE_INTERNAL_PLAYER;__WIN32;NOMINMAX;HUNSPELL_STATIC;USING_STATIC_LIBICONV;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + false + Level3 + 4290;%(DisableSpecificWarnings) + EnableFastChecks + true + .;winlibs\include;qtsingleapplication\src;$(QTDIR)\include;$(QTDIR)\include\QtSvg;$(QTDIR)\include\QtWebKit;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtXml;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtCore;build;$(QTDIR)\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;lzo2.lib;hunspell.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\QtSvg4.lib;$(QTDIR)\lib\QtWebKit4.lib;$(QTDIR)\lib\QtNetwork4.lib;$(QTDIR)\lib\QtXml4.lib;$(QTDIR)\lib\QtGui4.lib;$(QTDIR)\lib\QtCore4.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\GoldenDict.exe + true + Console + true + NotSet + 1.5 + true + true + + + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc;%(AdditionalLibraryDirectories) + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + .;winlibs\include;qtsingleapplication\src;$(QTDIR)\include;$(QTDIR)\include\QtSvg;$(QTDIR)\include\QtWebKit;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtXml;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtCore;build;$(QTDIR)\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + ProgramDatabase + Sync + Disabled + __WIN32;__WIN64;NOMINMAX;_CRT_SECURE_NO_WARNINGS;QT_NO_OPENSSL;UNICODE;WIN32;DEBUG;_DEBUG;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + false + Level3 + 4290;%(DisableSpecificWarnings) + EnableFastChecks + true + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;lzo2.lib;hunspell.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\QtSvg4.lib;$(QTDIR)\lib\QtWebKit4.lib;$(QTDIR)\lib\QtNetwork4.lib;$(QTDIR)\lib\QtXml4.lib;$(QTDIR)\lib\QtGui4.lib;$(QTDIR)\lib\QtCore4.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\GoldenDict.exe + true + Console + true + NotSet + 1.5 + true + true + + + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc\x64;%(AdditionalLibraryDirectories) + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\x64\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + .;winlibs\include;qtsingleapplication\src;$(QTDIR)\include;$(QTDIR)\include\QtSvg;$(QTDIR)\include\QtWebKit;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtXml;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtCore;build;$(QTDIR)\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + Sync + MaxSpeed + QT_NO_OPENSSL;UNICODE;WIN32;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;__WIN32;NOMINMAX;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + MultiThreadedDLL + true + false + Level3 + 4290;%(DisableSpecificWarnings) + Default + Neither + false + true + false + + None + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;lzo2.lib;hunspell.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\QtSvg4.lib;$(QTDIR)\lib\QtWebKit4.lib;$(QTDIR)\lib\QtNetwork4.lib;$(QTDIR)\lib\QtXml4.lib;$(QTDIR)\lib\QtGui4.lib;$(QTDIR)\lib\QtCore4.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + $(OutDir)\GoldenDict.exe + true + Windows + true + NotSet + 1.5 + + + true + + + true + true + false + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)\GoldenDict.exe.manifest %(AdditionalManifestFiles) + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + .;winlibs\include;qtsingleapplication\src;$(QTDIR)\include;$(QTDIR)\include\QtSvg;$(QTDIR)\include\QtWebKit;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtNetwork;$(QTDIR)\include\QtXml;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtCore;build;$(QTDIR)\mkspecs\win32-msvc2012;%(AdditionalIncludeDirectories) + -Zm200 -w34100 -w34189 %(AdditionalOptions) + false + Sync + MaxSpeed + __WIN32;__WIN64;NOMINMAX;_CRT_SECURE_NO_WARNINGS;QT_NO_OPENSSL;UNICODE;WIN32;PROGRAM_VERSION="1.5.0+git";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;%(PreprocessorDefinitions) + false + MultiThreadedDLL + true + false + Level3 + 4290;%(DisableSpecificWarnings) + Default + Neither + false + true + false + + + None + + + qtmain.lib;avutil-gd.lib;avcodec-gd.lib;avformat-gd.lib;ao.lib;z.lib;bz2.lib;lzo2.lib;hunspell.lib;iconv.lib;vorbisfile.lib;vorbis.lib;ogg.lib;wsock32.lib;psapi.lib;ole32.lib;oleaut32.lib;advapi32.lib;comdlg32.lib;$(QTDIR)\lib\QtSvg4.lib;$(QTDIR)\lib\QtWebKit4.lib;$(QTDIR)\lib\QtNetwork4.lib;$(QTDIR)\lib\QtXml4.lib;$(QTDIR)\lib\QtGui4.lib;$(QTDIR)\lib\QtCore4.lib;gdi32.lib;user32.lib;%(AdditionalDependencies) + $(QTDIR)\lib;$(ProjectDir)\winlibs\lib\msvc\x64;%(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + $(OutDir)\GoldenDict.exe + true + Windows + true + NotSet + 1.5 + + + true + + + true + true + false + + + Unsigned + None + 0 + + + _CONSOLE;UNICODE;WIN32;PROGRAM_VERSION=\"1.5.0+git\";QT_WEBKITWIDGETS_LIB;QT_QUICK_LIB;QT_MULTIMEDIAWIDGETS_LIB;QT_OPENGL_LIB;QT_PRINTSUPPORT_LIB;QT_SVG_LIB;QT_WEBKIT_LIB;QT_QML_LIB;QT_MULTIMEDIA_LIB;QT_WIDGETS_LIB;QT_SENSORS_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_OPENGL_ES_2;QT_OPENGL_ES_2_ANGLE;_DEBUG;%(PreprocessorDefinitions) + + + copy $(ProjectDir)\winlibs\lib\msvc\x64\*.dll $(ProjectDir)\$(Configuration)\$(Platform) >NUL + + + $(ProjectDir)\GoldenDict.exe.manifest %(AdditionalManifestFiles) + + + $(ProjectDir)build\ui_%(Filename).h + $(QTDIR)\bin\uic.exe + + + false + $(OutDir)locale\%(Filename).qm + + + $(ProjectDir)build\moc_%(Filename).cpp + + + $(ProjectDir)build\qrc_%(Filename).cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CompileAsC + CompileAsC + CompileAsC + CompileAsC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + false + false + true + true + _MSC_VER;%(PreprocessorDefinitions) + _MSC_VER;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -Nru goldendict-1.0.2~git20130620/goldendict.vcxproj.filters goldendict-1.5.0~ppa131019/goldendict.vcxproj.filters --- goldendict-1.0.2~git20130620/goldendict.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/goldendict.vcxproj.filters 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,1953 @@ + + + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {3235203c-8555-42b3-9ec2-22de8a260dc6} + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + false + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {18a218fa-2efc-4ea0-a7d0-9cdea6a87bda} + png;* + + + {83b951bc-8d6e-48c9-a401-ab9d3f217987} + + + {5df1e6e9-52e2-4184-8424-291751501b81} + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} + ts;xlf + false + + + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + Sources + + + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + Generated Files + + + + + Resources + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Customizations + + + Customizations + + + + + Customizations + + + Customizations + + + Customizations + + + Customizations + + + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + Forms + + + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + + + Generated Files + + + Generated Files + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + Headers + + + + + Resources\Flags + + + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\CSS + + + Resources\Icons + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Flags + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + Resources\Icons + + + + + Resources + + + + + Resources + + + Resources + + + \ No newline at end of file diff -Nru goldendict-1.0.2~git20130620/historypanewidget.cc goldendict-1.5.0~ppa131019/historypanewidget.cc --- goldendict-1.0.2~git20130620/historypanewidget.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/historypanewidget.cc 2013-10-18 14:32:58.000000000 +0000 @@ -87,6 +87,14 @@ connect( m_historyList, SIGNAL( customContextMenuRequested( QPoint const & ) ), this, SLOT( showCustomMenu( QPoint const & ) ) ); + listItemDelegate = new WordListItemDelegate( m_historyList->itemDelegate() ); + m_historyList->setItemDelegate( listItemDelegate ); +} + +HistoryPaneWidget::~HistoryPaneWidget() +{ + if( listItemDelegate ) + delete listItemDelegate; } void HistoryPaneWidget::copySelectedItems() diff -Nru goldendict-1.0.2~git20130620/historypanewidget.hh goldendict-1.5.0~ppa131019/historypanewidget.hh --- goldendict-1.0.2~git20130620/historypanewidget.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/historypanewidget.hh 2013-10-18 14:32:58.000000000 +0000 @@ -14,6 +14,7 @@ #include #include "history.hh" +#include "delegate.hh" /// A widget holding the contents of the 'History' docklet. class HistoryPaneWidget : public QWidget @@ -22,7 +23,9 @@ public: explicit HistoryPaneWidget( QWidget * parent = 0 ): QWidget( parent ), itemSelectionChanged( false ) + , listItemDelegate( 0 ) {} + virtual ~HistoryPaneWidget(); virtual QSize sizeHint() const { return QSize( 204, 204 ); } @@ -63,6 +66,7 @@ /// when selecting history items via mouse and keyboard bool itemSelectionChanged; + WordListItemDelegate * listItemDelegate; }; class HistoryModel : public QAbstractListModel diff -Nru goldendict-1.0.2~git20130620/hotkeywrapper.cc goldendict-1.5.0~ppa131019/hotkeywrapper.cc --- goldendict-1.0.2~git20130620/hotkeywrapper.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/hotkeywrapper.cc 2013-10-18 14:32:58.000000000 +0000 @@ -412,6 +412,9 @@ lAltCode = XKeysymToKeycode( display, XK_Alt_L ); rAltCode = XKeysymToKeycode( display, XK_Alt_R ); + lMetaCode = XKeysymToKeycode( display, XK_Super_L ); + rMetaCode = XKeysymToKeycode( display, XK_Super_R ); + cCode = XKeysymToKeycode( display, XK_c ); insertCode = XKeysymToKeycode( display, XK_Insert ); kpInsertCode = XKeysymToKeycode( display, XK_KP_Insert ); @@ -493,6 +496,10 @@ key == rAltCode ) currentModifiers |= Mod1Mask; else + if ( key == lMetaCode || + key == rMetaCode ) + currentModifiers |= Mod4Mask; + else { // Here we employ a kind of hack translating KP_Insert key // to just Insert. This allows reacting to both Insert keys. @@ -518,6 +525,10 @@ if ( key == lAltCode || key == rAltCode ) currentModifiers &= ~Mod1Mask; + else + if ( key == lMetaCode || + key == rMetaCode ) + currentModifiers &= ~Mod4Mask; } } @@ -540,6 +551,8 @@ mod |= ControlMask; if (modifier & Qt::AltModifier) mod |= Mod1Mask; + if (modifier & Qt::MetaModifier) + mod |= Mod4Mask; hotkeys.append( HotkeyStruct( vk, vk2, mod, handle, 0 ) ); @@ -562,16 +575,76 @@ return i != grabbedKeys.end(); } +namespace { + +typedef int (*X11ErrorHandler) ( Display * display, XErrorEvent * event ); + +class X11GrabUngrabErrorHandler { +public: + static bool error; + + static int grab_ungrab_error_handler( Display *, XErrorEvent * event ) + { + qDebug() << "grab_ungrab_error_handler is invoked"; + switch ( event->error_code ) + { + case BadAccess: + case BadValue: + case BadWindow: + if ( event->request_code == 33 /* X_GrabKey */ || + event->request_code == 34 /* X_UngrabKey */) + { + error = true; + } + } + return 0; + } + + X11GrabUngrabErrorHandler() + { + error = false; + previousErrorHandler_ = XSetErrorHandler( grab_ungrab_error_handler ); + } + + ~X11GrabUngrabErrorHandler() + { + XFlush( QX11Info::display() ); + (void) XSetErrorHandler( previousErrorHandler_ ); + } + + bool isError() const + { + XFlush( QX11Info::display() ); + return error; + } + +private: + X11ErrorHandler previousErrorHandler_; +}; + +bool X11GrabUngrabErrorHandler::error = false; + +} // anonymous namespace + + HotkeyWrapper::GrabbedKeys::iterator HotkeyWrapper::grabKey( quint32 keyCode, quint32 modifiers ) { std::pair< GrabbedKeys::iterator, bool > result = grabbedKeys.insert( std::make_pair( keyCode, modifiers ) ); + if ( result.second ) { + X11GrabUngrabErrorHandler errorHandler; XGrabKey( QX11Info::display(), keyCode, modifiers, QX11Info::appRootWindow(), True, GrabModeAsync, GrabModeAsync ); + + if ( errorHandler.isError() ) + { + qDebug() << "Warning: Possible hotkeys conflict. Check your hotkeys options."; + ungrabKey( result.first ); + } } return result.first; @@ -579,9 +652,15 @@ void HotkeyWrapper::ungrabKey( GrabbedKeys::iterator i ) { + X11GrabUngrabErrorHandler errorHandler; XUngrabKey( QX11Info::display(), i->first, i->second, QX11Info::appRootWindow() ); grabbedKeys.erase( i ); + + if ( errorHandler.isError() ) + { + qDebug() << "Warning: Cannot ungrab the hotkey"; + } } quint32 HotkeyWrapper::nativeKey(int key) diff -Nru goldendict-1.0.2~git20130620/hotkeywrapper.hh goldendict-1.5.0~ppa131019/hotkeywrapper.hh --- goldendict-1.0.2~git20130620/hotkeywrapper.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/hotkeywrapper.hh 2013-10-18 14:32:58.000000000 +0000 @@ -111,7 +111,7 @@ // We do one-time init of those, translating keysyms to keycodes KeyCode lShiftCode, rShiftCode, lCtrlCode, rCtrlCode, lAltCode, rAltCode, - cCode, insertCode, kpInsertCode; + cCode, insertCode, kpInsertCode, lMetaCode, rMetaCode; quint32 currentModifiers; diff -Nru goldendict-1.0.2~git20130620/htmlescape.cc goldendict-1.5.0~ppa131019/htmlescape.cc --- goldendict-1.0.2~git20130620/htmlescape.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/htmlescape.cc 2013-10-18 14:32:58.000000000 +0000 @@ -41,10 +41,23 @@ return result; } -string preformat( string const & str ) +static void storeLineInDiv( string & result, string const & line, bool baseRightToLeft ) { - string escaped = escape( str ), result; + result += ""; +} +string preformat(string const & str , bool baseRightToLeft ) +{ + string escaped = escape( str ), result, line; + + line.reserve( escaped.size() ); result.reserve( escaped.size() ); bool leading = true; @@ -55,20 +68,21 @@ { if ( *nextChar == ' ' ) { - result += " "; + line += " "; continue; } else if ( *nextChar == '\t' ) { - result += "    "; + line += "    "; continue; } } if ( *nextChar == '\n' ) { - result += "
"; + storeLineInDiv( result, line, baseRightToLeft ); + line.clear(); leading = true; continue; } @@ -76,11 +90,14 @@ if ( *nextChar == '\r' ) continue; // Just skip all \r - result.push_back( *nextChar ); + line.push_back( *nextChar ); leading = false; } + if( !line.empty() ) + storeLineInDiv( result, line, baseRightToLeft ); + return result; } diff -Nru goldendict-1.0.2~git20130620/htmlescape.hh goldendict-1.5.0~ppa131019/htmlescape.hh --- goldendict-1.0.2~git20130620/htmlescape.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/htmlescape.hh 2013-10-18 14:32:58.000000000 +0000 @@ -17,7 +17,7 @@ // Converts the given preformatted text to html. Each end of line is replaced by //
, each leading space is converted to  . -string preformat( string const & ); +string preformat( string const &, bool baseRightToLeft = false ); // Escapes the given string to be included in JavaScript. string escapeForJavaScript( string const & ); diff -Nru goldendict-1.0.2~git20130620/hunspell.cc goldendict-1.5.0~ppa131019/hunspell.cc --- goldendict-1.0.2~git20130620/hunspell.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/hunspell.cc 2013-10-18 14:32:58.000000000 +0000 @@ -281,7 +281,11 @@ } catch( Iconv::Ex & e ) { - DPRINTF( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); + qWarning( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); + } + catch( std::exception & e ) + { + qWarning( "Hunspell: error: %s\n", e.what() ); } if ( suggestions ) @@ -495,13 +499,7 @@ if ( Folding::applySimpleCaseOnly( alt ) != lowercasedWord ) // No point in providing same word { - DPRINTF( ">>>>>Alt: %ls\n", -#ifdef Q_OS_WIN - gd::toQString( alt ).toStdWString().c_str() -#else - alt.c_str() -#endif - ); + qDebug() << ">>>>>Alt:" << gd::toQString( alt ); result.append( alt ); } } @@ -510,7 +508,7 @@ } catch( Iconv::Ex & e ) { - DPRINTF( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); + qWarning( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); } if ( suggestions ) @@ -632,7 +630,7 @@ } catch( Iconv::Ex & e ) { - DPRINTF( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); + qWarning( "Hunspell: charset convertion error, no processing's done: %s\n", e.what() ); } finish(); diff -Nru goldendict-1.0.2~git20130620/icon.svg goldendict-1.5.0~ppa131019/icon.svg --- goldendict-1.0.2~git20130620/icon.svg 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/icon.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,868 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru goldendict-1.0.2~git20130620/icons/icon.svg goldendict-1.5.0~ppa131019/icons/icon.svg --- goldendict-1.0.2~git20130620/icons/icon.svg 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/icons/icon.svg 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,868 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/icon32_zim.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/icon32_zim.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/macicon.icns and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/macicon.icns differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/playsound.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/playsound.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/playsound_color.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/playsound_color.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/playsound_full.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/playsound_full.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/programicon.ico and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/programicon.ico differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/programicon.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/programicon.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/programicon_old.ico and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/programicon_old.ico differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/programicon_old.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/programicon_old.png differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/icons/video.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/icons/video.png differ diff -Nru goldendict-1.0.2~git20130620/iconv.hh goldendict-1.5.0~ppa131019/iconv.hh --- goldendict-1.0.2~git20130620/iconv.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/iconv.hh 2013-10-18 14:32:58.000000000 +0000 @@ -17,7 +17,7 @@ DEF_EX( Ex, "Iconv exception", std::exception ) DEF_EX_STR( exCantInit, "Can't initialize iconv conversion:", Ex ) - DEF_EX( exIncorrectSeq, "Invalid character sequence encountered during character convesion", Ex ) + DEF_EX( exIncorrectSeq, "Invalid character sequence encountered during character conversion", Ex ) DEF_EX( exPrematureEnd, "Character sequence ended prematurely during character conversion", Ex ) DEF_EX_STR( exOther, "An error has occured during character conversion:", Ex ) diff -Nru goldendict-1.0.2~git20130620/indexedzip.cc goldendict-1.5.0~ppa131019/indexedzip.cc --- goldendict-1.0.2~git20130620/indexedzip.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/indexedzip.cc 2013-10-18 14:32:58.000000000 +0000 @@ -8,6 +8,8 @@ #include "utf8.hh" #include "iconv.hh" +#include + using namespace BtreeIndexing; using std::vector; @@ -135,8 +137,8 @@ { if ( entry.compressionMethod == ZipFile::Unsupported ) { - DPRINTF( "Warning: compression method unsupported -- skipping file %s\n", - entry.fileName.data() ); + qWarning( "Zip warning: compression method unsupported -- skipping file \"%s\"\n", + entry.fileName.data() ); continue; } diff -Nru goldendict-1.0.2~git20130620/langcoder.cc goldendict-1.5.0~ppa131019/langcoder.cc --- goldendict-1.0.2~git20130620/langcoder.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/langcoder.cc 2013-10-18 14:32:58.000000000 +0000 @@ -1,17 +1,218 @@ +/* This file is (c) 2008-2013 Konstantin Isakov + * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ + #include "langcoder.hh" #include "folding.hh" #include "wstring_qt.hh" #include "language.hh" +#ifdef _MSC_VER +#include +#endif + #include +#include LangCoder langCoder; +// Language codes + +static GDLangCode LangCodes[] = { + + { "aa", "aar", -1, "Afar" }, + { "ab", "abk", -1, "Abkhazian" }, + { "ae", "ave", -1, "Avestan" }, + { "af", "afr", -1, "Afrikaans" }, + { "ak", "aka", -1, "Akan" }, + { "am", "amh", -1, "Amharic" }, + { "an", "arg", -1, "Aragonese" }, + { "ar", "ara", 1, "Arabic" }, + { "as", "asm", -1, "Assamese" }, + { "av", "ava", -1, "Avaric" }, + { "ay", "aym", -1, "Aymara" }, + { "az", "aze", 0, "Azerbaijani" }, + { "ba", "bak", 0, "Bashkir" }, + { "be", "bel", 0, "Belarusian" }, + { "bg", "bul", 0, "Bulgarian" }, + { "bh", "bih", -1, "Bihari" }, + { "bi", "bis", -1, "Bislama" }, + { "bm", "bam", -1, "Bambara" }, + { "bn", "ben", -1, "Bengali" }, + { "bo", "tib", -1, "Tibetan" }, + { "br", "bre", -1, "Breton" }, + { "bs", "bos", 0, "Bosnian" }, + { "ca", "cat", -1, "Catalan" }, + { "ce", "che", -1, "Chechen" }, + { "ch", "cha", -1, "Chamorro" }, + { "co", "cos", -1, "Corsican" }, + { "cr", "cre", -1, "Cree" }, + { "cs", "cze", 0, "Czech" }, + { "cu", "chu", 0, "Church Slavic" }, + { "cv", "chv", 0, "Chuvash" }, + { "cy", "wel", 0, "Welsh" }, + { "da", "dan", 0, "Danish" }, + { "de", "ger", 0, "German" }, + { "dv", "div", -1, "Divehi" }, + { "dz", "dzo", -1, "Dzongkha" }, + { "ee", "ewe", -1, "Ewe" }, + { "el", "gre", 0, "Greek" }, + { "en", "eng", 0, "English" }, + { "eo", "epo", 0, "Esperanto" }, + { "es", "spa", 0, "Spanish" }, + { "et", "est", 0, "Estonian" }, + { "eu", "baq", 0, "Basque" }, + { "fa", "per", -1, "Persian" }, + { "ff", "ful", -1, "Fulah" }, + { "fi", "fin", 0, "Finnish" }, + { "fj", "fij", -1, "Fijian" }, + { "fo", "fao", -1, "Faroese" }, + { "fr", "fre", 0, "French" }, + { "fy", "fry", -1, "Western Frisian" }, + { "ga", "gle", 0, "Irish" }, + { "gd", "gla", 0, "Scottish Gaelic" }, + { "gl", "glg", -1, "Galician" }, + { "gn", "grn", -1, "Guarani" }, + { "gu", "guj", -1, "Gujarati" }, + { "gv", "glv", -1, "Manx" }, + { "ha", "hau", -1, "Hausa" }, + { "he", "heb", 1, "Hebrew" }, + { "hi", "hin", -1, "Hindi" }, + { "ho", "hmo", -1, "Hiri Motu" }, + { "hr", "hrv", 0, "Croatian" }, + { "ht", "hat", -1, "Haitian" }, + { "hu", "hun", 0, "Hungarian" }, + { "hy", "arm", 0, "Armenian" }, + { "hz", "her", -1, "Herero" }, + { "ia", "ina", -1, "Interlingua" }, + { "id", "ind", -1, "Indonesian" }, + { "ie", "ile", -1, "Interlingue" }, + { "ig", "ibo", -1, "Igbo" }, + { "ii", "iii", -1, "Sichuan Yi" }, + { "ik", "ipk", -1, "Inupiaq" }, + { "io", "ido", -1, "Ido" }, + { "is", "ice", -1, "Icelandic" }, + { "it", "ita", 0, "Italian" }, + { "iu", "iku", -1, "Inuktitut" }, + { "ja", "jpn", 0, "Japanese" }, + { "jv", "jav", -1, "Javanese" }, + { "ka", "geo", 0, "Georgian" }, + { "kg", "kon", -1, "Kongo" }, + { "ki", "kik", -1, "Kikuyu" }, + { "kj", "kua", -1, "Kwanyama" }, + { "kk", "kaz", 0, "Kazakh" }, + { "kl", "kal", -1, "Kalaallisut" }, + { "km", "khm", -1, "Khmer" }, + { "kn", "kan", -1, "Kannada" }, + { "ko", "kor", 0, "Korean" }, + { "kr", "kau", -1, "Kanuri" }, + { "ks", "kas", -1, "Kashmiri" }, + { "ku", "kur", -1, "Kurdish" }, + { "kv", "kom", 0, "Komi" }, + { "kw", "cor", -1, "Cornish" }, + { "ky", "kir", -1, "Kirghiz" }, + { "la", "lat", 0, "Latin" }, + { "lb", "ltz", 0, "Luxembourgish" }, + { "lg", "lug", -1, "Ganda" }, + { "li", "lim", -1, "Limburgish" }, + { "ln", "lin", -1, "Lingala" }, + { "lo", "lao", -1, "Lao" }, + { "lt", "lit", 0, "Lithuanian" }, + { "lu", "lub", -1, "Luba-Katanga" }, + { "lv", "lav", 0, "Latvian" }, + { "mg", "mlg", -1, "Malagasy" }, + { "mh", "mah", -1, "Marshallese" }, + { "mi", "mao", -1, "Maori" }, + { "mk", "mac", 0, "Macedonian" }, + { "ml", "mal", -1, "Malayalam" }, + { "mn", "mon", -1, "Mongolian" }, + { "mr", "mar", -1, "Marathi" }, + { "ms", "may", -1, "Malay" }, + { "mt", "mlt", -1, "Maltese" }, + { "my", "bur", -1, "Burmese" }, + { "na", "nau", -1, "Nauru" }, + { "nb", "nob", 0, "Norwegian Bokmal" }, + { "nd", "nde", -1, "North Ndebele" }, + { "ne", "nep", -1, "Nepali" }, + { "ng", "ndo", -1, "Ndonga" }, + { "nl", "dut", -1, "Dutch" }, + { "nn", "nno", -1, "Norwegian Nynorsk" }, + { "no", "nor", 0, "Norwegian" }, + { "nr", "nbl", -1, "South Ndebele" }, + { "nv", "nav", -1, "Navajo" }, + { "ny", "nya", -1, "Chichewa" }, + { "oc", "oci", -1, "Occitan" }, + { "oj", "oji", -1, "Ojibwa" }, + { "om", "orm", -1, "Oromo" }, + { "or", "ori", -1, "Oriya" }, + { "os", "oss", -1, "Ossetian" }, + { "pa", "pan", -1, "Panjabi" }, + { "pi", "pli", -1, "Pali" }, + { "pl", "pol", 0, "Polish" }, + { "ps", "pus", -1, "Pashto" }, + { "pt", "por", 0, "Portuguese" }, + { "qu", "que", -1, "Quechua" }, + { "rm", "roh", -1, "Raeto-Romance" }, + { "rn", "run", -1, "Kirundi" }, + { "ro", "rum", 0, "Romanian" }, + { "ru", "rus", 0, "Russian" }, + { "rw", "kin", -1, "Kinyarwanda" }, + { "sa", "san", -1, "Sanskrit" }, + { "sc", "srd", -1, "Sardinian" }, + { "sd", "snd", -1, "Sindhi" }, + { "se", "sme", -1, "Northern Sami" }, + { "sg", "sag", -1, "Sango" }, + { "sh", "shr", 0, "Serbo-Croatian" }, + { "si", "sin", -1, "Sinhala" }, + { "sk", "slo", 0, "Slovak" }, + { "sl", "slv", 0, "Slovenian" }, + { "sm", "smo", -1, "Samoan" }, + { "sn", "sna", -1, "Shona" }, + { "so", "som", -1, "Somali" }, + { "sq", "alb", 0, "Albanian" }, + { "sr", "srp", 0, "Serbian" }, + { "ss", "ssw", -1, "Swati" }, + { "st", "sot", -1, "Southern Sotho" }, + { "su", "sun", -1, "Sundanese" }, + { "sv", "swe", 0, "Swedish" }, + { "sw", "swa", -1, "Swahili" }, + { "ta", "tam", -1, "Tamil" }, + { "te", "tel", -1, "Telugu" }, + { "tg", "tgk", 0, "Tajik" }, + { "th", "tha", -1, "Thai" }, + { "ti", "tir", -1, "Tigrinya" }, + { "tk", "tuk", 0, "Turkmen" }, + { "tl", "tgl", -1, "Tagalog" }, + { "tn", "tsn", -1, "Tswana" }, + { "to", "ton", -1, "Tonga" }, + { "tr", "tur", 0, "Turkish" }, + { "ts", "tso", -1, "Tsonga" }, + { "tt", "tat", -1, "Tatar" }, + { "tw", "twi", -1, "Twi" }, + { "ty", "tah", -1, "Tahitian" }, + { "ug", "uig", -1, "Uighur" }, + { "uk", "ukr", -1, "Ukrainian" }, + { "ur", "urd", -1, "Urdu" }, + { "uz", "uzb", 0, "Uzbek" }, + { "ve", "ven", -1, "Venda" }, + { "vi", "vie", -1, "Vietnamese" }, + { "vo", "vol", 0, "Volapuk" }, + { "wa", "wln", -1, "Walloon" }, + { "wo", "wol", -1, "Wolof" }, + { "xh", "xho", -1, "Xhosa" }, + { "yi", "yid", -1, "Yiddish" }, + { "yo", "yor", -1, "Yoruba" }, + { "za", "zha", -1, "Zhuang" }, + { "zh", "chi", 0, "Chinese" }, + { "zu", "zul", -1, "Zulu" }, + { "jb", "jbo", 0, "Lojban" }, + + { "", "", 0, "" } +}; LangCoder::LangCoder() { for (int i = 0; true; i++) { - const LangCode &lc = LangCodes[i]; + const GDLangCode &lc = LangCodes[i]; if (lc.lang[0] == 0) break; codeMap[code2toInt(lc.code)] = i; @@ -30,7 +231,7 @@ { if (langCoder.codeMap.contains(code)) { - const LangCode &lc = LangCodes[ langCoder.codeMap[ code ] ]; + const GDLangCode &lc = LangCodes[ langCoder.codeMap[ code ] ]; return QIcon( ":/flags/" + QString(lc.code) + ".png" ); } @@ -44,7 +245,7 @@ ls.order = -1; if (codeMap.contains(code)) { int order = codeMap[code]; - const LangCode &lc = LangCodes[order]; + const GDLangCode &lc = LangCodes[order]; ls.order = order; ls.lang = lc.lang; ls.icon = QIcon(":/flags/" + QString(lc.code) + ".png"); @@ -81,7 +282,7 @@ { gd::wstring langFolded = Folding::apply( lang ); - for( LangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) + for( GDLangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) { if ( langFolded == Folding::apply( gd::toWString( lc->lang ) ) ) { @@ -96,7 +297,7 @@ quint32 LangCoder::findIdForLanguageCode3( const char * code3 ) { - for( LangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) + for( GDLangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) { if ( strcasecmp( code3, lc->code3 ) == 0 ) { @@ -119,7 +320,7 @@ // check if it could be the whole language name if (lstr.size() >= 3) { - for( LangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) + for( GDLangCode const * lc = LangCodes; lc->code[ 0 ]; ++lc ) { if ( lstr == QString( lc->lang ) ) { @@ -157,6 +358,25 @@ return findIdsForName( QFileInfo( name ).fileName() ); } +bool LangCoder::isLanguageRTL( quint32 code ) +{ + if ( langCoder.codeMap.contains( code ) ) + { + GDLangCode &lc = LangCodes[ langCoder.codeMap[ code ] ]; + if( lc.isRTL < 0 ) + { +#if QT_VERSION >= 0x040700 + lc.isRTL = ( int )( QLocale( lc.code ).textDirection() == Qt::RightToLeft ); +#else + lc.isRTL = 0; +#endif + } + return lc.isRTL != 0; + } + + return false; +} + /* LangStruct& LangCoder::CodeToLangStruct(const QString &code) { diff -Nru goldendict-1.0.2~git20130620/langcoder.hh goldendict-1.5.0~ppa131019/langcoder.hh --- goldendict-1.0.2~git20130620/langcoder.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/langcoder.hh 2013-10-18 14:32:58.000000000 +0000 @@ -4,208 +4,15 @@ #include #include "wstring.hh" -struct LangCode +struct GDLangCode { char code[ 3 ]; // ISO 639-1 char code3[ 4 ]; // ISO 639-2B ( http://www.loc.gov/standards/iso639-2/ ) + int isRTL; // Right-to-left writing; 0 - no, 1 - yes, -1 - let Qt define char const * lang; // Language name in English }; -// Language codes - -const LangCode LangCodes[] = { - - { "aa", "aar", "Afar" }, - { "ab", "abk", "Abkhazian" }, - { "ae", "ave", "Avestan" }, - { "af", "afr", "Afrikaans" }, - { "ak", "aka", "Akan" }, - { "am", "amh", "Amharic" }, - { "an", "arg", "Aragonese" }, - { "ar", "ara", "Arabic" }, - { "as", "asm", "Assamese" }, - { "av", "ava", "Avaric" }, - { "ay", "aym", "Aymara" }, - { "az", "aze", "Azerbaijani" }, - { "ba", "bak", "Bashkir" }, - { "be", "bel", "Belarusian" }, - { "bg", "bul", "Bulgarian" }, - { "bh", "bih", "Bihari" }, - { "bi", "bis", "Bislama" }, - { "bm", "bam", "Bambara" }, - { "bn", "ben", "Bengali" }, - { "bo", "tib", "Tibetan" }, - { "br", "bre", "Breton" }, - { "bs", "bos", "Bosnian" }, - { "ca", "cat", "Catalan" }, - { "ce", "che", "Chechen" }, - { "ch", "cha", "Chamorro" }, - { "co", "cos", "Corsican" }, - { "cr", "cre", "Cree" }, - { "cs", "cze", "Czech" }, - { "cu", "chu", "Church Slavic" }, - { "cv", "chv", "Chuvash" }, - { "cy", "wel", "Welsh" }, - { "da", "dan", "Danish" }, - { "de", "ger", "German" }, - { "dv", "div", "Divehi" }, - { "dz", "dzo", "Dzongkha" }, - { "ee", "ewe", "Ewe" }, - { "el", "gre", "Greek" }, - { "en", "eng", "English" }, - { "eo", "epo", "Esperanto" }, - { "es", "spa", "Spanish" }, - { "et", "est", "Estonian" }, - { "eu", "baq", "Basque" }, - { "fa", "per", "Persian" }, - { "ff", "ful", "Fulah" }, - { "fi", "fin", "Finnish" }, - { "fj", "fij", "Fijian" }, - { "fo", "fao", "Faroese" }, - { "fr", "fre", "French" }, - { "fy", "fry", "Western Frisian" }, - { "ga", "gle", "Irish" }, - { "gd", "gla", "Scottish Gaelic" }, - { "gl", "glg", "Galician" }, - { "gn", "grn", "Guarani" }, - { "gu", "guj", "Gujarati" }, - { "gv", "glv", "Manx" }, - { "ha", "hau", "Hausa" }, - { "he", "heb", "Hebrew" }, - { "hi", "hin", "Hindi" }, - { "ho", "hmo", "Hiri Motu" }, - { "hr", "hrv", "Croatian" }, - { "ht", "hat", "Haitian" }, - { "hu", "hun", "Hungarian" }, - { "hy", "arm", "Armenian" }, - { "hz", "her", "Herero" }, - { "ia", "ina", "Interlingua" }, - { "id", "ind", "Indonesian" }, - { "ie", "ile", "Interlingue" }, - { "ig", "ibo", "Igbo" }, - { "ii", "iii", "Sichuan Yi" }, - { "ik", "ipk", "Inupiaq" }, - { "io", "ido", "Ido" }, - { "is", "ice", "Icelandic" }, - { "it", "ita", "Italian" }, - { "iu", "iku", "Inuktitut" }, - { "ja", "jpn", "Japanese" }, - { "jv", "jav", "Javanese" }, - { "ka", "geo", "Georgian" }, - { "kg", "kon", "Kongo" }, - { "ki", "kik", "Kikuyu" }, - { "kj", "kua", "Kwanyama" }, - { "kk", "kaz", "Kazakh" }, - { "kl", "kal", "Kalaallisut" }, - { "km", "khm", "Khmer" }, - { "kn", "kan", "Kannada" }, - { "ko", "kor", "Korean" }, - { "kr", "kau", "Kanuri" }, - { "ks", "kas", "Kashmiri" }, - { "ku", "kur", "Kurdish" }, - { "kv", "kom", "Komi" }, - { "kw", "cor", "Cornish" }, - { "ky", "kir", "Kirghiz" }, - { "la", "lat", "Latin" }, - { "lb", "ltz", "Luxembourgish" }, - { "lg", "lug", "Ganda" }, - { "li", "lim", "Limburgish" }, - { "ln", "lin", "Lingala" }, - { "lo", "lao", "Lao" }, - { "lt", "lit", "Lithuanian" }, - { "lu", "lub", "Luba-Katanga" }, - { "lv", "lav", "Latvian" }, - { "mg", "mlg", "Malagasy" }, - { "mh", "mah", "Marshallese" }, - { "mi", "mao", "Maori" }, - { "mk", "mac", "Macedonian" }, - { "ml", "mal", "Malayalam" }, - { "mn", "mon", "Mongolian" }, - { "mr", "mar", "Marathi" }, - { "ms", "may", "Malay" }, - { "mt", "mlt", "Maltese" }, - { "my", "bur", "Burmese" }, - { "na", "nau", "Nauru" }, - { "nb", "nob", "Norwegian Bokmal" }, - { "nd", "nde", "North Ndebele" }, - { "ne", "nep", "Nepali" }, - { "ng", "ndo", "Ndonga" }, - { "nl", "dut", "Dutch" }, - { "nn", "nno", "Norwegian Nynorsk" }, - { "no", "nor", "Norwegian" }, - { "nr", "nbl", "South Ndebele" }, - { "nv", "nav", "Navajo" }, - { "ny", "nya", "Chichewa" }, - { "oc", "oci", "Occitan" }, - { "oj", "oji", "Ojibwa" }, - { "om", "orm", "Oromo" }, - { "or", "ori", "Oriya" }, - { "os", "oss", "Ossetian" }, - { "pa", "pan", "Panjabi" }, - { "pi", "pli", "Pali" }, - { "pl", "pol", "Polish" }, - { "ps", "pus", "Pashto" }, - { "pt", "por", "Portuguese" }, - { "qu", "que", "Quechua" }, - { "rm", "roh", "Raeto-Romance" }, - { "rn", "run", "Kirundi" }, - { "ro", "rum", "Romanian" }, - { "ru", "rus", "Russian" }, - { "rw", "kin", "Kinyarwanda" }, - { "sa", "san", "Sanskrit" }, - { "sc", "srd", "Sardinian" }, - { "sd", "snd", "Sindhi" }, - { "se", "sme", "Northern Sami" }, - { "sg", "sag", "Sango" }, - { "sh", "shr", "Serbo-Croatian" }, - { "si", "sin", "Sinhala" }, - { "sk", "slo", "Slovak" }, - { "sl", "slv", "Slovenian" }, - { "sm", "smo", "Samoan" }, - { "sn", "sna", "Shona" }, - { "so", "som", "Somali" }, - { "sq", "alb", "Albanian" }, - { "sr", "srp", "Serbian" }, - { "ss", "ssw", "Swati" }, - { "st", "sot", "Southern Sotho" }, - { "su", "sun", "Sundanese" }, - { "sv", "swe", "Swedish" }, - { "sw", "swa", "Swahili" }, - { "ta", "tam", "Tamil" }, - { "te", "tel", "Telugu" }, - { "tg", "tgk", "Tajik" }, - { "th", "tha", "Thai" }, - { "ti", "tir", "Tigrinya" }, - { "tk", "tuk", "Turkmen" }, - { "tl", "tgl", "Tagalog" }, - { "tn", "tsn", "Tswana" }, - { "to", "ton", "Tonga" }, - { "tr", "tur", "Turkish" }, - { "ts", "tso", "Tsonga" }, - { "tt", "tat", "Tatar" }, - { "tw", "twi", "Twi" }, - { "ty", "tah", "Tahitian" }, - { "ug", "uig", "Uighur" }, - { "uk", "ukr", "Ukrainian" }, - { "ur", "urd", "Urdu" }, - { "uz", "uzb", "Uzbek" }, - { "ve", "ven", "Venda" }, - { "vi", "vie", "Vietnamese" }, - { "vo", "vol", "Volapuk" }, - { "wa", "wln", "Walloon" }, - { "wo", "wol", "Wolof" }, - { "xh", "xho", "Xhosa" }, - { "yi", "yid", "Yiddish" }, - { "yo", "yor", "Yoruba" }, - { "za", "zha", "Zhuang" }, - { "zh", "chi", "Chinese" }, - { "zu", "zul", "Zulu" }, - { "jb", "jbo", "Lojban" }, - - { "", "", "" } - -}; - + template inline int arraySize(T (&)[N]) { return N; } @@ -246,6 +53,9 @@ /// Returns icon for language or empty string if not found. static QIcon icon(quint32 code); + /// Return true for RTL languages + static bool isLanguageRTL(quint32 code); + //const QMap& codes() { return codeMap; } LangStruct langStruct(quint32 code); diff -Nru goldendict-1.0.2~git20130620/loaddictionaries.cc goldendict-1.5.0~ppa131019/loaddictionaries.cc --- goldendict-1.0.2~git20130620/loaddictionaries.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/loaddictionaries.cc 2013-10-18 14:32:58.000000000 +0000 @@ -27,6 +27,7 @@ #include "aard.hh" #include "zipsounds.hh" #include "mdx.hh" +#include "zim.hh" #include #include @@ -50,7 +51,11 @@ nameFilters << "*.bgl" << "*.ifo" << "*.lsa" << "*.dat" << "*.dsl" << "*.dsl.dz" << "*.index" << "*.xdxf" << "*.xdxf.dz" << "*.dct" << "*.aar" << "*.zips" - << "*.mdx"; + << "*.mdx" +#ifdef MAKE_ZIM_SUPPORT + << "*.zim" << "*.zimaa" +#endif +; } void LoadDictionaries::run() @@ -107,7 +112,8 @@ handlePath( Config::Path( fullName, true ) ); } - allFiles.push_back( FsEncoding::encode( QDir::toNativeSeparators( fullName ) ) ); + if ( !i->isDir() ) + allFiles.push_back( FsEncoding::encode( QDir::toNativeSeparators( fullName ) ) ); } { @@ -185,6 +191,15 @@ dictionaries.insert( dictionaries.end(), mdxDictionaries.begin(), mdxDictionaries.end() ); } +#ifdef MAKE_ZIM_SUPPORT + { + vector< sptr< Dictionary::Class > > zimDictionaries = + Zim::makeDictionaries( allFiles, FsEncoding::encode( Config::getIndexDir() ), *this ); + + dictionaries.insert( dictionaries.end(), zimDictionaries.begin(), + zimDictionaries.end() ); + } +#endif } void LoadDictionaries::indexingDictionary( string const & dictionaryName ) throw() diff -Nru goldendict-1.0.2~git20130620/locale/ar_SA.ts goldendict-1.5.0~ppa131019/locale/ar_SA.ts --- goldendict-1.0.2~git20130620/locale/ar_SA.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/ar_SA.ts 2013-10-18 14:32:58.000000000 +0000 @@ -1,6 +1,6 @@ - + About @@ -9,38 +9,34 @@ حول - + GoldenDict dictionary lookup program, version - برنامج القاموس الذهبي للبحث في القواميس, الاصدار + برنامج القاموس الذهبي للبحث في القواميس، الإصدار - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2013 قسطنطين ايزاكوف (ikm@goldendict.org) - - Credits: - المساهمون: - - - #.# - #.# + + Licensed under GNU GPLv3 or later + مرخص وفق الإصدار الثّالث من رُخصة غنّو أو أحدث - - Licensed under GNU GPLv3 or later - مرخص وفق GNU GPLv3 أو أحدث + + Credits: + إشادات: [Unknown] - [مجهول] + [غير معروف] - + Based on Qt %1 (%2, %3 bit) - + مبني على كيوتي %1 (%2، %3 بت) @@ -48,100 +44,100 @@ Expand article - + وسّع المقالة Collapse article - + اطوِ المقالة - + No translation for <b>%1</b> was found in group <b>%2</b>. - لم يجد ترجمة لـ <b>%1</b> في المجموعة <b>%2</b>. + تعذّر إيجاد ترجمة لـ <b>%1</b> في المجموعة <b>%2</b>. - + No translation was found in group <b>%1</b>. - لم يُعثر على ترجمة في مجموعة <b>%1</b>. + تعذّر إيجاد ترجمة في مجموعة <b>%1</b>. - + Welcome! - مرحبا! + مرحبًا بك! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - ت<h3 align="center">مرحبا في <b>القاموس الذهبي</b>!<p>لتبدأ العمل مع البرنامج، اذهب إلى <b>تحرير|قواميس</b> لاضافة بعض مسارات القواميس لأبحث فيها، اعدّ قواميس ويكيبيديا متنوعة أو مصادر أخرى، غير ترتيب القواميس أو أنشئ مجموعة للقواميس.<p>وعندها انت جاهز للبحث عن كلمات! يمكنك عمل ذلك من هذه النافذة باستخدام اللوح الأيمن، أو يمكنك <a href="Working with popup"> البحث عن كلمات أثناء عملك على برامج أخرى </a>. <p> لتخصيص برنامج، تحقق من التفضيلات عند <b>تحرير|تفضيلات </b>. كل الاعدادات هناك لها تلمحيات، تأكد من قرائتها إن كنت في شك من أي شيء.<p>ان احتجت لمزيد من المساعدة، أو عندك أي سؤال، اقتراح أو تريد أن تعرف ماذا يقول الآخرون، فأنت مرحب بك في في <a href="http://goldendict.org/forum/">منتدى</a> البرنامج. <p>تحقق من <a href="http://goldendict.org/">موقع</a> البرنامج لأجل التحديثات. <p>(c) 2008-2013 Konstantin Isakov. مرخص تحت GPLv3 أو أحدث. + <h3 dir="RTL" align="center">مرحبًا بك في <b>القاموس الذهبي</b>!</h3><p dir="RTL">لبدأ العمل مع البرنامج، زُر أولًا <b>حرّر|قواميس</b> لإضافة بعض مسارات القواميس حيث يُبحث فيها عن ملفات القواميس، إعداد مواقع ويكيبيديا شتّى أو مصادر أخرى، ضبط ترتيب القواميس أو إنشاء مجموعات قواميس.<p dir="RTL">ثمَّ ستكون جاهزًا للبحث عن الكلمات! يمكنك فعل ذلك في الناقذة باستخدام اللوحة على اليمين، أو يمكنك <a href="Working with popup">البحث عن الكلمات من تطبيقات نشطة أخرى</a>. <p dir="RTL">لتخصيص البرنامج، اكتشف التفضيلات المتوفّرة في <b>حرّر|تفضيلات</b>. كل الإعدادات هناك تملك تلميحات، تأكّد من قرائتها إن كنت تشكّ في أي شيء.<p dir="RTL">إن احتجت إلى مزيدٍ من المعلومات، لديك بعض الأسئلة، اقتراحات أو تتسائل فيما يفكّر الغير، نرحّب بك دائمًا في <a href="http://goldendict.org/forum/">منتدى</a> البرنامج.<p dir="RTL">تحقّق من <a href="http://goldendict.org/">موقع وِب</a> البرنامج للتحديثات.<p dir="RTL">حقوق النشر 2008-2013 كونستانتين إيساكوف. مرخّص وفق رخصة جنو العمومية الإصدار 3 أو أحدث. - + Working with popup العمل مع المنبثقات - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. - <h3 align="center">العمل مع المنبثقات</h3>لنظر كلمة من برنامج نشط آخر, عليك أولا تفعيل <i>"خاصية منبثقة المسح"</i> في <b>التفضيلات</b>, ثم تفعيلها في أي وقت إما بضغط أيقونة ‘المنبثقة‘ فوق, أو بالنقر على أيقونة الزاوية بزر الفأرة الأيمن واختيار ذلك من القائمة التي أظهرتها. + <h3 dir="RTL" align="center">العمل مع المنبثقة</h3><p dir="RTL">للبحث عن الكلمات في تطبيقات نشطة أخرى، عليك أولًا تفعيل <i>"وظيفة منبثقة الاستكشاف"</i> في <b>تفضيلات</b>، ثمّ مكّنها في أي وقت بإطلاق أيقونة "منبثقة" بالأعلى، أو بنقر أيقونة صينية النظام بزر الفأرة الأيمن واختيارها في القائمة التي ظهرت. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. - ثم اوقف المؤشر على الكلمة التي تريد نظرها في البرنامج الآخر, و ستنبثق نافذة تصفها لك. + <p dir="RTL">ثمَّ أوقف فقط المؤشر على الكلمة التي تريد البحث عنها في التطبيق الآخر، وستنبثق نافذة تصِف لكَ الكلمة. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. - ثم اختر أية كلمة لنظرها في البرنامج الآخر بالفأرة (نقرتين عليها او حددها بالفأرة و الزر مضغوط), و ستظهر لك نافذة تصفها لك. + <p dir="RTL">ثمَّ حدّد فقط أي كلمة تريد البحث عنها في التطبيق الآخر بالفأرة (انقر مزدوجًا أو مرّرها بالفأرة أثناء ضغط الزر)، وستنبثق نافذة تصِف لكَ الكلمة. - + (untitled) - (بلا عنوان) + (غير معنون) - + (picture) - + (صورة) ArticleRequest - + Expand article - + وسّع المقالة - + From من - + Collapse article - + اطوِ المقالة - + Query error: %1 - أخطاء الطلب: %1 + خطأ استعلام: %1 - + Close words: - كلمات قريبة: + الكلمات القريبة: - + Compound expressions: - تعبيرات مركبة: + التعابير المركّبة: - + Individual words: - كلمات مفردة: + الكلمات مفردةً: @@ -149,22 +145,22 @@ Form - صيغة + نموذج about:blank - about:blank - - - - x - x + حول:فارغ Find: - ابحث: + اعثر على: + + + + x + س @@ -174,7 +170,7 @@ &Next - ال&لاحق + ال&تالي @@ -182,193 +178,191 @@ Ctrl+G - - &Case Sensitive - &حساس للحالة - - Highlight &all - + أبرز ال&كل - + + &Case Sensitive + ح&سّاس للحالة + + + Select Current Article - + حدّد المقالة الحالية - + Copy as text - + انسخ كنص - + Inspect - + افحص - + Resource - + المورد - + Audio - + الصوت - + TTS Voice - + صوت قراءة النّصوص - + Picture - + الصورة - - Definition from dictionary "%1": %2 - + + Video + المرئيات - - Definition: %1 - + + Video: %1 + المقطع المرئي: %1 - GoldenDict - القاموس الذهبي + + Definition from dictionary "%1": %2 + التّعريف من القاموس "%1": %2 - - + + Definition: %1 + تعريف: %1 + + + + The referenced resource doesn't exist. - المرجع المشار إليه غير موجود. + المورد المشار إليه غير موجود. - + The referenced audio program doesn't exist. - + برنامج الصوت المشار إليه غير موجود. - + ERROR: %1 - + خطأ: %1 - - Save sound - - - - - Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - - - - - Save image - + + &Open Link + ا&فتح الوصلة - - Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + + Open Link in New &Tab + افتح الوصلة في &لسان جديد - - &Open Link - ا&فتح الرابط + + Open Link in &External Browser + افتح الوصلة في متصفّح &خارجي - - Open Link in New &Tab - افتح الرابط في لسا&ن جديد + + Save &image... + احفظ ال&صّورة... - - Open Link in &External Browser - افتح الرابط في &متصفح خارجي + + Save s&ound... + احفظ الصّو&ت... - + &Look up "%1" - ا&نظر "%1" + اب&حث عن "%1" - + Look up "%1" in &New Tab - انظر "%1" في &لسان جديد + ابحث عن "%1" في لسان &جديد - + Send "%1" to input line - + أرسل "%1" إلى سطر الإدخال - - + + &Add "%1" to history - + أ&ضف "%1" إلى التأريخ - + Look up "%1" in %2 - انظر "%1" في %2 + ابحث عن "%1" في %2 - + Look up "%1" in %2 in &New Tab - انظر "%1"في %2 في لسان &جديد + ابحث عن "%1" في %2 في لسان &جديد - - WARNING: FFmpeg Audio Player: %1 - + + Save sound + احفظ الصوت - Playing a non-WAV file - تشغيل ملف غير WAV + + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) + ملفات صوت (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;كل الملفات (*.*) - To enable playback of files different than WAV, please go to Edit|Preferences, choose the Audio tab and select "Play via DirectShow" there. - لتمكين تشغيل ملفات غير WAV، اذهب إلى تحرير|تفضيلات، اختر لسان الصوت وانتق "شغل عبر DirectShow" من هناك. + + Save image + احفظ الصّورة - + + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) + ملفات صورة (*.bmp *.jpg *.png *.tif);;كل الملفات (*.*) + + + Failed to run a player to play sound file: %1 - فشل بدء مشغل لتشغيل ملف الصوت: %1 + فشل فتح مشغّل لملف الصّوت: %1 - + Failed to create temporary file. - فشل إنشاء ملف مؤقت. + فشل في إنشاء ملف مؤقت. - + Failed to auto-open resource file, try opening manually: %1. - تعذر فتح ملف المصدر آليا, حاول فتحه يدويا: %1. + فشل في فتح ملف المورد تلقائيًّا، حاول فتحه يدويًّا: %1. - - The referenced resource failed to download. - فشل تنزيل المرجع المشار إليه. - - - - Save &image... - + + WARNING: %1 + تحذير: %1 - - Save s&ound... - + + The referenced resource failed to download. + فشل تنزيل المورد المشار إليه. - - WARNING: %1 - تحذير: %1 + + WARNING: FFmpeg Audio Player: %1 + تحذير: مشغّل FFmpeg الصوتي: %1 @@ -376,18 +370,18 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + النّقل الحرفي البيلاروسي من اللاتينية إلى السيريلية (قواعد الإملاء التّقليدية) Belarusian transliteration from latin to cyrillic (school orthography) - + النّقل الحرفي البيلاروسي من اللاتينية إلى السيريلية (قواعد الإملاء المدرسية) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + النّقل الحرفي البيلاروسي (ينعّم الفوارق بين قواعد الإملاء التّقليدية والمدرسية في السيريلية) @@ -395,7 +389,7 @@ Form - صيغة + نموذج @@ -405,42 +399,42 @@ Shortcut: - الاختصار: + الاختصار: None - لاشيء + لا شيء From file... - من ملف... + من ملف... Choose a file to use as group icon - اختر ملفا ليستخدم كرمز للمجموعة + اختر ملفًا لاستخدامه كرمز للمجموعة Images - صور + الصور All files - كل الملفات + كل الملفات Error - خطأ + خطأ Can't read the specified image file. - تعذر قراءة ملف الصورة المحدد. + تعذّر قراءة ملف الصورة المحدّد. @@ -451,43 +445,43 @@ Dictionaries: - + القواميس: Confirmation - التأكد + التّأكيد Are you sure you want to generate a set of groups based on language pairs? - أمتأكد من رغبتك بتوليد مجموعات حسب أزواج اللغة؟ + هل أنت متأكد من توليد مجموعة مجموعات مبنية على زوجي اللّغة؟ Unassigned - + غير مُعيّن Combine groups by source language to "%1->" - + ادمج المجموعات باللغة المصدر إلى "%1->" Combine groups by target language to "->%1" - + ادمج المجموعات باللغة الهدف إلى "->%1" Make two-side translate group "%1-%2-%1" - + أنشئ مجموعة ترجمة من جهتين "%1-%2-%1" Combine groups with "%1" - + ادمج المجموعات بـ "%1" @@ -495,48 +489,48 @@ Total articles: - مجموع المقالات: + مجموع المقالات: Translates from: - ترجم من: + ترجم من: Total words: - مجموع الكلمات: + مجموع الكلمات: Translates to: - ترجم إلى: + ترجم إلى: Open folder - + افتح المجلد Edit dictionary - + حرّر القاموس Files comprising this dictionary: - الملفات المشتملة على هذا القاموس: + الملفات التي تتضمن القاموس: Description: - + الوصف: Edit the dictionary via command: %1 - + حرّر القاموس بالأمر: %1 @@ -544,44 +538,40 @@ %1 entries - %1 مدخل + %1 من المدخلات DictionaryBar - Dictionary Bar - شريط القاموس - - &Dictionary Bar - + شريط ال&قواميس Extended menu with all dictionaries... - + قائمة موسّعة بكل القواميس... Edit this group - حرر هذه المجموعة + حرّر هذه المجموعة Dictionary info - + معلومات القاموس Open dictionary folder - + افتح مجلد القاموس Edit dictionary - + حرّر القاموس @@ -594,7 +584,7 @@ &Sources - &مصادر + م&صادر @@ -611,22 +601,22 @@ Sources changed - تغيرت المصادر + تغيّرت المصادر Some sources were changed. Would you like to accept the changes? - بعض المصادر تغيرت. أتقبل التغييرات؟ + بعض المصادر تغيّرت. أتقبل التّغييرات؟ Accept - أقبل + اقبل Cancel - ألغ + ألغِ @@ -634,45 +624,45 @@ the viewer program name is empty - + اسم برنامج العارض فارغ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 - خطأ عبارة XML: %1 في %2,%3 + خطأ تحليل XML: %1 عند %2،%3 - + Added %1 - اُضيف %1 + أُضيف %1 - + by - من + بواسطة - + Male - ذكر + ذكر - + Female - انثى + أنثى - + from - من + من - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. - اذهب إلى تحرير|قواميس|مصادر|فروفو وطبّق لمفتحاح API الخاص بنا لإذهاب هذا الخطأ. + اذهب إلى حرّر|قواميس|فورڤو واطلب منّا مفتاح API لإخفاء هذا الخطأ. @@ -680,7 +670,7 @@ German Transliteration - الترجمة الصوتية الألمانية + النسخ الألماني الحرفي @@ -688,7 +678,7 @@ Greek Transliteration - الترجمة الصوتية اليونانية + النسخ اليوناني الحرفي @@ -704,12 +694,12 @@ Form - صيغة + نموذج Look in - انظر في + ابحث في @@ -722,7 +712,7 @@ Add selected dictionaries to group (Ins) - أضف القواميس المحددة للمجموعة (Ins) + أضف القواميس المحدّدة إلى المجموعة (Ins) @@ -737,7 +727,7 @@ Remove selected dictionaries from group (Del) - أزل القواميس المحددة من المجموعة (Del) + أزل القواميس المحدّدة من المجموعة (Del) @@ -757,7 +747,7 @@ Tab 2 - Tab 2 + لسان 2 @@ -772,22 +762,22 @@ Create language-based groups - أنشئ مجموعات بحسب اللغة + أنشئ مجموعات مبنية على اللغات Auto groups - مجموعات تلقائية + مجموعات تلقائية Rename current dictionary group - غير تسمية مجموعة القواميس الحالية + أعد تسمية مجموعة القواميس الحالية Re&name group - &غير تسمية المجموعة + أ&عد تسمية المجموعة @@ -813,7 +803,7 @@ Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. - اسحب و أ&فلت القواميس إلى ومن المجموعات, انقلهم داخل المجموعات, أعد ترتيب المجموعة باستخدام الفأرة. + اسحب وأ&فلت القواميس من وإلى المجموعات، انقلها داخل المجموعات، أعد ترتيب المجموعات باستخدام الفأرة. @@ -823,17 +813,17 @@ Give a name for the new group: - أعط المجموعة الجديدة اسما: + ضع اسمًا للمجموعة الجديدة: Rename group - غير اسم المجموعة + أعد تسمية المجموعة Give a new name for the group: - أعط المجموعة الجديدة اسما: + ضع اسمًا جديدًا للمجموعة: @@ -843,12 +833,12 @@ Are you sure you want to remove the group <b>%1</b>? - أمتأكد من رغبتك بازالة المجموعة <b>%1</b>؟ + هل أنت متأكد من إزالة المجموعة <b>%1</b>؟ Are you sure you want to remove all the groups? - أمتأكد من رغبتك بازالة كل المجموعات؟ + هل أنت متأكد من إزالة كل المجموعات؟ @@ -856,27 +846,27 @@ &Delete Selected - + ا&حذف المحدّد Copy Selected - + انسخ المحدّد History: - + التأريخ: - + %1/%2 - + %1/%2 - + History size: %1 entries out of maximum %2 - + حجم التأريخ: %1 من المدخلات من أصل %2 @@ -884,12 +874,12 @@ Spelling suggestions: - اقتراحات التهجئة: + اقتراحات الإملاء: - + %1 Morphology - %1 صرف + الصَرْف %1 @@ -897,7 +887,7 @@ Enabled - مفعل + مُمكّن @@ -910,23 +900,23 @@ GoldenDict - Initializing - بدء - القاموس الذهبي + القاموس الذهبي - يهيّئ Please wait while indexing dictionary - انتظر بينما تفهرس القواميس + فضلًا انتظر بينما تُفهرَس القواميس Dictionary Name - اسم القاموس + اسم القامويس Please wait... - رجاء انتظر... + فضلًا انتظر... @@ -934,1013 +924,1013 @@ Afar - + العفرية Abkhazian - + الأبخازية Avestan - + الأفستية Afrikaans - + الإفريقية Akan - + الأكانية Amharic - + الأمهرية Aragonese - + الأراغونية Arabic - عربي + العربية Assamese - + الأسامية Avaric - + الأفارية Aymara - + الأيمارية Azerbaijani - + الأذرية Bashkir - + الباشكيرية Belarusian - + البلاروسية Bulgarian - + البلغارية Bihari - + البيهارية Bislama - + البيسلامية Bambara - + البامبارية Bengali - + البنغالية Tibetan - + التبتية Breton - + البريتونية Bosnian - + البوسنية Catalan - + الكتالانية Chechen - + الشيشانية Chamorro - + التشامورو Corsican - + الكورسيكية Cree - + الكري Czech - + التشيكية Church Slavic - + الكنيسة السلافية Chuvash - + التشوفاشية Welsh - + الويلزية Danish - + الدنماركية German - + الألمانية Divehi - + الدِّيْفِيْهيّة Dzongkha - + الزونخاية Ewe - + اليو Greek - + اليونانية English - انكليزي + الإنجليزية Esperanto - + الاسبرانتو Spanish - + الإسبانية Estonian - + الأستونية Basque - + الباسكية Persian - فارسي + الفارسية Fulah - + الفولانية Finnish - + الفنلندية Fijian - + الفيجية Faroese - + الفاروية French - + الفرنسية Western Frisian - + الفريزيان Irish - + الأيرلندية Scottish Gaelic - + الغيلية الأسكتلندية Galician - + الجاليكية Guarani - + الغوارانية Gujarati - + الغوجاراتية Manx - + المنكية Hausa - + الهوساوية Hebrew - + العبرية Hindi - + الهندية Hiri Motu - + الحيري موتو Croatian - + الكرواتية Haitian - + الهايتية Hungarian - + المجرية Armenian - + الأرمينية Herero - + الهيريرو Interlingua - + الوسيطة Indonesian - + الأندونيسية Interlingue - + الإنترلينجوا Igbo - + الإيبو Sichuan Yi - + سيتشوان يي Inupiaq - + الاينبياك Ido - + الآيدوية Icelandic - + الأيسلاندية Italian - + الإيطالية Inuktitut - + الإنكتيتوتية Japanese - + اليابانية Javanese - + الجاوية Georgian - + الجورجية Kongo - + الكونغو Kikuyu - + الكيكويو Kwanyama - + الكوانيامية Kazakh - + الكازاخية Kalaallisut - + الجرينلاندية Khmer - + الخميرية Kannada - + الكانادية Korean - + الكورية Kanuri - + الكانورية Kashmiri - + الكشميرية Kurdish - + الكردية Komi - + الكومية Cornish - + الكورنية Kirghiz - + القيرقيزية Latin - + اللاتينية Luxembourgish - + اللوكسمبرجية Ganda - + الغاندا Limburgish - + الليمبرجيشية Lingala - + اللينغالية Lao - + اللاوية Lithuanian - + اللتوانية Luba-Katanga - + لوبا-كاتانغا Latvian - + اللاتفية Malagasy - + المالاجاشية Marshallese - + المارشالية Maori - + الماورية Macedonian - + المقدونية Malayalam - + المالايالامية Mongolian - + المنغولية Marathi - + المهاراتية Malay - + المالاوية Maltese - + المالطية Burmese - + البورمية Nauru - + الناورو Norwegian Bokmal - + بوكمال النرويجية North Ndebele - + شمال نديبيلي Nepali - + النيبالية Ndonga - + الإندونجية Dutch - + الهولندية Norwegian Nynorsk - + النينورسك النرويجية Norwegian - + النرويجية South Ndebele - + جنوب نديبيلي Navajo - + النافاهو Chichewa - + الشيشيوا Occitan - + الأوكيتانية Ojibwa - + الأوجيبوا Oromo - + الأورومية Oriya - + الأوريا Ossetian - + الأوسيتية Panjabi - + البنجابية Pali - + البالية Polish - + البولندية Pashto - + البشتونية Portuguese - + البرتغالية Quechua - + الكويتشوا Raeto-Romance - + ريتو-الرومانسية Kirundi - + الكيروندية Romanian - + الرومانية Russian - + الروسية Kinyarwanda - + الكينيارواندية Sanskrit - + السنسكريتية Sardinian - + السردينية Sindhi - + السندية Northern Sami - + شمال سامي Sango - + السانغو Serbo-Croatian - + الصربية الكرواتية Sinhala - + السنهالية Slovak - + السلوفاكية Slovenian - + السلوفينية Samoan - + الساموية Shona - + الشونا Somali - + الصومالية Albanian - + الألبانية Serbian - + الصربية Swati - + السواتية Southern Sotho - + جنوب السوتو Sundanese - + السوندانية Swedish - + السويدية Swahili - + السواحلية Tamil - + التاميلية Telugu - + التيلجو Tajik - + الطاجيكية Thai - + التايلاندية Tigrinya - + التغرينية Turkmen - + التركمانية Tagalog - + التاجالوجية Tswana - + التسوانية Tonga - + التونغا Turkish - + التركية Tsonga - + التسونجا Tatar - + التتارية Twi - + التوي Tahitian - + التاهيتية Uighur - ايغور + الإيغورية Ukrainian - + الأوكرانية Urdu - اوردو + الأُردية Uzbek - + الأوزبكية Venda - + الفيندا Vietnamese - + الفيتنامية Volapuk - + فولابوك Walloon - + الولونية Wolof - + الوولوف Xhosa - + زوسا Yiddish - + اليديشية Yoruba - + اليوروبية Zhuang - + التشوانغية Chinese - + الصينية Zulu - + الزولو Lojban - + اللوجبانية Traditional Chinese - + الصينية التقليدية Simplified Chinese - + الصينية المبسطة Other - + أخرى Other Simplified Chinese dialects - + لهجات الصينية المبسطة الأخرى Other Traditional Chinese dialects - + لهجات الصينية التقليدية الأخرى Other Eastern-European languages - + لغات شرق أوروبا الأخرى Other Western-European languages - + لغات غرب أوروبا الأخرى Other Russian languages - + اللغات الروسية الأخرى Other Japanese languages - + اللغات اليابانية الأخرى Other Baltic languages - + اللغات البلطيقية الأخرى Other Greek languages - + اللغات اليونانية الأخرى Other Korean dialects - + اللهجات الكورية الأخرى Other Turkish dialects - + اللهجات التركية الأخرى Other Thai dialects - + اللهجات التايلاندية الأخرى Tamazight - + الأمازيغية LoadDictionaries - + Error loading dictionaries خطأ في تحميل القواميس @@ -1948,22 +1938,18 @@ Main - + Error in configuration file. Continue with default settings? - + خطأ في ملف الإعداد. أأتابع بالإعدادات الافتراضية؟ MainWindow - GoldenDict - القاموس الذهبي - - - + Welcome! - مرحبا! + مرحبًا بك! @@ -1973,12 +1959,12 @@ &Edit - &حرر + &حرّر &Help - &مساعدة + م&ساعدة @@ -1988,45 +1974,37 @@ &Zoom - &كبّر + ت&قريب H&istory - &تاريخ - - - Search Pane - شريط البحث - - - - &Dictionaries... - &قواميس... - - - - F3 - F3 - - - &Groups... - م&جموعات... + &تأريخ &Search Pane - + لوحة ال&بحث &Results Navigation Pane - + لوحة التنقّل بين النتائ&ج &History Pane - + لوحة التأري&خ + + + + &Dictionaries... + &قواميس... + + + + F3 + F3 @@ -2046,7 +2024,7 @@ &About - ح&ول + &حول @@ -2067,27 +2045,27 @@ Quit from application - اخرج من البرنامج + اخرج من التطبيق Ctrl+Q - Ctrl+خ + Ctrl+Q &Forum - &منتدى + المن&تدى &Close To Tray - ا&نزل لزاوية النظام + أ&غلق إلى صينية النظام Minimizes the window to tray - تصغير النافذة إلى الزاوية + يصغّر النافذة إلى صينية النظام @@ -2097,12 +2075,12 @@ &Save Article - ا&حفظ المقال + ا&حفظ المقالة Save Article - حفظ المقال + احفظ المقالة @@ -2117,57 +2095,22 @@ Ctrl+P - Ctrl+ط + Ctrl+P Page Set&up - ا&عداد الصفحة + إ&عداد الصفحة Print Pre&view - + معاي&نة الطباعة &Rescan Files - - - - - &New Tab - - - - - &Always on Top - - - - - Always on Top - - - - - Ctrl+O - - - - - - - Menu Button - - - - Print Preview - معاينة الطباعة - - - Rescan Files - اعد فحص الملفات + أعد إ&كتشاف الملفات @@ -2177,67 +2120,85 @@ &Clear - &مسح + ا&محُ - - New Tab - + + &New Tab + لسان &جديد Ctrl+T - + Ctrl+T &Configuration Folder - + مجلد الإ&عداد - + &Show - + أ&ظهر Ctrl+H - + Ctrl+H &Export - + &صدّر &Import - + ا&ستورد - Show Names in Dictionary Bar - اعرض الاسماء في شريط القواميس + + &Always on Top + &دائمًا في الأعلى - - &Menubar - + + Always on Top + دائمًا في الأعلى - - - Look up in: - انظر في: + + Ctrl+O + Ctrl+O - - Found in Dictionaries: - + + + + Menu Button + زر قائمة + + + + Show Names in Dictionary &Bar + أظهر الأسماء في &شريط القواميس + + + + Show Small Icons in &Toolbars + أظهر رموز صغيرة في شريط الأد&وات - Navigation - التنقل + + &Menubar + شريط ال&قوائم + + + + &Navigation + التن&قّل @@ -2247,12 +2208,12 @@ Forward - تقدم + تقدّم Scan Popup - انبثاق النتائج + منبثقة الاستكشاف @@ -2262,296 +2223,289 @@ Zoom In - تكبير + قرّب Zoom Out - تصغير + بعّد Normal Size - حجم طبيعي + الحجم الطّبيعي + + + + + Look up in: + ابحث في: + + + + Found in Dictionaries: + اعثر في القواميس: Words Zoom In - تكبير الكلمات + قرّب الكلمات Words Zoom Out - تصغير الكلمات + يعّد الكلمات Words Normal Size - الحجم الطبيعي للكلمات + حجم الكلمات العادي Show &Main Window - اعرض النافذة ال&رئيسية + أظهر النافذة ال&رئيسية + + + + Opened tabs + الألسنة المفتوحة Close current tab - أغلق اللسان الحالي + أغلق اللسان الحالي Close all tabs - أغلق كل الألسنة + أغلق كل الألسنة Close all tabs except current - أغلق كل الألسنة عدا الحالي + أغلق كل الألسنة ما عدا هذا Loading... - تحميل... + يحمّل... - - %1 dictionaries, %2 articles, %3 words - %1 قواميس, %2 مقالات, %3 كلمات - - - - Look up: - انظر: - - - - All - الكل + + New Tab + لسان جديد - - Opened tabs - الألسنة المفتوحة + + + Accessibility API is not enabled + أداة الإتاحة غير ممكّنة - - Show Names in Dictionary &Bar - + + %1 dictionaries, %2 articles, %3 words + %1 من القواميس، %2 من المقالات، %3 من الكلمات - - Show Small Icons in &Toolbars - + + Look up: + ابحث عن: - - &Navigation - + + All + الكل - + Open Tabs List - + قائمة الألسنة المفتوحة - + (untitled) - (بلا عنوان) + (غير معنون) - + %1 - %2 - - - - WARNING: %1 - تحذير: %1 + %1 - %2 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. - فشل بدء آلية مراقبة المفاتيح السريعة.<br>تأكد من ان خادم الرسوميات مفعّل للاحقة RECORD. + فشل تهيئة تقنية مراقبة المفاتيح الساخنة.<br>تأكد من أن امتداد RECORD في XServer ممكّن. - + New Release Available - اصدار جديد متوفر + إصدار جديد متوفّر - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. - الاصدار <b>%1</b> من القاموس الذهبي متوفر للتنزيل.<br>انقر <b>نزّل</b> للوصول لصفحة التنزيل. + الإصدار <b>%1</b> من القاموس الذهبي متوفّر الآن للتنزيل.<br>انقر <b>نزّل</b> للوصول إلى صفحة التنزيل. - + Download نزّل - + Skip This Release - تجاهل هذا الاصدار - - - - - Accessibility API is not enabled - + تخطّ هذا الإصدار - + You have chosen to hide a menubar. Use %1 to show it back. - + اخترت إخفاء شريط القوائم. استخدم %1 لإظهاره مرة أخرى. - + Ctrl+M - + Ctrl+M - + Page Setup - اعداد الصفحة + إعداد الصفحة - + No printer is available. Please install one first. - لا يوجد طابعة. ركب واحدة أولا. + لا تتوفر طابعة. فضلًا ثبّت واحدة أولًا. - + Print Article - اطبع المقال + اطبع المقالة - + Article, Complete (*.html) - + مقالة، بالكامل (*.html) - + Article, HTML Only (*.html) - + مقالة، HTML فقط (*.html) - + Save Article As - احفظ المقال كـ - - - Html files (*.html *.htm) - ملفات Html ‏(*.html *.htm) + احفظ المقالة كـ - + Error خطأ - + Can't save article: %1 - تعذر حفظ المقال: %1 + تعذّر حفظ المقالة: %1 - + Saving article... - + يحفظ المقالة... - + The main window is set to be always on top. - + عُيّنت النافذة الرئيسية في الأعلى دائمًا. - + &Hide - + أ&خفِ - + Export history to file - + صدّر التأريخ إلى ملف - - + + Text files (*.txt);;All files (*.*) - + ملفات نص (*.txt);;كل الملفات (*.*) - + History export complete - + اكتمل تصدير التأريخ - + Export error: - + خطأ استيراد: - + Import history from file - + استورد التأريخ من ملف - + Import error: invalid data in file - + خطأ استيراد: بيانات غير صالحة في الملف - + History import complete - + اكتمل استيراد التأريخ - + Import error: - + خطأ استيراد: - + Dictionary info - + معلومات القاموس - + Open dictionary folder - + افتح مجلد القاموس - + Edit dictionary - + حرّر القاموس Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + عُبث في ملف القاموس أو أُتلف - + Failed loading article from %1, reason: %2 - + فشل تحميل المقالة من %1، السبب: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 - خطأ عبارة XML: %1 في %2,%3 + خطأ تحليل XML: %1 عند %2،%3 MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 - خطأ عبارة XML: %1 في %2,%3 + خطأ تحليل XML: %1 عند %2،%3 @@ -2559,7 +2513,7 @@ Enabled - مفعل + ممكّن @@ -2574,7 +2528,7 @@ Icon - + الرّمز @@ -2582,12 +2536,7 @@ Form - صيغة - - - - Dictionary order: - ترتيب القواميس: + النموذج @@ -2598,14 +2547,19 @@ ... + + Dictionary order: + ترتيب القواميس: + + Inactive (disabled) dictionaries: - القواميس غير العاملة (معطلة): + القواميس غير النشطة (المعطّلة): Dictionary information - معلومات القاموس + معلومات القاموس @@ -2625,37 +2579,37 @@ Translates from: - ترجم من: + الترجمات من: Translates to: - ترجم إلى: + الترجمات إلى: Description: - + الوصف: Files comprising this dictionary: - الملفات المشتملة على هذا القاموس: + الملفات التي تتضمن القاموس: Adjust the order by dragging and dropping items in it. Drop dictionaries to the inactive group to disable their use. - غير الترتيب بسحب وافلات العناصر. اسحب القواميس إلى المجموعة غير الفعالة لتعطيل استخدامها. + اضبط الترتيب بسحب العناصر إفلاتها في القائمة. أفلت القواميس في المجموعة غير النشطة لتعطيل استخدامها. Sort by name - + افرز بالاسم Sort by languages - + افرز باللغة @@ -2668,7 +2622,7 @@ Recursive - تداخل + التكرارية @@ -2676,166 +2630,168 @@ Preferences - التفضيلات + تفضيلات &Interface - الوا&جهة - - - - Tabbed browsing - التصفح بالألسنة - - - - Normally, opening a new tab switches to it immediately. -With this on however, new tabs will be opened without -switching to them. - الأصل، فتح لسان جديد ينتقل له تلقائيا. -عند تشغيل هذه, الألسنة الجديدة ستفتح -دون الانتقال لها. + ال&واجهة - - Open new tabs in background - افتح الألسنة الجديدة في الخلفية - - - - With this on, new tabs are opened just after the -current, active one. Otherwise they are added to -be the last ones. - عند تشغيل هذه, الألسنة الجديدة تفتح -مباشرة بعد, اللسان النشط. دونها -تضاف بعد آخر لسان. - - - - Open new tabs after the current one - افتح الألسنة الجديدة بعد اللسان الحالي + + Startup + البدء - - Select this option if you don't want to see the main tab bar when only a single tab is opened. - + + Automatically starts GoldenDict after operation system bootup. + يبدأ القاموس الذهبي مباشرة بعد إقلاع النّظام . - - Hide single tab - + + Start with system + ابدأ مع النظام - - Ctrl-Tab navigates tabs in MRU order - + + Add-on style: + نمط الملحقة: When enabled, an icon appears in the sytem tray area which can be used to open main window and perform other tasks. - عند تفعيلها, ستظهر أيقونة في زاوية النظام يمكن استخدامها -لفتح النافذة الرئيسية و تأدية مهام أخرى. + عند تمكينه، سيظهر رمز في صينية النظام حيث يمكن استخدامها +لفتح النافذة الرئيسية وإجراء مهامَ أخرى. Enable system tray icon - فعل أيقونة زاوية النظام + مكّن رمز صينية النظام With this on, the application starts directly to system tray without showing its main window. - بتشغيل هذه, البرنامج سينتقل البرنامج مباشرة إلى زاوية النظام دون عرض -النافذة الرئيسية. + بهذه، يبدأ التطبيق تلقائيًّا في صينية النظام دون +أن تظهر النافذة الرئيسية. Start to system tray - ابدأ في زاوية النظام + ابدأ إلى صينية النظام With this on, an attempt to close main window would hide it instead of closing the application. - بتشغيل هذه, اغلاق النافذة الرئيسية سيخفيها بدلا من إغلاق البرنامج. + بهذه، محاولة إغلاق النافذة الرئيسية يخفي التطبيق بدلًا +من إنهائه. Close to system tray - اغلق إلى زاوية النظام - - - - Startup - تشغيل تلقائي - - - - Automatically starts GoldenDict after operation system bootup. - ابدأ القاموس الذهبي مباشرة بعد اقلاع النظام. - - - - Start with system - ابدأ مع النظام - - - - Interface language: - لغة الواجهة: - - - - Display style: - نمط العرض: + أغلق إلى صينية النظام Double-click translates the word clicked - النقر المزدوج يترجم الكلمة المنقورة + النقر المزدوج يترجم الكلمة المحدّدة Normally, pressing ESC key moves focus to the translation line. With this on however, it will hide the main window. - + عادةً، ضغط ESC ينقل التركيز إلى سطر الترجمة. +بهذه، على أي حال، ستُخفي النافذة الرئيسية. ESC key hides main window - + مفتاح ESC يخفي النافذة الرئيسية Turn this option on if you want to select words by single mouse click - + مكّن هذا الخيار إن أردت تحديد الكلمة بنقرة فأرة واحدة Select word by single click - + حدّد الكلمة بنقرة مفردة - - Add-on style: - + + Tabbed browsing + التصفّح المبوّب + + + + Normally, opening a new tab switches to it immediately. +With this on however, new tabs will be opened without +switching to them. + عادةً، عند فتح لسان، يُتبدَّل إليه تلقائيًّا. +بهذه، على أي حال، الألسنة الجديدة ستُفتح دون +التبديل إليها. + + + + Open new tabs in background + افتح الألسنة الجديدة في الخلفية + + + + With this on, new tabs are opened just after the +current, active one. Otherwise they are added to +be the last ones. + بهذه، الألسنة ستُفتح فقط بعد +الحاليّة، النشطة. وإلّا ستُضاف +إلى الألسنة الأخيرة. + + + + Open new tabs after the current one + افتح الألسنة الجديدة بعد الحاليّة + + + + Select this option if you don't want to see the main tab bar when only a single tab is opened. + اختر هذا الخيار إن لم تكن تريد رؤية شريط الألسنة الرئيسي عندما يكون لسان واحد مفتوح. + + + + Hide single tab + أخفِ لسانًا واحدًا + + + + Ctrl-Tab navigates tabs in MRU order + Ctrl-Tab يتنقّل بين الألسنة بترتيب MRU + + + + Interface language: + لغة الواجهة: + + + + Display style: + نمط العرض: Adjust this value to avoid huge context menus. - + اضبط هذه القيمة لتجنّب قوائم المحتوى الضخمة. Context menu dictionaries limit: - + حد القواميس في قائمة السياق: &Scan Popup - م&نبثقة البحث + منبثقة الا&ستكشاف @@ -2843,38 +2799,39 @@ you point your mouse on any word on the screen (Windows) or select any word with mouse (Linux). When enabled, you can switch it on and off from main window or tray icon. - عند تفعيلها, نافذة منبثقة بالترجمة ستظهر كل مرة تضع مؤشر الفأرة على -أية كلمة على الشاشة (وندز) أو حدد أية كلمة بالفأرة (لينكس). عند التفعيل -يمكنك تشغيلها و اطفائها من النافذة الرئيسية أو زاوية النظام. + إن مكّن، نافذة ترجمة منبثقة ستظهر كل مرة +تضع المؤشر على أي كلمة على الشاشة (ويندوز) +أو تحدّد أي كلمة بالفأرة (لينكس). إن مكّن، تستطيع +تشغيله أو تعطيله من النافذة الرئيسية أو صينية النظام. Enable scan popup functionality - مكّن خاصية منبثقة البحث + مكّن وظيفة منبثقة الاستكشاف Chooses whether the scan popup mode is on by default or not. If checked, the program would always start with the scan popup active. - اختر إذا ماكانت منبثقة البحث مشغلة افتراضيا أم لا. إن حددت, البرنامج سيبدأ -دائما مع خاصية المنبثقة منشطة. + يحدّد إن كان وضع منبثقة الاستكشاف ممكّن افتراضيًّا أو لا. إن عُلِّم، +سيبدأ البرنامج دائمًا ومنبثقة الاستكشاف نشطة. Start with scan popup turned on - ابدأ مع منبثقة البحث تعمل + ابدأ و منبثقة الاستكشاف تعمل With this enabled, the popup would only show up if all chosen keys are in the pressed state when the word selection changes. - عند تمكين هذا, المنبثقة ستظهر فقط عند استمرار ضغط كل المفاتيح المختارة -عند تغيّر تحديد الكلمة. + إن كان هذا ممكّنًا، النافذة المنبثقة ستظهر فقط إن كانت كل +المفاتيح مضغوطة عندما يتغيّر تحديد الكلمة. Only show popup when all selected keys are kept pressed: - اظهر المنبثقة عند كون كل المفاتيح المحددة مضغوطة فقط: + أظهر المنبثقة فقط عند إبقاء الضغط على المفاتيح هذه كلها: @@ -2889,12 +2846,12 @@ Right Shift only - Shift اليسار فقط + Shift اليميني فقط Right Shift - Shift اليمين + Shift اليميني @@ -2919,12 +2876,12 @@ Left Alt only - Alt اليسار فقط + Alt اليساري فقط Left Alt - Alt اليسار + Alt اليساري @@ -2939,42 +2896,42 @@ Right Alt only - Alt اليمين فقط + Alt اليميني فقط Right Alt - Alt اليمين + Alt اليميني Right Ctrl only - Ctrl اليمين فقط + Ctrl اليميني فقط Right Ctrl - Ctrl اليمين + Ctrl اليميني Left Shift only - Shift اليسار فقط + Shift اليساري فقط Left Shift - Shift اليسار + Shift اليساري Windows key or Meta key - مفتاح وندز أو مفتاح ميتا + مفتاح الشّعار Win/Meta - Win/Meta + ويندوز/ميتا @@ -2982,37 +2939,40 @@ maintain the chosen keys pressed while you select a word. With this enabled, the chosen keys may also be pressed shortly after the selection is done. - الأصل, لتفعيل المنبثقة عليك ابقاء المفاتيح المختارة -مضغوطة عند اختيارك لكلمة. عند تمكين هذا, المفاتيح -يمكن ان تضغط أيضا بعد تحديد الكلمة. + عادةً، لتفعيل المنبثقة عليك إبقاء +الضغط على المفاتيح المختارة وأنت +تحدّد الكلمة. عند تمكين هذا، المفاتيح +المختارة يمكن ضغطها بوقت أقل بعد +الانتهاء من التحديد. Keys may also be pressed afterwards, within - يمكن ان تضغط المفاتيح لاحقا, في + يمكن أيضًا ضغط المفاتيح فيما بعد خلال To avoid false positives, the keys are only monitored after the selection's done for a limited amount of seconds, which is specified here. - لتجنب اللبس, ستراقب المفاتيح بعد انتهاء التحديد لفترة -محددة من الثوان, المحددة هنا. + لتجنّب الأخطاء، تُراقب المفاتيح أيضًا +بعد الاختيار القيمة لوقت محدّد من +الثواني، والذي تستطيع تحديده هنا. secs - ثانية + ث Send translated word to main window instead of to show it in popup window - + أرسل الكلمة المترجمة إلى النافذة الرئيسية بدلًا من إظهارها في نافذة منبثقة Send translated word to main window - + أرسل الكلمة المترجمة إلى النافذة الرئيسية @@ -3022,17 +2982,17 @@ Use the following hotkey to show or hide the main window: - استخدم هذه المفاتيح السريعة لعرض أو اخفاء النافذة الرئيسية: + استخدم المفتاح السّريع التالي لإظهار أو إخفاء النافذة الرئيسية: Use the following hotkey to translate a word from clipboard: - استخدم هذه المفاتيح السريعة لترجمة كلمة من الحافظة: + استخدم المفاتيح السّريع التالي لترجمة كلمة من الحافظة: The hotkeys are global and work from any program and within any context as long as GoldenDict is running in background. - المفاتيح السريعة عامة و تعمل من أي برنامج أو اي سياق طالما ان القاموس الذهبي يعمل في الخلفية. + المفاتيح السريعة تعمل في أي مكان من الحاسوب خلال أي محتوى طالما القاموس الذهبي يعمل في الخلفية. @@ -3045,7 +3005,7 @@ <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">ملاحظة: يبدو انك تعمل على اصدار من خادوم X.Org XServerاللاحقة RECORD معطوبة فيه. لن تعمل المفاتيح السريعة في القاموس الذهبي على الأغلب. ينبغي اصلاح هذا في الخادوم نفسه. رجاء اطلع على الآتي </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">مدخلة علة</span></a><span style=" color:#ff0000;"> واترك تعليقا هناك إن شئت.</span></p></body></html> +<p dir="RTL" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">ملاحظة: يبدو أنك تعمل على إصدار X.Org XServer لديه ملحقة RECORD معطّلة. المفاتيح السريعة في القاموس الذهبي قد لا تعمل. يمكن إصلاح هذا في الخدم نفسه. فضلًا ارجع إلى </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">العلة هذه</span></a><span style=" color:#ff0000;"> واترك تعليقًا هناك إن أحببت.</span></p></body></html> @@ -3055,104 +3015,64 @@ Pronunciation - اللفظ + النطق Auto-pronounce words in main window - انطق بالكلمات آليا في النافذة الرئيسية + انطق تلقائيًّا الكلمات في النافذة الرئيسية Auto-pronounce words in scan popup - انطق بالكلمات آليا في منبثقة البحث + انطق تلقائيًّا الكلمات في منبثقة الاستكشاف Playback - التشغيل + التشغيل Play audio files via FFmpeg(libav) and libao - + شغّل ملفات الصوت بـ FFmpeg(libav) و libao Use internal player - - - - - Select this option to automatic collapse big articles - - - - - Collapse articles more than - - - - - Articles longer than this size will be collapsed - - - - - symbols - - - - Use Windows native playback API. Limited to .wav files only, -but works very well. - استخدم API الاصلية لمشغلات وندز. محصور بملفات .wav فقط، -لكنه يعمل جيدا. - - - Play via Windows native API - شغل عبر API الموطنة في وندز - - - Play audio via Phonon framework. May be somewhat unstable, -but should support most audio file formats. - شغل الصوت عبر إطار فونون. قد يكون غير مستقر نوعا ما، -لكنه يدعم أغلب هيئات ملفات الصوت. - - - Play via Phonon - شغل عبر Phonon + استخدم المشغّل الداخلي Use any external program to play audio files - استخدم أيّة برنامج خارجي لتشغيل ملفات الصوت + استخدم أي برنامج خارجي لتشغيل ملفات الصوت Use external program: - استخدم برنامجا خارجيا: + استخدم برنامجًا خارجيًا: &Network - ال&شبكة + ال&شّبكة Enable if you wish to use a proxy server for all program's network requests. - مكن استخدام خادوم بروكسي لكل طلبات -البرنامج الشبكية. + مكّنه إن وددت استخدام مُلقّم +لجميع طلبات البرنامج في الشبكة. Use proxy server - استخدم خادوم بروكسي + استخدم مُلقّمًا Type: - النوع: + النّوع: @@ -3179,37 +3099,41 @@ Enabling this would make GoldenDict block most advertisements by disallowing content (images, frames) not originating from the site you are browsing. If some site breaks because of this, try disabling this. - تمكين هذا سيجعل القاموس الذهبي يحجب أغلب الاعلانات -بمنع المحتوى (صور, اطارات) من خارج الموقع الذي تتصفحه. -ان كانت بعض المواقع تتشوه بسبب ذلك, جرب تعطيله. + تمكين هذا يجعل القاموس الذهبي يمنع أغلب الإعلانات +بعدم السماح بالمحتوى (صور، إطارات) غير المُنشأ من الموقع +الذي تتصفّحه. إن انهارت بعض المواقع بسبب هذا، حاول تعطيله. Disallow loading content from other sites (hides most advertisements) - لا تسمح بتحميل المحتوى من المواقع الاخرى (يخفي معظم الاعلانات) + امنع تحميل المحتوى من مواقع أخرى (يخفي أغلب الإعلانات) Enabling this would allow to listen to sound pronunciations from online dictionaries that rely on Flash or other web plugins. Plugin must be installed for this option to work. - + تمكين هذا سيسمح بالاستماع إلى نطق الصوت +من القواميس الموجودة على الإنترنت التي تعتمد +مشغّل فلاش أو إضافات وِب. يجب تثبيت الإضافة +ليعمل هذا الخيار. Enable web plugins - + مكّن إضافات الوِب Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + بعض المواقع تكتشف القاموس الذهبي من خلال ترويسات HTTP وتمنع الطلبات. +مكّن هذا الخيار للالتفاف حول المشكلة. Do not identify GoldenDict in HTTP headers - + لا تعرّف القاموس الذهبي في ترويسات HTTP @@ -3218,25 +3142,25 @@ is available for download. If it is so, the program informs the user about it and prompts to open a download page. - عند تمكين هذا, سيتحقق البرنامج من التحديثات -المتوفرة للتحميل من القاموس الذهبي. إن وجدت، -سيعلم البرنامج المستخدم و يطلب اذنه لفتح صفحة -التنزيل. + عند تمكين هذا، يلتمس البرنامج +كل فترة إن كان هناك تحديث جديد +للبرنامج متوفّر للتنزيل. إن كان كذلك، +سيُعلمك البرنامج عنه ويطلب فتح صفحة التنزيل. Check for new program releases periodically - تحقق من الاصدارات الحديثة غِبّا + التمس عن إصدار جديد للبرنامج كل فترة Ad&vanced - + مت&قدّم ScanPopup extra technologies - + تقنيات منبثقة الاستكشاف الإضافية @@ -3244,140 +3168,163 @@ This technology works only with some programs that support it (for example Internet Explorer 9). It is not needed to select this option if you don't use such programs. - + حاول أن تستخدم تقنية IAccessibleEx لاسترجاع الكلمة الواقعة تحت المؤشر. +تعمل هذه التقنية فقط مع بعض البرمجيات التي تدعمها. +(على سبيل المثال انترنت اكسبلورر 9) +لا حاجة لانتقاء هذا الخيار إذا كنت لا تستخدم مثل هذه البرمجيات. Use &IAccessibleEx - + استخدم &IAccessibleEx Try to use UI Automation technology to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + حاول أن تستخدم تقنية أتمتة واجهة المُستخدم لاسترجاع الكلمة الواقعة تحت المؤشر. +تعمل هذه التقنية فقط مع بعض البرمجيات التي تدعمها. +لا حاجة لانتقاء هذا الخيار إذا كنت لا تستخدم مثل هذه البرمجيات. Use &UIAutomation - + استخدم أ&تمتة واجهة المستخدم Try to use special GoldenDict message to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + حاول استخدام رسالة القاموس الذهبي لاسترجاع الكلمة تحت المؤشر. +هذه التقنية تعمل فقط مع بعض البرامج وتدعمها. +ليس مهمًّا تحديد هذا الخيار إن لم تكن تستخدم هكذا برنامج. Use &GoldenDict message - + استخدم رسالة القاموس ال&ذهبي History - + التأريخ Turn this option on to store history of the translated words - + مكّن هذا الخيار لتخزين تأريخ الكلمات المترجمة Store &history - + خزّن ال&تأريخ Specify the maximum number of entries to keep in history. - + حدّد عدد المدخلات الأقصى لإبقائها في التأريخ. Maximum history size: - + حجم التأريخ الأقصى: History saving interval. If set to 0 history will be saved only during exit. - + فترة حفظ التأريخ. إن عُيِّنت إلى 0، سيُحفظ التأريخ أثناء إنهاء التطبيق فقط. Save every - + احفظ كلّ minutes - + دقيقة Articles - + المقالات Turn this option on to always expand optional parts of articles - + مكّن هذا الخيار لتوسيع الأجزاء الاختيارية من المقالات دائمًا Expand optional &parts - + وسّع الأ&قسام الاختيارية + + + + Select this option to automatic collapse big articles + حدّد هذا الخيار لطي المقالات الكبيرة تلقائيًّا + + + + Collapse articles more than + اطو المقالات الأكبر من الـ + + + + Articles longer than this size will be collapsed + المقالات الأكبر من هذا الحجم ستطوى + + + + symbols + رمز System default - افتراضيات النظام + افتراضي النظام Default - الافتراضيات + الافتراضي Modern - + عصري Lingvo - لينغفو + لنغفو Babylon - + بابيلون Lingoes - + لِنْغوز Lingoes-Blue - - - - Play via DirectShow - اعرض خلال DirectShow + لِنْغوز-بلو - + Changing Language - تغيير اللغة + يغيّر اللغة - + Restart the program to apply the language change. - اعد تشغيل البرنامج لتطبيق تغيير اللغة. + أعد تشغيل البرنامج لتطبيق تغيير اللغة. @@ -3385,27 +3332,27 @@ Audio - + صوت Plain Text - + نص مجرّد Html - + Html Prefix Match - + طابِق السابقة Unknown - + غير معروف @@ -3413,17 +3360,17 @@ No program name was given. - + لم يُعطَ اسم للبرنامج. The program has crashed. - + انهار البرنامج. The program has returned exit code %1. - + أرجعَ البرنامج شِفرة الخروج %1. @@ -3431,125 +3378,126 @@ Enabled - مفعل + ممكّن Type - + النوع Name - الاسم + الاسم Command Line - + سطر الأوامر Icon - + الرّمز QObject - + + Article loading error - + خطأ في تحميل المقالة - + Article decoding error - + خطأ في فك ترميز المقالة - + avformat_alloc_context() failed. - + فشل avformat_alloc_context(). - + av_malloc() failed. - + فشل av_malloc(). - + avio_alloc_context() failed. - + فشل avio_alloc_context(). - + avformat_open_input() failed: %1. - + فشل avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. - + فشل avformat_find_stream_info(): %1. - + Could not find audio stream. - + تعذّر العثور على دفق الصوت. - + Codec [id: %1] not found. - + لم يُعثر على المرماز [المعرّف: %1]. - + avcodec_open2() failed: %1. - + فشلavcodec_open2(): %1. - + Cannot find usable audio output device. - + تعذّر العثور على جهاز خرج صوت قابل للاستخدام. - + Unsupported sample format. - + صيغة النموذج غير مدعومة. - + ao_open_live() failed: - + فشل ao_open_live(): - + No driver. - + لا تعريف. - + This driver is not a live output device. - + هذا التعريف ليس جهاز خرج حيّ. - + A valid option key has an invalid value. - + مفتاح خيار صالح يملك قيمة غير صالحة. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + تعذّر فتح الجهاز: %1، القنوات: %2، المعدّل: %3، البتات: %4. - + Unknown error. - + خطأ غير معروف. - + avcodec_alloc_frame() failed. - + فشل avcodec_alloc_frame(). @@ -3557,36 +3505,36 @@ Dictionary search/filter (Ctrl+F) - + رشّح/ابحث في القاموس (Ctrl+F) Quick Search - + بحث سريع Clear Search - + امحُ البحث ResourceToSaveHandler - - + + ERROR: %1 - + خطأ: %1 - + Resource saving error: - + خطأ في حفظ المورد: - + The referenced resource failed to download. - فشل تنزيل المرجع المشار إليه. + فشل تنزيل المورد المشار إليه. @@ -3594,12 +3542,12 @@ Hepburn Romaji for Hiragana - هيبورن روماجي لالهيراجانا + رومانجي هِپ‌بيرن للهيراجانا Hepburn Romaji for Katakana - هيبورن روماجي لكاتاكانا + رومانجي هِپ‌بيرن للكاتاكانا @@ -3607,7 +3555,7 @@ Russian Transliteration - الترجمة الصوتية الروسية + النسخ الروسي الحرفي @@ -3615,15 +3563,12 @@ Dialog - مربع حوار - - - word - كلمة + الحوار - List Matches (Alt+M) - اسرد المقابلات (Alt+M) + + Back + ارجع @@ -3635,18 +3580,9 @@ ... - - Back - ارجع - - Forward - تقدم - - - Alt+M - Alt+M + تقدّم @@ -3661,34 +3597,30 @@ Send word to main window (Alt+W) - + أرسل الكلمة إلى النافذة الرئيسية (Alt+W) Alt+W - + Alt+W Shows or hides the dictionary bar - أظهر أو أخف شريط القاموس + يُظهر أو يخفي شريط القاموس Use this to pin down the window so it would stay on screen, could be resized or managed in other ways. - استخدم هذا لتعليق النافذة وابقاءها على الشاشة، -يمكن تغيير حجمها أو ادارتها بطرق أخرى. - - - GoldenDict - القاموس الذهبي + استخدم هذا لتثبيت النافذة فتبقى على الشاشة، +يمكن تغيير حجمها أو إدارتها بطرق عدّة. %1 - %2 - + %1 - %2 @@ -3706,7 +3638,7 @@ Icon - + الرّمز @@ -3714,12 +3646,12 @@ Files - ملفات + الملفات Paths to search for the dictionary files: - مسار البحث عن ملفات القواميس + المسارات للبحث فيها عن ملفات القواميس: @@ -3737,32 +3669,32 @@ &Remove - ا&مسح + أ&زل Re&scan now - ا&بحث مجددا + أعد الا&كتشاف الآن Sound Dirs - مجلدات الصوت + أدلة الصوت Make dictionaries from bunches of audiofiles by adding paths here: - اعمل قواميسا من مجموعة من الملفات الصوتية بإضافة المسار هنا: + اعمل قواميس من مجموعات من ملفات الصوت بإضافة المسارات هنا: Morphology - الصرف + الصَرْف Path to a directory with Hunspell/Myspell dictionaries: - مسار قواميس Hunspell/Myspell: + المسار إلى دليل بقواميس Hunspell/Myspell: @@ -3772,7 +3704,7 @@ Available morphology dictionaries: - القواميس الصرفية المتوفرة: + قواميس الصَرْف المتوفّرة: @@ -3782,12 +3714,13 @@ spelling suggestions for mistyped words. Add appropriate dictionaries to the bottoms of the appropriate groups to use them. - كل قاموس صرفي يظهر + كل قاموس صَرْف يظهر كقاموس مساعد منفصل -ليقدم كلمات جذعية للبحث -و اقتراحات هجائية للكلمات الخطأ -أضف القواميس الملائمة لأسفل -المجموعة المناسبة لاستخدامهم. +حيث يقدّم جذر الكلمة للبحث +واقتراحات الإملاء للكلمات +الخاطئة. أضف القواميس +المناسبة إلى أسفل المجموعات +المناسبة لاستخدامها. @@ -3797,139 +3730,118 @@ Wikipedia (MediaWiki) sites: - مواقع (ميديا ويكي) لويكيبيديا: + مواقع ويكيبيديا (ميدياويكي): Websites - مواقع + مواقع الوِب Any websites. A string %GDWORD% will be replaced with the query word: - اية مواقع مع العبارة %GDWORD% ستستبدل بكلمة الطلب: + أي مواقع للوِب. السلسلة %GDWORD% ستُستبدل بكلمة الاستعلام: - Alternatively, use %GD1251% for CP1251, %GDISO1% for ISO 8859-1. - كبيديل استخدم %GD1251% for CP1251, %GDISO1% for ISO 8859-1. + + Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, +%GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. + إضافةً إلى ذلك، استخدم %GD1251% لـ CP1251، و %GDISO1% لـ ISO 8859-1، و %GDISO16% لـ ISO 8859-16، و +%GDBIG5% لـ Big-5، و %GDBIG5HKSCS% لـ Big5-HKSCS، و %GDGBK% لـ GBK و GB18030، و %GDSHIFTJIS% لـ Shift-JIS. Programs - + البرامج + + + + Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. + أي برامج خارجية، السلسلة %GDWORD% ستُستبدل بكلمة الاستعلام. إن لم تُقدَّم هكذا سلسلة، ستُغذّى الكلمة إلى الإدخال القياسي. Forvo - فروفو + فورڤو Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. - تهجئة حية من <a href="http://www.forvo.com/">forvo.com</a>. هذا الموقع يسمح للناس بتسجيل ومشاركة لفظ الكلمات. يمكنك الاستماع لها داخل GoldenDict. + نطق حيّ من <a href="http://www.forvo.com/">forvo.com</a>. هذا الموقع يسمح للناس بتسجيل ومشاركة نطق الكلمة. يمكنك الإستماع إليها من القاموس الذهبي. Enable pronunciations from Forvo - فعّل الترجمة من فروفو + مكّن النطق من فورڤو API Key: - مفتاح API: + مفتاح API: Use of Forvo currently requires an API key. Leave this field blank to use the default key, which may become unavailable in the future, or register on the site to get your own key. - استخدام فروفو حاليا يتطلب مفتاح API. اترك الحقل هذا -فارغا لاستخدام المفتاح الافتراضي، الذي قد يتعطل -في المستقبل، أو سجل عبر الموقع لتحصل على مفتاحك الخاص. + استخدام فورڤو حاليًّا يتطلّب مفتاح API. اترك هذا الحقل +فارغًا إن أردت استخدام الافتراضي، والذي قد لا يتوفّر في +المستقبل، أو سجّل في موقعنا للحصول على مفتاحك الخاص. Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Get your own key <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">احصل على مفتاحك الخاص <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> - - - - Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, -%GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - - - - - Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + احصل على مفتاحك الخاص من <a href="http://api.forvo.com/key/">هنا</a>، أو اتركه فارغًا لاستخدام الافتراضي. Language codes (comma-separated): - رموز اللغات (مفصولة بالفاصلة): + ترميزات اللغة (مقسّمة بفواصل): List of language codes you would like to have. Example: "en, ru". - قائمة برموز اللغات التي ترغب بها. مثال: "en, ru". + قائمة ترميزات اللغة التي تريد امتلاكها. مثال: "en, ru". Full list of language codes is available <a href="http://www.forvo.com/languages-codes/">here</a>. - قائمة كاملة برموز اللغات <a href="http://www.forvo.com/languages-codes/">هنا</a>. + القائمة الكاملة من ترميزات اللغة متوفّرة <a href="http://www.forvo.com/languages-codes/">هنا</a>. Transliteration - الترجمة الصوتية + النسخ الحرفي Russian transliteration - الترجمة الصوتية الروسية + النسخ الروسي الحرفي Greek transliteration - الترجمة الصوتية اليونانية + النسخ اليوناني الحرفي German transliteration - الترجمة الصوتية الألمانية + النسخ الألماني الحرفي Belarusian transliteration - + النسخ البلاروسي الحرفي Enables to use the Latin alphabet to write the Japanese language - يمكنك من استخدام الأبجدية اللاتينية لكتابة اللغة اليابانية + يمكّن استخدام الأبجدية اللاتينية لكتابة اللغة اليابانية Japanese Romaji - اليابانية روماجي + روماجي اليابانية @@ -3940,13 +3852,13 @@ The most widely used method of transcription of Japanese, based on English phonology - الاسلوب الأكثر شيوعا لل transcription اليابانية, -يعتمد على الصوتية الانكليزية + الطريقة الأكثر استخدامًا لنسخ اليابانية، +مبنية على الفونولوجيا الإنجليزية Hepburn - هيبورن + هِپ‌بيرن @@ -3954,15 +3866,15 @@ kana writing systems. Standardized as ISO 3602 Not implemented yet in GoldenDict. - الاسلوب الاكثر اعتيادا, بعلاقة واحد مقابل واحد لأنظمة كتابة الكانا -مقياس قياسي ISO 3602 + النظام الأكثر اعتيادية، لهُ علاقة واحد إلى واحد لأنظمة +كتابة الكانا، موحّدة كـ ISO 3602 -غير مطبق بعد في القاموس الذهبي. +لم يُنفَّذ حتى الآن في القاموس الذهبي. Nihon-shiki - نيهون-سيكي + نيهون-شيكي @@ -3970,25 +3882,25 @@ Standardized as ISO 3602 Not implemented yet in GoldenDict. - يعتمد على نظام نيهون-سيكي, لكنه معدل للمواصفات القياسية اليابانية الحديثة -مقياس قياسي ISO 3602 + مبني على نيهون-شيكي، لكن مُعدَّل لليابانية العصرية القياسية. +موحّدة كـ ISO 3602 -غير مضمن بعد في القاموس الذهبي. +لم يُنفَّذ حتى الآن في القاموس الذهبي. Kunrei-shiki - كنري-سيكي + كنريه-شيكي Syllabaries: - سيليباري: + الكتابة المقطعية: Hiragana Japanese syllabary - هيراغانا سلبري اليابانية + الكتابة اليابانية الهيراجانا المقطعية @@ -3998,29 +3910,29 @@ Katakana Japanese syllabary - كاتاكانا سلبري اليابانية + الكتابة اليابانية الكاتاكانا المقطعية Katakana - الكتكانا + الكاتاكانا Text to Speech - + قراءة النّصوص (not available in portable version) - (غير متوفر في النسخة المتنقلة) + (ليس متوفّرًا في الإصدار المحمول) Choose a directory - اختر قاموسا + اختر قاموسًا @@ -4029,24 +3941,24 @@ Confirm removal - أكد الحذف + تأكيد الإزالة Remove directory <b>%1</b> from the list? - اأزيل القاموس <b>%1</b> من القائمة؟ + أأزيل القاموس <b>%1</b> من القائمة؟ Remove site <b>%1</b> from the list? - اأزيل القاموس <b>%1</b> من القائمة؟ + أأزيل الموقع <b>%1</b> من القائمة؟ Remove program <b>%1</b> from the list? - + أأزيل البرنامج <b>%1</b> من القائمة؟ @@ -4054,7 +3966,7 @@ None - لاشيء + لاشيء @@ -4062,77 +3974,77 @@ Selected voice engines: - + محركات الصوت المحدّدة: &Add - + أ&ضف &Remove - ا&مسح + أ&زل Preferences - التفضيلات + تفضيلات Volume: - + الحجم: Rate: - + المعدّل: Preview - + معاينة Available voice engines: - + محركات الصوت المتوفّرة: Text to be previewed: - + النص لمعاينته: Type text to be previewed here. - + اطبع نصًّا هنا لعرضه. &Preview - + &عاين No TTS voice available - + لم يُعثر على صوت TTS Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + تعذّر العثور على صوت TTS.<br>فضلًا تأكد من وجود محرك TTS بالإصدار الأخير مثبّت على حاسوبك. Confirm removal - أكد الحذف + تأكيد الإزالة Remove voice engine <b>%1</b> from the list? - + أأزيل محرك الصوت <b>%1</b> من القائمة؟ @@ -4140,12 +4052,12 @@ Type a word or phrase to search dictionaries - + اطبع كلمة أو عبارة للبحث في القواميس Drop-down - + القائمة المنسدلة @@ -4153,22 +4065,22 @@ Enabled - مفعل + ممكّن Name - الاسم + الاسم Id - + المعرّف Icon - + الأيقونة @@ -4176,7 +4088,7 @@ Enabled - مفعل + ممكّن @@ -4191,15 +4103,15 @@ Icon - + الرّمز WordFinder - + Failed to query some dictionaries. - فشل طلب بعض القواميس. + فشل الاستعلام عن بعض القواميس. @@ -4207,7 +4119,7 @@ WARNING: %1 - تحذير: %1 + تحذير: %1 diff -Nru goldendict-1.0.2~git20130620/locale/ay_WI.ts goldendict-1.5.0~ppa131019/locale/ay_WI.ts --- goldendict-1.0.2~git20130620/locale/ay_WI.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/ay_WI.ts 2013-10-18 14:32:58.000000000 +0000 @@ -316,6 +316,14 @@ Inspect + + Video + + + + Video: %1 + + BelarusianTranslit diff -Nru goldendict-1.0.2~git20130620/locale/be_BY.ts goldendict-1.5.0~ppa131019/locale/be_BY.ts --- goldendict-1.0.2~git20130620/locale/be_BY.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/be_BY.ts 2013-10-18 14:32:58.000000000 +0000 @@ -6,25 +6,25 @@ About - Пра нас + Інфармацыя - + GoldenDict dictionary lookup program, version GoldenDict — праґрама прагляду слоўнікаў, вэрсія - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Канстанцін Ісакаў (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Ліцэнзія GNU GPLv3 ці пазьнейшая - + Credits: Удзельнікі праекту: @@ -34,9 +34,9 @@ [Няведамая] - + Based on Qt %1 (%2, %3 bit) - На падставе Qt %1 (%2, %3 біт) + На падставе Qt %1 (%2, %3 біты) @@ -52,52 +52,52 @@ Згарнуць артыкул - + No translation for <b>%1</b> was found in group <b>%2</b>. GoldenDict не знайшоў перакладу для <b>%1</b> у ґрупе <b>%2</b>. - + No translation was found in group <b>%1</b>. GoldenDict не знайшоў перакладу ў ґрупе <b>%1</b>. - + Welcome! Вітаем! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Вітаем у <b>GoldenDict</b>!</h3><p>Перш за ўсё наведай <b>Зьмены|Слоўнікі</b>, каб пазначыць шляхі да слоўнікавых файлаў, зь якіх будзе станавіцца бібліятэка слоўнікаў, дадай розныя сайты Вікіпэдыі й іншыя крыніцы, вызначы парадак слоўнікаў ды ствары слоўнікавыя ґрупы.<p>Па наладжваньні праґрама будзе гатовая да прагляду слоўнікавых артыкулаў. Тое можна рабіць у гэтым акне (упішы шуканае слова ў радок шуканьня) ці ў вонкавых праґрамах з дапамогаю <a href="Карыстаньне слоўнікам у вонкавых праґрамах">выплыўных вокнаў</a>. <p>Каб дапасаваць да сябе праґраму, скарыстай даступныя налады ў <b>Зьменах|Наладах</b>. Усе зьмешчаныя там налады маюць падказкі. Чытай іх для пэўнасьці ў зробленых зьменах.<p>Калі ўзьніклі пытаньні, прапановы, ці проста захацелася знаць меркаваньні людзей, то запрашаем на наш <a href="http://goldendict.org/forum/">форум</a>.<p>Новыя вэрсіі праґрамы заўсёды можна знайсьці на нашым <a href="http://goldendict.org/">сайце</a>.<p>(c) 2008-2013 Канстанцін Ісакаў. Ліцэнзія GPLv3 ці пазьнейшая. - + Working with popup Карыстаньне слоўнікам у вонкавых праґрамах - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. - <h3 align="center">Карыстаньне слоўнікам у вонкавых праґрамах</h3>Каб шукаць словы ў слоўніку з-пад іншых праґрамаў, трэба ўлучыць <i>мэханізм выплыўных вокнаў</i> у <b>Наладах</b>, і заціснуць кнопку „Выплыўныя вокны“ ў галоўным акне, ці ўлучыць адпаведны пункт кантэкстнага мэню значка ў сыстэмны лотку. + <h3 align="center">Карыстаньне слоўнікам у вонкавых праґрамах</h3>Каб шукаць словы ў слоўніку з-пад іншых праґрамаў, трэба падлучыць <i>мэханізм выплыўных вокнаў</i> у <b>Наладах</b>, і заціснуць кнопку „Выплыўныя вокны“ ў галоўным акне, ці ўлучыць адпаведны пункт кантэкстнага мэню значка ў сыстэмным лотку. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Затым у кожнай праґраме проста спыні курсор мышы над словам, і праз хвілю зьявіцца выплыўное акно з адпаведным артыкулам. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Затым у кожнай праґраме проста абяры слова мышшу (двойчы пстрыкні ці правядзі па слове курсорам мышы з заціснутай левай кнопкай), і праз хвілю зьявіцца выплыўное акно з адпаведным артыкулам. - + (untitled) (неназваная) - + (picture) (відарыс) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article Разгарнуць артыкул - + From З - + Collapse article Згарнуць артыкул - + Query error: %1 Памылка запыту: %1 - + Close words: Падобныя словы: - + Compound expressions: Словазлучэньні: - + Individual words: Словы паасобку: @@ -185,174 +185,184 @@ &Case Sensitive - Меркаваць &рэґістр + &Розьніць рэґістар - + Select Current Article Выбраць дзейны артыкул - + Copy as text Скапіяваць як тэкст - + Inspect Інспэктар - + Resource Рэсурс - + Audio Аўдыё - + TTS Voice Сынтэзатар голасу - + Picture Відарыс - + + Video + Відэа + + + + Video: %1 + Відэа: %1 + + + Definition from dictionary "%1": %2 Азначэньне з слоўніка „%1“: %2 - + Definition: %1 Азначэньне: %1 - - + + The referenced resource doesn't exist. Запытанага рэсурсу не існуе. - + The referenced audio program doesn't exist. Пазначанай праґрамы не існуе. - + ERROR: %1 - АБМЫЛА: %1 + ПАМЫЛКА: %1 - + Save sound Захаваньне гуку - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Гукавыя файлы (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Усе файлы (*.*) - + Save image Захаваньне выявы - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Файлы выяваў (*.bmp *.jpg *.png *.tif);;Усе файлы (*.*) - + &Open Link &Адчыніць спасылку - + Open Link in New &Tab Ачыніць спасылку ў новай &укладцы - + Open Link in &External Browser Адчыніць спасылку ў &вонкавым аглядальніку - + Save &image... Захаваць &выяву... - + Save s&ound... Захаваць &гук... - + &Look up "%1" &Шукаць „%1“ - + Look up "%1" in &New Tab Шукаць „%1“ у &новай укладцы - + Send "%1" to input line Зьмясьціць „%1“ у ўводным радку - - + + &Add "%1" to history - &Дадаць „%1“ у гісторыю + &Дадаць „%1“ да гісторыі - + Look up "%1" in %2 Шукаць „%1“ у ґрупе %2 - + Look up "%1" in %2 in &New Tab Шукаць „%1“ у ґрупе %2 у новай у&кладцы - + WARNING: FFmpeg Audio Player: %1 ПАПЯРЭДЖАНЬНЕ: Прайгравальнік FFMpeg: %1 - + WARNING: %1 УВАГА: %1 - + Failed to run a player to play sound file: %1 - Немажліва ўрухоміць прайгравальніка гукавага файла: %1 + Ня здолеў запусьціць прайгравальніка гукавага файла: %1 - + Failed to create temporary file. - Не атрымалася стварыць часовага файла. + Ня здолеў стварыць часовага файла. - + Failed to auto-open resource file, try opening manually: %1. - Не атрымалася аўтаматычна адчыніць рэсурсавага файла. Паспрабуй адчыніць ручна %1. + Ня здолеў аўтаматычна адчыніць рэсурсавага файла. Паспрабуй адчыніць ручна %1. - + The referenced resource failed to download. - Не атрымалася зладаваць пазначанага рэсурсу. + Ня здолеў зладаваць пазначанага рэсурсу. @@ -425,7 +435,7 @@ Can't read the specified image file. - Немагчыма прачытаць абранага файла выявы. + Нельга прачытаць абранага файла выявы. @@ -597,7 +607,7 @@ Some sources were changed. Would you like to accept the changes? - Колькі крыніц зьмяніліся. Ці ўжыць зьмены? + Колькі крыніц зьмянілася. Ці ўжыць зьмены? @@ -621,37 +631,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Памылка разбору файла XML: %1 — радок %2, слупок %3 - + Added %1 Дадана %1 - + by - + Male Мужчына - + Female Жанчына - + from з - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Прайдзі ў Зьмены|Слоўнікі|Крыніцы|Forvo і атрымай свой уласны API-ключ, каб прыбраць гэтую памылку. @@ -850,12 +860,12 @@ Гісторыя: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Памер гісторыі: %1 запісаў з %2 магчымых @@ -868,7 +878,7 @@ Артаґрафічныя падказкі: - + %1 Morphology Марфалёґія %1 @@ -1929,16 +1939,16 @@ Main - + Error in configuration file. Continue with default settings? - Абмыла ў файле канфіґурацыі. Працягнуць з стандартнымі наладамі? + Абмылка ў файле канфіґурацыі. Працягнуць з стандартнымі наладамі? MainWindow - + Welcome! Вітаем! @@ -1955,7 +1965,7 @@ &Help - &Помач + &Дапамога @@ -1980,7 +1990,7 @@ &Results Navigation Pane - Панэль &навіґацыі па выніках + Панэль &навіґацыі ў выніках @@ -2015,12 +2025,12 @@ &About - &Пра нас + &Інфармацыя About GoldenDict - Пра GoldenDict + Інфармацыя пра GoldenDict @@ -2130,7 +2140,7 @@ - + &Show &Паказаць @@ -2179,7 +2189,7 @@ Show Small Icons in &Toolbars - Паказваць малыя значкі ў паліцы &інструмэнтаў + Паказваць малыя значкі ў паліцы &прыладаў @@ -2228,7 +2238,7 @@ - + Look up in: Шукаць у: @@ -2288,184 +2298,184 @@ Новая ўкладка - + %1 dictionaries, %2 articles, %3 words %1 слоўнікаў, %2 артыкулаў, %3 словаў - + Look up: Шукаць: - + All Усе - + Open Tabs List Адчыніць сьпіс укладак - + (untitled) (бяз назвы) - + %1 - %2 %1 - %2 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. - Памылка ініцыялізацыі сачэньня за клявішнымі скаротамі.<br>Пераканайся, што XServer мае ўлучанае пашырэньне RECORD. + Памылка ініцыялізацыі цікаваньня клявішных скаротаў.<br>Пераканайся, што XServer мае ўлучанае пашырэньне RECORD. - + New Release Available Дастуны новы выпуск - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. - GoldenDict вэрсіі <b>%1</b> даступны для зладаваньня.<br>Пстрыкні па <b>Зладаваць</b>, каб перайсьці на бачыну зладаваньня. + GoldenDict вэрсіі <b>%1</b> даступны для заладаваньня.<br>Пстрыкні па <b>Зладаваць</b>, каб перайсьці на бачыну сьцягваньня. - + Download Зладаваць - + Skip This Release Прамінуць гэты выпуск - - + + Accessibility API is not enabled Accessibility API ня ўлучаны - + You have chosen to hide a menubar. Use %1 to show it back. Паліца мэню ёсьць схаваная. Скарыстай %1, каб павараціць назад. - + Ctrl+M Ctrl+M - + Page Setup Налады бачыны - + No printer is available. Please install one first. Няма дасяжных друкарак. Спачатку ўсталюй хоць адну. - + Print Article Надрукаваць артыкул - + Article, Complete (*.html) Артыкул цалком (*.html) - + Article, HTML Only (*.html) Артыкул, толькі HTML (*.html) - + Save Article As Захаваць артыкул як - + Error - Абмыла + Памылка - + Can't save article: %1 - Немажліва захаваць артыкул: %1 + Няможна захаваць артыкул: %1 - + Saving article... Захоўваньне артыкула... - + The main window is set to be always on top. Галоўнае акно цяпер заўсёды знаходзіцца вышэй іншых. - + &Hide С&хаваць - + Export history to file Экспартаваньне гісторыі ў файл - - + + Text files (*.txt);;All files (*.*) Тэкставыя файлы (*.txt);;Усе файлы (*.*) - + History export complete - Экспартаваньне гісторыі скончылася + Экспартаваньне гісторыі кончылася - + Export error: Памылка экспарту: - + Import history from file Імпартаваньне гісторыі з файла - + Import error: invalid data in file Памылка імпартаваньня: хібныя зьвесткі ў файле - + History import complete - Імпартаваньне гісторыі скончылася + Імпартаваньне гісторыі кончылася - + Import error: Памылка імпартаваньня: - + Dictionary info Інфармацыя пра слоўнік - + Open dictionary folder Адчыніць слоўнікавы каталёґ - + Edit dictionary Рэдаґаваць слоўнік @@ -2473,20 +2483,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - Слоўнікавы файл скажаны ці пашкоджаны + Слоўнікавы файл скажоны ці пашкоджаны - + Failed loading article from %1, reason: %2 - Абмыла ладаваньня артыкула з %1, з прычыны: %2 + Абмылка ладаваньня артыкула з %1, з прычыны: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Памылка разбору файла XML: %1 — радок %2, слупок %3 @@ -2494,7 +2504,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Памылка разбору файла XML: %1 — радок %2, слупок %3 @@ -2680,7 +2690,7 @@ When enabled, an icon appears in the sytem tray area which can be used to open main window and perform other tasks. - Калі ўлучана, у сыстэмным лотку зьявіцца значак, што можна + Калі ўлучана, у сыстэмным лотку зьявіцца значак, які можна карыстаць для выкліканьня галоўнага акна ды іншых дзеяньняў. @@ -2692,7 +2702,7 @@ With this on, the application starts directly to system tray without showing its main window. - З гэтай опцыяй праґрама будзе стартаваць проста ў сыстэмным лотку без адлюставаньня галоўнага акна. + З гэтай опцыяй праґрама будзе стартаваць прост у сыстэмным лотку з схаваным галоўным акном. @@ -3053,7 +3063,7 @@ Use proxy server - Скарыстаць проксі сэрвэр + Скарыстаць проксі-сэрвэр @@ -3219,7 +3229,7 @@ History saving interval. If set to 0 history will be saved only during exit. - Інтэрвал захаваньня гісторыі. Калі 0, гісторыя будзе захоўвацца адно перад выхадам. + Інтэрвал захаваньня гісторыі. Калі 0, гісторыя будзе захоўвацца толькі перад выхадам. @@ -3239,12 +3249,12 @@ Turn this option on to always expand optional parts of articles - Улучы гэтую опцыю, каб заўсёды разьвінаць дадатковыя разьдзелы артыкулаў + Улучы гэтую опцыю, каб заўсёды разгортваць дадатковыя разьдзелы артыкулаў Expand optional &parts - Разьвінаць дадатковыя &разьдзелы + Разгортваць дадатковыя &разьдзелы @@ -3259,7 +3269,7 @@ Articles longer than this size will be collapsed - Артыкулы большыя за гэтае значэньне будуць згартацца + Артыкулы большыя за гэта значэньне будуць згартацца @@ -3302,14 +3312,14 @@ Lingoes-Blue - + Changing Language Зьмена мовы - + Restart the program to apply the language change. - Перастартуй праґраму, каб ужыць зьмененую мову. + Перастартуй праґраму, каб ужыць новую мову. @@ -3345,7 +3355,7 @@ No program name was given. - Назва праґрамы не зададзеная. + Назвы праґрамы не пазначылі. @@ -3355,7 +3365,7 @@ The program has returned exit code %1. - Праґрама павараціла выходны код %1. + Праґрама вярнула выходны код %1. @@ -3389,97 +3399,97 @@ QObject - + Article loading error Памылка ладаваньня артыкула - + Article decoding error - Памылка раскадаваньня артыкула + Памылка раскадоўваньня артыкула - + avformat_alloc_context() failed. Памылка avformat_alloc_context(). - + av_malloc() failed. Памылка av_malloc(). - + avio_alloc_context() failed. Памылка avio_alloc_context(). - + avformat_open_input() failed: %1. Памылка avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. Памылка avformat_find_stream_info(): %1. - + Could not find audio stream. - Не атрымался знайсьці аўдыёплынь. + Ня выйшла знайсьці аўдыёплыні. - + Codec [id: %1] not found. - GoldenDict не знайшоў кодэк [id: %1]. + GoldenDict не знайшоў кодэка [id: %1]. - + avcodec_open2() failed: %1. Памылка avcodec_open2(): %1. - + Cannot find usable audio output device. - Не атрымалася знайсьці прыладу вываду гуку. + Ня выйшла знайсьці прылады вываду гуку. - + Unsupported sample format. Непадтрымліваны гукавы фармат. - + ao_open_live() failed: Памылка ao_open_live(): - + No driver. - Няма драйвэру. + Няма драйвэра. - + This driver is not a live output device. - Гэты драйвэр ня ёсьць пралада вываду. + Гэты драйвэр ня ёсьць праладай вываду. - + A valid option key has an invalid value. Сапраўдны ключ парамэтраў мае несапраўднае значэньне. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - Немажліва адчыніць: прылада: %1, каналаў: %2, часьціня дыскрэтызацыі: %3, бітплынь: %4. + Няможна адчыніць: прылада: %1, каналаў: %2, часьціня дыскрэтызацыі: %3, бітплынь: %4. - + Unknown error. Няведамая памылка. - + avcodec_alloc_frame() failed. Памылка avcodec_alloc_frame(). @@ -3505,20 +3515,20 @@ ResourceToSaveHandler - - + + ERROR: %1 АБМЫЛА: %1 - + Resource saving error: Памылка захаваньня рэсурсу: - + The referenced resource failed to download. - Не атрымалася зладаваць пазначанага рэсурсу. + Ня выйшла зладаваць пазначанага рэсурсу. @@ -3698,7 +3708,7 @@ spelling suggestions for mistyped words. Add appropriate dictionaries to the bottoms of the appropriate groups to use them. - Кожны марфаляґічны слоўнік ёсьць + Кожны марфаляґічны слоўнік — гэта асобны дапаможны слоўнік, які забесьпячае падставовыя формы словаў для шуканьня, і прапаноўвае @@ -3923,7 +3933,7 @@ Confirm removal - Пацьверджаньне прыбіраньня + Пацьверджаньне выдаленьня diff -Nru goldendict-1.0.2~git20130620/locale/be_BY@latin.ts goldendict-1.5.0~ppa131019/locale/be_BY@latin.ts --- goldendict-1.0.2~git20130620/locale/be_BY@latin.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/be_BY@latin.ts 2013-10-18 14:32:58.000000000 +0000 @@ -6,25 +6,25 @@ About - Pra nas + Infarmacyja - + GoldenDict dictionary lookup program, version GoldenDict — pragrama prahladu słoŭnikaŭ, versija - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Kanstancin Isakaŭ (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Licenzija GNU GPLv3 ci paźniejšaja - + Credits: Udzielniki prajektu: @@ -34,9 +34,9 @@ [Niaviedamaja] - + Based on Qt %1 (%2, %3 bit) - Na padstavie Qt %1 (%2, %3 bit) + Na padstavie Qt %1 (%2, %3 bity) @@ -52,52 +52,52 @@ Zharnuć artykuł - + No translation for <b>%1</b> was found in group <b>%2</b>. GoldenDict nie znajšoŭ pierakładu dla <b>%1</b> u grupie <b>%2</b>. - + No translation was found in group <b>%1</b>. GoldenDict nie znajšoŭ pierakładu ŭ grupie <b>%1</b>. - + Welcome! Vitajem! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - <h3 align="center">Vitajem u <b>GoldenDict</b>!</h3><p>Pierš za ŭsio naviedaj <b>Źmieny|Słoŭniki</b>, kab paznačyć šlachi da słoŭnikavych fajłaŭ, ź jakich budzie stanavicca biblijateka słoŭnikaŭ, dadaj roznyja sajty Wikipedyi j inšyja krynicy, vyznačy paradak słoŭnikaŭ dy stvary słoŭnikavyja grupy.<p>Pa naładžvańni pragrama budzie hatovaja da prahladu słoŭnikavych artykułaŭ. Toje možna rabić u hetym aknie (upišy šukanaje słova ŭ radok šukańnia) ci ŭ vonkavych pragramach z dapamohaju <a href="Karystańnie słoŭnikam u vonkavych pragramach">vypłyŭnych voknaŭ</a>. <p>Kab dapasavać da siabie pragramu, skarystaj dastupnyja nałady ŭ <b>Źmienach|Naładach</b>. Usie źmieščanyja tam nałady majuć padkazki. Čytaj ich dla peŭnaści ŭ zroblenych źmienach.<p>Kali ŭźnikli pytańni, prapanovy, ci prosta zachaciełasia znać mierkavańni ludziej, to zaprašajem na naš <a href="http://goldendict.org/forum/">forum</a>.<p>Novyja versii pragramy zaŭsiody možna znajści na našym <a href="http://goldendict.org/">sajcie</a>.<p>(c) 2008-2013 Kanstancin Isakaŭ. Licenzija GPLv3 ci paźniejšaja. + <h3 align="center">Vitajem u <b>GoldenDict</b>!</h3><p>Pierš za ŭsio naviedaj <b>Źmieny|Słoŭniki</b>, kab paznačyć šlachi da słoŭnikavych fajłaŭ, ź jakich budzie stanavicca biblijateka słoŭnikaŭ, dadaj roznyja sajty Vikipedyi j inšyja krynicy, vyznačy paradak słoŭnikaŭ dy stvary słoŭnikavyja grupy.<p>Pa naładžvańni pragrama budzie hatovaja da prahladu słoŭnikavych artykułaŭ. Toje možna rabić u hetym aknie (upišy šukanaje słova ŭ radok šukańnia) ci ŭ vonkavych pragramach z dapamohaju <a href="Karystańnie słoŭnikam u vonkavych pragramach">vypłyŭnych voknaŭ</a>. <p>Kab dapasavać da siabie pragramu, skarystaj dastupnyja nałady ŭ <b>Źmienach|Naładach</b>. Usie źmieščanyja tam nałady majuć padkazki. Čytaj ich dla peŭnaści ŭ zroblenych źmienach.<p>Kali ŭźnikli pytańni, prapanovy, ci prosta zachaciełasia znać mierkavańni ludziej, to zaprašajem na naš <a href="http://goldendict.org/forum/">forum</a>.<p>Novyja versii pragramy zaŭsiody možna znajści na našym <a href="http://goldendict.org/">sajcie</a>.<p>(c) 2008-2013 Kanstancin Isakaŭ. Licenzija GPLv3 ci paźniejšaja. - + Working with popup Karystańnie słoŭnikam u vonkavych pragramach - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. - <h3 align="center">Karystańnie słoŭnikam u vonkavych pragramach</h3>Kab šukać słovy ŭ słoŭniku z-pad inšych pragramaŭ, treba ŭłučyć <i>mechanizm vypłyŭnych voknaŭ</i> u <b>Naładach</b>, i zacisnuć knopku „Vypłyŭnyja vokny“ ŭ hałoŭnym aknie, ci ŭłučyć adpaviedny punkt kantekstnaha meniu značka ŭ systemny łotku. + <h3 align="center">Karystańnie słoŭnikam u vonkavych pragramach</h3>Kab šukać słovy ŭ słoŭniku z-pad inšych pragramaŭ, treba padłučyć <i>mechanizm vypłyŭnych voknaŭ</i> u <b>Naładach</b>, i zacisnuć knopku „Vypłyŭnyja vokny“ ŭ hałoŭnym aknie, ci ŭłučyć adpaviedny punkt kantekstnaha meniu značka ŭ systemnym łotku. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Zatym u kožnaj pragramie prosta spyni kursor myšy nad słovam, i praz chvilu źjavicca vypłyŭnoje akno z adpaviednym artykułam. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Zatym u kožnaj pragramie prosta abiary słova myššu (dvojčy pstrykni ci praviadzi pa słovie kursoram myšy z zacisnutaj levaj knopkaj), i praz chvilu źjavicca vypłyŭnoje akno z adpaviednym artykułam. - + (untitled) (nienazvanaja) - + (picture) (vidarys) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article Razharnuć artykuł - + From Z - + Collapse article Zharnuć artykuł - + Query error: %1 Pamyłka zapytu: %1 - + Close words: Padobnyja słovy: - + Compound expressions: Słovazłučeńni: - + Individual words: Słovy paasobku: @@ -185,174 +185,184 @@ &Case Sensitive - Mierkavać &registr + &Roźnić registar - + Select Current Article Vybrać dziejny artykuł - + Copy as text Skapijavać jak tekst - + Inspect Inspektar - + Resource Resurs - + Audio Aŭdyjo - + TTS Voice Syntezatar hołasu - + Picture Vidarys - + + Video + Videa + + + + Video: %1 + Videa: %1 + + + Definition from dictionary "%1": %2 Aznačeńnie z słoŭnika „%1“: %2 - + Definition: %1 Aznačeńnie: %1 - - + + The referenced resource doesn't exist. Zapytanaha resursu nie isnuje. - + The referenced audio program doesn't exist. Paznačanaj pragramy nie isnuje. - + ERROR: %1 - ABMYŁA: %1 + PAMYŁKA: %1 - + Save sound Zachavańnie huku - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Hukavyja fajły (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Usie fajły (*.*) - + Save image Zachavańnie vyjavy - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Fajły vyjavaŭ (*.bmp *.jpg *.png *.tif);;Usie fajły (*.*) - + &Open Link &Adčynić spasyłku - + Open Link in New &Tab Ačynić spasyłku ŭ novaj &układcy - + Open Link in &External Browser Adčynić spasyłku ŭ &vonkavym ahladalniku - + Save &image... Zachavać &vyjavu... - + Save s&ound... Zachavać &huk... - + &Look up "%1" &Šukać „%1“ - + Look up "%1" in &New Tab Šukać „%1“ u &novaj układcy - + Send "%1" to input line Źmiaścić „%1“ u ŭvodnym radku - - + + &Add "%1" to history - &Dadać „%1“ u historyju + &Dadać „%1“ da historyi - + Look up "%1" in %2 Šukać „%1“ u grupie %2 - + Look up "%1" in %2 in &New Tab Šukać „%1“ u grupie %2 u novaj u&kładcy - + WARNING: FFmpeg Audio Player: %1 PAPIAREDŽAŃNIE: Prajhravalnik FFMpeg: %1 - + WARNING: %1 UVAHA: %1 - + Failed to run a player to play sound file: %1 - Niemažliva ŭruchomić prajhravalnika hukavaha fajła: %1 + Nia zdoleŭ zapuścić prajhravalnika hukavaha fajła: %1 - + Failed to create temporary file. - Nie atrymałasia stvaryć časovaha fajła. + Nia zdoleŭ stvaryć časovaha fajła. - + Failed to auto-open resource file, try opening manually: %1. - Nie atrymałasia aŭtamatyčna adčynić resursavaha fajła. Pasprabuj adčynić ručna %1. + Nia zdoleŭ aŭtamatyčna adčynić resursavaha fajła. Pasprabuj adčynić ručna %1. - + The referenced resource failed to download. - Nie atrymałasia zładavać paznačanaha resursu. + Nia zdoleŭ zładavać paznačanaha resursu. @@ -425,7 +435,7 @@ Can't read the specified image file. - Niemahčyma pračytać abranaha fajła vyjavy. + Nielha pračytać abranaha fajła vyjavy. @@ -597,7 +607,7 @@ Some sources were changed. Would you like to accept the changes? - Kolki krynic źmianilisia. Ci ŭžyć źmieny? + Kolki krynic źmianiłasia. Ci ŭžyć źmieny? @@ -621,37 +631,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Pamyłka razboru fajła XML: %1 — radok %2, słupok %3 - + Added %1 Dadana %1 - + by - + Male Mužčyna - + Female Žančyna - + from z - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Prajdzi ŭ Źmieny|Słoŭniki|Krynicy|Forvo i atrymaj svoj ułasny API-kluč, kab prybrać hetuju pamyłku. @@ -850,12 +860,12 @@ Historyja: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Pamier historyi: %1 zapisaŭ z %2 mahčymych @@ -868,7 +878,7 @@ Artagrafičnyja padkazki: - + %1 Morphology Marfalogija %1 @@ -1929,16 +1939,16 @@ Main - + Error in configuration file. Continue with default settings? - Abmyła ŭ fajle kanfiguracyi. Praciahnuć z standartnymi naładami? + Abmyłka ŭ fajle kanfiguracyi. Praciahnuć z standartnymi naładami? MainWindow - + Welcome! Vitajem! @@ -1955,7 +1965,7 @@ &Help - &Pomač + &Dapamoha @@ -1980,7 +1990,7 @@ &Results Navigation Pane - Panel &navigacyi pa vynikach + Panel &navigacyi ŭ vynikach @@ -2015,12 +2025,12 @@ &About - &Pra nas + &Infarmacyja About GoldenDict - Pra GoldenDict + Infarmacyja pra GoldenDict @@ -2130,7 +2140,7 @@ - + &Show &Pakazać @@ -2179,7 +2189,7 @@ Show Small Icons in &Toolbars - Pakazvać małyja znački ŭ palicy &instrumentaŭ + Pakazvać małyja znački ŭ palicy &pryładaŭ @@ -2228,7 +2238,7 @@ - + Look up in: Šukać u: @@ -2288,184 +2298,184 @@ Novaja ŭkładka - + %1 dictionaries, %2 articles, %3 words %1 słoŭnikaŭ, %2 artykułaŭ, %3 słovaŭ - + Look up: Šukać: - + All Usie - + Open Tabs List Adčynić śpis układak - + (untitled) (biaz nazvy) - + %1 - %2 %1 - %2 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. - Pamyłka inicyjalizacyi sačeńnia za klavišnymi skarotami.<br>Pierakanajsia, što XServer maje ŭłučanaje pašyreńnie RECORD. + Pamyłka inicyjalizacyi cikavańnia klavišnych skarotaŭ.<br>Pierakanajsia, što XServer maje ŭłučanaje pašyreńnie RECORD. - + New Release Available Dastuny novy vypusk - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. - GoldenDict versii <b>%1</b> dastupny dla zładavańnia.<br>Pstrykni pa <b>Zładavać</b>, kab pierajści na bačynu zładavańnia. + GoldenDict versii <b>%1</b> dastupny dla załadavańnia.<br>Pstrykni pa <b>Zładavać</b>, kab pierajści na bačynu ściahvańnia. - + Download Zładavać - + Skip This Release Praminuć hety vypusk - - + + Accessibility API is not enabled Accessibility API nia ŭłučany - + You have chosen to hide a menubar. Use %1 to show it back. Palica meniu jość schavanaja. Skarystaj %1, kab pavaracić nazad. - + Ctrl+M Ctrl+M - + Page Setup Nałady bačyny - + No printer is available. Please install one first. Niama dasiažnych drukarak. Spačatku ŭstaluj choć adnu. - + Print Article Nadrukavać artykuł - + Article, Complete (*.html) Artykuł całkom (*.html) - + Article, HTML Only (*.html) Artykuł, tolki HTML (*.html) - + Save Article As Zachavać artykuł jak - + Error - Abmyła + Pamyłka - + Can't save article: %1 - Niemažliva zachavać artykuł: %1 + Niamožna zachavać artykuł: %1 - + Saving article... Zachoŭvańnie artykuła... - + The main window is set to be always on top. Hałoŭnaje akno ciapier zaŭsiody znachodzicca vyšej inšych. - + &Hide S&chavać - + Export history to file Ekspartavańnie historyi ŭ fajł - - + + Text files (*.txt);;All files (*.*) Tekstavyja fajły (*.txt);;Usie fajły (*.*) - + History export complete - Ekspartavańnie historyi skončyłasia + Ekspartavańnie historyi končyłasia - + Export error: Pamyłka ekspartu: - + Import history from file Impartavańnie historyi z fajła - + Import error: invalid data in file Pamyłka impartavańnia: chibnyja źviestki ŭ fajle - + History import complete - Impartavańnie historyi skončyłasia + Impartavańnie historyi končyłasia - + Import error: Pamyłka impartavańnia: - + Dictionary info Infarmacyja pra słoŭnik - + Open dictionary folder Adčynić słoŭnikavy katalog - + Edit dictionary Redagavać słoŭnik @@ -2473,20 +2483,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - Słoŭnikavy fajł skažany ci paškodžany + Słoŭnikavy fajł skažony ci paškodžany - + Failed loading article from %1, reason: %2 - Abmyła ładavańnia artykuła z %1, z pryčyny: %2 + Abmyłka ładavańnia artykuła z %1, z pryčyny: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Pamyłka razboru fajła XML: %1 — radok %2, słupok %3 @@ -2494,7 +2504,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Pamyłka razboru fajła XML: %1 — radok %2, słupok %3 @@ -2680,7 +2690,7 @@ When enabled, an icon appears in the sytem tray area which can be used to open main window and perform other tasks. - Kali ŭłučana, u systemnym łotku źjavicca značak, što možna + Kali ŭłučana, u systemnym łotku źjavicca značak, jaki možna karystać dla vyklikańnia hałoŭnaha akna dy inšych dziejańniaŭ. @@ -2692,7 +2702,7 @@ With this on, the application starts directly to system tray without showing its main window. - Z hetaj opcyjaj pragrama budzie startavać prosta ŭ systemnym łotku biez adlustavańnia hałoŭnaha akna. + Z hetaj opcyjaj pragrama budzie startavać prost u systemnym łotku z schavanym hałoŭnym aknom. @@ -3053,7 +3063,7 @@ Use proxy server - Skarystać proksi server + Skarystać proksi-server @@ -3219,7 +3229,7 @@ History saving interval. If set to 0 history will be saved only during exit. - Intervał zachavańnia historyi. Kali 0, historyja budzie zachoŭvacca adno pierad vychadam. + Intervał zachavańnia historyi. Kali 0, historyja budzie zachoŭvacca tolki pierad vychadam. @@ -3239,12 +3249,12 @@ Turn this option on to always expand optional parts of articles - Ułučy hetuju opcyju, kab zaŭsiody raźvinać dadatkovyja raździeły artykułaŭ + Ułučy hetuju opcyju, kab zaŭsiody razhortvać dadatkovyja raździeły artykułaŭ Expand optional &parts - Raźvinać dadatkovyja &raździeły + Razhortvać dadatkovyja &raździeły @@ -3259,7 +3269,7 @@ Articles longer than this size will be collapsed - Artykuły bolšyja za hetaje značeńnie buduć zhartacca + Artykuły bolšyja za heta značeńnie buduć zhartacca @@ -3302,14 +3312,14 @@ Lingoes-Blue - + Changing Language Źmiena movy - + Restart the program to apply the language change. - Pierastartuj pragramu, kab užyć źmienienuju movu. + Pierastartuj pragramu, kab užyć novuju movu. @@ -3345,7 +3355,7 @@ No program name was given. - Nazva pragramy nie zadadzienaja. + Nazvy pragramy nie paznačyli. @@ -3355,7 +3365,7 @@ The program has returned exit code %1. - Pragrama pavaraciła vychodny kod %1. + Pragrama viarnuła vychodny kod %1. @@ -3389,97 +3399,97 @@ QObject - + Article loading error Pamyłka ładavańnia artykuła - + Article decoding error - Pamyłka raskadavańnia artykuła + Pamyłka raskadoŭvańnia artykuła - + avformat_alloc_context() failed. Pamyłka avformat_alloc_context(). - + av_malloc() failed. Pamyłka av_malloc(). - + avio_alloc_context() failed. Pamyłka avio_alloc_context(). - + avformat_open_input() failed: %1. Pamyłka avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. Pamyłka avformat_find_stream_info(): %1. - + Could not find audio stream. - Nie atrymałsia znajści aŭdyjopłyń. + Nia vyjšła znajści aŭdyjopłyni. - + Codec [id: %1] not found. - GoldenDict nie znajšoŭ kodek [id: %1]. + GoldenDict nie znajšoŭ kodeka [id: %1]. - + avcodec_open2() failed: %1. Pamyłka avcodec_open2(): %1. - + Cannot find usable audio output device. - Nie atrymałasia znajści pryładu vyvadu huku. + Nia vyjšła znajści pryłady vyvadu huku. - + Unsupported sample format. Niepadtrymlivany hukavy farmat. - + ao_open_live() failed: Pamyłka ao_open_live(): - + No driver. - Niama drajveru. + Niama drajvera. - + This driver is not a live output device. - Hety drajver nia jość prałada vyvadu. + Hety drajver nia jość praładaj vyvadu. - + A valid option key has an invalid value. Sapraŭdny kluč parametraŭ maje niesapraŭdnaje značeńnie. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - Niemažliva adčynić: pryłada: %1, kanałaŭ: %2, čaścinia dyskretyzacyi: %3, bitpłyń: %4. + Niamožna adčynić: pryłada: %1, kanałaŭ: %2, čaścinia dyskretyzacyi: %3, bitpłyń: %4. - + Unknown error. Niaviedamaja pamyłka. - + avcodec_alloc_frame() failed. Pamyłka avcodec_alloc_frame(). @@ -3505,20 +3515,20 @@ ResourceToSaveHandler - - + + ERROR: %1 ABMYŁA: %1 - + Resource saving error: Pamyłka zachavańnia resursu: - + The referenced resource failed to download. - Nie atrymałasia zładavać paznačanaha resursu. + Nia vyjšła zładavać paznačanaha resursu. @@ -3698,7 +3708,7 @@ spelling suggestions for mistyped words. Add appropriate dictionaries to the bottoms of the appropriate groups to use them. - Kožny marfalagičny słoŭnik jość + Kožny marfalagičny słoŭnik — heta asobny dapamožny słoŭnik, jaki zabieśpiačaje padstavovyja formy słovaŭ dla šukańnia, i prapanoŭvaje @@ -3709,12 +3719,12 @@ Wikipedia - Wikipedyja + Vikipedyja Wikipedia (MediaWiki) sites: - Sajty Wikipedyi (MediaWiki): + Sajty Vikipedyi (MediaWiki): @@ -3923,7 +3933,7 @@ Confirm removal - Paćvierdžańnie prybirańnia + Paćvierdžańnie vydaleńnia diff -Nru goldendict-1.0.2~git20130620/locale/bg_BG.ts goldendict-1.5.0~ppa131019/locale/bg_BG.ts --- goldendict-1.0.2~git20130620/locale/bg_BG.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/bg_BG.ts 2013-10-18 14:32:58.000000000 +0000 @@ -300,6 +300,14 @@ Inspect + + Video + + + + Video: %1 + + BelarusianTranslit diff -Nru goldendict-1.0.2~git20130620/locale/cs_CZ.ts goldendict-1.5.0~ppa131019/locale/cs_CZ.ts --- goldendict-1.0.2~git20130620/locale/cs_CZ.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/cs_CZ.ts 2013-10-18 14:32:58.000000000 +0000 @@ -40,11 +40,11 @@ (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) Based on Qt %1 (%2, %3 bit) - + Založeno na Qt %1 (%2, %3 bit) @@ -83,19 +83,19 @@ <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - <h3 align="center">Vítejte v programu <b>GoldenDict</b>!</h3><p>Práci s programem začněte v <b>Upravit|Slovníky</b>, kde můžete přidat cesty ke složkám, kde budou vyhledávány soubory slovníků, nastavíte různé stránky Wikipedie a jiné zdroje, upravíte pořadí adresářů nebo vytvoříte skupiny slovníků.<p>Pak budete moci vyhledávat slovíčka! To můžete provádět v tomto okně použitím pasnelu vlevo, nebo můžete <a href="Working with popup">vyhledávat slova z jiných aktivních aplikací</a>. <p>Upravení vlastností programu provedete v <b>Upravit|Předvolby</b>. Všechna nastavení mají nápovědu, která vám pomůže v případě, že máte o něčem pochybnosti.<p>Budete-li potřebovat další pomoc, budete mít nějaké návrhy nebo jenom budete chtít vědět co si myslí jiní, budete vítání na stránkách <a href="http://goldendict.berlios.de/forum/">diskuse</a> o programu.<p>Aktualizace programu hledejte na <a href="http://goldendict.berlios.de/">jeho stránkách</a>.<p>(c) 2008-2013 Konstantin Isakov. Licencováno pod GPLv3 nebo novější. + <h3 align="center">Vítejte v programu <b>GoldenDict</b>!</h3><p>Práci s programem začněte v <b>Upravit|Slovníky</b>, kde můžete přidat cesty ke složkám, kde budou vyhledávány soubory slovníků, nastavíte různé stránky Wikipedie a jiné zdroje, upravíte pořadí adresářů nebo vytvoříte skupiny slovníků.<p>Pak budete moci vyhledávat slovíčka! To můžete provádět v tomto okně použitím pasnelu vlevo, nebo můžete <a href="Working with popup">vyhledávat slova z jiných aktivních aplikací</a>. <p>Upravení vlastností programu provedete v <b>Upravit|Předvolby</b>. Všechna nastavení mají nápovědu, která vám pomůže v případě, že máte o něčem pochybnosti.<p>Budete-li potřebovat další pomoc, budete mít nějaké návrhy nebo jenom budete chtít vědět co si myslí jiní, budete vítání na stránkách <a href="http://goldendict.berlios.de/forum/">diskuse</a> o programu.<p>Aktualizace programu hledejte na <a href="http://goldendict.org/">jeho stránkách</a>.<p>(c) 2008-2013 Konstantin Isakov. Licencováno pod GPLv3 nebo novější. (picture) - + (obrázek) Expand article - + Rozbalit článek Collapse article - + Sbalit článek @@ -126,11 +126,11 @@ Expand article - + Rozbalit článek Collapse article - + Sbalit článek @@ -229,107 +229,116 @@ Highlight &all - + Zvýr&aznit vše Resource - + Zdroj Audio - + Audio Definition: %1 - + Definice: %1 The referenced audio program doesn't exist. - + Odkazovaný audio program neexistuje. WARNING: %1 - VAROVÁNÍ: %1 + VAROVÁNÍ: %1 &Add "%1" to history - + Přid&at "%1" do historie Definition from dictionary "%1": %2 - + Definice ze slovníku "%1": %2 Send "%1" to input line - + Poslat "%1" na vstupní řádek Picture - + Obrázek Select Current Article - + Vybrat aktuální článek ERROR: %1 - + CHYBA: %1 Save sound - + Uložit zvuk Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Zvukové soubory (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Všechny soubory (*.*) Save image - + Uložit obrázek Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + Soubory obrázků (*.bmp *.jpg *.png *.tif);;Všechny soubory (*.*) Save &image... - + Ulož&it obrázek... Save s&ound... - + Ul&ožit zvuk... TTS Voice - + Zvuk TTS WARNING: FFmpeg Audio Player: %1 - + VAROVÁNÍ: FFmpeg Audio Player: %1 Copy as text - + Kopírovat jako text Inspect - + Projít + + + Video + Video + + + Video: %1 + Video: %1 BelarusianTranslit Belarusian transliteration from latin to cyrillic (classic orthography) - + Běloruský přepis z latinky do cyrilice (klasická ortografie) Belarusian transliteration from latin to cyrillic (school orthography) - + Běloruský přepis z latinky do cyrilice (školní ortografie) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + Běloruský přepis (vyrovnává rodíly mezi klasickou +a školní ortografií v cyrilici) @@ -387,67 +396,68 @@ Dictionaries: - + Slovníky: Combine groups by source language to "%1->" - + Sloučit skupiny podle zdrojového jazyka do "%1->" Combine groups by target language to "->%1" - + Sloučit skupiny podle cílového jazyka do "->%1" Make two-side translate group "%1-%2-%1" - + Vytvořit dvoustrannou skupinu překladů "%1-%2-%1" Combine groups with "%1" - + Sloučit skupiny s "%1" Unassigned - + Nepřidělený DictInfo Total articles: - Celkem článků: + Celkem článků: Translates from: - Překládá z: + Překládá z: Total words: - Celkem slov: + Celkem slov: Translates to: - Překládá do: + Překládá do: Files comprising this dictionary: - Soubory obsažené v tomto slovníku: + Soubory obsažené v tomto slovníku: Description: - + Popis: Open folder - + Otevřít složku Edit dictionary - + Upravit slovník Edit the dictionary via command: %1 - + Upravit slovník příkazem: +%1 @@ -469,23 +479,23 @@ Dictionary info - + Informace o slovníku Edit dictionary - + Upravit slovník &Dictionary Bar - + Pru&h slovníků Open dictionary folder - + Otevřít složku slovníků Extended menu with all dictionaries... - + Rozšířit nabídku se všemi slovníky... @@ -527,7 +537,7 @@ ExternalViewer the viewer program name is empty - + název prohlížecího programu je prázdný @@ -712,23 +722,23 @@ HistoryPaneWidget &Delete Selected - + Smazat vy&brané Copy Selected - + Kopírovat vybrané History: - + Historie: %1/%2 - + %1/%2 History size: %1 entries out of maximum %2 - + Velikost historie: %1 položek z maximálně %2 @@ -2256,67 +2266,67 @@ Traditional Chinese - + Tradiční čínština Simplified Chinese - + Zjednodušená čínština Other - + Jiné Other Simplified Chinese dialects - + Jiné zjednodušené čínské dialekty Other Traditional Chinese dialects - + Jiné tradiční čínské dialekty Other Eastern-European languages - + Jiné východoevropské jazyky Other Western-European languages - + Jiné západoevropské jazyky Other Russian languages - + Jiné ruské jazyky Other Japanese languages - + Jiné japonské jazyky Other Baltic languages - + Jiné pobaltské jazyky Other Greek languages - + Jiné řecké jazyky Other Korean dialects - + Jiné korejské dialekty Other Turkish dialects - + Jiné turecké dialekty Other Thai dialects - + Jiné thajské dialekty Tamazight - + Tamazight Lojban - + Lojban @@ -2330,7 +2340,7 @@ Main Error in configuration file. Continue with default settings? - + Chyba v konfiguračním souboru. Pokračovat s výchozím nastavením? @@ -2509,7 +2519,7 @@ F3 - F3 + F3 F4 @@ -2645,186 +2655,186 @@ New Tab - + Nová karta Ctrl+T - + Ctrl+T &Configuration Folder - + Složka s nas&tavením &Menubar - + Pruh &nabídky Found in Dictionaries: - + Nalezeno ve slovnících: Open Tabs List - + Otevřít v seznamu karet %1 - %2 - + %1 - %2 You have chosen to hide a menubar. Use %1 to show it back. - + Rozhodli jste se skrýt pruh nabídky. Použijte %1 pro jeho zpětné zobrazení. Ctrl+M - + Ctrl+M &Show - + Zo&brazit &Export - + &Exportovat &Hide - + S&krýt Export history to file - + Exportovat historii do souboru Text files (*.txt);;All files (*.*) - + Textové soubory (*.txt);;Všechny soubory (*.*) History export complete - + Export historie byl dokončen Export error: - + Chyba exportu: Ctrl+H - + Ctrl+H &Import - + &Importovat Import history from file - + Importovat historii ze souboru Import error: invalid data in file - + Chyba importu: neplatná data v souboru History import complete - + Import historie byl dokončen Import error: - + Chyba importu: Dictionary info - + Informace o slovníku Edit dictionary - + Upravit slovník &Search Pane - + Vyhledávací pan&el &Results Navigation Pane - + Panel p&ro procházení výsledků Print Pre&view - + &Vytisknout náhled &Rescan Files - + Znovu p&rojít soubory &New Tab - + &Nová karta &Always on Top - + Vždy n&ahoře Always on Top - + Vždy nahoře Ctrl+O - + Ctrl+O Menu Button - + Tlačítko nabídky Show Names in Dictionary &Bar - + Zo&brazit názvy v pruhu slovníků Show Small Icons in &Toolbars - + Zobrazi&t malé ikony v nástrojových lištách &Navigation - + Procháze&ní The main window is set to be always on top. - + Hlavní okno je nastaveno vždy nahoře. &History Pane - + &Panel historie Accessibility API is not enabled - + API pro zpřístupnění není povoleno Article, Complete (*.html) - + Článek, Kompletní (*.html) Article, HTML Only (*.html) - + Článek, Pouze HTML (*.html) Saving article... - + Ukládá se článek... Open dictionary folder - + Otevřít složku slovníků Mdx::MdxArticleRequest Dictionary file was tampered or corrupted - + Soubor slovníku byl změněn nebo poškozen Failed loading article from %1, reason: %2 - + Selhalo načtení článku z %1, důvod: %2 @@ -2857,7 +2867,7 @@ Icon - + Ikona @@ -2913,15 +2923,15 @@ Description: - + Popis: Sort by name - + Seřadit podle názvu Sort by languages - + Seřadit podle jazyků @@ -3367,364 +3377,375 @@ Select this option if you don't want to see the main tab bar when only a single tab is opened. - + Vyberte tuto volbu pokud chcete aby se zobrazoval pruh s kartami ikdyž je otevřena jenom jedna karta. Hide single tab - + Skrýt jednu kartu Normally, pressing ESC key moves focus to the translation line. With this on however, it will hide the main window. - + Stisk ESC obvykle přepne na hlavní řádek překladu. +S touto volbou ale sryje hlavní okno. ESC key hides main window - + Klávesa ESC skryje hlavní okno Send translated word to main window instead of to show it in popup window - + Poslat přeložené slovo do hlavního okna namísto zobrazení ve vyskakovacím okně Send translated word to main window - + Poslat přeložené slovo do hlavního okna Enabling this would allow to listen to sound pronunciations from online dictionaries that rely on Flash or other web plugins. Plugin must be installed for this option to work. - + Pokud toto povolíte, umožníte poslech výslovností ze slovníků +online, jenž závisí na Flashi a jiných webových modulech. +Aby tato volba fungovala,.modul musí být nainstalován. Enable web plugins - + Powolit webové moduly Ad&vanced - + Pok&ročilé ScanPopup extra technologies - + Extra technologie vyskakovacího okna Try to use IAccessibleEx technology to retrieve word under cursor. This technology works only with some programs that support it (for example Internet Explorer 9). It is not needed to select this option if you don't use such programs. - + Pokusit se použít technologiiI AccessibleEx pro získání slova pod kurzorem. +Tato technologie pracuje pouze s některými programy které ji podporují + (např. Internet Explorer 9). +Pokud takové programy nepoužíváte, nemusíte tuto volbu zapínat. Use &IAccessibleEx - + Použít &IAccessibleEx Try to use UI Automation technology to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Pokusit se použít technologiiI UI Automation pro získání slova pod kurzorem. +Tato technologie pracuje pouze s některými programy které ji podporují. +Pokud takové programy nepoužíváte, nemusíte tuto volbu zapínat. Use &UIAutomation - + Použít &UIAutomation Try to use special GoldenDict message to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Pokusit se použít speciální zprávu GoldenDict pro získání slova pod kurzorem. +Tato technologie pracuje pouze s některými programy které ji podporují. +Pokud takové programy nepoužíváte, nemusíte tuto volbu zapínat. Use &GoldenDict message - + Použít zprávu &GoldenDict Ctrl-Tab navigates tabs in MRU order - + Ctrl-Tab přepíná na naposled použité karty Babylon - + Babylon History - + Historie Turn this option on to store history of the translated words - + Zapněte tuto volbu pro ukládání historie překládaných slov Store &history - + Ukládat &historii Articles - + Články Turn this option on to always expand optional parts of articles - + Zapněte tuto volbu aby byly vždy rozbalovány volitelné části článků Expand optional &parts - + &Rozbalovat volitelné části Turn this option on if you want to select words by single mouse click - + Zapněte tuto volbu pokud chcete vybírat slova jedním kliknutím myši Select word by single click - + Vybírat slovo jedním kliknutím Add-on style: - + Styl doplňku: Specify the maximum number of entries to keep in history. - + Určete maximální počet záznamů, jenž se má uchovávat v historii. Maximum history size: - + Maximální velikost historie: History saving interval. If set to 0 history will be saved only during exit. - + Interval ukládání historie. Pokud nastaven na 0, historie bude uložena při ukončení. Save every - + Uložit každých minutes - + minut Modern - + Moderní Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blue Play audio files via FFmpeg(libav) and libao - + Přehrávat audio soubory přes FFmpeg(libav) a libao Use internal player - + Použít vlastní přehrávač Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Některé stránky detekují GoldenDict přes hlavičky HTTP a blokují jeho požadavky. +Povolením této volby problém obejdete. Do not identify GoldenDict in HTTP headers - + Neidentifikovat GoldenDict v lavičkách HTTP Select this option to automatic collapse big articles - + Vyberte tuto volbu pro automatické sbalení článků Collapse articles more than - + Sbalit čláky delší než symbols - + symboly Adjust this value to avoid huge context menus. - + Upravte tuto hodnotu abyste se vyhnuli velkým kontextovm nabídkám. Context menu dictionaries limit: - + Limit slovníků kontextové nabídky: Articles longer than this size will be collapsed - + Články delší než tato velikost budou sbaleny ProgramTypeEditor Audio - + Audio Plain Text - + Čistý text Html - + Html Prefix Match - + Unknown - + Neznámý Programs::RunInstance No program name was given. - + Nebyl poskytnut název programu. The program has crashed. - + Program spadnul. The program has returned exit code %1. - + Program vrátil návratový kód %1. ProgramsModel Enabled - Povoleno + Povoleno Type - + Typ Name - Jméno + Název Command Line - + Příkazový řádek Icon - + Ikona QObject Article loading error - + Chyba při načítání článku Article decoding error - + Chyba při rekódování článku avformat_alloc_context() failed. - + Selhal avformat_alloc_context(). av_malloc() failed. - + Selhal av_malloc(). avio_alloc_context() failed. - + Selhal avio_alloc_context(). avformat_open_input() failed: %1. - + Selhal avformat_open_input(): %1. avformat_find_stream_info() failed: %1. - + Selhal avformat_find_stream_info(): %1. Could not find audio stream. - + Nelze najít najít proud audio. Codec [id: %1] not found. - + Kodekc [id: %1] nenalezen. avcodec_open2() failed: %1. - + Selhal avcodec_open2(): %1. Cannot find usable audio output device. - + Nelze najít použitelné výstupní audio zařízení. Unsupported sample format. - + Nepodporovaný formát vzorku. ao_open_live() failed: - + Selhal ao_open_live(): No driver. - + Není ovladač. This driver is not a live output device. - + Tento ovladač není aktivní výstupní zařízení. A valid option key has an invalid value. - + Platná volba má neplatnou hodnotu. Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Nelze otevřít zařízení: %1, kanálů: %2, frekvence: %3, bitů: %4. Unknown error. - + Neznámá chyba. avcodec_alloc_frame() failed. - + Selhal avcodec_alloc_frame(). QuickFilterLine Dictionary search/filter (Ctrl+F) - + Hledání-filtrování slovníků (Ctrl+F) Quick Search - + Rychlé hledání Clear Search - + Vymazat hledání ResourceToSaveHandler ERROR: %1 - + CHYBA: %1 Resource saving error: - + Chyba při upkládání zdroje: The referenced resource failed to download. - Odkázaný zdroj se nepovedlo stáhnout. + Odkázaný zdroj se nepovedlo stáhnout. @@ -3803,19 +3824,19 @@ Send word to main window (Alt+W) - + Poslat slovo do hlavního okna (Alt+W) Alt+W - + Alt+W Back - Zpět + Zpět Forward - Vpřed + Vpřed GoldenDict @@ -3823,7 +3844,7 @@ %1 - %2 - + %1 - %2 @@ -3838,7 +3859,7 @@ Icon - + Ikona @@ -4091,132 +4112,133 @@ Programs - + Programy Remove program <b>%1</b> from the list? - + Odstranit program <b>%1</b> ze seznamu? Belarusian transliteration - + Běloruský přepis Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Získejte <a href="http://api.forvo.com/key/">vlastní klíč</a>, nebo ponechte prázdné a použijte výchozí. Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + Případně použijte %GD1251% pro CP1251, %GDISO1%...%GDISO16% pro ISO 8859-1...ISO 8859-16, nebo +%GDBIG5% pro Big-5, %GDBIG5HKSCS% pro Big5-HKSCS, %GDGBK% pro GBK a GB18030, %GDSHIFTJIS% pro Shift-JIS. Text to Speech - + Zvuková syntéza Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Všechny externí programy. Řetězec %GDWORD% bude nahrazen hledaným slovem. Pokud takový řetězec nebude předán, slovo bude posláno na standardní vstup. StylesComboBox None - Žádná + Žádná TextToSpeechSource Selected voice engines: - + Zvolené syntetizátory hlasu: &Add - + Přid&at &Remove - Odeb&rat + Odeb&rat Preview - + Náhled Available voice engines: - + Nedostupné syntetizátory hlasu: Text to be previewed: - + Text pro náhled: Type text to be previewed here. - + Zde napište text, jenž poslouží jako náhled. &Preview - + Náhle&d No TTS voice available - + Není dostupný hlas TTS Confirm removal - Potvrdit odebrání + Potvrdit odebrání Remove voice engine <b>%1</b> from the list? - + Odstranit syntetizátor vlasu <b>%1</b> ze seznamu? Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Nelze najít dostupný hlas TTS.<br>Prosím, ujistěte se, že aspoň jeden hlas TTS je již na vašem počítači nainstalován. Preferences - Předvolby + Předvolby Volume: - + Hlasitost: Rate: - + Vzorkovací frekvence: TranslateBox Type a word or phrase to search dictionaries - + Napište slovo nebo frázi pro hledání ve slovnících Drop-down - + Rozbalovací VoiceEnginesModel Enabled - Povoleno + Povoleno Name - Jméno + Název Id - + Id Icon - + Ikona @@ -4235,7 +4257,7 @@ Icon - + Ikona @@ -4249,7 +4271,7 @@ WordList WARNING: %1 - VAROVÁNÍ: %1 + VAROVÁNÍ: %1 diff -Nru goldendict-1.0.2~git20130620/locale/de_DE.ts goldendict-1.5.0~ppa131019/locale/de_DE.ts --- goldendict-1.0.2~git20130620/locale/de_DE.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/de_DE.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Über - + GoldenDict dictionary lookup program, version GoldenDict, ein Programm zum Nachschlagen in Wörterbüchern, Version - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Danksagungen: - + Licensed under GNU GPLv3 or later Lizensiert unter der GNU GPLv3 oder neuer @@ -34,9 +34,9 @@ [Unbekannt] - + Based on Qt %1 (%2, %3 bit) - + Basiert auf Qt %1 (%2, %3 bit) @@ -44,101 +44,101 @@ Expand article - + Artikel aufklappen Collapse article - + Artikel einklappen - + No translation for <b>%1</b> was found in group <b>%2</b>. In <b>%2</b> wurde kein Eintrag für <b>%1</b> gefunden. - + No translation was found in group <b>%1</b>. Kein Eintrag in Gruppe <b>%1</b> gefunden. - + Welcome! Willkommen! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - <h3 align="center">Willkommen bei <b>GoldenDict</b>!</h3><p>Damit Sie mit dem Programm beginnen können, besuchen Sie zunächst <b>Bearbeiten » Wörterbücher</b>, um Pfade zu gespeicherten Wörterbüchern hinzuzufügen, Wikipedia oder andere Seiten einzurichten, oder um die Wörterbücher zu ordnen bzw. um Sie in Gruppen zu unterteilen.</p> + <h3 align="center">Willkommen bei <b>GoldenDict</b>!</h3><p>Damit Sie mit dem Programm beginnen können, besuchen Sie zunächst <b>Bearbeiten » Wörterbücher</b>, um Pfade zu gespeicherten Wörterbüchern hinzuzufügen, Wikipedia oder andere Seiten einzurichten, oder um die Wörterbücher zu ordnen bzw. um Sie in Gruppen zu unterteilen.</p> <p>Dann sind Sie bereit, um das erste Wort nachzuschlagen! Dies können Sie im Fenster auf der linken Seite, oder <a href="Mit Popups arbeiten">mittels der Popup-Funktion in anderen Applikationen.</a></p> <p>Um das Programm anzupassen, öffnen Sie <b>Bearbeiten » Einstellungen</b>. Alle Einstellungen haben Tooltips, die Ihnen helfen, die letzten Zweifel zu nehmen.</p> <p>Sollten Sie trotzdem noch Hilfe brauchen, oder wenn Sie sonstige Fragen und Verbesserungsvorschlage haben, oder wenn Sie nur wissen wollen, was andere denken, dann finden Sie uns im <a href="hhttp://goldendict.org/forum/">Forum</a>. <p>Programmupdates sind auf der <a href="http://goldendict.org/">Website</a> zu finden.<p>(c) 2008-2013 Konstantin Isakov. Lizensiert unter der GPLv3 oder neuer. - + Working with popup Mit Popups arbeiten - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Mit Popups arbeiten</h3>Um Wörter von anderen aktiven Applikationen nachzuschlagen, muss zunächst die <i>"Scan Popup Funktionalität"</i> in den <b>Einstellungen</b> aktiviert, und dann freigeschalten werden. Dies kann zu jeder Zeit über das 'Popup'-Symbol in der Werkzeugleiste, oder mittels Kontextmenü des Icons in der Symbolleiste geschehen. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Dann einfach mit der Mauszeiger über das Wort in der Applikation fahren, welches nachgeschlagen werden soll, und ein Fenster wird sichtbar wo es erklärt wird. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Dann einfach ein Wort mit der Maus (Doppelklicken oder bei gedrückten Tasten darüberfahren) markieren, welches nachgeschlagen werden soll. Dann öffnet sich ein Popup, welches das Wort beschreibt. - + (untitled) (unbenannt) - + (picture) - + (Bild) ArticleRequest - + Expand article - + Artikel aufklappen - + From Von - + Collapse article - + Artikel einklappen - + Query error: %1 Abfragefehler: %1 - + Close words: Ähnliche Wörter: - + Compound expressions: Zusammengesetzte Treffer: - + Individual words: Einzelne Wörter: @@ -146,140 +146,150 @@ ArticleView - + Select Current Article - + Aktuellen Artikel auswählen - + Copy as text - + Als Text kopieren - + Inspect - + Betrachten - + Resource - + Ressource - + Audio - + Audio - + TTS Voice - + TTS Stimme - + Picture - + Bild - + Definition from dictionary "%1": %2 - + Definition vom Wörterbuch "%1": %2 - + Definition: %1 - + Definition: %1 GoldenDict GoldenDict - - + + The referenced resource doesn't exist. Die angegebene Ressource existiert nicht. - + The referenced audio program doesn't exist. - + Die angegebene Audioprogramm existiert nicht. - + ERROR: %1 - + FEHLER: %1 - + Save sound - + Klang speichern - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Audiodateien (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Alle Dateien (*.*) - + Save image - + Bild speichern - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + Bilder (*.bmp *.jpg *.png *.tif);;Alle Dateien (*.*) - + &Open Link &Link öffnen - + + Video + Video + + + + Video: %1 + Video: %1 + + + Open Link in New &Tab Link in neuem Rei&ter öffnen - + Open Link in &External Browser Link in &externen Browser öffnen - + &Look up "%1" &Schlage "%1" nach - + Look up "%1" in &New Tab Schlage "%1" in &neuem Reiter nach - + Send "%1" to input line - + Sende "%1" an die Eingabezeile - - + + &Add "%1" to history - + Füge "%1" zum Verlauf &hinzu - + Look up "%1" in %2 Schlage "%1" in %2 nach - + Look up "%1" in %2 in &New Tab Schlage "%1" in %2 in &neuem Reiter nach - + WARNING: FFmpeg Audio Player: %1 - + WARNUNG: FFmpeg Audio Player: %1 Playing a non-WAV file @@ -290,39 +300,39 @@ Um das Abspielen von Dateien anders als WAV zu akivieren, müssen Sie in Bearbeiten » Einstellungen, im Reiter Audio die Option "Mit DirectShow abspielen" auswählen. - + Failed to run a player to play sound file: %1 - Konnte folgende Audio-Datei nicht mit dem Player abspielen: %1 + Konnte folgende Audiodatei nicht mit dem Player abspielen: %1 - + Failed to create temporary file. Konnte keine temporäre Datei anlegen. - + Failed to auto-open resource file, try opening manually: %1. Konnte die Ressource nicht automatisch öffnen; versuchen Sie es manuell: %1. - + The referenced resource failed to download. Die angegebene Ressource konnte nicht heruntergeladen werden. - + Save &image... - + Bild &speichern... - + Save s&ound... - + &Klang speichern... - + WARNING: %1 - WARNUNG: %1 + WARNUNG: %1 @@ -367,7 +377,7 @@ Highlight &all - + &Alles hervorheben @@ -375,18 +385,18 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + Weißrussische Transliteration von latein nach kyrillisch (klassische Rechtschreibung) Belarusian transliteration from latin to cyrillic (school orthography) - + Weißrussische Transliteration von latein nach kyrillisch (Schulrechtschreibung) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + Weißrussische Transliteration (glättet die Unterschiede zwischen klassicher und Schulrechtschreibung im kyrillischen) @@ -450,7 +460,7 @@ Dictionaries: - + Wörterbücher: @@ -465,28 +475,28 @@ Unassigned - + Nicht zugeordnet Combine groups by source language to "%1->" - + Kombiniere Gruppen nach Quellsprache nach "%1->" Combine groups by target language to "->%1" - + Kombiniere Gruppen nach Zielsprache nach "%1->" Make two-side translate group "%1-%2-%1" - + Doppelseitige Übersetzungsgruppen erstellen: "%1-%2-%1" Combine groups with "%1" - + Gruppen kombinieren mit "%1" @@ -494,48 +504,49 @@ Total articles: - Artikel insgesamt: + Artikel gesamt: Translates from: - Übersetzt von: + Übersetzt von: Total words: - Wörter insgesamt: + Wörter gesamt: Translates to: - Übersetzt nach: + Übersetzt nach: Open folder - + Ordner öffnen Edit dictionary - + Wörterbuch bearbeiten Files comprising this dictionary: - Wörterbuch zusammengesetzt aus diesen Dateien: + Wörterbuch zusammengesetzt aus diesen Dateien: Description: - + Beschreibung: Edit the dictionary via command: %1 - + Das Wörterbuch mit folgendem Kommando bearbeiten: +%1 @@ -555,12 +566,12 @@ &Dictionary Bar - + &Wörterbuchleiste Extended menu with all dictionaries... - + Erweitertes Menü mit allen Wörterbüchern... @@ -570,17 +581,17 @@ Dictionary info - + Wörterbuchinfo Open dictionary folder - + Wörterbuch-Ordner öffnen Edit dictionary - + Wörterbuch bearbeiten @@ -633,43 +644,43 @@ the viewer program name is empty - + Der Name des Betrachtungsprogrammes is leer Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Fehler beim XML parsen: %1 bei %2,%3 - + Added %1 Hinzugefügt %1 - + by von - + Male Mann - + Female Frau - + from aus - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Damit dieser Fehler verschwindet sollten Sie Bearbeiten » Wörterbücher » Forvo auswählen und ihren eigenen API-Schlüssel eintragen. @@ -847,7 +858,7 @@ Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. - Benutzen Sie Drag & Drop um Wörterbücher zwischen Gruppen oder innerhalb von Gruppen zu verschieben, oder um die Reihenfolge der Gruppen zu verändern. + Benutzen Sie &Drag & Drop um Wörterbücher zwischen oder innerhalb von Gruppen zu verschieben, oder um die Reihenfolge zu verändern. @@ -855,27 +866,27 @@ &Delete Selected - + Ausgewählte &löschen Copy Selected - + Ausgewählte kopieren History: - + Verlauf: - + %1/%2 - + %1/%2 - + History size: %1 entries out of maximum %2 - + Verlaufsgröße: %1 von maximal %2 Einträgen @@ -886,7 +897,7 @@ Rechtschreibvorschläge: - + %1 Morphology %1 Morphologie @@ -1858,82 +1869,82 @@ Lojban - + Lojban Traditional Chinese - + Chinesisch traditionell Simplified Chinese - + Chinesisch vereinfacht Other - + Andere Other Simplified Chinese dialects - + Andere vereinfacht Chinesische Dialekte Other Traditional Chinese dialects - + Andere traditionell Chinesische Dialekte Other Eastern-European languages - + Andere osteuropäische Sprachen Other Western-European languages - + Andere westeuropäische Sprachen Other Russian languages - + Andere russische Sprachen Other Japanese languages - + Andere japanische Sprachen Other Baltic languages - + Andere baltische Sprachen Other Greek languages - + Andere griechische Sprachen Other Korean dialects - + Andere koreanische Sprachen Other Turkish dialects - + Andere türkische Sprachen Other Thai dialects - + Andere thai Sprachen Tamazight - + Tamazight @@ -1947,9 +1958,9 @@ Main - + Error in configuration file. Continue with default settings? - + Fehler in der Konfigurationsdatei. Mit Standardeinstellungen fortfahren? @@ -1961,18 +1972,18 @@ &Menubar - + &Menüleiste - + Look up in: Suche in: Found in Dictionaries: - + In Wörterbüchern gefunden: Navigation @@ -2049,91 +2060,91 @@ Alle anderen Reiter schließen - - + + Accessibility API is not enabled - + Barrierefreiheit-API ist nicht aktiviert - + Article, Complete (*.html) - + Artikel, komplett (*.html) - + Article, HTML Only (*.html) - + Artikel, nur HTML (*.html) - + Saving article... - + Artikel wird gespeichert... - + The main window is set to be always on top. - + Das Hauptfenster ist eingestellt als immer im Vordergrund. - + &Hide - + &Verbergen - + Export history to file - + Verlauf in eine Datei exportieren - - + + Text files (*.txt);;All files (*.*) - + Textdateien(*.txt);;All Dateien(*.*) - + History export complete - + Export des Verlaufes abgeschlossen - + Export error: - + Exportfehler: - + Import history from file - + Verlauf von Datei importieren - + Import error: invalid data in file - + Importfehler: ungültige Daten in Datei - + History import complete - + Import des Verlaufes abgeschlossen - + Import error: - + Importfehler: - + Dictionary info - + Wörterbuchinfo - + Open dictionary folder - + Wörterbuch-Ordner öffnen - + Edit dictionary - + Wörterbuch bearbeiten @@ -2148,22 +2159,22 @@ - + Welcome! Willkommen! - + %1 dictionaries, %2 articles, %3 words %1 Wörterbücher, %2 Artikel, %3 Wörter - + Look up: Nachschlagen: - + All Alle @@ -2175,32 +2186,32 @@ Show Names in Dictionary &Bar - + Namen in &Wörterbuchleiste anzeigen Show Small Icons in &Toolbars - + Kleine Icons in der &Toolbar anzeigen &Navigation - + &Navigation - + Open Tabs List - + Liste der Reiter öffnen - + (untitled) (unbenannt) - + %1 - %2 - + %1 - %2 WARNING: %1 @@ -2211,57 +2222,57 @@ GoldenDict - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Der Mechanismus für die Tastenkürzel konnte nicht initialisiert werden.<br>Vergewissern Sie sich, dass der XServer die RECORD Erweiterung aktiviert hat. - + New Release Available Neue Version verfügbar - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Version <b>%1</b> von GoldenDict ist nun zum Herunterladen verfügbar.<br>Klicken Sie auf <b>Herunterladen</b>, um zur Seite fürs Herunterladen zu gelangen. - + Download Herunterladen - + Skip This Release Diese Version überspringen - + You have chosen to hide a menubar. Use %1 to show it back. - + Es wurde eingestellt die Menüleiste zu verstecken. Mit %1 kann sie wieder angezeigt werden. - + Ctrl+M - + Strg+M - + Page Setup Seite einrichten - + No printer is available. Please install one first. Es ist kein Drucker vorhanden. Bitte zuerst einen installieren. - + Print Article Drucke Artikel - + Save Article As Artikel speichern als @@ -2270,12 +2281,12 @@ Html Dateien (*.html *.htm) - + Error Fehler - + Can't save article: %1 Kann Artikel nicht speichern: %1 @@ -2321,7 +2332,7 @@ F3 - F3 + F3 &Groups... @@ -2330,17 +2341,17 @@ &Search Pane - + &Suchformular &Results Navigation Pane - + &Ergebnisliste &History Pane - + &Verlaufsformular @@ -2435,39 +2446,39 @@ Print Pre&view - + Druck&vorschau &Rescan Files - + Dateien neu ein&lesen &New Tab - + Neuer Rei&ter &Always on Top - + &Immer im Vordergrund Always on Top - + Immer im Vordergrund Ctrl+O - + Strg+O Menu Button - + Menüschaltfläche Print Preview @@ -2490,57 +2501,57 @@ New Tab - + Neuer Reiter Ctrl+T - + Strg+T &Configuration Folder - + &Konfigurationsordner - + &Show - + &Anzeigen Ctrl+H - + Strg+H &Export - + &Exportieren &Import - + &Importieren Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Die Wörterbuchdatei war manipuliert oder korrupt - + Failed loading article from %1, reason: %2 - + Konnte den Artikel von %1 nicht laden, Grund: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Fehler beim XML-parsen: %1 bei %2,%3 @@ -2548,7 +2559,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Fehler beim XML-parsen: %1 bei %2,%3 @@ -2573,7 +2584,7 @@ Icon - + Icon @@ -2634,7 +2645,7 @@ Description: - + Beschreibung: @@ -2649,12 +2660,12 @@ Sort by name - + Sortieren nach Name Sort by languages - + Sortieren nach Sprachen @@ -2685,7 +2696,7 @@ Modern - + Modern @@ -2695,29 +2706,29 @@ Babylon - + Babylon Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blau Play via DirectShow Mit DirectShow abspielen - + Changing Language Sprache ändern - + Restart the program to apply the language change. Starten Sie das Programm neu, um den Sprachwechsel abzuschließen. @@ -2846,17 +2857,17 @@ Select this option if you don't want to see the main tab bar when only a single tab is opened. - + Wählen Sie diese Option, falls sie die Reiterleiste bei einem offenem Reiter nicht sehen möchten. Hide single tab - + Einzelnen Tab ausblenden Ctrl-Tab navigates tabs in MRU order - + Strg+Tab wechselt zwischen den zuletzt verwendeten Reitern @@ -2867,37 +2878,38 @@ Normally, pressing ESC key moves focus to the translation line. With this on however, it will hide the main window. - + Beim Betätigen der ESC-Taste wird normalerweise der Fokus an die Übersetzungszeile +übertragen. Mit dieser Option wird jedoch das Hauptfenster verborgen. ESC key hides main window - + ESC-Taste verbirgt das Hauptfenster Turn this option on if you want to select words by single mouse click - + Aktivieren Sie diese Option, falls Sie Wörter mit einem einfachem Mausklick auswählen möchten Select word by single click - + Wort mit einfachem Klick auswählen Add-on style: - + Add-on style: Adjust this value to avoid huge context menus. - + Mit der Anpassung dieses Wertes können rießige Kontextmenüs vermieden werden. Context menu dictionaries limit: - + Wörterbuchlimit im Kontextmenü: @@ -3036,12 +3048,12 @@ Send translated word to main window instead of to show it in popup window - + Übersetzte Wörter ans Hauptfenster senden, anstatt sie im Popup-Fenster anzuzeigen Send translated word to main window - + Übersetzte Wörter ans Hauptfenster senden @@ -3051,22 +3063,22 @@ Select this option to automatic collapse big articles - + Wählen Sie diese Option, falls Sie automatisch große Artikel einklappen möchten Collapse articles more than - + Artikel einklappen mit mehr als Articles longer than this size will be collapsed - + Artikel länger als diese Größe werden eingeklappt symbols - + Symbolen Use Windows native playback API. Limited to .wav files only, @@ -3101,12 +3113,12 @@ Ad&vanced - + &Erweitert ScanPopup extra technologies - + ScanPopup-Extra-Technologie @@ -3114,91 +3126,98 @@ This technology works only with some programs that support it (for example Internet Explorer 9). It is not needed to select this option if you don't use such programs. - + Es wird versucht die IAccessibleEx-Technologie zu benutzen, um das Wort unter dem Mauszeiger zu erkennen. +Dies funktioniert nur mit jenen Programmen, welche es unterstützen (zum Beispiel +Internet Explorer 9). +Sollte solche Programme nicht verwendet werden, wird diese Option nicht gebraucht. Use &IAccessibleEx - + &IAccessibleEx verwenden Try to use UI Automation technology to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Es wird versucht die UI-Automation-Technologie zu benutzen, um das Wort unter dem Mauszeiger zu erkennen. +Dies funktioniert nur mit jenen Programmen, welche es unterstützen. +Sollte solche Programme nicht verwendet werden, wird diese Option nicht gebraucht. Use &UIAutomation - + &UIAutomation verwenden Try to use special GoldenDict message to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Es wird versucht GoldenDict-Mitteilung zu benutzen, um das Wort unter dem Mauszeiger zu erkennen. +Dies funktioniert nur mit jenen Programmen, welche es unterstützen. +Sollte solche Programme nicht verwendet werden, wird diese Option nicht gebraucht. Use &GoldenDict message - + &GoldenDict Mitteilung verwenden History - + Verlauf Turn this option on to store history of the translated words - + Aktivieren Sie diese Option, um den Verlauf der übersetzten Wörter zu speichern. Store &history - + &Verlauf speichern Specify the maximum number of entries to keep in history. - + Geben Sie die maximale Anzahl von Einträgen im Verlauf an. Maximum history size: - + Maximale Verlaufgröße: History saving interval. If set to 0 history will be saved only during exit. - + Intervall zum speichern des Verlaufs. Falls 0, wird der Verlauf beim Programmende gespeichert. Save every - + Speichern alle minutes - + Minuten Articles - + Artikel Turn this option on to always expand optional parts of articles - + Aktivieren Sie diese Option, um optionale Abschnitte von Artikeln immer zu erweitern. Expand optional &parts - + Optionale &Abschnitte erweitern @@ -3275,12 +3294,12 @@ Play audio files via FFmpeg(libav) and libao - + Audiodateien mit FFmpeg(libav) und libao abspielen Use internal player - + Internen Abspieler verwenden @@ -3342,23 +3361,26 @@ Enabling this would allow to listen to sound pronunciations from online dictionaries that rely on Flash or other web plugins. Plugin must be installed for this option to work. - + Das Aktivieren erlaubt Audioaussprachen von Onlinewörterbüchern anzuhören, +welche auf Flash oder Webplugins basieren. +Ein Plugin muss für diese Option installiert sein. Enable web plugins - + Webplugins aktivieren Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Einige Seiten erkennen GoldenDict mittels HTTP-Kopfzeilen und blockieren die Anfrage. +Diese Option kann dieses Problem beheben. Do not identify GoldenDict in HTTP headers - + GoldenDict nicht in HTTP-Kopfzeilen identifizieren @@ -3383,27 +3405,27 @@ Audio - + Audio Plain Text - + Klartext Html - + Html Prefix Match - + Präfixtreffer Unknown - + Unbekannt @@ -3411,17 +3433,17 @@ No program name was given. - + Kein Programmname wurde eingegeben. The program has crashed. - + Das Programm ist abgestürzt. The program has returned exit code %1. - + Das Program hat mit %1 beendet. @@ -3429,125 +3451,125 @@ Enabled - Aktiv + Aktiviert Type - + Typ Name - Name + Name Command Line - + Kommandozeile Icon - + Icon QObject - + Article loading error - + Fehler beim Laden des Artikels - + Article decoding error - + Fehler beim Dekodieren des Artikels - + avformat_alloc_context() failed. - + avformat_alloc_context() fehlgeschlagen. - + av_malloc() failed. - + av_malloc() fehlgeschlagen. - + avio_alloc_context() failed. - + avio_alloc_context() fehlgeschlagen. - + avformat_open_input() failed: %1. - + avformat_open_input() fehlgeschlagen: %1. - + avformat_find_stream_info() failed: %1. - + avformat_find_stream_info() fehlgeschlagen: %1. - + Could not find audio stream. - + Konnte den Audiostream nicht finden. - + Codec [id: %1] not found. - + Codec [id: %1] nicht gefunden. - + avcodec_open2() failed: %1. - + avcodec_open2() fehlgeschlagen: %1. - + Cannot find usable audio output device. - + Konnte kein verwendbares Audioausgabegerät finden. - + Unsupported sample format. - + Nicht unterstütztes Abtastformat. - + ao_open_live() failed: - + ao_open_live() fehlgeschlagen: - + No driver. - + Kein Treiber. - + This driver is not a live output device. - + Dieser Treiber ist kein aktives Ausgabegerät. - + A valid option key has an invalid value. - + Ein gültiger Optionsschlüssel hat einen ungültigen Wert. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Konnte folgendes Gerät nicht öffnen: %1, Kanale: %2, Rate: %3, Bits: %4. - + Unknown error. - + Fehler unbekannt. - + avcodec_alloc_frame() failed. - + avcodec_alloc_frame() fehlgeschlagen. @@ -3555,36 +3577,36 @@ Dictionary search/filter (Ctrl+F) - + Wörterbuch suchen/filtern (Strg+F) Quick Search - + Schnellsuche Clear Search - + Suche zurücksetzen ResourceToSaveHandler - - + + ERROR: %1 - + FEHLER: %1 - + Resource saving error: - + Fehler beim speichern der Ressource: - + The referenced resource failed to download. - Die angegebene Ressource konnte nicht heruntergeladen werden. + Die Ressource konnte nicht heruntergeladen werden. @@ -3635,12 +3657,12 @@ Back - Zurück + Zurück Forward - Vorwärts + Weiter Alt+M @@ -3659,12 +3681,12 @@ Send word to main window (Alt+W) - + Wort an das Hauptfenster senden (Alt+W) Alt+W - + Alt+W @@ -3686,7 +3708,7 @@ %1 - %2 - + %1 - %2 @@ -3704,7 +3726,7 @@ Icon - + Icon @@ -3712,7 +3734,7 @@ Text to Speech - + Sprachausgabe @@ -3750,7 +3772,7 @@ Remove program <b>%1</b> from the list? - + Soll das Programm <b>%1</b> von der Liste entfernt werden? @@ -3788,7 +3810,7 @@ Sound Dirs - Audio Verzeichnis + Audioverzeichnis @@ -3858,7 +3880,7 @@ Programs - + Programme @@ -3892,7 +3914,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Holen Sie sich <a href="http://api.forvo.com/key/">hier</a> den eigenen Schlüssel, oder lassen Sie das Feld leer um den Standardschlüssel zu verwenden. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -3916,12 +3938,13 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + Alternativ verwenden kann man, %GD1251% für CP1251, %GDISO1%...%GDISO16% für ISO 8859-1...ISO 8859-16 respektive, +%GDBIG5% für Big-5, %GDBIG5HKSCS% für Big5-HKSCS, %GDGBK% für GBK und GB18030, %GDSHIFTJIS% für Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Irgendwelche externe Programme. Der String %GDWORD% wird mit dem Suchwort ersetzt. Falls eine solche Zeichenkette nicht vorhanden ist, wird das Wort an die Standardeingabe geschickt. @@ -3961,7 +3984,7 @@ Belarusian transliteration - + Weißrussische Transliteration @@ -4053,7 +4076,7 @@ None - Keines + Ohne @@ -4061,77 +4084,77 @@ Selected voice engines: - + Ausgewählte Sprachmaschinen: &Add - + &Hinzufügen &Remove - &Entfernen + &Entfernen Preferences - Einstellungen + Einstellungen Volume: - + Lautstärke: Rate: - + Rate: Preview - + Vorschau Available voice engines: - + Verfügbare Sprachmaschinen: Text to be previewed: - + Text zur Vorschau: Type text to be previewed here. - + Text für die Vorschau hier eingeben. &Preview - + &Vorschau No TTS voice available - + Keine TTS-Stimme verfügbar Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Konnte keine verfügbare TTS-Stimme finden.<br>Vergewissern Sie sich, dass bereits mindestens eine TTS-Maschine auf dem Computer installiert ist. Confirm removal - Löschung bestätigen + Löschung bestätigen Remove voice engine <b>%1</b> from the list? - + Soll die Sprachmaschine <b>%1</b> von der Liste entfernt werden? @@ -4139,12 +4162,12 @@ Type a word or phrase to search dictionaries - + Ein Wort oder einen Satz eingeben um Wörterbücher zu durchsuchen Drop-down - + Dropdown @@ -4152,22 +4175,22 @@ Enabled - Aktiv + Aktiv Name - Name + Name Id - + Id Icon - + Icon @@ -4190,7 +4213,7 @@ Icon - + Icon @@ -4206,7 +4229,7 @@ WARNING: %1 - WARNUNG: %1 + WARNUNG: %1 diff -Nru goldendict-1.0.2~git20130620/locale/el_GR.ts goldendict-1.5.0~ppa131019/locale/el_GR.ts --- goldendict-1.0.2~git20130620/locale/el_GR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/el_GR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -16,17 +16,17 @@ Περί - + GoldenDict dictionary lookup program, version GoldenDict, πρόγραμμα αναζήτησης σε λεξικά, έκδοση - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Μνεία: @@ -35,7 +35,7 @@ #.# - + Licensed under GNU GPLv3 or later Διανέμεται υπό τους όρους της GNU GPLv3 ή νεότερης @@ -45,7 +45,7 @@ [Άγνωστο] - + Based on Qt %1 (%2, %3 bit) @@ -63,52 +63,52 @@ - + No translation for <b>%1</b> was found in group <b>%2</b>. Δε βρέθηκε μετάφραση του <b>%1</b> στην ομάδα <b>%2</b>. - + No translation was found in group <b>%1</b>. Δε βρέθηκαν μεταφράσεις στην ομάδα <b>%1</b>. - + Welcome! Καλώς ήλθατε! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Καλώς ήλθατε στο <b>GoldenDict</b>!</h3><p>Για να ξεκινήσετε, επιλέξτε <b>Επεξεργασία|Λεξικά</b>. Από εδώ μπορείτε να προσθέσετε φακέλους που περιέχουν λεξικά, να ενεργοποιήσετε την αναζήτηση στη Βικιπαίδεια ή άλλες πηγές, να αλλάξετε τη σειρά των λεξικών ή να δημιουργήσετε ομάδες λεξικών.<p>Μετά θα είστε έτοιμοι να ξεκινήσετε την αναζήτηση! Μπορείτε να αναζητάτε λέξεις από την αριστερή στήλη αυτού του παραθύρου, ή από <a href="Χρήση αναδυόμενου παραθύρου">οποιαδήποτε άλλη ανοιχτή εφαρμογή</a>.<p>Για να προσαρμόσετε το πρόγραμμα στις απαιτήσεις σας, δείτε τις διαθέσιμες ρυθμίσεις στο μενού <b>Επεξεργασία|Προτιμήσεις</b>. Όλες οι προτιμήσεις διαθέτουν χρήσιμες συμβουλές οθόνης, που μπορείτε να διαβάσετε τοποθετώντας το ποντίκι σας πάνω στην αντίστοιχη προτίμηση.<p>Για περαιτέρω βοήθεια, ερωτήματα, υποδείξεις, ή απλά για να διαβάσετε τις γνώμες άλλων χρηστών, μπορείτε να εγγραφείτε στο <a href="http://goldendict.org/forum/">φόρουμ</a> του προγράμματος. <p>Ενημερώσεις μπορείτε να βρείτε στον <a href="http://goldendict.org/">ιστότοπο</a> του προγράμματος.<p>(c) 2008-2013 Konstantin Isakov. Διανέμεται υπό τους όρους της GNU GPLv3 ή νεότερης έκδοσής της. - + Working with popup Χρήση αναδυόμενου παραθύρου - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Χρήση αναδυόμενου παραθύρου</h3> Για να μπορείτε να αναζητάτε λέξεις που συναντήσατε σε άλλες ενεργές εφαρμογές, πρέπει πρώτα να ενεργοποιήσετε τη <i>"Λειτουργία αναδυόμενου παραθύρου"</i> από τις <b>Προτιμήσεις</b>. Μετά, θα μπορείτε να την ενεργοποιείτε όποτε θέλετε, είτε πατώντας το εικονίδιο "Αναδυόμενο παράθυρο" της εργαλειοθήκης, είτε κάνοντας δεξί κλικ στο εικονίδιο της περιοχής ειδοποιήσεων και επιλέγοντας την από το μενού. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Στη συνέχεια, θα μπορείτε να τοποθετείτε το δρομέα πάνω στις λέξεις που σας ενδιαφέρουν για να εμφανίζετε ένα παράθυρο με την επεξήγησή τους. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Στη συνέχεια, απλά επιλέξτε με το ποντίκι μια λέξη σε άλλη εφαρμογή (π.χ. με δεξί κλικ πάνω στη λέξη), και θα εμφανιστεί ένα παράθυρο με την επεξήγησή της. - + (untitled) (ανώνυμο) - + (picture) (εικόνα) @@ -116,37 +116,37 @@ ArticleRequest - + Expand article - + From Από - + Collapse article - + Query error: %1 Σφάλμα αναζήτησης: %1 - + Close words: Παρόμοια λήμματα: - + Compound expressions: Σύνθετες εκφράσεις: - + Individual words: Μεμονωμένες λέξεις: @@ -154,47 +154,57 @@ ArticleView - + Select Current Article Επιλογή τρέχοντος άρθρου - + Copy as text - + Inspect - + Resource Πόρος - + Audio Ήχος - + TTS Voice - + Picture Εικόνα - + + Video + + + + + Video: %1 + + + + Definition from dictionary "%1": %2 Ορισμός στο λεξικό "%1": %2 - + Definition: %1 Ορισμός: %1 @@ -203,38 +213,38 @@ GoldenDict - - + + The referenced resource doesn't exist. Δεν υπάρχει ο ζητούμενος πόρος. - + The referenced audio program doesn't exist. Δεν υπάρχει το ζητούμενο πρόγραμμα ήχου. - + ERROR: %1 ΣΦΑΛΜΑ: %1 - + Save sound Αποθήκευση ήχου - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Αρχείο ήχου (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Όλα τα αρχεία (*.*) - + Save image Αποθήκευση εικόνας - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Αρχείο εικόνας (*.bmp *.jpg *.png *.tif);;Όλα τα αρχεία (*.*) @@ -243,53 +253,53 @@ Σφάλμα αποθήκευσης: - + &Open Link Άνοι&γμα συνδέσμου - + Open Link in New &Tab Άνοιγμα συνδέσμου σε νέα &καρτέλα - + Open Link in &External Browser Άνοιγμα συνδέσμου σε &εξωτερικό περιηγητή - + &Look up "%1" Ανα&ζήτηση του "%1" - + Look up "%1" in &New Tab Αναζήτηση του "%1" σε &νέα καρτέλα - + Send "%1" to input line Αποστολή του "%1" στη γραμμή εισόδου - - + + &Add "%1" to history &Προσθήκη του "%1" στο ιστορικό - + Look up "%1" in %2 Αναζήτηση του "%1" στο %2 - + Look up "%1" in %2 in &New Tab Αναζήτηση του "%1" στο %2 σε &νέα καρτέλα - + WARNING: FFmpeg Audio Player: %1 @@ -310,37 +320,37 @@ Η βιβλιοθήκη Bass δεν μπορεί να αναπαράγει αυτόν τον ήχο. - + Failed to run a player to play sound file: %1 Δεν ήταν δυνατή η αναπαραγωγή του αρχείου ήχου: %1 - + Failed to create temporary file. Απέτυχε η δημιουργία προσωρινού αρχείου. - + Failed to auto-open resource file, try opening manually: %1. Απέτυχε το αυτόματο άνοιγμα του αρχείου· δοκιμάστε να το ανοίξετε χειροκίνητα: %1. - + The referenced resource failed to download. Απέτυχε η λήψη του ζητούμενου πόρου. - + Save &image... Αποθήκευση &Εικόνας... - + Save s&ound... Αποθήκευση ή&χου... - + WARNING: %1 ΠΡΟΣΟΧΗ: %1 @@ -662,37 +672,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Σφάλμα ανάλυσης XML: %1 στο %2,%3 - + Added %1 Προστέθηκε στις %1 - + by από - + Male Ανδρική φωνή - + Female Γυναικεία φωνή - + from από - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Πηγαίνετε στο Επεξεργασία|Λεξικά|Πηγές|Forvo και εισάγετε το δικό σας κλειδί API για πάψει να εμφανίζεται το σφάλμα. @@ -891,12 +901,12 @@ Ιστορικό: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Μέγεθος ιστορικού: %1 λήμματα από μέγιστο αριθμό %2 @@ -909,7 +919,7 @@ Προτάσεις ορθογραφίας: - + %1 Morphology Μορφολογία για %1 @@ -1970,7 +1980,7 @@ Main - + Error in configuration file. Continue with default settings? @@ -1988,7 +1998,7 @@ - + Look up in: Αναζήτηση σε: @@ -2072,89 +2082,89 @@ Κλείσιμο όλων των άλλων καρτελών - - + + Accessibility API is not enabled - + Article, Complete (*.html) - + Article, HTML Only (*.html) - + Saving article... - + The main window is set to be always on top. Το κύριο παράθυρο βρίσκεται πάντα στο προσκήνιο. - + &Hide &Απόκρυψη - + Export history to file Εξαγωγή ιστορικού σε αρχείο - - + + Text files (*.txt);;All files (*.*) Αρχεία κειμένου (*.txt);;Όλα τα αρχεία (*.*) - + History export complete Ολοκληρώθηκε η εξαγωγή του ιστορικού - + Export error: Σφάλμα εξαγωγής: - + Import history from file Εισαγωγή ιστορικού από αρχείο - + Import error: invalid data in file Σφάλμα εισαγωγής: μη έγκυρα δεδομένα - + History import complete Ολοκληρώθηκε η εισαγωγή του ιστορικού - + Import error: Σφάλμα εισαγωγής: - + Dictionary info Πληροφορίες λεξικού - + Open dictionary folder - + Edit dictionary Επεξεργασία λεξικού @@ -2171,22 +2181,22 @@ - + Welcome! Καλώς ήλθατε! - + %1 dictionaries, %2 articles, %3 words %1 λεξικά, %2 άρθρα, %3 λήμματα - + Look up: Αναζήτηση: - + All Όλα @@ -2211,17 +2221,17 @@ Γραμμή &αναζήτησης - + Open Tabs List Λίστα ανοιχτών καρτελών - + (untitled) (ανώνυμο) - + %1 - %2 %1 - %2 @@ -2234,57 +2244,57 @@ GoldenDict - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Απέτυχε η φόρτωση του μηχανισμού παρακολούθησης πλήκτρων συντομεύσεων.<br>Βεβαιωθείτε ότι η επέκταση RECORD του XServer είναι ενεργοποιημένη. - + New Release Available Νέα έκδοση διαθέσιμη - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Η έκδοση <b>%1</b> του GoldenDict είναι διαθέσιμη.<br>Κάντε κλικ στο <b>Λήψη</b> για να επισκεφτείτε την ιστοσελίδα λήψης. - + Download Λήψη - + Skip This Release Παράβλεψη αυτής της έκδοσης - + You have chosen to hide a menubar. Use %1 to show it back. Επιλέξατε απόκρυψη μιας γραμμής εργαλείων. Πατήστε %1 για να την επαναφέρετε. - + Ctrl+M Ctrl+M - + Page Setup Διάταξη σελίδας - + No printer is available. Please install one first. Δε βρέθηκε εκτυπωτής. Παρακαλώ εγκαταστήστε έναν εκτυπωτή. - + Print Article Εκτύπωση αποτελέσματος - + Save Article As Αποθήκευση αποτελέσματος ως @@ -2293,12 +2303,12 @@ Αρχείο html (*.html *.htm) - + Error Σφάλμα - + Can't save article: %1 Αδύνατη η αποθήκευση του άρθρου: %1 @@ -2527,7 +2537,7 @@ - + &Show Εμ&φάνιση @@ -2550,12 +2560,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Failed loading article from %1, reason: %2 @@ -2563,7 +2573,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Σφάλμα ανάλυσης XML: %1 στο %2,%3 @@ -2571,7 +2581,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Σφάλμα ανάλυσης XML: %1 στο %2,%3 @@ -2743,12 +2753,12 @@ Αναπαραγωγή μέσω DirectShow - + Changing Language Αλλαγή γλώσσας - + Restart the program to apply the language change. Απαιτείται επανεκκίνηση του προγράμματος για να εφαρμοστεί η αλλαγή γλώσσας. @@ -3541,97 +3551,97 @@ QObject - + Article loading error - + Article decoding error - + avformat_alloc_context() failed. - + av_malloc() failed. - + avio_alloc_context() failed. - + avformat_open_input() failed: %1. - + avformat_find_stream_info() failed: %1. - + Could not find audio stream. - + Codec [id: %1] not found. - + avcodec_open2() failed: %1. - + Cannot find usable audio output device. - + Unsupported sample format. - + ao_open_live() failed: - + No driver. - + This driver is not a live output device. - + A valid option key has an invalid value. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Unknown error. - + avcodec_alloc_frame() failed. @@ -3657,18 +3667,18 @@ ResourceToSaveHandler - - + + ERROR: %1 ΣΦΑΛΜΑ: %1 - + Resource saving error: Σφάλμα αποθήκευσης: - + The referenced resource failed to download. Απέτυχε η λήψη του ζητούμενου πόρου. diff -Nru goldendict-1.0.2~git20130620/locale/es_AR.ts goldendict-1.5.0~ppa131019/locale/es_AR.ts --- goldendict-1.0.2~git20130620/locale/es_AR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/es_AR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -16,12 +16,12 @@ Acerca de GoldenDict - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Créditos: @@ -30,7 +30,7 @@ GoldenDict dictionary lookup program, version 0.7 - + GoldenDict dictionary lookup program, version Diccionario Electrónico GoldenDict, versión @@ -39,7 +39,7 @@ #.# - + Licensed under GNU GPLv3 or later Licencia de GNU GPLv3 o posterior @@ -49,9 +49,9 @@ [Desconocido] - + Based on Qt %1 (%2, %3 bit) - + Basado en Qt %1 (%2, %3 bit) @@ -59,60 +59,60 @@ Expand article - + Expandir artículo Collapse article - + Plegar artículo - + No translation for <b>%1</b> was found in group <b>%2</b>. No se ha encontrado ninguna palabra para <b>%1</b> en el grupo <b>%2</b>. - + No translation was found in group <b>%1</b>. No se ha encontrado ninguna palabra en el grupo <b>%1</b>. - + Welcome! ¡Bienvenido! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">¡Bienvenido a <b>GoldenDict</b>!</h3><p>Para comenzar a utilizar el programa, primero ingrese al menú <b>Editar|Diccionarios</b> para agregar los directorios donde ubicar los diccionarios locales, configurar varios sitios de Wikipedia y definir otras fuentes de traducción online. Podrá también agrupar los diccionarios y ajustar el orden en el que aparecen los resultados de búsqueda.<p> ¡Y ahora, está listo para buscar las palabras que usted desee! La manera tradicional de utilizar un diccionario es introducir el término en el campo de búsqueda ubicado en el panel izquierdo de esta misma ventana. No obstante, a diferencia de la mayoría de los diccionarios electrónicos, no necesita ingresar la palabra específica (lo cual requiere un conocimiento básico de gramática de la lengua a ser traducida). Con GoldenDict, usted puede escribir la forma flexionada de una palabra determinada, que el programa es capaz de reconocer sus raíces, y así efectuar su corrección morfológica. Otra característica fundamental de GoldenDict es que el campo de búsqueda no es la única forma de efectuar búsquedas de palabras: también se puede traducir palabras mientras se encuentra en otros programas por medio del uso de la función de ventana emergente del GoldenDict. Consulte <a href="Trabajar con la función de ventana emergente">como buscar palabras desde otros programas</a> para saber como funciona este método de búsqueda.<p>Para personalizar el programa, ingrese al menú <b>Editar|Preferencias</b>. Cada opción tiene su propia ayuda que aparece cuando el cursor del mouse está posicionado encima de la misma por unos segundos.<p>Si necesita más ayuda, tiene dudas, sugerencias o cualquier otro pedido, su participación en el <a href="http://goldendict.org/forum/">foro</a> del programa es bienvenida.<p>Consulte el <a href="http://goldendict.org/">sitio web</a> del programa para ver si existen nuevas actualizaciones del mismo.<p>(c) 2008-2013 Konstantin Isakov. Licencia de GNU GPLv3 o posterior. - + Working with popup Trabajar con la función de ventana emergente - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Trabajar con la función de ventana emergente</h3>Para realizar búsquedas de palabras mientras se encuentra en otro programa, primeramente es preciso activar la función de ventana emergente siguiendo los siguientes pasos en la ventana principal del GoldenDict:<p><OL><LI>Ingrese en el menú <b>Editar|Preferencias</b>;<LI>Haga click en la pestaña <i>Ventana emergente de lectura</i>;<LI>Marque la casilla de selección <i>Activar función de ventana emergente de lectura</i>;<LI>Luego presione en <em>Aceptar</em> para guardar la configuración.</OL><p>Con esta opción activada, puede marcar o desmarcar la exhibición de ventana emergente cuando así lo desee. Para ésto, existen dos formas:<UL><LI>En la ventana principal, haga click en el botón <em>ventana emergente de lectura</em>, cuya imagen se asemeja a una varita;<LI>En el ícono del programa que aparece en la bandeja del sistema, haga click con el botón derecho del mouse y marque la opción <em>ventana emergente de lectura</em>.</UL><p> - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Una vez que esta opción sea activada, para cualquier palabra, frase o texto situado debajo del cursor del mouse, se mostrará una ventana emergente, exhibiendo inmediatamente los resultados de búsqueda. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Una vez que esta opción sea activada, para cualquier palabra, frase o texto selecciónelo con el mouse o haga doble click sobre el mismo y se mostrará una ventana emergente, exhibiendo inmediatamente los resultados de búsqueda. - + (untitled) (sin título) - + (picture) (imagen) @@ -120,7 +120,7 @@ ArticleRequest - + From Resultados de @@ -129,32 +129,32 @@ From %1 - + Expand article - + Expandir artículo - + Collapse article - + Plegar artículo - + Query error: %1 Error de consulta: %1 - + Close words: Palabras aproximadas: - + Compound expressions: Expresiones compuestas: - + Individual words: Palabras individuales: @@ -162,47 +162,57 @@ ArticleView - + Select Current Article Seleccionar artículo actual - + Copy as text - + Copiar como texto - + Inspect - + Inspeccionar - + Resource Recurso - + Audio Audio - + TTS Voice Texto a Voz - + Picture Imagen - + + Video + Video + + + + Video: %1 + Video: %1 + + + Definition from dictionary "%1": %2 Definición de diccionario "%1": %2 - + Definition: %1 Definición: %1 @@ -211,38 +221,38 @@ GoldenDict - - + + The referenced resource doesn't exist. El recurso referenciado no existe. - + The referenced audio program doesn't exist. El programa de audio referenciado no existe. - + ERROR: %1 ERROR: %1 - + Save sound Guardar audio - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Archivos de audio (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Todos los archivos (*.*) - + Save image Guardar imagen - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Archivos de imagen (*.bmp *.jpg *.png *.tif);;Todos los archivos (*.*) @@ -251,24 +261,24 @@ Error al guardar recurso: - + &Open Link Abrir &vínculo - + Open Link in New &Tab Abrir vínculo en nueva &pestaña - + Open Link in &External Browser Abrir vínculo en Navegador &Web externo - + WARNING: FFmpeg Audio Player: %1 - + ATENCIÓN: Reproductor de audio FFmpeg: %1 Save &image @@ -279,33 +289,33 @@ Guardar &audio - + &Look up "%1" &Buscar "%1" - + Look up "%1" in &New Tab Buscar "%1" en una &nueva pestaña - + Send "%1" to input line Enviar "%1" a búsqueda - - + + &Add "%1" to history &Agregar "%1" a historial - + Look up "%1" in %2 Buscar "%1" en %2 - + Look up "%1" in %2 in &New Tab Buscar "%1" en %2 en una nueva p&estaña @@ -326,37 +336,37 @@ La biblioteca Bass no puede reproducir este audio. - + Failed to run a player to play sound file: %1 - No fue posible ejecutar un programa reproductor de audios: %1 + No fue posible ejecutar un programa reproductor de audio: %1 - + Failed to create temporary file. No fue posible crear archivo temporal. - + Failed to auto-open resource file, try opening manually: %1. No fue posible abrir el archivo automáticamente, Intente abrirlo manualmente: %1. - + The referenced resource failed to download. No fue posible descargar el recurso referenciado. - + Save &image... Guardar &imagen... - + Save s&ound... Guardar &audio... - + WARNING: %1 ATENCIÓN: %1 @@ -550,12 +560,12 @@ Open folder - + Abrir carpeta Edit dictionary - Editar diccionario + Editar diccionario @@ -571,7 +581,8 @@ Edit the dictionary via command: %1 - + Editar el diccionario vía comando: +%1 @@ -596,7 +607,7 @@ Extended menu with all dictionaries... - + Menú extendido con todos los diccionarios... @@ -611,7 +622,7 @@ Open dictionary folder - + Abrir carpeta del diccionario @@ -675,37 +686,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Error de parsing XML: %1 en %2,%3 - + Added %1 Agregado %1 - + by por - + Male Masculino - + Female Femenino - + from de - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Ingrese a Editar|Diccionarios|Fuentes|Forvo y solicite su propia clave de API para que este error desaparezca. @@ -777,7 +788,7 @@ Are you sure you want to remove the group <b>%1</b>? - ¿Esta seguro que desea eliminar el grupo <b>%1</b>? + ¿Está seguro que desea eliminar el grupo <b>%1</b>? @@ -788,7 +799,7 @@ Are you sure you want to remove all the groups? - ¿Esta seguro que desea eliminar todos los grupos? + ¿Está seguro que desea eliminar todos los grupos? Groups @@ -909,12 +920,12 @@ Historial: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Tamaño del historial: %1 entradas de un máximo de %2 @@ -1667,7 +1678,7 @@ Zulu - + %1 Morphology Morfología de %1 @@ -2728,9 +2739,9 @@ Main - + Error in configuration file. Continue with default settings? - + Error en archivo de configuración. ¿Desea continuar con los valores por defecto? @@ -2775,7 +2786,7 @@ Cargando... - + Skip This Release Saltarse esta versión @@ -2784,32 +2795,32 @@ [Unknown] - + Page Setup Configurar página - + No printer is available. Please install one first. Impresora no disponible. Por favor instale una primero. - + Print Article Imprimir artículo - + Article, Complete (*.html) - + Artículo, Completo (*.html) - + Article, HTML Only (*.html) - + Artículo, sólo HTML (*.html) - + Save Article As Guardar artículo como @@ -2818,12 +2829,12 @@ Archivos HTML (*.html *.htm) - + Error Error - + Can't save article: %1 No es posible guardar el artículo: %1 @@ -2832,33 +2843,33 @@ Error loading dictionaries - + %1 dictionaries, %2 articles, %3 words %1 diccionarios, %2 artículos, %3 palabras - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. No fue posible inicializar el mecanismo de monitoreo de las teclas de acceso rápido. Verifique que su XServer posea la extensión RECORD activada. - + New Release Available Nueva versión disponible - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. La versión <b>%1</b> de GoldenDict está disponible ahora para descargar.<br>Haga click en <b>Descargar</b> para ir a la página web de descarga. - + Download Descargar - + Look up in: Buscar en: @@ -2946,33 +2957,33 @@ Cerrar todas las pestañas excepto la actual - + Look up: Buscar: - + All Todos - - + + Accessibility API is not enabled La función de accesibilidad no esta activada - + Saving article... - + Guardando artículo... - + The main window is set to be always on top. La ventana principal del programa se ha configurado para aparecer siempre visible. - + Import history from file Importar historial desde archivo @@ -2981,32 +2992,32 @@ Importado desde archivo: - + Import error: invalid data in file Error de importación: datos inválidos en el archivo - + History import complete Importación de historial finalizada - + Import error: Error de importación: - + Dictionary info Información del diccionario - + Open dictionary folder - + Abrir carpeta del diccionario - + Edit dictionary Editar diccionario @@ -3016,17 +3027,17 @@ Pestañas abiertas - + Open Tabs List Abrir lista de pestañas - + (untitled) (sin título) - + %1 - %2 %1 - %2 @@ -3035,17 +3046,17 @@ ATENCIÓN: %1 - + You have chosen to hide a menubar. Use %1 to show it back. Ha elegido ocultar la barra de menú. Utilice %1 para mostrarla nuevamente. - + Ctrl+M Ctrl+M - + &Hide &Ocultar @@ -3054,23 +3065,23 @@ Modo vista historial - + Export history to file Exportar historial a archivo - - + + Text files (*.txt);;All files (*.*) Documentos de texto (*.txt);;Todos los archivos (*.*) - + History export complete Exportación de historial finalizada - + Export error: Error de exportación: @@ -3088,7 +3099,7 @@ - + Welcome! ¡Bienvenido! @@ -3325,7 +3336,7 @@ - + &Show &Mostrar @@ -3356,20 +3367,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + El archivo del diccionario ha sido manipulado o corrompido - + Failed loading article from %1, reason: %2 - + Error al cargar artículo de %1, motivo: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Error de parsing XML: %1 en %2,%3 @@ -3377,7 +3388,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Error de parsing XML: %1 en %2,%3 @@ -3652,12 +3663,12 @@ Adjust this value to avoid huge context menus. - + Ajuste este valor para evitar menús contextuales enormes. Context menu dictionaries limit: - + Límite de diccionarios en menú contextual: @@ -3911,32 +3922,32 @@ Play audio files via FFmpeg(libav) and libao - + Reproducir archivos de audio vía FFmpeg(libav) y libao Use internal player - + Utilizar reproductor de audio interno Select this option to automatic collapse big articles - + Seleccionar esta opción para automáticamente plegar artículos grandes Collapse articles more than - + Plegar artículos con más de Articles longer than this size will be collapsed - + Los artículos que superen este tamaño aparecerán automáticamente plegados symbols - + símbolos Use Windows native playback API. Limited to .wav files only, @@ -3980,12 +3991,12 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Algunos sitios web detectan GoldenDict vía encabezados HTTP y de esta manera lo bloquean. Active esta opción para eludir este problema. Do not identify GoldenDict in HTTP headers - + No identificar GoldenDict en encabezados HTTP @@ -4234,12 +4245,12 @@ Reproducir vía DirectShow - + Changing Language Modificar idioma - + Restart the program to apply the language change. Reinicie el programa para aplicar el cambio de idioma. @@ -4321,99 +4332,99 @@ QObject - + Article loading error - + Error al cargar artículo - + Article decoding error - + Error al decodificar artículo - + avformat_alloc_context() failed. - + Fallo en avformat_alloc_context(). - + av_malloc() failed. - + Fallo en av_malloc(). - + avio_alloc_context() failed. - + Fallo en avio_alloc_context(). - + avformat_open_input() failed: %1. - + Fallo en avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. - + Fallo en avformat_find_stream_info(): %1. - + Could not find audio stream. - + No pudo encontrarse un stream de audio. - + Codec [id: %1] not found. - + Códec [id: %1] no encontrado. - + avcodec_open2() failed: %1. - + Fallo en avcodec_open2(): %1. - + Cannot find usable audio output device. - + No se encuentra disponible un dispositivo de salida de audio. - + Unsupported sample format. - + Formato de muestreo no soportado. - + ao_open_live() failed: - + Fallo en ao_open_live(): - + No driver. - + No existe controlador de dispositivo disponible. - + This driver is not a live output device. - + Este controlador no es un dispositivo de salida activo. - + A valid option key has an invalid value. - + Una opción de clave válida contiene un valor inválido. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + No se puede abrir el dispositivo: %1, channels: %2, rate: %3, bits: %4. - + Unknown error. - + Error desconocido. - + avcodec_alloc_frame() failed. - + Fallo en avcodec_alloc_frame(). @@ -4437,20 +4448,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - ERROR: %1 + ERROR: %1 - + Resource saving error: - Error al guardar recurso: + Error al guardar recurso: - + The referenced resource failed to download. - No fue posible descargar el recurso referenciado. + No fue posible descargar el recurso referenciado. @@ -4802,7 +4813,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Ingrese todos los programas externos que quiera. La ocurrencia %GDWORD% se reemplazará por el término de búsqueda especificado. Si la ocurrencia no esta presente, el término será enviado a la entrada estándar. diff -Nru goldendict-1.0.2~git20130620/locale/es_BO.ts goldendict-1.5.0~ppa131019/locale/es_BO.ts --- goldendict-1.0.2~git20130620/locale/es_BO.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/es_BO.ts 2013-10-18 14:32:58.000000000 +0000 @@ -16,12 +16,12 @@ Acerca de - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Créditos: @@ -30,7 +30,7 @@ GoldenDict diccionario electrónico, versión 0.7 - + GoldenDict dictionary lookup program, version GoldenDict, diccionario electrónico, versión @@ -39,7 +39,7 @@ #.# - + Licensed under GNU GPLv3 or later Licencia GNU GPLv3 o después @@ -49,7 +49,7 @@ [Desconocido] - + Based on Qt %1 (%2, %3 bit) @@ -67,52 +67,52 @@ - + No translation for <b>%1</b> was found in group <b>%2</b>. No traducción de <b>%1</b> fue encontrado en grupo <b>%2</b>. - + No translation was found in group <b>%1</b>. No traducción fue encontrado en grupo <b>%1</b>. - + Welcome! ¡Bienvenido! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">¡Bienvenido a <b>GoldenDict</b>!</h3><p>Para empezar utilizando el programa, primero vaya al menú <b>Editar|Diccionarios</b> para añadir algunas rutas de directorios para buscar archivos de diccionarios, establecer sitios de Wikipedia o otros fuentes, ajustar el orden de diccionarios o crear grupos de diccionarios. <p>¡Entonces, Ud. puede empezar buscando palabras! Puede buscar en esta ventana utilizando el panel a la izquierda, o puede <a href="Working with popup">buscar palabras desde otras aplicaciones activas</a>. <p>Para personalizar este programa, vaya a <b>Editar&gt;Preferencias</b>. Todas las opciones allí tienen concejos emergentes. Léalos si Ud. tiene dudas acerca de las opciones. <p>Si Ud. necesita más ayuda, tiene preguntas, sugerencias o quiere saber las opiniones de otros, Ud está bienvenido al <a href="http://goldendict.org/forum/">foro</a> de GoldenDict. <p>Visite el <a href="http://goldendict.org/">sitio web</a> para conseguir actualizaciones del programa. <p>(c) 2008-2013 Konstantin Isakov. Licenciado bajo los términos de la GPLv3 o después. - + Working with popup Utilizando la ventana emergente - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Cómo Utilizar la ventana emergente</h3>Para buscar palabras desde otras aplicaciones activas, primero hay que habilitar la opción <i>"Escaneo en una ventana emergente"</i> en <b>Editar|Preferencias</b>. Luego puede utilizarla en cualquier momento, activando el icono arriba de la 'Ventana Emergente'. Alternativamente, haga clic a derecha abajo en la bandeja del sistema y seleccione la opción <b>Escanear con Ventana Emergente</b> en el menú. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Luego detenga el cursor sobre la palabra que Ud. quiere buscar en otra aplicación y una ventana emergente aparecerá para hacer la consulta. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Luego, seleccione una palabra deseada con su ratón para buscarla desde otra aplicación. Para seleccionar una palabra haga doble clic o arrastra sobre la palabra mientras oprimiendo el botón del ratón, y una ventana emergente aparecerá con la definición de la palabra. - + (untitled) (sin título) - + (picture) @@ -120,7 +120,7 @@ ArticleRequest - + From De @@ -129,32 +129,32 @@ From %1 - + Expand article - + Collapse article - + Query error: %1 Error de búsqueda: %1 - + Close words: Cerrar palabras: - + Compound expressions: Expresiones compuestas: - + Individual words: Palabras individuales: @@ -162,47 +162,47 @@ ArticleView - + Select Current Article - + Copy as text - + Inspect - + Resource - + Audio - + TTS Voice - + Picture - + Definition from dictionary "%1": %2 - + Definition: %1 @@ -211,89 +211,99 @@ GoldenDict - - + + The referenced resource doesn't exist. El recurso referido no existe. - + The referenced audio program doesn't exist. - + ERROR: %1 - + Save sound - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Save image - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + &Open Link &Abrir enlace - + + Video + + + + + Video: %1 + + + + Open Link in New &Tab Abrir enlace en una nueva &pestaña - + Open Link in &External Browser Abrir enlace en un &navegador web externo - + &Look up "%1" &Buscar "%1" - + Look up "%1" in &New Tab Buscar "%1" en una &nueva pestaña - + Send "%1" to input line - - + + &Add "%1" to history - + Look up "%1" in %2 Buscar "%1" en %2 - + Look up "%1" in %2 in &New Tab Buscar "%1" en %2 en una &nueva pestaña - + WARNING: FFmpeg Audio Player: %1 @@ -306,37 +316,37 @@ Para activar reproducción de archivos no WAV, por favor vaya a Editar|Preferencias, escoja la pestaña Audio y seleccione "Reproducir con DirectShow". - + Failed to run a player to play sound file: %1 Fallo ejecutando un reproductor para reproducir el archivo de audio: %1 - + Failed to create temporary file. Fallo creando archivo temporal. - + Failed to auto-open resource file, try opening manually: %1. Fallo abriendo automáticamente el archivo de recursos. Intente abrirlo manualmente: %1. - + The referenced resource failed to download. El recurso ha fallado de descargar. - + Save &image... - + Save s&ound... - + WARNING: %1 ADVERTENCIA: %1 @@ -655,37 +665,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Error de lectura XML: %1 al %2,%3 - + Added %1 %1 Añadido - + by por - + Male Masculino - + Female Femenino - + from de - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Vaya a Editar|Diccionarios|Fuentes|Forvo y solicitar su propia clave de API para hacer desaparecer este error. @@ -888,12 +898,12 @@ - + %1/%2 - + History size: %1 entries out of maximum %2 @@ -1646,7 +1656,7 @@ Zulu - + %1 Morphology Morfología %1 @@ -2707,7 +2717,7 @@ Main - + Error in configuration file. Continue with default settings? @@ -2754,7 +2764,7 @@ Cargando... - + Skip This Release Saltar esta versión @@ -2763,22 +2773,22 @@ [Sconosciuto] - + Page Setup Configuración de página - + No printer is available. Please install one first. No hay una impresora disponible. Por favor instale una. - + Print Article Imprimir articulo - + Save Article As Guardar articulo como @@ -2787,12 +2797,12 @@ Archivos HTML (*.html *.htm) - + Error Error - + Can't save article: %1 No puede guardar articulo: %1 @@ -2801,33 +2811,33 @@ Error loading dictionaries - + %1 dictionaries, %2 articles, %3 words %1 diccionarios, %2 artículos, %3 palabras - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Fallo de inicializar monitoreo de teclas de acceso rápido.<br>Asegúrese que su XServer tiene activada la extensión RECORD. - + New Release Available Una nueva versión está disponible - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Ahora versión <b>%1</b> de GoldenDict está disponible para descargar.<br>Haga clic en <b>Descargar</b> para ir a página de descargas. - + Download Descargar - + Look up in: Buscar en: @@ -2911,73 +2921,73 @@ Cerrar todas las pestañas excepto la actual - + Look up: Buscar en: - + All Todo - - + + Accessibility API is not enabled - + Article, Complete (*.html) - + Article, HTML Only (*.html) - + Saving article... - + The main window is set to be always on top. - + Import history from file - + Import error: invalid data in file - + History import complete - + Import error: - + Dictionary info - + Open dictionary folder - + Edit dictionary @@ -2987,17 +2997,17 @@ Pestañas abiertas - + Open Tabs List - + (untitled) (sin titulo) - + %1 - %2 @@ -3006,38 +3016,38 @@ ADVERTENCIA: %1 - + You have chosen to hide a menubar. Use %1 to show it back. - + Ctrl+M - + &Hide - + Export history to file - - + + Text files (*.txt);;All files (*.*) - + History export complete - + Export error: @@ -3055,7 +3065,7 @@ - + Welcome! ¡Bienvenido! @@ -3284,7 +3294,7 @@ - + &Show @@ -3315,12 +3325,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Failed loading article from %1, reason: %2 @@ -3328,7 +3338,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Error leyendo XML: %1 en %2,%3 @@ -3336,7 +3346,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Error leyendo XML: %1 en %2,%3 @@ -4173,12 +4183,12 @@ Reproducir con DirectShow - + Changing Language Cambiando la lengua - + Restart the program to apply the language change. Reinicie el programa para utilizar la lengua nueva del programa. @@ -4260,97 +4270,97 @@ QObject - + Article loading error - + Article decoding error - + avformat_alloc_context() failed. - + av_malloc() failed. - + avio_alloc_context() failed. - + avformat_open_input() failed: %1. - + avformat_find_stream_info() failed: %1. - + Could not find audio stream. - + Codec [id: %1] not found. - + avcodec_open2() failed: %1. - + Cannot find usable audio output device. - + Unsupported sample format. - + ao_open_live() failed: - + No driver. - + This driver is not a live output device. - + A valid option key has an invalid value. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Unknown error. - + avcodec_alloc_frame() failed. @@ -4376,18 +4386,18 @@ ResourceToSaveHandler - - + + ERROR: %1 - + Resource saving error: - + The referenced resource failed to download. El recurso ha fallado de descargar. diff -Nru goldendict-1.0.2~git20130620/locale/es_ES.ts goldendict-1.5.0~ppa131019/locale/es_ES.ts --- goldendict-1.0.2~git20130620/locale/es_ES.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/es_ES.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Acerca de - + GoldenDict dictionary lookup program, version GoldenDict, programa para consulta de diccionarios, versión - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - © 2008-2013 Konstantin Isakov (ikm@goldendict.org) + © 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Créditos: - + Licensed under GNU GPLv3 or later Licencia GNU GPLv3 o posterior @@ -34,9 +34,9 @@ [Desconocido] - + Based on Qt %1 (%2, %3 bit) - + Basado en Qt %1 (%2, %3 bits) @@ -44,98 +44,98 @@ Expand article - + Desplegar artículo Collapse article - + Plegar artículo - + No translation for <b>%1</b> was found in group <b>%2</b>. No se ha encontrado ninguna traducción para <b>%1</b> en el grupo <b>%2</b>. - + No translation was found in group <b>%1</b>. No se ha encontrado ninguna traducción en el grupo <b>%1</b>. - + Welcome! ¡Bienvenido! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - <h3 align="center">¡Bienvenido a <b>GoldenDict</b>!</h3><p>Para empezar a trabajar con este programa, vaya primero a <b>Editar|Diccionarios</b> para especificar los directorios para los ficheros de diccionarios, configurar varios sitios de Wikipedia o de otras fuentes, definir el orden de búsqueda en los diccionarios o crear grupos de diccionarios.<p>Y con eso, ¡ya está listo para buscar! Puede hacerlo en esta ventana en el panel a la izquierda o puede <a href="Utilización de la ventana emergente">buscar palabras desde otros programas</a>. <p>Para personalizar el programa, eche un vistazo a las opciones disponibles en <b>Editar|Preferencias</b>. Cada opción tiene su propia descripción, léalas si tiene cualquier duda.<p>Si necesita más ayuda, tiene cualquier duda o sugerencia, o simplemente le interesa la opinión de los demás, es bienvenido al <a href="http://goldendict.berlios.de/forum/">foro</a> del programa.<p>Consulte el <a href="http://goldendict.org/">sitio web</a> del programa para estar al corriente de las actualizaciones.<p>© 2008-2013 Konstantin Isakov. Licencia GNU GPLv3 o posterior. + <h3 align="center">¡Bienvenido a <b>GoldenDict</b>!</h3><p>Para empezar a trabajar con este programa, vaya primero a <b>Editar|Diccionarios</b> para especificar los directorios para los ficheros de diccionarios, configurar varios sitios de Wikipedia o de otras fuentes, definir el orden de búsqueda en los diccionarios o crear grupos de diccionarios.<p>Y con eso, ¡ya está listo para buscar! Puede hacerlo en esta ventana en el panel a la izquierda o puede <a href="Utilización de la ventana emergente">buscar palabras desde otros programas</a>. <p>Para personalizar el programa, eche un vistazo a las opciones disponibles en <b>Editar|Preferencias</b>. Cada opción tiene su propia descripción, léalas si tiene cualquier duda.<p>Si necesita más ayuda, tiene cualquier duda o sugerencia, o simplemente le interesa la opinión de los demás, es bienvenido al <a href="http://goldendict.berlios.de/forum/">foro</a> del programa.<p>Consulte el <a href="http://goldendict.org/">sitio web</a> del programa para estar al corriente de las actualizaciones.<p>© 2008-2013 Konstantin Isakov. Licencia GNU GPLv3 o posterior. - + Working with popup Utilización de la ventana emergente - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. - <h3 align="center">Utilización de la ventana emergente</h3>Para buscar palabras desde otras aplicaciones, tiene que habilitar antes la <i>"función de ventana emergente de búsqueda"</i> en <b>Preferencias</b>, y entonces activarla en cualquier momento con el icono 'Ventana emergente' mostrado arriba, o pulsando el icono de la bandeja mostrado abajo con el botón derecho del ratón y eligiendo la opción en el menú que aparece. + <h3 align="center">Utilización de la ventana emergente</h3>Para buscar palabras desde otras aplicaciones, tiene que activar antes la <i>"función de ventana emergente de búsqueda"</i> en <b>Preferencias</b>, y entonces activar la ventana en cualquier momento con el icono 'Ventana emergente' mostrado arriba, o pulsando el icono de la bandeja mostrado abajo con el botón derecho del ratón y eligiendo la opción en el menú que aparece. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Entonces puede situar el cursor sobre la palabra que quiere buscar en otra aplicación, y aparecerá una ventana mostrando los resultados de la búsqueda. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. - Entonces puede seleccionar cualquier palabra que quiera buscar en otra aplicación con el ratón (haga doble click o seleccionela con el ratón mientras mantiene pulsado el botón derecho), y aparecerá una ventana que mostrará los resultados de la búsqueda.. + Entonces puede seleccionar cualquier palabra que quiera buscar en otra aplicación con el ratón (haga doble clic o selecciónela con el ratón mientras mantiene pulsado el botón derecho), y aparecerá una ventana que mostrará los resultados de la búsqueda.. - + (untitled) (sin título) - + (picture) - + (imagen) ArticleRequest - + Expand article - + Desplegar artículo - + From De - + Collapse article - + Plegar artículo - + Query error: %1 Error de consulta: %1 - + Close words: Palabras parecidas: - + Compound expressions: Expresiones compuestas: - + Individual words: Palabras sueltas: @@ -143,47 +143,47 @@ ArticleView - + Select Current Article - + Seleccionar artículo actual - + Copy as text - + Copiar como texto - + Inspect - + Inspeccionar - + Resource Recurso - + Audio Audio - + TTS Voice - + Voz de síntesis (TTS) - + Picture - + Foto - + Definition from dictionary "%1": %2 - + Definición de diccionario "%1": %2 - + Definition: %1 Definición: %1 @@ -192,91 +192,101 @@ GoldenDict - - + + The referenced resource doesn't exist. El recurso indicado no existe. - + The referenced audio program doesn't exist. - El programa de audio indicado no existe. + El reproductor de audio indicado no existe. - + ERROR: %1 - + ERROR: %1 - + Save sound - + Guardar sonido - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Ficheros de sonido (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Todos los ficheros (*.*) - + Save image - + Guardar imagen - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + Ficheros de imagen (*.bmp *.jpg *.png *.tif);;Todos los ficheros (*.*) - + &Open Link &Abrir Enlace - + + Video + Vídeo + + + + Video: %1 + Vídeo: %1 + + + Open Link in New &Tab Abrir Enlace en Nueva &Pestaña - + Open Link in &External Browser Abrir Enlace en Navegador Web &Externo - + &Look up "%1" &Buscar "%1" - + Look up "%1" in &New Tab - Buscar "%1" en una &Nueva Pestaña + Buscar "%1" en &Nueva Pestaña - + Send "%1" to input line - + Enviar "%1" a la línea de entrada - - + + &Add "%1" to history - + Aña&dir "%1" al historial - + Look up "%1" in %2 Buscar "%1" en "%2" - + Look up "%1" in %2 in &New Tab - Buscar "%1" en "%2" en una &Nueva Pestaña + Buscar "%1" en "%2" en Nue&va Pestaña - + WARNING: FFmpeg Audio Player: %1 - + AVISO: Reproductor de Audio FFmpeg: %1 Playing a non-WAV file @@ -287,37 +297,37 @@ Para habilitar la reproducción de ficheros en formatos distintos de WAV, vaya a Editar|Preferencias, y en la pestaña Audio seleccione "Reproducir con DirectShow". - + Failed to run a player to play sound file: %1 No se ha podido ejecutar un reproductor para reproducir el fichero de audio: %1 - + Failed to create temporary file. No se ha podido crear un fichero temporal. - + Failed to auto-open resource file, try opening manually: %1. No se ha podido abrir automáticamente el fichero de recursos, intente abrirlo manualmente: %1. - + The referenced resource failed to download. No se ha podido descargar el fichero de recursos indicado. - + Save &image... - + Guardar &imagen... - + Save s&ound... - + Guardar s&onido... - + WARNING: %1 ATENCIÓN: %1 @@ -372,18 +382,19 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + Transliteración del bielorruso de latino a cirílico (ortografía clásica) Belarusian transliteration from latin to cyrillic (school orthography) - + Transliteración del bielorruso de latino a cirílico (ortografía escolar) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + Transliteración bielorrusa (atenúa la diferencia +entre ortografía clásica y escolar en cirílico) @@ -447,7 +458,7 @@ Dictionaries: - + Diccionarios: @@ -462,28 +473,28 @@ Unassigned - + Sin asignar Combine groups by source language to "%1->" - + Combinar grupos por lengua de origen a "%1->" Combine groups by target language to "->%1" - + Combinar grupos por lengua destino a "->%1" Make two-side translate group "%1-%2-%1" - + Crear grupo de traducción bidireccional "%1-%2-%1" Combine groups with "%1" - + Combinar grupos con "%1" @@ -491,48 +502,49 @@ Total articles: - Número de artículos: + Número de artículos: Translates from: - Idioma origen: + Idioma origen: Total words: - Número de palabras: + Número de palabras: Translates to: - Idioma destino: + Idioma destino: Open folder - + Abrir directorio Edit dictionary - + Editar diccionario Files comprising this dictionary: - Ficheros que componen este diccionario: + Ficheros que componen este diccionario: Description: - + Descripción: Edit the dictionary via command: %1 - + Editar el diccionario mediante comando: +%1 @@ -552,12 +564,12 @@ &Dictionary Bar - + Barra de &Diccionarios Extended menu with all dictionaries... - + Menú ampliado con todos los diccionarios... @@ -567,17 +579,17 @@ Dictionary info - + Información del diccionario Open dictionary folder - + Abrir directorio de diccionario Edit dictionary - + Editar diccionario @@ -636,39 +648,39 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Error de sintaxis XML: %1 en %2,%3 - + Added %1 %1 Añadido - + by por - + Male Masculino - + Female Femenino - + from de - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. - Vaya a Editar|Diccionarios|Fuentes|Forvo y solicite su propia clave de API para que este error desaparezca. + Vaya a Editar|Diccionarios|Fuentes|Forvo y solicite su propia clave de la API para que este error desaparezca. @@ -852,27 +864,27 @@ &Delete Selected - + &Borrar Seleccionado Copy Selected - + Copiar Seleccionado History: - + Historial: - + %1/%2 - + %1/%2 - + History size: %1 entries out of maximum %2 - + Tamaño del historial: %1 entradas de un máximo de %2 @@ -883,7 +895,7 @@ Sugerencias ortográficas: - + %1 Morphology Morfología del %1 @@ -893,7 +905,7 @@ Enabled - Habilitado + Activado @@ -1855,82 +1867,82 @@ Lojban - + Lojban Traditional Chinese - + Chino Tradicional Simplified Chinese - + Chino Simplificado Other - + Otro Other Simplified Chinese dialects - + Otros dialectos del Chino Simplificado Other Traditional Chinese dialects - + Otros dialectos del Chino Tradicional Other Eastern-European languages - + Otras lenguas del Este de Europa Other Western-European languages - + Otras lenguas del Oeste de Europa Other Russian languages - + Otras lenguas rusas Other Japanese languages - + Otras lenguas japonesas Other Baltic languages - + Otras lenguas bálticas Other Greek languages - + Otras lenguas griegas Other Korean dialects - + Otros dialectos coreanos Other Turkish dialects - + Otros dialectos turcos Other Thai dialects - + Otros dialectos tailandeses Tamazight - + Bereber @@ -1944,9 +1956,9 @@ Main - + Error in configuration file. Continue with default settings? - + Error en el fichero de configuración. ¿Continuar con la configuración por defecto? @@ -1987,92 +1999,92 @@ Cargando... - + Skip This Release Saltarse esta versión - + You have chosen to hide a menubar. Use %1 to show it back. Ha elegido ocultar una barra de menú. Utilice %1 para volver a mostrarla. - + Ctrl+M Ctrl+M - + Page Setup Configuración de Página - + No printer is available. Please install one first. No hay ninguna impresora disponible. Por favor instale una primero. - + Print Article Imprimir Artículo - + Article, Complete (*.html) - + Artículo, Completo (*.html) - + Article, HTML Only (*.html) - + Artículo, sólo HTML (*.html) - + Save Article As - Grabar Artículo Como + Guardar Artículo Como Html files (*.html *.htm) Ficheros Html (*.html *.htm) - + Error Error - + Can't save article: %1 - No se puede grabar el artículo: %1 + No se puede guardar el artículo: %1 - + %1 dictionaries, %2 articles, %3 words %1 diccionarios, %2 artículos, %3 palabras - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Se se ha podido iniciar la monitorización de teclas de acceso rápido.<br>Asegúrese de que su servidor X tiene activada la extensión RECORD. - + New Release Available Nueva Versión Disponible - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. - La versión <b>%1</b> de GoldenDict está disponible para su descarga.<br>Haga click en <b>Descargar</b> para ir a la página de descarga. + La versión <b>%1</b> de GoldenDict está disponible para su descarga.<br>Pulse en <b>Descargar</b> para ir a la página de descarga. - + Download Descargar - + Look up in: Buscar en: @@ -2102,17 +2114,17 @@ Show Names in Dictionary &Bar - + Mostrar N&ombres en Barra de Diccionarios Show Small Icons in &Toolbars - + Mostrar &Iconos Pequeños en Barras de Herramientas &Navigation - + &Navegación @@ -2160,65 +2172,65 @@ Cerrar todas las pestañas excepto la actual - + Look up: Buscar: - + All Todo - - + + Accessibility API is not enabled - + La API de accesibilidad no está activada - + Saving article... - + Guardando articulo... - + The main window is set to be always on top. - + La ventana principal está configurada para estar siempre en primer plano. - + Import history from file - + Importar historial de fichero - + Import error: invalid data in file - + Error de importación: datos incorrectos en el fichero - + History import complete - + Importación del historial completa - + Import error: - + Import error: - + Dictionary info - + Información de diccionarios - + Open dictionary folder - + Abrir directorio de diccionarios - + Edit dictionary - + Editar diccionario @@ -2226,17 +2238,17 @@ Pestañas abiertas - + Open Tabs List Abrir lista de pestañas - + (untitled) (sin título) - + %1 - %2 %1 - %2 @@ -2245,30 +2257,30 @@ AVISO: %1 - + &Hide - + &Ocultar - + Export history to file - + Exportar historial a fichero - - + + Text files (*.txt);;All files (*.*) - + Ficheros de texto (*.txt);;Todos los ficheros (*.*) - + History export complete - + Exportación del historial completa - + Export error: - + Error de exportación: GoldenDict @@ -2276,7 +2288,7 @@ - + Welcome! ¡Bienvenido! @@ -2298,17 +2310,17 @@ &Search Pane - + Panel de &búsqueda &Results Navigation Pane - + Panel de &resultados de navegación &History Pane - + Panel de &historial &Dictionaries... F3 @@ -2351,7 +2363,7 @@ F3 - F3 + F3 @@ -2436,39 +2448,39 @@ Print Pre&view - + Vista Pre&via &Rescan Files - + Ree&scanear ahora &New Tab - + &Nueva Pestaña &Always on Top - + &Siempre en primer plano Always on Top - + Siempre en primer plano Ctrl+O - + Ctrl+O Menu Button - + Botón de Menú Print Preview @@ -2505,24 +2517,24 @@ - + &Show - + Mo&strar Ctrl+H - + Ctrl+H &Export - + &Exportar &Import - + &Importar Search Pane @@ -2532,20 +2544,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Fichero de diccionario alterado o corrupto - + Failed loading article from %1, reason: %2 - + Fallo al cargar artículo de %1, motivo: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Error de sintaxis XML: %1 en %2,%3 @@ -2553,7 +2565,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Error de sintaxis XML: %1 en %2,%3 @@ -2563,7 +2575,7 @@ Enabled - Habilitado + Activado @@ -2578,7 +2590,7 @@ Icon - + Icono @@ -2639,7 +2651,7 @@ Description: - + Descripción: @@ -2654,12 +2666,12 @@ Sort by name - + Ordenar por nombre Sort by languages - + Ordenar por lenguas @@ -2722,13 +2734,13 @@ When enabled, an icon appears in the sytem tray area which can be used to open main window and perform other tasks. - Con esta opción habilitada, aparece un icono en el área de la bandeja del sistema que se puede usar + Al activar esta opción, aparece un icono en el área de la bandeja del sistema que se puede usar para abrir la ventana actual y realizar otras tareas. Enable system tray icon - Habilitar icono de bandeja del sistema + Activar icono de bandeja del sistema @@ -2805,7 +2817,7 @@ Use the following hotkey to show or hide the main window: - Use la siguiente tecla de acceso rápido para mostra u ocultar la ventana principal: + Use la siguiente tecla de acceso rápido para mostrar u ocultar la ventana principal: @@ -2835,7 +2847,7 @@ Ctrl-Tab navigates tabs in MRU order - + Ctrl-Tab cambia a las pestañas usadas más recientemente @@ -2857,27 +2869,27 @@ Turn this option on if you want to select words by single mouse click - + Active esta opción para seleccionar palabras con una sola pulsación del ratón Select word by single click - + Seleccionar palabra con un solo clic Add-on style: - + Estilo suplementario add-on): Adjust this value to avoid huge context menus. - + Ajuste este valor para evitar menús contextuales demasiado grandes. Context menu dictionaries limit: - + Límite de diccionarios para el menú contextual: @@ -2886,15 +2898,15 @@ any word with mouse (Linux). When enabled, you can switch it on and off from main window or tray icon. Con esta opción, se mostrará una ventana emergente de traducción -al apuntar con su ratón a cualquier palabra en la pantalla (en Windows) +al apuntar con el ratón a cualquier palabra en la pantalla (en Windows) o al seleccionar cualquier palabra con el ratón (en Linux). -Si se habilita, puede activarlo y desactivarlo desde la ventana principal +Una vez activada, se puede activar o desactivar desde la ventana principal o desde el icono de la bandeja. Enable scan popup functionality - Habilita la funcionalidad de ventana emergente de búsqueda + Activa la funcionalidad de ventana emergente de búsqueda @@ -2905,7 +2917,7 @@ With this enabled, the popup would only show up if all chosen keys are in the pressed state when the word selection changes. - Al habilitar esta opción, la ventana emergente aparecerá si se pulsan todas + Al activar esta opción, la ventana emergente aparecerá si se pulsan todas las teclas elegidas cuando cambia la palabra seleccionada. @@ -3045,23 +3057,24 @@ Play audio files via FFmpeg(libav) and libao - + Reproducir ficheros de audio con FFmpeg(libav) y libao Use internal player - + Utilizar reproductor interno Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Algunos sitios web detectan GoldenDict mediante las cabeceras HTTP y bloquean las peticiones. +Active esta opción para evitar el problema. Do not identify GoldenDict in HTTP headers - + Impedir la identificación de GoldenDict a partir de las cabeceras HTTP @@ -3120,77 +3133,77 @@ History - + Historial Turn this option on to store history of the translated words - + Activar esta opción para almacenar el historial de palabras traducidas Store &history - + Almacenar &historial Specify the maximum number of entries to keep in history. - + Especificar el máximo número de entradas a guardar en el historial. Maximum history size: - + Tamaño máximo del historial: History saving interval. If set to 0 history will be saved only during exit. - + Intervalo de tiempo para guardar el historial. Si se pone a 0, el historial se guardará sólo al terminar. Save every - + Guardar cada minutes - + minutos Articles - + Artículos Turn this option on to always expand optional parts of articles - + Activar esta opción para desplegar siempre las partes opcionales de los artículos Expand optional &parts - + Desplegar &partes opcionales Select this option to automatic collapse big articles - + Seleccionar esta opción para mostrar plegados los artículos muy grandes Collapse articles more than - + Mostrar plegados los artículos con más de Articles longer than this size will be collapsed - + Los artículos con una longitud mayor que esta se mostrarán plegados symbols - + símbolos @@ -3269,7 +3282,7 @@ Enable if you wish to use a proxy server for all program's network requests. - Habilitar si desea utilizar un servidor proxy + Activar si desea utilizar un servidor proxy para todos los accesos a la red del programa. @@ -3328,7 +3341,7 @@ Enable web plugins - Habilitar plugins para la web + Activar plugins para la web @@ -3337,7 +3350,7 @@ is available for download. If it is so, the program informs the user about it and prompts to open a download page. - Al habilitar esta opción, el programa comprueba periódicamente + Al activar esta opción, el programa comprueba periódicamente si existe una versión más reciente de GoldenDict disponible para su descarga. Si es así, el programa informará acerca de ello y permitirá abrir una página para su descarga. @@ -3360,7 +3373,7 @@ Modern - + Moderno @@ -3370,29 +3383,29 @@ Babylon - + Babylon Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blue Play via DirectShow Reproducir con DirectShow - + Changing Language Cambiando Idioma - + Restart the program to apply the language change. Vuelva a ejecutar el programa para hacer efectivo el cambio de idioma. @@ -3448,7 +3461,7 @@ Enabled - Habilitado + Activado @@ -3468,105 +3481,105 @@ Icon - + Icono QObject - + Article loading error - + Error al cargar artículo - + Article decoding error - + Error al decodificar artículo - + avformat_alloc_context() failed. - + Fallo en avformat_alloc_context(). - + av_malloc() failed. - + Fallo en av_malloc(). - + avio_alloc_context() failed. - + Fallo en avio_alloc_context(). - + avformat_open_input() failed: %1. - + Fallo en avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. - + Fallo en avformat_find_stream_info(): %1. - + Could not find audio stream. - + No se encontró el flujo de audio. - + Codec [id: %1] not found. - + No se encontró codec [id: %1]. - + avcodec_open2() failed: %1. - + Fallo en avcodec_open2(): %1. - + Cannot find usable audio output device. - + No se encontró dispositivo de audio utilizable. - + Unsupported sample format. - + Formato de muestreo no soportado. - + ao_open_live() failed: - + Fallo en ao_open_live(): - + No driver. - + No hay controlador. - + This driver is not a live output device. - + Este controlador no corresponde a un dispositivo de salida activo. - + A valid option key has an invalid value. - + Una clave de opción válida tiene un valor no válido. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + No se puede abrir el dispositivo: %1, canales: %2, velocidad: %3, bits: %4. - + Unknown error. - + Error desconocido. - + avcodec_alloc_frame() failed. - + Fallo en avcodec_alloc_frame(). @@ -3574,36 +3587,36 @@ Dictionary search/filter (Ctrl+F) - + Búsqueda/filtro en diccionario (Ctrl+F) Quick Search - + Búsqueda Rápida Clear Search - + Eliminar Búsqueda ResourceToSaveHandler - - + + ERROR: %1 - + ERROR: %1 - + Resource saving error: - + Error al guardar recurso: - + The referenced resource failed to download. - No se ha podido descargar el fichero de recursos indicado. + No se ha podido descargar recurso referenciado. @@ -3641,12 +3654,12 @@ Back - Atrás + Atrás Forward - Adelante + Adelante List Matches (Alt+M) @@ -3705,7 +3718,7 @@ %1 - %2 - %1 - %2 + %1 - %2 @@ -3723,7 +3736,7 @@ Icon - + Icono @@ -3731,7 +3744,7 @@ Text to Speech - + Síntesis de Voz @@ -3885,7 +3898,7 @@ Enable pronunciations from Forvo - Habilitar pronunciaciones desde Forvo + Activar pronunciaciones desde Forvo @@ -3904,7 +3917,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Obtenga su propia clave <a href="http://api.forvo.com/key/">aquí</a>, or déjela en blanco para usar la clave por defecto. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -3928,12 +3941,13 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + También puede usar %GD1251% para CP1251, %GDISO1%...%GDISO16% para ISO 8859-1...ISO 8859-16, +%GDBIG5% para Big-5, %GDBIG5HKSCS% para Big5-HKSCS, %GDGBK% para GBK y GB18030, y %GDSHIFTJIS% para Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Se puede especificar cualquier programa externo. Se sustituirá el texto %GDWORD% por la palabra a buscar. Si este texto no está presente, se enviará la palabra a la entrada estándar. @@ -3973,7 +3987,7 @@ Belarusian transliteration - + Transliteración del bielorruso @@ -4075,7 +4089,7 @@ None - Ninguno + Ninguno @@ -4083,77 +4097,77 @@ Selected voice engines: - + Motores de voz seleccionados: &Add - + &Añadir &Remove - &Eliminar + &Eliminar Preferences - Preferencias + Preferencias Volume: - + Volumen: Rate: - + Velocidad: Preview - + Previsualización Available voice engines: - + Motores de voz disponibles: Text to be previewed: - + Texto a previsualizar: Type text to be previewed here. - + Introduzca aquí el texto a previsualizar. &Preview - + &Previsualización No TTS voice available - + No hay ninguna voz de síntesis (TTS) disponible Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + No se ha encontrado ninguna voz de síntesis (TTS).<br>Por favor, verifique que hay al menos un motor de síntesis de voz (TTS) instalado en su ordenador. Confirm removal - Confirmar la eliminación + Confirmar la eliminación Remove voice engine <b>%1</b> from the list? - + Eliminar el motor de síntesis de voz <b>%1</b> de la lista? @@ -4161,12 +4175,12 @@ Type a word or phrase to search dictionaries - + Introduzca una palabra o un texto para buscar en los diccionarios Drop-down - + Mostrar coincidencias @@ -4174,22 +4188,22 @@ Enabled - Habilitado + Activado Name - Nombre + Nombre Id - + Id Icon - + Icono @@ -4197,7 +4211,7 @@ Enabled - Habilitado + Activado @@ -4212,7 +4226,7 @@ Icon - + Icono @@ -4228,7 +4242,7 @@ WARNING: %1 - + AVISO: %1 diff -Nru goldendict-1.0.2~git20130620/locale/fr_FR.ts goldendict-1.5.0~ppa131019/locale/fr_FR.ts --- goldendict-1.0.2~git20130620/locale/fr_FR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/fr_FR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,12 +9,12 @@ À propos - + GoldenDict dictionary lookup program, version Logiciel de recherche de dictionnaires GoldenDict, version - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) © 2008-2013 Konstantin Isakov (ikm@goldendict.org) @@ -23,12 +23,12 @@ © 2008-2012 Konstantin Isakov (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Sous licence GPLv3 ou ultérieure - + Credits: Crédits : @@ -38,7 +38,7 @@ [Inconnu] - + Based on Qt %1 (%2, %3 bit) Basé sur Qt %1 (%2, %3 bit) @@ -46,17 +46,17 @@ ArticleMaker - + No translation for <b>%1</b> was found in group <b>%2</b>. Aucune traduction pour <b>%1</b> n'a été trouvée dans le groupe <b>%2</b>. - + No translation was found in group <b>%1</b>. Aucune traduction trouvée dans le groupe <b>%1</b>. - + Welcome! Bienvenue ! @@ -75,7 +75,7 @@ Diminuer l'article - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Bienvenue dans <b>GoldenDict</b> !</h3> <p>Pour commencer à utiliser GoldenDict, visitez d'abord <b>Édition|Dictionnaires</b> pour ajouter des emplacements où trouver les fichiers de dictionnaires, configurer des sites Wikipédia ou d'autres sources, ajuster l'ordre des dictionnaires ou créer des groupes de dictionnaires.<p>Vous êtes paré pour lancer de nouvelles recherches ! Vous pouvez faire cela en utilisant le panneau à gauche de cette fenêtre, ou vous pouvez <a href="Working with popup">chercher les mots à partir d'autres applications actives</a>. @@ -85,32 +85,32 @@ <p>(c) 2008-2013 Konstantin Isakov. Sous licence GPLv3 ou ultérieure. - + Working with popup Utilisation avec pop-up - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Utilisation avec fenêtre de scan</h3>Pour rechercher des mots à partir d'autres applications actives, vous devez d'abord activer la fonctionnalité <i>"Fonction de scan avec fenêtre pop-up"</i> dans les <b>Préférences</b>, et ensuite l'activer à tout moment en cliquant sur l'icône 'Fenêtre de scan', ou par clic droit sur l'icône de la barre des tâches, puis sélection de la fonctionnalité dans le menu déroulant. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Ensuite, positionnez le curseur au-dessus du mot que vous souhaitez rechercher dans l'application, et une fenêtre le décrivant apparaîtra. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Ensuite, sélectionnez avec la souris (ou double-cliquez) le mot que vous souhaitez rechercher dans l'application, et une fenêtre le décrivant apparaîtra. - + (untitled) (sans titre) - + (picture) (image) @@ -118,37 +118,37 @@ ArticleRequest - + Expand article Agrandir l'article - + From De - + Collapse article Diminuer l'article - + Query error: %1 Erreur dans la requête : %1 - + Close words: Mots se rapprochant : - + Compound expressions: Expressions composées : - + Individual words: Mots seuls : @@ -201,47 +201,57 @@ &Tout surligner - + Select Current Article Sélectionner l'article courant - + Copy as text Copier le texte - + Inspect Inspecter - + Resource Ressource - + Audio Audio - + TTS Voice Synthèse vocale TTS - + Picture Image - + + Video + Vidéo + + + + Video: %1 + Vidéo : %1 + + + Definition from dictionary "%1": %2 Définition à partir du dictionnaire "%1" : %2 - + Definition: %1 Définition : %1 @@ -250,38 +260,38 @@ GoldenDict - - + + The referenced resource doesn't exist. La ressource référencée n'existe pas. - + The referenced audio program doesn't exist. Le programme référencé n'existe pas. - + ERROR: %1 ERREUR : %1 - + Save sound Enregistrer le fichier audio - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Fichiers audio (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Save image Enregistrer l'image - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Fichiers image (*.bmp *.jpg *.png *.tif);;Tous les fichiers (*.*) @@ -290,63 +300,63 @@ Erreur lors de l'enregistrement de la ressource : - + &Open Link &Ouvrir un lien - + Open Link in New &Tab Ouvrir un lien dans un nouvel on&glet - + Open Link in &External Browser Ouvrir un lien dans un navigateur &externe - + Save &image... Enregistrer l'&image... - + Save s&ound... Enregistrer le fichier audi&o... - + &Look up "%1" Re&chercher "%1" - + Look up "%1" in &New Tab Rechercher "%1" dans un &nouvel onglet - + Send "%1" to input line Envoyer "%1" dans la zone de saisie - - + + &Add "%1" to history &Ajouter "%1" à l'historique - + Look up "%1" in %2 Rechercher "%1" dans %2 - + Look up "%1" in %2 in &New Tab Rechercher "%1" dans "%2" dans un &nouvel onglet - + WARNING: FFmpeg Audio Player: %1 ATTENTION : lecteur audio FFmpeg : %1 @@ -359,7 +369,7 @@ Pour activer la lecture de fichiers de type autre que WAV, allez dans Édition|Préférences, choisissez l'onglet Audio et sélectionnez "Lire avec DirectShow". - + WARNING: %1 ATTENTION : %1 @@ -372,22 +382,22 @@ La bibliothèque Bass ne peut lire ce son. - + Failed to run a player to play sound file: %1 Échec de lancement d'un lecteur pour lire le fichier audio %1 - + Failed to create temporary file. Échec de création d'un fichier temporaire. - + Failed to auto-open resource file, try opening manually: %1. Échec lors de l'ouverture automatique du fichier de ressources, essayez d'ouvrir manuellement : %1. - + The referenced resource failed to download. La ressource référencée n'a pas pu être téléchargée. @@ -662,37 +672,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Erreur de lecture XML : %1 à la position %2,%3 - + Added %1 Ajouté %1 - + by par - + Male Homme - + Female Femme - + from de - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Allez dans Édition|Dictionnaires|Sources|Forvo puis faites une requête pour obtenir votre clé API afin de faire disparâitre ce message d'erreur. @@ -836,7 +846,7 @@ Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. "&" is not an accelerator here, should be replaced by &amp; in the source file - Glissez-&déposez les dictionnaires à partir de et vers les groupes, déplacez-les à l'intérieur des groupes, réorganisez les groupes en utilisant votre souris. + Glissez-déposez les dictionnaires entre les groupes, déplacez-les à l'intérieur des groupes, réorganisez les groupes en utilisant votre souris. @@ -892,12 +902,12 @@ Historique : - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Taille de l'historique : %1 entrées sur un maximum de %2 @@ -910,7 +920,7 @@ Orthographes suggérées : - + %1 Morphology %1 Morphologie @@ -1971,7 +1981,7 @@ Main - + Error in configuration file. Continue with default settings? Erreur dans le fichier de configuration. Continuer avec les paramètres par défaut ? @@ -1984,7 +1994,7 @@ - + Welcome! Bienvenue ! @@ -2223,7 +2233,7 @@ - + &Show Affi&cher @@ -2311,7 +2321,7 @@ - + Look up in: Chercher dans : @@ -2366,32 +2376,32 @@ Chargement... - + %1 dictionaries, %2 articles, %3 words %1 dictionnaires, %2 articles, %3 mots - + Look up: Chercher : - + All Tout - + Open Tabs List Liste des onglets ouverts - + (untitled) (sans titre) - + %1 - %2 %1 - %2 @@ -2400,73 +2410,73 @@ ATTENTION : %1 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Échec lors de l'initialisation du mécanisme d'écoute des raccourcis.<br>Vérifiez que l'extension ENREGISTREMENT du serveur X est activée. - + New Release Available Nouvelle version disponible - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. La version <b>%1</b> de GoldenDict est disponible au téléchargement.<br>Cliquez sur <b>Télécharger</b> pour accéder à la page de téléchargement. - + Download Téléchargement - + Skip This Release Ignorer la version - - + + Accessibility API is not enabled L'API d'accessibilité n'est pas activée - + You have chosen to hide a menubar. Use %1 to show it back. Vous avez choisi de masquer une barre de menus. Utilisez %1 pour l'afficher à nouveau. - + Ctrl+M Ctrl+M - + Page Setup Paramètres d'impression - + No printer is available. Please install one first. Aucune imprimante n'est disponible. Veuillez en installer une afin de continuer. - + Print Article Imprimer l'article - + Article, Complete (*.html) Article, Complet (*.html) - + Article, HTML Only (*.html) Article, HTML uniquement (*.html) - + Save Article As Enregister l'article sous @@ -2475,27 +2485,27 @@ Fichiers HTML (*.html *.htm) - + Error Erreur - + Can't save article: %1 Impossible d'enregistrer l'article : %1 - + Saving article... Sauvegarde de l'article... - + The main window is set to be always on top. La fenêtre pricipale est configurée pour être toujours au premier plan. - + &Hide &Masquer @@ -2504,28 +2514,28 @@ Mode d'affichage de l'historique - + Export history to file Exporter l'historique dans un fichier - - + + Text files (*.txt);;All files (*.*) Fichiers texte (*.txt);;Tous les fichiers (*.*) - + History export complete Export de l'historique terminé - + Export error: Erreur d'export : - + Import history from file Importer l'historique à partir d'un fichier @@ -2534,32 +2544,32 @@ Importé à partir du fichier : - + Import error: invalid data in file Erreur d'import : données invalides dans le fichier - + History import complete Import d'historique terminé - + Import error: Erreur d'import : - + Dictionary info Informations sur le dictionnaire - + Open dictionary folder Ouvrir le dossier des dictionnaires - + Edit dictionary Éditer le dictionnaire @@ -2567,12 +2577,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted Le fichier de dictionnaire a été modifié ou corrompu - + Failed loading article from %1, reason: %2 Échec du chargement de l'article à partir de %1, cause : %2 @@ -2580,7 +2590,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Erreur de lecture XML : %1 à la position %2,%3 @@ -2588,7 +2598,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Erreur de lecture XML : %1 à la position %2,%3 @@ -3430,12 +3440,12 @@ Jouer via DirectShow - + Changing Language Changement de langue - + Restart the program to apply the language change. Redémarrez le programme pour appliquer le changement de langue. @@ -3517,97 +3527,97 @@ QObject - + Article loading error Erreur de chargement de l'article - + Article decoding error Erreur de décodage de l'article - + avformat_alloc_context() failed. avformat_alloc_context() a échoué. - + av_malloc() failed. av_malloc() a échoué. - + avio_alloc_context() failed. avio_alloc_context() a échoué. - + avformat_open_input() failed: %1. avformat_open_input a échoué : %1. - + avformat_find_stream_info() failed: %1. avformat_find_stream_info() a échoué : %1. - + Could not find audio stream. Impossible de trouver le flux audio. - + Codec [id: %1] not found. Codec [id : %1] non trouvé. - + avcodec_open2() failed: %1. avcodec_open2() a échoué : %1. - + Cannot find usable audio output device. Impossible de trouver un périphérique audio utilisable. - + Unsupported sample format. Format d'échantillon non supporté. - + ao_open_live() failed: ao_open_live() a échoué : - + No driver. Pas de pilote. - + This driver is not a live output device. Ce pilote ne correspond pas à un périphérique de lecture. - + A valid option key has an invalid value. Une clé d'option valide a une valeur incorrecte. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. Impossible d'ouvrir le périphérique : %1, canaux : %2, débit : %3, bits : %4. - + Unknown error. Erreur inconnue. - + avcodec_alloc_frame() failed. avcodec_alloc_frame() a échoué. @@ -3633,19 +3643,19 @@ ResourceToSaveHandler - - + + ERROR: %1 ERREUR : %1 - + Resource saving error: Erreur lors de l'enregistrement de la ressource : - + The referenced resource failed to download. La ressource référencée n'a pas pu être téléchargée. @@ -3888,7 +3898,7 @@ Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. - Prononcoations par<a href="http://www.forvo.com/">forvo.com</a>. Le site permet aux utilisateurs d'enregistrer et partager des prononciations de mots. Vous pouvez les écouter à partir de GoldenDict. + Prononciations par <a href="http://www.forvo.com/">forvo.com</a>. Le site permet aux utilisateurs d'enregistrer et partager des prononciations de mots. Vous pouvez les écouter à partir de GoldenDict. @@ -3940,7 +3950,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + N'importe quel programme externe. Une chaîne %GDWORD% sera remplacée par le mot recherché. Si aucune chaîne n'est détectée, le mot sera soumis sur l'entrée standard. @@ -3980,7 +3990,7 @@ Belarusian transliteration - Translittération biélorusse + Translitération biélorusse @@ -4074,7 +4084,7 @@ (not available in portable version) - (non disponible dans le version portable) + (non disponible dans la version portable) diff -Nru goldendict-1.0.2~git20130620/locale/it_IT.ts goldendict-1.5.0~ppa131019/locale/it_IT.ts --- goldendict-1.0.2~git20130620/locale/it_IT.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/it_IT.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Info - + GoldenDict dictionary lookup program, version GoldenDict, dizionario elettronico, versione - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Riconoscimenti: - + Licensed under GNU GPLv3 or later Licenza GNU GPLv3 o successiva @@ -34,9 +34,9 @@ [Sconosciuto] - + Based on Qt %1 (%2, %3 bit) - + Basato su Qt %1 (%2, %3 bit) @@ -44,60 +44,60 @@ Expand article - + Espandi traduzione Collapse article - + Compatta traduzione - + No translation for <b>%1</b> was found in group <b>%2</b>. Per <b>%1</b> non è stata trovata alcuna traduzione nel gruppo <b>%2</b>. - + No translation was found in group <b>%1</b>. Non è stata trovata alcuna traduzione nel gruppo <b>%1</b>. - + Welcome! Benvenuto! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Benvenuto in <b>GoldenDict</b>!</h3><p>Prima di iniziare ad usare il programma, apri il menu <b><i>Modifica|Dizionari</b></i> in modo da inserire il percorso della cartella che contiene i dizionari, impostare gli indirizzi di Wikipedia e delle altre risorse internet di traduzione, stabilire, raggruppare o modificare l'ordine di visualizzazione dei dizionari.<p><p><b>Personalizzazioni</b><br>Personalizza il programma, regolando le impostazioni di puntamento previste dal menu <b><i>Modifica|Impostazioni</b></i>.<p><b>Uso del programma</b><br>Un modo tradizionale per usare un dizionario consiste nel digitare il termine da ricercare nella casellina di ricerca (in alto a sinistra in questa stessa finestra).<p><b>Scansiona e traduci le parole puntate</b><br>Altra caratteristica fondamentale di 'GoldenDict' è che non serve neppure digitare la parola da cercare nella casellina di ricerca: basta puntarla col mouse in qualunque applicazione essa si trovi. Clicca <a href="Scansione e traduzione delle parole puntate">scansiona e traduci le parole puntate</a> per scoprire come usarla.<p>In alternativa alla traduzione automatica della parola puntata, è sempre e comunque possibile, <u>selezionarne</u> la parola e <u>premendo</u> la combinazione di tasti <b><i>CTRL+C+C</b></i> vederne comparire la traduzione desiderata.<p><p>Se hai bisogno di ulteriore aiuto, hai domande o suggerimenti o per qualsiasi altra richiesta, il tuo intervento nel <a href="http://goldendict.org/forum/">forum</a> del programma è benvenuto. <p>Controlla nel <a href="http://goldendict.org/">sito web</a> se ci sono nuovi aggiornamenti del programma. <p>(c) 2008-2013 Konstantin Isakov. Licenza GPLv3 o superiori. - + Working with popup Scansione e traduzione delle parole puntate - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Scansione e traduzione delle parole puntate</h3>Per tradurre le parole puntate nelle applicazioni attive, è necessario attivarne la funzione nel modo seguente. Dalla finestra principale, apri il menu <b>Modifica|Impostazioni</b>, quindi la scheda <b><i>"Puntamento"</b></i>. <p>In questa finestra spunta la casella "Abilita l'attività di scansione e traduzione delle parole puntate", imposta a piacimento la scansione e traduzione delle parole puntate e conferma il tutto premendo "OK".<p>Indipendentemente dalle opzioni scelte, potrai attivare o disattivare in qualsiasi momento la scansione di ricerca tipica di questa modalità, cliccando il tasto destro del mouse sull'iconcina del programma che appare nella barra di notifica di Windows. Nel menu che compare puoi cliccare l'iconcina <b><i>Scansiona e traduci le parole puntate sì/no</b></i>, sia per attivarla che per disattivarla. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Appoggia il puntatore del mouse sulla parola sconosciuta e comparirà una finestra con la traduzione (o spiegazione) richiesta. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Seleziona una qualsiasi parola sconosciuta, (doppiocliccala o selezionala con il mouse premuto) e comparirà una finestra con la traduzione (o spiegazione) richiesta. - + (untitled) (senza titolo) - + (picture) (immagine) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article - + Espandi traduzione - + From Da - + Collapse article - + Compatta traduzione - + Query error: %1 Errore d'interrogazione: %1 - + Close words: Chiudi parole: - + Compound expressions: Espressioni composte: - + Individual words: Parole individuali: @@ -143,47 +143,47 @@ ArticleView - + Select Current Article - + Seleziona traduzione corrente - + Copy as text - + Copia come testo - + Inspect - + Ispeziona - + Resource Risorsa - + Audio Audio - + TTS Voice - + Voce sintetizzata (TTS) - + Picture Immagine - + Definition from dictionary "%1": %2 Definizione dal dizionario "%1": %2 - + Definition: %1 Definizione: %1 @@ -192,91 +192,101 @@ GoldenDict - - + + The referenced resource doesn't exist. La risorsa di riferimento non esiste. - + The referenced audio program doesn't exist. Il programma audio di riferimento non esiste. - + ERROR: %1 - + Errore: %1 - + Save sound - + Salva suono - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + File sonori (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Tutti i file (*.*) - + Save image - + Salva immagine - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + File d'immagine (*.bmp *.jpg *.png *.tif);;Tutti i file (*.*) - + &Open Link &Apri collegamento - + + Video + Video + + + + Video: %1 + Video: %1 + + + Open Link in New &Tab Apri collegamento in una nuova &scheda - + Open Link in &External Browser Apri collegamento in un programma di &navigazione web esterno - + &Look up "%1" &Cerca «%1» - + Look up "%1" in &New Tab Cerca "%1" in una &nuova scheda - + Send "%1" to input line Invia "%1" alla linea di comando - - + + &Add "%1" to history &Aggiungi "%1" alla cronologia - + Look up "%1" in %2 Cerca "%1" in %2 - + Look up "%1" in %2 in &New Tab Cerca "%1" in %2 in una &nuova scheda - + WARNING: FFmpeg Audio Player: %1 - + ATTENZIONE: Lettore audio FFmpeg: %1 Playing a non-WAV file @@ -295,37 +305,37 @@ La libreria Bass non è in grado di riprodurre questo suono. - + Failed to run a player to play sound file: %1 L'esecuzione del file sonoro è fallita: %1 - + Failed to create temporary file. La creazione del file temporaneo è fallita. - + Failed to auto-open resource file, try opening manually: %1. L'apertura automatica del file di risorsa è fallita. Provare ad aprire il file manualmente: %1. - + The referenced resource failed to download. Lo scaricamento della risorsa di riferimento è fallita. - + Save &image... - + Salva &immagine... - + Save s&ound... - + Salva s&uono... - + WARNING: %1 ATTENZIONE: %1 @@ -380,18 +390,19 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + Traslitterazione del biellorusso da caratteri latini a cirillici (ortografia classica) Belarusian transliteration from latin to cyrillic (school orthography) - + Traslitterazione del biellorusso da caratteri latini a cirillici (ortografia scolastica) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + Traslitterazione del biellorusso (lievemente diversa +tra l'ortografia classica e scolastica in cirillico) @@ -470,7 +481,7 @@ Unassigned - + Non assegnato @@ -519,12 +530,12 @@ Open folder - + Apri cartella Edit dictionary - Modifica dizionario + Modifica dizionario @@ -540,7 +551,8 @@ Edit the dictionary via command: %1 - + Modificia il dizionario via comando: +%1 @@ -565,7 +577,7 @@ Extended menu with all dictionaries... - + Estendi menu con tutti i dizionari... @@ -580,7 +592,7 @@ Open dictionary folder - + Apri cartella dizionario @@ -644,37 +656,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Errore di analisi XML: %1 al %2,%3 - + Added %1 Aggiunto %1 - + by da - + Male Maschile - + Female Femminile - + from da - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Clicca il menu Modifica|Dizionari|Risorse|Forvo e applica la propria chiave API per fare scomparire questo errore. @@ -860,27 +872,27 @@ &Delete Selected - + &Elimina voce selezionata Copy Selected - + Copia voce selezionata History: - + Cronologia: - + %1/%2 - + %1/%2 - + History size: %1 entries out of maximum %2 - + Dimensioni cronologia: %1 voci per un massimo di %2 @@ -891,7 +903,7 @@ Suggerimenti ortografici: - + %1 Morphology Morfologia %1 @@ -1863,7 +1875,7 @@ Lojban - + Lojban @@ -1952,9 +1964,9 @@ Main - + Error in configuration file. Continue with default settings? - + Errore nel file di configurazione. Continuare con le impostazioni preimpostate? @@ -1995,103 +2007,103 @@ Caricamento... - + Skip This Release Tralascia questa versione - + You have chosen to hide a menubar. Use %1 to show it back. Hai scelto di nascondere la barra dei menu. Utilizza %1 per mostrarla nuovamente. - + Ctrl+M Ctrl+M - + Page Setup Imposta pagina - + No printer is available. Please install one first. Non è disponibile alcuna stampante. Per proseguire installarne una. - + Print Article - Stampa voce + Stampa traduzione - + Article, Complete (*.html) - + Traduzione come pagina completa (*.html) - + Article, HTML Only (*.html) - + Traduzione come pagina solo HTML (*.html) - + Save Article As - Salva voce come + Salva traduzione come Html files (*.html *.htm) File HTML (*.html *.htm) - + Error Errore - + Can't save article: %1 - Impossibile salvare la voce: %1 + Impossibile salvare la traduzione: %1 - + Saving article... - + Salvataggio traduzioni... - + The main window is set to be always on top. La finestra principale è impostata per essere mostrata sempre in primo piano. - + %1 dictionaries, %2 articles, %3 words %1 dizionari, %2 voci, %3 parole - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. L'inizializzazione del meccanismo di monitoraggio dei tasti scorciatoia è fallito.<br>Assicurarsi che nel proprio XServer c'è l'estensione RECORD attiva. - + New Release Available E' disponibile una nuova versione - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. E' disponibile la nuova versione <b>%1</b> di GoldenDict.<br> Clicca <b>Scarica</b> per accedere alla pagina di scaricamento. - + Download Scarica - + Look up in: Cerca in: @@ -2179,23 +2191,23 @@ Chiudi ogni scheda eccetto la corrente - + Look up: Cerca: - + All Tutto - - + + Accessibility API is not enabled - + L'accessibilità alle API non è abilitita - + Import history from file Importa cronologia da file @@ -2204,32 +2216,32 @@ Importata dal file: - + Import error: invalid data in file Errore d'importazione: i dati nel file sono invalidi - + History import complete Importazione della cronologia completata - + Import error: Errore d'importazione: - + Dictionary info Info sul dizionario - + Open dictionary folder - + - + Edit dictionary Modifica dizionario @@ -2239,17 +2251,17 @@ Schede aperte - + Open Tabs List Apri l'elenco delle schede - + (untitled) (senza titolo) - + %1 - %2 %1 - %2 @@ -2258,7 +2270,7 @@ ATTENZIONE: %1 - + &Hide &Nascondi @@ -2267,23 +2279,23 @@ Modalità visualizza cronologia - + Export history to file Esporta cronologia come file - - + + Text files (*.txt);;All files (*.*) File di testo (*.txt);;Tutti i file (*.*) - + History export complete Esportazione cronologia completata - + Export error: Errore di esportazione: @@ -2293,7 +2305,7 @@ - + Welcome! Benvenuto! @@ -2325,7 +2337,7 @@ &History Pane - + Pannello della &cronologica &Dictionaries... F3 @@ -2368,7 +2380,7 @@ F3 - F3 + F3 @@ -2428,12 +2440,12 @@ &Save Article - &Salva voce + &Salva traduzione Save Article - Salva la voce corrente + Salva la traduzione corrente @@ -2485,7 +2497,7 @@ Menu Button - + Pulsante menu Print Preview @@ -2522,7 +2534,7 @@ - + &Show &Mostra @@ -2549,20 +2561,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Il file del dizionario risulta alterato o corrotto - + Failed loading article from %1, reason: %2 - + Impossibile caricare la traduzione da %1, per il motivo seguente: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Errore di analisi XML: %1 al %2,%3 @@ -2570,7 +2582,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Errore di analisi XML: %1 al %2,%3 @@ -2891,12 +2903,12 @@ Adjust this value to avoid huge context menus. - + Modificare questo valore in modo da evitare menu contestuali troppo estesi. Context menu dictionaries limit: - + Limite sul numero di dizionari per il menu contestuale: @@ -3064,32 +3076,32 @@ Play audio files via FFmpeg(libav) and libao - + Riproduce l'audio utilizzando le librerie FFmpeg(libav) e libao Use internal player - + Utilizza lettore interno Select this option to automatic collapse big articles - + Spuntando questa casella vengono automaticamente compattate le traduzioni troppo estese Collapse articles more than - + compatta le traduzioni più estese di Articles longer than this size will be collapsed - + Le traduzioni più estese di queste dimensioni verranno compattate symbols - + caratteri Play audio via Bass library. Optimal choice. To use this mode @@ -3173,32 +3185,32 @@ Specify the maximum number of entries to keep in history. - + Specificare il numero massimo di inserimenti da mantenere nella cronologia. Maximum history size: - + Dimensione massima della cronologia: History saving interval. If set to 0 history will be saved only during exit. - + Intervallo di salvattaggio della cronologia. Impostando il valore 0 la cronologia verrà salvata soltanto alla chiusura del programma. Save every - + Salva ogni minutes - + minuti Articles - Voci + Traduzioni @@ -3352,12 +3364,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Alcuni siti web rilevano GoldenDict via intestazione HTTP e ne bloccano le richieste. +Spuntare questa casella per raggirare il problema. Do not identify GoldenDict in HTTP headers - + non consentire che GoldenDict venga identificato nelle intestazioni HTTP @@ -3388,7 +3401,7 @@ Modern - + Moderna @@ -3403,24 +3416,24 @@ Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blue Play via DirectShow Riproduci utilizzando le DirectShow - + Changing Language Modifica della lingua - + Restart the program to apply the language change. La modifica della lingua avrà effetto al riavvio del programma. @@ -3502,99 +3515,99 @@ QObject - + Article loading error - + Errore di caricamento della traduzione - + Article decoding error - + Errore di decodifica del file di traduzione - + avformat_alloc_context() failed. - + avformat_alloc_context() fallito. - + av_malloc() failed. - + av_malloc() fallito. - + avio_alloc_context() failed. - + avio_alloc_context() fallito. - + avformat_open_input() failed: %1. - + avformat_open_input() fallito: %1. - + avformat_find_stream_info() failed: %1. - + avformat_find_stream_info() fallito: %1. - + Could not find audio stream. - + Impossibile rilevare il flusso audio. - + Codec [id: %1] not found. - + Codificatore [id: %1] non trovato. - + avcodec_open2() failed: %1. - + avcodec_open2() fallito: %1. - + Cannot find usable audio output device. - + Impossibile rilevare un dispositivo audio di uscita utilizzabile per file audio. - + Unsupported sample format. - + Formato campione non supportato. - + ao_open_live() failed: - + ao_open_live() fallito: - + No driver. - + Nessun driver. - + This driver is not a live output device. - + Questo driver non è un dispositivo di uscita valido. - + A valid option key has an invalid value. - + Una valida chiave di opzione presenta un valore non valido. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Impossibile aprire il dispositivo: %1, canali: %2, velocità: %3, bit: %4. - + Unknown error. - + Errore sconosciuto. - + avcodec_alloc_frame() failed. - + avcodec_alloc_frame() fallito. @@ -3602,36 +3615,36 @@ Dictionary search/filter (Ctrl+F) - + Cerca/Filtra nel dizionario (Ctrl+F) Quick Search - + Ricerca veloce Clear Search - + Elimina cronologia ResourceToSaveHandler - - + + ERROR: %1 - + Errore: %1 - + Resource saving error: - + Errore di salvataggio risorsa: - + The referenced resource failed to download. - Lo scaricamento della risorsa di riferimento è fallita. + Lo scaricamento della risorsa di riferimento è fallita. @@ -3733,7 +3746,7 @@ %1 - %2 - %1 - %2 + %1 - %2 @@ -3751,7 +3764,7 @@ Icon - Icona + Icona @@ -3759,7 +3772,7 @@ Text to Speech - + Testo a sintesi vocale (Text to Speech) @@ -3908,7 +3921,7 @@ Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. - Pronuncia direttamente da <a href="http://www.forvo.com/">forvo.com</a>. Questo sito permette alle persone di registrare e condividere la pronuncia delle parole ed è possibile ascoltarle direttamente da GoldenDict. + Pronuncia direttamente da <a href="http://www.forvo.com/">forvo.com</a>. Questo sito permette alle persone di registrare e condividere la pronuncia delle parole ed è possibile ascoltarle direttamente da GoldenDict. @@ -3932,7 +3945,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Ottieni <a href="http://api.forvo.com/key/">qui</a> la tua chiave personale oppure lascia il campo vuoto per utilizzare quella preimpostata. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -3956,12 +3969,13 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + In alternativa usare %GD1251% per CP1251, %GDISO1%...%GDISO16% per ISO 8859-1...ISO 8859-16 rispettivamente, +%GDBIG5% per Big-5, %GDBIG5HKSCS% per Big5-HKSCS, %GDGBK% per GBK e GB18030, %GDSHIFTJIS% per Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Per qualsiasi programma esterno. La stringa %GDWORD% va' posta in fondo alla linea di comando ed essa verrà sostituita dalla parola che si desidera tradurre. Se però nella riga di comando non fosse presente alcuna stringa, la parola da tradurre verrebbe passata all'applicazione esterna come un inserimento standard. @@ -4001,7 +4015,7 @@ Belarusian transliteration - + traslitterazione bielorusso @@ -4112,77 +4126,77 @@ Selected voice engines: - + Motori di sintesi vocali selezionati: &Add - + &Aggiungi &Remove - &Elimina + &Elimina Preferences - Impostazioni + Impostazioni Volume: - + Volume: Rate: - + Velocità: Preview - + Anteprima Available voice engines: - + Motori di sintesi disponibili: Text to be previewed: - + Testo di anteprima da pronunciare: Type text to be previewed here. - + Digita qui del testo d'esempio da pronunciare per provare la voce di sintesi TTS. &Preview - + &Anteprima No TTS voice available - + Nessuna voce di sintesi TTS disponibile Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Impossibile rilevare una voce di sintesi TTS disponibile.<br>Assicurarsi che sul proprio computer sia stato già installato almeno un motore di sintesi TTS. Confirm removal - Conferma eliminazione + Conferma eliminazione Remove voice engine <b>%1</b> from the list? - + Eliminare il motore di sintesi vocale <b>%1</b> dall'elenco? @@ -4207,22 +4221,22 @@ Enabled - Abilitato + Abilitato Name - Nome + Nome Id - + Id Icon - Icona + Icona @@ -4261,7 +4275,7 @@ WARNING: %1 - ATTENZIONE: %1 + ATTENZIONE: %1 diff -Nru goldendict-1.0.2~git20130620/locale/ja_JP.ts goldendict-1.5.0~ppa131019/locale/ja_JP.ts --- goldendict-1.0.2~git20130620/locale/ja_JP.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/ja_JP.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ バージョン情報 - + GoldenDict dictionary lookup program, version GoldenDict 辞書検索プログラム version - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: クレジット: - + Licensed under GNU GPLv3 or later GNU GPLv3 以降の下でライセンスされています @@ -34,7 +34,7 @@ [不明] - + Based on Qt %1 (%2, %3 bit) @@ -52,52 +52,52 @@ - + No translation for <b>%1</b> was found in group <b>%2</b>. グループ <b>%2</b> に <b>%1</b> の翻訳が見つかりません。 - + No translation was found in group <b>%1</b>. グループ <b>%1</b> に翻訳が見つかりません。 - + Welcome! ようこそ! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center"><b>GoldenDict</b> へようこそ!</h3><p>このプログラムでの作業を開始するには、まず <b>[編集|辞書]</b> を開いて辞書ファイルを検索するディレクトリのパスを追加したり、さまざまな Wikipedia のサイトやその他のソースを設定したり、辞書の順序を調整したり辞書グループを作成したりします。<p>次にはもう単語を検索する準備ができています! このウィンドウの左のペインを使用するか、<a href="Working with popup">他のアクティブなアプリケーションから単語を検索します</a>。<p>プログラムをカスタマイズするには、<b>[編集|環境設定]</b> で利用可能なオプションをチェックしてください。そこにある設定にはすべてツールチップがあります、何か疑問に思った場合はそれらを読むようにしてください。<p>さらなるヘルプを必要とする場合、質問、提案やその他気になることがある場合は、プログラムの<a href="http://goldendict.org/forum/">フォーラム</a>で歓迎されます。<p>更新はプログラムの<a href="http://goldendict.org/">Web サイト</a>をチェックしてください。<p>(c) 2008-2013 Konstantin Isakov. GPLv3 以降の下でライセンスされています。 - + Working with popup ポップアップ作業 - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">ポップアップ作業</h3>他のアクティブなアプリケーションから単語を検索するには、まず <b>[環境設定]</b> で <i>"スキャン ポップアップ機能"</i> を有効にする必要があり、次からは上の 'ポップアップ アイコンを切り替えるか、または右マウス ボタンで下のトレイ アイコンをクリックしてポップしているメニューで選択することによっていつでも有効にできます。 - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. 次に他のアプリケーションで検索したい単語の上でカーソルを止めると、説明のウィンドウがポップアップします。 - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. 次に他のアプリケーションで検索したい単語をマウスで選択 (ダブルクリックまたは長押し) すると、単語を説明するウィンドウがポップアップします。 - + (untitled) (無題) - + (picture) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article - + From From - + Collapse article - + Query error: %1 クエリ エラー: %1 - + Close words: 類似語: - + Compound expressions: 複合表現: - + Individual words: 単語ごと: @@ -143,47 +143,47 @@ ArticleView - + Select Current Article - + Copy as text - + Inspect - + Resource - + Audio - + TTS Voice - + Picture - + Definition from dictionary "%1": %2 - + Definition: %1 @@ -192,89 +192,99 @@ GoldenDict - - + + The referenced resource doesn't exist. 参照されたりソースが存在しません。 - + The referenced audio program doesn't exist. - + ERROR: %1 - + Save sound - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Save image - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + &Open Link リンクを開く(&O) - + + Video + + + + + Video: %1 + + + + Open Link in New &Tab 新しいタブでリンクを開く(&T) - + Open Link in &External Browser 外部ブラウザーでリンクを開く(&E) - + &Look up "%1" "%1" を検索(&L) - + Look up "%1" in &New Tab 新しいタブで "%1" を検索(&N) - + Send "%1" to input line - - + + &Add "%1" to history - + Look up "%1" in %2 %2 から "%1" を検索 - + Look up "%1" in %2 in &New Tab 新しいタブで %2 から "%1" を検索(&N) - + WARNING: FFmpeg Audio Player: %1 @@ -287,37 +297,37 @@ WAV 以外のファイルの再生を有効にするには、[オーディオ] タブの "DirectShow を通じて再生する" を選択します。 - + Failed to run a player to play sound file: %1 サウンド ファイルを再生するプレーヤーの実行に失敗しました: %1 - + Failed to create temporary file. 一時ファイルの作成に失敗しました。 - + Failed to auto-open resource file, try opening manually: %1. リソース ファイルの自動オープンに失敗しました、手動で開いています: %1。 - + The referenced resource failed to download. 参照されたリソースのダウンロードに失敗しました。 - + Save &image... - + Save s&ound... - + WARNING: %1 警告: %1 @@ -636,37 +646,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XML 分析エラー: %1 at %2,%3 - + Added %1 %1 を追加しました - + by - + Male 男性 - + Female 女性 - + from - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. このエラーを解消するには [編集|辞書|ソース|Forvo] で私たちの API キーを適用してください。 @@ -865,12 +875,12 @@ - + %1/%2 - + History size: %1 entries out of maximum %2 @@ -883,7 +893,7 @@ もしかして: - + %1 Morphology %1 形態 @@ -1944,7 +1954,7 @@ Main - + Error in configuration file. Continue with default settings? @@ -1987,47 +1997,47 @@ 読み込んでいます... - + Skip This Release このリリースをスキップ - + You have chosen to hide a menubar. Use %1 to show it back. - + Ctrl+M - + Page Setup ページ設定 - + No printer is available. Please install one first. 利用可能なプリンターがありません。まずインストールしてください。 - + Print Article 記事の印刷 - + Article, Complete (*.html) - + Article, HTML Only (*.html) - + Save Article As 名前を付けて記事を保存 @@ -2036,43 +2046,43 @@ HTML ファイル (*.html *.htm) - + Error エラー - + Can't save article: %1 記事を保存できません: %1 - + %1 dictionaries, %2 articles, %3 words %1 個の辞書、%2 個の記事、 %3 個の単語 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. ホットキー監視機構の初期化に失敗しました。<br>XServer の RECORD 拡張がオンになっていることを確認してください。 - + New Release Available 新しいリリースが利用可能です - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. GoldenDict のバージョン <b>%1</b> のダウンロードが利用可能です。<br>ダウンロード ページへ移動するには<b>ダウンロード</b>をクリックします。 - + Download ダウンロード - + Look up in: 検索する場所: @@ -2156,63 +2166,63 @@ 現在以外のすべてのタブを閉じる - + Look up: 検索: - + All すべて - - + + Accessibility API is not enabled - + Saving article... - + The main window is set to be always on top. - + Import history from file - + Import error: invalid data in file - + History import complete - + Import error: - + Dictionary info - + Open dictionary folder - + Edit dictionary @@ -2222,17 +2232,17 @@ 開いているタブ - + Open Tabs List - + (untitled) (無題) - + %1 - %2 @@ -2241,28 +2251,28 @@ 警告: %1 - + &Hide - + Export history to file - - + + Text files (*.txt);;All files (*.*) - + History export complete - + Export error: @@ -2272,7 +2282,7 @@ - + Welcome! ようこそ! @@ -2497,7 +2507,7 @@ - + &Show @@ -2524,12 +2534,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Failed loading article from %1, reason: %2 @@ -2537,7 +2547,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XML 分析エラー: %1 at %2,%3 @@ -2545,7 +2555,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XML 分析エラー: %1 at %2,%3 @@ -3370,12 +3380,12 @@ DirectShow を通じて再生する - + Changing Language 言語の変更 - + Restart the program to apply the language change. 言語の変更を適用するにはプログラムを再起動します。 @@ -3457,97 +3467,97 @@ QObject - + Article loading error - + Article decoding error - + avformat_alloc_context() failed. - + av_malloc() failed. - + avio_alloc_context() failed. - + avformat_open_input() failed: %1. - + avformat_find_stream_info() failed: %1. - + Could not find audio stream. - + Codec [id: %1] not found. - + avcodec_open2() failed: %1. - + Cannot find usable audio output device. - + Unsupported sample format. - + ao_open_live() failed: - + No driver. - + This driver is not a live output device. - + A valid option key has an invalid value. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Unknown error. - + avcodec_alloc_frame() failed. @@ -3573,18 +3583,18 @@ ResourceToSaveHandler - - + + ERROR: %1 - + Resource saving error: - + The referenced resource failed to download. 参照されたリソースのダウンロードに失敗しました。 diff -Nru goldendict-1.0.2~git20130620/locale/ko_KR.ts goldendict-1.5.0~ppa131019/locale/ko_KR.ts --- goldendict-1.0.2~git20130620/locale/ko_KR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/ko_KR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ 정보 - + GoldenDict dictionary lookup program, version 골든딕 사전검색 프로그램,버전 - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: 개발진: - + Licensed under GNU GPLv3 or later Licensed under GNU GPLv3 or later @@ -34,9 +34,9 @@ [모름] - + Based on Qt %1 (%2, %3 bit) - + Based on Qt %1 (%2, %3 bit) @@ -44,60 +44,60 @@ Expand article - + 사전 펼치기 Collapse article - + 사전 감추기 - + No translation for <b>%1</b> was found in group <b>%2</b>. <b>%2</b>그룹에서 <b>%1</b>에 대한 번역을 찾을 수 없습니다. - + No translation was found in group <b>%1</b>. <b>%1</b>그룹에서 번역을 찾을 수 없습니다. - + Welcome! 환영합니다! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center"><b>GoldenDict</b>사용을 환영합니다!</h3><p>프로그램 사용을 위해서 먼저 <b>편집|사전</b> 에서 사용할 사전의 경로, Wikipedia와 다른 온라인 검색사이트 등록를 등록하고 사전의 표시순서와 그룹을 지정하십시오. <p>그러면 사용을 위한 준비가 끝났습니다! 지금 창의 왼쪽에서 검색어를 입력하거나 실행중인 <a href="팝업창 사용">다른 프로그램에서 단어검색</a>을 할 수 있습니다. <p>프로그램을 자신에 맞게 설정하려면 <b>편집|설정</b>메뉴를 사용하십시오. 모든 설정항목은 말풍선 도움말이 있으니 기능을 잘 모르는 경우 꼭 확인하시기 바랍니다. <p>더 많은 도움이 필요하거나 질문, 제안사항이 있는 경우 또는 다른 사용자들의 생각이 궁금하면 프로그램의 <a href="http://goldendict.org/forum/">포럼</a>을 방문하십시오.<p>프로그램 업데이트는 <a href="http://goldendict.org/">웹사이트</a>를 방문하십시오.<p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - + Working with popup 팝업창 사용 - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">팝업창 사용</h3><p style="text-indent:1em">실행중인 프로그램에서 단어를 검색하려면 먼저 <b>설정</b>에서 <b>스캔팝업기능</b>을 활성화해야 합니다. 다음 아무때나 위의 팝업아이콘을 누르거나 혹은 작업표시줄의 아이콘을 우클릭한 뒤 선택하면 활성화할 수 있습니다. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. 이제 실행중인 다른 프로그램에서 검색할 단어 위에 커서를 옮기면 팝업창으로 사전이 나타납니다. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. 이제 다른 프로그램에서 검색할 단어를 선택하면(더블클릭 또는 마우스로 선택) 팝업창으로 사전이 나타납니다. - + (untitled) (제목없음) - + (picture) (그림) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article - + 사전 펼치기 - + From From - + Collapse article - + 사전 감추기 - + Query error: %1 검색오류: %1 - + Close words: 인접 어휘: - + Compound expressions: 복합 어구: - + Individual words: 개별 어휘: @@ -143,83 +143,93 @@ ArticleView - + Select Current Article 현재 항목 선택 - + Copy as text - + 텍스트로 복사 - + Inspect - + 요소검사 - + Resource 리소스 - + Audio 오디오 - + TTS Voice - + TTS 음성 - + Picture 그림 - + + Video + 비디오 + + + + Video: %1 + 비디오: %1 + + + Definition from dictionary "%1": %2 사전의 정의 "%1": %2 - + Definition: %1 정의: %1 - - + + The referenced resource doesn't exist. 참조할 리소스가 존재하지 않습니다. - + The referenced audio program doesn't exist. 참조할 오디오 프로그램이 존재하지 않습니다. - + ERROR: %1 오류: %1 - + Save sound 사운드 저장 - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) 사운드 파일 (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;모든 파일 (*.*) - + Save image 이미지 저장 - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) 이미지 파일 (*.bmp *.jpg *.png *.tif);;모든 파일 (*.*) @@ -228,55 +238,55 @@ 리소스 저장 오류: - + &Open Link 링크 열기(&O) - + Open Link in New &Tab 새 탭에서 링크 열기(&T) - + Open Link in &External Browser 외부 브라우저에서 링크 열기(&E) - + &Look up "%1" "%1" 검색(&L) - + Look up "%1" in &New Tab 새 탭에서 "%1" 검색(&N) - + Send "%1" to input line "%1"을 입력줄로 보냄 - - + + &Add "%1" to history 검색기록에 "%1" 추가(&A) - + Look up "%1" in %2 %2에서 "%1" 검색 - + Look up "%1" in %2 in &New Tab 새 탭을 열고 %2에서 "%1" 검색(&N) - + WARNING: FFmpeg Audio Player: %1 - + 경고: FFmpeg 오디오 플레이어: %1 Playing a non-WAV file @@ -295,37 +305,37 @@ Bass library가 이 사운드를 재생할 수 없습니다. - + Failed to run a player to play sound file: %1 사운드를 재생할 플레이어를 실행할 수 없습니다: %1 - + Failed to create temporary file. 임시파일을 만들 수 없습니다. - + Failed to auto-open resource file, try opening manually: %1. 리소스파일을 여는데 실패했습니다. 수동으로 열어 보십시오: %1. - + The referenced resource failed to download. 참조할 리소스를 다운로드하지 못했습니다. - + Save &image... 이미지 저장(&i)... - + Save s&ound... 사운드 저장(&o)... - + WARNING: %1 경고: %1 @@ -520,12 +530,12 @@ Open folder - + 폴더 열기 Edit dictionary - + 사전 편집 @@ -541,7 +551,8 @@ Edit the dictionary via command: %1 - + 명령행으로 사전 편집: +%1 @@ -562,12 +573,12 @@ Extended menu with all dictionaries... - + 모든 사전 메뉴 확장... Edit this group - 이 그룹을 편집합니다 + 그룹 편집 @@ -577,7 +588,7 @@ Open dictionary folder - + 사전 폴더 열기 @@ -641,37 +652,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XML 문법오류: %2행 %3열에서 %1 - + Added %1 %1 추가됨 - + by - by + by - + Male - + Female - + from - from + from - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. 이 오류를 없애기 위해서는 편집|사전|소스|Forvo 메뉴로 가서, 자신의 API-key를 신청하십시오. @@ -728,7 +739,7 @@ Rename group - 그룹 이름 바꾸기 + 그룹 이름 변경 @@ -849,7 +860,7 @@ Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. - 사전을 마우스로 끌어 그룹으로 지정/삭제, 그룹내에서 순서 변경을 할 수 있습니다(&D). + 사전을 마우스로 끌어 그룹으로 지정/삭제, 그룹내 순서 변경을 할 수 있습니다(&D). @@ -870,12 +881,12 @@ 검색기록: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 총 검색기록: 최대 %2 중 %1 @@ -888,7 +899,7 @@ 철자법 제안: - + %1 Morphology %1 철자법사전 @@ -898,7 +909,7 @@ Enabled - 사용 + 활성 @@ -1949,9 +1960,9 @@ Main - + Error in configuration file. Continue with default settings? - + 설정파일 오류. 기본설정으로 계속하시겠습니까? @@ -1988,37 +1999,37 @@ 불러오는 중... - + Skip This Release 이 버전을 무시합니다 - + You have chosen to hide a menubar. Use %1 to show it back. 메뉴 모음 숨기기를 선택하셨습니다. 다시 보이게 하려면 %1을 사용하십시오. - + Ctrl+M Ctrl+M - + Page Setup 페이지 설정 - + No printer is available. Please install one first. 프린터가 없습니다. 먼저 프린터를 설치하십시오. - + Print Article 항목 인쇄 - + Save Article As 다른 이름으로 항목 저장 @@ -2027,43 +2038,43 @@ Html 파일(*.html *.htm) - + Error 오류 - + Can't save article: %1 항목을 저장할 수 없습니다: %1 - + %1 dictionaries, %2 articles, %3 words 사전수: %1,항목수: %2,어휘수: %3 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. 단축키 감시메커니즘을 시작할 수없습니다..<br>XServer에서 RECORD extension이 활성화 되어 있는지 확인하십시오. - + New Release Available 새 버전이 있습니다 - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. 골든딕 <b>%1</b>버전을 다운로드할 수 있습니다.<br><b>다운로드</b>를 누르면 다운로드 페이지로 연결됩니다. - + Download 다운로드 - + Look up in: 검색그룹: @@ -2143,58 +2154,58 @@ 다른 탭 닫기 - + Look up: 검색: - + All All - - + + Accessibility API is not enabled - + Accessibility API가 활성화 되지 않았습니다 - + The main window is set to be always on top. 메인창이 항상 위에 보이도록 설정합니다. - + Import history from file 검색기록을 파일에서 불러옵니다 - + Import error: invalid data in file 불러오기 오류: 파일의 데이타가 유효하지 않습니다 - + History import complete 검색기록 불러오기를 완료했습니다 - + Import error: 불러오기 오류: - + Dictionary info 사전 정보 - + Open dictionary folder - + 사전 폴더 열기 - + Edit dictionary Редактировать словарь @@ -2204,64 +2215,64 @@ 열린 탭 - + Open Tabs List 탭 목록을 엽니다 - + (untitled) (제목없음) - + %1 - %2 %1 - %2 - + Article, Complete (*.html) - + 항목, 전부 (*.html) - + Article, HTML Only (*.html) - + 항목, HTML 만 (*.html) - + Saving article... - + 항목 저장... - + &Hide 숨기기(&H) - + Export history to file 검색기록을 파일로 저장합니다 - - + + Text files (*.txt);;All files (*.*) 텍스트파일(*.txt);;모든 파일(*.*) - + History export complete 검색기록 저장을 완료했습니다 - + Export error: 저장 오류: - + Welcome! 환영합니다! @@ -2474,7 +2485,7 @@ - + &Show 보이기(&S) @@ -2497,20 +2508,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + 사전파일이 훼손되었습니다 - + Failed loading article from %1, reason: %2 - + %1에서 항목을 표시하지 못함, 이유: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XML 문법오류: %2행 %3열에서 %1 @@ -2518,7 +2529,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XML 문법오류: %2행 %3열에서 %1 @@ -2528,7 +2539,7 @@ Enabled - 사용 + 활성 @@ -2632,12 +2643,12 @@ Path - 경로 + 경로 Recursive - 재귀 검색 + 하위 폴더 검색 @@ -2840,12 +2851,12 @@ Adjust this value to avoid huge context menus. - + 컨텍스트메뉴가 너무 커지지 않게 이 값을 조정합니다. Context menu dictionaries limit: - + 컨텍스트메뉴 사전 한도: @@ -3010,32 +3021,32 @@ Play audio files via FFmpeg(libav) and libao - + 오디오 파일 재생시 FFmpeg(libav)와 libao 사용 Use internal player - + 내장 플레이어 사용 Select this option to automatic collapse big articles - + 이 옵션을 선택하면 표시내용이 많은 항목을 자동으로 접히게 하여 숨깁니다 Collapse articles more than - + 자동으로 숨길 항목의 크기: Articles longer than this size will be collapsed - + 항목의 크기가 이 값을 초과 하면 내용을 접어 표시합니다 symbols - + 자 이상 Play audio via Bass library. Optimal choice. To use this mode @@ -3124,7 +3135,7 @@ Maximum history size: - 최대 검색기록 수: + 검색기록 최대크기: @@ -3134,7 +3145,7 @@ Save every - 저장 간격은 + 저장 간격: @@ -3149,12 +3160,12 @@ Turn this option on to always expand optional parts of articles - 이 항목을 선택하면 선택적 표시항목을 항상 확장하여 보여줍니다 + 이 항목을 선택하면 사전의 옵션항목을 항상 확장하여 보여줍니다 Expand optional &parts - 선택적 표시항목 확장(&P) + 옵셕항목 확장(&P) @@ -3298,12 +3309,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + 일부 사이트는 HTTP 헤더를 통해서 GoldenDict을 탐지하여 요청을 블록합니다. +이런 문제를 우회하려면 옵션을 선택하십시오. Do not identify GoldenDict in HTTP headers - + HTTP 헤더에 GoldenDict을 표시하지 않음 @@ -3334,7 +3346,7 @@ Modern - + Modern @@ -3349,24 +3361,24 @@ Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blue Play via DirectShow DirectShow를 통해 재생 - + Changing Language 언어 변경 - + Restart the program to apply the language change. 언어변경을 적용하려면 프로그램을 다시 시작하십시오. @@ -3422,7 +3434,7 @@ Enabled - 사용 + 활성 @@ -3448,99 +3460,99 @@ QObject - + Article loading error - + 사전항목 로딩 오류 - + Article decoding error - + 사전항목 디코딩 오류 - + avformat_alloc_context() failed. - + avformat_alloc_context() failed. - + av_malloc() failed. - + av_malloc() failed. - + avio_alloc_context() failed. - + avio_alloc_context() failed. - + avformat_open_input() failed: %1. - + avformat_open_input() failed: %1. - + avformat_find_stream_info() failed: %1. - + avformat_find_stream_info() failed: %1. - + Could not find audio stream. - + 오디오 스트림을 찾을 수 없습니다. - + Codec [id: %1] not found. - + [id: %1] 코덱을 찾을 수 없습니다. - + avcodec_open2() failed: %1. - + avcodec_open2() failed: %1. - + Cannot find usable audio output device. - + 사용할 수 있는 오디오 장치를 찾을 수 없습니다. - + Unsupported sample format. - + 지원되지 않는 샘플 포멧 - + ao_open_live() failed: - + ao_open_live() failed: - + No driver. - + 드라이버 없음. - + This driver is not a live output device. - + 이 드라이버는 라이브 출력장치가 아닙니다. - + A valid option key has an invalid value. - + 유효한 옵션키가 유효하지 않은 값을 가지고 있습니다. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + 장치를 열수 없습니다: %1, 채널: %2, 샘플레이트: %3, 비트: %4. - + Unknown error. - + 알 수 없는 오류. - + avcodec_alloc_frame() failed. - + avcodec_alloc_frame() failed. @@ -3564,20 +3576,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - 오류: %1 + 오류: %1 - + Resource saving error: - 리소스 저장 오류: + 리소스 저장 오류: - + The referenced resource failed to download. - 참조할 리소스를 다운로드하지 못했습니다. + 참조할 리소스를 다운로드하지 못했습니다. @@ -3689,7 +3701,7 @@ Text to Speech - + 음성 합성 @@ -3780,7 +3792,7 @@ Path to a directory with Hunspell/Myspell dictionaries: - Hunspell/Myspell사전 경로 지정: + 사전 경로: @@ -3800,14 +3812,13 @@ spelling suggestions for mistyped words. Add appropriate dictionaries to the bottoms of the appropriate groups to use them. - 각 철자법사전은 별도의 -분리된 보조사전 역할을 하며 -검색을 위한 어간과 오타에 -대해서 수정된 철자를 -제안합니다. -철자교정기능을 사용하기 위해 -각 그룹의 하단에 적절한 -사전을 추가하십시오. + 각 철자법사전은 별도의 분리된 +보조사전 역할을 하며 검색을 위 +한 어간과 오타에 대해서 수정된 +철자를 제안합니다. +철자교정기능을 이용하기 위해서 +각 사전그룹에 해당하는 사전을 +추가하십시오. @@ -3817,7 +3828,7 @@ Any websites. A string %GDWORD% will be replaced with the query word: - 웹사이트. 문자열 %GDWORD%는 검색어로 대체됩니다.: + 검색어가 위치할 자리에 문자열 %GDWORD%를 입력합니다: Alternatively, use %GD1251% for CP1251, %GDISO1% for ISO 8859-1. @@ -3840,7 +3851,9 @@ Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. - <a href="http://www.forvo.com/">forvo.com</a>에서 라이브 음성 듣기. 이 사이트에서는 누구나 자기 목소리로 세계 각 언어의 단어들을 녹음하고 공유할 수 있는 기능을 제공하고 있으며. 그것들을 골든딕에서 연결하여 들을 수 있습니다. + <a href="http://www.forvo.com/">forvo.com</a>에서 라이브 음성 듣기. 이 사이트에서는 누구나 자기 목소리로 세계 각 언어의 단어들을 녹음하고 공유할 수 있는 기능을 제공하고 +있으며. 그것들을 골든딕에서 연결하여 들을 수 있습니다. + @@ -3865,7 +3878,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + 별도의 개인키를 <a href="http://api.forvo.com/key/">여기</a>서 얻거나, 비워두고 기본키를 사용하십시오. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -3889,12 +3902,14 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + ≪언어코드형식에 따라 개별지정하는 방법≫ +CP1251 → %GD1251%, ISO 8859-1 → %GDISO1%, ISO 8859-16 → %GDISO16%, Big-5 → %GDBIG5, Big5-HKSCS → %GDBIG5HKSCS%, +GBK와 GB18030 → %GDGBK%, Shift-JIS → %GDSHIFTJIS% Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + 외부 프로그램. 문자열 %GDWORD%는 검색어로 대체됩니다. 그런 문자열이 제시되지 않으면 단어는 표준 입력으로 전달됩니다. @@ -4028,7 +4043,7 @@ Wikipedia (MediaWiki) sites: - 위키백과(MediaWik) 사이트: + 위키백과(MediaWiki) 사이트: @@ -4044,77 +4059,77 @@ Selected voice engines: - + 선택된 음성엔진: &Add - + 추가(&A) &Remove - 제거(&R) + 제거(&R) Preferences - 설정 + 설정 Volume: - + Volume: Rate: - + Rate: Preview - + 미리듣기 Available voice engines: - + 설치된 음성엔진: Text to be previewed: - + 미리듣기 할 텍스트: Type text to be previewed here. - + 여기에 미리듣기 할 텍스트를 언어에 맞게 입력하십시오. &Preview - + 미리듣기(&P) No TTS voice available - + 설치된 TTS 음성이 없습니다 Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + 설치된 TTS 음성을 찾을 수 없습니다.<br>컴퓨터에 적어도 하나의 TTS 엔진이 설치되어 있는지 확인하십시오. Confirm removal - 삭제 확인 + 삭제 확인 Remove voice engine <b>%1</b> from the list? - + 목록에서 <b>%1</b> 음성엔진을 삭제할까요? @@ -4135,22 +4150,22 @@ Enabled - 사용 + 활성 Name - 이름 + 이름 Id - + ID Icon - 아이콘 + 아이콘 @@ -4158,7 +4173,7 @@ Enabled - 사용 + 활성 diff -Nru goldendict-1.0.2~git20130620/locale/lt_LT.ts goldendict-1.5.0~ppa131019/locale/lt_LT.ts --- goldendict-1.0.2~git20130620/locale/lt_LT.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/lt_LT.ts 2013-10-18 14:32:58.000000000 +0000 @@ -16,12 +16,12 @@ Apie - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) © 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Padėkos: @@ -30,7 +30,7 @@ GoldenDict paieškos žodyne programa, 0.7 versija - + GoldenDict dictionary lookup program, version GoldenDict paieškos žodyne programa, versija @@ -39,7 +39,7 @@ #.# - + Licensed under GNU GPLv3 or later Licencija: GNU GPLv3 arba vėlesnė @@ -49,7 +49,7 @@ [Nežinoma] - + Based on Qt %1 (%2, %3 bit) Naudoja Qt %1 (%2, %3 bitų) @@ -67,52 +67,52 @@ Suskleisti - + No translation for <b>%1</b> was found in group <b>%2</b>. <b>%1</b> vertimas nerastas grupėje <b>%2</b>. - + No translation was found in group <b>%1</b>. Gupėje <b>%1</b> vertimų nerasta. - + Welcome! Jus sveikina GoldenDict! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Jus sveikina <b>GoldenDict</b>!</h3><p>Dirbti žodynu pradėkite spausdami <b>Taisa > Žodynai</b> – nurodysite kelius, kur ieškoti žodynų failų, nurodysite įvairias Vikipedijos svetaines ar kitus šaltinius, pasirinksite žodynų tvarką arba kursite žodynų grupes.<p>Po to jau galėsite ieškoti žodžių! Versti žodžius galite tiek GoldenDict programos pagrindiniame lange, tiek <a href="Iškylantys langai">kitose veikiančiose programose</a>. <p>Programą galite derinti per meniu <b>Taisa > Nuostatos</b>. Visos nuostatos turi paaiškinimus - jie pravers, jei abejosite, ar nežinosite.<p>Jei reikia daugiau pagalbos, turite klausimų, pasiūlymų ar tiesiog norite sužinoti kitų nuomonę, apsilankykite programos <a href="http://goldendict.org/forum/">diskusijų puslapyje</a>.<p>Programos atnaujinimų ieškokite <a href="http://goldendict.org/">GoldenDict svetainėje</a>. <p>(c) 2008-2013 Konstantin Isakov. GPLv3 arba vėlesnė licencija. - + Working with popup Iškylantys langai - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Iškylantys langai</h3>Norėdami žodžių ieškoti kitose veikiančiose programose, pirmiausia turite <b>Nuostatose</b> įgalinti <i>„iškylančius langus“</i>, o po to bet kada spragtelėti „iškylančių langų“ ženkliuką viršuje arba spustelėti sistemos dėklo ženkliuką dešiniu pelės klavišu ir pasirinkti atitinkamą meniu įrašą. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Tuomet kokioje nors programoje užveskite žymeklį ties norimu ieškoti žodžiu – netrukus pasirodys iškylantis langas su pasirinkto žodžio apibūdinimu. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Tuomet kokioje nors programoje tiesiog pele pažymėkite bet kokį norimą žodį (dukart jį spragtelėkite arba braukite jį nuspaudę pelės klavišą) – netrukus pasirodys iškylantis langas su pasirinkto žodžio apibūdinimu. - + (untitled) (bevardis) - + (picture) (paveikslėlis) @@ -120,37 +120,37 @@ ArticleRequest - + Expand article Išplėsti - + From - + Collapse article Suskleisti - + Query error: %1 Užklausos klaida: %1 - + Close words: Panašūs žodžiai: - + Compound expressions: Žodžių junginiai: - + Individual words: Pavieniai žodžiai: @@ -158,47 +158,47 @@ ArticleView - + Select Current Article Dabartinio straipsnio pasirinkimas - + Copy as text Kopijuoti kaip tekstą - + Inspect Tyrinėti - + Resource Šaltinis - + Audio Garsas - + TTS Voice TTS balsas - + Picture Paveikslėlis - + Definition from dictionary "%1": %2 „%1“ žodyne esantis apibrėžimas: %2 - + Definition: %1 Apibrėžimas: %1 @@ -207,89 +207,99 @@ GoldenDict - - + + The referenced resource doesn't exist. Nurodyto šaltinio nėra. - + The referenced audio program doesn't exist. Nėra nurodytos garso programos. - + ERROR: %1 Klaida: %1 - + Save sound Įrašyti garsą - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Garsai (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Visos rinkmenos (*.*) - + Save image Įrašyti paveikslą - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Paveikslai (*.bmp *.jpg *.png *.tif);;Visi failai (*.*) - + &Open Link &Atverti nuorodą - + + Video + Vaizdo klipas + + + + Video: %1 + Vaizdo klipas: %1 + + + Open Link in New &Tab Atverti nuorodą naujoje &kortelėje - + Open Link in &External Browser Atv&erti nuorodą naršyklėje - + &Look up "%1" &Ieškoti „%1“ - + Look up "%1" in &New Tab Ieškoti „%1“ &naujoje kortelėje - + Send "%1" to input line „%1“ siųsti į įvedimo eilutę - - + + &Add "%1" to history žodį „%1“ į&traukti į žurnalą - + Look up "%1" in %2 Ieškoti „%1“ grupėje %2 - + Look up "%1" in %2 in &New Tab Ieškoti „%1“ grupėje %2 &naujoje kortelėje - + WARNING: FFmpeg Audio Player: %1 Įspėjimas: FFmpeg garso grutuvė: %1 @@ -310,37 +320,37 @@ „Bass“ biblioteka negali groti šio garso. - + Failed to run a player to play sound file: %1 Nepavyko paleisti grotuvo garso failui atkurti: %1 - + Failed to create temporary file. Nepavyko sukurti laikinojo failo. - + Failed to auto-open resource file, try opening manually: %1. Nepavyko automatiškai atverti šaltinio failo, mėginkite rankiniu būdu: %1. - + The referenced resource failed to download. Nepavyko parsiųsti nurodytų šaltinių. - + Save &image... Įrašti pa&veikslą... - + Save s&ound... Įrašyti g&arsą... - + WARNING: %1 ĮSPĖJIMAS: %1 @@ -534,12 +544,12 @@ Open folder - + Atverti aplanką Edit dictionary - Keisti žodyną + Keisti žodyną @@ -555,7 +565,8 @@ Edit the dictionary via command: %1 - + Žodyną keisti naudojant komandą: +%1 @@ -580,7 +591,7 @@ Extended menu with all dictionaries... - + Išplėstinis meniu su visais žodynais... @@ -595,7 +606,7 @@ Open dictionary folder - + Atverti žodyno aplanką @@ -659,37 +670,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XML analizavimo klaida: %1 ties %2,%3 - + Added %1 Pridėjo %1 - + by pagal - + Male vyras - + Female moteris - + from - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Jei nenorite matyti šios klaidos, eikite į meniu Taisa > Žodynai > Ištekliai > Forvo ir nurodykite nuosavą API raktą. @@ -888,12 +899,12 @@ Žurnalas: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Žurnalo dydis įrašais: %1 iš %2 galimų @@ -906,7 +917,7 @@ Rašybos spėjimas: - + %1 Morphology %1 (morfologija) @@ -1878,7 +1889,7 @@ Lojban - + Lojban @@ -1967,7 +1978,7 @@ Main - + Error in configuration file. Continue with default settings? Klaida konfgūracijoje. Tęsti naudojant numatytąsias nuostatas? @@ -2010,47 +2021,47 @@ Įkeliama... - + Skip This Release Praleisti šią versiją - + You have chosen to hide a menubar. Use %1 to show it back. Jūs paslepiate meniu juostą. Norėdami ją vėl matyti, spauskite %1. - + Ctrl+M Vald+M - + Page Setup Puslapio parinktys - + No printer is available. Please install one first. Nera jokio spausdintuvo. Įdiekite kokį nors. - + Print Article Spausdinti straipsnį - + Article, Complete (*.html) - + Visas straipsnis (*.html) - + Article, HTML Only (*.html) - + Straipsnis, tik HTML (*.html) - + Save Article As Įrašyti straipsnį kaip @@ -2059,44 +2070,44 @@ Html rikmenos (*.html *.htm) - + Error Klaida - + Can't save article: %1 Nepavyksta įrašyti straipsnio: %1 - + %1 dictionaries, %2 articles, %3 words Žodynų: %1, straipsnių: %2, žodžių: %3 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Nepavyko paruošti sparčiųjų klavišų stebėjimo mechanizmo<br>Įsitikinkite, kad XServer turi įjungtą RECORD plėtinį. - + New Release Available Yra nauja versija - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Galite parsisųstiGoldenDict <b>%1</b> versiją.<br> Norėdami atverti parsisiuntimo puslapį, spauskite <b>Parsisiųsti</b>. - + Download Parsisiųsti - + Look up in: Ieškoti grupėje: @@ -2184,33 +2195,33 @@ Užverti visas korteles, iškyrus veikiamąją - + Look up: Ieškoti: - + All Visi - - + + Accessibility API is not enabled - + API prieinamumui nėra įgalinta - + Saving article... Įrašomas straipsnis... - + The main window is set to be always on top. Pagrindinis langas visada rodomas virš kitų programų langų. - + Import history from file Įkelti žurnalą iš failo @@ -2219,32 +2230,32 @@ Įkelti iš failo: - + Import error: invalid data in file Klaida įkeliant: failo duomenys netinkami - + History import complete Įkėlimas į žurnalą baigtas - + Import error: Klaida įkeliant: - + Dictionary info Informacija apie žodyną - + Open dictionary folder - + Atverti žodyno aplanką - + Edit dictionary Keisti žodyną @@ -2254,17 +2265,17 @@ Atvertos kortelės - + Open Tabs List Atverti kortelių sąrašą - + (untitled) (nepavadinta) - + %1 - %2 %1 - %2 @@ -2273,7 +2284,7 @@ Įspėjimas: %1 - + &Hide &Slėpti @@ -2282,23 +2293,23 @@ Žurnalo rodymas - + Export history to file Žurnalą įrašyti į failą - - + + Text files (*.txt);;All files (*.*) Tekstiniai failai (*.txt);;Visi failai (*.*) - + History export complete Žurnalas įrašytas - + Export error: Eksporto klaida: @@ -2308,7 +2319,7 @@ - + Welcome! Jus sveikina GoldenDict! @@ -2541,7 +2552,7 @@ - + &Show Ro&dyti @@ -2568,20 +2579,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Žodyno failas sugadintas - + Failed loading article from %1, reason: %2 - + Nepavyko įkelti straipsnio iš %1 dėl to, kad %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XML nagrinėjimo klaida: %1 ties %2,%3 @@ -2589,7 +2600,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XML nagrinėjimo klaida: %1 ties %2,%3 @@ -2866,12 +2877,12 @@ Adjust this value to avoid huge context menus. - + Šią reikšmę keiskite tam, kad išvengtumėte didelių kontekstinių meniu. Context menu dictionaries limit: - + Žodynų kiekio riba kontekstiniame meniu: @@ -3097,7 +3108,7 @@ Articles longer than this size will be collapsed - + Suskleisti straipsnis, kurių dydis viršija Artiles longer than this size will be collapsed @@ -3152,12 +3163,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Kai kurios svetainės aptinka GoldenDict pagal HTTP antraštę ir dėl to blokuoja užklausas. +Ši parinktis leidžia apeiti problemą. Do not identify GoldenDict in HTTP headers - + HTTP antraštėse neidentifikuoti GoldenDict @@ -3440,7 +3452,7 @@ Modern - + Šiuolaikinis @@ -3455,24 +3467,24 @@ Lingoes - + Lingoes Lingoes-Blue - + Lingoes mėlynas Play via DirectShow Groti per DirectShow - + Changing Language Kalbos keitimas - + Restart the program to apply the language change. Naująją kalbą programa naudos po to, kai ją atversite iš naujo. @@ -3554,99 +3566,99 @@ QObject - + Article loading error Straipsnio įkėlimo klaida - + Article decoding error Straipsnio dekodavimo klaida - + avformat_alloc_context() failed. - avformat_alloc_context() klaida + avformat_alloc_context() klaida. - + av_malloc() failed. - av_malloc() klaida + av_malloc() klaida. - + avio_alloc_context() failed. - avio_alloc_context() klaida + avio_alloc_context() klaida. - + avformat_open_input() failed: %1. - avformat_open_input() + avformat_open_input() klaida: %1. - + avformat_find_stream_info() failed: %1. - avformat_find_stream_info() klaida + avformat_find_stream_info() klaida: %1. - + Could not find audio stream. - Nepavyksta rasti garso srauto + Nepavyksta rasti garso srauto. - + Codec [id: %1] not found. - Kodeko [id: %1] neradome + Kodeko [id: %1] neradome. - + avcodec_open2() failed: %1. - avcodec_open2() klaida + avcodec_open2() klaida: %1. - + Cannot find usable audio output device. - Nepavyksta rasti garso išvedimo įrenginio + Nepavyksta rasti garso išvedimo įrenginio. - + Unsupported sample format. - Nepalaikomas formatas + Nepalaikomas formatas. - + ao_open_live() failed: - ao_open_live() klaida + ao_open_live() klaida: - + No driver. Nėra tvarkyklės. - + This driver is not a live output device. - + Ši tvarkyklė nėra „live“ išvedimo įrenginys. - + A valid option key has an invalid value. - + Parinkties raktas tinkamas, bet netinkama jo reikšmė. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Nepavyksta atverti įrenginio: %1, kanalų: %2, dažnio: %3, bitų: %4. - + Unknown error. - Nežinoma klaida + Nežinoma klaida. - + avcodec_alloc_frame() failed. - avcodec_alloc_frame() klaida + avcodec_alloc_frame() klaida. @@ -3670,18 +3682,18 @@ ResourceToSaveHandler - - + + ERROR: %1 Klaida: %1 - + Resource saving error: Šaltinių įrašymo klaida: - + The referenced resource failed to download. Nepavyko parsiųsti nurodytų šaltinių. @@ -3811,7 +3823,7 @@ Text to Speech - + Balso sintezavimas @@ -3983,7 +3995,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Savo asmeninį raktą gausite <a href="http://api.forvo.com/key/">čia</a>. Norėdami naudoti numatytąjį, palikite laukelį tuščią. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -4007,12 +4019,13 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + Arba naudokite %GD1251% – CP1251, %GDISO1%...%GDISO16% – ISO 8859-1...ISO 8859-16 atitinkamai koduotei, +%GDBIG5% – Big-5, %GDBIG5HKSCS% – Big5-HKSCS, %GDGBK% – GBK ir GB18030, %GDSHIFTJIS% – Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Bet kokia išoriinė programa. „%GDWORD%“ eilutė (be kabučių) bus pakeista į užklausos žodį. Jei šios eilutės nebus, žodis bus perduotas į standartinį įvedimą. @@ -4208,7 +4221,7 @@ Type text to be previewed here. - + Parašykite tekstą, kurį norėsite išmėginti. @@ -4223,7 +4236,7 @@ Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Nepavyksta rasti TTS balsų.<br>Įsitikinkite, kad savo kompiuteryje įdiegėte kokį nors TTS variklį. @@ -4233,7 +4246,7 @@ Remove voice engine <b>%1</b> from the list? - + Iš meniu sąrašo pašalinti balso variklį <b>%1</b>? diff -Nru goldendict-1.0.2~git20130620/locale/nl_NL.ts goldendict-1.5.0~ppa131019/locale/nl_NL.ts --- goldendict-1.0.2~git20130620/locale/nl_NL.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/nl_NL.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Over - + GoldenDict dictionary lookup program, version GoldenDict woordenboek zoekprogramma, versie - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Dankbetuigingen: - + Licensed under GNU GPLv3 or later Gebruiksrecht verleend onder GNU GPLv3 of nieuwer @@ -34,9 +34,9 @@ [Onbekend] - + Based on Qt %1 (%2, %3 bit) - + Gebaseerd op Qt %1 (%2, %3 bit) @@ -44,30 +44,30 @@ Expand article - + Artikel uitvouwen Collapse article - + Artikel samenvouwen - + No translation for <b>%1</b> was found in group <b>%2</b>. Geen vertaling voor <b>%2</b> gevonden in de groep <b>%1</b>. - + No translation was found in group <b>%1</b>. Geen vertaling gevonden in de groep <b>%1</b>. - + Welcome! Welkom! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Welkom bij <b>GoldenDict</b>!</h3><p>Om met het programma te kunnen werken kiest u eerst <b>Bewerken > Woordenboeken</b>. U kunt vervolgens enkele mappen toevoegen waarin naar woordenboekbestanden wordt gezocht, Wikipedia sites of andere bronnen opgeven, of de woordenboekvolgorde aanpassen en woordenboekgroepen aanmaken.</p> <p>Hierna bent u klaar om woorden op te zoeken met behulp van het deelvenster aan de linkerkant. Bovendien kunt u <a href="Met popups werken">woorden opzoeken vanuit andere programma's</a>. </p> @@ -75,32 +75,32 @@ <p>Hebt u meer hulp nodig, wilt u iets vragen, hebt u suggesties of bent u benieuwd naar de mening van andere gebruikers, bezoek dan het <a href="http://goldendict.org/forum/">forum</a>. Programma updates kunt u vinden op de <a href="http://goldendict.org/">website</a>.<p>(c) 2008-2013 Konstantin Isakov. Gebruiksrecht verleend onder GPLv3 of nieuwer. - + Working with popup Met popups werken - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Met popups werken</h3>Om woorden op te zoeken vanuit andere actieve programma's moet u eerst de <i>'Scan Popup modus'</i> inschakelen onder <b>Instellingen</b>. Daarna kunt u deze functionaliteit op elk moment activeren door middel van het popup pictogram in de werkbalk hierboven of door rechts te klikken op het systeemvakpictogram en in het menu de betreffende optie te kiezen. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Als u vervolgens in een ander programma met de muisaanwijzer stopt boven een woord dat u wilt opzoeken, dan verschijnt er een venster met een beschrijving van het betreffende woord. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Daarna kunt elk woord dat u wilt opzoeken in een ander programma met de muis selecteren (dubbelklikken of slepend selecteren), waarna een venster verschijnt met de beschrijving van het betreffende woord. - + (untitled) (naamloos) - + (picture) (afbeelding) @@ -108,37 +108,37 @@ ArticleRequest - + Expand article - + Artikel uitvouwen - + From Uit - + Collapse article - + Artikel samenvouwen - + Query error: %1 Fout in zoekopdracht: %1 - + Close words: Soortgelijke woorden: - + Compound expressions: Samengestelde treffers: - + Individual words: Individuele woorden: @@ -146,47 +146,57 @@ ArticleView - + Select Current Article Huidig artikel selecteren - + Copy as text Kopiëren als tekst - + Inspect - + Inspecteren - + Resource Bron - + Audio Geluid - + TTS Voice TTS Stem - + Picture Afbeelding - + + Video + Video + + + + Video: %1 + Video: %1 + + + Definition from dictionary "%1": %2 Definitie uit woordenboek "%1": %2 - + Definition: %1 Definitie: %1 @@ -195,38 +205,38 @@ GoldenDict - - + + The referenced resource doesn't exist. De bron waarnaar wordt verwezen bestaat niet. - + The referenced audio program doesn't exist. Dit programma voor afspelen van geluiden bestaat niet. - + ERROR: %1 FOUT: %1 - + Save sound Geluid opslaan - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Geluidsbestanden (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Alle bestanden (*.*) - + Save image Afbeelding opslaan - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Afbeeldingsbestanden (*.bmp *.jpg *.png *.tif);;Alle bestanden (*.*) @@ -235,53 +245,53 @@ Fout bij opslaan bron: - + &Open Link Koppeling &openen - + Open Link in New &Tab Koppeling openen in nieuw&tabblad - + Open Link in &External Browser Koppeling openen in &externe browser - + &Look up "%1" &Zoeken naar "%1" - + Look up "%1" in &New Tab Zoeken naar "%1" in een &nieuw tabblad - + Send "%1" to input line Verzend "%1" naar zoekveld - - + + &Add "%1" to history Voeg "%1" &toe aan geschiedenis - + Look up "%1" in %2 Zoeken naar "%1" in %2 - + Look up "%1" in %2 in &New Tab Zoeken naar "%1" in %2 in een &nieuw tabblad - + WARNING: FFmpeg Audio Player: %1 WAARSCHUWING:FFmpeg audiospeler: %1 @@ -302,37 +312,37 @@ Bass bibliotheek kan dit geluid niet afspelen. - + Failed to run a player to play sound file: %1 Kan geen mediaspeler starten om het geluidsbestand af te spelen: %1 - + Failed to create temporary file. Tijdelijk bestand kan niet worden aangemaakt. - + Failed to auto-open resource file, try opening manually: %1. Kan bronbestand niet automatisch openen, probeer het handmatig te openen: %1. - + The referenced resource failed to download. Kan de bron waarnaar wordt verwezen niet downloaden. - + Save &image... &Afbeelding opslaan... - + Save s&ound... &Geluid opslaan... - + WARNING: %1 WAARSCHUWING: %1 @@ -527,12 +537,12 @@ Open folder - + Map openen Edit dictionary - Woordenboek bewerken + Woordenboek bewerken @@ -548,7 +558,8 @@ Edit the dictionary via command: %1 - + Woordenboek bewerken via opdracht: +%1 @@ -573,7 +584,7 @@ Extended menu with all dictionaries... - + Menu uitbreiden met alle woordenboeken... @@ -588,7 +599,7 @@ Open dictionary folder - + Woordenboekmap openen @@ -652,37 +663,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XML-parseerfout: %1 op %2,%3 - + Added %1 Toegevoegd %1 - + by door - + Male Man - + Female Vrouw - + from uit - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Om deze fout te herstellen kiest u Bewerken > Woordenboeken > Forvo en geeft u de standaard API-sleutel op. @@ -881,12 +892,12 @@ Geschiedenis: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Geschiedenisgrootte: %1 items uit maximum van %2 @@ -899,7 +910,7 @@ Spellingsuggesties: - + %1 Morphology Morfologie %1 @@ -1960,7 +1971,7 @@ Main - + Error in configuration file. Continue with default settings? Fout in configuratiebestand. Doorgaan met standaardinstellingen? @@ -1978,7 +1989,7 @@ - + Look up in: Opzoeken in: @@ -2062,89 +2073,89 @@ Alle andere tabbladen sluiten - - + + Accessibility API is not enabled Toegankelijkheid API is niet ingeschakeld - + Article, Complete (*.html) - + Artikel, compleet (*.html) - + Article, HTML Only (*.html) - + Artikel, alleen HTML (*.html) - + Saving article... - + Artikel opslaan... - + The main window is set to be always on top. Het hoofdvenster wordt nu altijd op de voorgrond weergegeven. - + &Hide &Verbergen - + Export history to file Geschiedenis opslaan als bestand - - + + Text files (*.txt);;All files (*.*) Tekst bestanden (*.txt);;Alle bestanden (*.*) - + History export complete Geschiedenis exporteren voltooid - + Export error: Fout bij exporteren: - + Import history from file Geschiedenis importeren uit bestand - + Import error: invalid data in file Fout bij importeren: bestand bevat onjuiste gegevens - + History import complete Geschiedenis importeren voltooid - + Import error: Fout bij importeren: - + Dictionary info Woordenboekinformatie - + Open dictionary folder - + Woordenboekmap openen - + Edit dictionary Woordenboek bewerken @@ -2161,22 +2172,22 @@ - + Welcome! Welkom! - + %1 dictionaries, %2 articles, %3 words %1 Woordenboeken, %2 Artikelen, %3 Woorden - + Look up: Opzoeken: - + All Alle groepen @@ -2201,17 +2212,17 @@ &Navigatiewerkbalk - + Open Tabs List Tabbladlijst openen - + (untitled) (naamloos) - + %1 - %2 %1 - %2 @@ -2224,57 +2235,57 @@ GoldenDict - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Bewakingsmechanisme voor sneltoetsen kan niet worden geïnitialiseerd.<br>Zorg ervoor dat de RECORD-extensie van uw XServer is ingeschakeld. - + New Release Available Nieuwe versie beschikbaar - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Versie <b>%1</b> van GoldenDict kan nu gedownload worden.<br>Klik op <b>downloaden</b> om naar de downloadpagina te gaan. - + Download Downloaden - + Skip This Release Deze versie overslaan - + You have chosen to hide a menubar. Use %1 to show it back. U hebt ervoor gekozen om de menubalk te verbergen. Druk op %1 om deze weer zichtbaar te maken. - + Ctrl+M Ctrl+M - + Page Setup Pagina-instelling - + No printer is available. Please install one first. Geen printer beschikbaar. U moet er eerst één installeren. - + Print Article Artikel afdrukken - + Save Article As Artikel opslaan als @@ -2283,12 +2294,12 @@ Html bestanden (*.html *.htm) - + Error Fout - + Can't save article: %1 Kan artikel niet opslaan: %1 @@ -2517,7 +2528,7 @@ - + &Show &Weergeven @@ -2540,20 +2551,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Woordenboekbestand is gemanipuleerd of beschadigd - + Failed loading article from %1, reason: %2 - + Kan artikel niet laden van %1, reden: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XML parseerfout: %1 op %2,%3 @@ -2561,7 +2572,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XML parseerfout: %1 op %2,%3 @@ -2725,12 +2736,12 @@ Afspelen met DirectShow - + Changing Language Toepassingstaal wijzigen - + Restart the program to apply the language change. Start het programma opnieuw om de toepassingstaal te wijzigen. @@ -2907,12 +2918,12 @@ Adjust this value to avoid huge context menus. - + Pas deze waarde aan om zeer lange contextmenu's te voorkomen. Context menu dictionaries limit: - + Woordenboeken in contextmenu beperken tot: @@ -3066,22 +3077,22 @@ Select this option to automatic collapse big articles - + Selecteer deze optie om lange artikelen automatisch samen te vouwen Collapse articles more than - + Artikelen samenvouwen met meer dan Articles longer than this size will be collapsed - + Langere artikelen automatisch samenvouwen symbols - + tekens Use Windows native playback API. Limited to .wav files only, @@ -3492,97 +3503,97 @@ QObject - + Article loading error Fout bij laden artikel - + Article decoding error Fout bij decoderen artikel - + avformat_alloc_context() failed. avformat_alloc_context() mislukt. - + av_malloc() failed. av_malloc() mislukt. - + avio_alloc_context() failed. avio_alloc_context() mislukt. - + avformat_open_input() failed: %1. avformat_open_input() mislukt: %1. - + avformat_find_stream_info() failed: %1. avformat_find_stream_info() mislukt: %1. - + Could not find audio stream. Kan audiogegevensstroom niet vinden. - + Codec [id: %1] not found. Codec [id: %1] niet gevonden. - + avcodec_open2() failed: %1. avcodec_open2() mislukt: %1. - + Cannot find usable audio output device. Kan geen geschikt apparaat voor geluidsuitvoer vinden. - + Unsupported sample format. Niet ondersteunde voorbeeldindeling. - + ao_open_live() failed: ao_open_live() mislukt: - + No driver. Geen stuurprogramma. - + This driver is not a live output device. Dit stuurprogramma is geen live uitvoerapparaat. - + A valid option key has an invalid value. Een geldige optiesleutel heeft een ongeldige waarde. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. Kan apparaat niet openen: %1, kanalen: %2, snelheid: %3, bits: %4. - + Unknown error. Onbekende fout. - + avcodec_alloc_frame() failed. avcodec_alloc_frame() mislukt. @@ -3608,20 +3619,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - FOUT: %1 + FOUT: %1 - + Resource saving error: - Fout bij opslaan bron: + Fout bij opslaan bron: - + The referenced resource failed to download. - Kan de bron waarnaar wordt verwezen niet downloaden. + Kan de bron waarnaar wordt verwezen niet downloaden. @@ -3964,7 +3975,8 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Alle externe programma's. De tekenreeks %GDWORD% wordt automatisch vervangen door het zoekwoord. +Als de tekenreeks niet aanwezig is, dan wordt het zoekwoord als standaardinvoer doorgegeven. diff -Nru goldendict-1.0.2~git20130620/locale/pl_PL.ts goldendict-1.5.0~ppa131019/locale/pl_PL.ts --- goldendict-1.0.2~git20130620/locale/pl_PL.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/pl_PL.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,23 +9,23 @@ Informacje - + GoldenDict dictionary lookup program, version - GoldenDict - program do przeszukiwania słowników, wersja + GoldenDict — program do przeszukiwania słowników, wersja - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Podziękowania: - + Licensed under GNU GPLv3 or later Licencja GNU GPLv3 lub nowsza @@ -35,9 +35,9 @@ [Nieznane] - + Based on Qt %1 (%2, %3 bit) - + Oparte na bibliotece Qt %1 (%2, %3-bitowa) @@ -45,60 +45,60 @@ Expand article - + Rozwiń artykuł Collapse article - + Zwiń artykuł - + No translation for <b>%1</b> was found in group <b>%2</b>. Nie znaleziono tłumaczenia słowa <b>%1</b> w grupie <b>%2</b>. - + No translation was found in group <b>%1</b>. Nie znaleziono tłumaczenia w grupie <b>%1</b>. - + Welcome! Witamy! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Witamy w programie <b>GoldenDict</b>!</h3><p>Aby rozpocząć pracę z programem, wybierz opcję <b>Edycja|Słowniki</b> i dodaj ścieżki, w których wyszukiwane będą pliki słowników, skonfiguruj serwisy Wikipedii lub inne źródła, dostosuj słowniki oraz utwórz ich grupy.</p>Po wykonaniu tych czynności program będzie gotowy do wyszukiwania słów! Można to robić w tym oknie za pomocą panelu znajdującego się po lewej stronie lub <a href="Praca z okienkiem wyskakującym">podczas pracy z innymi aplikacjami</a>.</p><p>W celu dostosowania programu wybierz opcję <b>Edycja|Preferencje</b> i sprawdź dostępne preferencje. Do wszystkich preferencji wyświetlane są podpowiedzi. W razie wątpliwości należy je dokładnie przeczytać.</p><p>Jeśli potrzebujesz dodatkowej pomocy, masz pytania lub sugestie albo po prostu chcesz wiedzieć, co myślą inni, skorzystaj z naszego <a href="http://goldendict.org/forum/">forum</a>. <p>Aktualizacje programu są dostępne <a href="http://goldendict.org/">w naszej witrynie sieci Web</a>.<p>(c) 2008-2013 Konstantin Isakov. Licencja GPLv3 lub nowsza. - + Working with popup Praca z okienkiem wyskakującym - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Praca z okienkiem wyskakującym</h3>Aby móc wyszukiwać słowa z innych działających aplikacji, aktywuj najpierw funkcję <i>„skanowania automatycznego”</i> w opcji <b>Preferencje</b> i w dowolnym momencie włącz ją, przełączając znajdującą się powyżej ikonę skanowania automatycznego lub klikając prawym przyciskiem myszy ikonę na pasku zadań i wybierając odpowiednią opcję z wyświetlonego menu. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Następnie zatrzymaj kursor w innej aplikacji nad słowem, które chcesz wyszukać. Spowoduje to wyświetlenie okienka wyskakującego zawierającego wyjaśnienie tego słowa. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Następnie zaznacz w innej aplikacji dowolne słowo za pomocą myszy (kliknij je dwukrotnie lub zaznacz wskaźnikiem myszy przy wciśniętym lewym przycisku). Spowoduje to wyświetlenie okienka wyskakującego zawierającego wyjaśnienie tego słowa. - + (untitled) (bez tytułu) - + (picture) (obraz) @@ -106,37 +106,37 @@ ArticleRequest - + Expand article - + Rozwiń artykuł - + From Źródło: - + Collapse article - + Zwiń artykuł - + Query error: %1 Błąd zapytania: %1 - + Close words: Podobne słowa: - + Compound expressions: Wyrażenia złożone: - + Individual words: Pojedyncze słowa: @@ -144,47 +144,57 @@ ArticleView - + Select Current Article Wybierz aktualny artykuł - + Copy as text - + Kopiuj jako tekst - + Inspect - + Zbadaj - + Resource Zasób - + Audio Dźwięk - + TTS Voice - + Głos TTS - + Picture Obraz - + + Video + Wideo + + + + Video: %1 + Wideo: %1 + + + Definition from dictionary "%1": %2 Definicja ze słownika „%1”: %2 - + Definition: %1 Definicja: %1 @@ -193,95 +203,95 @@ GoldenDict - - + + The referenced resource doesn't exist. Wskazywany zasób nie istnieje. - + The referenced audio program doesn't exist. Wskazywany program obsługi audio nie istnieje. - + ERROR: %1 - BŁAD: %1 + BŁĄD: %1 - + Save sound Zapisz dźwięk - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Pliki dźwiękowe (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Wszystkie pliki (*.*) - + Save image Zapisz obraz - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Pliki obrazów (*.bmp *.jpg *.png *.tif);;Wszystkie pliki (*.*) Resource saving error: - Bład zapisu zasobu: + Błąd zapisu zasobu: - + &Open Link &Otwórz łącze - + Open Link in New &Tab O&twórz łącze w nowej karcie - + Open Link in &External Browser Otwórz łącze w z&ewnętrznej przeglądarce - + &Look up "%1" &Wyszukaj „%1” - + Look up "%1" in &New Tab Wyszukaj „%1” w &nowej karcie - + Send "%1" to input line Wyślij „%1” do wiersza wejściowego - - + + &Add "%1" to history Dod&aj „%1” do historii - + Look up "%1" in %2 Wyszukaj „%1” w grupie %2 - + Look up "%1" in %2 in &New Tab Wyszukaj „%1” w grupie %2 w &nowej karcie - + WARNING: FFmpeg Audio Player: %1 - + OSTRZEŻENIE: Odtwarzacz audio FFmpeg: %1 Playing a non-WAV file @@ -300,37 +310,37 @@ Biblioteka BASS nie może odtworzyć tego dźwięku. - + Failed to run a player to play sound file: %1 Nie powiodło się uruchomienie odtwarzacza w celu odtworzenia pliku dźwiękowego: %1 - + Failed to create temporary file. Nie powiodło się utworzenie pliku tymczasowego. - + Failed to auto-open resource file, try opening manually: %1. Nie powiodło się automatyczne otwarcie pliku zasobu. Spróbuj otworzyć ręcznie: %1. - + The referenced resource failed to download. Nie powiodło się pobranie wskazywanego zasobu. - + Save &image... Zap&isz obraz... - + Save s&ound... Zapisz &dźwięk... - + WARNING: %1 OSTRZEŻENIE: %1 @@ -525,12 +535,12 @@ Open folder - + Otwórz folder Edit dictionary - Edytuj słownik + Edytuj słownik @@ -546,7 +556,8 @@ Edit the dictionary via command: %1 - + Edytuj słownik za pomocą komendy: +%1 @@ -571,7 +582,7 @@ Extended menu with all dictionaries... - + Rozszerzone menu ze wszystkimi słownikami @@ -586,7 +597,7 @@ Open dictionary folder - + Otwórz folder słownika @@ -621,7 +632,7 @@ Some sources were changed. Would you like to accept the changes? - Niektóre źródła uległy zmianie.Czy zaakceptować zmiany? + Niektóre źródła uległy zmianie. Czy zaakceptować zmiany? @@ -650,37 +661,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Błąd podczas analizy pliku XML: %1 w %2,%3 - + Added %1 Dodano %1 - + by przez - + Male Mężczyzna - + Female Kobieta - + from z - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Wybierz opcję Edycja|Słowniki|Forvo i postaraj się o nasz klucz API, aby wyeliminować wyświetlanie tego błędu. @@ -879,12 +890,12 @@ Historia: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Wielkość historii: %1 wpisów z maksymalnej liczby %2 @@ -897,7 +908,7 @@ Propozycje: - + %1 Morphology %1 - morfologia @@ -1958,9 +1969,9 @@ Main - + Error in configuration file. Continue with default settings? - + Błąd w pliku konfiguracyjnym. Czy kontynuować z ustawieniami domyślnymi? @@ -1980,7 +1991,7 @@ - + Look up in: Wyszukaj w: @@ -2051,7 +2062,7 @@ Close current tab - Zamknj bieżącą kartę + Zamknij bieżącą kartę @@ -2064,89 +2075,89 @@ Zamknij wszystkie karty z wyjątkiem bieżącej - - + + Accessibility API is not enabled Nie włączono funkcji API dostępności - + Article, Complete (*.html) - + Artykuł, pełny (*.html) - + Article, HTML Only (*.html) - + Artykuł, tylko HTML (*.html) - + Saving article... - + Zapisywanie artykułu... - + The main window is set to be always on top. Okno główne będzie zawsze na wierzchu. - + &Hide &Ukryj - + Export history to file - Eksporowanie historii do pliku + Eksportowanie historii do pliku - - + + Text files (*.txt);;All files (*.*) Pliki tekstowe (*.txt);;Wszystkie pliki (*.*) - + History export complete Eksport historii został zakończony - + Export error: Błąd eksportu: - + Import history from file Importowanie historii z pliku - + Import error: invalid data in file Błąd importu: nieprawidłowe dane w pliku - + History import complete Import historii został zakończony - + Import error: >Błąd importu: - + Dictionary info Informacje o słowniku - + Open dictionary folder - + Otwórz folder słownika - + Edit dictionary Edytuj słownik @@ -2163,22 +2174,22 @@ - + Welcome! Witamy! - + %1 dictionaries, %2 articles, %3 words Słowniki: %1, artykuły: %2, słowa: %3 - + Look up: Wyszukaj: - + All Wszystko @@ -2203,17 +2214,17 @@ &Nawigacja - + Open Tabs List Lista otwartych kart - + (untitled) (bez tytułu) - + %1 - %2 %1 - %2 @@ -2226,57 +2237,57 @@ GoldenDict - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Nie powiodło się zainicjowanie mechanizmu monitorowania klawiszy skrótu.<br>Upewnij się, że włączono rozszerzenie RECORD serwera XServer. - + New Release Available Dostępna jest nowa wersja - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Wersja <b>%1</b> programu GoldenDict jest dostępna do pobrania.<br>Kliknij przycisk <b>Pobierz</b>, aby przejść do strony pobierania. - + Download Pobierz - + Skip This Release Pomiń tę wersję - + You have chosen to hide a menubar. Use %1 to show it back. Wybrano opcję ukrycia paska menu. Użyj %1, aby ponownie wyświetlić. - + Ctrl+M Ctrl+M - + Page Setup Ustawienia strony - + No printer is available. Please install one first. Drukarka jest niedostępna. Trzeba ją najpierw zainstalować. - + Print Article Drukuj artykuł - + Save Article As Zapisz artykuł jako @@ -2285,12 +2296,12 @@ Pliki html (*.html *.htm) - + Error Błąd - + Can't save article: %1 Nie można zapisać artykułu: %1 @@ -2527,7 +2538,7 @@ - + &Show &Pokaż @@ -2550,20 +2561,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Plik słownika został zmodyfikowany lub uszkodzony - + Failed loading article from %1, reason: %2 - + Nie można załadować artykułu ze źródła %1, przyczyna: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Błąd podczas analizy pliku XML: %1 w %2,%3 @@ -2571,7 +2582,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Błąd podczas analizy pliku XML: %1 w %2,%3 @@ -2728,19 +2739,19 @@ Lingoes-Blue - Lingoes-niebieski + Lingoes niebieski Play via DirectShow Odtwarzaj w DirectShow - + Changing Language Zmiana języka - + Restart the program to apply the language change. Uruchom ponownie program, aby zastosować zmianę języka. @@ -2892,7 +2903,7 @@ Normally, pressing ESC key moves focus to the translation line. With this on however, it will hide the main window. Zwykle naciśnięcie klawisza ESC aktywuje wiersz tłumaczenia. -Zaznaczenie tej opcji powoduje, że ukrywane jest okno głowne. +Zaznaczenie tej opcji powoduje, że ukrywane jest okno główne. @@ -2917,12 +2928,12 @@ Adjust this value to avoid huge context menus. - + Dostosuj tę wartość, aby uniknąć zbyt dużych menu kontekstowych. Context menu dictionaries limit: - + Limit słowników w menu kontekstowym: @@ -3076,22 +3087,22 @@ Select this option to automatic collapse big articles - + Zaznacz tę opcję, aby automatycznie zwijać duże artykuły Collapse articles more than - + Zwijaj artykuły większe niż Articles longer than this size will be collapsed - + Artykuły o długości przekraczającej tę wartość będą zwijane symbols - + symboli Use Windows native playback API. Limited to .wav files only, @@ -3124,12 +3135,12 @@ Use any external program to play audio files - Użyj zewnętrznego programu do odtwarzania plików dźwiękowych + Używaj zewnętrznego programu do odtwarzania plików dźwiękowych Use external program: - Użyj programu zewnętrznego: + Używaj programu zewnętrznego: @@ -3213,7 +3224,7 @@ History saving interval. If set to 0 history will be saved only during exit. - Interwał zapisywania hostorii. Wartość zero oznacza, że historia jest zapisywana tylko przy wychodzeniu z programu. + Interwał zapisywania historii. Wartość zero oznacza, że historia jest zapisywana tylko przy wychodzeniu z programu. @@ -3233,7 +3244,7 @@ Turn this option on to always expand optional parts of articles - Włącz tę opcję, aby zawsze rowijać opcjonalne części artykułów + Włącz tę opcję, aby zawsze rozwijać opcjonalne części artykułów @@ -3266,12 +3277,12 @@ Use the following hotkey to show or hide the main window: - Użyj tego klawisza skrótu do wyświetlenia lub ukrycia okna głównego: + Używaj tego klawisza skrótu do wyświetlenia lub ukrycia okna głównego: Use the following hotkey to translate a word from clipboard: - Użyj tego klawisza skrótu do przetłumaczenia słowa znajdującego się w schowku: + Używaj tego klawisza skrótu do przetłumaczenia słowa znajdującego się w schowku: @@ -3289,7 +3300,7 @@ <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Uwaga: prawdopodobnie w tym systemie działa wersja serwera XServer X.Org z uszkodzonym rozszerzenem RECORD. Klawisze skrótu w programie GoldenDict prawdopodobnie nie będą funkcjonować. Należy to naprawić w samym serwerze. Zapoznaj się z następującym </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">opisem błędu</span></a><span style=" color:#ff0000;"> i jeśli chcesz, dopisz swój komentarz.</span></p></body></html> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Uwaga: prawdopodobnie w tym systemie działa wersja serwera XServer X.Org z uszkodzonym rozszerzeniem RECORD. Klawisze skrótu w programie GoldenDict prawdopodobnie nie będą funkcjonować. Należy to naprawić w samym serwerze. Zapoznaj się z następującym </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">opisem błędu</span></a><span style=" color:#ff0000;"> i jeśli chcesz, dopisz swój komentarz.</span></p></body></html> @@ -3314,12 +3325,12 @@ Play audio files via FFmpeg(libav) and libao - + Odtwarzaj pliki audio za pomocą FFmpeg(libav) i libao Use internal player - + Używaj odtwarzacza wewnętrznego @@ -3396,12 +3407,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Niektóre witryny wykrywają program GoldenDict za pomocą nagłówków HTTP i blokują żądania. +Włącz tę opcję, aby obejść ten problem. Do not identify GoldenDict in HTTP headers - + Nie identyfikuj programu GoldenDict w nagłówkach HTTP @@ -3499,99 +3511,99 @@ QObject - + Article loading error - + Błąd ładowania artykułu - + Article decoding error - + Błąd dekodowania artykułu - + avformat_alloc_context() failed. - + Wywołanie avformat_alloc_context() nie powiodło się. - + av_malloc() failed. - + Wywołanie av_malloc() nie powiodło się. - + avio_alloc_context() failed. - + Wywołanie avio_alloc_context() nie powiodło się. - + avformat_open_input() failed: %1. - + Wywołanie avformat_open_input() nie powiodło się: %1. - + avformat_find_stream_info() failed: %1. - + Wywołanie avformat_find_stream_info() nie powiodło się: %1. - + Could not find audio stream. - + Nie można znaleźć strumienia audio. - + Codec [id: %1] not found. - + Nie znaleziono kodeka [id: %1]. - + avcodec_open2() failed: %1. - + Wywołanie avcodec_open2() nie powiodło się: %1. - + Cannot find usable audio output device. - + Nie można znaleźć dostępnego do użycia wyjściowego urządzenia audio. - + Unsupported sample format. - + Nieobsługiwany format próbki. - + ao_open_live() failed: - + Wywołanie ao_open_live() nie powiodło się: - + No driver. - + Brak sterownika. - + This driver is not a live output device. - + Ten sterownik nie jest aktywnym urządzeniem wyjściowym. - + A valid option key has an invalid value. - + Prawidłowy klucz opcji ma nieprawidłową wartość. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Nie można otworzyć urządzenia: %1, kanały: %2, szybkość: %3, bity: %4. - + Unknown error. - + Nieznany błąd. - + avcodec_alloc_frame() failed. - + Wywołanie avcodec_alloc_frame() nie powiodło się. @@ -3615,20 +3627,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - BŁAD: %1 + BŁĄD: %1 - + Resource saving error: - Bład zapisu zasobu: + Błąd zapisu zasobu: - + The referenced resource failed to download. - Nie powiodło się pobranie wskazywanego zasobu. + Nie powiodło się pobranie wskazywanego zasobu. @@ -3756,7 +3768,7 @@ Text to Speech - + Tekst na mowę @@ -3934,7 +3946,7 @@ blank to use the default key, which may become unavailable in the future, or register on the site to get your own key. Korzystanie z witryny Forvo wymaga obecnie klucza API. Pozostaw puste -pole, aby użyć klucza domyslnego, który w przyszłości może przestać być +pole, aby użyć klucza domyślnego, który w przyszłości może przestać być dostępny, lub zarejestruj się w tej witrynie, aby uzyskać własny klucz API. @@ -3970,7 +3982,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Dowolne programy zewnętrzne. Ciąg znaków %GDWORD% zostanie zastąpiony wyszukiwanym słowem. Przy braku tego ciągu znaków, słowo zostanie przesłane do standardowego wejścia. @@ -4111,77 +4123,77 @@ Selected voice engines: - + Wybrane mechanizmy głosów: &Add - + Dod&aj &Remove - &Usuń + &Usuń Preferences - Preferencje + Preferencje Volume: - + Głośność: Rate: - + Szybkość: Preview - + Podgląd Available voice engines: - + Dostępne mechanizmy głosów: Text to be previewed: - + Tekst do podglądu Type text to be previewed here. - + Wpisz tutaj tekst do podglądu. &Preview - + &Podgląd No TTS voice available - + Brak dostępnego głosu TTS Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Nie można znaleźć dostępnego głosu TTS.<br>Upewnij się, że na komputerze zainstalowano już przynajmniej jeden mechanizm TTS. Confirm removal - Potwierdzenie usunięcia + Potwierdzenie usunięcia Remove voice engine <b>%1</b> from the list? - + Czy usunąć mechanizm głosu <b>%1</b> z listy? @@ -4202,22 +4214,22 @@ Enabled - Włączone + Włączone Name - Nazwa + Nazwa Id - + Identyfikator Icon - Ikona + Ikona diff -Nru goldendict-1.0.2~git20130620/locale/pt_BR.ts goldendict-1.5.0~ppa131019/locale/pt_BR.ts --- goldendict-1.0.2~git20130620/locale/pt_BR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/pt_BR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Sobre - + GoldenDict dictionary lookup program, version Dicionário Eletrônico GoldenDict, versão - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Licença sob os termos da GNU GPLv3 ou posterior - + Credits: Créditos: @@ -34,7 +34,7 @@ [Desconhecido] - + Based on Qt %1 (%2, %3 bit) Baseado no Qt %1 (%2, %3 bit) @@ -52,53 +52,53 @@ Recolher artigo - + No translation for <b>%1</b> was found in group <b>%2</b>. Não achei nenhuma definição ou tradução da palavra/expressão <b>%1</b> no grupo <b>%2</b>. - + No translation was found in group <b>%1</b>. Não achei a palavra no grupo <b>%1</b>. - + Welcome! Bem-vindo! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Bem vindo ao <b>GoldenDict</b>!</h3><p>Para começar a trabalhar com o programa, primeiro visite <b>Editar|Dicionários</b> para adicionar alguns caminhos de diretório, onde procuram os arquivos de dicionários, configurar vários sites da Wikipedia ou outras fontes, ajustar a ordem de dicionário ou criar grupos de dicionários.<p>E então você estará pronto para visualizar suas palavras! Você pode fazer isso nesta janela usando o painel à esquerda, ou você pode <a href="Trabalhando com pop-up">procurar palavras a partir de outras aplicações ativas</a>. <p>Para personalizar o programa, confira as preferências disponíveis no <b>Editar|Preferências</b>. Todas as configurações tem dicas, não deixe de lê-las, se você estiver em dúvida sobre qualquer coisa.<p>Se você precisar de mais ajuda, têm qualquer dúvida, sugestões ou apenas saber o que os outros pensam, você é bem-vindo ao programa de <a href="http://goldendict.org/forum/">forum</a>.<p>Confira o programa do <a href="http://goldendict.org/">website</a> para atualizações. <p>(c) 2008-2013 Konstantin Isakov. Licenciado sob GPLv3 ou posterior. - + Working with popup Trabalhando com janelas de definições/tradução semiautomáticas - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Trabalhando com janelas de definições/tradução semiautomáticas</h3>Para fazer consultas/tradução de palavras da janela de outros aplicativos abertos, primeiramente é necessário habilitar a função de janelas secundárias seguindo estes passos a partir da janela principal:<p><OL><LI>Clique em <b>Editar|Configurar</b>; <LI>Clique na guia <b><i>"Janela de Definições Semiautomáticas"</b></i>;<LI>Marque a opção <i>"Ativar funcionalidades de janelas secundárias de definições semiautomáticas"</i>;<LI>Em seguida, clique em "OK" para salvar as configurações.</OL><p>Com esta opção ativada, você pode marcar ou desmarcar a exibição das janelas secundárias quando quiser. Para fazê-lo, há duas formas:<UL><LI>Na janela principal, clique no botão de <b>Definições Semiautomáticas</b>, cujo botão assemelha-se a uma varinha;<LI>No ícone do programa exibido na Área de Notificação (perto do relógio), clique com o botão direito do mouse e marque a opção <b><i>Definições Semiautomáticas</b></i>.</UL><p>Uma vez habilitada esta função, qualquer palavra ou expressão selecionada terá suas definições exibidas (se a palavra/expressão da consulta existir em algum dos dicionários especificados na configuração) imediatamente nos resultados da consulta. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Basta pairar o ponteiro do mouse sobre a palavra/expressão exibida em uma janela qualquer e que desejar consultar que será exibida uma janela com as definições/tradução. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Com isso, você pode consultar ou traduzir palavra/expressão da janela de qualquer programa que seja selecionável ou em que se possa clicar duplamente. Alás, um clique duplo do mouse, por exemplo, seleciona uma palavra, ao passo que um clique triplo, uma frase inteira. - + (untitled) (sem título) - + (picture) (imagem) @@ -106,37 +106,37 @@ ArticleRequest - + Expand article Expandir artigo - + From Resultados de - + Collapse article Recolher artigo - + Query error: %1 Erro de Consulta: %1 - + Close words: Palavras semelhantes: - + Compound expressions: Termos compostos: - + Individual words: Palavras independentes: @@ -189,169 +189,179 @@ Destacar &tudo - + Resource Fonte de Dados - + Audio Áudio - + TTS Voice Voz TTS - + Picture Imagem - + + Video + Vídeo + + + + Video: %1 + Vídeo: %1 + + + Definition from dictionary "%1": %2 Definição do dicionário "%1": %2 - + Definition: %1 Definição: %1 - - + + The referenced resource doesn't exist. A fonte de dados procurada não existe. - + The referenced audio program doesn't exist. O programa de áudio especificado não existe. - + ERROR: %1 Erro: %1 - + Save sound Salvar som - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Arquivos de som (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Todos os arquivos (*.*) - + Save image Salvar imagem - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Arquivos de imagem (*.bmp *.jpg *.png *.tif);;Todos os arquivos (*.*) - + &Open Link Abrir Ligação (&O) - + Open Link in New &Tab Abrir Ligação em Nova Guia (&G) - + Open Link in &External Browser Abrir Ligação em &Navegador da Web Externo - + Save &image... Salvar &imagem... - + Save s&ound... Salvar S&om... - + &Look up "%1" &Procurar "%1" - + Look up "%1" in &New Tab Exibir resultado de "%1" em &nova guia - + Send "%1" to input line Enviar "%1" para o campo - - + + &Add "%1" to history &Adicionar "%1" ao histórico - + Look up "%1" in %2 Procurar «%1» em %2 - + Look up "%1" in %2 in &New Tab Exibir o resultado da consulta de "%1" no %2 em &nova aba - + WARNING: FFmpeg Audio Player: %1 AVISO: Player de Áudio FFmpeg: %1 - + Failed to run a player to play sound file: %1 Não foi possível executar o reprodutor de áudio: %1 - + Failed to create temporary file. Não foi possível criar o arquivo temporário. - + Failed to auto-open resource file, try opening manually: %1. Não foi possível abrir a fonte de dados automaticamente. Tente abri-la manualmente: %1. - + WARNING: %1 ATENÇÃO: %1 - + Select Current Article Selecionar o Artigo Atual - + Copy as text Copiar como texto - + Inspect Inspecionar - + The referenced resource failed to download. Não foi possível efetuar o download do arquivo de fontes de dados. @@ -501,12 +511,12 @@ Open folder - + Abrir pasta Edit dictionary - Editar dicionário + Editar dicionário @@ -522,7 +532,8 @@ Edit the dictionary via command: %1 - + Editar o dicionário via comando: +%1 @@ -543,7 +554,7 @@ Extended menu with all dictionaries... - + Estender menu com todos os dicionários... @@ -558,7 +569,7 @@ Open dictionary folder - + Abrir pasta de dicionário @@ -622,37 +633,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Erro de análise sintática de XML: %1 al %2,%3 - + Added %1 Adicionado %1 - + by por - + Male Masculino - + Female Feminino - + from de - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Clique em Editar|Dicionários|Fontes|Forvo e aplique a própria chave API para fazer este erro desaparecer. @@ -851,12 +862,12 @@ Histórico: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Tamanho do histórico: %1 entradas de saída de no máximo %2 @@ -869,7 +880,7 @@ Sugestões ortográficas: - + %1 Morphology Ortografia de %1 @@ -1930,7 +1941,7 @@ Main - + Error in configuration file. Continue with default settings? Erro no arquivo de configuração. Continuar com as configurações padrão? @@ -1939,7 +1950,7 @@ MainWindow - + Welcome! Bem-vindo! @@ -2158,7 +2169,7 @@ - + &Show E&xibir @@ -2184,7 +2195,7 @@ - + Look up in: Procurar em: @@ -2269,17 +2280,17 @@ Carregando... - + %1 dictionaries, %2 articles, %3 words %1 dicionário, %2 verbetes, %3 palavras - + Look up: Procurar: - + All Todos os Dicionários @@ -2304,169 +2315,169 @@ &Navegação - + Open Tabs List Abrir a lista de guias - + (untitled) (sem título) - + %1 - %2 %1 - %2 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Não foi possível acionar o mecanismo de monitoramento por atalho.<br>Veja se seu XServer está com a extensão RECORD ativada. - + New Release Available Nova Versão Disponível - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. A versão <b>%1</b> do GoldenDict está disponível para download. - + Download Baixar - + Skip This Release Ignorar esta versão - - + + Accessibility API is not enabled Acessibilidade a API não está habilitada - + You have chosen to hide a menubar. Use %1 to show it back. Você optou por ocultar a barra de menus. Use %1 para exibi-la de novo. - + Ctrl+M Ctrl+M - + Page Setup Configuração de Página - + No printer is available. Please install one first. Não achei nenhuma impressora. Favor instalar uma. - + Print Article Imprimir Verbete - + Article, Complete (*.html) Artigo, Completo (*.html) - + Article, HTML Only (*.html) Artigo, Apenas HTML (*.html) - + Save Article As Salvar Verbete como - + Error Erro! - + Can't save article: %1 Não foi possível salvar o verbete: %1 - + Saving article... Salvando artigo... - + The main window is set to be always on top. A janela principal está definida para estar sempre no topo. - + &Hide &Ocultar - + Export history to file Exportar o histórico - - + + Text files (*.txt);;All files (*.*) Arquivos de texto (*.txt);;Todos os arquivos (*.*) - + History export complete Feita a exportação do histórico - + Export error: Erro de exportação: - + Import history from file Importar histórico de arquivo - + Import error: invalid data in file Erro ao tentar importar: dados inválidos no arquivo. - + History import complete Feita a importação do histórico. - + Import error: Erro de importação: - + Dictionary info Inform. do Dicionário - + Open dictionary folder - + Abrir pasta de dicionário - + Edit dictionary Editar dicionário @@ -2474,12 +2485,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted Arquivo dicionário foi adulterado ou corrompido - + Failed loading article from %1, reason: %2 Falha ao carregar artigo de %1, motivo: %2 @@ -2487,7 +2498,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Erro de análise sintática de XML: %1 em %2,%3 @@ -2495,7 +2506,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Erro de análise sintática de XML: %1 em %2,%3 @@ -2781,12 +2792,12 @@ Adjust this value to avoid huge context menus. - + Ajustar este valor para evitar menus de contexto enormes. Context menu dictionaries limit: - + Limite de dicionários no menu de contexto: @@ -3055,11 +3066,7 @@ Articles longer than this size will be collapsed - - - - Artiles longer than this size will be collapsed - Artiles maiores do que esse tamanho vai ser recolhido + Artigos mais longos que esse tamanho vai ser recolhido @@ -3320,12 +3327,12 @@ Lingoes-Blue - + Changing Language Modificando Idioma - + Restart the program to apply the language change. Reinicie o programa para aplicar a mudança de idioma. @@ -3407,97 +3414,97 @@ QObject - + Article loading error Erro ao carregar Artigo - + Article decoding error Erro ao decodificar Artigo - + avformat_alloc_context() failed. avformat_alloc_context() falhou. - + av_malloc() failed. av_malloc() falhou. - + avio_alloc_context() failed. avio_alloc_context() falhou. - + avformat_open_input() failed: %1. avformat_open_input() falhou: %1. - + avformat_find_stream_info() failed: %1. avformat_find_stream_info() falhou: %1. - + Could not find audio stream. Não foi possível encontrar o fluxo de áudio. - + Codec [id: %1] not found. Codec [id: %1] não encontrado. - + avcodec_open2() failed: %1. avcodec_open2() falhou: %1. - + Cannot find usable audio output device. Não foi possível encontrar o dispositivo de saída de áudio utilizável. - + Unsupported sample format. Formato de amostra não suportado. - + ao_open_live() failed: ao_open_live() falhou: - + No driver. Nenhum driver. - + This driver is not a live output device. Este driver não é um dispositivo de saída ao vivo. - + A valid option key has an invalid value. Uma tecla de opção válida teve um valor inválido . - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. Não é possível abrir o dispositivo: %1, canais: %2, taxa: %3, bits: %4. - + Unknown error. Erro desconhecido. - + avcodec_alloc_frame() failed. avcodec_alloc_frame() falha. @@ -3523,18 +3530,18 @@ ResourceToSaveHandler - - + + ERROR: %1 Erro: %1 - + Resource saving error: Erro ao salvar recurso: - + The referenced resource failed to download. O recurso referenciado não conseguiu baixar. @@ -3751,10 +3758,6 @@ Programas - Any external programs. A string %GDWORD% will be replaced with the query word. The word will also be fed into standard input. - Qualquer programa externo. O demarcador %GDWORD% será substituído pela palavra da consulta. A palavra também será especificada no campo padrão. - - Forvo Forvo @@ -3799,7 +3802,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Todos os programas externos. Um texto %GDWORD% vai ser substituído com a palavra consultada. Se nenhum texto não é apresentado, a palavra vai ser alimentada com a entrada padrão. diff -Nru goldendict-1.0.2~git20130620/locale/qt_es.ts goldendict-1.5.0~ppa131019/locale/qt_es.ts --- goldendict-1.0.2~git20130620/locale/qt_es.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/qt_es.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,8065 @@ + + + + + MAC_APPLICATION_MENU + + + Services + Servicios + + + + Hide %1 + Ocultar %1 + + + + Hide Others + Ocultar otros + + + + Show All + Mostrar todo + + + + Preferences... + Preferencias… + + + + Quit %1 + Salir de %1 + + + + About %1 + Acerca de %1 + + + + AudioOutput + + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + + + + + Revert back to device '%1' + + + + + CloseButton + + + Close Tab + Cerrar pestaña + + + + PPDOptionsModel + + Name + Nombre + + + Value + Valor + + + + Phonon:: + + + Notifications + + + + + Music + + + + + Video + + + + + Communication + + + + + Games + + + + + Accessibility + + + + + Phonon::Gstreamer::Backend + + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + + + + + + + + + Could not open media source. + + + + + Invalid source type. + + + + + Could not locate media source. + + + + + Could not open audio device. The device is already in use. + + + + + Could not decode media source. + + + + + Phonon::VolumeSlider + + + + Volume: %1% + + + + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + + Q3Accel + + + %1, %2 not defined + La secuencia %1, %2 no está definida + + + + Ambiguous %1 not handled + Secuencia ambigua %1 no tratada + + + + Q3DataTable + + + True + Verdadero + + + + False + Falso + + + + Insert + Insertar + + + + Update + Actualizar + + + + Delete + Borrar + + + + Q3FileDialog + + + Copy or Move a File + Copiar o mover un fichero + + + + Read: %1 + Lectura: %1 + + + + + Write: %1 + Escritura: %1 + + + + + Cancel + Cancelar + + + + + + + All Files (*) + Todos los ficheros (*) + + + + Name + Nombre + + + + Size + Tamaño + + + + Type + Tipo + + + + Date + Fecha + + + + Attributes + Atributos + + + + + &OK + &Aceptar + + + + Look &in: + Buscar &en: + + + + + + File &name: + &Nombre de fichero: + + + + File &type: + &Tipo de fichero: + + + + Back + Precedente (histórico) + + + + One directory up + Ir al directorio superior + + + + Create New Folder + Crear una nueva carpeta + + + + List View + Vista de lista + + + + Detail View + Vista detallada + + + + Preview File Info + Información del fichero previsualizado + + + + Preview File Contents + Contenido del fichero previsualizado + + + + Read-write + Lectura-escritura + + + + Read-only + Sólo lectura + + + + Write-only + Sólo escritura + + + + Inaccessible + Inaccesible + + + + Symlink to File + Enlace simbólico a un fichero + + + + Symlink to Directory + Enlace simbólico a un directorio + + + + Symlink to Special + Enlace simbólico a un fichero especial + + + + File + Fichero + + + + Dir + Directorio + + + + Special + Fichero especial + + + + + + Open + Abrir + + + + + Save As + Guardar como + + + + + + &Open + &Abrir + + + + + &Save + &Guardar + + + + &Rename + Cambia&r de nombre + + + + &Delete + &Borrar + + + + R&eload + R&ecargar + + + + Sort by &Name + Ordenar por &nombre + + + + Sort by &Size + Ordenar por &tamaño + + + + Sort by &Date + Ordenar por &fecha + + + + &Unsorted + &Sin ordenar + + + + Sort + Ordenar + + + + Show &hidden files + Mostrar los fic&heros ocultos + + + + the file + el fichero + + + + the directory + el directorio + + + + the symlink + el enlace simbólico + + + + Delete %1 + Borrar %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>¿Seguro que desea borrar %1 «%2»?</qt> + + + + &Yes + &Sí + + + + &No + &No + + + + New Folder 1 + Nueva carpeta 1 + + + + New Folder + Nueva carpeta + + + + New Folder %1 + Nueva carpeta %1 + + + + Find Directory + Buscar en el directorio + + + + + Directories + Directorios + + + + Directory: + Directorio: + + + + + Error + Error + + + + %1 +File not found. +Check path and filename. + %1 +Fichero no encontrado. +Compruebe la ruta y el nombre del fichero. + + + + All Files (*.*) + Todos los ficheros (*.*) + + + + Open + Abrir + + + + Select a Directory + Seleccionar un directorio + + + + Q3LocalFs + + + + Could not read directory +%1 + No fue posible leer el directorio +%1 + + + + Could not create directory +%1 + No fue posible crear el directorio +%1 + + + + Could not remove file or directory +%1 + No fue posible eliminar el fichero o directorio +%1 + + + + Could not rename +%1 +to +%2 + No fue posible cambiar el nombre +%1 +a +%2 + + + + Could not open +%1 + No fue posible abrir +%1 + + + + Could not write +%1 + No fue posible escribir +%1 + + + + Q3MainWindow + + + Line up + Alinear + + + + Customize... + Personalizar... + + + + Q3NetworkProtocol + + + Operation stopped by the user + Operación detenida por el usuario + + + + Q3ProgressDialog + + + + Cancel + Cancelar + + + + Q3TabDialog + + + + OK + Aceptar + + + + Apply + Aplicar + + + + Help + Ayuda + + + + Defaults + Valores por omisión + + + + Cancel + Cancelar + + + + Q3TextEdit + + + &Undo + &Deshacer + + + + &Redo + &Rehacer + + + + Cu&t + Cor&tar + + + + &Copy + &Copiar + + + + &Paste + &Pegar + + + + Clear + Limpiar + + + + + Select All + Seleccionar todo + + + + Q3TitleBar + + + System + Sistema + + + + Restore up + Restaurar arriba + + + + Minimize + Minimizar + + + + Restore down + Restaurar abajo + + + + Maximize + Maximizar + + + + Close + Cerrar + + + + Contains commands to manipulate the window + Contiene órdenes para manipular la ventana + + + + Puts a minimized back to normal + Devuelve una ventana minimizada a su aspecto normal + + + + Moves the window out of the way + Aparta la ventana + + + + Puts a maximized window back to normal + Devuelve una ventana maximizada a su aspecto normal + + + + Makes the window full screen + Muestra la ventana en pantalla completa + + + + Closes the window + Cierra la ventana + + + + Displays the name of the window and contains controls to manipulate it + Muestra el nombre de la ventana y contiene controles para manipularla + + + + Q3ToolBar + + + More... + Más... + + + + Q3UrlOperator + + + + + The protocol `%1' is not supported + El protocolo «%1» no está contemplado + + + + The protocol `%1' does not support listing directories + El protocolo «%1» no permite listar los ficheros de un directorio + + + + The protocol `%1' does not support creating new directories + El protocolo «%1» no permite crear nuevos directorios + + + + The protocol `%1' does not support removing files or directories + El protocolo «%1» no permite eliminar ficheros o directorios + + + + The protocol `%1' does not support renaming files or directories + El protocolo «%1» no permite cambiar de nombre ficheros o directorios + + + + The protocol `%1' does not support getting files + El protocolo «%1» no permite recibir ficheros + + + + The protocol `%1' does not support putting files + El protocolo «%1» no permite enviar ficheros + + + + + The protocol `%1' does not support copying or moving files or directories + El protocolo «%1» no permite copiar o mover ficheros o directorios + + + + + (unknown) + (desconocido) + + + + Q3Wizard + + + &Cancel + &Cancelar + + + + < &Back + < &Anterior + + + + &Next > + Siguie&nte > + + + + &Finish + &Terminar + + + + &Help + &Ayuda + + + + QAbstractSocket + + + + + + Host not found + Equipo no encontrado + + + + + + Connection refused + Conexión rechazada + + + + Connection timed out + Conexión expirada + + + + + + Operation on socket is not supported + + + + + Socket operation timed out + Operación socket expirada + + + + Socket is not connected + El socket no está conectado + + + + Network unreachable + Red inalcanzable + + + + QAbstractSpinBox + + + &Step up + &Aumentar + + + + Step &down + Re&ducir + + + + &Select All + &Seleccionar todo + + + + QApplication + + + Activate + Activar + + + + Executable '%1' requires Qt %2, found Qt %3. + El ejecutable «%1» requiere Qt %2 (se encontró Qt %3). + + + + Incompatible Qt Library Error + Error: biblioteca Qt incompatible + + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + + Activates the program's main window + Activa la ventana principal del programa + + + + QAxSelect + + + Select ActiveX Control + Seleccionar un control ActiveX + + + + OK + Aceptar + + + + &Cancel + &Cancelar + + + + COM &Object: + &Objeto COM: + + + + QCheckBox + + + Uncheck + Desmarcar + + + + Check + Marcar + + + + Toggle + Conmutar + + + + QColorDialog + + + Hu&e: + &Tono: + + + + &Sat: + &Saturación: + + + + &Val: + &Valor: + + + + &Red: + &Rojo: + + + + &Green: + &Verde: + + + + Bl&ue: + Az&ul: + + + + A&lpha channel: + Canal a&lfa: + + + + Select Color + + + + + &Basic colors + Colores &básicos + + + + &Custom colors + &Colores personalizados + + + &Define Custom Colors >> + &Definir colores personalizados >> + + + OK + Aceptar + + + Cancel + Cancelar + + + + &Add to Custom Colors + &Añadir a los colores personalizados + + + Select color + Seleccionar color + + + + QComboBox + + + + Open + Abrir + + + + False + Falso + + + + True + Verdadero + + + + Close + Cerrar + + + + QCoreApplication + + + %1: key is empty + QSystemSemaphore + + + + + %1: unable to make key + QSystemSemaphore + + + + + %1: ftok failed + QSystemSemaphore + + + + + QDB2Driver + + + Unable to connect + Imposible establecer una conexión + + + + Unable to commit transaction + Incapaz de enviar la transacción + + + + Unable to rollback transaction + Incapaz de anular la transacción + + + + Unable to set autocommit + Incapaz de activar el envío automático + + + + QDB2Result + + + + Unable to execute statement + Imposible ejecutar la instrucción + + + + Unable to prepare statement + Imposible preparar la instrucción + + + + Unable to bind variable + No es posible ligar la variable + + + + Unable to fetch record %1 + Imposible obtener el registro %1 + + + + Unable to fetch next + Imposible recuperar el siguiente + + + + Unable to fetch first + Imposible recuperar el primero + + + + QDateTimeEdit + + + AM + AM + + + + am + am + + + + PM + PM + + + + pm + pm + + + + QDial + + + QDial + QDial + + + + SpeedoMeter + Velocímetro + + + + SliderHandle + Asa del deslizador + + + + QDialog + + + What's This? + ¿Qué es esto? + + + + Done + Terminar + + + + QDialogButtonBox + + + + + OK + Aceptar + + + + Save + Guardar + + + + &Save + &Guardar + + + + Open + Abrir + + + + Cancel + Cancelar + + + + &Cancel + &Cancelar + + + + Close + Cerrar + + + + &Close + &Cerrar + + + + Apply + Aplicar + + + + Reset + Reinicializar + + + + Help + Ayuda + + + + Don't Save + No guardar + + + + Discard + Descartar + + + + &Yes + &Sí + + + + Yes to &All + Sí a &todo + + + + &No + &No + + + + N&o to All + N&o a todo + + + + Save All + Guardar todo + + + + Abort + Interrumpir + + + + Retry + Reintentar + + + + Ignore + Ignorar + + + + Restore Defaults + Restaurar los valores predeterminados + + + + Close without Saving + Cerrar sin guardar + + + + &OK + &Aceptar + + + + QDirModel + + + Name + Nombre + + + + Size + Tamaño + + + Kind + Match OS X Finder + + Clase + + + + Type + All other platforms + Tipo + + + + Date Modified + Última modificación + + + + Kind + Match OS X Finder + Clase + + + + QDockWidget + + + Close + Cerrar + + + + Dock + Anclada + + + + Float + Flotante + + + + QDoubleSpinBox + + + More + Más + + + + Less + Menos + + + + QErrorMessage + + + Debug Message: + Mensaje de depuración: + + + + Warning: + Aviso: + + + + Fatal Error: + Error fatal: + + + + &Show this message again + Mo&strar este mensaje de nuevo + + + + &OK + &Aceptar + + + + QFile + + + + Destination file exists + + + + + Cannot remove source file + + + + + Cannot open %1 for input + + + + + Cannot open for output + + + + + Failure to write block + + + + + Cannot create %1 for output + + + + + QFileDialog + + + + All Files (*) + Todos los ficheros (*) + + + + Directories + Directorios + + + + + + + &Open + &Abrir + + + + + &Save + &Guardar + + + + Open + Abrir + + + + %1 already exists. +Do you want to replace it? + El fichero %1 ya existe. +¿Desea reemplazarlo? + + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Fichero no encontrado. +Verifique que el nombre del fichero es correcto. + + + + My Computer + Mi equipo + + + + &Rename + Cambia&r de nombre + + + + &Delete + &Borrar + + + + Show &hidden files + Mostrar los fic&heros ocultos + + + + + Back + Anterior (histórico) + + + + + Parent Directory + Directorio superior + + + + + List View + Vista de lista + + + + + Detail View + Vista detallada + + + + + Files of type: + Ficheros de tipo: + + + + + Directory: + Directorio: + + + +File not found. +Please verify the correct file name was given + +Fichero no encontrado. +Compruebe que el nombre del fichero es correcto + + + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Directorio no encontrado. +Verique que el nombre del directorio es correcto. + + + + '%1' is write protected. +Do you want to delete it anyway? + «%1» está protegido contra escritura. +¿Desea borrarlo de todas formas? + + + + Are sure you want to delete '%1'? + ¿Seguro que desea borrar «%1»? + + + + Could not delete directory. + No fue posible borrar el directorio. + + + + Recent Places + + + + + All Files (*.*) + Todos los ficheros (*.*) + + + + Save As + Guardar como + + + + Drive + Unidad + + + + + File + Fichero + + + + Unknown + Desconocido + + + + Find Directory + Buscar en el directorio + + + + Show + Mostrar + + + + + Forward + Siguiente (histórico) + + + + New Folder + Nueva carpeta + + + + &New Folder + &Nueva carpeta + + + + + &Choose + &Seleccionar + + + + Remove + Eliminar + + + + + File &name: + &Nombre de fichero: + + + + + Look in: + Ver en: + + + + + Create New Folder + Crear una nueva carpeta + + + + QFileSystemModel + + + %1 TB + %1 TiB + + + + %1 GB + %1 GiB + + + + %1 MB + %1 MiB + + + + %1 KB + %1 KiB + + + + %1 bytes + %1 bytes + + + + Invalid filename + Nombre de fichero no válido + + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>No se puede utilizar el nombre «%1».</b><p>Intente usar otro nombre con menos caracteres o sin signos de puntuación. + + + + Name + Nombre + + + + Size + Tamaño + + + + Kind + Match OS X Finder + Clase + + + Type + +All other platforms + Tipo + + + + Date Modified + Última modificación + + + + My Computer + Mi equipo + + + + Computer + Equipo + + + + Type + All other platforms + Tipo + + + + QFontDatabase + + + + Normal + + + + + + + Bold + + + + + + Demi Bold + + + + + + + Black + + + + + Demi + + + + + + Light + + + + + + Italic + + + + + + Oblique + + + + + Any + + + + + Latin + + + + + Greek + + + + + Cyrillic + + + + + Armenian + + + + + Hebrew + + + + + Arabic + + + + + Syriac + + + + + Thaana + + + + + Devanagari + + + + + Bengali + + + + + Gurmukhi + + + + + Gujarati + + + + + Oriya + + + + + Tamil + + + + + Telugu + + + + + Kannada + + + + + Malayalam + + + + + Sinhala + + + + + Thai + + + + + Lao + + + + + Tibetan + + + + + Myanmar + + + + + Georgian + + + + + Khmer + + + + + Simplified Chinese + + + + + Traditional Chinese + + + + + Japanese + + + + + Korean + + + + + Vietnamese + + + + + Symbol + + + + + Ogham + + + + + Runic + + + + + QFontDialog + + + &Font + &Tipo de letra + + + + Font st&yle + &Estilo del tipo de letra + + + + &Size + &Tamaño + + + + Effects + Efectos + + + + Stri&keout + &Tachado + + + + &Underline + S&ubrayado + + + + Sample + Muestra + + + + Wr&iting System + Sistema de escr&itura + + + + + Select Font + Seleccionar un tipo de letra + + + + QFtp + + + + Not connected + No conectado + + + + + Host %1 not found + Equipo %1 no encontrado + + + + + Connection refused to host %1 + Conexión rechazada al equipo %1 + + + + Connection timed out to host %1 + + + + + + + Connected to host %1 + Conectado al equipo %1 + + + + + Connection refused for data connection + Conexión para conexión de datos rechazada + + + + + + + Unknown error + Error desconocido + + + + + Connecting to host failed: +%1 + La conexión con el equipo ha fallado: +%1 + + + + + Login failed: +%1 + Identificación fallida: +%1 + + + + + Listing directory failed: +%1 + El listado del directorio ha fallado: +%1 + + + + + Changing directory failed: +%1 + Fallo del cambio de directorio: +%1 + + + + + Downloading file failed: +%1 + Fallo de la descarga del fichero: +%1 + + + + + Uploading file failed: +%1 + El envío del fichero ha fallado: +%1 + + + + + Removing file failed: +%1 + Eliminación de fichero fallida: +%1 + + + + + Creating directory failed: +%1 + Fallo de la creación de un directorio: +%1 + + + + + Removing directory failed: +%1 + Eliminación de directorio fallida: +%1 + + + + + + Connection closed + Conexión cerrada + + + + Host %1 found + Equipo %1 encontrado + + + + Connection to %1 closed + Conexión a %1 cerrada + + + + Host found + Equipo encontrado + + + + Connected to host + Conectado al equipo + + + + QHostInfo + + + Unknown error + Error desconocido + + + + QHostInfoAgent + + + + + + + + + + Host not found + Equipo no encontrado + + + + + + + Unknown address type + Dirección de tipo desconocido + + + + + + Unknown error + Error desconocido + + + + QHttp + + + HTTPS connection requested but SSL support not compiled in + + + + + + + + Unknown error + Error desconocido + + + + + Request aborted + Solicitud interrumpida + + + + + No server set to connect to + No se ha indicado ningún servidor al que conectarse + + + + + Wrong content length + Longitud del contenido errónea + + + + + Server closed connection unexpectedly + El servidor cerró la conexión inesperadamente + + + + Unknown authentication method + + + + + Error writing response to device + + + + + + Connection refused + Conexión rechazada + + + + + + Host %1 not found + Equipo %1 no encontrado + + + + + + + HTTP request failed + Solicitud HTTP fallida + + + + + Invalid HTTP response header + Cabecera de respuesta HTTP no válida + + + + + + + Invalid HTTP chunked body + Fragmento HTTP no válido + + + + Host %1 found + Equipo %1 encontrado + + + + Connected to host %1 + Conectado al equipo %1 + + + + Connection to %1 closed + Conexión a %1 cerrada + + + + Host found + Equipo encontrado + + + + Connected to host + Conectado al equipo + + + + + Connection closed + Conexión cerrada + + + + Proxy authentication required + El proxy requiere autenticación + + + + Authentication required + Se precisa autenticación + + + + Connection refused (or timed out) + + + + + Proxy requires authentication + + + + + Host requires authentication + + + + + Data corrupted + + + + + Unknown protocol specified + + + + + SSL handshake failed + + + + + QHttpSocketEngine + + + Did not receive HTTP response from proxy + + + + + Error parsing authentication request from proxy + + + + + Authentication required + Se precisa autenticación + + + + Proxy denied connection + + + + + Error communicating with HTTP proxy + + + + + Proxy server not found + + + + + Proxy connection refused + + + + + Proxy server connection timed out + + + + + Proxy connection closed prematurely + + + + + QIBaseDriver + + + Error opening database + Error al abrir la base de datos + + + + Could not start transaction + No fue posible iniciar la transacción + + + + Unable to commit transaction + Incapaz de enviar la transacción + + + + Unable to rollback transaction + Incapaz de anular la transacción + + + + QIBaseResult + + + Unable to create BLOB + Imposible crear un BLOB + + + + Unable to write BLOB + Imposible escribir el BLOB + + + + Unable to open BLOB + Imposible abrir el BLOB + + + + Unable to read BLOB + Imposible leer el BLOB + + + + + Could not find array + No fue posible encontrar la tabla + + + + Could not get array data + No fue posible obtener los datos de la tabla + + + + Could not get query info + No fue posible obtener información sobre la consulta + + + + Could not start transaction + No fue posible iniciar la transacción + + + + Unable to commit transaction + Incapaz de enviar la transacción + + + + Could not allocate statement + No fue posible asignar la instrucción + + + + Could not prepare statement + No fue posible preparar la instrucción + + + + + Could not describe input statement + No fue posible describir la instrucción de entrada + + + + Could not describe statement + No fue posible describir la instrucción + + + + Unable to close statement + No fue posible cerrar la instrucción + + + + Unable to execute query + No fue posible ejecutar la consulta + + + + Could not fetch next item + No fue posible obtener el elemento siguiente + + + + Could not get statement info + No fue posible obtener información sobre la instrucción + + + + QIODevice + + + Permission denied + Permiso denegado + + + + Too many open files + Demasiados ficheros abiertos simultáneamente + + + + No such file or directory + No hay ningún fichero o directorio con ese nombre + + + + No space left on device + No queda espacio en el dispositivo + + + + Unknown error + Error desconocido + + + + QInputContext + + + XIM + XIM + + + + XIM input method + Método de entrada XIM + + + + Windows input method + Método de entrada Windows + + + + Mac OS X input method + Método de entrada Mac OS X + + + + QInputDialog + + + Enter a value: + + + + + QLibrary + + QLibrary::load_sys: Cannot load %1 (%2) + QLibrary::load_sys: No se puede cargar %1 (%2) + + + QLibrary::unload_sys: Cannot unload %1 (%2) + QLibrary::unload_sys: No se puede cargar %1 (%2) + + + QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) + QLibrary::resolve_sys: Símbolo «%1» no definido en %2 (%3) + + + + Could not mmap '%1': %2 + No fu posible establecer la proyección en memoria de «%1»: %2 + + + + Plugin verification data mismatch in '%1' + Los datos de verificación del complemento no coinciden en «%1» + + + + Could not unmap '%1': %2 + No fue posible suprimir la proyección en memoria de «%1»: %2 + + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + El complemento «%1» usa una biblioteca Qt incompatible. (%2.%3.%4) [%5] + + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + El complemento «%1» usa una biblioteca Qt incompatible. Se esperaba la clave «%2», pero se ha recibido «%3» + + + + Unknown error + Error desconocido + + + + + The shared library was not found. + No se ha encontrado la biblioteca compartida. + + + + The file '%1' is not a valid Qt plugin. + El fichero «%1» no es un complemento de Qt válido. + + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + El complemento «%1» usa una biblioteca Qt incompatible. (No se pueden mezclar las bibliotecas «debug» y «release».) + + + + + Cannot load library %1: %2 + + + + + + Cannot unload library %1: %2 + + + + + + Cannot resolve symbol "%1" in %2: %3 + + + + + QLineEdit + + + &Undo + &Deshacer + + + + &Redo + &Rehacer + + + + Cu&t + Cor&tar + + + + &Copy + &Copiar + + + + &Paste + &Pegar + + + + Delete + Borrar + + + + Select All + Seleccionar todo + + + + QLocalServer + + + + %1: Name error + + + + + %1: Permission denied + + + + + %1: Address in use + + + + + + %1: Unknown error %2 + + + + + QLocalSocket + + + + %1: Connection refused + + + + + + %1: Remote closed + + + + + + + + %1: Invalid name + + + + + + %1: Socket access error + + + + + + %1: Socket resource error + + + + + + %1: Socket operation timed out + + + + + + %1: Datagram too large + + + + + + + %1: Connection error + + + + + + %1: The socket operation is not supported + + + + + %1: Unknown error + + + + + + %1: Unknown error %2 + + + + + QMYSQLDriver + + + Unable to open database ' + Imposible abrir la base de datos ' + + + + Unable to connect + No es posible establecer una conexión + + + + Unable to begin transaction + No es posible iniciar la transacción + + + + Unable to commit transaction + No es posible enviar la transacción + + + + Unable to rollback transaction + No es posible anular la transacción + + + + QMYSQLResult + + + Unable to fetch data + No es posible obtener los datos + + + + Unable to execute query + No es posible ejecutar la consulta + + + + Unable to store result + No es posible almacenar el resultado + + + + + Unable to prepare statement + No es posible preparar la instrucción + + + + Unable to reset statement + No es posible reinicializar la instrucción + + + + Unable to bind value + No es posible ligar el valor + + + + Unable to execute statement + No es posible ejecutar la instrucción + + + + + Unable to bind outvalues + No es posible ligar los valores de salida + + + + Unable to store statement results + No es posible almacenar los resultados de la instrucción + + + + Unable to execute next query + + + + + Unable to store next result + + + + + QMdiArea + + + (Untitled) + + + + + QMdiSubWindow + + + %1 - [%2] + %1 - [%2] + + + + Close + Cerrar + + + + Minimize + Minimizar + + + + Restore Down + Restaurar abajo + + + + &Restore + &Restaurar + + + + &Move + &Mover + + + + &Size + Redimen&sionar + + + + Mi&nimize + Mi&nimizar + + + + Ma&ximize + Ma&ximizar + + + + Stay on &Top + Permanecer en &primer plano + + + + &Close + &Cerrar + + + + - [%1] + + + + + Maximize + Maximizar + + + + Unshade + + + + + Shade + + + + + Restore + + + + + Help + Ayuda + + + + Menu + Menú + + + + QMenu + + + + Close + Cerrar + + + + + Open + Abrir + + + + + + Execute + Ejecutar + + + + QMenuBar + + About + Acerca de + + + Config + Configuración + + + Preference + Preferencia + + + Options + Opciones + + + Setting + Parámetro + + + Setup + Configuración + + + Quit + Salir + + + Exit + Salir + + + About %1 + Acerca de %1 + + + About Qt + Acerca de Qt + + + Preferences + Preferencias + + + Quit %1 + Salir de %1 + + + + QMessageBox + + + Help + Ayuda + + + + + + + OK + Aceptar + + + + About Qt + Acerca de Qt + + + <p>This program uses Qt version %1.</p> + <p>Este programa utiliza la versión %1 de Qt.</p> + + + <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qtopia Core.</p><p>Qt is a Trolltech product. See <a href="http://qt.digia.com/">qt.digia.com</a> for more information.</p> + <h3>Acerca de Qt</h3>%1<p>Qt es un toolkit en C++ para desarrollo de aplicaciones multiplataforma.</p><p>Qt proporciona portabilidad del código entre MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux y todas las variantes comerciales de Unix importantes. Qt también está disponible para sistemas empotrados bajo el nombre Qtopia Core.</p><p>Qt es un producto de Trolltech. Visite <a href="http://qt.digia.com/">qt.digia.com</a> para obtener más información.</p> + + + + Show Details... + Mostrar los detalles... + + + + Hide Details... + Ocultar los detalles... + + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.digia.com/product/licensing">qt.digia.com/product/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).</p><p>Qt is a Digia product. See <a href="http://qt.digia.com/">qt.digia.com</a> for more information.</p> + + + + <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://qt.digia.com/company/model/">qt.digia.com/company/model/</a> for an overview of Qt licensing.</p> + <p>Este programa utiliza Qt Open Source Edition versión %1.</p><p>Qt Open Source Edition está dirigida al desarrollo de aplicaciones libres. Para desarrollar aplicaciones privativas (de código cerrado) necesita una licencia comercial de Qt.</p><p>Visite <a href="http://qt.digia.com/company/model/">qt.digia.com/company/model/</a> para obtener una visión global de las licencias de Qt.</p> + + + + QMultiInputContext + + + Select IM + Seleccionar IM + + + + QMultiInputContextPlugin + + + Multiple input method switcher + Seleccionador de varios métodos de entrada + + + + Multiple input method switcher that uses the context menu of the text widgets + Seleccionador de varios métodos de entrada que usa el menú contextual de los elementos de texto + + + + QNativeSocketEngine + + + The remote host closed the connection + El equipo remoto ha cerrado la conexión + + + + Network operation timed out + La operación de red ha expirado + + + + Out of resources + Insuficientes recursos + + + + Unsupported socket operation + Operación socket no admitida + + + + Protocol type not supported + Tipo de protocolo no admitido + + + + Invalid socket descriptor + Descriptor de socket no válido + + + + Network unreachable + Red inalcanzable + + + + Permission denied + Permiso denegado + + + + Connection timed out + Conexión expirada + + + + Connection refused + Conexión rechazada + + + + The bound address is already in use + La dirección enlazada ya está en uso + + + + The address is not available + La dirección no está disponible + + + + The address is protected + La dirección está protegida + + + + Unable to send a message + Imposible enviar un mensaje + + + + Unable to receive a message + Imposible recibir un mensaje + + + + Unable to write + Imposible escribir + + + + Network error + Error de red + + + + Another socket is already listening on the same port + Ya hay otro socket escuchando por el mismo puerto + + + + Unable to initialize non-blocking socket + Imposible inicializar el socket no bloqueante + + + + Unable to initialize broadcast socket + Imposible inicializar el socket de difusión + + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Intento de usar un socket IPv6 sobre una plataforma que no contempla IPv6 + + + + Host unreachable + Equipo inaccesible + + + + Datagram was too large to send + El datagrama era demasiado grande para poder ser enviado + + + + Operation on non-socket + Operación sobre un no-socket + + + + Unknown error + Error desconocido + + + + The proxy type is invalid for this operation + + + + + QNetworkAccessCacheBackend + + + Error opening %1 + + + + + QNetworkAccessFileBackend + + + Request for opening non-local file %1 + + + + + Error opening %1: %2 + + + + + Write error writing to %1: %2 + + + + + Cannot open %1: Path is a directory + + + + + Read error reading from %1: %2 + + + + + QNetworkAccessFtpBackend + + + No suitable proxy found + + + + + Cannot open %1: is a directory + + + + + Logging in to %1 failed: authentication required + + + + + Error while downloading %1: %2 + + + + + Error while uploading %1: %2 + + + + + QNetworkAccessHttpBackend + + + No suitable proxy found + + + + + QNetworkReply + + + Error downloading %1 - server replied: %2 + + + + + Protocol "%1" is unknown + + + + + QNetworkReplyImpl + + + + Operation canceled + + + + + QOCIDriver + + + Unable to logon + No es posible abrir sesión + + + + Unable to initialize + QOCIDriver + La inicialización ha fallado + + + + Unable to begin transaction + No es posible iniciar la transacción + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QOCIResult + + + + + Unable to bind column for batch execute + No es posible ligar la columna para una ejecución por lotes + + + + Unable to execute batch statement + No es posible ejecutar la instrucción por lotes + + + + Unable to goto next + No es posible pasar al siguiente + + + + Unable to alloc statement + No es posible asignar la instrucción + + + + Unable to prepare statement + No es posible preparar la instrucción + + + + Unable to bind value + No es posible ligar el valor + + + Unable to execute select statement + No es posible ejecutar la instrucción select + + + + Unable to execute statement + No es posible ejecutar la instrucción + + + + QODBCDriver + + + Unable to connect + No es posible establecer una conexión + + + + Unable to connect - Driver doesn't support all needed functionality + No es posible conectarse - El controlador no ofrece todas las funciones necesarias + + + + Unable to disable autocommit + No es posible inhabilitar el envío automático + + + + Unable to commit transaction + No es posible enviar la transacción + + + + Unable to rollback transaction + No es posible anular la transacción + + + + Unable to enable autocommit + No es posible habilitar el envío automático + + + + QODBCResult + + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: No es posible establecer «SQL_CURSOR_STATIC» como atributo de instrucción. Compruebe la configuración de su controlador ODBC + + + + + Unable to execute statement + No es posible ejecutar la instrucción + + + + Unable to fetch next + No es posible obtener el siguiente + + + + Unable to prepare statement + No es posible preparar la instrucción + + + + Unable to bind variable + No es posible ligar la variable + + + + + + Unable to fetch last + + + + + Unable to fetch + + + + + Unable to fetch first + Imposible recuperar el primero + + + + Unable to fetch previous + + + + + QObject + + + Home + Inicio + + + + Operation not supported on %1 + + + + + Invalid URI: %1 + + + + + Write error writing to %1: %2 + + + + + Read error reading from %1: %2 + + + + + Socket error on %1: %2 + + + + + Remote host closed the connection prematurely on %1 + + + + + Protocol error: packet of size 0 received + + + + + + No host name given + + + + + QPPDOptionsModel + + + Name + Nombre + + + + Value + Valor + + + + QPSQLDriver + + + Unable to connect + No es posible establecer conexión + + + + Could not begin transaction + No fue posible iniciar la transacción + + + + Could not commit transaction + No fue posible enviar la transacción + + + + Could not rollback transaction + No fue posible anular la transacción + + + + Unable to subscribe + + + + + Unable to unsubscribe + + + + + QPSQLResult + + + Unable to create query + No es posible crear la consulta + + + + Unable to prepare statement + + + + + QPageSetupWidget + + + Centimeters (cm) + + + + + Millimeters (mm) + + + + + Inches (in) + + + + + Points (pt) + + + + + Form + + + + + Paper + + + + + Page size: + Tamaño de página: + + + + Width: + + + + + Height: + + + + + Paper source: + Fuente del papel: + + + + Orientation + + + + + Portrait + Vertical + + + + Landscape + Apaisado + + + + Reverse landscape + + + + + Reverse portrait + + + + + Margins + + + + + top margin + + + + + left margin + + + + + right margin + + + + + bottom margin + + + + + QPluginLoader + + + Unknown error + Error desconocido + + + + The plugin was not loaded. + El complemento no fue cargado. + + + + QPrintDialog + + + locally connected + conectado localmente + + + + + Aliases: %1 + Alias: %1 + + + + + unknown + desconocido + + + Print in color if available + Imprimir en color si es posible + + + + Print all + Imprimir todo + + + + Print selection + Imprimir la selección + + + + Print range + Imprimir el intervalo + + + Print last page first + Imprimir primero la última página + + + Number of copies: + Número de copias: + + + Paper format + Formato del papel + + + Portrait + Vertical + + + Landscape + Apaisado + + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8,26 x 11,7 pulgadas) + + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6,93 x 9,84 pulgadas) + + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Ejecutivo (7,5 x 10 pulgadas, 191 x 254 mm) + + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8,5 x 14 pulgadas, 216 x 356 mm) + + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Carta (8,5 x 11 pulgadas, 216 x 279 mm) + + + + Tabloid (279 x 432 mm) + Tabloide (279 x 432 mm) + + + + US Common #10 Envelope (105 x 241 mm) + Sobre US Common #10 (105 x 241 mm) + + + + OK + Aceptar + + + Cancel + Cancelar + + + Page size: + Tamaño de página: + + + Orientation: + Orientación: + + + Paper source: + Fuente del papel: + + + + + + Print + Imprimir + + + File + Fichero + + + Printer + Impresora + + + + Print To File ... + Imprimir a fichero... + + + Print dialog + Ventana de impresión + + + Size: + Tamaño: + + + Properties + Propiedades + + + Printer info: + Información de la impresora: + + + Browse + Explorar + + + Print to file + Imprimir a fichero + + + Pages from + Páginas + + + to + a + + + Selection + Selección + + + Copies + Copias + + + Collate + Recopilar + + + Other + Otro + + + Double side printing + Impresión a doble cara + + + + File %1 is not writable. +Please choose a different file name. + No se puede escribir en el fichero %1. +Elija un nombre de fichero diferente. + + + + %1 already exists. +Do you want to overwrite it? + %1 ya existe. +¿Desea sobrescribirlo? + + + + File exists + El fichero existe + + + + <qt>Do you want to overwrite it?</qt> + <qt>¿Desea sobrescribirlo?</qt> + + + + %1 is a directory. +Please choose a different file name. + %1 es un directorio. +Elija un nombre de fichero diferente. + + + + A0 + + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + A6 + + + + + A7 + + + + + A8 + + + + + A9 + + + + + B0 + + + + + B1 + + + + + B2 + + + + + B3 + + + + + B4 + + + + + B5 + + + + + B6 + + + + + B7 + + + + + B8 + + + + + B9 + + + + + B10 + + + + + C5E + + + + + DLE + + + + + Executive + + + + + Folio + + + + + Ledger + + + + + Legal + + + + + Letter + + + + + Tabloid + + + + + US Common #10 Envelope + + + + + Custom + + + + + + &Options >> + + + + + &Print + + + + + &Options << + + + + + Print to File (PDF) + + + + + Print to File (Postscript) + + + + + Local file + + + + + Write %1 file + + + + + The 'From' value cannot be greater than the 'To' value. + + + + + QPrintPreviewDialog + + Page Setup + Configurar página + + + %1% + %1% + + + Print Preview + Previsualizar impresión + + + Next page + Página siguiente + + + Previous page + Página anterior + + + First page + Primera página + + + Last page + Última página + + + Fit width + Ajustar al ancho + + + Fit page + Ajustar a la página + + + Zoom in + Acercar + + + Zoom out + Alejar + + + Portrait + Vertical + + + Landscape + Apaisado + + + Show single page + Mostrar páginas sueltas + + + Show facing pages + Mostrar páginas encaradas + + + Show overview of all pages + Vista previa de todas las páginas + + + Print + Imprimir + + + Page setup + Configurar página + + + Close + Cerrar + + + Export to PDF + Exportar a PDF + + + Export to PostScript + Exportar a PostScript + + + + QPrintPropertiesDialog + + PPD Properties + Propiedades PPD + + + Save + Guardar + + + OK + Aceptar + + + + QPrintPropertiesWidget + + + Form + + + + + Page + + + + + Advanced + + + + + QPrintSettingsOutput + + + Form + + + + + Copies + Copias + + + + Print range + Imprimir el intervalo + + + + Print all + Imprimir todo + + + + Pages from + Páginas + + + + to + a + + + + Selection + Selección + + + + Output Settings + + + + + Copies: + + + + + Collate + Recopilar + + + + Reverse + + + + + Options + Opciones + + + + Color Mode + + + + + Color + + + + + Grayscale + + + + + Duplex Printing + + + + + None + + + + + Long side + + + + + Short side + + + + + QPrintWidget + + + Form + + + + + Printer + Impresora + + + + &Name: + + + + + P&roperties + + + + + Location: + + + + + Preview + + + + + Type: + + + + + Output &file: + + + + + ... + + + + + QProcess + + + + Could not open input redirection for reading + + + + + + Could not open output redirection for writing + + + + + Resource error (fork failure): %1 + + + + + + + + + + + + + Process operation timed out + + + + + + + + Error reading from process + + + + + + + Error writing to process + + + + + Process crashed + + + + + No program defined + + + + + Process failed to start + + + + + QProgressDialog + + + Cancel + Cancelar + + + + QPushButton + + + Open + Abrir + + + + QRadioButton + + + Check + Marcar + + + + QRegExp + + + no error occurred + no se ha producido ningún error + + + + disabled feature used + se ha usado una característica no habilitada + + + + bad char class syntax + sintaxis no válida para clase de caracteres + + + + bad lookahead syntax + sintaxis no válida para lookahead + + + + bad repetition syntax + sintaxis no válida para repetición + + + + invalid octal value + valor octal no válido + + + + missing left delim + falta el delimitador izquierdo + + + + unexpected end + fin inesperado + + + + met internal limit + se alcanzó el límite interno + + + + QSQLite2Driver + + + Error to open database + Error al abrir la base de datos + + + + Unable to begin transaction + No es posible iniciar la transacción + + + + Unable to commit transaction + No es posible enviar la transacción + + + + Unable to rollback Transaction + No es posible anular la transacción + + + + QSQLite2Result + + + Unable to fetch results + No es posible obtener los resultados + + + + Unable to execute statement + No es posible ejecutar la instrucción + + + + QSQLiteDriver + + + Error opening database + Error al abrir la base de datos + + + + Error closing database + Error al cerrar la base de datos + + + + Unable to begin transaction + No es posible iniciar la transacción + + + + Unable to commit transaction + No es posible enviar la transacción + + + Unable to roll back transaction + No es posible anular la transacción + + + + Unable to rollback transaction + + + + + QSQLiteResult + + + + + Unable to fetch row + No es posible obtener la fila + + + + Unable to execute statement + No es posible ejecutar la instrucción + + + + Unable to reset statement + No es posible reinicializar la instrucción + + + + Unable to bind parameters + No es posible ligar los parámetros + + + + Parameter count mismatch + Número de parámetros incorrecto + + + + No query + + + + + QScrollBar + + + Scroll here + Desplazar hasta aquí + + + + Left edge + Borde izquierdo + + + + Top + Parte superior + + + + Right edge + Borde derecho + + + + Bottom + Parte inferior + + + + Page left + Una página a la izquierda + + + + + Page up + Una página hacia arriba + + + + Page right + Una página a la derecha + + + + + Page down + Una página hacia abajo + + + + Scroll left + Desplazar hacia la izquierda + + + + Scroll up + Desplazar hacia arriba + + + + Scroll right + Desplazar hacia la derecha + + + + Scroll down + Desplazar hacia abajo + + + + Line up + Alinear + + + + Position + Posición + + + + Line down + Alinear por abajo + + + + QSharedMemory + + + %1: unable to set key on lock + + + + + %1: create size is less then 0 + + + + + + %1: unable to lock + + + + + %1: unable to unlock + + + + + + %1: permission denied + + + + + + %1: already exists + + + + + + %1: doesn't exists + + + + + + %1: out of resources + + + + + + %1: unknown error %2 + + + + + %1: key is empty + + + + + %1: unix key file doesn't exists + + + + + %1: ftok failed + + + + + + %1: unable to make key + + + + + %1: system-imposed size restrictions + + + + + %1: not attached + + + + + %1: invalid size + + + + + %1: key error + + + + + %1: size query failed + + + + + QShortcut + + + Space + Espacio + + + + Esc + Esc + + + + Tab + Tabulador + + + + Backtab + Tabulador hacia atrás + + + + Backspace + Borrar + + + + Return + Retorno + + + + Enter + Intro + + + + Ins + Ins + + + + Del + Supr + + + + Pause + Pausa + + + + Print + Impr Pant + + + + SysReq + PetSis + + + + Home + Inicio + + + + End + Fin + + + + Left + Izquierda + + + + Up + Arriba + + + + Right + Derecha + + + + Down + Abajo + + + + PgUp + Re Pág + + + + PgDown + Av Pág + + + + CapsLock + Bloq Mayús + + + + NumLock + Bloq Num + + + + ScrollLock + Bloq Despl + + + + Menu + Menú + + + + Help + Ayuda + + + + Back + Anterior (histórico) + + + + Forward + Siguiente (histórico) + + + + Stop + Detener + + + + Refresh + Actualizar + + + + Volume Down + Bajar el volumen + + + + Volume Mute + Silenciar + + + + Volume Up + Subir el volumen + + + + Bass Boost + Potenciar los graves + + + + Bass Up + Subir los graves + + + + Bass Down + Bajar los graves + + + + Treble Up + Subir los agudos + + + + Treble Down + Bajar los agudos + + + + Media Play + Reproducir el medio + + + + Media Stop + Detener el medio + + + + Media Previous + Medio anterior + + + + Media Next + Siguiente medio + + + + Media Record + Grabar medio + + + + Favorites + Favoritos + + + + Search + Búsqueda + + + + Standby + Reposo + + + + Open URL + Abrir URL + + + + Launch Mail + Lanzar correo + + + + Launch Media + Lanzar medio + + + + Launch (0) + Lanzar (0) + + + + Launch (1) + Lanzar (1) + + + + Launch (2) + Lanzar (2) + + + + Launch (3) + Lanzar (3) + + + + Launch (4) + Lanzar (4) + + + + Launch (5) + Lanzar (5) + + + + Launch (6) + Lanzar (6) + + + + Launch (7) + Lanzar (7) + + + + Launch (8) + Lanzar (8) + + + + Launch (9) + Lanzar (9) + + + + Launch (A) + Lanzar (A) + + + + Launch (B) + Lanzar (B) + + + + Launch (C) + Lanzar (C) + + + + Launch (D) + Lanzar (D) + + + + Launch (E) + Lanzar (E) + + + + Launch (F) + Lanzar (F) + + + + Print Screen + Imprimir pantalla + + + + Page Up + Retroceder página + + + + Page Down + Avanzar página + + + + Caps Lock + Bloqueo de mayúsculas + + + + Num Lock + Bloq num + + + + Number Lock + Bloqueo numérico + + + + Scroll Lock + Bloqueo del desplazamiento + + + + Insert + Insertar + + + + Delete + Borrar + + + + Escape + Escape + + + + System Request + Petición del sistema + + + + Select + Seleccionar + + + + Yes + + + + + No + No + + + + Context1 + Contexto1 + + + + Context2 + Contexto2 + + + + Context3 + Contexto3 + + + + Context4 + Contexto4 + + + + Call + Llamar + + + + Hangup + Descolgar + + + + Flip + Voltear + + + + + Ctrl + Ctrl + + + + + Shift + May + + + + + Alt + Alt + + + + + Meta + Meta + + + + + + + + + + + F%1 + F%1 + + + + Home Page + Página de inicio + + + + QSlider + + + Page left + Una página a la izquierda + + + + Page up + Una página hacia arriba + + + + Position + Posición + + + + Page right + Una página a la derecha + + + + Page down + Una página hacia abajo + + + + QSocks5SocketEngine + + + Connection to proxy refused + + + + + Connection to proxy closed prematurely + + + + + Proxy host not found + + + + + Connection to proxy timed out + + + + + Proxy authentication failed + + + + + Proxy authentication failed: %1 + + + + + SOCKS version 5 protocol error + + + + + General SOCKSv5 server failure + + + + + Connection not allowed by SOCKSv5 server + + + + + TTL expired + + + + + SOCKSv5 command not supported + + + + + Address type not supported + + + + + Unknown SOCKSv5 proxy error code 0x%1 + + + + Socks5 timeout error connecting to socks server + Error de expiración socks5 mientras se establecía una conexión al servidor socks + + + + Network operation timed out + La operación de red ha expirado + + + + QSpinBox + + + More + Más + + + + Less + Menos + + + + QSql + + + Delete + Borrar + + + + Delete this record? + ¿Borrar este registro? + + + + + + Yes + + + + + + + No + No + + + + Insert + Insertar + + + + Update + Actualizar + + + + Save edits? + ¿Guardar las modificaciones? + + + + Cancel + Cancelar + + + + Confirm + Confirmar + + + + Cancel your edits? + ¿Cancelar sus modificaciones? + + + + QSslSocket + + + Unable to write data: %1 + No es posible escribir los datos: %1 + + + + Error while reading: %1 + Error al leer: %1 + + + + Error during SSL handshake: %1 + Error durante el saludo SSL: %1 + + + + Error creating SSL context (%1) + Error al crear el contexto SSL (%1) + + + + Invalid or empty cipher list (%1) + Lista de cifras vacía o no válida (%1) + + + + Error creating SSL session, %1 + Error al crear la sesión SSL, %1 + + + + Error creating SSL session: %1 + Error al crear la sesión SSL: %1 + + + + Cannot provide a certificate with no key, %1 + No se puede proporcionar un certificado sin clave, %1 + + + + Error loading local certificate, %1 + Error al cargar el certificado local, %1 + + + + Error loading private key, %1 + Error al cargar la clave privada, %1 + + + Private key do not certificate public key, %1 + La clave privada no certifica la clave pública, %1 + + + + Private key does not certificate public key, %1 + + + + + QSystemSemaphore + + + + %1: out of resources + + + + + + %1: permission denied + + + + + %1: already exists + + + + + %1: does not exist + + + + + + %1: unknown error %2 + + + + + QTDSDriver + + + Unable to open connection + No es posible abrir la conexión + + + + Unable to use database + No es posible utilizar la base de datos + + + + QTabBar + + + Scroll Left + Desplazar hacia la izquierda + + + + Scroll Right + Desplazar hacia la derecha + + + + QTcpServer + + Socket operation unsupported + Operación socket no admitida + + + + Operation on socket is not supported + + + + + QTextControl + + + &Undo + &Deshacer + + + + &Redo + &Rehacer + + + + Cu&t + Cor&tar + + + + &Copy + &Copiar + + + + Copy &Link Location + Copiar la ubicación del en&lace + + + + &Paste + &Pegar + + + + Delete + Borrar + + + + Select All + Seleccionar todo + + + + QToolButton + + + + Press + Pulsar + + + + + Open + Abrir + + + + QUdpSocket + + + This platform does not support IPv6 + La plataforma no contempla IPv6 + + + + QUndoGroup + + + Undo + Deshacer + + + + Redo + Rehacer + + + + QUndoModel + + + <empty> + <vacío> + + + + QUndoStack + + + Undo + Deshacer + + + + Redo + Rehacer + + + + QUnicodeControlCharacterMenu + + + LRM Left-to-right mark + LRM Left-to-right mark + + + + RLM Right-to-left mark + RLM Right-to-left mark + + + + ZWJ Zero width joiner + ZWJ Zero width joiner + + + + ZWNJ Zero width non-joiner + ZWNJ Zero width non-joiner + + + + ZWSP Zero width space + ZWSP Zero width space + + + + LRE Start of left-to-right embedding + LRE Start of left-to-right embedding + + + + RLE Start of right-to-left embedding + RLE Start of right-to-left embedding + + + + LRO Start of left-to-right override + LRO Start of left-to-right override + + + + RLO Start of right-to-left override + RLO Start of right-to-left override + + + + PDF Pop directional formatting + PDF Pop directional formatting + + + + Insert Unicode control character + Insertar carácter de control Unicode + + + + QWebFrame + + + Request cancelled + + + + + Request blocked + + + + + Cannot show URL + + + + + Frame load interruped by policy change + + + + + Cannot show mimetype + + + + + File does not exist + + + + + QWebPage + + + Bad HTTP request + + + + + Submit + default label for Submit buttons in forms on web pages + + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + + Reset + default label for Reset buttons in forms on web pages + Reinicializar + + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + + Choose File + title for file button used in HTML forms + + + + + No file selected + text to display in file button used in HTML forms when no file is selected + + + + + Open in New Window + Open in New Window context menu item + + + + + Save Link... + Download Linked File context menu item + + + + + Copy Link + Copy Link context menu item + + + + + Open Image + Open Image in New Window context menu item + + + + + Save Image + Download Image context menu item + + + + + Copy Image + Copy Link context menu item + Copiar imagen + + + + Open Frame + Open Frame in New Window context menu item + + + + + Copy + Copy context menu item + Copiar + + + + Go Back + Back context menu item + Precedente + + + + Go Forward + Forward context menu item + + + + + Stop + Stop context menu item + Detener + + + + Reload + Reload context menu item + + + + + Cut + Cut context menu item + Cortar + + + + Paste + Paste context menu item + Pegar + + + Select All + Select All context menu item + Seleccionar todo + + + + No Guesses Found + No Guesses Found context menu item + + + + + Ignore + Ignore Spelling context menu item + Ignorar + + + + Add To Dictionary + Learn Spelling context menu item + + + + + Search The Web + Search The Web context menu item + + + + + Look Up In Dictionary + Look Up in Dictionary context menu item + + + + + Open Link + Open Link context menu item + + + + + Ignore + Ignore Grammar context menu item + Ignorar + + + + Spelling + Spelling and Grammar context sub-menu item + + + + + Show Spelling and Grammar + menu item title + + + + + Hide Spelling and Grammar + menu item title + + + + + Check Spelling + Check spelling context menu item + + + + + Check Spelling While Typing + Check spelling while typing context menu item + + + + + Check Grammar With Spelling + Check grammar with spelling context menu item + + + + + Fonts + Font context sub-menu item + + + + + Bold + Bold context menu item + + + + + Italic + Italic context menu item + + + + + Underline + Underline context menu item + + + + + Outline + Outline context menu item + + + + + Direction + Writing direction context sub-menu item + + + + + Text Direction + Text direction context sub-menu item + + + + + Default + Default writing direction context menu item + + + + + LTR + Left to Right context menu item + + + + + RTL + Right to Left context menu item + + + + + Inspect + Inspect Element context menu item + + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + + + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + + + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + + + + + Unknown + Unknown filesize FTP directory listing item + Desconocido + + + + %1 (%2x%3 pixels) + Title string for images + + + + + Web Inspector - %2 + + + + + Scroll here + Desplazar hasta aquí + + + + Left edge + Borde izquierdo + + + + Top + Parte superior + + + + Right edge + Borde derecho + + + + Bottom + Parte inferior + + + + Page left + Una página a la izquierda + + + + Page up + Una página hacia arriba + + + + Page right + Una página a la derecha + + + + Page down + Una página hacia abajo + + + + Scroll left + Desplazar hacia la izquierda + + + + Scroll up + Desplazar hacia arriba + + + + Scroll right + Desplazar hacia la derecha + + + + Scroll down + Desplazar hacia abajo + + + + %n file(s) + number of chosen file + + + + + + + + JavaScript Alert - %1 + + + + + JavaScript Confirm - %1 + + + + + JavaScript Prompt - %1 + + + + + Move the cursor to the next character + + + + + Move the cursor to the previous character + + + + + Move the cursor to the next word + + + + + Move the cursor to the previous word + + + + + Move the cursor to the next line + + + + + Move the cursor to the previous line + + + + + Move the cursor to the start of the line + + + + + Move the cursor to the end of the line + + + + + Move the cursor to the start of the block + + + + + Move the cursor to the end of the block + + + + + Move the cursor to the start of the document + + + + + Move the cursor to the end of the document + + + + + Select all + Seleccionar todo + + + + Select to the next character + + + + + Select to the previous character + + + + + Select to the next word + + + + + Select to the previous word + + + + + Select to the next line + + + + + Select to the previous line + + + + + Select to the start of the line + + + + + Select to the end of the line + + + + + Select to the start of the block + + + + + Select to the end of the block + + + + + Select to the start of the document + + + + + Select to the end of the document + + + + + Delete to the start of the word + + + + + Delete to the end of the word + + + + + Insert a new paragraph + + + + + Insert a new line + + + + + QWhatsThisAction + + + What's This? + ¿Qué es esto? + + + + QWidget + + + * + * + + + + QWizard + + + Go Back + Precedente + + + + Continue + Siguiente + + + + Commit + Enviar + + + + Done + Terminar + + + Quit + Salir + + + + Help + Ayuda + + + + < &Back + < &Anterior + + + + &Finish + &Terminar + + + + Cancel + Cancelar + + + + &Help + &Ayuda + + + + &Next + + + + + &Next > + Siguie&nte > + + + + QWorkspace + + + &Restore + &Restaurar + + + + &Move + &Mover + + + + &Size + &Tamaño + + + + Mi&nimize + Mi&nimizar + + + + Ma&ximize + Ma&ximizar + + + + &Close + &Cerrar + + + + Stay on &Top + Permanecer en &primer plano + + + + + Sh&ade + Sombre&ar + + + + + %1 - [%2] + %1 - [%2] + + + + Minimize + Minimizar + + + + Restore Down + Restaurar abajo + + + + Close + Cerrar + + + + &Unshade + Q&uitar sombra + + + + QXml + + + no error occurred + no se ha producido ningún error + + + + error triggered by consumer + error debido al consumidor + + + + unexpected end of file + fin de fichero inesperado + + + + more than one document type definition + más de una definición de tipo de documento + + + + error occurred while parsing element + se ha producido un error durante el análisis de un elemento + + + + tag mismatch + etiqueta desequilibrada + + + + error occurred while parsing content + se ha producido un error durante el análisis del contenido + + + + unexpected character + carácter inesperado + + + + invalid name for processing instruction + nombre de instrucción de tratamiento no válido + + + + version expected while reading the XML declaration + se esperaba la versión al leer la declaración XML + + + + wrong value for standalone declaration + valor erróneo para la declaración independiente + + + + encoding declaration or standalone declaration expected while reading the XML declaration + se esperaba una declaración de codificación o declaración autónoma al leer la declaración XML + + + + standalone declaration expected while reading the XML declaration + se esperaba una declaración independiente al leer la declaración XML + + + + error occurred while parsing document type definition + se ha producido un error durante el análisis de la definición de tipo de documento + + + + letter is expected + se esperaba una letra + + + + error occurred while parsing comment + se ha producido un error durante el análisis de un comentario + + + + error occurred while parsing reference + se ha producido un error durante el análisis de una referencia + + + + internal general entity reference not allowed in DTD + no se permiten referencias a entidades internas generales en la DTD + + + + external parsed general entity reference not allowed in attribute value + no se permiten referencias a entidades externas generales ya analizadas en el valor de un atributo + + + + external parsed general entity reference not allowed in DTD + no se permiten referencias a entidades externas generales ya analizadas en la DTD + + + + unparsed entity reference in wrong context + referencia a entidad no analizada en un contexto no válido + + + + recursive entities + entidades recursivas + + + + error in the text declaration of an external entity + error en la declaración de texto de una entidad externa + + + + QXmlStream + + + + Extra content at end of document. + Contenido extra al final del documento. + + + + Invalid entity value. + Valor de la entidad no válido. + + + + Invalid XML character. + Carácter XML no válido. + + + + Sequence ']]>' not allowed in content. + Secuencia «]]>» no permitida en el contenido. + + + + Namespace prefix '%1' not declared + Prefijo de espacio de nombres «%1» no declarado + + + + Attribute redefined. + Atributo redefinido. + + + + Unexpected character '%1' in public id literal. + Carácter «%1» inesperado en un literal de identificación público. + + + + Invalid XML version string. + Cadena de versión XML no válida. + + + + Unsupported XML version. + Versión XML no admitida. + + + + %1 is an invalid encoding name. + %1 es un nombre de codificación no válido. + + + + Encoding %1 is unsupported + No se admite la codificación %1 + + + Invalid XML encoding name. + Nombre de codificación XML no válido. + + + + Standalone accepts only yes or no. + «Standalone» sólo acepta «sí» o «no». + + + + Invalid attribute in XML declaration. + Atributo no válido en la declaración XML. + + + + Premature end of document. + Final prematuro del documento. + + + + Invalid document. + Documento no válido. + + + + Expected + Se esperaba + + + + , but got ' + , pero se ha recibido ' + + + + Unexpected ' + No se esperaba ' + + + + Expected character data. + Se esperaban datos de carácter. + + + + Recursive entity detected. + Detectada entidad recursiva. + + + + Start tag expected. + Se esperaba etiqueta de inicio. + + + + XML declaration not at start of document. + La declaración XML no está al principio del documento. + + + + NDATA in parameter entity declaration. + NDATA en una declaración de entidad parámetro. + + + + %1 is an invalid processing instruction name. + %1 es un nombre de instrucción de procesamiento no válido. + + + + Invalid processing instruction name. + Nombre de instrucción de procesamiento no válido. + + + + + + + Illegal namespace declaration. + Declaración de espacio de nombres ilegal. + + + + Invalid XML name. + Nombre XML no válido. + + + + Opening and ending tag mismatch. + Las etiquetas de apertura y cierre no coinciden. + + + + Reference to unparsed entity '%1'. + Referencia a una entidad no analizada «%1». + + + + + + Entity '%1' not declared. + Entidad «%1» no declarada. + + + + Reference to external entity '%1' in attribute value. + Referencia a una entidad externa «%1» en el valor del atributo. + + + + Invalid character reference. + Referencia un carácter no válido. + + + + + Encountered incorrectly encoded content. + Encontrado contenido codificado incorrectamente. + + + + The standalone pseudo attribute must appear after the encoding. + El pseudoatributo «standalone» debe aparece después de la codificación. + + + + %1 is an invalid PUBLIC identifier. + %1 no es un identificador PUBLIC válido. + + + + QtXmlPatterns + + + An %1-attribute with value %2 has already been declared. + + + + + An %1-attribute must have a valid %2 as value, which %3 isn't. + + + + + Network timeout. + + + + + Element %1 can't be serialized because it appears outside the document element. + + + + + Attribute %1 can't be serialized because it appears at the top level. + + + + + Year %1 is invalid because it begins with %2. + + + + + Day %1 is outside the range %2..%3. + + + + + Month %1 is outside the range %2..%3. + + + + + Overflow: Can't represent date %1. + + + + + Day %1 is invalid for month %2. + + + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + + + + + Time %1:%2:%3.%4 is invalid. + + + + + Overflow: Date can't be represented. + + + + + + At least one component must be present. + + + + + At least one time component must appear after the %1-delimiter. + + + + + No operand in an integer division, %1, can be %2. + + + + + The first operand in an integer division, %1, cannot be infinity (%2). + + + + + The second operand in a division, %1, cannot be zero (%2). + + + + + %1 is not a valid value of type %2. + + + + + When casting to %1 from %2, the source value cannot be %3. + + + + + Integer division (%1) by zero (%2) is undefined. + + + + + Division (%1) by zero (%2) is undefined. + + + + + Modulus division (%1) by zero (%2) is undefined. + + + + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + + + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + + + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + + + + + A value of type %1 cannot have an Effective Boolean Value. + + + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + + + + + Value %1 of type %2 exceeds maximum (%3). + + + + + Value %1 of type %2 is below minimum (%3). + + + + + A value of type %1 must contain an even number of digits. The value %2 does not. + + + + + %1 is not valid as a value of type %2. + + + + + Operator %1 cannot be used on type %2. + + + + + Operator %1 cannot be used on atomic values of type %2 and %3. + + + + + The namespace URI in the name for a computed attribute cannot be %1. + + + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + + + + + Type error in cast, expected %1, received %2. + + + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + + + No casting is possible with %1 as the target type. + + + + + It is not possible to cast from %1 to %2. + + + + + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + + + + + It's not possible to cast the value %1 of type %2 to %3 + + + + + Failure when casting from %1 to %2: %3 + + + + + A comment cannot contain %1 + + + + + A comment cannot end with a %1. + + + + + No comparisons can be done involving the type %1. + + + + + Operator %1 is not available between atomic values of type %2 and %3. + + + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + + + A library module cannot be evaluated directly. It must be imported from a main module. + + + + + No template by name %1 exists. + + + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + + + A positional predicate must evaluate to a single numeric value. + + + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + + + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + + + The data of a processing instruction cannot contain the string %1 + + + + + No namespace binding exists for the prefix %1 + + + + + No namespace binding exists for the prefix %1 in %2 + + + + + + %1 is an invalid %2 + + + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + + + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + + + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + %1 is not a valid XML 1.0 character. + + + + + The first argument to %1 cannot be of type %2. + + + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + + + %1 was called. + + + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + + + %1 matches newline characters + + + + + %1 and %2 match the start and end of a line. + + + + + Matches are case insensitive + + + + + Whitespace characters are removed, except when they appear in character classes + + + + + %1 is an invalid regular expression pattern: %2 + + + + + %1 is an invalid flag for regular expressions. Valid flags are: + + + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + + + + + It will not be possible to retrieve %1. + + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + + + The default collection is undefined + + + + + %1 cannot be retrieved + + + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + + + %1 is not a whole number of minutes. + + + + + Required cardinality is %1; got cardinality %2. + + + + + The item %1 did not match the required type %2. + + + + + + %1 is an unknown schema type. + + + + + Only one %1 declaration can occur in the query prolog. + + + + + The initialization of variable %1 depends on itself + + + + + No variable by name %1 exists + + + + + The variable %1 is unused + + + + + Version %1 is not supported. The supported XQuery version is 1.0. + + + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + + + + + No function with signature %1 is available + + + + + + A default namespace declaration must occur before function, variable, and option declarations. + + + + + Namespace declarations must occur before function, variable, and option declarations. + + + + + Module imports must occur before function, variable, and option declarations. + + + + + It is not possible to redeclare prefix %1. + + + + + Prefix %1 is already declared in the prolog. + + + + + The name of an option must have a prefix. There is no default namespace for options. + + + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + + + The target namespace of a %1 cannot be empty. + + + + + The module import feature is not supported + + + + + No value is available for the external variable by name %1. + + + + + A construct was encountered which only is allowed in XQuery. + + + + + A template by name %1 has already been declared. + + + + + The keyword %1 cannot occur with any other mode name. + + + + + The value of attribute %1 must of type %2, which %3 isn't. + + + + + The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + + + + + A variable by name %1 has already been declared. + + + + + A stylesheet function must have a prefixed name. + + + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + + + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + + + + + A function already exists with the signature %1. + + + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + + + + + An argument by name %1 has already been declared. Every argument name must be unique. + + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + + + In an XSL-T pattern, function %1 cannot have a third argument. + + + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + + + %1 is an invalid template mode name. + + + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + + + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + + + Each name of a template parameter must be unique; %1 is duplicated. + + + + + The %1-axis is unsupported in XQuery + + + + + %1 is not a valid name for a processing-instruction. + + + + + %1 is not a valid numeric literal. + + + + + No function by name %1 is available. + + + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + + + %1 is an invalid namespace URI. + + + + + It is not possible to bind to the prefix %1 + + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Two namespace declaration attributes have the same name: %1. + + + + + The namespace URI must be a constant and cannot use enclosed expressions. + + + + + An attribute by name %1 has already appeared on this element. + + + + + A direct element constructor is not well-formed. %1 is ended with %2. + + + + + The name %1 does not refer to any schema type. + + + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + + + %1 is not an atomic type. Casting is only possible to atomic types. + + + + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + + + The name of an extension expression must be in a namespace. + + + + + empty + + + + + zero or one + + + + + exactly one + + + + + one or more + + + + + zero or more + + + + + Required type is %1, but %2 was found. + + + + + Promoting %1 to %2 may cause loss of precision. + + + + + The focus is undefined. + + + + + It's not possible to add attributes after any other kind of node. + + + + + An attribute by name %1 has already been created. + + + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + + + %1 is an unsupported encoding. + + + + + %1 contains octets which are disallowed in the requested encoding %2. + + + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + + + Ambiguous rule match. + + + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + + The prefix must be a valid %1, which %2 is not. + + + + + The prefix %1 cannot be bound. + + + + + Only the prefix %1 can be bound to %2 and vice versa. + + + + + Circularity detected + + + + + The parameter %1 is required, but no corresponding %2 is supplied. + + + + + The parameter %1 is passed, but no corresponding %2 exists. + + + + + The URI cannot have a fragment + + + + + Element %1 is not allowed at this location. + + + + + Text nodes are not allowed at this location. + + + + + Parse error: %1 + + + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + + + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + + + Unknown XSL-T attribute %1. + + + + + Attribute %1 and %2 are mutually exclusive. + + + + + In a simplified stylesheet module, attribute %1 must be present. + + + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + + + + + Element %1 must have at least one of the attributes %2 or %3. + + + + + At least one mode must be specified in the %1-attribute on element %2. + + + + + Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. + + + + + Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. + + + + + XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. + + + + + The attribute %1 must appear on element %2. + + + + + The element with local name %1 does not exist in XSL-T. + + + + + Element %1 must come last. + + + + + At least one %1-element must occur before %2. + + + + + Only one %1-element can appear. + + + + + At least one %1-element must occur inside %2. + + + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + + + Element %1 must have either a %2-attribute or a sequence constructor. + + + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + + + Element %1 cannot have children. + + + + + Element %1 cannot have a sequence constructor. + + + + + + The attribute %1 cannot appear on %2, when it is a child of %3. + + + + + A parameter in a function cannot be declared to be a tunnel. + + + + + This processor is not Schema-aware and therefore %1 cannot be used. + + + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + + + + + Attribute %1 cannot have the value %2. + + + + + The attribute %1 can only appear on the first %2 element. + + + + + At least one %1 element must appear as child of %2. + + + + + VolumeSlider + + + Muted + + + + + + Volume: %1% + + + + + WebCore::PlatformScrollbar + + Scroll here + Desplazar hasta aquí + + + Left edge + Borde izquierdo + + + Top + Parte superior + + + Right edge + Borde derecho + + + Bottom + Parte inferior + + + Page left + Una página a la izquierda + + + Page up + Una página hacia arriba + + + Page right + Una página a la derecha + + + Page down + Una página hacia abajo + + + Scroll left + Desplazar hacia la izquierda + + + Scroll up + Desplazar hacia arriba + + + Scroll right + Desplazar hacia la derecha + + + Scroll down + Desplazar hacia abajo + + + diff -Nru goldendict-1.0.2~git20130620/locale/qt_it.ts goldendict-1.5.0~ppa131019/locale/qt_it.ts --- goldendict-1.0.2~git20130620/locale/qt_it.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/qt_it.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,6294 @@ + + + + + QWidget + + * + + + + + QShortcut + + + + + + + + CD + CD + + + Go + Vai + + + No + No + + + Up + + + + Alt + Alt + + + F%1 + F%1 + + + DOS + DOS + + + Del + Canc + + + Cut + Taglia + + + End + Fine + + + Esc + Esc + + + Ins + Ins + + + Tab + Tab + + + WWW + WWW + + + Yes + + + + Back + Indietro + + + Away + Assente + + + Book + Libro + + + Call + Chiama + + + Copy + Copia + + + Ctrl + Ctrl + + + Down + Giù + + + Flip + Inverti + + + Game + Gioco + + + Help + Guida + + + Home + Inizio + + + Left + Sinistra + + + Menu + Menu + + + Meta + Meta + + + News + Novità + + + PgUp + PgSù + + + Save + Salva + + + Send + Invia + + + Shop + Negozio + + + Stop + Interrompi + + + Time + Durata + + + XFer + XFer + + + View + Visualizza + + + Split Screen + Dividi schermo + + + Clear + Pulisci + + + Close + Chiudi + + + Eject + Espelli + + + Enter + Invio + + + Kanji + Kanji + + + Music + Musica + + + Paste + Incolla + + + Pause + Pausa + + + Phone + Telefono + + + Print + Stampa + + + Reply + Rispondi + + + Right + Destra + + + Shift + MAIUSCOLE + + + Sleep + Sospendi + + + Space + Spazio + + + Tools + Strumenti + + + Video + Video + + + Hiragana + Hiragana + + + Wireless + Wireless + + + Media Record + Registra + + + Multiple Candidate + Candidato multiplo + + + Zenkaku + Zenkaku + + + Print Screen + Stampa schermata + + + Audio Rewind + Riavvolgi audio + + + Audio Repeat + Ripeti audio + + + Toggle Call/Hangup + Alterna Chiama/Riaggancia + + + Zoom In + Ingrandisci + + + Camera Shutter + Otturatore fotocamera + + + Ultra Wide Band + Banda ultra larga + + + Hangul Special + Hangul Special + + + Treble Down + Abbassa gli alti + + + Scroll Lock + Blocca scorrimento + + + Media Pause + Pausa + + + Word Processor + Elaboratore di testi + + + Volume Down + Abbassa volume + + + Volume Mute + Silenzia + + + Kana Shift + Kana MAIUSCOLE + + + Media Previous + Traccia precedente + + + Home Page + Pagina iniziale + + + Meeting + Riunione + + + Volume Up + Alza volume + + + Menu PB + Menu PB + + + Keyboard Brightness Up + Aumenta la luminosità della tastiera + + + Hangul PostHanja + Hangul PostHanja + + + Kana Lock + Blocca Kana + + + Community + Comunità + + + Launch (6) + Avvia (6) + + + Launch (7) + Avvia (7) + + + Launch (8) + Avvia (8) + + + Launch (9) + Avvia (9) + + + Launch (2) + Avvia (2) + + + Launch (3) + Avvia (3) + + + Launch (4) + Avvia (4) + + + Launch (5) + Avvia (5) + + + Launch (0) + Avvia (0) + + + Launch (1) + Avvia (1) + + + Launch (F) + Avvia (F) + + + Launch (B) + Avvia (B) + + + Launch (C) + Avvia (C) + + + Launch (D) + Avvia (D) + + + Launch (E) + Avvia (E) + + + Launch (A) + Avvia (A) + + + Delete + Elimina + + + Escape + Esc + + + Audio Random Play + Riproduci brani casualmente + + + Hangul + Hangul + + + Hangup + Riaggancia + + + Henkan + Henkan + + + Insert + Inserisci + + + Home Office + Casa e ufficio + + + Last Number Redial + Ultimo numero chiamato + + + Logoff + Disconnettiti + + + Market + Mercato + + + Massyo + Massyo + + + Bass Boost + Incremento bassi + + + Option + Opzione + + + PgDown + PgGiù + + + Reload + Ricarica + + + Return + Invio + + + Romaji + Romaji + + + Search + Cerca + + + Select + Seleziona + + + SysReq + SysReq + + + Travel + Viaggia + + + NumLock + BlocNum + + + Audio Forward + Avannza audio + + + WebCam + WebCam + + + Hiragana Katakana + Hiragana Katakana + + + Top Menu + Menu in alto + + + ScrollLock + BloccaScorrimento + + + Hot Links + Collegamenti caldi + + + Audio Cycle Track + Ripeti ciclicamente + + + Context1 + Contesto1 + + + Context2 + Contesto2 + + + Context3 + Contesto3 + + + Context4 + Contesto4 + + + Zoom Out + Riduci + + + Page Up + Pagina sù + + + Open URL + Apri URL + + + iTouch + iTouch + + + Previous Candidate + Candidato precedente + + + Toggle Media Play/Pause + Alterna Riproduci/Pausa + + + Caps Lock + BLOCCO MAIUSCOLE + + + Eisu Shift + Eisu MAIUSCOLE + + + Code input + Inserisci codice + + + Camera Focus + Messa a fuoco fotocamera + + + Adjust Brightness + Regola la luminosità + + + Spreadsheet + Foglio di calcolo + + + Eisu toggle + Alterna Eisu + + + Keyboard Brightness Down + Abbassa la luminosità della tastiera + + + Clear Grab + Elimina la cattura + + + Monitor Brightness Up + Aumenta la luminosità del monitor + + + System Request + Sistema richiesto + + + CapsLock + BLOCCOMAIUSCOLE + + + Backtab + Tab indietro + + + Bass Up + Alza i bassi + + + Battery + Batteria + + + Katakana + Katakana + + + Refresh + Aggiorna + + + Hibernate + Iberna + + + Application Left + Applicazione sinistra + + + Voice Dial + Composizione vocale + + + Browser + Navigatore + + + Keyboard Menu + Menu tastiera + + + Back Forward + Arretra Avanza + + + Launch Mail + Avvia email + + + Keyboard Light On/Off + Tastiera illuminata sì/no + + + Backspace + Indietro + + + Bass Down + Abbassa i bassi + + + Mail Forward + Intoltra email + + + Messenger + Messaggeria istantanea + + + Hangul Banja + Hangul Banja + + + Hangul Hanja + Hangul Hanja + + + Standby + Attesa + + + Hangul Start + Avvio Hangul + + + Rotation KB + Rotazione KB + + + Rotation PB + Rotazione PB + + + Documents + Documenti + + + Calculator + Calcolatrice + + + Support + Supporto + + + Suspend + Sospendi + + + Display + Schermo + + + Hangul Romaja + Hangul Romaja + + + My Sites + I miei siti + + + Rotate Windows + Ruota finestra + + + Touroku + Touroku + + + Zenkaku Hankaku + Zenkaku Hankaku + + + Hangul Jeonja + Hangul Jeonja + + + Treble Up + Alza gli alti + + + Subtitle + Sottotitoli + + + Hangul Jamo + Hangul Jamo + + + Bluetooth + Bluetooth + + + Muhenkan + Muhenkan + + + Num Lock + Bloc Num + + + Screensaver + Salva schermo + + + Number Lock + Blocca tastierino numerico + + + Spellchecker + Correttore ortografico + + + Hangul PreHanja + Hangul PreHanja + + + Terminal + Terminale + + + Add Favorite + Aggiungi ai preferiti + + + Finance + Finanza + + + Task Panel + Pannello dei compiti + + + Favorites + Preferiti + + + Forward + Avanza + + + Page Down + Pagina giù + + + Wake Up + Risveglio + + + Power Off + Spegnimento + + + LightBulb + Lampadina + + + Hankaku + Hankaku + + + Hangul End + Fine Hangul + + + Monitor Brightness Down + Abbassa la luminosità del monitor + + + History + Cronologia + + + Media Play + Riproduci + + + Media Stop + Interrompi + + + Media Next + Traccia successiva + + + Launch Media + Avvia traccia multimediale + + + Application Right + Applicazione destra + + + Pictures + Immmagini + + + + Q3TabDialog + + OK + OK + + + Help + Guida + + + Apply + Applica + + + Cancel + Annulla + + + Defaults + Preimpostati + + + + QDialogButtonBox + + OK + OK + + + &OK + &OK + + + &No + &No + + + &Yes + &Sì + + + Help + Guida + + + Open + Apri + + + Save + Salva + + + &Save + &Salva + + + Abort + Interrompi + + + Apply + Applica + + + Close + Chiudi + + + Reset + Azzera + + + Retry + Riprova + + + Restore Defaults + Ripristina i valori preimpostati + + + &Close + &Chiudi + + + Cancel + Annulla + + + Ignore + Ignora + + + Close without Saving + Chiudi senza salvare + + + N&o to All + N&o a tutti + + + Save All + Salva tutto + + + &Cancel + &Annulla + + + Discard + Rifiuta + + + Yes to &All + S&ì a tutti + + + Don't Save + Non salvare + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Anteprima di stampa + + + Close + Chiudi + + + Print + Stampa + + + Fit page + Adatta zoom alla pagina + + + Zoom in + Ingrandisci + + + Landscape + Orizzontale + + + Zoom out + Riduci + + + Fit width + Adatta zoom in larghezza + + + Portrait + Verticale + + + Page Setup + Imposta pagina + + + Page setup + Imposta pagina + + + Show overview of all pages + Mostra panoramica di tutte le pagine + + + First page + Vai alla prima pagina + + + Last page + Vai all'ultima pagina + + + Show single page + Mostra pagina singola + + + Export to PDF + Esporta come PDF + + + Previous page + Vai alla pagina precedente + + + Next page + Vai alla pagina successiva + + + Show facing pages + Mostra pagine affiancate + + + Export to PostScript + Esporta come PostScript + + + + QWebPage + + Top + In alto + + + Unknown + Unknown filesize FTP directory listing item + Sconosciute + + + Align Right + Allinea a destra + + + Insert a new paragraph + Inserisci un nuovo paragrafo + + + Strikethrough + Barrato + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Ricerche recenti + + + Stop + Stop context menu item + Interrompi + + + Select to the start of the block + Seleziona all'inizio del blocco + + + No Guesses Found + No Guesses Found context menu item + Nessun ospite trovato + + + Move the cursor to the end of the block + Sposta il cursore alla fine del blocco + + + Fullscreen Button + Media controller element + Passa a schermo intero + + + Select to the start of the line + Seleziona all'inizio della linea + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Questo è un indice consultabile. Inserire le parole chiave: + + + Justify + Giustificato + + + Direction + Writing direction context sub-menu item + Direzione + + + Delete to the start of the word + Elimina all'inizio della parola + + + Unmute audio tracks + Media controller element + Riattiva l'audio delle tracce dal silenzio + + + Seek Forward Button + Media controller element + Avanza ricerca + + + Left to Right + Left to Right context menu item + Da sinistra a destra + + + Move the cursor to the next word + Sposta il cursore all'inizio della parola + + + Move the cursor to the next line + Sposta il cursore all'inizio della linea + + + JavaScript Alert - %1 + Allerta JavaScript - %1 + + + Right to Left + Right to Left context menu item + Da destra a sinistra + + + Scroll down + Scorri verso il basso + + + Scroll here + Scorri qui + + + Scroll left + Scorri verso sinistra + + + Go Back + Back context menu item + Precedente + + + Search The Web + Search The Web context menu item + Cerca nel web + + + Unmute Button + Media controller element + Riattiva l'audio dal silenzio + + + Fonts + Font context sub-menu item + Tipi di caratteri + + + Underline + Underline context menu item + Sottolineato + + + Reload + Reload context menu item + Ricarica + + + Move the cursor to the start of the block + Sposta il cursore all'inizio del blocco + + + Ignore + Ignore Spelling context menu item + Ignora + + + Paste + Paste context menu item + Incolla + + + Go Forward + Forward context menu item + Vai al successivo + + + Slider + Media controller element + Interruttore scorrevole + + + Pause Button + Media controller element + Pausa + + + Outline + Outline context menu item + Cornice + + + Bottom + In basso + + + Copy + Copy context menu item + Copia + + + Center + Centra + + + Indent + Rientra + + + %1 minutes %2 seconds + Media time description + %1 minuti %2 secondi + + + Move the cursor to the end of the line + Sposta il cursore alla fine del blocco + + + Save Image + Download Image context menu item + Salva immagine + + + Move the cursor to the start of the line + Sposta il cursore alla fine della linea + + + Copy Link + Copy Link context menu item + Copia collegamento + + + Status Display + Media controller element + Mostra stato + + + The script on this page appears to have a problem. Do you want to stop the script? + Lo script di questa pagina sembra avere alcuni problemi. Desideri fermarlo? + + + JavaScript Confirm - %1 + Conferma JavaScript - %1 + + + Insert a new line + Inserisci una nuova riga + + + Audio Element + Media controller element + Elemento audio + + + No file selected + text to display in file button used in HTML forms when no file is selected + Nessun file selezionato + + + Return streaming movie to real-time + Media controller element + Passa dal filmato streaming a quello in tempo reale + + + Check Spelling + Check spelling context menu item + Controllo ortografico + + + Return to Real-time Button + Media controller element + Passa al filmato in tempo reale + + + Web Inspector - %2 + Ispettore web - %2 + + + Page up + Pagina sù + + + Rewind movie + Media controller element + Riavvolgi video + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + Nessuna ricerca recente + + + Paste and Match Style + Incolla e corrispondi lo stile + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Cerca nel dizionario + + + Outdent + Riduci rientranza + + + Inspect + Inspect Element context menu item + Ispeziona + + + Play movie in full-screen mode + Media controller element + Riproduci filmato a schermo intero + + + Ignore + Ignore Grammar context menu item + Ignora + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Controlla la grammatica assieme all'ortografia + + + Insert Bulleted List + Inserisci elenchi puntati + + + JavaScript Problem - %1 + Problema di JavaScript - %1 + + + Page right + Pagina destra + + + Move the cursor to the start of the document + Sposta il cursore all'inizio del documento + + + Remaining movie time + Media controller element + Durata restante del filmato + + + Move the cursor to the next character + Sposta il cursore all'inizio del carattere + + + JavaScript Prompt - %1 + Prompt di JavaScript - %1 + + + Submit + default label for Submit buttons in forms on web pages + Sottoscrivi + + + Show Spelling and Grammar + menu item title + Mostra ortografia e grammatica + + + Default + Default writing direction context menu item + Preimpostato + + + Select to the previous line + Seleziona la riga precedente + + + Select to the previous word + Seleziona la parola precedente + + + Current movie time + Media controller element + Durata corrente del filmato + + + Redirection limit reached + Limite di reindirizzamento raggiunto + + + Check Spelling While Typing + Check spelling while typing context menu item + Controlla l'ortografia durante la digitazione + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Elimina ricerche recenti + + + Select to the next character + Seleziona all'inizio del carattere + + + Slider Thumb + Media controller element + Interruttore scorrevole miniature + + + %1 seconds + Media time description + %1 secondi + + + Text Direction + Text direction context sub-menu item + Direzione del testo + + + Delete to the end of the word + Elimina alla fine della parola + + + Select to the end of the line + Seleziona alla fine della linea + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Sottoscrivi + + + Loading... + Media controller status message when the media is loading + Caricamento... + + + Save Link... + Download Linked File context menu item + Salva collegamento... + + + Open Link + Open Link context menu item + Apri collegamento + + + Scroll up + Scorri verso l'alto + + + Spelling + Spelling and Grammar context sub-menu item + Ortografia + + + Live Broadcast + Media controller status message when watching a live broadcast + Trasmissione in diretta + + + Video Element + Media controller element + Elemento video + + + Subscript + Sottoscritto + + + Superscript + Soprascritto + + + Bold + Bold context menu item + Grassetto + + + Hide Spelling and Grammar + menu item title + Nascondi ortografia e granmmatica + + + Copy Image + Copy Link context menu item + Copia immagine + + + Select to the start of the document + Seleziona all'inizio del documento + + + Add To Dictionary + Learn Spelling context menu item + Aggiungi nel dizionario + + + Remaining Time + Media controller element + Tempo rimanente + + + Seek quickly forward + Media controller element + Avanza velocemente nella ricerca + + + %1 hours %2 minutes %3 seconds + Media time description + %1 ore %2 minuti %3 secondi + + + Seek quickly back + Media controller element + Arretra velocemente nella ricerca + + + Cut + Cut context menu item + Taglia + + + Move the cursor to the previous character + Sposta il cursore al carattere precedente + + + Video element playback controls and status display + Media controller element + Visualizza lo stato e i controlli per la riproduzione dei video + + + Insert Numbered List + Inserisci elenco numerato + + + Select to the end of the document + Seleziona alla fine del documento + + + Select to the end of the block + Seleziona alla fine del blocco + + + Select All + Seleziona tutto + + + Movie time scrubber + Media controller element + Azzera durata del filmato + + + Scroll right + Scorri verso destra + + + Bad HTTP request + Cattiva richiesta HTTP + + + Rewind Button + Media controller element + Riavvolgi + + + Indefinite time + Media time description + Tempo indefinito + + + Open Frame + Open Frame in New Window context menu item + Apri fotogramma + + + Current movie status + Media controller element + Stato corrente del filmato + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 giorni %2 ore %3 minuti %4 secondi + + + Move the cursor to the previous word + Sposta il cursore alla parola precedente + + + Move the cursor to the previous line + Sposta il cursore alla linea precedente + + + Seek Back Button + Media controller element + Arretra nella ricerca + + + %n file(s) + + %n fichier + %n file + + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 pixels) + + + Left edge + A sinistra + + + Page down + Pagina giù + + + Page left + Pagina sinistra + + + Missing Plug-in + Plug-in mancante + + + Reset + default label for Reset buttons in forms on web pages + Azzera + + + Align Left + Allinea a sinistra + + + Select to the previous character + Seleziona il carattere precedente + + + Mute audio tracks + Media controller element + Silenzia le tracce + + + Audio element playback controls and status display + Media controller element + Visualizza lo stato e i controlli per la riproduzione dell'audio + + + Begin playback + Media controller element + Inizia la riproduzione + + + Choose File + title for file button used in HTML forms + Seleziona file + + + Pause playback + Media controller element + Pausa + + + Open Image + Open Image in New Window context menu item + Apri immagine + + + Mute Button + Media controller element + Silenzia + + + Play Button + Media controller element + Riproduci + + + Right edge + A destra + + + Elapsed Time + Media controller element + Tempo trascorso + + + Move the cursor to the end of the document + Sposta il cursore alla fine del documento + + + Remove formatting + Rimuovi formattazione + + + Open in New Window + Open in New Window context menu item + Apri in una nuova finestra + + + Select to the next word + Seleziona fino alla parola successiva + + + Select to the next line + Seleziona fino alla riga successiva + + + Movie time scrubber thumb + Media controller element + Azzera miniatura durata del filmato + + + Italic + Italic context menu item + Corsivo + + + + QFile + + Cannot remove source file + Impossibile rimuovere il file sorgente + + + Cannot create %1 for output + Impossibile creare %1 per la scrittura + + + Failure to write block + Impossibile scrivere un blocco + + + Cannot open %1 for input + Impossibile aprire %1 per la lettura + + + Destination file exists + Il file di destinazione esiste già + + + Cannot open for output + Impossibile aprire il file per la scrittura + + + Will not rename sequential file using block copy + I file sequenziali non verreanno rinominati utilizzando la copia del blocco + + + + QFileDialog + + Back + Indietro + + + File + File + + + Open + Apri + + + &Open + &Apri + + + &Save + &Salva + + + Drive + Unità + + + Show + Mostra + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' è protetto in scrittura. +Eliminare il file comunque? + + + File &name: + &Nome file: + + + Alias + Mac OS X Finder + Alias + + + File Folder + Match Windows Explorer + Cartella file + + + New Folder + Nuova cartella + + + Shortcut + All other platforms + Scorciatoia + + + Parent Directory + Cartella superiore + + + &New Folder + &Nuova cartella + + + Remove + Elimina + + + My Computer + Computer + + + Look in: + Cerca in: + + + Create a New Folder + Crea nuova cartella + + + Files of type: + Tipi di file: + + + Find Directory + Cerca nella cartella + + + Show &hidden files + Mostra file &nascosti + + + Are sure you want to delete '%1'? + Sei sicuro di volere eliminare '%1' ? + + + Save As + Salva come + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Cartella non trovata. +Verificare il nome della cartella che sia corretto. + + + List View + Elenco + + + &Choose + &Seleziona + + + &Delete + &Elimina + + + All Files (*) + Tutti i file (*) + + + Directories + Cartelle + + + All Files (*.*) + Tutti i file (*.*) + + + &Rename + &Rinomina + + + Could not delete directory. + Impossibile eliminare la cartella. + + + Directory: + Cartella: + + + Unknown + Sconosciuto + + + %1 already exists. +Do you want to replace it? + Il file %1 esiste già. +Sostituire il file? + + + Folder + All other platforms + Cartella + + + Forward + Successivo + + + Go forward + Vai al successivo + + + Go to the parent directory + Vai al livello superiore della cartella + + + Recent Places + Risorse recenti + + + Go back + Torna indietro + + + Change to detail view mode + Passa alla visualizzazione come dettagli + + + Create New Folder + Crea nuoba cartella + + + Detail View + Dettagli + + + %1 +File not found. +Please verify the correct file name was given. + %1 +File non trovato. +Verificare il nome del file che sia corretto. + + + Change to list view mode + Passa alla visualizzazione come elenco + + + + Q3TextEdit + + Cu&t + &Taglia + + + &Copy + Cop&ia + + + &Redo + &Ripeti + + + &Undo + &Annulla + + + Clear + Pulisci + + + &Paste + &Incolla + + + Select All + Seleziona tutto + + + + QLineEdit + + Cu&t + &Taglia + + + &Copy + Cop&ia + + + &Redo + &Ripeti + + + &Undo + &Annulla + + + &Paste + &Incolla + + + Delete + Elimina + + + Select All + Seleziona tutto + + + + QTextControl + + Cu&t + &Taglia + + + &Copy + Cop&ia + + + &Redo + &Ripeti + + + &Undo + &Annulla + + + &Paste + &Incolla + + + Delete + Elimina + + + Select All + Seleziona tutto + + + Copy &Link Location + Copia &collegamento dell'indirizzo di destinazione + + + + QDockWidget + + Dock + Aggancia + + + Close + Chiudi + + + Float + Mobile + + + + QDialog + + Done + Fine + + + What's This? + Che cos'è? + + + + QWizard + + Done + Operazione completata + + + Help + Guida + + + &Help + &Guida + + + &Next + &Successivo + + + Cancel + Annulla + + + Commit + Deposita + + + Continue + Continua + + + &Finish + &Fine + + + &Next > + &Avanti > + + + Go Back + Torna indietro + + + < &Back + < &Indietro + + + + QPageSetupWidget + + Form + Modulo + + + bottom margin + Marginre inferiore + + + Paper + Foglio + + + Paper source: + Alimentazione: + + + Centimeters (cm) + Centimetri (cm) + + + right margin + Margine destro + + + Margins + Margini + + + Landscape + Orizzontale + + + Width: + Larghezza: + + + Orientation + Orientamento + + + Portrait + Verticale + + + top margin + Marginre superiore + + + left margin + Marginre sinistro + + + Page size: + Dimensioni pagina: + + + Reverse portrait + Verticale capovolto + + + Millimeters (mm) + Millimetri (mm) + + + Points (pt) + Punti (pt) + + + Inches (in) + Pollici (in) + + + Reverse landscape + Orizzontale capovolto + + + Height: + Altezza: + + + + QPrintPropertiesWidget + + Form + Modulo + + + Page + Pagina + + + Advanced + Avanzato + + + + QMdiSubWindow + + Help + Guida + + + Menu + Menu + + + &Move + &Sposta + + + &Size + &Ridimensiona + + + Close + Chiudi + + + Minimize + Riduci a icona + + + Shade + Arrotola + + + Stay on &Top + &Sempre in primo piano + + + &Close + &Chiudi + + + - [%1] + - [%1] + + + %1 - [%2] + %1 - [%2] + + + &Restore + &Ripristina + + + Restore + Ripristina + + + Maximize + Ingrandisci + + + Unshade + Srotola + + + Mi&nimize + &Riduci a icona + + + Ma&ximize + &Ingrandisci + + + Restore Down + Ripristina in basso + + + + QDoubleSpinBox + + Less + Meno + + + More + Più + + + + QSpinBox + + Less + Meno + + + More + Più + + + + QDirModel + + Name + Nome + + + Size + Dimensioni + + + Kind + Match OS X Finder + Tipologia + + + Type + All other platforms + Tipo + + + Date Modified + Data di modifica + + + + QFileSystemModel + + Name + Nome + + + Size + Dimensioni + + + %1 GB + %1 GB + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 TB + %1 TB + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Il nome "%1" non può essere usato.</b><p>Provare ad utilizzare un altro nome con meno caratteri o senza simboli di punteggiatura. + + + %1 bytes + %1 byte + + + My Computer + Computer + + + Computer + Computer + + + Invalid filename + Nome file non valido + + + %1 byte(s) + %1 byte + + + Kind + Match OS X Finder + Tipologia + + + Type + All other platforms + Tipo + + + Date Modified + Data di modifica + + + + QPPDOptionsModel + + Name + Nome + + + Value + Valore + + + + QScriptDebuggerLocalsModel + + Name + Nome + + + Value + Valore + + + + QScriptDebuggerStackModel + + Name + Nome + + + Level + Livello + + + Location + Percorso + + + + QScriptDebuggerCodeFinderWidget + + Next + Successivo + + + Close + Chiudi + + + Whole words + Parole intere + + + Previous + Precedente + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Ricerca ripresa + + + Case Sensitive + MAIUSCOLE/minuscole + + + + QComboBox + + Open + Apri + + + True + Vero + + + Close + Chiudi + + + False + Falso + + + + QMenu + + Open + Apri + + + Close + Chiudi + + + Execute + Esegui + + + + QPushButton + + Open + Apri + + + + QToolButton + + Open + Apri + + + Press + Premi + + + + QUndoGroup + + Redo + Ripeti + + + Undo + Annulla + + + + QUndoStack + + Redo + Ripeti + + + Undo + Annulla + + + + Q3DataTable + + True + Vero + + + False + Falso + + + Delete + Elimina + + + Insert + Inserisci + + + Update + Aggiorna + + + + QScriptEngineDebugger + + View + Visualizza + + + Stack + Pila + + + Debug Output + Uscita di debug + + + Breakpoints + Punti di interruzione + + + Qt Script Debugger + Debugger di script Qt + + + Locals + Locali + + + Search + Cerca + + + Error Log + Registro degli errori + + + Console + Console + + + Loaded Scripts + Script caricati + + + + QSslSocket + + Error creating SSL session: %1 + Errore nella creazione della sessione SSL: %1 + + + Error creating SSL session, %1 + Errore nella creazione della sessione SSL, %1 + + + The certificate's notAfter field contains an invalid time + Il campo notAfter del certificato contiene un'ora non valida + + + No error + Nessun errorre + + + Cannot provide a certificate with no key, %1 + Impossibile fornire un certificato senza chiave, %1 + + + Unable to write data: %1 + Impossibile scrivere i dati: %1 + + + The basicConstraints path length parameter has been exceeded + Il parametro di lunghezza di percorso basicConstraints è stato superato + + + The certificate has expired + Il certificato è scaduto + + + Error during SSL handshake: %1 + Errore nell'inizializzazione SSL: %1 + + + Error loading local certificate, %1 + Errore nel caricamento del certificato locale, %1 + + + The certificate is self-signed, and untrusted + Il certificato è firmato da sé e non affidabile + + + The peer did not present any certificate + La controparte non ha presentato nessun certificato + + + The root CA certificate is marked to reject the specified purpose + Il certificato radice dell'autorità di certificazione è segnato per rifiutare lo scopo specifico + + + Invalid or empty cipher list (%1) + Elenco di cifrari non valido o vuoto (%1) + + + No certificates could be verified + Non è stato possibile verificare nessun certificato + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + Il certificato candidato attuale dell'emittente è stato rifiutato perché erano presenti il nome dell'emittente e il numero di serie, e non corrispondono all'identificativo della chiave di autorità del certificato attuale + + + The root CA certificate is not trusted for this purpose + Il certificato radice dell'autorità di certificazione non è affidabile questo scopo + + + The host name did not match any of the valid hosts for this certificate + Il nome dell'host non coincide con nessuno degli host validi per questo certificato + + + The root certificate of the certificate chain is self-signed, and untrusted + Il certificato radice della catena di certificati è firmato da sé e non affidabile + + + The certificate signature could not be decrypted + Impossibile decifrare la firma del certificato + + + The supplied certificate is unsuitable for this purpose + Il certificato fornito non è adatto per questo scopo + + + Private key does not certify public key, %1 + La chiave privata non certifica quella pubblica, %1 + + + Error creating SSL context (%1) + Errore nella creazione del contesto SSL (%1) + + + The issuer certificate could not be found + Impossibile trovare il certificato dell'emittente + + + Unknown error + Errore sconosciuto + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Il certificato candidato attuale dell'emittente è stato rifiutato perché il nome del suo oggetto non corrisponde al nome dell'emittente del certificato attuale + + + Error while reading: %1 + Errore nella lettura: %1 + + + The certificate's notBefore field contains an invalid time + Il campo notBefore del certificato contiene un'ora non valida + + + Error loading private key, %1 + Errore nel caricamento della chiave privata, %1 + + + The certificate is not yet valid + Il certificato non è ancora valido + + + The public key in the certificate could not be read + Impossibile leggere la chiave pubblica del certificato + + + One of the CA certificates is invalid + Uno dei certificati dell'autorità di certificazione non è valido + + + The signature of the certificate is invalid + La firma del certificato non è valida + + + The issuer certificate of a locally looked up certificate could not be found + Le certificat de l'émetteur d'un certificat converti localement est introuvable + + + Unable to decrypt data: %1 + Impossibile decifrare i dati: %1 + + + + QLocalSocket + + %1: Connection error + %1: Errore di connessione + + + %1: Connection refused + %1: Connessione rifiutata + + + %1: Unknown error %2 + %1: errore sconosciuto %2 + + + %1: Socket access error + %1: Errore di accesso al socket + + + %1: Socket resource error + %1: Errore di risorsa del socket + + + %1: The socket operation is not supported + %1: L'operazione sul socket non è supportata + + + %1: Invalid name + %1: Nome non valido + + + %1: Unknown error + %1: Errore sconosciuto + + + %1: Socket operation timed out + %1: Operazione sul socket scaduta + + + %1: Datagram too large + %1: Datagramma troppo grande + + + %1: Remote closed + %1: Host remoto chiuso + + + + QOCIResult + + Unable to get statement type + Impossibile recuperare il tipo di dichiarazione + + + Unable to alloc statement + Impossibile allocare la dichiarazione + + + Unable to goto next + Impossibile passare al successivo + + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to bind column for batch execute + Impossibile collegare la colonna per l'esecuzione in serie + + + Unable to prepare statement + Impossibile preparare la dichiarazione + + + Unable to execute batch statement + Impossibile eseguire la dichiarazione in serie + + + Unable to bind value + Impossibile collegare il valore + + + + QDeclarativeAnchors + + Cannot anchor item to self. + Impossibile ancorare un elemento a sè stesso. + + + Possible anchor loop detected on horizontal anchor. + Possibile ciclo ancorato rilevato all'ancoramento orizzontale. + + + Cannot anchor to a null item. + Impossibile ancorare a un elemento nullo. + + + Cannot specify top, bottom, and vcenter anchors. + Impossibile specificare ancore in alto, in basso e al centro verticale. + + + Possible anchor loop detected on centerIn. + Possibile ciclo ancorato rilevato al centramento. + + + Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors. + L'ancora sulla linea base non è utilizzabile assieme alle ancore in alto, in basso o al centro verticale. + + + Cannot specify left, right, and hcenter anchors. + Impossibile specificare ancore a sinistra, destra e centro orizzontale. + + + Possible anchor loop detected on vertical anchor. + Possibile ciclo ancorato rilevato all'ancoramento verticale. + + + Cannot anchor a horizontal edge to a vertical edge. + Impossibile ancorare un bordo orizzontale a uno verticale. + + + Cannot anchor a vertical edge to a horizontal edge. + Impossibile ancorare un bordo verticale a uno orizzontale. + + + Cannot anchor to an item that isn't a parent or sibling. + Impossibile ancorare a un elemento che non sia padre o di pari livello. + + + Possible anchor loop detected on fill. + Possibile ciclo ancorato rilevato al riempimento. + + + + QDeclarativeCompositeTypeManager + + %1 %2 + %1 %2 + + + Resource %1 unavailable + Risors %1 non disponbile + + + Type %1 unavailable + Tipo %1 non disponibile + + + Namespace %1 cannot be used as a type + Lo spazio di nomi %1 non può essere usato come tipo + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Hz + + + + QFontDialog + + &Font + &Tipi di carattere + + + &Size + &Dimensioni + + + Sample + Esempio + + + Font st&yle + &Stile caratteri + + + Wr&iting System + Sistema di sc&rittura + + + Select Font + Seleziona i caratteri + + + &Underline + Sotto&lineato + + + Effects + Effetti + + + Stri&keout + &Barrato + + + + Q3Wizard + + &Help + &Guida + + + &Cancel + &Annulla + + + &Finish + &Fine + + + &Next > + &Avanti > + + + < &Back + < &Indietro + + + + QWorkspace + + &Move + &Sposta + + + &Size + &Ridimensiona + + + Close + Chiudi + + + Minimize + Riduci a icona + + + Stay on &Top + &Sempre in primo piano + + + &Close + &Chiudi + + + %1 - [%2] + %1 - [%2] + + + Sh&ade + &Arrotola + + + &Restore + &Ripristina + + + &Unshade + &Srotola + + + Mi&nimize + &Riduci a icona + + + Ma&ximize + &Ingrandisci + + + Restore Down + Ripristina in basso + + + + QColorDialog + + &Red: + &Rosso: + + + &Sat: + &Saturazione: + + + &Val: + &Valore: + + + Hu&e: + &Tonalità: + + + Select Color + Colore selezionato + + + &Add to Custom Colors + &Aggiungi ai colori personalizzati + + + Bl&ue: + Bl&u : + + + &Green: + &Verde: + + + &Basic colors + Colori di &base + + + &Custom colors + &Colori personalizzati + + + A&lpha channel: + Canale a&lpha : + + + + QNetworkSessionPrivateImpl + + Roaming error + Errore di roaming + + + The session was aborted by the user or system. + La sessione è stata interrotta dall'utente o dal sistema. + + + The requested operation is not supported by the system. + L'operazione richiesta non è supportata dal sistema. + + + Session aborted by user or system + Sessione interrotta dall'utente o dal sistema + + + Unidentified Error + Errore non identificato + + + Roaming was aborted or is not possible. + Roaming interrotto o impossibile. + + + The specified configuration cannot be used. + La configurazione specificata non può essere usata. + + + Unknown session error. + Errore di sessione sconosciuto. + + + + QSharedMemory + + %1: system-imposed size restrictions + %1: restrizioni di sistema sulla dimensione + + + %1: doesn't exists + %1: non esiste + + + %1: key is empty + %1: la chiave è vuota + + + %1: key error + %1 : errore di chiave + + + %1: create size is less then 0 + %1: la dimensione creata è inferiore a 0 + + + %1: already exists + %1: esiste già + + + %1: unknown error %2 + %1: errore sconosciuto %2 + + + %1: invalid size + %1: dimensione non valida + + + %1: unable to make key + %1: impossibile creare la chiave + + + %1: unable to set key on lock + %1: impossibile impostare la chiave sul blocco + + + %1: unable to unlock + %1: impossibile sbloccare + + + %1: permission denied + %1: permesso negato + + + %1: ftok failed + %1: ftok non riuscito + + + %1: out of resources + %1: risorse insufficienti + + + %1: not attached + %1: non allegato + + + %1: UNIX key file doesn't exist + %1: il file chiave UNIX non esiste + + + %1: doesn't exist + %1: non esistono + + + %1: size query failed + %1: interrogazione della dimensione non riuscita + + + %1: unable to lock + %1: impossibile bloccare + + + + QXmlStream + + Reference to unparsed entity '%1'. + Riferimento all'entità '%1' non analizzata. + + + Unexpected character '%1' in public id literal. + Carattere inatteso "%1" in letterale identificativo pubblico. + + + Illegal namespace declaration. + Dichiarazione di spazio di nomi non consentita. + + + Invalid XML character. + Carattere XML non valido. + + + Expected character data. + Erano attesi dati di caratteri. + + + Standalone accepts only yes or no. + "Standalone" accetta solo "yes" o "no". + + + Invalid XML version string. + Stringa di versione XML non valida. + + + Invalid processing instruction name. + Nome d'istruzione non valido. + + + Namespace prefix '%1' not declared + Prefisso "%1" dello spazio di nomi non dichiarato + + + Entity '%1' not declared. + Entità '%1' non dichiarata. + + + %1 is an invalid processing instruction name. + %1 non è un'istruzione di processo valida. + + + The standalone pseudo attribute must appear after the encoding. + Lo pseudo-attributo "standalone" deve comparire dopo la codifica. + + + Sequence ']]>' not allowed in content. + Sequenza ']]>' non consentita nel contesto. + + + %1 is an invalid encoding name. + %1 non è un nome di codifica valido. + + + , but got ' + , invece si è ottenuto ' + + + Start tag expected. + Ci si attendeva un marcatore d'inizio. + + + Invalid character reference. + Riferimento di carattere non valido. + + + Reference to external entity '%1' in attribute value. + Riferimento all'entità esterna '%1' nel valore dell'attributo. + + + Expected + Atteso + + + Invalid document. + Documento non valido. + + + Opening and ending tag mismatch. + Il marcatore d'inizio e quello di fine devono corrispondere. + + + Encountered incorrectly encoded content. + Trovato contenuto con codifica non corretta. + + + Invalid attribute in XML declaration. + Attributo non valido nella dichiarazione XML. + + + Attribute redefined. + Attributo ridefinito. + + + %1 is an invalid PUBLIC identifier. + %1 non è un identificatore PUBLIC valido. + + + Extra content at end of document. + Contenuti eccedenti alla fine del documento. + + + Invalid XML name. + Nome XML non valido. + + + Premature end of document. + Chiusura anticipata del documento. + + + XML declaration not at start of document. + La dichiarazione XML deve trovarsi all'inizio del documento. + + + Recursive entity detected. + Entità ricorsiva rilevata. + + + Unsupported XML version. + Versione di XML non supportata. + + + Unexpected ' + Inatteso ' + + + Invalid entity value. + Valore dell'entità non valido. + + + Encoding %1 is unsupported + La codifica %1 non è supportata + + + NDATA in parameter entity declaration. + NDATA all'interno di una dichiarazione d'entità di parametri. + + + + QProcess + + Error writing to process + Errore in scrittura sul processo + + + Resource error (fork failure): %1 + Errore di risorse (fork non riuscito): %1 + + + Error reading from process + Errore in lettura dal processo + + + Process failed to start: %1 + Avvio del processo non riuscito: %1 + + + Could not open input redirection for reading + Impossibile aprire in lettura la ridirezione dell'ingresso + + + No program defined + Nessun programma definito + + + Could not open output redirection for writing + Impossibile aprire in scrittura la ridirezione dell'uscita + + + Process operation timed out + Tempo scaduto per l'operazione del processo + + + Process crashed + Il processo è andato in crash + + + + QNativeSocketEngine + + The proxy type is invalid for this operation + Il tipo di proxy non è valido per questa operazione + + + Network operation timed out + Operazione di rete scaduta + + + The remote host closed the connection + L'host remoto ha chiuso la connessione + + + Invalid socket descriptor + Descrittore di socket non valido + + + Host unreachable + Host irraggiungibile + + + Protocol type not supported + Tipo di protocollo non supportato + + + Datagram was too large to send + Datagramma troppo grande per essere inviato + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Tentativo di usare un socket IPv6 su una piattaforma senza supporto IPv6 + + + Unable to receive a message + Impossibile ricevere un messaggio + + + Permission denied + Permesso negato + + + Connection refused + Connessione rifiutata + + + Unable to write + Impossibile scrivere + + + Another socket is already listening on the same port + Un altro socket è già in ascolto sulla stessa porta + + + Unable to send a message + Impossibile inviare un messaggio + + + The bound address is already in use + L'indirizzo vincolato è già in uso + + + Connection timed out + Connessione scaduta + + + Network error + Errore di rete + + + Unsupported socket operation + Operazione sul socket non supportata + + + Operation on non-socket + Operazione su un non-socket + + + Unable to initialize broadcast socket + Impossibile inizializzare socket di broadcast + + + Unknown error + Errore sconosciuto + + + Unable to initialize non-blocking socket + Impossibile inizializzare socket non bloccante + + + The address is protected + L'indirizzo è protetto + + + Network unreachable + Rete irraggiungibile + + + The address is not available + L'indirizzo non è disponibile + + + Out of resources + Risorse terminate + + + + QNetworkAccessFtpBackend + + No suitable proxy found + Nessun proxy adatto trovato + + + Error while downloading %1: %2 + Errore nello scaricamento di %1: %2 + + + Error while uploading %1: %2 + Errore nell'invio di %1: %2 + + + Cannot open %1: is a directory + Impossibile aprire %1: è una cartella + + + Logging in to %1 failed: authentication required + Accesso a %1 non riuscito: autenticazione richiesta + + + + QNetworkAccessHttpBackend + + No suitable proxy found + Nessun proxy adatto trovato + + + + QCheckBox + + Check + Spunta + + + Toggle + Commuta + + + Uncheck + Togli spunta + + + + QRadioButton + + Check + Spunta + + + + Q3TitleBar + + Close + Chiudi + + + Minimize + Riduci a icona + + + Displays the name of the window and contains controls to manipulate it + Mostra il nome della finestra e contiene i controlli per manipolarla + + + Makes the window full screen + Mostra la finestra a schermo intero + + + System + Sistema + + + Maximize + Ingrandisci + + + Contains commands to manipulate the window + Contiene i comandi per manipolare la finestra + + + Restore up + Ripristina in alto + + + Puts a minimized window back to normal + Ripristina una finestra minimizzata + + + Closes the window + Chiude la finestra + + + Puts a maximized window back to normal + Ripristina una finestra massimizzata + + + Moves the window out of the way + Toglie di torno la finestra + + + Restore down + Ripristina in basso + + + + QScriptNewBreakpointWidget + + Close + Chiudi + + + + Phonon:: + + Games + Giochi + + + Music + Musica + + + Video + Video + + + Communication + Comunicazione + + + Accessibility + Accessibilità + + + Notifications + Notifiche + + + + Phonon::VolumeSlider + + Muted + In silenzio + + + Volume: %1% + Volume : %1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Utilizzare questo interruttore scorrevole per regolare il volume. La posizione più a sinistra è 0% mentre quella destra è %1% + + + + Q3LocalFs + + Could not open +%1 + Impossibile aprire +%1 + + + Could not remove file or directory +%1 + Impossibile rimuovere il file o la cartella +%1 + + + Could not create directory +%1 + Impossibile creare la cartella +%1 + + + Could not read directory +%1 + Impossibile leggere la cartella +%1 + + + Could not rename +%1 +to +%2 + Impossibile rinominare +%1 +a +%2 + + + Could not write +%1 + Impossibile scrivere +%1 + + + + QDial + + QDial + QDial + + + SliderHandle + Levetta del cursore + + + SpeedoMeter + Tachimetro + + + + QAccessibleButton + + Press + Premi + + + + QSocks5SocketEngine + + Network operation timed out + Operazione di rete scaduta + + + Connection to proxy closed prematurely + Connessione al proxy chiusa prematuramente + + + Proxy authentication failed: %1 + Autenticazione al proxy non riuscita: %1 + + + Proxy authentication failed + Autenticazione al proxy non riuscita + + + General SOCKSv5 server failure + Errore generale del server SOCKSv5 + + + Unknown SOCKSv5 proxy error code 0x%1 + Codice di errore sconosciuto 0x%1 del proxy SOCKSv5 + + + Connection not allowed by SOCKSv5 server + Connessione non consentita dal server SOCKSv5 + + + SOCKSv5 command not supported + Comando SOCKSv5 non supportato + + + Connection to proxy timed out + Connessione al proxy scaduta + + + Proxy host not found + Host proxy non trovato + + + TTL expired + TTL scaduto + + + Address type not supported + Tipo di indirizzo non supportato + + + Connection to proxy refused + Connessione al proxy rifiutata + + + SOCKS version 5 protocol error + Errore di protocollo SOCKS versione 5 + + + + Phonon::MMF + + Could not connect + Impossibile connettersi + + + Access denied + Accesso negato + + + Invalid protocol + Protocollo non valido + + + No error + Nessun errorre + + + Audio Output + Uscita audio + + + Disconnected + Disconnesso + + + Server alert + Avviso del server + + + Out of memory + Memoria esaurita + + + Not supported + Non supportato + + + Invalid URL + URL non valido + + + Video output error + Errore nell'uscita video + + + In use + In uso + + + Insufficient bandwidth + Banda insufficiente + + + Already exists + Esiste già + + + Audio output error + Errore nell'uscita audio + + + Multicast error + Errore multicast + + + Proxy server not supported + Server proxy non supportato + + + Permission denied + Permesso negato + + + Not found + Non trovato + + + Not ready + Non pronto + + + Proxy server error + Errore nel server proxy + + + The audio output device + Il dispositivo di uscita dell'audio + + + Streaming not supported + Streaming non supportato + + + Audio or video components could not be played + Impossibile leggere i componenti audio o video + + + Underflow + Scarso flusso + + + Network communication error + Errore di comunicazione di rete + + + Overflow + Sovraccarico + + + Network unavailable + Rete non disponibile + + + Path not found + Percorso non trovato + + + Decoder error + Errore di decodifica + + + DRM error + Errore di DRM + + + Unknown error (%1) + Errore sconosciuto (%1) + + + + QRegExp + + invalid category + categoria non valida + + + bad lookahead syntax + sintassi errata della ricerca in avanti + + + no error occurred + nessun errore + + + missing left delim + delimitatore sinistro mancante + + + bad char class syntax + sintassi errata di classe di caratteri + + + disabled feature used + è stata usata una funzione disabilitata + + + invalid octal value + valore ottale non valido + + + bad repetition syntax + sintassi errata di ripetizione + + + met internal limit + raggiunto un limite interno + + + invalid interval + intervallo non valido + + + unexpected end + fine inattesa + + + + QWhatsThisAction + + What's This? + Che cos'è? + + + + QDeclarativeTextInput + + Could not instantiate cursor delegate + Impossibile istanziare il delegato del cursore + + + Could not load cursor delegate + Impossibile caricare il delegato del cursore + + + + Q3UrlOperator + + The protocol `%1' does not support getting files + Il protocollo `%1' non consente la ricezione dei file + + + The protocol `%1' does not support renaming files or directories + Il protocollo `%1' non consente la rinomina dei file o delle cartelle + + + The protocol `%1' does not support listing directories + Il protocollo `%1' non consente l'elencazione delle cartelle + + + (unknown) + (sconosciuto) + + + The protocol `%1' does not support removing files or directories + Il protocollo `%1' non consente la rimozione dei file o delle cartelle + + + The protocol `%1' does not support putting files + Il protocollo `%1' non consente l'invio dei file + + + The protocol `%1' is not supported + Il protocollo `%1' non è supportato + + + The protocol `%1' does not support copying or moving files or directories + Il protocollo `%1' non consente la copia o lo spostamento dei file o delle cartelle + + + The protocol `%1' does not support creating new directories + Il protocollo `%1' non consente la creazione di nuove cartelle + + + + QFtp + + Listing directory failed: +%1 + Elencazione delle cartelle è fallita: +%1 + + + Creating directory failed: +%1 + Creazione delle cartelle è fallita: +%1 + + + Not connected + Non connesso + + + Connection refused for data connection + Connessione rifiutata dalla connessione di dati + + + Login failed: +%1 + Autenticazione fallita: +%1 + + + Downloading file failed: +%1 + Scaricamento del file fallito: +%1 + + + Connected to host + Connessione all'host + + + Connection timed out to host %1 + Connessione scaduta verso l'host %1 + + + Connected to host %1 + Connessione all'host %1 + + + Connecting to host failed: +%1 + Connessione all'host fallita: +%1 + + + Host %1 not found + Host %1 non trovato + + + Uploading file failed: +%1 + Caricamento file sul sever fallito: +%1 + + + Changing directory failed: +%1 + Modifica della cartella fallita: +%1 + + + Host found + Host trovato + + + Removing directory failed: +%1 + Rimozione della cartella fallita: +%1 + + + Connection refused to host %1 + Connessione all'host %1 rifiutata + + + Connection to %1 closed + Connessione a %1 chiusa + + + Removing file failed: +%1 + Rimozione file fallita: +%1 + + + Host %1 found + Host %1 trovato + + + Unknown error + Errore sconosciuto + + + Connection closed + Connessione chiusa + + + + QDeclarativeListModel + + set: value is not an object + set: il valore non è un oggetto + + + ListElement: cannot use script for property value + ListElement: non può usare uno script come valore di proprietà + + + ListModel: undefined property '%1' + ListModel: proprietà non definita '%1' + + + ListElement: cannot contain nested elements + ListElement: non può contenere elementi annidati + + + insert: value is not an object + insert: il valore non è un oggetto + + + remove: index %1 out of range + remove: l'indice %1 è fuori dai limiti + + + set: index %1 out of range + set: l'indice %1 è fuori dai limiti + + + append: value is not an object + append: il valore non è un oggetto + + + move: out of range + move: fuori dai limiti + + + insert: index %1 out of range + insert: l'indice %1 è fuori dai limiti + + + ListElement: cannot use reserved "id" property + ListElement : non può usare la proprietà riservata "id" + + + + QDeclarativeEngine + + Version mismatch: expected %1, found %2 + Versione non corrispondente: era attesa %1, trovata %2 + + + executeSql called outside transaction() + executeSql chiamato al di fuori di transaction() + + + Read-only Transaction + Transazione di sola lettura + + + SQL transaction failed + Transazione SQL non riuscita + + + transaction: missing callback + transaction: manca funzione chiamante + + + SQL: database version mismatch + SQL: versioni di banche dati non corrispondenti + + + + Phonon::MMF::EnvironmentalReverb + + Reverb delay (ms) + Ritardo del riverbero (ms) + + + Density (%) + Densità (%) + + + Room HF level + Livello della stanza in alta frequenza + + + Reverb level (mB) + Livello del riverbero (mB) + + + Diffusion (%) + Diffusione (%) + + + Decay HF ratio (%) + Rapporto di decadimento delle alte frequenze (%) + + + Decay time (ms) + Tempo di decadimento (ms) + + + Reflections level (mB) + Livello delle riflessioni (mB) + + + Room level (mB) + Livello della stanza (mB) + + + Reflections delay (ms) + Ritardo delle riflessioni (ms) + + + + QDeclarativeVME + + Cannot assign object to list + Impossibile assegnare un oggetto all'elenco + + + Cannot assign object type %1 with no default method + Impossibile assegnare un oggetto di tipo %1 senza metodo predefinito + + + Cannot connect mismatched signal/slot %1 %vs. %2 + Impossibile connettere segnale e ricettore non corrispondenti, %1 e %2 + + + Cannot assign value %1 to property %2 + Impossibile assegnare un valore %1 alla proprietà %2 + + + Cannot set properties on %1 as it is null + Impossibile impostare le proprietà di %1 perché è nullo + + + Cannot assign an object to signal property %1 + Impossibile assegnare un oggetto alla proprietà di segnale %1 + + + Unable to create object of type %1 + Impossibile creare oggetto di tipo %1 + + + Cannot assign object to interface property + Impossibile assegnare oggetto a proprietà di interfaccia + + + Unable to create attached object + Impossibile creare oggetto allegato + + + + QDB2Driver + + Unable to commit transaction + Impossibile depositare la transazione + + + Unable to set autocommit + Impossibile impostare il deposito automatico + + + Unable to connect + Impossibile connettere + + + Unable to rollback transaction + Impossibile annullare la transazione + + + + QIBaseDriver + + Unable to commit transaction + Impossibile depositare la transazione + + + Could not start transaction + Impossibile avviare la transazione + + + Error opening database + Errore nell'apertura della banca dati + + + Unable to rollback transaction + Impossibile annullare la transazione + + + + QIBaseResult + + Unable to commit transaction + Impossibile depositare la transazione + + + Unable to open BLOB + Impossibile aprire il blob + + + Could not describe statement + Impossibile descrivere la dichiarazione + + + Could not describe input statement + Impossibile descrivere la dichiarazione di ingresso + + + Could not allocate statement + Impossibile allocare la dichiarazione + + + Unable to write BLOB + Impossibile scrivere il blob + + + Could not start transaction + Impossibile avviare la transazione + + + Unable to close statement + Impossibile chiudere la dichiarazione + + + Could not get query info + Impossibile prelevare le informazioni dell'interrogazione + + + Could not find array + Impossibile trovare l'array + + + Could not get array data + Impossibile prelevare i dati dell'array + + + Unable to execute query + Impossibile eseguire l'interrogazione + + + Could not prepare statement + Impossibile preparare la dichiarazione + + + Could not fetch next item + Impossibile prelevare il prossimo elemento + + + Could not get statement info + Impossibile ottenere informazioni sulla dichiarazione + + + Unable to create BLOB + Impossibile creare il blob + + + Unable to read BLOB + Impossibile leggere il blob + + + + QMYSQLDriver + + Unable to commit transaction + Impossibile depositare la transazione + + + Unable to open database ' + Impossibile aprire la banca dati ' + + + Unable to connect + Impossibile connettere + + + Unable to rollback transaction + Impossibile annullare la transazione + + + Unable to begin transaction + Impossibile avviare la transazione + + + + QOCIDriver + + Unable to commit transaction + Impossibile depositare la transazione + + + Unable to initialize + QOCIDriver + Impossibile inizializzare + + + Unable to logon + Impossibile accedere + + + Unable to rollback transaction + Impossibile annullare la transazione + + + Unable to begin transaction + Impossibile avviare la transazione + + + + QODBCDriver + + Unable to commit transaction + Impossibile depositare la transazione + + + Unable to enable autocommit + Impossibile abilitare il deposito automatico + + + Unable to disable autocommit + Impossibile disabilitare il deposito automatico + + + Unable to connect - Driver doesn't support all functionality required + Impossibile connettersi: il driver non supporta tutte le funzionalità richieste + + + Unable to connect + Impossibile connettere + + + Unable to rollback transaction + Impossibile annullare la transazione + + + + QSQLite2Driver + + Unable to commit transaction + Impossibile depositare la transazione + + + Error opening database + Errore nell'apertura della banca dati + + + Unable to rollback transaction + Impossibile annullare la transazione + + + Unable to begin transaction + Impossibile avviare la transazione + + + + QSQLiteDriver + + Unable to commit transaction + Impossibile depositare la transazione + + + Error closing database + Errore nella chiusura della banca dati + + + Error opening database + Errore nell'apertura della banca dati + + + Unable to rollback transaction + Impossibile annullare la transazione + + + Unable to begin transaction + Impossibile avviare la transazione + + + + QAbstractSocket + + Host not found + Host non trovato + + + Connection refused + Connessione rifiutata + + + Connection timed out + Connessione scaduta + + + Socket is not connected + Socket non connesso + + + Socket operation timed out + Operazione sul socket scaduta + + + Network unreachable + Rete irraggiungibile + + + Operation on socket is not supported + L'operazione sul socket non è supportata + + + + QHostInfoAgent + + Host not found + Host non trovato + + + No host name given + Nessun nome di host specificato + + + Unknown address type + Tipo di indirizzo sconosciuto + + + Unknown error + Errore sconosciuto + + + Invalid hostname + Nome dell'host non valido + + + + Phonon::Gstreamer::MediaObject + + Could not open media source. + Impossibile aprire la fonte audio/video. + + + Missing codec helper script assistant. + Assistente dello script di supporto al codec mancante. + + + Could not decode media source. + Impossibile decodificare la fonte audio/video. + + + Invalid source type. + Tipo di fonte non valido. + + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + Impossibile avviare la lettura. + +Controlla l'installazione di GStreamer e assicurati +di aver installato libgstreamer-plugins-base. + + + Plugin codec installation failed for codec: %0 + Installazione dell'estensione per codec non riuscita per il codec: %0 + + + Could not open audio device. The device is already in use. + Impossibile aprire il dispositivo audio. Il dispositivo è già in uso. + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Manca un codec richiesto. Devi installare i codec seguenti per leggere questo contenuto: %0 + + + Could not locate media source. + Impossibile trovare la fonte audio/video. + + + + QLibrary + + Could not unmap '%1': %2 + Impossibile effettuare unmap di «%1»: %2 + + + Cannot unload library %1: %2 + Impossibile scaricare la libreria %1: %2 + + + Cannot load library %1: %2 + Impossibile caricare la libreria %1: %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + L'estensione '%1' usa una libreria Qt non compatibile. (%2.%3.%4) [%5] + + + Cannot resolve symbol "%1" in %2: %3 + Impossible de résoudre le symbole "%1" dans %2 : %3 + + + Plugin verification data mismatch in '%1' + Dati di verifica dell'estensione non corrispondenti in '%1' + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + L'estensione '%1' usa una libreria Qt non compatibile (non si possono mischiare le versioni di debug con quelle di rilascio). + + + The file '%1' is not a valid Qt plugin. + Il file '%1' non è un'estensione valida di Qt. + + + The shared library was not found. + La libreria condivisa non è stata trovata. + + + Unknown error + Errore sconosciuto + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3" + + + Could not mmap '%1': %2 + Impossibile effettuare mmap di '%1': %2 + + + + QHttp + + Connection refused (or timed out) + Connessione rifiutata (o scaduta) + + + Data corrupted + Data corrotta + + + Connected to host + Connessione all'host + + + Connected to host %1 + Connessione all'host %1 + + + Host %1 not found + Host %1 non trovato + + + Unknown authentication method + Metodo di autentificazione sconosciuto + + + Host requires authentication + L'host richiede l'autentificazione + + + Error writing response to device + Errore in scrittura durante la risposta al dispositivo + + + HTTPS connection requested but SSL support not compiled in + Connessione HTTPS richiesta ma il supporto SSL non è compilato in + + + Host found + Host trovato + + + Connection refused + Connessione rifiutata + + + Proxy authentication required + Autenticazione al proxy richiesta + + + Unknown protocol specified + Protocollo specificato sconosciuto + + + HTTP request failed + Richiesta HTTP fallita + + + Proxy requires authentication + Il proxy richiede un'autentificazione + + + Authentication required + Autentificazione richiesta + + + SSL handshake failed + Inizializzazione SSL fallita + + + Connection to %1 closed + Connessione a %1 chiusa + + + Invalid HTTP chunked body + Frammento HTTP non valido + + + Host %1 found + Host %1 trovato + + + Wrong content length + Lunghezza contenuto errata + + + Unknown error + Errore sconosciuto + + + Invalid HTTP response header + Intestazione di risposta HTTP non valida + + + Connection closed + Connessione chiusa + + + No server set to connect to + Nessun server impostato per la connessione a + + + Server closed connection unexpectedly + La connessione si è interrotta inaspettatamente + + + Request aborted + Richiesta interrotta + + + + QDeclarativeImportDatabase + + is ambiguous. Found in %1 and in %2 + ambiguo. Trovato in %1 e in %2 + + + local directory + cartella locale + + + import "%1" has no qmldir and no namespace + l'importazione '%1' non ha qmldir né spazio di nomi + + + - %1 is not a namespace + - %1 non è uno spazio di nomi + + + module "%1" definition "%2" not readable + definizione "%2" per il modulo "%1% non leggibile + + + module "%1" plugin "%2" not found + plugin "%2" per il modulo "%1" non trovato + + + is not a type + non è un tipo + + + module "%1" is not installed + il modulo "%1" non è installato + + + module "%1" version %2.%3 is not installed + la versione %2.%3 del modulo "%1" non è installata + + + - nested namespaces not allowed + - spazi di nomi annidati non permessi + + + plugin cannot be loaded for module "%1": %2 + plugin non caricabile per il modulo "%1" : %2 + + + is instantiated recursively + è istanziato ricorsivamente + + + is ambiguous. Found in %1 in version %2.%3 and %4.%5 + ambiguo. Trovato in %1 in versione %2.%3 e %4.%5 + + + "%1": no such directory + "%1": cartella inesistente + + + + QXml + + unparsed entity reference in wrong context + riferimento a entità non analizzata in contesto errato + + + external parsed general entity reference not allowed in DTD + riferimento a entità esterna generale analizzata non consetito nella DTD + + + wrong value for standalone declaration + valore errato per la dichiarazione "standalone" + + + encoding declaration or standalone declaration expected while reading the XML declaration + attesa una dichiarazione di codifica o una dichiarazione "standalone" nella lettura della dichiarazione XML + + + no error occurred + nessun errore + + + error occurred while parsing reference + errore nell'analisi del riferimento + + + standalone declaration expected while reading the XML declaration + attesa dichiarazione "standalone" nella lettura della dichiarazione XML + + + invalid name for processing instruction + nome non valido per l'istruzione di elaborazione + + + error triggered by consumer + errore causato dal consumatore + + + error occurred while parsing element + errore nell'analisi dell'elemento + + + unexpected character + carattere inatteso + + + tag mismatch + marcatori non corrispondenti + + + error occurred while parsing content + errore nell'analisi del contenuto + + + error occurred while parsing comment + errore nell'analisi del commento + + + internal general entity reference not allowed in DTD + riferimento a entità interna generale non consentito nella DTD + + + recursive entities + entità ricorsive + + + more than one document type definition + più di una DTD + + + version expected while reading the XML declaration + attesa versione nella lettura della dichiarazione XML + + + letter is expected + attesa una lettera + + + unexpected end of file + fine di file inattesa + + + external parsed general entity reference not allowed in attribute value + riferimento a entità esterna generale analizzata non consentito in un valore di attributo + + + error in the text declaration of an external entity + errore nella dichiarazione del testo di un'entità esterna + + + error occurred while parsing document type definition + errore nell'analisi della DTD + + + + QSystemSemaphore + + %1: does not exist + %1: non esiste + + + %1: already exists + %1: esiste già + + + %1: unknown error %2 + %1: errore sconosciuto %2 + + + %1: permission denied + %1: permesso negato + + + %1: out of resources + %1: risorse insufficienti + + + + Phonon::MMF::MediaObject + + Error opening source: resource is compressed + Errore nell'apertura della fonte: risorsa compressa + + + Error opening source: media type could not be determined + Errore nell'apertura della fonte: impossibile determinare il tipo di audio o video + + + Error opening source: resource not valid + Errore nell'apertura della fonte: risorsa non valida + + + Error opening source: type not supported + Errore nell'apertura della fonte: tipo non supportato + + + + QDeclarativePixmap + + Error decoding: %1: %2 + Errore nella decodifica: %1: %2 + + + Cannot open: %1 + Impossibile aprire: %1 + + + Failed to get image from provider: %1 + Recupero dell'immagine dal fornitore non riuscita: %1 + + + + QSQLiteResult + + Unable to fetch row + Impossibile prelevare la riga + + + No query + Nessuna interrogazione + + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to bind parameters + Impossibile collegare i parametri + + + Unable to reset statement + Impossibile azzerare la dichiarazione + + + Parameter count mismatch + Numero di parametri non corrispondente + + + + QApplication + + Activates the program's main window + Attiva la finestra principale del programma + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Activate + Attiva + + + Executable '%1' requires Qt %2, found Qt %3. + L'esecuzione '%1' richiede Qt %2 mentre è stato rilevato Qt %3. + + + Incompatible Qt Library Error + Errore d'incompatibilità delle librerie Qt + + + + QDeclarativeBinding + + Binding loop detected for property "%1" + Ciclo di collegamento rilevato per la proprietà "%1" + + + + QDeclarativeBindings + + Binding loop detected for property "%1" + Ciclo di collegamento rilevato per la proprietà "%1" + + + + QUnicodeControlCharacterMenu + + RLE Start of right-to-left embedding + RLE inizio incorporamento da destra a sinistra + + + ZWSP Zero width space + ZWJ spazio di ampiezza zero + + + Insert Unicode control character + Inserisci carattere di controllo Unicode + + + LRO Start of left-to-right override + LRO inizio forzatura da sinistra a destra + + + LRE Start of left-to-right embedding + LRE inizio incorporamento da sinistra a destra + + + RLM Right-to-left mark + RLM indicatore di direzione da destra a sinistra + + + PDF Pop directional formatting + PDF ripristina impostazioni di direzione del testo + + + ZWNJ Zero width non-joiner + ZWNJ carattere non congiungente di ampiezza zero + + + RLO Start of right-to-left override + RLO inizio forzatura da destra a sinistra + + + ZWJ Zero width joiner + ZWJ carattere congiungente di ampiezza zero + + + LRM Left-to-right mark + LRM indicatore di direzione da sinistra a destra + + + + QWebFrame + + Request blocked + Richiesta bloccata + + + Frame load interrupted by policy change + Caricamento riquadro interrotto dalla modifica dei criteri + + + Request cancelled + Richiesta annullata + + + Cannot show URL + Impossibile mostrare l'URL + + + File does not exist + Il file non esiste + + + Cannot show mimetype + Impossible mostrare il Tipo MIME + + + + QHttpSocketEngine + + Proxy connection refused + Connessione al proxy rifiutata + + + Proxy denied connection + Connessione al proxy negata + + + Proxy server not found + Connessione al serveur non rilevata + + + Proxy server connection timed out + Connessione al server proxy scaduta + + + Did not receive HTTP response from proxy + Non è stata ricevuta alcuna risposta HTTP dal proxy + + + Proxy connection closed prematurely + La connessione al proxy si è chiusa prematuramente + + + Error communicating with HTTP proxy + Errore di comunicazione con il proxy HTTP + + + Authentication required + Autentificazione richiesta + + + Error parsing authentication request from proxy + Errore durante l'analsi di autentificazione richiesta da parte del proxy + + + + QNetworkAccessManager + + Network access is disabled. + L'accesso alla rete è disabilitato. + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Errore nello scaricamento di %1; il server ha risposto: %2 + + + Network session error. + Errore nella sessione di rete. + + + Protocol "%1" is unknown + Le protocole "%1" est inconnu + + + Temporary network failure. + Errore di rete temporaneo. + + + + QAbstractSpinBox + + Step &down + Sposta in &basso + + + &Step up + Sposta in &alto + + + &Select All + Seleziona &tutto + + + + QDeclarativeXmlRoleList + + An XmlListModel query must start with '/' or "//" + Un'interrogazione XmlListModel deve iniziare per '/' o "//" + + + + QDB2Result + + Unable to bind variable + Impossibile collegare la variabile + + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to fetch next + Impossibile prelevare il successivo + + + Unable to prepare statement + Impossibile preparare la dichiarazione + + + Unable to fetch record %1 + Impossibile prelevare il record %1 + + + Unable to fetch first + Impossibile prelevare il primo + + + + QODBCResult + + Unable to bind variable + Impossibile collegare la variabile + + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to fetch next + Impossibile prelevare il successivo + + + Unable to fetch last + Impossibile prelevare l'ultimo + + + Unable to prepare statement + Impossibile preparare la dichiarazione + + + Unable to fetch previous + Impossibile prelevare il precedente + + + Unable to fetch + Impossibile prelevare + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Impossibile impostare 'SQL_CURSOR_STATIC' come un attributo della dichiarazione. Controlla la configurazione del driver ODBC. + + + Unable to fetch first + Impossibile prelevare il primo + + + + QPSQLDriver + + Unable to subscribe + Impossibile iscriversi + + + Could not begin transaction + Impossibile iniziare la transazione + + + Could not rollback transaction + Impossibile annullare la transazione + + + Could not commit transaction + Impossibile depositare la transazione + + + Unable to connect + Impossibile connettere + + + Unable to unsubscribe + Impossibile deiscriversi + + + + QInputDialog + + Enter a value: + Inserisci un valore: + + + + QIODevice + + No such file or directory + File o cartella inesistente + + + Permission denied + Permesso negato + + + No space left on device + Non c'è più spazio sul dispositivo + + + Unknown error + Errore sconosciuto + + + Too many open files + Troppi file aperti + + + + FakeReply + + Invalid URL + URL non valido + + + Fake error ! + Errore finto! + + + + QMultiInputContext + + Select IM + Seleziona metodo d'inserimento + + + + QTabBar + + Scroll Left + Scorri a sinistra + + + Scroll Right + Scorri a destra + + + + QUndoModel + + <empty> + <vuoto> + + + + QNetworkAccessCacheBackend + + Error opening %1 + Errore nell'apertura di %1 + + + + QDeclarativeParser + + Script import qualifiers must be unique. + I qualificatori di importazione degli script devono essere univoci. + + + Unterminated regular expression class + Classe di espressioni regolari non conclusa + + + Library import requires a version + L'importazione di librerie richiede una versione + + + Invalid regular expression flag '%0' + Contrassegno non valido per espressione regolare '%0' + + + JavaScript declaration outside Script element + Dichiarazione JavaScript al di fuori di un elemento Script + + + Illegal character + Carattere non consentito + + + Unclosed comment at end of file + Commento non concluso alla fine del file + + + Unclosed string at end of line + Stringa non conclusa alla fine della riga + + + Expected property type + Era atteso un tipo di proprietà + + + Expected type name + Era atteso un nome di tipo + + + Illegal escape sequence + Sequenza di escape non consentita + + + Readonly not yet supported + Sola lettura non ancora supportata + + + Unterminated regular expression literal + Letterale a espressione regolare non concluso + + + Property value set multiple times + Valore della proprietà impostato più volte + + + Unterminated regular expression backslash sequence + Sequenza con barra inversa di espressione regolare non conclusa + + + Identifier cannot start with numeric literal + L'identificativo non può cominciare con un letterale numerico + + + Script import requires a qualifier + L'importazione di script richiede un qualificatore + + + Illegal syntax for exponential number + Sintassi non consentita per numero esponenziale + + + Invalid property type modifier + Modificatore del tipo di proprietà non valido + + + Reserved name "Qt" cannot be used as an qualifier + Il nome riservato"Qt" non può essere usato come qualificatore + + + Expected token `%1' + Elemento atteso '%1' + + + Unexpected token `%1' + Elemento inatteso '%1' + + + Expected parameter type + Era atteso un tipo di parametro + + + Illegal unicode escape sequence + Sequenza di escape Unicode non consentita + + + Unexpected property type modifier + Modificatore del tipo di proprietà inatteso + + + Invalid import qualifier ID + Identificativo del qualificatore d'importazione non valido + + + Syntax error + Errore di sintassi + + + + QScriptEdit + + Disable Breakpoint + Disabilita punto di interruzione + + + Breakpoint Condition: + Condizione del punto di interruzione: + + + Toggle Breakpoint + Commuta punto di interruzione + + + Enable Breakpoint + Abilita punto di interruzione + + + + QMYSQLResult + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to store statement results + Impossibile memorizzare i risultati della dichiarazione + + + Unable to execute next query + Impossibile eseguire l'interrogazione successiva + + + Unable to bind outvalues + Impossibile collegare i valori in uscita + + + Unable to store next result + Impossibile memorizzare il prossimo risultato + + + Unable to fetch data + Impossibile prelevare dati + + + Unable to prepare statement + Impossibile preparare la dichiarazione + + + Unable to store result + Impossibile memorizzare il risultato + + + Unable to bind value + Impossibile collegare il valore + + + Unable to execute query + Impossibile eseguire l'interrogazione + + + Unable to reset statement + Impossibile azzerare la dichiarazione + + + + QSQLite2Result + + Unable to execute statement + Impossibile eseguire la dichiarazione + + + Unable to fetch results + Impossibile prelevare i risultati + + + + Phonon::AudioOutput + + <html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html> + <html>Passo al dispositivo di lettura audio <b>%1</b><br/> che ha maggiore preferenza o è configurato specificamente per questo flusso.</html> + + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Il dispositivo di lettura audio <b>%1</b> non funziona.<br/>Ripiego su <b>%2</b>.</html> + + + Revert back to device '%1' + Ritorno al dispositivo '%1' + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Passo al dispositivo di lettura audio <b>%1</b><br/> che è appena diventato disponibile e ha una preferenza maggiore.</html> + + + + Q3MainWindow + + Line up + Allinea + + + Customize... + Personalizza... + + + + QUdpSocket + + This platform does not support IPv6 + Questa piattaforma non supporta IPv6 + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Avviso: sembra che le estensioni fondamentali di GStreamer non siano installate. + Il supporto audio e video è stato disabilitato. + + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Avviso: sembra che il pacchetto gstreamer0.10-plugins-good non sia installato. + Alcune funzioni video sono state disabilitate. + + + + QDeclarativePropertyChanges + + Cannot assign to read-only property "%1" + Impossibile assegnare alla proprietà di sola lettura "%1" + + + PropertyChanges does not support creating state-specific objects. + PropertyChanges non supporta la creazione di oggetti a stato specifico. + + + Cannot assign to non-existent property "%1" + Impossibile assegnare una proprietà inesistente "%1" + + + + QLocalServer + + %1: Name error + %1: errore nel nome + + + %1: Unknown error %2 + %1: errore sconosciuto %2 + + + %1: Permission denied + %1: permesso negato + + + %1: Address in use + %1: Indirizzo già in uso + + + + Phonon::MMF::AbstractVideoPlayer + + Pause failed + Pausa non riuscita + + + Seek failed + Spostamento non riuscito + + + Opening clip failed + Apertura dello spezzone non riuscita + + + Getting position failed + Recupero della posizione non riuscito + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Non pronto alla lettura + + + Error opening file + Errore nell'apertura del file + + + Error opening source: resource not opened + Errore nell'apertura della fonte: risorsa non aperta + + + Error opening URL + Errore nell'apertura dell'URL + + + Loading clip failed + Caricamento dello spezzone non riuscito + + + Setting volume failed + Impostazione del volume non riuscita + + + Error opening resource + Errore nell'apertura della risorsa + + + Playback complete + Lettura completata + + + + QDeclarativeAbstractAnimation + + Animation is an abstract class + L'animazione è una classe astratta + + + Cannot animate non-existent property "%1" + Impossibile animare la proprietà inesistente "%1" + + + Cannot animate read-only property "%1" + Impossibile animare la proprietà di sola lettura "%1" + + + + QCoreApplication + + %1: unable to make key + QSystemSemaphore + %1: impossibile creare la chiave + + + %1: ftok failed + QSystemSemaphore + %1: ftok non riuscito + + + %1: out of resources + QSystemSemaphore + %1: risorse insufficienti + + + %1: does not exist + QSystemSemaphore + %1: non esiste + + + %1: unknown error %2 + QSystemSemaphore + %1: errore sconosciuto %2 + + + %1: key is empty + QSystemSemaphore + %1: la chiave è vuota + + + %1: already exists + QSystemSemaphore + %1: esiste già + + + + QDeclarativeFlipable + + front is a write-once property + 'front' (fronte) è una proprietà scrivibile una volta sola + + + back is a write-once property + 'back' (retro) è una proprietà scrivibile una volta sola + + + + Q3ToolBar + + More... + Altro... + + + + QDeclarativeParentAnimation + + Unable to preserve appearance under non-uniform scale + Impossibile mantenere l'aspetto in riscalamento non uniforme + + + Unable to preserve appearance under complex transform + Impossibile mantenere l'aspetto in trasformazione complessa + + + Unable to preserve appearance under scale of 0 + Impossibile mantenere l'aspetto in scala di 0 + + + + QDeclarativeParentChange + + Unable to preserve appearance under non-uniform scale + Impossibile mantenere l'aspetto in riscalamento non uniforme + + + Unable to preserve appearance under complex transform + Impossibile mantenere l'aspetto in trasformazione complessa + + + Unable to preserve appearance under scale of 0 + Impossibile mantenere l'aspetto in scala di 0 + + + + QMultiInputContextPlugin + + Multiple input method switcher that uses the context menu of the text widgets + Cambio multiplo del metodo d'inserimento che usa il menu contestuale degli campi di testo + + + Multiple input method switcher + Cambio multiplo del metodo d'inserimento + + + + Q3ProgressDialog + + Cancel + Annulla + + + + QProgressDialog + + Cancel + Annulla + + + + QGstreamerPlayerSession + + Unable to play %1 + Impossibile leggere %1 + + + + QDeclarativeComponent + + Invalid empty URL + URL vuoto non valido + + + + MAC_APPLICATION_MENU + + Hide Others + Nascondi gli altri + + + Quit %1 + Esci da %1 + + + About %1 + Informazioni su %1 + + + Preferences... + Preferenze... + + + Services + Servizi + + + Hide %1 + Nascondi %1 + + + Show All + Mostra tutto + + + + QTDSDriver + + Unable to open connection + Impossibile aprire la connessione + + + Unable to use database + Impossibile usare la banca dati + + + + QDeclarativeVisualDataModel + + Delegate component must be Item type. + Il componente delegato deve essere di tipo Item. + + + + QMediaPlaylist + + The file could not be accessed. + Impossibile accedere al file. + + + Could not add items to read only playlist. + Impossibile aggiungere elementi alla scaletta in sola lettura dei file multimediali da riprodurre. + + + Playlist format is not supported + Il formato della scaletta dei file multimediali da riprodurre non è supportato + + + + QDeclarativeConnections + + Connections: script expected + Connections: era atteso uno script + + + Connections: nested objects not allowed + Connections: oggetti annidati non permessi + + + Cannot assign to non-existent property "%1" + Impossibile assegnare alla proprietà inesistente"%1" + + + Connections: syntax error + Connections: errore di sintassi + + + + QPluginLoader + + The plugin was not loaded. + L'estensione non è stata caricata. + + + Unknown error + Errore sconosciuto + + + + QSlider + + Page up + Pagina sù + + + Position + Posizione + + + Page right + Pagina destra + + + Page down + Pagina giù + + + Page left + Pagina sinistra + + + + CloseButton + + Close Tab + Chiudi scheda + + + + QPSQLResult + + Unable to prepare statement + Impossibile preparare la dichiarazione + + + Unable to create query + Impossibile creare l'interrogazione + + + + QNetworkSession + + Invalid configuration. + Configurazione non valida. + + + + QNetworkAccessDataBackend + + Invalid URI: %1 + URI non valido: %1 + + + Operation not supported on %1 + Operazione non supportata su %1 + + + + QDeclarativeAnimatedImage + + Qt was built without support for QMovie + Qt è stato generato senza supporto per QMovie + + + + QObject + + "%1" duplicates a previous role name and will be disabled. + "%1" duplica un nome di ruolo precedente e sarà disabilitato. + + + PulseAudio Sound Server + Server sonoro PulseAudio + + + invalid query: "%1" + interrogazione non valida: "%1" + + + + QDeclarativeKeysAttached + + Keys is only available via attached properties + Keys è disponibile solo attraverso proprietà allegate + + + + QMenuBar + + Actions + Azioni + + + + QMediaPlayer + + The QMediaPlayer object does not have a valid service + L'oggetto QMediaPlayer non presenta un servizio valido + + + + QNetworkAccessDebugPipeBackend + + Socket error on %1: %2 + Errore di socket su %1: %2 + + + Remote host closed the connection prematurely on %1 + L'host remoto ha chiuso la connessione prematuramente su %1 + + + Write error writing to %1: %2 + Errore nella scrittura su %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Richiesta di apertura di file non locale %1 + + + Read error reading from %1: %2 + Errore nella lettura da %1: %2 + + + Cannot open %1: Path is a directory + Impossibile aprire %1: il percorso è una cartella + + + Error opening %1: %2 + Errore nell'apertura di %1: %2 + + + Write error writing to %1: %2 + Errore nella scrittura su %1: %2 + + + + QHostInfo + + No host name given + Nessun nome di host specificato + + + Unknown error + Errore sconosciuto + + + + QDeclarativeLoader + + Loader does not support loading non-visual elements. + Il caricatore non supporta il caricamento di elementi non visivi. + + + + QNetworkReplyImpl + + Operation canceled + Operazione annullata + + + + Q3NetworkProtocol + + Operation stopped by the user + Operazione interrotta dall'utente + + + + QStateMachine + + Missing default state in history state '%1' + Stato predefinito mancante nello stato cronologico '%1' + + + Unknown error + Errore sconosciuto + + + Missing initial state in compound state '%1' + Stato iniziale mancante nello stato composto '%1' + + + No common ancestor for targets and source of transition from state '%1' + Nessun antenato comune per le destinazioni e l'origine della transizione dallo stato '%1' + + + + QMdiArea + + (Untitled) + (Senza titolo) + + + + QDeclarativeXmlListModelRole + + An XmlRole query must not start with '/' + Un'interrogazione XmlRole non può cominciare per '/' + + + + QDeclarativeBehavior + + Cannot change the animation assigned to a Behavior. + Impossibile cambiare l'animazione assegnata a un comportamento. + + + + Q3Accel + + %1, %2 not defined + %1, %2 non definiti + + + Ambiguous %1 not handled + %1 ambiguo non gestito + + + + Phonon::MMF::EffectFactory + + Enabled + Abilitato + + + + Phonon::MMF::DsaVideoPlayer + + Video display error + Errore nella visualizzazione del video + + + + Phonon::MMF::SurfaceVideoPlayer + + Video display error + Errore nella visualizzazione del video + + + + Phonon::MMF::StereoWidening + + Level (%) + Livello (%) + + + + Phonon::MMF::AudioPlayer + + Getting position failed + Recupero della posizione non riuscito + + + + QDeclarativeKeyNavigationAttached + + KeyNavigation is only available via attached properties + KeyNavigation è disponibile solo attraverso proprietà allegate + + + + QDeclarativeAnchorAnimation + + Cannot set a duration of < 0 + Impossibile impostare una durata negativa + + + + QDeclarativePauseAnimation + + Cannot set a duration of < 0 + Impossibile impostare una durata negativa + + + + QDeclarativePropertyAnimation + + Cannot set a duration of < 0 + Impossibile impostare una durata negativa + + + + QTcpServer + + Operation on socket is not supported + L'operazione sul socket non è supportata + + + + QDeclarativeXmlListModel + + Qt was built without support for xmlpatterns + Qt è stato generato senza supporto per gli schemi XML + + + diff -Nru goldendict-1.0.2~git20130620/locale/qt_lt.ts goldendict-1.5.0~ppa131019/locale/qt_lt.ts --- goldendict-1.0.2~git20130620/locale/qt_lt.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/qt_lt.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,5719 @@ + + + + + MAC_APPLICATION_MENU + + Services + Paslaugos + + + Hide %1 + Slėpti %1 + + + Hide Others + Slėpti kitką + + + Show All + Rodyti viską + + + Preferences... + Nuostatos... + + + Quit %1 + Baigti %1 + + + About %1 + Apie %1 + + + + AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html><b>%1</b>Garso atkūrimo įrenginys neveikia.<br/>Naudosimas <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Naudosimas <b>%1</b> garso atkūrimo įrenginys,<br/>kuris ką tik tapo prieinamu bei turi aukštesnį prioritetą.</html> + + + Revert back to device '%1' + Naudosimas įrenginys „%1“ + + + + Phonon:: + + Notifications + Pranešimai + + + Music + Muzika + + + Video + Vaizdai + + + Communication + Bendravimas + + + Games + Žaidimai + + + Accessibility + Prieinamumas + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Attention: Vous n'avez apparemment pas installé le paquet gstreamer0.10-plugins-good. +Des fonctionnalités vidéo ont été desactivées. + Dėmesio: panašu, kad gstreamer0.10-plugins-good paketas neįdiegtas. + Kai kurios vaizdo funkcijos uždraustos. + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Attention: Vous n'avez apparemment pas installées les plugins de base de GStreamer. +Le support audio et vidéo est désactivé. + Dėmesio: panašu, kad neįdiegtas pagrindinis GStreamer papildinys. + Visas garso ir vaizdo palaikymas yra uždraustas + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assuez-vousd'avoir installé libgstreamer-plugins-base. + Nepavyksta groti. + +Patikrinkite, ar tinkamai įdiegtas Gstreamer ir +jo elementas libgstreamer-plugins-base. + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Des codecs requis sont manquants. Vous devez installer les codecs suivants pour jouer le contenu + + Trūksta reikiamos kodavimo priemonės. Norėdami atlikti šį kūrinį, įdiekite šią kodavimo priemonę: %0 + Trūksta reikiamos kodavimo priemonės. Norėdami atlikti šį kūrinį, įdiekite šias kodavimo priemones: %0 + Trūksta reikiamos kodavimo priemonės. Norėdami atlikti šį kūrinį, įdiekite šias kodavimo priemones: %0 + + + + Could not open media source. + Nepavyksta atverti kūrinio šaltinio. + + + Invalid source type. + Netinkamas šaltinio tipas. + + + Could not locate media source. + Nepavyksta rasti kūrinio šaltinio. + + + Could not open audio device. The device is already in use. + Nepavyksta atverti garso įrenginio.Įrenginys užimtas. + + + Could not decode media source. + Nepavyksta iškoduoti kūrinio šaltinio. + + + + Phonon::VolumeSlider + + Volume: %1% + Garsumas: %1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Utilisez le slider pour ajuster le volume. La position la plus à gauche est 0%, la plus à droite est %1% + Garsumą keiskite šliaužikliu. Kairiausia padėtis atitinka 0%, o dešiniausia – %1% + + + + Q3Accel + + %1, %2 not defined + %1, %2 seka neapibrėžta + + + Ambiguous %1 not handled + Séquence ambiguë %1 non traitée + + + + + Q3DataTable + + True + Tiesa + + + False + Melas + + + Insert + Įterpti + + + Update + Atnaujinti + + + Delete + Pašalinti + + + + Q3FileDialog + + Copy or Move a File + Kopijuoti arba perkelti rinkmeną + + + Read: %1 + Skaityti: %1 + + + Write: %1 + Rašyti: %1 + + + Cancel + Atšaukti + + + All Files (*) + Visos rinkmenos (*) + + + Name + Pavadinimas + + + Size + Dydis + + + Type + Tipas + + + Date + Data + + + Attributes + Savybės + + + &OK + &Gerai + + + Look &in: + Kur &ieškoti: + + + File &name: + Rinkmenos &pavadinimas: + + + File &type: + Rinkmenos &tipas: + + + Back + Atgal + + + One directory up + Į aukštesnį aplanką + + + Create New Folder + Sukurti naują aplanką + + + List View + Sąrašo rodinys + + + Detail View + Detalus rodinys + + + Preview File Info + Informations du fichier prévisualisé + Rinkmenos informacijos peržiūra + + + Preview File Contents + Contenu du fichier prévisualisé + Rinkmenos turinio peržiūra + + + Read-write + Tik rašyti + + + Read-only + Tik skaityti + + + Write-only + Tik rašyti + + + Inaccessible + Neprieinama + + + Symlink to File + Sukurti simbolinę nuorodą į rinkmeną + + + Symlink to Directory + Sukurti simbolinę nuorodą į aplanką + + + Symlink to Special + Sukurti specialią simbolinę nuorodą + + + File + Rinkmena + + + Dir + Aplankas + + + Special + Specialus + + + Open + Atverti + + + Save As + Įrašyti kaip + + + &Open + At&verti + + + &Save + Į&rašyti + + + &Rename + &Pervadinti + + + &Delete + &Ištrinti + + + R&eload + Įk&elti iš naujo + + + Sort by &Name + Rikiuoti pagal &pavadinimą + + + Sort by &Size + Rikiuoti pagal &dydį + + + Sort by &Date + Rikiuoti pagal &datą + + + &Unsorted + &Nerikiuoti + + + Sort + Rikiuoti + + + Show &hidden files + Rodyti paslėptas &rinkmenas + + + the file + rinkmeną + + + the directory + aplanką + + + the symlink + simbolinę nuorodą + + + Delete %1 + Ištrinti %1 + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Tikrai ištrinti %1 „%2“?</qt> + + + &Yes + &Taip + + + &No + &Ne + + + New Folder 1 + Naujas aplankas 1 + + + New Folder + Naujas aplankas + + + New Folder %1 + Naujas aplankas %1 + + + Find Directory + Ieškoti aplanko + + + Directories + Aplankai + + + Directory: + Aplankas: + + + Error + Klaida + + + %1 +File not found. +Check path and filename. + %1 +Rinkmena nerasta. +Patikrinkite rinkmenos kelią ir pavadinimą. + + + + Q3LocalFs + + Could not read directory +%1 + Nepavyksta nuskaityti iš aplanko +%1 + + + Could not create directory +%1 + Nepavyksta sukurti aplanko +%1 + + + Could not remove file or directory +%1 + Nepavyksta pašalinti rinkmenos arba aplanko +%1 + + + Could not rename +%1 +to +%2 + %1 +nepavyksta pervadinti į +%2 + + + Could not open +%1 + Nepavyksta atverti +%1 + + + Could not write +%1 + Nepavyksta rašyti į +%1 + + + + Q3MainWindow + + Line up + Aligner + + + + Customize... + Personnaliser... + Derinti... + + + + Q3NetworkProtocol + + Operation stopped by the user + Veiksmą nutraukė naudotojas + + + + Q3ProgressDialog + + Cancel + Atšaukti + + + + Q3TabDialog + + OK + Gerai + + + Apply + Pritaikyti + + + Help + Pagalba + + + Defaults + Numatyta + + + Cancel + Atšaukti + + + + Q3TextEdit + + &Undo + Atša&ukti + + + &Redo + Paka&rtoti + + + Cu&t + Iškirp&ti + + + &Copy + &Kopijuoti + + + &Paste + &Padėti + + + Clear + Išvalyti + + + Select All + Viską pažymėti + + + + Q3TitleBar + + System + Sistema + + + Restore up + Atstatyti aukščiau + + + Minimize + Sumažinti + + + Restore down + Atstatyti žemiau + + + Maximize + Išdidinti + + + Close + Užverti + + + Contains commands to manipulate the window + Contient des commandes pour manipuler la fenêtre + Komandos langui valdyti + + + Puts a minimized back to normal + Sumažintą langą grąžina į įprastą būseną + + + Moves the window out of the way + Déplace la fenêtre à l'écart + Nukelia langą + + + Puts a maximized window back to normal + Išdidintą langą grąžina į įprastą būseną + + + Makes the window full screen + Langą rodo visame ekrane + + + Closes the window + Užveria langą + + + Displays the name of the window and contains controls to manipulate it + Affiche le nom de la fenêtre et contient des contrôles pour la manipuler + Rodo lango pavadinimą ir turi jo tvarkymo priemones + + + + Q3ToolBar + + More... + Daugiau... + + + + Q3UrlOperator + + The protocol `%1' is not supported + Protokolas „%1“ nepalaikomas + + + The protocol `%1' does not support listing directories + Le protocole `%1' ne permet pas de lister les fichiers d'un dossier + Protokolas „%1“ nepalaiko aplankų sąrašų pateikimo + + + The protocol `%1' does not support creating new directories + Protokolas „%1“ nepaliko naujų aplankų kūrimo + + + The protocol `%1' does not support removing files or directories + Protokolas „%1“ nepaliko rinkmenų ir aplankų šalinimo + + + The protocol `%1' does not support renaming files or directories + Protokolas „%1“ nepaliko rinkmenų ir aplankų pervedinimo + + + The protocol `%1' does not support getting files + Protokolas „%1“ nepalaiko rinkmenų gavimo + + + The protocol `%1' does not support putting files + Protokolas „%1“ nepalaiko rinkmenų įkėlimo + + + The protocol `%1' does not support copying or moving files or directories + Protokolas „%1“ nepaliko rinkmenų ir aplankų kopijavimo ir perkėlimo + + + (unknown) + (nežinoma) + + + + Q3Wizard + + &Cancel + &Atšaukti + + + < &Back + < &Atgal + + + &Next > + &Toliau > + + + &Finish + &Užbaigti + + + &Help + &Pagalba + + + + QAbstractSocket + + Host not found + Pagrindinis kompiuteris nerastas + + + Connection refused + Connexion refusée + Ryšys atmestas + + + Socket operation timed out + Opération socket expirée + + + + Socket is not connected + Le socket n'est pas connecté + + + + + QAbstractSpinBox + + &Step up + Pa&didinti + + + Step &down + Su&mažinti + + + &Select All + &Viską pažymėti + + + + QApplication + + Activate + Aktyvuoti + + + Executable '%1' requires Qt %2, found Qt %3. + „%1“ vykdymui reikia Qt %2 (rasta Qt %3). + + + Incompatible Qt Library Error + Klaida: QT bibliotekos nesuderinamos + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Activates the program's main window + Aktyvuoja programos pagrindinį langą + + + + QCheckBox + + Uncheck + Atžymėti + + + Check + Pažymėti + + + Toggle + Perjungti + + + + QColorDialog + + Hu&e: + &Tonas : + + + &Sat: + &Sodrumas: + + + &Val: + &Reikšmė: + + + &Red: + &Raudona: + + + &Green: + &Žalia: + + + Bl&ue: + &Mėlyna: + + + A&lpha channel: + A&lfa kanalas: + + + &Basic colors + &Pagrindinės spalvos + + + &Custom colors + &Derintos spalvos + + + &Add to Custom Colors + Pridėti prie d&erintų spalvų + + + Select color + Spalvos pasirinkimas + + + + QComboBox + + Open + Atverti + + + False + Melas + + + True + Tiesa + + + Close + Užverti + + + + QCoreApplication + + %1: permission denied + QSystemSemaphore + %1: nepakanka leidimų + + + %1: already exists + QSystemSemaphore + %1: jau yra + + + %1: doesn't exists + QSystemSemaphore + %1: nėra + + + %1: out of resources + QSystemSemaphore + %1: plus de ressources disponibles + %1: viršija išteklius + + + %1: unknown error %2 + QSystemSemaphore + %1: nežinoma klaida %2 + + + %1: key is empty + QSystemSemaphore + %1: clé vide + %1: tuščias raktas + + + %1: unable to make key + QSystemSemaphore + %1: impossible de créer la clé + %1: nepavyksta sukurti rakto + + + %1: ftok failed + QSystemSemaphore + %1: ftok a échoué + + + + + QDB2Driver + + Unable to connect + Incapable d'établir une connexion + Nepavyksta prisijungti + + + Unable to commit transaction + Incapable de soumettre la transaction + Nepavyksta įkelti operacijos + + + Unable to rollback transaction + Incapable d'annuler la transaction + Nepavyksta atsisakyti operacijos + + + Unable to set autocommit + Impossible d'activer l'auto-soumission + Nepavyksta įgalinti automatinio įkėlimo + + + + QDB2Result + + Unable to execute statement + Impossible d'exécuter la requête + + + + Unable to prepare statement + Impossible de prépare la requête + + + + Unable to bind variable + Impossible d'attacher la variable + + + + Unable to fetch record %1 + Impossible de récupérer l'enregistrement %1 + + + + Unable to fetch next + Impossible de récupérer le suivant + + + + Unable to fetch first + Impossible de récupérer le premier + + + + + QDateTimeEdit + + AM + + + + am + + + + PM + + + + pm + + + + + QDial + + QDial + + + + SpeedoMeter + Greičio matuoklis + + + SliderHandle + Poignée + + + + + QDialog + + What's This? + Kas tai? + + + Done + Užbaigti + + + + QDialogButtonBox + + OK + Gerai + + + Save + Įrašyti + + + Open + Atverti + + + Cancel + Atšaukti + + + Close + Užverti + + + Apply + Pritaikyti + + + Reset + Iš naujo + + + Help + Pagalba + + + Don't Save + Neįrašyti + + + Discard + Panaikinti + + + &Yes + &Taip + + + Yes to &All + Taip &viskam + + + &No + &Ne + + + N&o to All + N&e viskam + + + Save All + Viską įrašyti + + + Abort + Nutraukti + + + Retry + Kartoti + + + Ignore + Nepaisyti + + + Restore Defaults + Atkurti numatytąsias reikšmes + + + Close without Saving + Užverti neišsaugant + + + &OK + &Gerai + + + + QDirModel + + Name + Pavadinimas + + + Size + Dydis + + + Kind + Match OS X Finder + Tipas + + + Type + All other platforms + Tipas + + + Date Modified + Pakeitimo data + + + + QDockWidget + + Close + Užverti + + + Dock + Attacher + Pritvirtinti + + + Float + Détacher + Atkabinti + + + + QDoubleSpinBox + + More + Daugiau + + + Less + Mažiau + + + + QErrorMessage + + Debug Message: + Derinimo pranešimas: + + + Warning: + Įspėjimas: + + + Fatal Error: + Lemtinga klaida: + + + &Show this message again + &Rodyti šį pranešimą dar kartą + + + &OK + &Gerai + + + + QFileDialog + + All Files (*) + Visos rinkmenos (*) + + + Directories + Aplankai + + + &Open + At&verti + + + &Save + Į&rašyti + + + Open + Atverti + + + %1 already exists. +Do you want to replace it? + Rinkmena %1 jau yra. Perrašyti ją? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Rinkmena nerasta. +Patikrinkite rinkmenos kelią ir pavadinimą. + + + My Computer + Mano kompiuteris + + + &Rename + &Pervadinti + + + &Delete + &Ištrinti + + + Show &hidden files + Rodyti paslėptas &rinkmenas + + + Back + Atgal + + + Parent Directory + Į aukštesnį aplanką + + + List View + Sąrašo rodinys + + + Detail View + Detalus rodinys + + + Files of type: + Rinkmenos, kurių tipas: + + + Directory: + Aplankas: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Aplankas nerastas. +Patikrinkite aplanko pavadinimą. + + + '%1' is write protected. +Do you want to delete it anyway? + „%1“ apsaugotas nuo įrašymas. +Vis tiek norite ištrinti? + + + Are sure you want to delete '%1'? + Tikrai norite ištrinti „%1“? + + + Could not delete directory. + Nepavyksta pašalinti aplanko. + + + Save As + Įrašyti kaip + + + Drive + + + + File + Rinkmena + + + Unknown + Nežinoma + + + Find Directory + Ieškoti aplanko + + + Show + Rodyti + + + Forward + Toliau + + + New Folder + Naujas aplankas + + + &New Folder + &Naujas aplankas + + + &Choose + &Pasirinkti + + + Remove + Pašalinti + + + File &name: + Rinkmenos &pavadinimas: + + + Look in: + Kur ieškoti: + + + Create New Folder + Sukurti naują aplanką + + + + QFileSystemModel + + Invalid filename + Rinkmenos pavadinimas netinkamas + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Negalima naudoti pavadinimo „%1“</b><p>Naudokite kitą trumpesnį pavadinimą be skyrybos ženklų. + + + Name + Pavadinimas + + + Size + Dydis + + + Kind + Match OS X Finder + Tipas + + + Type + All other platforms + Tipas + + + Date Modified + Pakeitimo data + + + My Computer + Mano kompiuteris + + + Computer + Kompiuteris + + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 baitai + + + + QFontDatabase + + Normal + Įprastas + + + Bold + Pusjuodis + + + Demi Bold + Silpnai pusjuodis + + + Black + Juodas + + + Demi + Pusiau + + + Light + Plonas + + + Italic + Kursyvinis + + + Oblique + Pasviras + + + Any + Bet koks + + + Latin + Lotynų + + + Greek + Graikų + + + Cyrillic + Kirilica + + + Armenian + Armėnų + + + Hebrew + Hebrajų + + + Arabic + Arabų + + + Syriac + Sirų + + + Thaana + + + + Devanagari + Devanagari + + + Bengali + Bengalų + + + Gurmukhi + Gurmukhi + + + Gujarati + Gudžarati + + + Oriya + + + + Tamil + Tamilų + + + Telugu + Telugu + + + Kannada + + + + Malayalam + Malajalių + + + Sinhala + Sinhala + + + Thai + Tajų + + + Lao + Laosiečių + + + Tibetan + Tibeto + + + Myanmar + Mianmaro + + + Georgian + Gruzinų + + + Khmer + Chmerų + + + Simplified Chinese + Supaprastinta kinų + + + Traditional Chinese + Tradicinė kinų + + + Japanese + Japonų + + + Korean + Korėjiečių + + + Vietnamese + Vietnamiečių + + + Symbol + Simbolis + + + Ogham + + + + Runic + Runų + + + + QFontDialog + + &Font + &Šriftas + + + Font st&yle + Šrifto &stilius + + + &Size + &Dydis + + + Effects + Efektai + + + Stri&keout + Per&braukta + + + &Underline + &Pabrauktas + + + Sample + Pavyzdys + + + Wr&iting System + Rašymo &sistema + + + Select Font + Pasirinkti šriftą + + + + QFtp + + Not connected + Neprisijungta + + + Host %1 not found + Pagrindinis kompiuteris %1 nerastas + + + Connection refused to host %1 + Prisijungimas prie pagrindinio kompiuterio %1 atmestas + + + Connected to host %1 + Prisijungta prie pagrindinio kompiuterio %1 + + + Connection refused for data connection + + + + Unknown error + Nežinoma klaida + + + Connecting to host failed: +%1 + Nepavyko prisijungti prie pagrindinio kompiuterio: +%1 + + + Login failed: +%1 + Prisijungti nepavyko: +%1 + + + Listing directory failed: +%1 + Nepavyko pateikti aplankų sąrašo: +%1 + + + Changing directory failed: +%1 + Nepavyko pakeisti aplanko: +%1 + + + Downloading file failed: +%1 + Nepavyko parsiųsti rinkmenos: +%1 + + + Uploading file failed: +%1 + Nepavyko įkelti rinkmenos: +%1 + + + Removing file failed: +%1 + Nepavyko pašalinti rinkmenos: +%1 + + + Creating directory failed: +%1 + Nepavyko sukurti aplanko: +%1 + + + Removing directory failed: +%1 + Nepavyko pašalinti aplanko: +%1 + + + Connection closed + Ryšys nutrauktas + + + Host %1 found + Rastas pagrindinis kompiuteris %1 + + + Connection to %1 closed + Nutrauktas prisijungimas prie %1 + + + Host found + Rastas pagrindinis kompiuteris + + + Connected to host + Prisijungta prie pagrindinio kompiuterio + + + + QHostInfo + + Unknown error + Nežinoma klaida + + + + QHostInfoAgent + + Host not found + Pagrindinis kompiuteris nerastas + + + Unknown address type + Nežinimo tipo adresas + + + Unknown error + Nežinoma klaida + + + + QHttp + + Unknown error + Nežinoma klaida + + + Request aborted + Užklausa nutraukta + + + No server set to connect to + + + + Wrong content length + Netinkamas turinio ilgis + + + Server closed connection unexpectedly + Serveris netikėtai nutraukė ryšį + + + Connection refused + Ryšys atmestas + + + Host %1 not found + Pagrindinis kompiuteris %1 nerastas + + + HTTP request failed + + + + Invalid HTTP response header + + + + Invalid HTTP chunked body + + + + Host %1 found + Rastas pagrindinis kompiuteris %1 + + + Connected to host %1 + Prisijungta prie pagrindinio kompiuterio %1 + + + Connection to %1 closed + Nutrauktas prisijungimas prie %1 + + + Host found + Rastas pagrindinis kompiuteris + + + Connected to host + Prisijungta prie pagrindinio kompiuterio + + + Connection closed + Ryšys nutrauktas + + + Proxy authentication required + Le proxy requiert une authentification + Reikia nustatyti tapatybę įgaliotame serveryje + + + Authentication required + Reikia nustatyti tapatybę + + + Connection refused (or timed out) + Ryšys atmestas (arba pasibaigė laikas) + + + Proxy requires authentication + Įgaliotasis serveris reikalauja nustatyti tapatybę + + + Host requires authentication + L'hôte requiert une authentification + Pagrindinis kompiuteris reikalauja nustatyti tapatybę + + + Data corrupted + Données corrompues + Duomenys sugadinti + + + Unknown protocol specified + Protocole spécifié inconnu + Nurodytas nežinomas protokolas + + + SSL handshake failed + le handshake SSL a échoué + + + + HTTPS connection requested but SSL support not compiled in + Connexion HTTPS requise mais le support SSL n'est pas compilé + HTTPS ryšiui reikia SSL, tačiau palaikymas nesukompiliuotas + + + + QHttpSocketEngine + + Authentication required + Reikia nustatyti tapatybę + + + + QIBaseDriver + + Error opening database + Erreur d'ouverture de la base de données + Atveriant duomenų bazę įvyko klaida + + + Could not start transaction + La transaction n'a pas pu être démarrée + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Unable to rollback transaction + Nepavyksta atsisakyti operacijos + + + + QIBaseResult + + Unable to create BLOB + Nepavyksta sukurti BLOB + + + Unable to write BLOB + Nepavyksta įrašyti BLOB + + + Unable to open BLOB + Nepavyksta atverti BLOB + + + Unable to read BLOB + Nepavyksta nuskaityti BLOB + + + Could not find array + Impossible de trouver le tableau + + + + Could not get array data + Impossible de trouver le tableau de données + + + + Could not get query info + Impossible d'avoir les informations sur la requête + + + + Could not start transaction + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Could not allocate statement + Impossible d'allouer la requête + + + + Could not prepare statement + Impossible de préparer la requête + + + + Could not describe input statement + Impossible de décrire la requête + + + + Could not describe statement + Impossible de décrire la requête + + + + Unable to close statement + Impossible de fermer la requête + + + + Unable to execute query + Impossible d'exécuter la requête + + + + Could not fetch next item + Impossible de récuperer l'élément suivant + + + + Could not get statement info + Impossible d'avoir les informations sur la requête + Nepavyksta gauti informacijos apie būseną + + + + QIODevice + + Permission denied + Nepakanka leidimų + + + Too many open files + Trop de fichiers ouverts simultanément + Atverta per daug rinkmenų + + + No such file or directory + Aucun fichier ou dossier de ce nom + Tokios rinkmenos ar aplanko nėra + + + No space left on device + Aucun espace disponible sur le périphérique + Įrenginyje nebėra vietos + + + Unknown error + Nežinoma klaida + + + + QInputContext + + XIM + XIM + + + XIM input method + XIM įvesties metodas + + + Windows input method + Windows įvesties metodas + + + Mac OS X input method + Mac OS X įvesties metodas + + + + QLibrary + + QLibrary::load_sys: Cannot load %1 (%2) + QLibrary::load_sys: Nepavyksta įkelti %1 (%2) + + + QLibrary::unload_sys: Cannot unload %1 (%2) + QLibrary::unload_sys: Nepavyksta iškelti %1 (%2) + + + QLibrary::resolve_sys: Symbol "%1" undefined in %2 (%3) + QLibrary::resolve_sys: Symbole "%1" non défini dans %2 (%3) + + + + Could not mmap '%1': %2 + Impossible d'établir la projection en mémoire de '%1' : %2 + + + + Plugin verification data mismatch in '%1' + Données de vérification du plugin différente dans '%1' + + + + Could not unmap '%1': %2 + Impossible de supprimer la projection en mémoire de '%1' : %2 + + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Le plugin '%1' utilise une bibliothèque Qt incompatible. (%2.%3.%4) [%5] + „%1“ papildinys naudoja nesuderinamą Qt biblioteką. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3" + + + + Unknown error + Nežinoma klaida + + + The shared library was not found. + La bibliothèque partagée est introuvable. + Bendra biblioteka nerasta. + + + The file '%1' is not a valid Qt plugin. + Le fichier '%1' n'est pas un plugin Qt valide. + Rinkmena „%1“ nėra tinkamas Qt papildinys. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Le plugin '%1' utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques 'debug' et 'release'.) + + + + + QLineEdit + + &Undo + Atša&ukti + + + &Redo + Paka&rtoti + + + Cu&t + Iškirp&ti + + + &Copy + &Kopijuoti + + + &Paste + &Padėti + + + Delete + Ištrinti + + + Select All + Viską pažymėti + + + + QLocalServer + + %1: Name error + %1: Vardo klaida + + + %1: Permission denied + %1: Nepakanka leidimų + + + %1: Address in use + %1: Adresas jau naudojamas + + + %1: Unknown error %2 + %1: Nežinoma klaida %2 + + + + QLocalSocket + + %1: Connection refused + %1: Ryšys atmestas + + + %1: Remote closed + %1: Ryšys nutrauktas + + + %1: Invalid name + %1: Netinkamas pavadinimas + + + %1: Socket access error + %1: Erreur d'accès au socket + + + + %1: Socket resource error + %1: Erreur de ressource du socket + + + + %1: Socket operation timed out + %1: L'opération socket a expiré + + + + %1: Datagram too large + %1: Datagramme trop grand + + + + %1: Connection error + %1: Ryšio klaida + + + %1: The socket operation is not supported + %1: L'opération n'est pas supportée + + + + %1: Unknown error %2 + %1: Nežinoma klaida %2 + + + + QMYSQLDriver + + Unable to open database ' + Napavyksta atverti duomenų bazės + + + Unable to connect + Nepavyksta prisijungti + + + Unable to begin transaction + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Unable to rollback transaction + Nepavyksta atsisakyti operacijos + + + + QMYSQLResult + + Unable to fetch data + Nepavyksta gauti duomenų + + + Unable to execute query + Impossible d'exécuter la requête + + + + Unable to store result + Impossible de stocker le résultat + + + + Unable to prepare statement + Impossible de préparer l'instruction + + + + Unable to reset statement + Impossible de réinitialiser l'instruction + + + + Unable to bind value + Impossible d'attacher la valeur + + + + Unable to execute statement + Impossible d'exécuter la requête + + + + Unable to bind outvalues + Impossible d'attacher les valeurs de sortie + + + + Unable to store statement results + Impossible de stocker les résultats de la requête + + + + Unable to execute next query + Impossible d'exécuterla prochaine requête + + + + Unable to store next result + Impossible de stocker le prochain résultat + + + + + QMdiArea + + (Untitled) + (be antraštės) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Užverti + + + Minimize + Sumažinti + + + Restore Down + Atstatyti žemiau + + + &Restore + &Atstatyti + + + &Move + &Perkelti + + + &Size + &Dydis + + + Mi&nimize + Su&mažinti + + + Ma&ximize + Iš&didinti + + + Stay on &Top + &Visada viršuje + + + &Close + &Užverti + + + - [%1] + - [%1] + + + Maximize + Išdidinti + + + Unshade + + + + Shade + Ombrer + Patamsinti + + + Restore + Atstatyti + + + Help + Pagalba + + + Menu + Meniu + + + + QMenu + + Close + Užverti + + + Open + Atverti + + + Execute + Įvykdyti + + + + QMessageBox + + Help + Pagalba + + + OK + Gerai + + + About Qt + Apie Qt + + + <p>This program uses Qt version %1.</p> + <p>Ši programa naudoja %1 Qt versija.</p> + + + Show Details... + Rodyti detales... + + + Hide Details... + Slėpti detales... + + + <p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://www.trolltech.com/company/model/">www.trolltech.com/company/model/</a> for an overview of Qt licensing.</p> + + + + <h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://www.trolltech.com/qt/">www.trolltech.com/qt/</a> for more information.</p> + + + + + QMultiInputContext + + Select IM + Sélectionner IM + Pasirinkti ĮM + + + + QMultiInputContextPlugin + + Multiple input method switcher + Sélectionneur de méthode de saisie + + + + Multiple input method switcher that uses the context menu of the text widgets + Sélectionneur de méthode de saisie qui utilise le menu contextuel des widgets de texte + + + + + QNativeSocketEngine + + The remote host closed the connection + L'hôte distant a fermé la connexion + Nuotolinis pagrindinis kompiuteris nutraukė ryšį + + + Network operation timed out + L'opération réseau a expiré + Baigėsi laikas tinklo operacijai + + + Out of resources + Manque de ressources + Trūksta išteklių + + + Unsupported socket operation + Opération socket non supportée + + + + Protocol type not supported + Nepalaikomas protokolo tipas + + + Invalid socket descriptor + Descripteur de socket invalide + + + + Network unreachable + Réseau impossible à rejoindre + Tinklas nepasiekiamas + + + Permission denied + Nepakanka leidimų + + + Connection timed out + Baigėsi ryšio laikas + + + Connection refused + Ryšys atmestas + + + The bound address is already in use + L'adresse liée est déjà en usage + + + + The address is not available + L'adresse n'est pas disponible + + + + The address is protected + L'adresse est protégée + Adresas apsaugotas + + + Unable to send a message + Impossible d'envoyer un message + Nepavyksta išsiųsti žinutės + + + Unable to receive a message + Impossible de recevoir un message + Nepavyksta gauti žinutės + + + Unable to write + Impossible d'écrire + Nepavyksta įrašyti + + + Network error + Tinklo klaida + + + Another socket is already listening on the same port + Un autre socket écoute déjà sur le même port + + + + Unable to initialize non-blocking socket + Impossible d'initialiser le socket asynchrone + + + + Unable to initialize broadcast socket + Impossible d'initialiser le socket broadcast + + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Tentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6 + + + + Host unreachable + Hôte inaccessible + Pagrindinis kompiuteris nepasiekiamas + + + Datagram was too large to send + Le datagramme était trop grand pour être envoyé + + + + Operation on non-socket + Operation sur non-socket + + + + Unknown error + Nežinoma klaida + + + The proxy type is invalid for this operation + Le type de proxy est invalide pour cette opération + + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Requête d'ouverture de fichier distant %1 + Bandoma atverti nuotolinę rinkmeną %1 + + + Error opening %1: %2 + Erreur lors de l'ouverture de %1 : %2 + Atveriant %1 įvyko klaida: %2 + + + Write error writing to %1: %2 + Erreur d'écriture de %1 : %2 + Klaida rašant į %1: %2 + + + Cannot open %1: Path is a directory + Impossible d'ouvrir %1 : le chemin est un dossier + Nepavyksta atverti %1: kelias yra aplankas + + + Read error reading from %1: %2 + Erreur de lecture de %1 : %2 + Klaida skaitant iš %1: %2 + + + + QNetworkAccessFtpBackend + + Cannot open %1: is a directory + Nepavyksta atverti %1: tai yra aplankas + + + Logging in to %1 failed: authentication required + Connexion à %1 a échoué : authentification requise + Nepavyko prisijungti prie %1: reikia patvirtinti tapatybę + + + Error while downloading %1: %2 + Klaida įvyko parsiunčiant %1 : %2 + + + Error while uploading %1: %2 + Klaida įvyko įkeliant %1 : %2 + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Klaida parsiunčiant %1 - serveris grąžino: %2 + + + Protocol "%1" is unknown + Protokolas „%1“ nežinomas + + + + QNetworkReplyImpl + + Operation canceled + Veiksmas atšauktas + + + + QOCIDriver + + Unable to logon + Nepavyskta pradėti sesijos + + + Unable to initialize + QOCIDriver + Nepavyksta paruošti + + + Unable to begin transaction + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įrašyti operacijos + + + Unable to rollback transaction + Nepavyksta atsisakyti operacijos + + + + QOCIResult + + Unable to bind column for batch execute + Impossible d'attacher la colonne pour une execution batch + + + + Unable to execute batch statement + Impossible d'exécuter l'instruction batch + + + + Unable to goto next + Impossible de passer au suivant + + + + Unable to alloc statement + Impossible d'allouer la requête + + + + Unable to prepare statement + Impossible de préparer la requête + + + + Unable to bind value + Impossible d'attacher la valeur + + + + Unable to execute select statement + Impossible d'exéctuer la requête select + + + + Unable to execute statement + Impossible d'exéctuer la requête + + + + + QODBCDriver + + Unable to connect + Incapable d'établir une connexion + Nepavyksta prisijungti + + + Unable to connect - Driver doesn't support all needed functionality + Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires + Nepavyksta prisijungti - tvarkyklė nepaiko reikiamų funkcijų + + + Unable to disable autocommit + Nepavyksta uždrausti automatinio įkėlimo + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Unable to rollback transaction + Nepavyksta atsisakyti operacijos + + + Unable to enable autocommit + Nepavyksta įgalinti automatinio įkėlimo + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC + + + + Unable to execute statement + Impossible d'exéctuer la requête + + + + Unable to fetch next + Impossible de récupérer le suivant + + + + Unable to prepare statement + Impossible de préparer la requête + + + + Unable to bind variable + Impossible d'attacher la variable + + + + Unable to fetch last + Impossible de récupérer le dernier + + + + Unable to fetch + Nepavyksta gauti + + + Unable to fetch first + Impossible de récupérer le premier + + + + Unable to fetch previous + Impossible de récupérer le précedent + + + + + QObject + + Operation not supported on %1 + Opération non supportée sur %1 + + + + Invalid URI: %1 + Klaidingas URI: %1 + + + Write error writing to %1: %2 + Klaida rašant į %1: %2 + + + Read error reading from %1: %2 + Klaida skaitant iš %1: %2 + + + Socket error on %1: %2 + Erreur de socket sur %1 : %2 + + + + Remote host closed the connection prematurely on %1 + L'hôte distant a fermé sa connexion de façon prématurée sur %1 + + + + Protocol error: packet of size 0 received + Erreur de protocole: paquet de taille 0 reçu + + + + + QPPDOptionsModel + + Name + Pavadinimas + + + Value + Reikšmė + + + + QPSQLDriver + + Unable to connect + Impossible d'établir une connexion + Nepavyksta prisijungti + + + Could not begin transaction + Nepavyksta pradėti operacijos + + + Could not commit transaction + Nepavyksta įkelti operacijos + + + Could not rollback transaction + Nepavyksta atsisakyti operacijos + + + Unable to subscribe + + + + Unable to unsubscribe + Impossible de se désinscrire + + + + + QPSQLResult + + Unable to create query + Nepavyksta sukurti užklausos + + + Unable to prepare statement + Impossible de préparer la requête + + + + + QPageSetupWidget + + Centimeters (cm) + Centimetrai (cm) + + + Millimeters (mm) + Millimetrai (mm) + + + Inches (in) + Coliai (in) + + + Points (pt) + Taškai (pt) + + + Form + Forma + + + Paper + Popierius + + + Page size: + Puslapio dydis: + + + Width: + Plotis: + + + Height: + Aukštis: + + + Paper source: + Popieriaus šaltinis: + + + Orientation + Orientacija + + + Portrait + Stačias + + + Landscape + Gulsčias + + + Reverse landscape + Apverstas gulsčias + + + Reverse portrait + Apverstas stačias + + + Margins + Paraštės + + + top margin + viršutinė paraštė + + + left margin + kairioji paraštė + + + right margin + dešinioji paraštė + + + bottom margin + apatinė paraštė + + + + QPluginLoader + + Unknown error + Nežinoma klaida + + + The plugin was not loaded. + Papildinys neįkeltas. + + + + QPrintDialog + + locally connected + vietinis prijungimas + + + Aliases: %1 + Pseudonimai: %1 + + + unknown + nežinoma + + + Print To File ... + Spausdinti į rinkmeną... + + + File %1 is not writable. +Please choose a different file name. + Nepavyksta rašyti į %1. +Pasirinkite kitą rinkmenos pavadinimą. + + + %1 already exists. +Do you want to overwrite it? + %1 jau yra. +Perrašyti? + + + %1 is a directory. +Please choose a different file name. + %1 yra aplankas. +Pasirinkite kitą rinkmenos pavadinimą. + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + + + + Folio + + + + Ledger + + + + Legal + + + + Letter + Laiškas + + + Tabloid + + + + US Common #10 Envelope + + + + Custom + Savitas + + + &Options >> + &Parinktys >> + + + &Print + &Spausdinti + + + &Options << + &Parinktys << + + + Print to File (PDF) + Spausdinti į rinkmeną (PDF) + + + Print to File (Postscript) + Spausdinti į rinkmeną (PostScript) + + + Local file + Vietinė rinkmena + + + Write %1 file + Įrašyti į rinkmeną %1 + + + + QPrintPreviewDialog + + Page Setup + Puslapio konfigūracija + + + Print Preview + Spaudinio peržiūra + + + Next page + Tolesnis puslapis + + + Previous page + Ankstesnis puslapis + + + First page + Pirmas puslapis + + + Last page + Paskutinis puslapis + + + Fit width + Taikyti pagal plotį + + + Fit page + Įtalpinti puslapį + + + Zoom in + Priartinti + + + Zoom out + Atitolinti + + + Portrait + Stačias + + + Landscape + Gulsčias + + + Show single page + Rodyti vieną puslapį + + + Show facing pages + Rodyti po du puslapius + + + Show overview of all pages + Rodyti visus puslapius + + + Print + Spausdinti + + + Page setup + Puslapio konfigūracija + + + Close + Užverti + + + + QPrintPropertiesWidget + + Form + Forma + + + Page + Puslapis + + + Advanced + Sudėtingiau + + + + QPrintSettingsOutput + + Form + Forma + + + Copies + Kopijos + + + Print range + Imprimer la sélection + Spausdinimo rėžis + + + Print all + Viską spausdinti + + + Pages from + Puslapius nuo + + + to + iki + + + Selection + Sélection + Pasirinkimas + + + Output Settings + Paramètres de sortie + Išvesties nuostatos + + + Copies: + Kopijos: + + + Collate + Assembler + Rikiuoti + + + Reverse + Inverse + Atvirkščiai + + + Options + Parinktys + + + Color Mode + Spalvų veiksena + + + Color + Spalvota + + + Grayscale + Pilkumo skalė + + + Duplex Printing + Impression en duplex + Dvipusis spausdinimas + + + None + Nieko + + + Long side + Côté long + Platusis kraštas + + + Short side + Côté court + Siaurasis kraštas + + + + QPrintWidget + + Form + Forma + + + Printer + Spausdintuvas + + + &Name: + &Pavadinimas: + + + P&roperties + &Savybės + + + Location: + Vieta: + + + Preview + Peržiūra + + + Type: + Tipas: + + + Output &file: + Išvesties &rinkmena: + + + ... + ... + + + + QProgressDialog + + Cancel + Atšaukti + + + + QPushButton + + Open + Atverti + + + + QRadioButton + + Check + Pažymėti + + + + QRegExp + + no error occurred + aucune erreur ne s'est produite + jokių klaidų + + + disabled feature used + parinktis uždrausta + + + bad char class syntax + syntaxe invalide pour classe de caractère + + + + bad lookahead syntax + syntaxe invalide pour lookahead + + + + bad repetition syntax + syntaxe invalide pour répétition + + + + invalid octal value + valeur octale invalide + + + + missing left delim + délémiteur gauche manquant + + + + unexpected end + fin impromptue + netikėta pabaiga + + + met internal limit + rencontré limite interne + pasiekta vidinė riba + + + + QSQLite2Driver + + Error to open database + Erreur à l'ouverture de la base de données + Atveriant duomenų bazę įvyko klaida + + + Unable to begin transaction + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Unable to rollback Transaction + Nepavyksta atsisakyti operacijos + + + + QSQLite2Result + + Unable to fetch results + Nepavyksta gauti rezultatų + + + Unable to execute statement + Impossible d'exécuter la requête + + + + + QSQLiteDriver + + Error opening database + Atveriant duomenų bazę įvyko klaida + + + Error closing database + Užveriant duomenų bazę įvyko klaida + + + Unable to begin transaction + Nepavyksta pradėti operacijos + + + Unable to commit transaction + Nepavyksta įkelti operacijos + + + Unable to rollback transaction + Nepavyksta atsisakyti operacijos + + + + QSQLiteResult + + Unable to fetch row + Nepavyksta gauti dabar + + + Unable to execute statement + Impossible d'exécuter la requête + + + + Unable to reset statement + Impossible de réinitialiser la requête + + + + Unable to bind parameters + Impossible d'attacher les paramètres + + + + Parameter count mismatch + Nombre de paramètres incorrect + + + + No query + Pas de requête + Užklausos nėra + + + + QScrollBar + + Scroll here + Slikti iki čia + + + Left edge + Kairysis kraštas + + + Top + Viršus + + + Right edge + Dešinysis kraštas + + + Bottom + Apačia + + + Page left + Puslapis kairėje + + + Page up + Puslapiu aukštyn + + + Page right + Puslapis dešinėje + + + Page down + Puslapiu žemyn + + + Scroll left + Slinkti kairėn + + + Scroll up + Slikti auktyn + + + Scroll right + Slinkti dešinėn + + + Scroll down + Slinkti žemyn + + + Line up + Linija aukštyn + + + Position + Padėtis + + + Line down + Linija žemyn + + + + QSharedMemory + + %1: unable to set key on lock + %1 : impossible d'affecter la clé au verrou + + + + %1: create size is less then 0 + %1 : taille de création est inférieur à 0 + + + + %1: unable to lock + %1 : impossible de vérrouiller + + + + %1: unable to unlock + %1 : impossible de déverrouiller + + + + %1: permission denied + %1: nepakanka leidimų + + + %1: already exists + %1: jau yra + + + %1: doesn't exists + %1: nėra + + + %1: out of resources + %1: viršija išteklius + + + %1: unknown error %2 + %1: nežinoma klaida %2 + + + %1: key is empty + %1 : clé vide + + + + %1: unix key file doesn't exists + %1 : le fichier de clé unix n'existe pas + + + + %1: ftok failed + %1 : ftok a échoué + + + + %1: unable to make key + %1 : impossible de créer la clé + + + + %1: system-imposed size restrictions + %1 : le système impose des restrictions sur la taille + + + + %1: not attached + %1 : non attaché + + + + + QShortcut + + Space + Tarpas + + + Esc + Gr(įžti) + + + Tab + Tab(uliacija) + + + Backtab + + + + Backspace + Naikinti + + + Return + Įvesti + + + Enter + Įvesti + + + Ins + Įterpti + + + Del + Šalinti + + + Pause + Pauzė + + + Print + Ekrano nuotrauka + + + SysReq + + + + Home + Prad(žia) + + + End + Pab(aiga) + + + Left + Kairėn + + + Up + Aukštyn + + + Right + Dešinėn + + + Down + Žemyn + + + PgUp + Psl aukštyn + + + PgDown + Psl žemyn + + + CapsLock + Didž(iosios) + + + NumLock + Skaitm(enys) + + + ScrollLock + Slinkti + + + Menu + Meniu + + + Help + Pagalba + + + Back + Atgal + + + Forward + Toliau + + + Stop + Stabdyti + + + Refresh + Atnaujinti + + + Volume Down + Pritildyti + + + Volume Mute + Nutildyti + + + Volume Up + Pagarsinti + + + Bass Boost + Graves fort + Žemi dažniai + + + Bass Up + Graves haut + + + + Bass Down + Graves bas + + + + Treble Up + Aigus haut + + + + Treble Down + Aigus bas + + + + Media Play + Groti kūrinį + + + Media Stop + Sustabdyti kūrinį + + + Media Previous + Ankstenis kūrinys + + + Media Next + Tolesnis kūrinys + + + Media Record + Įrašyti kūrinį + + + Favorites + Préférés + + + + Search + Recherche + Ieškoti + + + Standby + Attente + Užmigdyti + + + Open URL + Atverti URL + + + Launch Mail + Lancer courrier + Paštas + + + Launch Media + Lancer média + + + + Launch (0) + Paleisti (0) + + + Launch (1) + Paleisti (1) + + + Launch (2) + Paleisti (2) + + + Launch (3) + Paleisti (3) + + + Launch (4) + Paleisti (4) + + + Launch (5) + Paleisti (5) + + + Launch (6) + Paleisti (6) + + + Launch (7) + Paleisti (7) + + + Launch (8) + Paleisti (8) + + + Launch (9) + Paleisti (9) + + + Launch (A) + Paleisti (A) + + + Launch (B) + Paleisti (B) + + + Launch (C) + Paleisti (C) + + + Launch (D) + Paleisti (D) + + + Launch (E) + Paleisti (E) + + + Launch (F) + Paleisti (F) + + + Print Screen + Ekrano nuotrauka + + + Page Up + Puslapiu aukštyn + + + Page Down + Puslapiu žemyn + + + Caps Lock + Didžiosios + + + Num Lock + Skaitmenys + + + Number Lock + Skaitmenys + + + Scroll Lock + Slinkti + + + Insert + Įterpti + + + Delete + Šalinti + + + Escape + Grįžti + + + System Request + + + + Select + Pasirinkti + + + Yes + Taip + + + No + Ne + + + Context1 + 1kontekstas + + + Context2 + 2kontekstas + + + Context3 + 3kontekstas + + + Context4 + 4kontekstas + + + Call + Appeler + + + Hangup + Raccrocher + + + Flip + Retourner + + + Ctrl + Vald + + + Shift + Lyg2 + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + Pagrindinis puslapis + + + + QSlider + + Page left + Puslapis kairėje + + + Page up + Puslapiu aukštyn + + + Position + Padėtis + + + Page right + Puslapis dešinėje + + + Page down + Puslapiu žemyn + + + + QSocks5SocketEngine + + Socks5 timeout error connecting to socks server + Erreur d'expiration socks5 lors de l'établissement d'une connexion au serveur socks + + + + Network operation timed out + L'opération réseau a expiré + Baigėsi laikas tinklo operacijai + + + + QSpinBox + + More + Daugiau + + + Less + Mažiau + + + + QSql + + Delete + Supprimer + Šalinti + + + Delete this record? + Supprimer cet enregistrement ? + Pašalinti įrašą? + + + Yes + Taip + + + No + Ne + + + Insert + Insérer + Įterpti + + + Update + Atnaujinti + + + Save edits? + Enregistrer les modifications + Išsaugoti pakeitimus? + + + Cancel + Atšaukti + + + Confirm + Patvirtinti + + + Cancel your edits? + Annuler vos modifications + Atmesti pakeitimus? + + + + QSslSocket + + Unable to write data: %1 + Nepavyksta įrašyti duomenų: %1 + + + Error while reading: %1 + Skaitymo klaida: %1 + + + Error during SSL handshake: %1 + Erreur lors de la poignée de main SSL : %1 + + + + Error creating SSL context (%1) + Erreur lors de la création du contexte SSL (%1) + + + + Invalid or empty cipher list (%1) + La list de chiffrements est invalide ou vide (%1) + + + + Error creating SSL session, %1 + Kuriant SSL sesiją įvyko klaida, %1 + + + Error creating SSL session: %1 + Kuriant SSL sesiją įvyko klaida: %1 + + + Cannot provide a certificate with no key, %1 + Impossible de fournir un certificat sans clé, %1 + + + + Error loading local certificate, %1 + Įkeliant vietinį liudijimą įvyko klaida, %1 + + + Error loading private key, %1 + Erreur lors du chargement de la clé privée, %1 + Klaida įkeliant privatųjį raktą, %1 + + + Private key does not certificate public key, %1 + La clé privée ne certifie pas la clé publique, %1 + + + + + QTDSDriver + + Unable to open connection + Impossible d'ouvrir la connexion + nepavyksta atverti ryšio + + + Unable to use database + Impossible d'utiliser la base de données + Napavyksta pasinaudoti duomenų baze + + + + QTabBar + + Scroll Left + Slinkti kairėn + + + Scroll Right + Slinkti dešinėn + + + + QTextControl + + &Undo + Atša&ukti + + + &Redo + Paka&rtoti + + + Cu&t + Iškirp&ti + + + &Copy + &Kopijuoti + + + Copy &Link Location + Kopijuoti &nuorodos adresą + + + &Paste + &Padėti + + + Delete + Ištrinti + + + Select All + Viską pažymėti + + + + QToolButton + + Press + Spausti + + + Open + Atverti + + + + QUdpSocket + + This platform does not support IPv6 + Cette plateforme ne supporte pas IPv6 + Ši platforma nepalaiko IPv6 + + + + QUndoGroup + + Undo + Atšaukti + + + Redo + Pakartoti + + + + QUndoModel + + <empty> + <tuščia> + + + + QUndoStack + + Undo + Atšaukti + + + Redo + Pakartoti + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM žymė iš kairės į dešinę + + + RLM Right-to-left mark + RLM žymė iš dešinės į kairę + + + ZWJ Zero width joiner + ZWJ nulinio pločio jungtis + + + ZWNJ Zero width non-joiner + ZWNJ nulinio pločio nejungtis + + + ZWSP Zero width space + ZWSP nulinio pločio tarpas + + + LRE Start of left-to-right embedding + LRE „iš kairės į dešinę“ integruotas + + + RLE Start of right-to-left embedding + RLE „iš dešinės į kairę“ integruotas + + + LRO Start of left-to-right override + LRO „iš kairės į dešinę“ atšaukimas + + + RLO Start of right-to-left override + RLO „iš dešinės į kairę“ atšaukimas + + + PDF Pop directional formatting + PDF Pop kryptingas formatavimas + + + Insert Unicode control character + Įterpti unikodo valdymo simbolį + + + + QWebFrame + + Request cancelled + Atsisakyta užklausos + + + Request blocked + Requête bloquée + Užklausa užblokuota + + + Cannot show URL + Nepavyksta parodyti URL + + + Frame load interruped by policy change + Chargement de la frame interrompu par un changement de configuration + + + + Cannot show mimetype + Impossible d'afficher le mimetype + Negalima parodyti MIME tipo + + + File does not exist + Rinkmenos nėra + + + + QWebPage + + Bad HTTP request + Requête HTTP erronée + Bloga HTTP užklausa + + + Submit + default label for Submit buttons in forms on web pages + Pateikti + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Pateikti + + + Reset + default label for Reset buttons in forms on web pages + Iš naujo + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Ceci est un index. Veuillez saisir les mots-clé : + + + + Choose File + title for file button used in HTML forms + Pasirinkti rinkmeną + + + No file selected + text to display in file button used in HTML forms when no file is selected + Rinkmena nepasirinkta + + + Open in New Window + Open in New Window context menu item + Atverti naujame lange + + + Save Link... + Download Linked File context menu item + Įrašyti nuorodą... + + + Copy Link + Copy Link context menu item + Kopijuoti nuorodą + + + Open Image + Open Image in New Window context menu item + Atverti paveikslėlį + + + Save Image + Download Image context menu item + Įrašyti paveikslėlį + + + Copy Image + Copy Link context menu item + Kopijuoti paveikslėlį + + + Open Frame + Open Frame in New Window context menu item + Atverti kadrą + + + Copy + Copy context menu item + Kopijuoti + + + Go Back + Back context menu item + Atgal + + + Go Forward + Forward context menu item + Toliau + + + Stop + Stop context menu item + Stabdyti + + + Reload + Reload context menu item + Įkelti iš naujo + + + Cut + Cut context menu item + Iškirpti + + + Paste + Paste context menu item + Padėti + + + No Guesses Found + No Guesses Found context menu item + Pas de candidat trouvés + + + + Ignore + Ignore Spelling context menu item + Nepaisyti + + + Add To Dictionary + Learn Spelling context menu item + Įtraukti į žodyną + + + Search The Web + Search The Web context menu item + Ieškoti žiniatinklyje + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Ieškoti žodyne + + + Open Link + Open Link context menu item + Atverti nuorodą + + + Ignore + Ignore Grammar context menu item + Nepaisyti + + + Spelling + Spelling and Grammar context sub-menu item + Rašybos tikrinimas + + + Show Spelling and Grammar + menu item title + Rodyti rašybos ir gramatikos tikrinimą + + + Hide Spelling and Grammar + menu item title + Slėpti rašybos ir gramatikos tikrinimą + + + Check Spelling + Check spelling context menu item + Tikrinti rašybą + + + Check Spelling While Typing + Check spelling while typing context menu item + Rašybą tikrinti įvedimo metu + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Tikrinant rašybą, tikrinti ir gramatiką + + + Fonts + Font context sub-menu item + Šriftai + + + Bold + Bold context menu item + Pusjuodis + + + Italic + Italic context menu item + Kursyvinis + + + Underline + Underline context menu item + Pabrauktas + + + Outline + Outline context menu item + Kontūras + + + Direction + Writing direction context sub-menu item + Kryptis + + + Default + Default writing direction context menu item + Numatyta + + + LTR + Left to Right context menu item + Iš kairės į dešinę + + + RTL + Right to Left context menu item + Iš dešinės į kairę + + + Inspect + Inspect Element context menu item + Inspecter + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + Paieškų nebuvo + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Paskiausios paieškos + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Išvalyti paskiausias paieškas + + + Unknown + Unknown filesize FTP directory listing item + Nežinoma + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 tšk) + + + Web Inspector - %2 + Inspecteur Web - %2 + + + + + QWhatsThisAction + + What's This? + Kas tai? + + + + QWidget + + * + * + + + + QWizard + + Go Back + Atgal + + + Continue + Toliau + + + Commit + Įkelti + + + Done + Užbaigti + + + Quit + Baigti + + + Help + Pagalba + + + < &Back + < &Atgal + + + &Finish + &Užbaigti + + + Cancel + Atšaukti + + + &Help + &Pagalba + + + &Next + &Toliau + + + &Next > + &Toliau > + + + + QWorkspace + + &Restore + &Atstatyti + + + &Move + &Perkelti + + + &Size + &Keisti dydį + + + Mi&nimize + Su&mažinti + + + Ma&ximize + Iš&didinti + + + &Close + &Užverti + + + Stay on &Top + &Visada viršuje + + + Sh&ade + &Enrouler + + + + %1 - [%2] + %1 - [%2] + + + Minimize + Sumažinti + + + Restore Down + Restaurer en bas + + + + Close + Užverti + + + &Unshade + &Dérouler + + + + + QXml + + no error occurred + aucune erreur ne s'est produite + jokių klaidų + + + error triggered by consumer + erreur déclenchée par le consommateur + + + + unexpected end of file + fin de fichier impromptue + + + + more than one document type definition + plus d'une définition de type de document + + + + error occurred while parsing element + une erreur s'est produite lors de l'analyse d'un élément + + + + tag mismatch + balise débalancée + + + + error occurred while parsing content + une erreur s'est produise lors de l'analyse du contenu + + + + unexpected character + caractère impromptu + + + + invalid name for processing instruction + nom d'instruction de traitement invalide + + + + version expected while reading the XML declaration + version attendue dans la déclaration XML + + + + wrong value for standalone declaration + + + + encoding declaration or standalone declaration expected while reading the XML declaration + + + + standalone declaration expected while reading the XML declaration + + + + error occurred while parsing document type definition + une erreur s'est produite lors de l'analyse d'une définition de type de document + + + + letter is expected + lettre attendue + + + + error occurred while parsing comment + une erreur s'est produise lors de l'analyse d'un commentaire + + + + error occurred while parsing reference + une erreur s'est produite lors de l'analyse d'une référence + + + + internal general entity reference not allowed in DTD + appel d'entité interne générale non permis dans la DTD + + + + external parsed general entity reference not allowed in attribute value + appel d'entité externe parsée non permis dans la valeur d'un attribut + + + + external parsed general entity reference not allowed in DTD + appel d'entité externe parsée générale non permis dans la DTD + + + + unparsed entity reference in wrong context + appel d'entité non parsée dans un contexte invalide + + + + recursive entities + entités récursives + + + + error in the text declaration of an external entity + + + + + QXmlStream + + Extra content at end of document. + Conteny supplémentaire à la fin du document. + + + + Invalid entity value. + Valeur de l'entité invalide. + + + + Invalid XML character. + Caractère XML invalide. + + + + Sequence ']]>' not allowed in content. + Séquence ']]>' interdite dans le contenu. + + + + Namespace prefix '%1' not declared + Le préfixe de namespace '%1' non déclaré + + + + Attribute redefined. + Attribut redéfini. + + + + Unexpected character '%1' in public id literal. + Caractère '%1' inattendu dans un 'public id literal'. + + + + Invalid XML version string. + Version XML invalide. + + + + Unsupported XML version. + Version XML non supportée. + + + + %1 is an invalid encoding name. + %1 n'est pas un encodage valide. + + + + Encoding %1 is unsupported + Encodage %1 n'est pas supporté + + + + Standalone accepts only yes or no. + 'Standalone' n'accepte que 'yes' ou 'no'. + + + + Invalid attribute in XML declaration. + Attribut invalide dans la déclaration XML. + + + + Premature end of document. + Fin de document prématurée. + + + + Invalid document. + Document invalide. + + + + Expected + Attendu + + + + , but got ' + , mais eu ' + + + + Unexpected ' + Inattendu ' + + + + Expected character data. + Character data attendu. + + + + Recursive entity detected. + Entité recursive détectée. + + + + Start tag expected. + Balise ouvrante attendue. + + + + XML declaration not at start of document. + Déclaration XML après le début du document. + + + + NDATA in parameter entity declaration. + NDATA dans une déclaration d'entité paramètre. + + + + %1 is an invalid processing instruction name. + %1 est un nom d'instruction de traitement invalide. + + + + Invalid processing instruction name. + Nom d'instruction de traitement invalide. + + + + Illegal namespace declaration. + Déclaration de namespace illégale. + + + + Invalid XML name. + Nom XML invalide. + + + + Opening and ending tag mismatch. + Ouverture et fermeture de balise invalide. + + + + Reference to unparsed entity '%1'. + Référence vers une entité non analysée '%1'. + + + + Entity '%1' not declared. + Entité '%1' non déclarée. + + + + Reference to external entity '%1' in attribute value. + Référence vers une entité externe '%1' dans la valeur de l'attribut. + + + + Invalid character reference. + Référence vers un caractère invalide. + + + + Encountered incorrectly encoded content. + Encodage du contenu incorrect. + + + + The standalone pseudo attribute must appear after the encoding. + Le pseudo attribut standalone doit apparaître après l'encodage. + + + + %1 is an invalid PUBLIC identifier. + %1 n'est pas un identifiant PUBLIC valide. + + + + + QtXmlPatterns + + An %1-attribute with value %2 has already been declared. + Un attribute %1 avec la valeur %2 est déjà déclaré. + + + + An %1-attribute must have a valid %2 as value, which %3 isn't. + Un attribute %1 doit avoir un %2 valide, %3 ne l'a pas. + + + + Network timeout. + Tinklo ryšiui laikas baigėsi. + + + Element %1 can't be serialized because it appears outside the document element. + L'élément %1 ne peut pas être sérialisé parce qu'il est hors de l'élément document. + + + + Year %1 is invalid because it begins with %2. + L'année %1 est invalide parce qu'elle commence par %2. + + + + Day %1 is outside the range %2..%3. + Le jour %1 est hors de l'intervalle %2..%3. + + + + Month %1 is outside the range %2..%3. + Le mois %1 est hors de l'intervalle %2..%3. + + + + Overflow: Can't represent date %1. + Overflow: ne peut pas représenter la date %1. + + + + Day %1 is invalid for month %2. + Jour %1 est invalide pour le mois %2. + + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + L'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0; + + + + Time %1:%2:%3.%4 is invalid. + L'heure %1:%2:%3.%4 est invalide. + + + + Overflow: Date can't be represented. + Overflow : la date ne peut pas être représentée. + + + + At least one component must be present. + Au moins un composant doit être présent. + + + + At least one time component must appear after the %1-delimiter. + Au moins un composant doit apparaître après le délimiteur %1. + + + + No operand in an integer division, %1, can be %2. + Pas d'opérande dans une division entière, %1, peut être %2. + + + + The first operand in an integer division, %1, cannot be infinity (%2). + Le premier opérande dans une division entière, %1, ne peut être infini (%2). + + + + The second operand in a division, %1, cannot be zero (%2). + Le second opérande dans une division, %1, ne peut être nul (%2). + + + + %1 is not a valid value of type %2. + %1 n'est pas une valeur valide du type %2. + + + + When casting to %1 from %2, the source value cannot be %3. + En castant de %2 vers %1, la valeur source ne peut pas être %3. + + + + Integer division (%1) by zero (%2) is undefined. + Division entière (%1) par zéro (%2) indéfinie. + + + + Division (%1) by zero (%2) is undefined. + Division (%1) par zéro (%2) indéfinie. + Dalyba (%1) iš nulio (%2) negalima. + + + Modulus division (%1) by zero (%2) is undefined. + Module division (%1) par zéro (%2) indéfinie. + + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Diviser une valeur du type %1 par %2 (not-a-number) est interdit. + + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Diviser une valeur de type %1 par %2 ou %3 (plus ou moins zéro) est interdit. + + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + La multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite. + + + + A value of type %1 cannot have an Effective Boolean Value. + Une valeur de type %1 ne peut pas avoir une Effective Boolean Value. + + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Effective Boolean Value ne peut être calculée pour une séquence contenant deux ou plus valeurs atomiques. + + + + Value %1 of type %2 exceeds maximum (%3). + La valeur %1 de type %2 excède le maximum (%3). + + + + Value %1 of type %2 is below minimum (%3). + La valeur %1 de type %2 est inférieur au minimum (%3). + + + + A value of type %1 must contain an even number of digits. The value %2 does not. + Une valeur de type %1 doit contenir un nombre pair de chiffre. La valeur %2 n'est pas conforme. + + + + %1 is not valid as a value of type %2. + %1 n'est pas une valeur valide de type %2. + + + + Operator %1 cannot be used on type %2. + L'opérateur %1 ne peut pas être utilisé pour le type %2. + + + + Operator %1 cannot be used on atomic values of type %2 and %3. + L'opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3. + + + + The namespace URI in the name for a computed attribute cannot be %1. + L'URI de namespace dans le nom d'un attribut calculé ne peut pas être %1. + + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Le nom d'un attribut calculé ne peut pas avoir l'URI de namespace %1 avec le nom local %2. + + + + Type error in cast, expected %1, received %2. + Erreur de type lors du cast, attendu %1 mais reçu %2. + + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + En castant vers %1 ou des types dérivés, la valeur source doit être du même type ou une chaîne. Le type %2 n'est pas autorisé. + + + + No casting is possible with %1 as the target type. + Aucun cast n'est possible avec %1 comme type de destination. + + + + It is not possible to cast from %1 to %2. + Il est impossible de caster de %1 en %2. + + + + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + Caster vers %1 est impossible parce que c'est un type abstrait qui ne peut donc être instancié. + + + + It's not possible to cast the value %1 of type %2 to %3 + I lest impossible de caster la valeur %1 de type %2 en %3 + + + + Failure when casting from %1 to %2: %3 + Echec en castant de %1 ver %2 : %3 + + + + A comment cannot contain %1 + Un commentaire ne peut pas contenir %1 + + + + A comment cannot end with a %1. + Un commentaire ne peut pas finir par %1. + + + + No comparisons can be done involving the type %1. + Aucune comparaison ne peut être faite avec le type %1. + + + + Operator %1 is not available between atomic values of type %2 and %3. + L'opérateur %1 n'est pas disponible entre valeurs atomiques de type %2 et %3. + + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Un noeuds attribut ne peut être un fils d'un noeuds document. C'est pourquoi l'attribut %1 est mal placé. + + + + A library module cannot be evaluated directly. It must be imported from a main module. + Un module de bibliothèque ne peut pas être évalué directement. Il doit être importé d'un module principal. + + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + Une valeur de type %1 ne peut être un prédicat. Un prédicat doit être de type numérique ou un Effective Boolean Value. + + + + A positional predicate must evaluate to a single numeric value. + Un prédicat de position doit être évalué en une unique valeur numérique. + + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. + + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3. + + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux. + + + + The data of a processing instruction cannot contain the string %1 + Les données d'une instruction de traitement ne peut contenir la chaîne %1 + + + + No namespace binding exists for the prefix %1 + Aucun lien de namespace n'existe pour le préfixe %1 + + + + No namespace binding exists for the prefix %1 in %2 + Aucun lien de namespace n'existe pour le préfixe %1 dans %2 + + + + %1 is an invalid %2 + %1 est un ivalide %2 + + + + %1 takes at most %n argument(s). %2 is therefore invalid. + %1 prend au maximum %n argument. %2 est donc invalide. + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + %1 requiert au moins %n argument. %2 est donc invalide. + + + + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Le premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration. + + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le premier argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + + + + %1 is not a valid XML 1.0 character. + %1 n'est pas un caractère XML 1.0 valide. + + + + The first argument to %1 cannot be of type %2. + Le premier argument de %1 ne peut être du type %2. + + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Si les deux valeurs ont des décalages de zone, elle doivent avoir le même. %1 et %2 sont différents. + + + + %1 was called. + %1 a été appelé. + + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement. + + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + Dans la chaîne de remplacement, %1 doit être suivi par au moins un chiffre s'il n'est pas échappé. + + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + Dans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3 + + + + %1 matches newline characters + %1 correspond à des caractères de saut de ligne + + + + %1 and %2 match the start and end of a line. + %1 et %2 correspondent au début et à la fin d'une ligne. + + + + Matches are case insensitive + Atitikmenys nepaiso raidžių dydžio + + + Whitespace characters are removed, except when they appear in character classes + Les blancs sont supprimés excepté quand ils apparaissent dans les classes de caractère + + + + %1 is an invalid regular expression pattern: %2 + %1 est un modèle d'expression régulière invalide: %2 + + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 est un flag invalide pour des expressions régulières. Les flags valides sont : + + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Si le premier argument est une sequence vide ou un chaîne vide (sans namespace), un préfixe ne peut être spécifié. Le préfixe %1 a été spécifié. + + + + It will not be possible to retrieve %1. + Il sera impossible de récupérer %1. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Le noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n'est pas un document. + + + + The default collection is undefined + I'l n'y a pas de collection par défaut + + + + %1 cannot be retrieved + Nepavyksta gauti %1 + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Le forme de normalisation %1 n'est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation). + + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + + %1 is not a whole number of minutes. + + + + Required cardinality is %1; got cardinality %2. + La cardinalité requise est %1; reçu %2. + + + + The item %1 did not match the required type %2. + L'item %1 ne correspond pas au type requis %2. + + + + %1 is an unknown schema type. + %1 est un type de schema inconnu. + + + + Only one %1 declaration can occur in the query prolog. + Seulement une déclaration %1 peut intervenir lors du prologue de la requête. + + + + The initialization of variable %1 depends on itself + L'initialisation de la variable %1 dépend d'elle-même + + + + No variable by name %1 exists + Aucun variable nommée %1 existe + + + + The variable %1 is unused + Kintamasis %1 nenaudojamas + + + Version %1 is not supported. The supported XQuery version is 1.0. + Versija %1nepalaikoma. Palaikoma XQuery versija yra 1.0. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + L'encodage %1 est invalide. Il doit contenir uniquement des caractères latins, sans blanc et doit être conforme à l'expression régulière %2. + + + + No function with signature %1 is available + Aucune fonction avec la signature %1 n'est disponible + + + + A default namespace declaration must occur before function, variable, and option declarations. + Un déclaration de namespace par défaut doit être placée avant toute fonction, variable ou declaration d'option. + + + + Namespace declarations must occur before function, variable, and option declarations. + Les declarations de namespace doivent être placées avant tout fonction, variable ou déclaration d'option. + + + + Module imports must occur before function, variable, and option declarations. + Les imports de module doivent être placés avant tout fonction, variable ou déclaration d'option. + + + + It is not possible to redeclare prefix %1. + Il est impossible de redéclarer le préfixe %1. + + + + Only the prefix %1 can be declared to bind the namespace %2. By default, it is already bound to the prefix %1. + Seul le préfixe %1 peut être déclaré pour lié le namespace %2. Par défaut, il est déjà lié au préfixe %1. + + + + Prefix %1 is already declared in the prolog. + Le préfixe %1 est déjà déclaré dans le prologue. + + + + The name of an option must have a prefix. There is no default namespace for options. + Le nom d'une option doit avoir un préfixe. Il n'y a pas de namespace par défaut pour les options. + + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + La fonctionnalité "Schema Import" n'est pas supportée et les déclarations %1 ne peuvent donc intervenir. + + + + The target namespace of a %1 cannot be empty. + Le namespace cible d'un %1 ne peut être vide. + + + + The module import feature is not supported + La fonctionnalité "module import" n'est pas supportée + + + + A variable by name %1 has already been declared in the prolog. + Une variable du nom %1 a déjà été déclarée dans le prologue. + + + + No value is available for the external variable by name %1. + Aucune valeur n'est disponible pour la variable externe %1. + + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Le namespace %1 est réservé; c'est pourquoi les fonctions définies par l'utilisateur ne peuvent l'utiliser. Essayez le préfixe prédéfini %2 qui existe pour ces cas. + + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + Le namespace d'une fonction utilisateur dans un module de bibliothèque doit être équivalent au namespace du module. En d'autres mots, il devrait être %1 au lieu de %2 + + + + A function already exists with the signature %1. + Une fonction avec la signature %1 existe déjà. + + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes + + + + An argument by name %1 has already been declared. Every argument name must be unique. + Un argument nommé %1 a déjà été déclaré. Chaque nom d'argument doit être unique. + + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Le nom d'une variable liée dans un expression for doit être different de la variable positionnelle. Les deux variables appelées %1 sont en conflit. + + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + La fonctionnalité "Schema Validation" n'est pas supportée. Les expressions %1 ne seront pas utilisées. + + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + Aucune des expressions pragma n'est supportée. Une expression par défault doit être présente + + + + The %1-axis is unsupported in XQuery + L'axe %1 n'est pas supporté dans XQuery + + + + %1 is not a valid numeric literal. + %1 n'est pas une valeur numérique valide. + + + + No function by name %1 is available. + La fonction %1 n'est pas disponible. + + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + L'URI de namespace ne peut être une chaîne vide quand on le lie à un préfixe, %1. + + + + %1 is an invalid namespace URI. + %1 est un URI de namespace invalide. + + + + It is not possible to bind to the prefix %1 + Il est impossible de se lier au préfixe %1 + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le namespace %1 peut seulement être lié à %2 (et doit être pré-déclaré). + + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le préfixe %1 peut seulement être lié à %2 (et doit être prédéclaré). + + + + Two namespace declaration attributes have the same name: %1. + Deux attributs de déclarations de namespace ont le même nom : %1. + + + + The namespace URI must be a constant and cannot use enclosed expressions. + L'URI de namespace doit être une constante et ne peut contenir d'expressions. + + + + An attribute by name %1 has already appeared on this element. + Un attribute nommé %1 existe déjà pour cet élément. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + Un constructeur direct d'élément est mal-formé. %1 est terminé par %2. + + + + The name %1 does not refer to any schema type. + Le nom %1 ne se réfère à aucun type de schema. + + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche. + + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques. + + + + %1 is not a valid name for a processing-instruction. Therefore this name test will never match. + %1 n'est pas un nom valide pour une instruction de traitement. C'est pourquoi ce test de nom ne réussira jamais. + + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 n'est pas dans les déclaration d'attribut in-scope. La fonctionnalité d'inport de schéma n'est pas supportée. + + + + The name of an extension expression must be in a namespace. + Le nom d'une expression d'extension doit être dans un namespace. + + + + empty + vide + tuščia + + + zero or one + zéro ou un + nulis arba vienas + + + exactly one + exactement un + tik vienas + + + one or more + vienas arba daugiau + + + zero or more + nulis arba daugiau + + + Required type is %1, but %2 was found. + Le type requis est %1, mais %2 a été reçu. + + + + Promoting %1 to %2 may cause loss of precision. + La Promotion de %1 vers %2 peut causer un perte de précision. + + + + The focus is undefined. + Le focus est indéfini. + + + + It's not possible to add attributes after any other kind of node. + Il est impossible d'ajouter des attributs après un autre type de noeuds. + + + + An attribute by name %1 has already been created. + Un attribute de nom %1 a déjà été créé. + + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + + Attribute %1 can't be serialized because it appears at the top level. + L'attribut %1 ne peut pas être sérialisé car il apparaît à la racine. + + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + + + VolumeSlider + + Muted + Nutildyta + + + Volume: %1% + Garsumas: %1% + + + + WebCore::PlatformScrollbar + + Scroll here + Slikti iki čia + + + Left edge + Kairysis kraštas + + + Top + Viršus + + + Right edge + Dešinysis kraštas + + + Bottom + Apačia + + + Page left + Puslapis kairėje + + + Page up + Puslapis viršuje + + + Page right + Puslapis dešinėje + + + Page down + Puslapis apačioje + + + Scroll left + Slinkti kairėn + + + Scroll up + Slikti auktyn + + + Scroll right + Slinkti dešinėn + + + Scroll down + Slinkti žemyn + + + diff -Nru goldendict-1.0.2~git20130620/locale/qu_WI.ts goldendict-1.5.0~ppa131019/locale/qu_WI.ts --- goldendict-1.0.2~git20130620/locale/qu_WI.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/qu_WI.ts 2013-10-18 14:32:58.000000000 +0000 @@ -16,12 +16,12 @@ GoldenDictmanta - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Yanapaqkuna: @@ -30,7 +30,7 @@ GoldenDict diccionario electrónico, versión 0.7 - + GoldenDict dictionary lookup program, version GoldenDict simi-pirwapi mask'ana, versión @@ -39,7 +39,7 @@ #.# - + Licensed under GNU GPLv3 or later GNU GPL kamachiyuq, versión 3 qhipamantataq @@ -49,7 +49,7 @@ [mana yachasqachu] - + Based on Qt %1 (%2, %3 bit) @@ -67,52 +67,52 @@ - + No translation for <b>%1</b> was found in group <b>%2</b>. Mana <b>%2</b> juñupi <b>%1</b> simita tarinchu. - + No translation was found in group <b>%1</b>. Mana <b>%1</b> juñupi simita tarinchu. - + Welcome! Qallarinapaq - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">¡Bienvenido a <b>GoldenDict</b>!</h3><p>Qallarinapaq, <b>Allinchay > Simi-pirwakuna</b> riy. Jaqaypi simi-pirwakunata mask'anapaq ñankunata yapay. Chaymanta, simi-pirwakunata ñiqichayta atinki. Juñukunaman simi-pirwakunata yapayta atinkitaq. <p>Chaymantari, simikunapi simikunata atinki. Mask'anapaq tawak'uchupi simita qillqapay. Wak programakunapi simikunata mask'anapaq, <a href="Working with popup">Juch'uy qhawanapi mask'ayta</a> qhaway. <p>Kay programata kamachinapaq <b>Allinchay &gt; Aqllanakuna</b> menuman riy. Achkhata yachanapaq qqllanakunaqpa willaynkukunata nawichayta atinki. <p>Aswan yanapata munaspaqa, <a href="http://goldendict.org/forum/">GoldenDictpa foronpi</a> tapuyta atinki. Kay programata kunanchanapaq <p><a href="http://goldendict.org/">web raphiman</a> riy. <p>(c) 2008-2013 Konstantin Isakov. GoldenDictqa GPL kamachiyyuq, versión 3 qhipamantataq. - + Working with popup Juch'uy qhawanapi mask'anapaq - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Cómo Utilizar la ventana emergente</h3>Para buscar palabras desde otras aplicaciones activas, primero hay que habilitar la opción <i>"Escaneo en una ventana emergente"</i> en <b>Editar|Preferencias</b>. Luego puede utilizarla en cualquier momento, activando el icono arriba de la 'Ventana Emergente'. Alternativamente, haga clic a derecha abajo en la bandeja del sistema y seleccione la opción <b>Escanear con Ventana Emergente</b> en el menú. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Luego detenga el cursor sobre la palabra que Ud. quiere buscar en otra aplicación y una ventana emergente aparecerá para hacer la consulta. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Luego, seleccione una palabra deseada con su ratón para buscarla desde otra aplicación. Para seleccionar una palabra haga doble clic o arrastra sobre la palabra mientras oprimiendo el botón del ratón, y una ventana emergente aparecerá con la definición de la palabra. - + (untitled) (mana sutiyuq) - + (picture) @@ -120,7 +120,7 @@ ArticleRequest - + From @@ -129,32 +129,32 @@ From %1 - + Expand article - + Collapse article - + Query error: %1 Pantay mask'aspa: %1 - + Close words: Simikunata wisq'ay: - + Compound expressions: Expresiones compuestas: - + Individual words: Palabras individuales: @@ -162,47 +162,47 @@ ArticleView - + Select Current Article - + Copy as text - + Inspect - + Resource - + Audio - + TTS Voice - + Picture - + Definition from dictionary "%1": %2 - + Definition: %1 @@ -211,89 +211,99 @@ GoldenDict - - + + The referenced resource doesn't exist. El recurso referido no existe. - + The referenced audio program doesn't exist. - + ERROR: %1 - + Save sound - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Save image - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + &Open Link &T'inkisqata kichay - + + Video + + + + + Video: %1 + + + + Open Link in New &Tab Musuq pestañapi t'inkisqata kichay - + Open Link in &External Browser Abrir enlace en un &navegador web externo - + &Look up "%1" "%1"ta &mask'ay - + Look up "%1" in &New Tab &Musuq pestañapi "%1"ta mask'ay - + Send "%1" to input line - - + + &Add "%1" to history - + Look up "%1" in %2 %2pi "%1"ta mask'ay - + Look up "%1" in %2 in &New Tab &Musuq pestañapi %2pi "%1"ta mask'ay - + WARNING: FFmpeg Audio Player: %1 @@ -306,37 +316,37 @@ Para activar reproducción de archivos no WAV, por favor vaya a Editar|Preferencias, escoja la pestaña Audio y seleccione "Reproducir con DirectShow". - + Failed to run a player to play sound file: %1 Fallo ejecutando un reproductor para reproducir el archivo de audio: %1 - + Failed to create temporary file. Temporal archiwuta yurichispa pantay. - + Failed to auto-open resource file, try opening manually: %1. Fallo abriendo automáticamente el archivo de recursos. Intente abrirlo manualmente: %1. - + The referenced resource failed to download. El recurso ha fallado de descargar. - + Save &image... - + Save s&ound... - + WARNING: %1 WILLAY: %1 @@ -655,37 +665,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XMLta ñawichaspa pantay: "%2,%3" nisqaman %1 - + Added %1 %1 yapasqa - + by por - + Male Qhari - + Female Warmi - + from imamanta - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Vaya a Editar|Diccionarios|Fuentes|Forvo y solicitar su propia clave de API para hacer desaparecer este error. @@ -888,12 +898,12 @@ - + %1/%2 - + History size: %1 entries out of maximum %2 @@ -1646,7 +1656,7 @@ Zulu - + %1 Morphology Morfología %1 @@ -2707,7 +2717,7 @@ Main - + Error in configuration file. Continue with default settings? @@ -2754,7 +2764,7 @@ Jap'ikuchkan... - + Skip This Release Saltar esta versión @@ -2763,22 +2773,22 @@ [Sconosciuto] - + Page Setup Raphita kamachina - + No printer is available. Please install one first. Mana impresora nisqaqa kanchu. Por favor instale una impresora. - + Print Article Raphipi articulota ñit'iy - + Save Article As Jinata articulota jallch'ay @@ -2787,12 +2797,12 @@ Archiwukuna HTML (*.html *.htm) - + Error Pantay - + Can't save article: %1 "%1" articulota mana jallch'ayta atinchu @@ -2801,33 +2811,33 @@ Error loading dictionaries - + %1 dictionaries, %2 articles, %3 words %1 simi-pirwakuna, %2 articulokuna, %3 simikuna - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Fallo de inicializar monitoreo de teclas de acceso rápido.<br>Asegúrese que su XServer tiene activada la extensión RECORD. - + New Release Available Una nueva versión está disponible - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Ahora versión <b>%1</b> de GoldenDict está disponible para descargar.<br>Haga clic en <b>Descargar</b> para ir a página de descargas. - + Download Urayachiy - + Look up in: Mask'ay: @@ -2911,73 +2921,73 @@ Tukuy pestañakunata wisq'ay, mana kunan pestañachu - + Look up: Mask'ay: - + All Tukuy - - + + Accessibility API is not enabled - + Article, Complete (*.html) - + Article, HTML Only (*.html) - + Saving article... - + The main window is set to be always on top. - + Import history from file - + Import error: invalid data in file - + History import complete - + Import error: - + Dictionary info - + Open dictionary folder - + Edit dictionary @@ -2987,17 +2997,17 @@ Kichasqa Pestañas - + Open Tabs List - + (untitled) (Mana sutiyuq) - + %1 - %2 @@ -3006,38 +3016,38 @@ WILLAY: %1 - + You have chosen to hide a menubar. Use %1 to show it back. - + Ctrl+M - + &Hide - + Export history to file - - + + Text files (*.txt);;All files (*.*) - + History export complete - + Export error: @@ -3055,7 +3065,7 @@ - + Welcome! ¡Bienvenido! @@ -3284,7 +3294,7 @@ - + &Show @@ -3315,12 +3325,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Failed loading article from %1, reason: %2 @@ -3328,7 +3338,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XMLta ñawichaspa pantay: %1 "%2,%3"pi @@ -3336,7 +3346,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XMLta ñawichaspa pantay: %1 "%2,%3"pi @@ -4174,12 +4184,12 @@ DirectShow nisqawan takichiy - + Changing Language Simita t'ikrachkan - + Restart the program to apply the language change. Musuq simita jap'ikunanpaq hukmanta programata qallarichiy. @@ -4261,97 +4271,97 @@ QObject - + Article loading error - + Article decoding error - + avformat_alloc_context() failed. - + av_malloc() failed. - + avio_alloc_context() failed. - + avformat_open_input() failed: %1. - + avformat_find_stream_info() failed: %1. - + Could not find audio stream. - + Codec [id: %1] not found. - + avcodec_open2() failed: %1. - + Cannot find usable audio output device. - + Unsupported sample format. - + ao_open_live() failed: - + No driver. - + This driver is not a live output device. - + A valid option key has an invalid value. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Unknown error. - + avcodec_alloc_frame() failed. @@ -4377,18 +4387,18 @@ ResourceToSaveHandler - - + + ERROR: %1 - + Resource saving error: - + The referenced resource failed to download. El recurso ha fallado de descargar. diff -Nru goldendict-1.0.2~git20130620/locale/ru_RU.ts goldendict-1.5.0~ppa131019/locale/ru_RU.ts --- goldendict-1.0.2~git20130620/locale/ru_RU.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/ru_RU.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ О программе - + GoldenDict dictionary lookup program, version Словарь GoldenDict, версия - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) © Константин Исаков (ikm@goldendict.org), 2008-2013 - + Credits: Список участников: - + Licensed under GNU GPLv3 or later Лицензия: GNU GPLv3 или более поздняя версия @@ -34,7 +34,7 @@ [Неизвестно] - + Based on Qt %1 (%2, %3 bit) На базе Qt %1 (%2, %3 бит) @@ -52,52 +52,52 @@ Свернуть статью - + No translation for <b>%1</b> was found in group <b>%2</b>. В группе <b>%2</b> не найдено перевода для <b>%1</b>. - + No translation was found in group <b>%1</b>. В группе <b>%1</b> перевод не найден. - + Welcome! Добро пожаловать! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Добро пожаловать в <b>GoldenDict</b>!</h3><p>Если вы запустили программу в первый раз, укажите пути к словарям в <b>Правка|Словари</b>. Там же Вы можете указать различные сайты Википедии или другие источники данных, настроить порядок просмотра словарей или создать словарные группы.<p>После этого Вы можете приступать к поиску слов. Слова можно искать в левой области данного окна. При работе в других приложениях можно искать слова, используя <a href="Работа с всплывающим окном">всплывающее окно</a>. <p>В меню <b>Правка|Параметры</b> Вы можете настроить приложение по своему вкусу. Все параметры имеют подсказки, показываемые при наведении курсора на них. Обращайте, пожалуйста, на них внимание, когда у Вас возникают затруднения с настройкой.<p>Если Вам требуется дополнительная помощь, возникли какие-то вопросы, пожелания и т.п., обращайтесь на <a href="http://goldendict.org/forum/">форум программы</a>.<p>Обновления программы доступны на её <a href="http://goldendict.org/">вебсайте</a>.<p>© Константин Исаков (ikm@goldendict.org), 2008-2013. Лицензия: GNU GPLv3 или более поздняя версия. - + Working with popup Работа с всплывающим окном - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Всплывающее окно</h3>Для поиска слов из других приложений, вам нужно включить <i>«Разрешить всплывающее окно»</i> в <b>Параметрах</b> и после этого включить всплывающее окно кнопкой «Сканировать» в основном окне или в контекстном меню значка в системном лотке. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Теперь подведите курсор мыши к какому-либо слову в приложении, и появится всплывающее окно с переводом или значением этого слова. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Теперь выделите какое-либо слово в приложении (двойным щелчком, или же проводя по ним курсором мыши при зажатой левой кнопке), и появится всплывающее окно с переводом или значением этого слова. - + (untitled) (без имени) - + (picture) (картинка) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article Развернуть статью - + From Из словаря - + Collapse article Свернуть статью - + Query error: %1 Ошибка поиска: %1 - + Close words: Близкие слова: - + Compound expressions: Составные выражения: - + Individual words: Отдельные слова: @@ -143,169 +143,179 @@ ArticleView - + Select Current Article Выделить текущую статью - + Copy as text Копировать как текст - + Inspect Инспектор - + Resource Ресурс - + Audio Аудио - + TTS Voice Синтезатор голоса - + Picture Картинка - + + Video + Видео + + + + Video: %1 + Видео: %1 + + + Definition from dictionary "%1": %2 Определение из словаря «%1»: %2 - + Definition: %1 Определение: %1 - - + + The referenced resource doesn't exist. Запрошенный ресурс не найден. - + The referenced audio program doesn't exist. Указанная аудио-программа не найдена. - + ERROR: %1 ОШИБКА: %1 - + Save sound Сохранить звук - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Звуковые файлы (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Все файлы (*.*) - + Save image Сохранить изображение - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Файлы изображений (*.bmp *.jpg *.png *.tif);;Все файлы (*.*) - + &Open Link &Открыть ссылку - + Open Link in New &Tab Открыть ссылку в новой &вкладке - + Open Link in &External Browser Открыть ссылку во внешнем &браузере - + &Look up "%1" &Поиск «%1» - + Look up "%1" in &New Tab Поиск «%1» в &новой вкладке - + Send "%1" to input line Поместить «%1» в строку ввода - - + + &Add "%1" to history Добавить «%1» в журнал - + Look up "%1" in %2 Поиск «%1» в %2 - + Look up "%1" in %2 in &New Tab Поиск «%1» в %2 в &новой вкладке - + WARNING: FFmpeg Audio Player: %1 ПРЕДУПРЕЖДЕНИЕ: Плейер FFMpeg: %1 - + Failed to run a player to play sound file: %1 Невозможно запустить проигрыватель звукового файла: %1 - + Failed to create temporary file. Ошибка создания временного файла. - + Failed to auto-open resource file, try opening manually: %1. Ошибка открытия файла ресурса, попробуйте открыть вручную: %1. - + The referenced resource failed to download. Невозможно загрузить указанный ресурс. - + Save &image... Сохранить &изображение... - + Save s&ound... Сохранить &звук... - + WARNING: %1 ВНИМАНИЕ: %1 @@ -621,37 +631,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Ошибка разбора XML: %1 на строке %2, столбце %3 - + Added %1 Добавлено %1 - + by от - + Male Мужчина - + Female Женщина - + from из - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Перейдите в Правка|Словари|Источники|Forvo и подайте заявку на свой собственный ключ API, чтобы устранить данную проблему. @@ -850,12 +860,12 @@ Журнал: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Размер журнала: %1 записей из %2 максимально допустимых @@ -868,7 +878,7 @@ Варианты написания: - + %1 Morphology %1 (морфология) @@ -1929,7 +1939,7 @@ Main - + Error in configuration file. Continue with default settings? Ошибка в файле конфигурации. Продолжить с настройками по умолчанию? @@ -1968,79 +1978,79 @@ Загрузка... - + Skip This Release Пропустить данную версию - + You have chosen to hide a menubar. Use %1 to show it back. Вы скрыли главное меню. Чтобы вернуть его, используйте %1. - + Ctrl+M Ctrl+M - + Page Setup Параметры страницы - + No printer is available. Please install one first. В системе не установлено ни одного принтера. - + Print Article Печать статьи - + Save Article As Сохранить статью как - + Error Ошибка - + Can't save article: %1 Невозможно сохранить статью: %1 - + %1 dictionaries, %2 articles, %3 words Словарей: %1, статей: %2, слов: %3 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Ошибка инициализации механизма отслеживания горячих клавиш.<br>Убедитесь, что ваш XServer поддерживает расширение RECORD. - + New Release Available Доступна новая версия - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Версия <b>%1</b> программы GoldenDict доступа для загрузки.<br> Нажмите <b>Загрузить</b>, чтобы перейти на страницу загрузки. - + Download Загрузить - + Look up in: Поиск в: @@ -2120,58 +2130,58 @@ Закрыть все вкладки, кроме текущей - + Look up: Искать: - + All Все - - + + Accessibility API is not enabled Интерфейс Accessibility не включён - + The main window is set to be always on top. Главное окно всегда поверх других окон. - + Import history from file Импорт журнала из файла - + Import error: invalid data in file Ошибка импорта: некорректные данные в файле - + History import complete Импорт журнала завершён - + Import error: Ошибка импорта: - + Dictionary info Информация о словаре - + Open dictionary folder Открыть папку словаря - + Edit dictionary Редактировать словарь @@ -2181,64 +2191,64 @@ Открытые вкладки - + Open Tabs List Открыть список вкладок - + (untitled) (без имени) - + %1 - %2 %1 - %2 - + Article, Complete (*.html) Статья полностью (*.html) - + Article, HTML Only (*.html) Статья, только HTML (*.html) - + Saving article... Сохранение статьи... - + &Hide &Спрятать - + Export history to file Экспорт журнала в файл - - + + Text files (*.txt);;All files (*.*) Текстовые файлы (*.txt);;Все файлы (*.*) - + History export complete Экспорт журнала завершён - + Export error: Ошибка при экспорте: - + Welcome! Добро пожаловать! @@ -2451,7 +2461,7 @@ - + &Show &Показать @@ -2474,12 +2484,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted Файл словаря искажён или повреждён - + Failed loading article from %1, reason: %2 Ошибка загрузки статьи из %1, причина: %2 @@ -2487,7 +2497,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Ошибка разбора XML: %1 на строке %2, столбце %3 @@ -2495,7 +2505,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Ошибка разбора XML: %1 на строке %2, столбце %3 @@ -3316,12 +3326,12 @@ Lingoes-Blue - + Changing Language Смена языка - + Restart the program to apply the language change. Перезапустите программу, чтобы изменение языка вошло в силу. @@ -3357,17 +3367,17 @@ Programs::RunInstance - + No program name was given. Программа не указана. - + The program has crashed. Программа завершилась с ошибкой - + The program has returned exit code %1. Программа вернула значение %1. @@ -3403,97 +3413,97 @@ QObject - + Article loading error Ошибка загрузки статьи - + Article decoding error Ошибка декодирования статьи - + avformat_alloc_context() failed. Ошибка avformat_alloc_context(). - + av_malloc() failed. Ошибка av_malloc(). - + avio_alloc_context() failed. Ошибка avio_alloc_context(). - + avformat_open_input() failed: %1. Ошибка avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. Ошибка avformat_find_stream_info(): %1. - + Could not find audio stream. Аудиопоток не найден - + Codec [id: %1] not found. Декодер [id: %1] не найден. - + avcodec_open2() failed: %1. Ошибка avcodec_open2(): %1. - + Cannot find usable audio output device. Не найдено устройство для вывода звука. - + Unsupported sample format. Неподдерживаемый звуковой формат. - + ao_open_live() failed: Ошибка ao_open_live(). - + No driver. Нет драйвера. - + This driver is not a live output device. Данный драйвер не является устройством вывода. - + A valid option key has an invalid value. Невалидное значение параметра. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. Невозможно открыть устройство: %1, каналов: %2, частота дискретизации: %3, бит: %4. - + Unknown error. Неизвестная ошибка. - + avcodec_alloc_frame() failed. Ошибка avcodec_alloc_frame(). @@ -3519,18 +3529,18 @@ ResourceToSaveHandler - - + + ERROR: %1 ОШИБКА: %1 - + Resource saving error: Ошибка записи данных: - + The referenced resource failed to download. Невозможно загрузить указанный ресурс. diff -Nru goldendict-1.0.2~git20130620/locale/sk_SK.ts goldendict-1.5.0~ppa131019/locale/sk_SK.ts --- goldendict-1.0.2~git20130620/locale/sk_SK.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/sk_SK.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ O programe - + GoldenDict dictionary lookup program, version GoldenDict - prehliadač slovníkov, verzia - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Vydané pod licenciou GNU GPLv3 alebo novšou - + Credits: Poďakovanie: @@ -34,9 +34,9 @@ [Neznámy] - + Based on Qt %1 (%2, %3 bit) - + Založené na Qt %1 (%2, %3 bit) @@ -44,60 +44,60 @@ Expand article - + Rozbaliť článok Collapse article - + Skrátiť článok - + No translation for <b>%1</b> was found in group <b>%2</b>. V skupine <b>%2</b> nebol nájdený preklad pre <b>%1</b>. - + No translation was found in group <b>%1</b>. V skupine <b>%1</b> nebol nájdený preklad. - + Welcome! Vitajte! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Vitajte v programe<b>GoldenDict</b>!</h3><p>Prácu v programe začnite v <b>Upraviť|Slovníky</b>, kde môžete pridať cesty k priečinkom v ktorých budú vyhľadané slovníky, nastaviť rôzne stránky Wikipedie a iné zdroje, upraviť poradenie poradenie slovníkov alebo vytvoriť slovníkové skupiny.</p><p>Potom budete môcť začať vyhľadať slová! Môžete tak robiť v tomto okne s použitím panela vľavo, alebo môžete <a href="Working with popup">vyhľadávať slová z iných aktívnych aplikácií</a>.</p><p>Úpravu vlastností programu môžete urobiť <b>Upraviť|Nastavenia…</b>. Všetky nastavenia majú popisy, ktoré vám pomôžu, pokiaľ si nebudete niečim istý.</p><p>Pokiaľ budete potrebovať ďalšiu pomoc, máte nejaké návrhy, alebo len chcete vedieť, čo si myslia iný, tak ste vítaní na <a href="http://goldendict.org/forum/">diskusnom fóre</a>.</p><p>Aktualizácie hľadajte na <a href="http://goldendict.org/">stránkach GoldenDict</a>.</p><p>(c) 2008-2013 Konstantin Isakov. Licencované pod GPLv3 alebo novšou. - + Working with popup Práca s vyskakovacím oknom - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Práca s vyskakovacím oknom</h3>Aby ste mohli vyhľadávať slová z iných aplikácií, potrebujete si najskôr aktivovať <i>„Vyskakovacie okno“</i> v položke <b>Nastavenia</b> a potom ju kedykoľvek povoľte kliknutím na 'Vyskakovaciu' ikonu, alebo kliknutím na ikonu v systémovom panely cez pravé tlačidlo myši a následným výberom z ponuky. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Potom sa len nastavte kurzor nad slovom v inej aplikácií, ktoré chcete vyhľadať, a vyskočí okno, ktoré vám ho popíše. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Potom len vyberte akékoľvek slovo v inej aplikácií, ktoré chcete vyhľadať (dvojklikom alebo označením pomocou ťahania myšou) a vyskočí okno, ktoré vám to slovo popíše. - + (untitled) (Bez názvu) - + (picture) (obrázok) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article - + Rozbaliť článok - + From Z - + Collapse article - + Skrátiť článok - + Query error: %1 Chyba požiadavky: %1 - + Close words: Blízke slová: - + Compound expressions: Zložené výrazy: - + Individual words: Jednotlivé slová: @@ -188,32 +188,42 @@ Zvýr&azniť všetko - + Resource Zdroj - + Audio Audio - + TTS Voice - + TTS Hlas - + Picture Obrázok - + + Video + Video + + + + Video: %1 + Video: %1 + + + Definition from dictionary "%1": %2 Definícia zo slovníka "%1": %2 - + Definition: %1 Definícia: %1 @@ -222,38 +232,38 @@ GoldenDict - - + + The referenced resource doesn't exist. Referencovaný zdroj neexistuje. - + The referenced audio program doesn't exist. Odkazovaný audio program neexistuje. - + ERROR: %1 CHYBA: %1 - + Save sound Uložiť zvuk - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Zvukové súbory (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Všetky súbory (*.*) - + Save image Uložiť obrázok - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Uložiť obrázky (*.bmp *.jpg *.png *.tif);;Všetky súbory (*.*) @@ -262,65 +272,65 @@ Chyba ukladania zdroja: - + &Open Link &Otvoriť odkaz - + Open Link in New &Tab Otvoriť odkaz v nove kar&te - + Open Link in &External Browser Otvoriť odkaz v &externom prehliadači - + Save &image... Uložiť &obrázok… - + Save s&ound... Uložiť &zvuk… - + &Look up "%1" &Hľadať "%1" - + Look up "%1" in &New Tab Hľadať "%1" v &novej karte - + Send "%1" to input line Odoslať "%1" do vstupného riadku - - + + &Add "%1" to history Prid&ať "%1" do histórie - + Look up "%1" in %2 Hľadať "%1" v %2 - + Look up "%1" in %2 in &New Tab Hľadať "%1" v %2 v &novej karte - + WARNING: FFmpeg Audio Player: %1 - + VAROVANIE: FFmpeg Audio Player: %1 Playing a non-WAV file @@ -339,42 +349,42 @@ Knižnica Bass nevie prehrať tento zvuk. - + Failed to run a player to play sound file: %1 Nepodarilo sa spustiť prehrávač pre prehrávanie zvukových súborov: %1 - + Failed to create temporary file. Nepodarilo sa vytvoriť dočasný súbor. - + Failed to auto-open resource file, try opening manually: %1. Nepodarilo sa automaticky otvoriť súbor so zdrojmi. Pokúste sa ho otvoriť ručne: %1. - + WARNING: %1 VAROVANIE: %1 - + Select Current Article Označiť aktuálny článok - + Copy as text - + Kopírovať ako text - + Inspect - + Kontrolovať - + The referenced resource failed to download. Referencovaný zdroj sa nepodarilo stiahnuť. @@ -524,12 +534,12 @@ Open folder - + Otvoriť priečinok Edit dictionary - Upraviť slovník + Upraviť slovník @@ -545,7 +555,8 @@ Edit the dictionary via command: %1 - + Upraviť slovník cez príkaz: +%1 @@ -570,7 +581,7 @@ Extended menu with all dictionaries... - + Rozšírená ponuka so všetkými slovníkmi… @@ -585,7 +596,7 @@ Open dictionary folder - + Otvoriť slovníkový priečinok @@ -649,37 +660,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Chyba spracovania XML: %1 v %2,%3 - + Added %1 Pridané %1 - + by od - + Male Muž - + Female Žena - + from z - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Prejsť na Upraviť | Slovníky | Zdroje | Forvo a aplikovať náš vlastný API kľúč, aby táto chyba zmizla. @@ -878,12 +889,12 @@ História: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Veľkosť histórie: %1 položiek z maxima %2 @@ -896,7 +907,7 @@ Návrhy k preklepom: - + %1 Morphology %1 morfológia @@ -1957,9 +1968,9 @@ Main - + Error in configuration file. Continue with default settings? - + Chyba v konfiguračnom súbore. Pokračovať so štandardnými nastaveniami? @@ -1970,7 +1981,7 @@ - + Welcome! Vitajte! @@ -2209,7 +2220,7 @@ - + &Show &Zobraziť @@ -2243,7 +2254,7 @@ - + Look up in: Hľadať v: @@ -2332,17 +2343,17 @@ Načítavanie ... - + %1 dictionaries, %2 articles, %3 words Slovníky: %1, články: %2, slová: %3 - + Look up: Hľadať: - + All Všetko @@ -2367,17 +2378,17 @@ &Navigácia - + Open Tabs List Otvorí zoznam kariet - + (untitled) (Bez názvu) - + %1 - %2 %1 - %2 @@ -2386,74 +2397,74 @@ VAROVANIE: %1 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Nepodarilo sa inicializovať monitorovací mechanizmus klávesových skratiek.<br> Uistite sa, že X server má zapnuté rozšírenie RECORD. - + New Release Available Je dostupná nová verzia - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. GoldenDict verzia <b>%1</b> je dostupná na stiahnutie. <br>Kliknutím na <b>Stiahnuť</b> sa dostane na stránku, kde je možné program stiahnuť. - + Download Stiahnuť - + Skip This Release Preskočiť toto vydanie - - + + Accessibility API is not enabled - + API Dostupnosti nie je povolené - + You have chosen to hide a menubar. Use %1 to show it back. Vybrali ste si skrytie panelu s ponukou. Použite %1 ak ho chcete znova zobraziť. - + Ctrl+M Ctrl+M - + Page Setup Nastavenie strany - + No printer is available. Please install one first. Žiadna tlačiareň nie je k dispozícii. Prosím, nainštalujte aspoň jednu. - + Print Article Vytlačiť článok - + Article, Complete (*.html) - + Článok, Kompletný (*.html) - + Article, HTML Only (*.html) - + Článok, iba HTML (*.html) - + Save Article As Uložiť článok ako @@ -2462,83 +2473,83 @@ Html súbory (*.html *.htm) - + Error Chyba - + Can't save article: %1 Nie je možné uložiť článok: %1 - + Saving article... - + Ukladanie článku… - + The main window is set to be always on top. Hlavné okno je nastavené, aby bolo vždy na vrchu. - + &Hide S&kryť - + Export history to file Exportovať históriu do súboru - - + + Text files (*.txt);;All files (*.*) Textové súbory (*.txt);;Všetky súbory (*.*) - + History export complete Export histórie ukončený - + Export error: Chyba exportu: - + Import history from file Import histórie zo súboru - + Import error: invalid data in file Chyba importu: neplatné dáta v súbore - + History import complete Import histórie je ukončený - + Import error: Chyba importu: - + Dictionary info Info o slovníku - + Open dictionary folder - + Otvoriť slovníkový priečinok - + Edit dictionary Upraviť slovník @@ -2546,20 +2557,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Slovníkový súbor bol poškodený alebo sfalšovaný - + Failed loading article from %1, reason: %2 - + Nepodarilo sa načítať článok z %1; dôvod: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Chyba spracovania XML: %1 v %2,%3 @@ -2567,7 +2578,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Chyba spracovania XML: %1 v %2,%3 @@ -2840,12 +2851,12 @@ Adjust this value to avoid huge context menus. - + Upravte túto hodnotu pre zabránenie veľkej kontextovej ponuky. Context menu dictionaries limit: - + Limit slovníkov pre kontextovú ponuku: @@ -3088,32 +3099,32 @@ Play audio files via FFmpeg(libav) and libao - + Prehra audio súbory cez FFmpeg(libav) a libao Use internal player - + Použiť interný prehrávač Select this option to automatic collapse big articles - + Vyberte túto ponuku pre automatické skrátenie dlhých článkov Collapse articles more than - + Skrátiť články väčšie než Articles longer than this size will be collapsed - + Články dlhšie než je táto veľkosť budú skrátené symbols - + symboly Use Windows native playback API. Limited to .wav files only, @@ -3224,12 +3235,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Niektoré stránky odhalia GoldenDict cez HTTP hlavičky a blokujú jeho požiadavky. +Povoľte toto nastavenie na obídenie problému. Do not identify GoldenDict in HTTP headers - + Neidentifikovať GoldenDict v HTTP hlavičke @@ -3398,12 +3410,12 @@ Hrať cez DirectShow - + Changing Language Zmena jazyka - + Restart the program to apply the language change. Reštartovať program pre aplikovanie zmeny jazyka. @@ -3485,99 +3497,99 @@ QObject - + Article loading error - + Chyba načítania článku - + Article decoding error - + Chyba dekódovania článku - + avformat_alloc_context() failed. - + avformat_alloc_context() zlyhal. - + av_malloc() failed. - + av_malloc() zlyhal. - + avio_alloc_context() failed. - + avio_alloc_context() zlyhal. - + avformat_open_input() failed: %1. - + avformat_open_input() zlyhal: %1. - + avformat_find_stream_info() failed: %1. - + avformat_find_stream_info() zlyhal: %1. - + Could not find audio stream. - + Nie je možné nájsť audio prúd. - + Codec [id: %1] not found. - + Kodek [id: %1] nebol nájdený. - + avcodec_open2() failed: %1. - + avcodec_open2() zlyhal: %1. - + Cannot find usable audio output device. - + Nie je možné nájsť použiteľný audio výstup. - + Unsupported sample format. - + Nepodporovaný vzorkový formát. - + ao_open_live() failed: - + ao_open_live() zlyhal: - + No driver. - + Ovládač neexistuje. - + This driver is not a live output device. - + Tento ovládač nie je živým výstupný zariadením. - + A valid option key has an invalid value. - + Platná možnosť kľúča má neplatnú hodnotu. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Nie je možné otvoriť zariadenie: %1, kanály: %2, tempo: %3, bity: %4. - + Unknown error. - + Neznáma chyba. - + avcodec_alloc_frame() failed. - + avcodec_alloc_frame() zlyhal. @@ -3601,20 +3613,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - CHYBA: %1 + CHYBA: %1 - + Resource saving error: - Chyba ukladania zdroja: + Chyba ukladania zdroja: - + The referenced resource failed to download. - Referencovaný zdroj sa nepodarilo stiahnuť. + Referencovaný zdroj sa nepodarilo stiahnuť. @@ -3910,7 +3922,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Akýkoľvek externý program. Reťazec %GDWORD% bude nahradený so slovom požiadavky. Ak taký reťazec nebude nájdený, slovo bude vložené do štandardného vstupu. @@ -4039,7 +4051,7 @@ Text to Speech - + Text na reč @@ -4093,77 +4105,77 @@ Selected voice engines: - + Vyberte hlasový systém: &Add - + Prid&ať &Remove - Odst&rániť + Odst&rániť Preferences - Nastavenia + Nastavenia Volume: - + Hlasitosť: Rate: - + Tempo: Preview - + Test Available voice engines: - + Dostupné hlasové systémy: Text to be previewed: - + Text na otestovanie: Type text to be previewed here. - + Sem na píšte text na otestovanie. &Preview - + &Test No TTS voice available - + Nie je dostupný žiadny TTS hlas Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Nie je možné nájsť dostupný TTS hlas.<br>Uistite sa, že minimálne jeden TTS systém máte nainštalovaný v počítači. Confirm removal - Potvrdiť odstránenie + Potvrdiť odstránenie Remove voice engine <b>%1</b> from the list? - + Odstrániť hlasový systém <b>%1</b> zo zoznamu? @@ -4184,22 +4196,22 @@ Enabled - Povolené + Povolené Name - Meno + Názov Id - + Id Icon - Ikona + Ikona diff -Nru goldendict-1.0.2~git20130620/locale/sq_AL.ts goldendict-1.5.0~ppa131019/locale/sq_AL.ts --- goldendict-1.0.2~git20130620/locale/sq_AL.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/sq_AL.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,38 +9,34 @@ Për - + GoldenDict dictionary lookup program, version GoldenDict, programi i fjalorëve, versioni - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - © Константин Исаков (ikm@goldendict.org), 2008-2013 + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: - Merita: + Meritat: - #.# - #.# - - - + Licensed under GNU GPLv3 or later Licencuar sipas GNU GPLv3 a më i vonë [Unknown] - [I panjohur] + [E panjohur] - + Based on Qt %1 (%2, %3 bit) - + Bazuar në Qt %1 (%2, %3 bit) @@ -48,98 +44,98 @@ Expand article - + Zgjeroj artikullin Collapse article - + Mbledh artikullin - + No translation for <b>%1</b> was found in group <b>%2</b>. - Nuk gjen ndonjë përkthim për <b>%1</b> te grupi <b>%2</b>. + Nuk gjen përkthimin për <b>%1</b> te grupi <b>%2</b>. - + No translation was found in group <b>%1</b>. - Nuk gjen ndonjë përkthim te grupi <b>%1</b>. + Nuk gjen përkthimin te grupi <b>%1</b>. - + Welcome! Mirë se erdhët! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. - <h3 align="center">Mirë se erdhët te <b>GoldenDict</b>!</h3><p>Për të nisur përdorimin e programit, së pari vizitoni <b>Editoj|Fjalorët</b> dhe vini shtegun e ndonjë direktorie ku gjenden skedat e fjalorit, sistemoni faqet për Wikipedia-n ose burimet e tjera, rregulloni rendin e fjalorëve ose krijoni grupe me ta.<p>Pastaj jeni gati të shikoni fjalët tuaja! Kjo kryhet këtu duke përdorur panelin në të majtë, ose duke <a href="Working with popup">shikuar fjalët nga aplikimet e tjera aktive</a>. <p>Për të porositur programin, kontrolloni vendosjet e mundshme te <b>Editoj|Pëlqime</b>. Tërë vendosjet atje kanë këshilla ndihmëse: sigurohuni që t'i lexoni nëse keni dyshime për diçka.<p>Nëse kërkoni ndihmë tjetër, keni pyetje, sugjerime ose doni të dini se ç'mendojnë të tjerët, jeni të mirëpritur te <a href="http://goldendict.org/forum/">forumi</a> i programit.<p>Kontrolloni edhe <a href="http://goldendict.org/">faqen në rrjetë</a> të programit për t'u azhurnuar. <p>(c) 2008-2013 Konstantin Isakov. Licencuar sipas GPLv3 a më i vonë. + <h3 align="center">Mirë se erdhët te <b>GoldenDict</b>!</h3><p>Për të përdorur programin, së pari vizitoni <b>Editoj|Fjalorët</b> dhe përcaktoni vendndodhjen e direktorisë ku janë skedat e fjalorit, sistemoni faqet për Wikipedia-n ose burimet e tjera, radhitni fjalorët e krijoni grupe me ta.<p>Pastaj jeni gati të studioni fjalët! Kryeni këtë duke përdorur panelin në të majtë, ose duke <a href="Working with popup">parë nga aplikacionet e tjera aktive</a>. <p>Për të porositur programin, kontrolloni parametrat e mundshëm te <b>Editoj|Preferencat</b>. Parametrat kanë këshilla ndihmëse: sigurohuni që t'i lexoni nëse keni dyshime për diçka.<p>Nëse kërkoni ndihmë, keni pyetje, sugjerime ose doni të dini se ç'mendojnë të tjerët për programin, jeni të mirëpritur te <a href="http://goldendict.org/forum/">forumi</a>.<p>Kontrolloni edhe <a href="http://goldendict.org/">faqen në internet</a> për t'u azhurnuar. <p>(c) 2008-2013 Konstantin Isakov. Licencuar sipas GPLv3 a më i vonë. - + Working with popup - Skanimi i jashtëm + Working with popup - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. - <h3 align="center">Skanimi i jashtëm</h3>Për të shikuar fjalët nga aplikimet aktive, së pari duhet të aktivizoni <i>"funksionin Skanimi i jashtëm"</i> në <b>Pëlqime</b>. Pastaj mund ta aktivizoni atë kurdoherë duke ndezur ikonën 'Skanimi', ose duke klikuar me të djathtën ikonën te shiriti i sistemit për ta zgjedhur në menynë e jashtme. + <h3 align="center">Skanimi i jashtëm</h3>Për të parë fjalët nga aplikacionet aktive, së pari aktivizoni <i>"funksionin Skanimi i jashtëm"</i> te <b>Preferencat</b>. Më tej e aktivizoni kurdoherë duke ndezur ikonën e 'Skanimit', ose duke klikuar me të djathtën ikonën te shiriti i sistemit. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. - Pastaj thjesht ndaleni miun te fjala që doni të shikoni nga aplikimi tjetër, dhe do ju shfaqet një dritare me fjalën e treguar. + Thjesht ndaleni kursorin te fjala që doni të shikoni nga aplikacioni tjetër, dhe do ju shfaqet një dritare me fjalën e treguar. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. - Pastaj thjesht seleksiononi me miun ndonjë fjalë që doni të shikoni nga aplikimi tjetër (klikojeni dy herë ose visheni me butonin e shtypur të miut), dhe do ju shfaqet një dritare me fjalën e treguar. + Thjesht seleksiononi me maus fjalën që doni të shikoni nga aplikacioni tjetër (klikojeni dy herë ose visheni me butonin e shtypur të miut), dhe do ju shfaqet një dritare me fjalën e treguar. - + (untitled) (pa titull) - + (picture) - + (figurë) ArticleRequest - + Expand article - + Zgjeroj artikullin - + From Nga - + Collapse article - + Mbledh artikullin - + Query error: %1 Gabimi i kërkimit: %1 - + Close words: Fjalët e përafërta: - + Compound expressions: Shprehjet e përbëra: - + Individual words: Fjalët e ndara: @@ -147,183 +143,181 @@ ArticleView - + Select Current Article - + Seleksionoj këtë artikullin - + Copy as text - + Kopjoj tekstin - + Inspect - + Inspektoj - + Resource - + Resursi - + Audio - + Audio - + TTS Voice - + TTS Voice - + Picture - + Figura - + Definition from dictionary "%1": %2 - + Përkufizimi nga fjalori "%1": %2 - + Definition: %1 - - - - GoldenDict - GoldenDict + Përkufizimi: %1 - - + + The referenced resource doesn't exist. - Burimi i referuar nuk ekziston. + Nuk ekziston resursi i referuar. - + The referenced audio program doesn't exist. - + Programi audio i referuar nuk ekziston. - + ERROR: %1 - + GABIM: %1 - + Save sound - + Ruaj tingullin - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Skeda zanore (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Të gjitha skedat (*.*) - + Save image - + Ruaj imazhin - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + Skeda imazhe (*.bmp *.jpg *.png *.tif);;Të gjitha skedat (*.*) - + &Open Link - &Hap Lidhësin + &Hap lidhësin - + + Video + Video + + + + Video: %1 + Video: %1 + + + Open Link in New &Tab - Hap Lidhësin në Fushën e &Re + Hap lidhësin në fushën e &re - + Open Link in &External Browser - Hap Lidhësin në &Shfletuesin e Jashtëm + Hap lidhësin në &shfletuesin e jashtëm - + &Look up "%1" &Shikoj "%1" - + Look up "%1" in &New Tab - Shikoj "%1" në Fushën e &Re + Shikoj "%1" në fushën e &re - + Send "%1" to input line - + Dërgoj "%1"te radha e inputit - - + + &Add "%1" to history - + &Shtoj "%1" te historiku - + Look up "%1" in %2 Shikoj "%1" në %2 - + Look up "%1" in %2 in &New Tab - Shikoj "%1" në %2 në Fushën e &Re + Shikoj "%1" në %2 në fushën e &re - + WARNING: FFmpeg Audio Player: %1 - + KUJDEs: FFmpeg Audio Player: %1 - Playing a non-WAV file - Luan një skedë jo-WAV - - - To enable playback of files different than WAV, please go to Edit|Preferences, choose the Audio tab and select "Play via DirectShow" there. - Për të aktivizuar leximin e skedave të ndryshme nga WAV, ju lutem shkoni te Editoj|Pëlqime, zgjidhni fushën Audio dhe seleksiononi atje "Luaj via DirectShow". - - - + Failed to run a player to play sound file: %1 - Dështon ekzekutimi i lexuesit për skedën zanore: %1 + Dështoi ekzekutimi i lexuesit për skedën zanore: %1 - + Failed to create temporary file. - Dështon krijimi i skedës kohëshkurtër. + Dështoi krijimi i skedës kohëshkurtër. - + Failed to auto-open resource file, try opening manually: %1. - Dështon autohapja e skedës burimore, provoni ta hapni vetë: %1. + Dështoi vetëhapja e skedës burimore, provojeni vetë: %1. - + The referenced resource failed to download. - Dështon shkarkimi i burimit të referuar. + Dështoi shkarkimi i resursit të referuar. - + Save &image... - + Ruaj &imazhin... - + Save s&ound... - + Ruaj t&ingullin... - + WARNING: %1 - KUJDES: %1 + KUJDES: %1 @@ -363,12 +357,12 @@ &Case Sensitive - Krahasoj &Shkrimin + Krahasoj &shkrimin Highlight &all - + Theksoj &të gjitha @@ -376,18 +370,18 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + Përkthimi bjellorusisht nga latinishtja në cirilik (ortografi klasike) Belarusian transliteration from latin to cyrillic (school orthography) - + Përkthimi bjellorusisht nga latinishtja në cirilik (ortografi shkollore) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + Përkthimi bjellorusisht (zvogëlon diferencat mes ortografisë klasike dhe shkollore në cirilik) @@ -451,7 +445,7 @@ Dictionaries: - + Fjalorët: @@ -466,28 +460,28 @@ Unassigned - + I pacaktuar Combine groups by source language to "%1->" - + Kombinoj grupet sipas gjuhës së burimit në "%1->" Combine groups by target language to "->%1" - + Kombinoj grupet sipas gjuhës së synuar në "%1->" Make two-side translate group "%1-%2-%1" - + Krijoj grup përkthimi dyanësh "%1-%2-%1" Combine groups with "%1" - + Kombinoj grupet me "%1" @@ -495,48 +489,49 @@ Total articles: - Artikujt totalë: + Artikujt totalë: Translates from: - Përkthen nga: + Përkthen nga: Total words: - Fjalët totale: + Totali i fjalëve: Translates to: - Përkthen në: + Përkthen në: Open folder - + Hap dosjen Edit dictionary - + Editoj fjalorin Files comprising this dictionary: - Skedat që përbëjnë fjalorin: + Skedat që përbëjnë fjalorin: Description: - + Përshkrimi: Edit the dictionary via command: %1 - + Editoj fjalorin me komandën: +%1 @@ -550,38 +545,34 @@ DictionaryBar - Dictionary Bar - Brezi i Fjalorit - - &Dictionary Bar - + &Brezi i fjalorëve Extended menu with all dictionaries... - + Meny e zgjeruar me të gjithë fjalorët... Edit this group - Editoj këtë grupin + Editoj grupin Dictionary info - + Info për fjalorin Open dictionary folder - + Hap dosjen e fjalorit Edit dictionary - + Editoj fjalorin @@ -589,7 +580,7 @@ &Sources - &Burime + &Burimet @@ -601,7 +592,7 @@ &Groups - &Grupe + &Grupet @@ -634,43 +625,43 @@ the viewer program name is empty - + emri i programit është bosh Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Gabim në analizimin e XML: %1 në %2,%3 - + Added %1 Shtoi %1 - + by nga - + Male Mashkull - + Female Femër - + from nga - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Shkon te Editoj|Fjalorët|Burime|Forvo dhe zbaton kodin tonë API për ta zhdukur këtë gabimin. @@ -753,17 +744,17 @@ Are you sure you want to remove all the groups? - Jeni i sigurt për heqjen e tërë grupeve? + Jeni i sigurt për heqjen e të gjitha grupeve? Dictionaries available: - Fjalorët e mundshëm: + Fjalorët e gatshëm: Add selected dictionaries to group (Ins) - Shtoj fjalorët e seleksionuar te grupi (Ins) + Shtoj fjalorët e përzgjedhur te grupi (Ins) @@ -778,7 +769,7 @@ Remove selected dictionaries from group (Del) - Heq fjalorët e seleksionuar nga grupi (Del) + Heq fjalorët e përzgjedhur nga grupi (Del) @@ -793,12 +784,12 @@ Groups: - Grupe: + Grupet: Tab 2 - Fusha 2 + Tab 2 @@ -848,7 +839,7 @@ Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. - Kapini & lëshojini fjalorët midis grupeve, lëvizini ata brenda tyre, renditini grupet duke përdorur miun. + Kapini e lëshojini fjalorët midis grupeve, lëvizini, radhitini duke përdorur mausin. @@ -856,27 +847,27 @@ &Delete Selected - + &Fshij përzgjedhjen Copy Selected - + Kopjoj përzgjedhjen History: - + Historiku: - + %1/%2 - + %1/%2 - + History size: %1 entries out of maximum %2 - + Masa e historikut: %1 njësi jashtë maksimumit %2 @@ -887,7 +878,7 @@ Sugjerimet e rrokjezimit: - + %1 Morphology %1 Morfologjia @@ -897,7 +888,7 @@ Enabled - I aktivizuar + Aktiv @@ -910,13 +901,13 @@ Please wait... - Ju lutem prisni... + Lutemi të prisni... Please wait while indexing dictionary - Ju lutem prisni lidhjen e fjalorit + Prisni, fjalori po indeksohet @@ -926,7 +917,7 @@ Dictionary Name - Emri i Fjalorit + Emri i fjalorit @@ -949,22 +940,22 @@ Afrikaans - Африкаанс + Afrikanisht Akan - Аканский + Аkan Amharic - Амхарский + Amharic Aragonese - Арагонский + Aragonese @@ -1859,82 +1850,82 @@ Lojban - + Lojban Traditional Chinese - + Kinezisht tradicionale Simplified Chinese - + Kinezisht e thjeshtuar Other - + Tjetër Other Simplified Chinese dialects - + Dialekte të tjera të kinezishtes së thjeshtuar Other Traditional Chinese dialects - + Dialekte të tjera të kinezishtes tradicionale Other Eastern-European languages - + Gjuhë të tjera evropiano-lindore Other Western-European languages - + Gjuhë të tjera evropiano-perëndimore Other Russian languages - + Gjuhë të tjera ruse Other Japanese languages - + Gjuhë të tjera japoneze Other Baltic languages - + Gjuhë të tjera baltike Other Greek languages - + Gjuhë të tjera greke Other Korean dialects - + Dialekte të tjera koreane Other Turkish dialects - + Dialekte të tjera turke Other Thai dialects - + Dialekte të tjera tajlandeze Tamazight - + Tamazight @@ -1948,18 +1939,14 @@ Main - + Error in configuration file. Continue with default settings? - + Gabim në skedën e konfiguracionit.Do vijoni me parametrat standardë? MainWindow - Navigation - Lundrimi - - Back Pas @@ -1972,12 +1959,12 @@ Scan Popup - Skanimi i Jashtëm + Skanimi i jashtëm Show &Main Window - Tregoj Dritaren &Kryesore + Shfaq dritaren &kryesore @@ -1991,128 +1978,120 @@ Hap... - + Skip This Release - Kapërcej Këtë Lëshimin + Kaloj këtë versionin - + You have chosen to hide a menubar. Use %1 to show it back. - + Zgjodhët të fshehni menynë.Përdorni %1 për ta rishfaqur. - + Ctrl+M - + Ctrl+M - + Page Setup - Sistemimi i Faqes + Sistemimi i faqes - + No printer is available. Please install one first. - Nuk mundëson asnjë printer. Ju lutem instalojeni një. + Nuk ka asnjë printer. Lutemi e instaloni më parë. - + Print Article - Shtyp Artikullin + Printoj artikullin - + Article, Complete (*.html) - + Artikull, i plotë (*.html) - + Article, HTML Only (*.html) - + Artikull, vetëm HTML (*.html) - + Save Article As - Ruaj Artikullin Si - - - Html files (*.html *.htm) - Skeda Html (*.html *.htm) + Ruaj artikullin si - + Error Gabim - + Can't save article: %1 Nuk ruan artikullin: %1 - + %1 dictionaries, %2 articles, %3 words %1 fjalorë, %2 artikuj, %3 fjalë - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. - Dështon nisja e mekanizmit monitorues të tasteve kryesore.<br>Sigurohuni që XServer e ka të ndezur zgjatimin RECORD. + Dështoi nisja e mekanizmit monitorues të tasteve kryesore.<br>Sigurohuni që XServer e ka të ndezur zgjatimin RECORD. - + New Release Available - Ka Dalë Version i Ri + Ka dalë version i ri - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. - Versioni <b>%1</b> për GoldenDict është gati për t'u shkarkuar.<br>Klikoni <b>Shkarkoj</b>, që të shkoni te faqja e shkarkimit. + Versioni <b>%1</b> për GoldenDict është gati për t'u shkarkuar.<br>Klikoni <b>Shkarkoj</b>, që të hapni faqen e shkarkimit. - + Download Shkarkoj - + Look up in: Shikoj në: - Show Names in Dictionary Bar - Tregoj Emrat në Brezin e Fjalorit - - &Menubar - + Brezi i &menysë Found in Dictionaries: - + Gjetjet në fjalorë: Pronounce Word (Alt+S) - Shqiptoj Fjalën (Alt+S) + Shqiptoj fjalën (Alt+S) Show Names in Dictionary &Bar - + Tregoj emrat e &fjalorëve Show Small Icons in &Toolbars - + Tregoj ikonat e &vogla &Navigation - + &Lundrimi @@ -2127,22 +2106,22 @@ Normal Size - Masa Normale + Përmasat normale Words Zoom In - Zmadhoj Fjalët + Zmadhoj fjalët Words Zoom Out - Zvogëloj Fjalët + Zvogëloj fjalët Words Normal Size - Fjalët në Masën Normale + Fjalët në përmasat normale @@ -2152,73 +2131,73 @@ Close all tabs - Mbyll tërë fushat + Mbyll të gjitha fushat Close all tabs except current - Mbyll tërë fushat veç kësaj + Mbyll të gjitha fushat veç kësaj - + Look up: Shikoj: - + All - Gjithçka + Të gjithë - - + + Accessibility API is not enabled - + Accessibility API është joaktiv - + Saving article... - + Ruan artikullin... - + The main window is set to be always on top. - + Dritarja kryesore qëndron gjithmonë në krye. - + Import history from file - + Importoj historikun nga skeda - + Import error: invalid data in file - + Gabim importi: skedë me të dhëna të pasakta - + History import complete - + Përfundoi importi i historikut - + Import error: - + Gabim importi: - + Dictionary info - + Info për fjalorin - + Open dictionary folder - + Hap dosjen e fjalorit - + Edit dictionary - + Editoj fjalorin @@ -2226,57 +2205,49 @@ Fushat e hapura - + Open Tabs List - + Hap listën e fushave - + (untitled) (pa titull) - + %1 - %2 - - - - WARNING: %1 - KUJDES: %1 + %1 - %2 - + &Hide - + &Fsheh - + Export history to file - + Eksportoj historikun në skedë - - + + Text files (*.txt);;All files (*.*) - + Skeda tekst (*.txt);;Të gjitha skedat (*.*) - + History export complete - + Përfundoi eksporti i historikut - + Export error: - - - - GoldenDict - GoldenDict + Gabim eksporti: - + Welcome! Mirë se erdhët! @@ -2298,7 +2269,7 @@ &Preferences... - &Pëlqime... + &Preferencat... @@ -2306,10 +2277,6 @@ F2 - &Groups... - &Grupe... - - &View &Pamje @@ -2322,7 +2289,7 @@ H&istory - H&istoriku + H&istorik @@ -2332,22 +2299,22 @@ F3 - F3 + F3 &Search Pane - + Paneli i &kërkimit &Results Navigation Pane - + Paneli i &rezultateve &History Pane - + Paneli i &historikut @@ -2357,7 +2324,7 @@ &Homepage - &Faqja e Shtëpisë + &Faqja zyrtare @@ -2377,7 +2344,7 @@ Quit from application - Dal nga aplikimi + Mbyll aplikacionin @@ -2392,7 +2359,7 @@ &Close To Tray - &Mbyll Në Shirit + &Mbyll në shirit @@ -2407,17 +2374,17 @@ &Save Article - &Ruaj Artikullin + &Ruaj artikullin Save Article - Ruaj Artikullin + Ruaj artikullin &Print - &Shtyp + &Printoj @@ -2427,52 +2394,44 @@ Page Set&up - Sistem&oj Faqen + Sistem&oj faqen Print Pre&view - + Parashikoj &shtypjen &Rescan Files - + &Riskanoj skedat &New Tab - + &Fushë e re &Always on Top - + &Gjithmonë në krye Always on Top - + Gjithmonë në krye Ctrl+O - + Ctrl+O Menu Button - - - - Print Preview - Parashikoj Shtypjen - - - Rescan Files - Riskanoj Skedat + Butoni i menysë @@ -2487,61 +2446,57 @@ New Tab - + Fushë e re Ctrl+T - + Ctrl+T &Configuration Folder - + Dosja e &konfiguracionit - + &Show - + &Shfaq Ctrl+H - + Ctrl+H &Export - + &Eksportoj &Import - - - - Search Pane - Paneli i Kërkimit + &Importoj Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Skeda e fjalorit u manipulua ose u dëmtua - + Failed loading article from %1, reason: %2 - + Dështoi hapja e artikullit nga %1, arsyeja: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Gabim në analizimin e XML: %1 në %2,%3 @@ -2549,7 +2504,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Gabim në analizimin e XML: %1 në %2,%3 @@ -2559,7 +2514,7 @@ Enabled - I aktivizuar + Aktiv @@ -2574,7 +2529,7 @@ Icon - + Ikona @@ -2587,7 +2542,7 @@ Dictionary order: - Rendi i fjalorëve: + Radha e fjalorëve: @@ -2605,7 +2560,7 @@ Dictionary information - Informacioni i Fjalorit + Informacion për fjalorin @@ -2620,7 +2575,7 @@ Total words: - Fjalët totale: + Totali i fjalëve: @@ -2635,7 +2590,7 @@ Description: - + Përshkrimi: @@ -2645,17 +2600,17 @@ Adjust the order by dragging and dropping items in it. Drop dictionaries to the inactive group to disable their use. - Ndreqeni rendin duke i kapur dhe lëshuar elementet. Lëshojini fjalorët te grupi joaktiv që t'i çaktivizoni ata. + Ndreqeni radhën duke kapur e lëshuar elementet. Kalojini fjalorët te grupi joaktiv për t'i çaktivizuar. Sort by name - + Radhit sipas emrit Sort by languages - + Radhit sipas gjuhëve @@ -2676,7 +2631,7 @@ Preferences - Pëlqime + Preferencat @@ -2706,8 +2661,8 @@ With this on, new tabs are opened just after the current, active one. Otherwise they are added to be the last ones. - Kur e ndez këtë, fushat e reja hapen direkt pas aktuales, -asaj aktive. Përndryshe ato shtohen te më të fundit. + Kur e ndez, fushat e reja hapen direkt pas aktuales, +asaj aktive. Përndryshe ato i shtohen më të fundit. @@ -2719,7 +2674,7 @@ When enabled, an icon appears in the sytem tray area which can be used to open main window and perform other tasks. Kur e aktivizon, në shiritin e sistemit shfaqet një ikonë që mund të përdoret -për të hapur dritaren kryesore dhe për të kryer detyrat e tjera. +për të hapur dritaren kryesore dhe për të kryer detyra të tjera. @@ -2730,7 +2685,7 @@ With this on, the application starts directly to system tray without showing its main window. - Kur e ndez këtë, aplikimi nis direkt në shiritin e sistemit, pa e treguar dritaren kryesore. + Kur e ndez, aplikacioni nis direkt në shiritin e sistemit, pa e shfaqur dritaren kryesore. @@ -2741,7 +2696,7 @@ With this on, an attempt to close main window would hide it instead of closing the application. - Kur e ndez këtë, përpjekja për të mbyllur dritaren kryesore të aplikimit në fakt e fsheh atë. + Kur e ndez, dritarja kryesore e aplikacionit nuk mbyllet por do të fshehet. @@ -2771,14 +2726,14 @@ Double-click translates the word clicked - Klikoj dy herë për të përkthyer fjalën + Përkthej fjalën me dy klikime Chooses whether the scan popup mode is on by default or not. If checked, the program would always start with the scan popup active. - Zgjedh nëse mënyra tipike e skanimit të jashtëm është e ndezur apo jo. -Nëse e zgjedh, programi nis gjithmonë me skanimin e jashtëm aktiv. + Zgjedh nëse mënyra standarde e skanimit të jashtëm është ndezur apo jo. +Kur e zgjedh, programi nis gjithmonë me skanimin e jashtëm aktiv. @@ -2786,9 +2741,9 @@ maintain the chosen keys pressed while you select a word. With this enabled, the chosen keys may also be pressed shortly after the selection is done. - Normalisht, për të aktivizuar skanimin duhen mbajtur shtypur -tastet e zgjedhura kur seleksiononi një fjalë. Kur e aktivizon, -tastet e zgjedhura mund të shtypen shkurt pas seleksionimit. + Normalisht, skanimi aktivizohet duke mbajtur shtypur tastet +e zgjedhura gjatë përzgjedhjes së fjalës. Kur e aktivizon, +tastet e zgjedhura mund të shtypen shkurt pas përzgjedhjes. @@ -2798,78 +2753,78 @@ Use the following hotkey to show or hide the main window: - Përdor këtë tastin për të treguar ose fshehur dritaren kryesore: + Përdor një tast për të shfaqur a fshehur dritaren kryesore: Use the following hotkey to translate a word from clipboard: - Përdor këtë tastin për të përkthyer një fjalë në mbledhëse: + Përdor një tast për të përkthyer fjalën në kujtesën e kompjuterit: The hotkeys are global and work from any program and within any context as long as GoldenDict is running in background. - Tastet kryesore janë globale dhe punojnë në çdo program brenda çdo konteksti për aq kohë sa GoldenDict vepron në sfond. + Tastet kryesore punojnë përgjithësisht në çdo program, për aq kohë sa GoldenDict vepron në sfond. &Scan Popup - &Skanimi i Jashtëm + &Skanimi i jashtëm Select this option if you don't want to see the main tab bar when only a single tab is opened. - + Zgjedh a duhet shfaqur brezi i fushave kur është hapur vetëm një fushë. Hide single tab - + Fsheh fushën e vetme Ctrl-Tab navigates tabs in MRU order - + Kaloj fushat me Ctrl+Tab sipas rendit MRU Automatically starts GoldenDict after operation system bootup. - Nis automatikisht GoldenDict pas operacionit për fillimin e sistemit. + Nis automatikisht GoldenDict pas hapjes së sistemit. Normally, pressing ESC key moves focus to the translation line. With this on however, it will hide the main window. - + Normalisht, shtypja e tastit ESC e çon fokusin te vija e përkthimit. Kur e ndez këtë, ai fsheh dritaren kryesore. ESC key hides main window - + Tasti ESC fsheh dritaren kryesore Turn this option on if you want to select words by single mouse click - + Aktivizoni opsionin nëse doni të seleksiononi fjalët me një klikim Select word by single click - + Seleksionoj fjalën me një klikim Add-on style: - + Stili i shtesave: Adjust this value to avoid huge context menus. - + Ndreq vlerën për të shmangur menytë e gjata të kontekstit. Context menu dictionaries limit: - + Limiti i fjalorëve në meny: @@ -2877,32 +2832,32 @@ you point your mouse on any word on the screen (Windows) or select any word with mouse (Linux). When enabled, you can switch it on and off from main window or tray icon. - Kur e aktivizon, çdo herë që e drejtoni miun në ndonjë fjalë mbi ekran (Windows) -ose kur seleksiononi një fjalë me miun (Linux), ju shfaqet një dritare e jashtme -me përkthimin. Kur e aktivizon, mund të ndizet dhe të fiket në ikonën e dritares -kryesore ose nga shiriti i sistemit. + Kur e aktivizon, çdo herë që e drejtoni mausin në ndonjë fjalë mbi ekran (Windows) +ose kur seleksiononi një fjalë me mausin (Linux), ju shfaqet një dritare e jashtme +me përkthimin. Mund të ndizet e të fiket në ikonën e dritares kryesore +ose nga shiriti i sistemit. Enable scan popup functionality - Aktivizoj funksionin e skanimit të jashtëm + Aktivizoj skanimin e jashtëm Start with scan popup turned on - Nis me skanimin e jashtëm të ndezur + Nis me skanuesin e ndezur With this enabled, the popup would only show up if all chosen keys are in the pressed state when the word selection changes. - Kur e aktivizon, skanimi do shfaqet vetëm kur tërë tastet e seleksionuara -janë në gjendjen e shtypur kur ndryshon seleksionimi i fjalës. + Kur e aktivizon, skanimi do funksionojë vetëm kur tërë tastet e përzgjedhura +janë në gjendjen e shtypur. Only show popup when all selected keys are kept pressed: - Tregoj skanimin vetëm kur shtyp tastet e seleksionuara: + Shfaq skanuesin vetëm kur shtyp tastet e përzgjedhura: @@ -3014,8 +2969,8 @@ To avoid false positives, the keys are only monitored after the selection's done for a limited amount of seconds, which is specified here. - Për të shmangur seleksionimet false, tastet monitorohen vetëm -kur e kryen seleksionimin brenda një sasie të kufizuar sekondash, + Për të shmangur përzgjedhjet false, tastet monitorohen vetëm +kur e kryen përzgjedhjen brenda një sasie të kufizuar sekondash, e përcaktuar këtu. @@ -3026,12 +2981,12 @@ Send translated word to main window instead of to show it in popup window - + Dërgon fjalën e përkthyer te dritarja kryesore, jo te dritarja kërcyese Send translated word to main window - + Dërgoj fjalën e përkthyer te dritarja kryesore @@ -3064,7 +3019,7 @@ Auto-pronounce words in scan popup - Autoshqiptoj fjalët në skanimin e jashtëm + Autoshqiptoj fjalët e skanuara @@ -3074,57 +3029,37 @@ Play audio files via FFmpeg(libav) and libao - + Riprodhon skedat zanore me FFmpeg(libav) dhe libao Use internal player - + Përdor lexuesin e brendshëm Select this option to automatic collapse big articles - + Kur e ndez, artikujt e mëdhenj do të mblidhen automatikisht. Collapse articles more than - + Mbledh artikujt me më shumë se Articles longer than this size will be collapsed - + Artikujt mbi këtë përmasë do të mblidhen symbols - - - - Use Windows native playback API. Limited to .wav files only, -but works very well. - Përdor leximin me API-n e brendshëm në Windows. Kufizohet vetëm te skedat .wav, -por punon shumë mirë. - - - Play via Windows native API - Luaj via API të brendshëm në Windows - - - Play audio via Phonon framework. May be somewhat unstable, -but should support most audio file formats. - Luan audion via bazës Phonon. Mund të jetë disi e paqëndrueshme, -por përkrah shumicën e skedave në format audio. - - - Play via Phonon - Luaj via Phonon + simbole Use any external program to play audio files - Përdor programin e jashtëm për të luajtur skedat zanore + Riprodhon skedat zanore me një program tjetër @@ -3140,8 +3075,8 @@ Enable if you wish to use a proxy server for all program's network requests. - E aktivizon kur dëshironi të përdorni një server proxy -për tërë kërkesat e programit për rrjet. + Aktivizojeni kur dëshironi të përdorni një server proxy +për tërë kërkesat e programit për internet. @@ -3180,7 +3115,7 @@ you are browsing. If some site breaks because of this, try disabling this. Kur e aktivizon, GoldenDict bllokon shumicën e reklamave duke mohuar përmbajtjen (imazhe, korniza) jashtë faqes që shfleton. Nëse ndonjë -faqe ka probleme për shkak të kësaj, provoni ta çaktivizoni. +faqe shfaq probleme prej kësaj, çaktivizojeni. @@ -3192,23 +3127,26 @@ Enabling this would allow to listen to sound pronunciations from online dictionaries that rely on Flash or other web plugins. Plugin must be installed for this option to work. - + Kur e aktivizon, mund të dëgjohen shqiptimet nga fjalorët +online që varen nga Flash ose spinat e tjera të internetit. +Spina duhet instaluar që të funksionojë. Enable web plugins - + Aktivizoj spinat e internetit Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Disa faqe e njohin GoldenDict me anë të kokëve HTTP, dhe i bllokojnë kërkesat. +Ky opsion e anashkalon problemin. Do not identify GoldenDict in HTTP headers - + Nuk identifikoj GoldenDict në kokët HTTP @@ -3217,9 +3155,9 @@ is available for download. If it is so, the program informs the user about it and prompts to open a download page. - Kur e aktivizon, programi verifikon periodikisht nëse ka një version të ri, -të azhurnuar të GoldenDict. Nëse po, programi informon për të dhe -kërkon hapjen e faqes për ta shkarkuar. + Kur e aktivizon, programi verifikon periodikisht kur del një version i ri, +i azhurnuar, i GoldenDict. Atëherë, programi informon rreth tij dhe +kërkon ta shkarkojë. @@ -3229,12 +3167,12 @@ Ad&vanced - + Av&ancuar ScanPopup extra technologies - + Teknologji shtesë për Skanimin e jashtëm @@ -3242,106 +3180,113 @@ This technology works only with some programs that support it (for example Internet Explorer 9). It is not needed to select this option if you don't use such programs. - + Përdorni teknologjinë IAccessibleEx për të gjetur fjalën nën kursor. +Teknologjia punon vetëm me disa programe që e garantojnë atë +(për shembull, Internet Explorer 9). +Nuk keni pse ta aktivizoni nëse nuk i përdorni këto programe. Use &IAccessibleEx - + Përdor &IAccessibleEx Try to use UI Automation technology to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Përdorni teknologjinë UI Automation për të gjetur fjalën nën kursor. +Teknologjia punon vetëm me disa programe që e garantojnë atë. +Nuk keni pse ta aktivizoni nëse nuk i përdorni këto programe. Use &UIAutomation - + Përdor &UIAutomation Try to use special GoldenDict message to retrieve word under cursor. This technology works only with some programs that support it. It is not needed to select this option if you don't use such programs. - + Përdorni mesazhet e GoldenDict për të gjetur fjalën nën kursor. +Teknologjia punon vetëm me disa programe që e garantojnë atë. +Nuk keni pse ta aktivizoni nëse nuk i përdorni këto programe. Use &GoldenDict message - + Përdor mesazhet e &GoldenDict History - + Historiku Turn this option on to store history of the translated words - + Kur e ndez, depozitohet historiku i fjalëve të përkthyera. Store &history - + Depozitoj &historikun Specify the maximum number of entries to keep in history. - + Specifikoni numrin maksimal të njësive që ruhen në historik. Maximum history size: - + Masa maksimale e historikut: History saving interval. If set to 0 history will be saved only during exit. - + Intervali i ruajtjes së historikut. Kur vendoset 0, historiku ruhet vetëm gjatë mbylljes së programit. Save every - + Ruaj çdo minutes - + minuta Articles - + Artikujt Turn this option on to always expand optional parts of articles - + Kur e ndez, pjesët fakultative të artikujve zgjerohen gjithmonë. Expand optional &parts - + Zgjeroj &pjesët fakultative System default - Tipike e Sistemit + Standardi i sistemit Default - Tipik + Standard Modern - + Modern @@ -3351,29 +3296,25 @@ Babylon - + Babylon Lingoes - + Lingoes Lingoes-Blue - - - - Play via DirectShow - Luaj via DirectShow + Lingoes Blu - + Changing Language Ndryshimi i Gjuhës - + Restart the program to apply the language change. Riniseni programin për të zbatuar ndryshimin e gjuhës. @@ -3383,27 +3324,27 @@ Audio - + Audio Plain Text - + Tekst i thjeshtë Html - + Html Prefix Match - + Krahasoj parashtesën Unknown - + E panjohur @@ -3411,17 +3352,17 @@ No program name was given. - + Nuk u dha emri i programit. The program has crashed. - + Programi u prish. The program has returned exit code %1. - + Programi ktheu kodin e daljes %1. @@ -3429,125 +3370,125 @@ Enabled - I aktivizuar + Aktiv Type - + Lloji Name - Emri + Emri Command Line - + Vija e komandës Icon - + Ikona QObject - + Article loading error - + Gabim në hapjen e artikullit - + Article decoding error - + Gabim në deshifrimin e artikullit - + avformat_alloc_context() failed. - + Dështoi avformat_alloc_context(). - + av_malloc() failed. - + Dështoi av_malloc(). - + avio_alloc_context() failed. - + Dështoi avio_alloc_context(). - + avformat_open_input() failed: %1. - + Dështoi avformat_open_input(): %1. - + avformat_find_stream_info() failed: %1. - + Dështoi avformat_find_stream_info(): %1. - + Could not find audio stream. - + Nuk gjen rrymën audio. - + Codec [id: %1] not found. - + Nuk gjen kodekun [id: %1]. - + avcodec_open2() failed: %1. - + Dështoi avcodec_open2(): %1. - + Cannot find usable audio output device. - + Nuk gjen pajisje output të përdorshme për zërin. - + Unsupported sample format. - + Format i pagarantuar. - + ao_open_live() failed: - + Dështoi ao_open_live(): - + No driver. - + Nuk ka drejtues. - + This driver is not a live output device. - + Drejtuesi nuk është pajisje output e drejtërdrejtë. - + A valid option key has an invalid value. - + Një tast i duhur ka vlerë të pasaktë. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Nuk mund të hapë pajisjen: %1, kanalet: %2, raporti: %3, bitet: %4. - + Unknown error. - + Gabim i panjohur. - + avcodec_alloc_frame() failed. - + Dështoi avcodec_alloc_frame(). @@ -3555,36 +3496,36 @@ Dictionary search/filter (Ctrl+F) - + Kërkoj/filtroj fjalorët (Ctrl+F) Quick Search - + Kërkim i shpejtë Clear Search - + Pastroj kërkimin ResourceToSaveHandler - - + + ERROR: %1 - + GABIM: %1 - + Resource saving error: - + Gabim në ruajtjen e resursit: - + The referenced resource failed to download. - Dështon shkarkimi i burimit të referuar. + Dështoi shkarkimi i resursit të referuar. @@ -3616,26 +3557,14 @@ Dialog - word - fjala - - Back - Pas + Pas Forward - Para - - - List Matches (Alt+M) - Listoj >Ngjashmëritë (Alt+M) - - - Alt+M - Alt+M + Para @@ -3650,24 +3579,24 @@ Send word to main window (Alt+W) - + Dërgoj fjalën te dritarja kryesore (Alt+W) Alt+W - + Alt+W Shows or hides the dictionary bar - Tregon ose fsheh brezin e fjalorit + Shfaq ose fsheh brezin e fjalorit Use this to pin down the window so it would stay on screen, could be resized or managed in other ways. Këtë e përdor për të piketuar dritaren që të qëndrojë mbi ekran, -që të marrë një masë të re ose për mënyrat e tjera. +që të marrë një përmasë të re ose për mënyrat e tjera. @@ -3679,14 +3608,10 @@ ... - GoldenDict - GoldenDict - - %1 - %2 - + %1 - %2 @@ -3704,7 +3629,7 @@ Icon - + Ikona @@ -3712,7 +3637,7 @@ Text to Speech - + Tekst në tinguj @@ -3750,7 +3675,7 @@ Remove program <b>%1</b> from the list? - + Do e hiqni programin <b>%1</b> nga lista? @@ -3760,7 +3685,7 @@ Paths to search for the dictionary files: - Shtigjet ku kërkoni për skedat e fjalorëve: + Shtigjet ku do të kërkohen skedat e fjalorëve: @@ -3788,7 +3713,7 @@ Sound Dirs - Direktoritë e Zërit + Direktoritë audio @@ -3813,7 +3738,7 @@ Available morphology dictionaries: - Fjalorët morfologjikë të mundshëm: + Fjalorët morfologjikë të gatshëm: @@ -3827,26 +3752,22 @@ ndihmës që jep fjalët rrënjë për kërkimet dhe sugjeron rrokjet për fjalët e shkruara gabim. Shtojini fjalorët e duhur te fundi i grupeve -të caktuara për t'i përdorur ata. +të caktuara për t'i përdorur. Websites - Faqet në Rrjetë + Faqet në internet Any websites. A string %GDWORD% will be replaced with the query word: - Çdo faqe në rrjetë. Rreshti %GDWORD% do zëvendësohet me fjalën e kërkuar: - - - Alternatively, use %GD1251% for CP1251, %GDISO1% for ISO 8859-1. - Si alternativë, përdorni %GD1251% për CP1251, %GDISO1% për ISO 8859-1. + Çdo faqe në internet. Radha %GDWORD% do zëvendësohet me fjalën e kërkuar: Programs - + Programet @@ -3856,7 +3777,7 @@ Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. - Shqiptimet direkte nga <a href="http://www.forvo.com/">forvo.com</a>. Kjo faqe lejon që personat të regjistrojnë shqiptimet e fjalëve dhe t'i ndajnë ato me të tjerët. Mund të dëgjohen në GoldenDict. + Shqiptimet direkte nga <a href="http://www.forvo.com/">forvo.com</a>. Kjo faqe lejon individët të regjistrojnë shqiptimet e fjalëve dhe t'i ndajnë ato me të tjerët. Mund të dëgjohen në GoldenDict. @@ -3873,42 +3794,25 @@ Use of Forvo currently requires an API key. Leave this field blank to use the default key, which may become unavailable in the future, or register on the site to get your own key. - Tani, përdorimi i Forvo-s kërkon një kod API. Lëreni bosh fushën për të përdorur atë normal, + Tani, përdorimi i Forvo-s kërkon një kod API. Lëreni bosh fushën për të përdorur atë standard, që mund të mos lejohet në të ardhmen, ose regjistrohuni te faqja për të marrë kodin tuaj. Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Get your own key <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Gjeni kodin tuaj <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">këtu</span></a>, ose lëreni bosh për të përdorur atë normal.</p></td></tr></table></body></html> + Merrni kodin tuaj <a href="http://api.forvo.com/key/">këtu</a>, ose lëreni bosh për të përdorur standardin. Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + Ndryshe, përdorni %GD1251% për CP1251, %GDISO1%...%GDISO16% për ISO 8859-1...ISO 8859-16 përkatësisht, +%GDBIG5% për Big-5, %GDBIG5HKSCS% për Big5-HKSCS, %GDGBK% për GBK and GB18030, %GDSHIFTJIS% për Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Çdo program i jashtëm. Vargu %GDWORD% do zëvendësohet me fjalën e kërkuar. Kur vargu nuk shkruhet, fjala jepet si input standard. @@ -3948,12 +3852,12 @@ Belarusian transliteration - + Përkthimi bjellorusisht Enables to use the Latin alphabet to write the Japanese language - Aktivizoni përdorimin e alfabetit latin për të shkruar japonishten + Lejon përdorimin e alfabetit latin për të shkruar japonishten @@ -3963,7 +3867,7 @@ Systems: - Sisteme: + Sistemi: @@ -4012,7 +3916,7 @@ Syllabaries: - Rrokjezime: + Rrokjezimi: @@ -4050,7 +3954,7 @@ None - Asnjë + Asnjë @@ -4058,77 +3962,77 @@ Selected voice engines: - + Motorët e përzgjedhur të zërit: &Add - + &Shtoj &Remove - &Heq + &Heq Preferences - Pëlqime + Preferencat Volume: - + Volumi: Rate: - + Vlerësimi: Preview - + Parashikoj Available voice engines: - + Motorët e gatshëm të zërit: Text to be previewed: - + Teksti që parashikohet: Type text to be previewed here. - + Shkruani tekstin që do të parashikohet. &Preview - + &Parashikoj No TTS voice available - + Nuk ka zë TTS Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Nuk gjen zërin TTS të gatshëm. <br>Lutemi të siguroheni që keni instaluar të paktën një motor TTS në kompjuter. Confirm removal - Miratoj heqjen + Miratoj heqjen Remove voice engine <b>%1</b> from the list? - + Do e hiqni motorin e zërit <b>%1</b> nga lista? @@ -4136,12 +4040,12 @@ Type a word or phrase to search dictionaries - + Kërkoni një fjalë a frazë në fjalor Drop-down - + Ul poshtë @@ -4149,22 +4053,22 @@ Enabled - I aktivizuar + Aktiv Name - Emri + Emri Id - + Id Icon - + Ikona @@ -4172,7 +4076,7 @@ Enabled - I aktivizuar + Aktiv @@ -4187,7 +4091,7 @@ Icon - + Ikona @@ -4195,7 +4099,7 @@ Failed to query some dictionaries. - Dështon kërkimi te disa fjalorë. + Dështoi kërkimi në disa fjalorë. @@ -4203,7 +4107,7 @@ WARNING: %1 - KUJDES: %1 + KUJDES: %1 diff -Nru goldendict-1.0.2~git20130620/locale/sr_SR.ts goldendict-1.5.0~ppa131019/locale/sr_SR.ts --- goldendict-1.0.2~git20130620/locale/sr_SR.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/sr_SR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,4258 @@ + + + + + About + + + About + О програму + + + + GoldenDict dictionary lookup program, version + Речник GoldenDict, издање + + + + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + © Константин Исаков (ikm@goldendict.org), 2008-2011 {2008-2013 ?} + + + (c) 2008-2011 Konstantin Isakov (ikm@goldendict.org) + © Константин Исаков (ikm@goldendict.org), 2008-2011 + + + + Credits: + Заслуге: + + + + Licensed under GNU GPLv3 or later + Лиценца: GNU GPLv3 или новија + + + + [Unknown] + [Непознато] + + + + Based on Qt %1 (%2, %3 bit) + На основу Qt %1 (%2, %3 бита) + + + + ArticleMaker + + + No translation for <b>%1</b> was found in group <b>%2</b>. + Нема превода <b>%2</b> пронађеног у групи <b>%1</b>. + + + + No translation was found in group <b>%1</b>. + У групи <b>%1</b> превод није пронађен. + + + + Welcome! + Добро дошли! + + + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2011 Konstantin Isakov. Licensed under GPLv3 or later. + <h3 align="center">Добро дошли у <b>GoldenDict</b>!</h3><p>Ако покренете програм по први пут, одредите путању до речника у <b>Уреди|Речник</b>. Ту можете да наведете разне сајтове Википедије или другe изворe података, подесите редослед у коме су речници или направите речник.<p>Након тога, можете да почнете да тражите речи. Речи се могу наћи у левом окну прозора. Када радите у другим апликацијама, можете да тражите речи, користећи <a href="Рад са искачућим прозором">искачући прозор</a>. <p>У изборнику <b>Уреди|Поставке</b>.Можете да подесите апликацију по свом укусу. Сви параметри су наговештаји који се приказују када пређете преко њих. Обратите пажњу на њих, када имате проблема са конфигурацијом.<p>Ако вам је потребна помоћ,било каква питања, захтеве, итд, погледајте<a href="http://goldendict.org/forum/"> Форум програма</a>.<p>Ажурирање софтвера доступно на <a href="http://goldendict.org/">веб сајту</a>.<p>© Константин Исаков (ikm@goldendict.org), 2008-2011. Лиценца: GNU GPLv3 или новија. + + + + Expand article + Прошири чланак + + + + Collapse article + Скупи чланак + + + + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. + <h3 align="center">Добро дошли у <b>GoldenDict</b>!</h3><p>Ако покренете програм по први пут, одредите путању до речника у <b>Уреди|Речник</b>. Ту можете да наведете разне сајтове Википедије или другe изворe података, подесите редослед у коме су речници или направите речник.<p>Након тога, можете да почнете да тражите речи. Речи се могу наћи у левом окну прозора. Када радите у другим апликацијама, можете да тражите речи, користећи <a href="Рад са искачућим прозором">искачући прозор</a>. <p>У изборнику <b>Уреди|Поставке</b>.Можете да подесите апликацију по свом укусу. Сви параметри су наговештаји који се приказују када пређете преко њих. Обратите пажњу на њих, када имате проблема са конфигурацијом.<p>Ако вам је потребна помоћ,било каква питања, захтеве, итд, погледајте<a href="http://goldendict.org/forum/"> Форум програма</a>.<p>Ажурирање софтвера доступно на <a href="http://goldendict.org/">веб сајту</a>.<p>© Константин Исаков (ikm@goldendict.org), 2008-2011. Лиценца: GNU GPLv3 или новија. {3 ?} {3>?} {2008-2013 ?} {3 ?} + + + + Working with popup + Рад са искачућим прозором + + + + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. + <h3 align="center">Искачући прозор</h3>Да бисте пронашли речи из друге апликације, потребно је да укључите <i>«Омогући искачући прозор»</i> у <b>Поставке</b> и након тога омогућити искачуће дугме «Прегледај» у главном прозору или у пливајућем изборнику на икони у системској палети. + + + + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. + Сада померите курсор на било коју реч и појавиће се искачући прозор са преводом или описом речи. + + + + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. + Сада изаберите реч у додатку (Дупли клик, или држећи миша преко њих док држите леви тастер), и искаче прозор са преводом или описом речи. + + + + (untitled) + (без имена) + + + + (picture) + (слика) + + + + ArticleRequest + + + Expand article + Прошири чланак + + + + From + Из: + + + + Collapse article + Скупи чланак + + + + Query error: %1 + Упит грешке: %1 + + + + Close words: + Затвори речи: + + + + Compound expressions: + Сложени изрази: + + + + Individual words: + Поједине речи: + + + + ArticleView + + + Resource + Ресурс + + + + Audio + Аудио + + + + Definition: %1 + Одређење: %1 + + + GoldenDict + GoldenDict + + + + Select Current Article + Изаберите тренутни чланак + + + + Copy as text + Умножи као текст + + + + Inspect + Прегледај + + + + TTS Voice + TTS глас + + + + Picture + Слика + + + + Video + Видео + + + + Video: %1 + Видео: %1 + + + + Definition from dictionary "%1": %2 + Дефиниција из речника "%1": %2 + + + + + The referenced resource doesn't exist. + Тражени ресурс није пронађен. + + + + The referenced audio program doesn't exist. + Одређени аудио програм није пронађен. + + + + ERROR: %1 + ГРЕШКА: %1 + + + + &Open Link + &Отворите ову везу + + + + Open Link in New &Tab + Отворите ову везу у новој &картици + + + + Open Link in &External Browser + Отворите ову везу у спољнем &прегледачу + + + + Save &image... + Сачувај &слику... + + + + Save s&ound... + Сачувај з&вук... + + + + &Look up "%1" + &Претражи "%1" + + + + Look up "%1" in &New Tab + Претражи «%1» у &новој картици + + + + Send "%1" to input line + Пошаљи "%1" на ред за унос + + + + + &Add "%1" to history + &Додај "%1" у историју + + + + Look up "%1" in %2 + Претражи «%1» у %2 + + + + Look up "%1" in %2 in &New Tab + Претражи «%1» у %2 в &новој картици + + + + Save sound + Сачувај звук + + + + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) + Звучне датотеке (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Све датотеке (*.*) + + + + Save image + Сачувај слику + + + + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) + Сликовне датотеке (*.bmp *.jpg *.png *.tif);;Све датотеке (*.*) + + + + WARNING: FFmpeg Audio Player: %1 + УПОЗОРЕЊЕ: FFmpeg Audio Player: %1 + + + Playing a non-WAV file + Репродукуј не WAV датотеку + + + To enable playback of files different than WAV, please go to Edit|Preferences, choose the Audio tab and select "Play via DirectShow" there. + Да бисте омогућили могућност да репродукујете датотеке типа, различитих од WAV, посетите Уреди|Поставке, изаберите картицу Аудио, а затим изаберите "излаз звука преко DirectShow". + + + + Failed to run a player to play sound file: %1 + Није могуће пустити аудио датотеку: %1 + + + + Failed to create temporary file. + Није успело да створи привремену датотеку. + + + + Failed to auto-open resource file, try opening manually: %1. + Грешка при отварању ресурс датотеке, покушајте ручно да отворите: %1. + + + + The referenced resource failed to download. + Није могуће учитати повезане ресурсе. + + + + WARNING: %1 + ОПРЕЗ: %1 + + + + Form + Form + + + + about:blank + about:blank + + + + x + x + + + + Find: + Претражи: + + + + &Previous + &Претходно + + + + &Next + &Следеће + + + + Ctrl+G + Ctrl+G + + + + &Case Sensitive + &Мала и велика слова + + + + Highlight &all + Истакни &све + + + + BelarusianTranslit + + + Belarusian transliteration from latin to cyrillic (classic orthography) + Белоруска транслитерација са латинице на ћирилицу (класичан правопис) + + + + Belarusian transliteration from latin to cyrillic (school orthography) + Белоруска транслитерација са латинице на ћирилицу (школски правопис) + + + + Belarusian transliteration (smoothes out the difference +between classic and school orthography in cyrillic) + Белоруска транслитерација (изједначава разлике +између класичних и школског правописа на ћирилици) + + + + DictGroupWidget + + + Form + Form + + + + Group icon: + Икина групе: + + + + Shortcut: + Пречица: + + + + None + Ништа + + + + From file... + Из датотеке... + + + + Choose a file to use as group icon + Изаберите датотеку да користе као икону групе + + + + Images + Слика + + + + All files + Све датотеке + + + + Error + Грешка + + + + Can't read the specified image file. + Не можете да читате одабрану слику + + + + DictGroupsWidget + + + + + + Dictionaries: + Речници: + + + + Confirmation + Потврда + + + + Are you sure you want to generate a set of groups based on language pairs? + Да ли сте сигурни да желите да креирате скуп група на основу језичких парова? + + + + Unassigned + Недодељено + + + + Combine groups by source language to "%1->" + Комбинујте група из изворног језика у "%1->" + + + + Combine groups by target language to "->%1" + Комбинујте група из циљног језика у "->%1" + + + + Make two-side translate group "%1-%2-%1" + Направите двострану групу превођења "%1-%2-%1" + + + + + Combine groups with "%1" + Комбинујте група са "%1" + + + + DictInfo + + + Total articles: + Укупно чланака: + + + + Translates from: + Изворни језик: + + + + Total words: + Укупно речи: + + + + Translates to: + Циљни језик: + + + + Open folder + Отвори фасциклу + + + + Edit dictionary + Уреди речник + + + + Files comprising this dictionary: + Датотеке које чине речник: + + + + Description: + Опис: + + + + Edit the dictionary via command: +%1 + Уреди речник преко командне: +%1 + + + + DictListModel + + + %1 entries + %1 уноса + + + + DictionaryBar + + Dictionary Bar + Картица речника + + + + &Dictionary Bar + &Картица речника + + + + Extended menu with all dictionaries... + Проширени изборник са свим речницима... + + + + Edit this group + Уреди ову групу + + + + Dictionary info + Подаци о речнику + + + + Open dictionary folder + Отвори фасциклу речника + + + + Edit dictionary + Уреди речник + + + + EditDictionaries + + + &Sources + &Извори + + + + + &Dictionaries + &Речници + + + + + &Groups + &Групе + + + + Sources changed + Извори промена + + + + Some sources were changed. Would you like to accept the changes? + Неки извори су промењени. Прихвати измене? + + + + Accept + Прихвати + + + + Cancel + Откажи + + + + Dictionaries + Речници + + + + ExternalViewer + + + the viewer program name is empty + Спољни гледалац - непознат + + + + Forvo::ForvoArticleRequest + + + XML parse error: %1 at %2,%3 + Анализа грешке XML: %1 на линији %2, колона %3 + + + + Added %1 + Додато %1 + + + + by + из + + + + Male + Човек + + + + Female + Жена + + + + from + из + + + + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. + Иди на Уреди|Речници|Извори|Forvo и примени на ваш кључ API, да бисте решили овај проблем. + + + + GermanTranslit + + + German Transliteration + Транскрипција (Немачки) + + + + GreekTranslit + + + Greek Transliteration + Транскрипција (Грчки) + + + + GroupComboBox + + + Choose a Group (Alt+G) + Изаберите групу (Alt+G) + + + + GroupSelectorWidget + + + Form + Form + + + + Look in + Претражи + + + + Groups + + + Add group + Додај групу + + + + Give a name for the new group: + Унесите име нове групе: + + + + Rename group + Преименуј групу + + + + Give a new name for the group: + Унесите ново име групе: + + + + Remove group + Уклоните групу + + + + Are you sure you want to remove the group <b>%1</b>? + Желите да уклоните групу <b>%1</b>? + + + + + Remove all groups + Уклоните све групе + + + + Are you sure you want to remove all the groups? + Уклоните све групе? + + + + Dictionaries available: + Доступни речници: + + + + Add selected dictionaries to group (Ins) + Додај изабране речнике у групу (Ins) + + + + > + > + + + + Ins + Ins + + + + Remove selected dictionaries from group (Del) + Уклоните изабрани речнике из групе (Del) + + + + < + < + + + + Del + Del + + + + Groups: + Групе: + + + + Tab 2 + Tab 2 + + + + Create new dictionary group + Направи нову групу + + + + &Add group + &Додај групу + + + + Create language-based groups + Направи групе на основу језичких парова + + + + Auto groups + Ауто групе + + + + Rename current dictionary group + Преименуј тренутну групу речника + + + + Re&name group + &Преименуј групу + + + + Remove current dictionary group + Уклони тренутну групу речника + + + + &Remove group + &Уклоните групу + + + + Remove all dictionary groups + Уклоните све групе речника + + + + Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. + Превуците речнике у групи са списка доступних речника, промените редослед група, помоћу миша. + + + + HistoryPaneWidget + + + &Delete Selected + Избриши изабрано + + + + Copy Selected + Умножи изабрано + + + + History: + Историјат: + + + + %1/%2 + %1/%2 + + + + History size: %1 entries out of maximum %2 + Величина историје: %1 уноса од максималних %2 + + + + Hunspell + + + Spelling suggestions: + Предлога за правопис: + + + + %1 Morphology + %1 (морфологија) + + + + HunspellDictsModel + + + Enabled + Укључено + + + + Name + Назив + + + + Initializing + + + Please wait... + Сачекајте... + + + + + Please wait while indexing dictionary + Сачекајте док индексира речник + + + + GoldenDict - Initializing + Покрени GoldenDict + + + + Dictionary Name + Назив речника + + + + Language + + + Afar + Афарски + + + + Abkhazian + Абхазија + + + + Avestan + Авестан + + + + Afrikaans + Афрички + + + + Akan + Акански + + + + Amharic + Амхарски + + + + Aragonese + Арагонски + + + + Arabic + Арапски + + + + Assamese + Асамски + + + + Avaric + Аварски + + + + Aymara + Аимаран + + + + Azerbaijani + Азербејџански + + + + Bashkir + Башкирски + + + + Belarusian + Белоруски + + + + Bulgarian + Бугарски + + + + Bihari + Бихарски + + + + Bislama + Бислама + + + + Bambara + Бамана + + + + Bengali + Бенгалски + + + + Tibetan + Тибетански + + + + Breton + Бретонски + + + + Bosnian + Боснийский + + + + Catalan + Каталонски + + + + Chechen + Чеченски + + + + Chamorro + Чаморо + + + + Corsican + Корсикански + + + + Cree + Кри + + + + Czech + Чешки + + + + Church Slavic + Црквено-словенски + + + + Chuvash + Чувашски + + + + Welsh + Велшки + + + + Danish + Датски + + + + German + Немачки + + + + Divehi + Малдиви + + + + Dzongkha + Џонга (Бутан) + + + + Ewe + Еве + + + + Greek + Грчки + + + + English + Енглески + + + + Esperanto + Есперанто + + + + Spanish + Шпански + + + + Estonian + Естонски + + + + Basque + Баскијски + + + + Persian + Персијски + + + + Fulah + Фула + + + + Finnish + Фински + + + + Fijian + Фиџи + + + + Faroese + Фарски + + + + French + Француски + + + + Western Frisian + Фризииски + + + + Irish + Галски (Ирска) + + + + Scottish Gaelic + Галски (Шкотска) + + + + Galician + Галицијски + + + + Guarani + Гварани + + + + Gujarati + Гуџарати + + + + Manx + Манкс + + + + Hausa + Хауса + + + + Hebrew + Јеврејски + + + + Hindi + Хинди + + + + Hiri Motu + Хири-моту + + + + Croatian + Хрватски + + + + Haitian + Хаићански + + + + Hungarian + Мађарски + + + + Armenian + Јерменски + + + + Herero + Ереро + + + + Interlingua + Интерлингва + + + + Indonesian + Индонезијски + + + + Interlingue + Интерлингве + + + + Igbo + Ибо + + + + Sichuan Yi + Сечуан И + + + + Inupiaq + Инупиак + + + + Ido + Идо + + + + Icelandic + Исландски + + + + Italian + Италијански + + + + Inuktitut + Инуктитут + + + + Japanese + Јапански + + + + Javanese + Јаванац + + + + Georgian + Грузијски + + + + Kongo + Конго + + + + Kikuyu + Кикују + + + + Kwanyama + Кваниама + + + + Kazakh + Казак + + + + Kalaallisut + Калаалисут + + + + Khmer + Кмерски + + + + Kannada + Канада + + + + Korean + Корејски + + + + Kanuri + Канури + + + + Kashmiri + Кашмирски + + + + Kurdish + Курдски + + + + Komi + Коми + + + + Cornish + Корнвалски + + + + Kirghiz + Киргизски + + + + Latin + Латински + + + + Luxembourgish + Луксембургшки + + + + Ganda + Ганда + + + + Limburgish + Лимбурзхски + + + + Lingala + Лингала + + + + Lao + Лао + + + + Lithuanian + Литвански + + + + Luba-Katanga + Луба-Катанга + + + + Latvian + Летонски + + + + Malagasy + Мадагаскарац + + + + Marshallese + Маршалски + + + + Maori + Маори + + + + Macedonian + Македонски + + + + Malayalam + Малаиалам + + + + Mongolian + Монголски + + + + Marathi + Марати + + + + Malay + Малајски + + + + Maltese + Малтешки + + + + Burmese + Бурмански + + + + Nauru + Науру + + + + Norwegian Bokmal + Норвешки букмол + + + + North Ndebele + Сев. Ндебеле + + + + Nepali + Непалски + + + + Ndonga + Ндонга + + + + Dutch + Холандски + + + + Norwegian Nynorsk + Норвешки (нинорск) + + + + Norwegian + Норвешки + + + + South Ndebele + Јуж. Ндебеле + + + + Navajo + Навахо + + + + Chichewa + Чичева + + + + Occitan + Французски (диалект Occitan) + + + + Ojibwa + Оджибва + + + + Oromo + Оромо + + + + Oriya + Орија + + + + Ossetian + Осетински + + + + Panjabi + Панџаби + + + + Pali + Пали + + + + Polish + Пољски + + + + Pashto + Пуштунски + + + + Portuguese + Португалски + + + + Quechua + Кечуа + + + + Raeto-Romance + Романшски + + + + Kirundi + Кирунди + + + + Romanian + Румынски + + + + Russian + Руски + + + + Kinyarwanda + Кињаруанда + + + + Sanskrit + Санскрит + + + + Sardinian + Сардинијски + + + + Sindhi + Синдхи + + + + Northern Sami + Северна Сами + + + + Sango + Санго + + + + Serbo-Croatian + Српско-Хрватски + + + + Sinhala + Синхала + + + + Slovak + Словачки + + + + Slovenian + Словеначки + + + + Samoan + Самоа + + + + Shona + Схона + + + + Somali + Сомалиски + + + + Albanian + Албански + + + + Serbian + Српски + + + + Swati + Свати + + + + Southern Sotho + Јуж. Сото + + + + Sundanese + Судански + + + + Swedish + Шведски + + + + Swahili + Суахили + + + + Tamil + Тамилски + + + + Telugu + Телугу + + + + Tajik + Таџикски + + + + Thai + Тајландски + + + + Tigrinya + Тигриња + + + + Turkmen + Туркменски + + + + Tagalog + Тагалог + + + + Tswana + Тсвана + + + + Tonga + Тонга + + + + Turkish + Турски + + + + Tsonga + Тсонга + + + + Tatar + Татарски + + + + Twi + Тви + + + + Tahitian + Тахитиан + + + + Uighur + Ујгурски + + + + Ukrainian + Украјински + + + + Urdu + Урду + + + + Uzbek + Узбекски + + + + Venda + Венда + + + + Vietnamese + Вијетнамски + + + + Volapuk + Волапук + + + + Walloon + Валонски + + + + Wolof + Волоф + + + + Xhosa + Кхоса + + + + Yiddish + Јидиш + + + + Yoruba + Јоруба + + + + Zhuang + Чжуанг + + + + Chinese + Кинески + + + + Zulu + Зулу + + + + Lojban + Lojban + + + + Traditional Chinese + Традиционални кинески + + + + Simplified Chinese + Поједностављени кинески + + + + Other + Остали + + + + Other Simplified Chinese dialects + Остали поједностављеном кинеском дијалекти + + + + Other Traditional Chinese dialects + Остали традиционални кинески дијалекти + + + + Other Eastern-European languages + Остали источно-европски језици + + + + Other Western-European languages + Остали западно-европски језици + + + + Other Russian languages + Остали руски језици + + + + Other Japanese languages + Остали јапански језици + + + + Other Baltic languages + Остали балтички језици + + + + Other Greek languages + Остали грчки језици + + + + Other Korean dialects + Остали корејски дијалекти + + + + Other Turkish dialects + Остали турски дијалекти + + + + Other Thai dialects + Остали тајландски дијалекти + + + + Tamazight + Tamazight + + + + LoadDictionaries + + + Error loading dictionaries + Грешка при учитавању + + + + Main + + + Error in configuration file. Continue with default settings? + Грешка у поставци датотеке. Наставити са подразумеваним подешавањима? + + + + MainWindow + + Navigation + Навигација + + + + Back + Назад + + + + Forward + Напред + + + + Scan Popup + Прегледај + + + + Show &Main Window + Прикажи &главни прозор + + + + + &Quit + И&злаз + + + + Loading... + Учитавање... + + + + Skip This Release + Прескочи ову верзију + + + + You have chosen to hide a menubar. Use %1 to show it back. + Сакрили сте главни мени. Да га вратите, користите %1. + + + + Ctrl+M + Ctrl+M + + + + Page Setup + Подешавање странице + + + + No printer is available. Please install one first. + Нема доступног тампач. Молимо вас, инсталирајте прво. + + + + Print Article + Штампај чланак + + + + Article, Complete (*.html) + Чланак, целовит (*.html) + + + + Article, HTML Only (*.html) + Чланак, само HTML (*.html) + + + + Save Article As + Сачувајте овај чланак као + + + Html files (*.html *.htm) + Датотека Html (*.html *.htm) + + + + Error + Грешка + + + + Can't save article: %1 + Није могуће сачувати чланак: %1 + + + + %1 dictionaries, %2 articles, %3 words + Речник: %1, чланци: %2, речи: %3 + + + + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. + Није успело да покрене механизам надгледања пречица.<br>Проверите да ли ваш XServer подржава проширење RECORD. + + + + New Release Available + Доступна је нова верзија + + + + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. + Издање <b>%1</b> програма GoldenDict доступно је за преузимање.<br> +Притисни <b>Преузми</b>, да оде на страницу за преузимање. + + + + Download + Преузми + + + + + Look up in: + Претражи у: + + + Show Names in Dictionary Bar + Прикажи име у картици речника + + + Show Small Icons in Toolbars + Прикажи мале иконе на траци са алаткама + + + + &Menubar + Главни мени + + + + Found in Dictionaries: + Пронађено у речницима: + + + + Pronounce Word (Alt+S) + Изговори реч (Alt+S) + + + + Show Names in Dictionary &Bar + Прикажи називе у картици &речника + + + + Show Small Icons in &Toolbars + Прикажи малу икону у &алатној траци + + + + &Navigation + &Навигација + + + + Zoom In + Увећај + + + + Zoom Out + Умањи + + + + Normal Size + Уобичајена величина + + + + Words Zoom In + Увећај листу речи + + + + Words Zoom Out + Умањи листу речи + + + + Words Normal Size + Уобичајена величина слова + + + + Close current tab + Затвори тренутну картицу + + + + Close all tabs + Затворите све картице + + + + Close all tabs except current + Затворите све картице осим тренутне + + + + + Accessibility API is not enabled + Приступачност API није омогућено + + + + Look up: + Претражи: + + + + All + Све + + + + Saving article... + Чување чланка... + + + + The main window is set to be always on top. + Главни прозор је подешен да увек буде на врху. + + + + &Hide + &Сакривен + + + + Export history to file + Извоз историе у датотеку + + + + + Text files (*.txt);;All files (*.*) + Текстуалне датотеке (*.txt);;Све датотеке (*.*) + + + + History export complete + Извоз историје је завршен + + + + Export error: + Извоз грешке: + + + + Import history from file + Увоз историје из датотеке + + + + Import error: invalid data in file + Увоз грешке: неважећи подаци у датотеци + + + + History import complete + Увоз историје је завршен + + + + Import error: + Грешка при увозу: + + + + Dictionary info + Подаци о речнику + + + + Open dictionary folder + Отвори фасциклу речника + + + + Edit dictionary + Уреди речник + + + + Opened tabs + Отворених картица + + + + Open Tabs List + Отвори листу картица + + + + (untitled) + (неименован) + + + + %1 - %2 + %1 - %2 + + + WARNING: %1 + Пажња: %1 + + + GoldenDict + GoldenDict + + + + + Welcome! + Добро дошли! + + + + &File + &Датотека + + + + &Edit + &Уреди + + + + &Help + &Пимоћ + + + &Dictionaries... F3 + &Речници... F3 + + + + &Preferences... + &Поставке... + + + + F2 + F2 + + + + &View + &Приказ + + + + &Zoom + &Увећај + + + + H&istory + &Историјат + + + Results Navigation Pane + Окно навигације за резуктате + + + + &Search Pane + &Претражи окно + + + + &Results Navigation Pane + &Резултати окна за навигацију + + + + &History Pane + &Окно историје + + + + &Dictionaries... + &Речници... + + + + F3 + F3 + + + + F4 + F4 + + + + &Homepage + &Почетна страница + + + + &About + &О програму + + + + About GoldenDict + О GoldenDict + + + + F1 + F1 + + + + Quit from application + Затворите апликацију + + + + Ctrl+Q + Ctrl+Q + + + + &Forum + &Форум + + + + &Close To Tray + &Умањи у палету + + + + Minimizes the window to tray + Умањи прозор у палету + + + + Ctrl+F4 + Ctrl+F4 + + + + &Save Article + &Сачувајте овај чланак + + + + Save Article + Сачувајте овај чланак + + + + &Print + &Штампај + + + + Ctrl+P + Ctrl+P + + + + Page Set&up + П&оставке странице + + + + Print Pre&view + Преглед пре шта&мпања + + + + &Rescan Files + &Поново прегледа датотеке + + + + &New Tab + &Нова картица + + + + + &Show + &Прикажи + + + + Ctrl+H + Ctrl+H + + + + &Export + &Извоз + + + + &Import + &Увоз + + + + &Always on Top + &Увек на врху + + + + Always on Top + Увек на врху + + + + Ctrl+O + Ctrl+O + + + + + + Menu Button + Дугме изборника + + + Print Preview + Преглед пре штампања + + + Rescan Files + Поново прегледа датотеке + + + + Ctrl+F5 + Ctrl+F5 + + + + &Clear + О&чисти + + + + New Tab + Нова картица + + + + Ctrl+T + Ctrl+T + + + + &Configuration Folder + Фастикла подешавања + + + Search Pane + Окно претраге + + + + Mdx::MdxArticleRequest + + + Dictionary file was tampered or corrupted + Речник датотека је покварен или оштећен + + + + Failed loading article from %1, reason: %2 + Неуспешно учитавање чланка из %1, разлог: %2 + + + + MediaWiki::MediaWikiArticleRequest + + + XML parse error: %1 at %2,%3 + Анализа грешке XML: %1 у %2, колони %3 + + + + MediaWiki::MediaWikiWordSearchRequest + + + XML parse error: %1 at %2,%3 + Анализа грешке XML: %1 у %2, колони %3 + + + + MediaWikisModel + + + Enabled + Укључено + + + + Name + Назив + + + + Address + Адреса + + + + Icon + Икона + + + + OrderAndProps + + + Form + Form + + + + Dictionary order: + Редослед речника: + + + + + + + ... + ... + + + + Inactive (disabled) dictionaries: + Неактиван (онемогућени) речници: + + + + Dictionary information + Информације о речнику + + + + Name: + Назив: + + + + Total articles: + Укупно чланака: + + + + Total words: + Укупно речи: + + + + Translates from: + Изворни језик: + + + + Translates to: + Циљни језик: + + + + Description: + Опис: + + + + Files comprising this dictionary: + Датотеке које чине речник: + + + + Adjust the order by dragging and dropping items in it. Drop dictionaries to the inactive group to disable their use. + Промена редоследа речника, превлачењем миша. Да бисте онемогућили речник превуците га на дно неактивне групе. + + + + Sort by name + Разврстај по имену + + + + Sort by languages + Разврстај по језицима + + + + PathsModel + + + Path + Путања + + + + Recursive + Рекурзивно + + + + Preferences + + + Preferences + Поставке + + + + &Interface + &Сучеље + + + + Tabbed browsing + Прегледање помоћу картица + + + + Normally, opening a new tab switches to it immediately. +With this on however, new tabs will be opened without +switching to them. + Обично када отворите нову картицу, пребаците се на њега +одмах. Међутим, када је ова опција омогућена, нова картица ће бити +отворена, без њиховог пребацивања. + + + + Open new tabs in background + Отварање нове картице у позадини + + + + With this on, new tabs are opened just after the +current, active one. Otherwise they are added to +be the last ones. + Ако је ова опција омогућена, нова картица ће бити +отворена одмах након тренутне, у супротном +додаје се на крају. + + + + Open new tabs after the current one + Отварање нове картице након тренутне + + + + When enabled, an icon appears in the sytem tray area which can be used +to open main window and perform other tasks. + Када је омогућено, појављује се икона у палети која се може користити, +да отвори главни прозор и врши друге послове. + + + + Enable system tray icon + Прикажи икону у системској палети + + + + With this on, the application starts directly to system tray without showing +its main window. + Када омогућите ову опцију, апликација ће радити у системској палети +не показујући главни прозор. + + + + Start to system tray + Покрени у системској палети + + + + With this on, an attempt to close main window would hide it instead of closing +the application. + Када је ова опција укључена затвара се главни прозор и биће у +системској палети. + + + + Close to system tray + Затвори у системску палету + + + + Startup + Подизање + + + + Start with system + Покрени са системом + + + + Interface language: + Језик сучеља: + + + + Display style: + Приказ стила: + + + + Double-click translates the word clicked + Преведи изабрану реч дуплим кликом + + + + Chooses whether the scan popup mode is on by default or not. If checked, +the program would always start with the scan popup active. + Укључите или не укључити искачући прозор када програм почиње. + + + + Normally, in order to activate a popup you have to +maintain the chosen keys pressed while you select +a word. With this enabled, the chosen keys may also +be pressed shortly after the selection is done. + Можда је боље овако: +Обично искакање прозора активира се само ако су изабрани +тастери притиснути док бирате реч. Ако је ова опција укључена, +одабрани тастери могу да се притисну и текст је истакнут. + У нормалном стању, да бисте активирали искачући +прозор, морате да држите изабрани тастер у процесу +истицања речи. Међутим, ако користите овај режим, тастер +може да се притисне одређено време после +тога, како би се реч издвојила. + + + + Hotkeys + Пречице + + + + Use the following hotkey to show or hide the main window: + Користите следећу пречицу за приказивање/сакривање главног прозора: + + + + Use the following hotkey to translate a word from clipboard: + Користите следећу пречицу за превођење речи из оставе: + + + + The hotkeys are global and work from any program and within any context as long as GoldenDict is running in background. + Пречице су глобалне и раде за сваки програм и све контексте, све док GoldenDict ради у позадини. + + + + &Scan Popup + &Искачући прозор + + + + Select this option if you don't want to see the main tab bar when only a single tab is opened. + Омогућите ову опцију ако не желите да видите траку са обележивачима +у јединој отвореној картици. + + + + Hide single tab + Сакриј једну картицу + + + + Automatically starts GoldenDict after operation system bootup. + Аутоматски покрени GoldenDict када се покрене оперативни систем. + + + + Add-on style: + Додатак стилу: + + + + Normally, pressing ESC key moves focus to the translation line. +With this on however, it will hide the main window. + У нормалном режиму рада, тастер ESC помера фокус на линију превода. +Ако омогућите ову опцију, она ће сакрити главни прозор. + + + + ESC key hides main window + Сакриј главни прозор притиском ESC + + + + Turn this option on if you want to select words by single mouse click + Укључите ову могућност ако желите да изаберете речи једним кликом миша + + + + Select word by single click + Изаберите реч једним кликом + + + + Ctrl-Tab navigates tabs in MRU order + Ctrl-Tab навигација картица у MRU редоследу + + + + Adjust this value to avoid huge context menus. + Подесите ову вредност да бисте избегли огромне падајуће изборнике + + + + Context menu dictionaries limit: + Ограничи падајући изборник речника: + + + + When enabled, a translation popup window would be shown each time +you point your mouse on any word on the screen (Windows) or select +any word with mouse (Linux). When enabled, you can switch it on and +off from main window or tray icon. + Када је омогућена, искачући прозор превода ће бити приказан сваки пут +кад поставите показивач миша на било коју реч на екрану(у Windows) или изаберите +било коју реч са мишем (у Linux). Када је омогућена, можете да је укључите и +искључите из главног прозора или иконице. + + + + Enable scan popup functionality + Омогући искачући прозор + + + + Start with scan popup turned on + Омогући искачући прозор при покретању + + + + With this enabled, the popup would only show up if all chosen keys are +in the pressed state when the word selection changes. + Овим је омогућено, искакање би се појавило ако су сви тастери изабрани +у притиснутом стању, када се избор речи промени. + + + + Only show popup when all selected keys are kept pressed: + Само покажи искакање када сви одабрани тастери су непрестано притиснути: + + + + Left Ctrl only + Само леви Ctrl + + + + Left Ctrl + Леви Ctrl + + + + Right Shift only + Само десни Shift + + + + Right Shift + Десни Shift + + + + Alt key + Тастер Alt + + + + Alt + Alt + + + + Ctrl key + Тастер Ctrl + + + + Ctrl + Ctrl + + + + Left Alt only + Само леви Alt + + + + Left Alt + Леви Alt + + + + Shift key + Тастер Shift + + + + Shift + Shift + + + + Right Alt only + Само десни Alt + + + + Right Alt + Десни Alt + + + + Right Ctrl only + Само десни Ctrl + + + + Right Ctrl + Десни Ctrl + + + + Left Shift only + Само леви Shift + + + + Left Shift + Леви Shift + + + + Windows key or Meta key + Тастер Windows или Meta + + + + Win/Meta + Win или Meta + + + + Keys may also be pressed afterwards, within + Тастери могу бити накнадно притиснути, у оквиру + + + + To avoid false positives, the keys are only monitored +after the selection's done for a limited amount of +seconds, which is specified here. + Да бисте избегли лажне резултате, тастери се само прате +након што је урађен избор у ограниченом обиму +временског периода, који је овде одређен. + + + + secs + секунд + + + + Send translated word to main window instead of to show it in popup window + Пошаљите преведену реч на главни прозор уместо да га прикаже у искачућем прозору + + + + Send translated word to main window + Пошаљите преведену реч у главни прозор + + + + Play audio files via FFmpeg(libav) and libao + Пусти звучне датотеке преко FFmpeg(libav) и libao + + + + Use internal player + Користи уграђени пуштач + + + + Some sites detect GoldenDict via HTTP headers and block the requests. +Enable this option to workaround the problem. + Неки сајтови откривају GoldenDict преко HTTP заглавља и блок захтева. +Омогућите ову могућност да бисте решили тај проблем. + + + + Do not identify GoldenDict in HTTP headers + Немојте да идентификујете GoldenDict у HTTP заглављима + + + + Ad&vanced + Напредно + + + + ScanPopup extra technologies + Додатне методе за одређивање речи под курсором + + + + Try to use IAccessibleEx technology to retrieve word under cursor. +This technology works only with some programs that support it + (for example Internet Explorer 9). +It is not needed to select this option if you don't use such programs. + Користите интерфејс IAccessibleEx да тражи речи под курсором. +Ова технологија ради само са програмима који га подржавају +(например Internet Explorer 9). +Ако не користите такве програме не треба да укључи ову опцију. + + + + Use &IAccessibleEx + Користи &IAccessibleEx + + + + Try to use UI Automation technology to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Користи технологију UI Automation да тражи речи под курсором. +Ова технологија ради само са програмима који га подржавају. +Ако не користите такве програме не треба да укључи ову опцију. + + + + Use &UIAutomation + Користи &UIAutomation + + + + Try to use special GoldenDict message to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Користите посебан захтев GoldenDict да тражи речи под показивачом. +Ова технологија ради само са програмима, који га подржавају. +Ако не користите такве програме да укључи ову опцију не треба. + + + + Use &GoldenDict message + Користи захтев &GoldenDict + + + + History + Историјат + + + + Turn this option on to store history of the translated words + Укључите ову могућност за чување историје преведених речи + + + + Store &history + Складиште &историје + + + + Specify the maximum number of entries to keep in history. + Одредите највећи број ставки задржат у историји + + + + Maximum history size: + Максимална величина историје: + + + + History saving interval. If set to 0 history will be saved only during exit. + Раздобље чувања историје. Ако се подеси на 0 у историји ће бити сачувана само током излаза. + + + + Save every + Сачувај сваких + + + + minutes + минута + + + + Articles + Чланци + + + + Turn this option on to always expand optional parts of articles + Укључите ову могућност да увек прошири необавезне делове чланака + + + + Expand optional &parts + Могућност проширења &делова + + + + Select this option to automatic collapse big articles + Изаберите ову могућност да бисте аутоматски урушити велике чланке + + + + Collapse articles more than + Уруши чланке опширније од + + + + Articles longer than this size will be collapsed + Чланци дужи него ове величине ће бити срушени + + + + symbols + симболи + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Note: You appear to be running an X.Org XServer release which has the RECORD extension broken. Hotkeys in GoldenDict will probably not work. This must be fixed in the server itself. Please refer to the following </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">bug entry</span></a><span style=" color:#ff0000;"> and leave a comment there if you like.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Напомена: Чини се да користите верзију X.Org XServer, у којој не постоји подршка за проширење RECORD. Вероватно пречице GoldenDict не раде. Овај проблем би требало да буде исправљен на страни XServer. За више информација погледајте </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">bug entry</span></a><span style=" color:#ff0000;"> а ако желите, поставите своје коментаре.</span></p></body></html> + + + + &Audio + &Аудио + + + + Pronunciation + Изговор + + + + Auto-pronounce words in main window + Аутоматски изговари речи у главном прозору + + + + Auto-pronounce words in scan popup + Аутоматски изговорити речи у искачућем прозору + + + + Playback + Репродукција + + + Use Windows native playback API. Limited to .wav files only, +but works very well. + Коришћење интерних фондова Windows за репродукцију. Подржава +само датотеке типа .wav, али репродукција увек ради добро. + + + Play via Windows native API + Репродукуј унутрашњим ресурсима Windows-а + + + Play audio via Phonon framework. May be somewhat unstable, +but should support most audio file formats. + Репродукуј кроз систем Phonon. Понекад ради нестабилно, +али подржава већину аудио формате. + + + Play via Phonon + Репродукуј преко Phonon + + + + Use any external program to play audio files + Користите неку спољну апликацију за репродукцију аудио датотека + + + + Use external program: + Користи спољни програм: + + + + &Network + &Мрежа + + + + Enable if you wish to use a proxy server +for all program's network requests. + Омогући ако користите прокси сервер +за све мрежне захтеве програма. + + + + Use proxy server + Користи прокси-сервер + + + + Type: + Тип: + + + + Host: + Сервер: + + + + Port: + Порт: + + + + User: + Корисничко име: + + + + Password: + Лозинка: + + + + Enabling this would make GoldenDict block most advertisements +by disallowing content (images, frames) not originating from the site +you are browsing. If some site breaks because of this, try disabling this. + Ова опција омогућава GoldenDict блокирају већину +рекламирање одређених садржаја (слике, кадрови, и тако даље), +не на оригиналном сајту. Ако неки сајтови се кваре +због ове функције, покушајте да онемогућите ову опцију. + + + + Disallow loading content from other sites (hides most advertisements) + Онемогући учитавање садржаја са других сајтова (уклања већи део оглашавања) + + + + Enabling this would allow to listen to sound pronunciations from +online dictionaries that rely on Flash or other web plugins. +Plugin must be installed for this option to work. + Ова опција вам омогућава да слушају изговора спољних +сајтова, који захтевају Flash или друге додатке. +Да би ово функционисало, додатке треба инсталирати. + + + + Enable web plugins + Омогући додатаке сајтовима + + + + When this is enabled, the program periodically +checks if a new, updated version of GoldenDict +is available for download. If it is so, the program +informs the user about it and prompts to open a +download page. + Ако је ова опција омогућена, програм ће, с времена на +време да проверите за најновију верзију +GoldenDict. Ако се појавила нова верзија, програма +обавестиће о томе и понудити да преузме +са сајта. + + + + Check for new program releases periodically + Проверите нову верзију + + + + System default + Систем - подразумевано + + + + Default + Подразумевано + + + + Modern + Модеран + + + + Lingvo + Lingvo + + + + Babylon + Babylon + + + + Lingoes + Lingoes + + + + Lingoes-Blue + Lingoes-Blue + + + Play via DirectShow + Репродукуј преко DirectShow + + + + Changing Language + Промена језика + + + + Restart the program to apply the language change. + Поново покрените програм за промену језика. + + + + ProgramTypeEditor + + + Audio + Аудио + + + + Plain Text + Текст + + + + Html + Html + + + + Prefix Match + По префиксима + + + + Unknown + Непознато + + + + Programs::RunInstance + + + No program name was given. + Програм није наведен. + + + + The program has crashed. + Програм је завршио са грешком + + + + The program has returned exit code %1. + Програм је вратио излазни код %1. + + + + ProgramsModel + + + Enabled + Укључено + + + + Type + Тип + + + + Name + Назив + + + + Command Line + Командна линија + + + + Icon + Икона + + + + QObject + + + Article loading error + Грешка при учитавању чланка + + + + Article decoding error + Грешка декодирања чланка + + + + avformat_alloc_context() failed. + avformat_alloc_context() није успело. + + + + av_malloc() failed. + av_malloc() није успело. + + + + avio_alloc_context() failed. + avio_alloc_context() није успело. + + + + avformat_open_input() failed: %1. + avformat_open_input() није успело: %1. + + + + avformat_find_stream_info() failed: %1. + avformat_find_stream_info() није успело: %1. + + + + Could not find audio stream. + Није могуће пронаћи аудио ток. + + + + Codec [id: %1] not found. + Кодек [id: %1] није пронађен. + + + + avcodec_open2() failed: %1. + avcodec_open2() није успело: %1. + + + + Cannot find usable audio output device. + Не можете да пронађете употребљив уређај за звучни излаз. + + + + Unsupported sample format. + Неподржан је пробни формат. + + + + ao_open_live() failed: + ao_open_live() није успело: + + + + No driver. + Нема управљача. + + + + This driver is not a live output device. + Овај управљач нема активан излазни уређај. + + + + A valid option key has an invalid value. + Важећи избор тастера има неважећу вредност. + + + + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. + Не могу да отворим уређај: %1, канали: %2, мера: %3, бита: %4. + + + + Unknown error. + Непозната грешка. + + + + avcodec_alloc_frame() failed. + avcodec_alloc_frame() није успело. + + + + QuickFilterLine + + + Dictionary search/filter (Ctrl+F) + Речник - претрага/филтер (Ctrl+F) + + + + Quick Search + Брза претрага + + + + Clear Search + Очисти претрагу + + + + ResourceToSaveHandler + + + + ERROR: %1 + ГРЕШКА: %1 + + + + Resource saving error: + Грешка чувања ресурса: + + + + The referenced resource failed to download. + Није могуће учитати повезане ресурсе. + + + + Romaji + + + Hepburn Romaji for Hiragana + Хепберн Ромаји (Хирагана) + + + + Hepburn Romaji for Katakana + Хепберн Ромаји (Катакана) + + + + RussianTranslit + + + Russian Transliteration + Транслитерација (Руски) + + + + ScanPopup + + + Dialog + Диалог + + + word + реч + + + List Matches (Alt+M) + Списак подударности (Alt+M) + + + Alt+M + Alt+M + + + + Back + Назад + + + + Forward + Напред + + + + Pronounce Word (Alt+S) + Изговори реч (Alt+S) + + + + Alt+S + Alt+S + + + + Send word to main window (Alt+W) + Пошаљите реч у главни прозор (Alt+W) + + + + Alt+W + Alt+W + + + + Shows or hides the dictionary bar + Приказивање или скривање траке речника + + + + Use this to pin down the window so it would stay on screen, +could be resized or managed in other ways. + Кликните да усидрите прозор на екрану, промените величину +или било које друге особине. + + + + + + + + ... + ... + + + + + %1 - %2 + %1 - %2 + + + + SoundDirsModel + + + Path + Путања + + + + Name + Назив + + + + Icon + Икона + + + + Sources + + + Text to Speech + Текст у говор + + + + (not available in portable version) + (није доступан у преносној верзији) + + + + + + Choose a directory + Изабери фасциклу + + + + + + + + Confirm removal + Потврди уклањање + + + + + Remove directory <b>%1</b> from the list? + Уклони фасциклу <b>%1</b> из списка? + + + + + Remove site <b>%1</b> from the list? + Уклони сајт <b>%1</b> из списка? + + + + Remove program <b>%1</b> from the list? + Уклони програм <b>%1</b> из списка? + + + + Files + Датотеке + + + + Paths to search for the dictionary files: + Путања за тражење датотеке речника: + + + + + + + + &Add... + &Додај... + + + + + + + + &Remove + &Уклони + + + + Re&scan now + Пон&ово прегледај + + + + Sound Dirs + Фасцикла са звуковима + + + + Make dictionaries from bunches of audiofiles by adding paths here: + Направите речнике из гомиле звучних датотека додавањем путање овде: + + + + Morphology + Морфологија + + + + Path to a directory with Hunspell/Myspell dictionaries: + Путања до речника са Hunspell/Myspell речницима: + + + + &Change... + &Промени... + + + + Available morphology dictionaries: + Доступни морфолошки речници: + + + + Each morphology dictionary appears as a +separate auxiliary dictionary which +provides stem words for searches and +spelling suggestions for mistyped words. +Add appropriate dictionaries to the bottoms +of the appropriate groups to use them. + Сваки морфолошки речник +је посебан помоћни речник који +обезбеђује матичне речи за претраге и +даје предлоге за правопис +за погрешне речи. +За коришћење речника +додајте одговарајуће речнике +на крају појединих група. + + + + Websites + Веб-сајт + + + + Any websites. A string %GDWORD% will be replaced with the query word: + Било који веб-сајт. Низ %GDWORD% биће замењен речју упита: + + + Alternatively, use %GD1251% for CP1251, %GDISO1% for ISO 8859-1. + Такође је могуће користити %GD1251% за кодирање CP1251, %GDISO1% за ISO 8859-1. + + + + Programs + Програми + + + Any external programs. A string %GDWORD% will be replaced with the query word. The word will also be fed into standard input. + Сваки екстерни програм. Низ %GDWORD% ће бити замењена траженом речју. Иста реч ће бити послата у стандардни улазни ток. + + + + Forvo + Forvo + + + + Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. + Уживо изговор са сајта <a href="http://www.forvo.com/">forvo.com</a>. Овај сајт омогућава корисницима да снимају и деле изговорене речи. Можете да их слушам из GoldenDict. + + + + Enable pronunciations from Forvo + Укључи изговор из Forvo + + + + API Key: + Кључ API: + + + + Use of Forvo currently requires an API key. Leave this field +blank to use the default key, which may become unavailable +in the future, or register on the site to get your own key. + Користећи сајт Forvo захтева кључ API. Оставите +ово поље празно, да бисте користили подразумевани кључ, који +не може да ради у будућности, или се пријавите на +сајт, да бисте добили свој кључ. + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> +<tr> +<td style="border: none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Get your own key <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> + Узмите ваш кључ <a href="http://api.forvo.com/key/">овде</a>, или оставите празно да бисте користили подразумевани кључ. + + + + Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, +%GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. + Алтернативно, користите %GD1251% за CP1251, %GDISO1%...%GDISO16% за ISO 8859-1...ISO 8859-16 односно, +%GDBIG5% за Big-5, %GDBIG5HKSCS% за Big5-HKSCS, %GDGBK% за GBK и GB18030, %GDSHIFTJIS% за Shift-JIS. + + + + Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. + Неки спољни програми. Низ %GDWORD% биће замењен речју упита. Ако такав низ није представљен, реч ће се учитати у стандардни улаз. + + + + Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. + Набавите свој кључ <a href="http://api.forvo.com/key/">here</a>, или оставите празно да бисте користили подразумевани. + + + + Language codes (comma-separated): + Листа језичких кодова (раздвојене зарезима): + + + + List of language codes you would like to have. Example: "en, ru". + Листа кодова за језике које желите да користите. Пример: "en, ru". + + + + Full list of language codes is available <a href="http://www.forvo.com/languages-codes/">here</a>. + Комплетан списак језичких кодова је доступан <a href="http://www.forvo.com/languages-codes/">овде</a>. + + + + Transliteration + Транслитерација + + + + Russian transliteration + Транслитерација (Руски) + + + + Greek transliteration + Транслитерација (Грчки) + + + + German transliteration + Транслитерација (Немачки) + + + + Belarusian transliteration + Белоруска транслитерација + + + + Enables to use the Latin alphabet to write the Japanese language + Омогућава коришћење латинице за писање јапанског + + + + Japanese Romaji + Ромаји (Јапански) + + + + Systems: + Системи: + + + + The most widely used method of transcription of Japanese, +based on English phonology + Најпопуларнији метод преписивања Јапанског је, +заснован на енглеској фонологији + + + + Hepburn + Хепберн + + + + The most regular system, having a one-to-one relation to the +kana writing systems. Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + Систем, пренос приказа знакова кана је најтачније. +Стандардизовани у ISO 3602. + +В GoldenDict пока не реализована. + + + + Nihon-shiki + Nihon-shiki + + + + Based on Nihon-shiki system, but modified for modern standard Japanese. +Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + На основу система Nihon-shiki, али модификован за модерне стандарде +савременог јапанског. Стандардизован у ISO 3602. + +В GoldenDict пока не реализована. + + + + Kunrei-shiki + Kunrei-shiki + + + + Syllabaries: + Слоговна азбука: + + + + Hiragana Japanese syllabary + Слоговна азбука "Хирагана" + + + + Hiragana + Хирагана + + + + Katakana Japanese syllabary + Слоговна азбука "Катакана" + + + + Katakana + Катакана + + + + Wikipedia + Написан на руском, извор: ru.wikipedia.org + Википедија + + + + Wikipedia (MediaWiki) sites: + Веб-сајт Википедија (MediaWiki): + + + + StylesComboBox + + + None + Ништа + + + + TextToSpeechSource + + + Selected voice engines: + Изабрани погон гласа: + + + + &Add + &Додај + + + + &Remove + &Уклони + + + + Preferences + Поставке + + + + Volume: + Величина: + + + + Rate: + Мера: + + + + Preview + Преглед + + + + Available voice engines: + Доступни гласовни погони: + + + + Text to be previewed: + Текст се може погледати: + + + + Type text to be previewed here. + Укуцајте текст да буде прегледан овде. + + + + &Preview + &Преглед + + + + No TTS voice available + Нема доступног TTS гласа + + + + Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. + Не можете да пронађете доступне TTS гласове.<br>Уверите се да је најмање један TTS погон већ инсталиран на рачунару. + + + + Confirm removal + Потврди уклањање + + + + Remove voice engine <b>%1</b> from the list? + Уклоните гласовну погон <b>%1</b> са списка? + + + + TranslateBox + + + Type a word or phrase to search dictionaries + Откуцајте реч или фразу за претрагу речника + + + + Drop-down + Падајући + + + + VoiceEnginesModel + + + Enabled + Укључено + + + + Name + Назив + + + + Id + Id + + + + Icon + Икона + + + + WebSitesModel + + + Enabled + Укључено + + + + Name + Назив + + + + Address + Адреса + + + + Icon + Икона + + + + WordFinder + + + Failed to query some dictionaries. + Претрага није успео у неким речницима. + + + + WordList + + + WARNING: %1 + УПОЗОРЕЊЕ: %1 + + + diff -Nru goldendict-1.0.2~git20130620/locale/sv_SE.ts goldendict-1.5.0~ppa131019/locale/sv_SE.ts --- goldendict-1.0.2~git20130620/locale/sv_SE.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/sv_SE.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,4133 @@ + + + + + About + + + About + Om + + + + GoldenDict dictionary lookup program, version + Ordliste- och uppslagsverksprogrammet GoldenDict, version + + + + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + + + + Licensed under GNU GPLv3 or later + Licensierat under GNU GPLv3 eller senare + + + + Credits: + Tack till: + + + + [Unknown] + [Okänd] + + + + Based on Qt %1 (%2, %3 bit) + Baserat på Qt %1 (%2, %3 bitar) + + + + ArticleMaker + + + No translation for <b>%1</b> was found in group <b>%2</b>. + Ingen översättning för <b>%1</b> hittades i gruppen <b>%2</b>. + + + + No translation was found in group <b>%1</b>. + Ingen översättning hittades i gruppen <b>%1</b>. + + + + Welcome! + Välkommen! + + + + Expand article + Visa artikel + + + + Collapse article + Dölj artikel + + + + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. + <h3 align="center">Välkommen till <b>GoldenDict</b>!</h3><p>För att komma igång med programmet måste du först gå till <b>Redigera|Ordlistor</b> för att lägga till mappsökvägar där programmet skall söka efter dina ordlistefiler. Där kan du även konfigurera olika Wikipedia-webbplatser eller andra källor, ändra ordning på ordlistor och skapa ordlistegrupper.<p>När det är avklarat kan du börja slå upp ord! Du kan göra detta i det här fönstret genom att använda sökpanelen till vänster, eller genom att <a href="Arbeta med popuprutor">slå upp ord inifrån andra öppna program</a>. <p>Vill du anpassa programmet hittar du alla tillgängliga inställningsalternativ i <b>Redigera|Inställningar</b>. Alla inställningar där har verktygstips, läs dem om det är något du undrar över.<p>Om du behöver ytterligare hjälp, behöver ställa en fråga, har förslag eller bara undrar vad andra tycker, så är du välkommen till programmets <a href="http://goldendict.org/forum/">forum</a>.<p>Gå till programmets <a href="http://goldendict.org/">webbplats</a> för att hitta uppdateringar. <p>(c) 2008-2013 Konstantin Isakov. Licensierat under GNU GPLv3 eller senare. + + + + Working with popup + Arbeta med popuprutor + + + + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. + <h3 align="center">Arbeta med popuprutor</h3>För att slå upp ord inifrån andra öppna program, så måste du först aktivera alternativet <i>"Använd sökning med popupruta"</i> i <b>Inställningar</b>. Därefter kan du slå på/stänga av funktionen vid behov genom att antingen klicka på popuprutefunktionens ikon här ovan eller genom att högerklicka på ikonen i meddelandefältet och välja alternativet i menyn som visas. + + + + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. + Håll sedan muspekaren över det ord som du vill slå upp i det andra programmet, så visas en popupruta med sökresultat från de ordlistor du använder. + + + + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. + Använd sedan musen för att markera det ord som du vill slå upp i det andra programmet (dubbelklicka eller klicka och dra med musknappen nedtryckt), så visas en popupruta med sökresultat från de ordlistor du använder. + + + + (untitled) + (namnlös) + + + + (picture) + (bild) + + + + ArticleRequest + + + Expand article + Visa artikel + + + + From + Från + + + + Collapse article + Dölj artikel + + + + Query error: %1 + Frågefel: %1 + + + + Close words: + Närliggande ord: + + + + Compound expressions: + Sammansättningar: + + + + Individual words: + Enskilda ord: + + + + ArticleView + + + Form + Formulär + + + + about:blank + about:blank + + + + x + x + + + + Find: + Sök: + + + + &Previous + &Föregående + + + + &Next + &Nästa + + + + Ctrl+G + Ctrl+G + + + + &Case Sensitive + &Skiftlägeskänslig + + + + Highlight &all + Färgmarkera &alla + + + + Select Current Article + Markera aktuell artikel + + + + Copy as text + Kopiera som oformaterad text + + + + Inspect + Granska källkod + + + + Resource + Resurs + + + + Audio + Ljud + + + + TTS Voice + Text till tal-modul + + + + Picture + Bild + + + + Video + Video + + + + Video: %1 + Video: %1 + + + + Definition from dictionary "%1": %2 + Definition ur ordlistan "%1": %2 + + + + Definition: %1 + Definition: %1 + + + + + The referenced resource doesn't exist. + Den refererade resursen finns inte. + + + + The referenced audio program doesn't exist. + Det refererade ljudprogrammet finns inte. + + + + ERROR: %1 + FEL: %1 + + + + Save sound + Spara ljud + + + + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) + Ljudfiler (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Alla filer (*.*) + + + + Save image + Spara bild + + + + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) + Bildfiler (*.bmp *.jpg *.png *.tif);;Alla filer (*.*) + + + + &Open Link + Öppna &länk + + + + Open Link in New &Tab + Öppna länk i ny &flik + + + + Open Link in &External Browser + Öppna länk i extern &webbläsare + + + + Save &image... + Spara &bild … + + + + Save s&ound... + Spara l&jud … + + + + &Look up "%1" + &Slå upp "%1" + + + + Look up "%1" in &New Tab + Slå upp "%1" i &ny flik + + + + Send "%1" to input line + Skicka "%1" till sökfältet + + + + + &Add "%1" to history + &Lägg till "%1" i historiken + + + + Look up "%1" in %2 + Slå upp "%1" i %2 + + + + Look up "%1" in %2 in &New Tab + Slå upp "%1" i %2 i &ny flik + + + + WARNING: FFmpeg Audio Player: %1 + VARNING: Ljudspelare för FFmpeg: %1 + + + + WARNING: %1 + VARNING: %1 + + + + Failed to run a player to play sound file: %1 + Det gick inte att köra en spelare när en ljudfil skulle spelas upp: %1 + + + + Failed to create temporary file. + Det gick inte att skapa en tillfällig fil. + + + + Failed to auto-open resource file, try opening manually: %1. + Det gick inte att automatiskt öppna en resursfil. Försök att öppna den manuellt: %1. + + + + The referenced resource failed to download. + Det gick inte att hämta den refererade resursen. + + + + BelarusianTranslit + + + Belarusian transliteration from latin to cyrillic (classic orthography) + Translitterering av vitryska från latinska till kyrilliska tecken (klassisk rättstavning) + + + + Belarusian transliteration from latin to cyrillic (school orthography) + Translitterering av vitryska från latinska till kyrilliska tecken (skolrättstavning) + + + + Belarusian transliteration (smoothes out the difference +between classic and school orthography in cyrillic) + Translitterering av vitryska (jämnar ut skillnaden mellan +klassisk rättstavning och skolrättstavning i kyrillisk skrift) + + + + DictGroupWidget + + + Form + Formulär + + + + Group icon: + Gruppikon: + + + + Shortcut: + Kortkommando: + + + + None + Ingen + + + + From file... + Från fil … + + + + Choose a file to use as group icon + Välj en fil att använda som gruppikon + + + + Images + Bilder + + + + All files + Alla filer + + + + Error + Fel + + + + Can't read the specified image file. + Det gick inte att läsa den angivna bildfilen. + + + + DictGroupsWidget + + + + + + Dictionaries: + Ordlistor: + + + + Confirmation + Bekräftelse + + + + Are you sure you want to generate a set of groups based on language pairs? + Är du säker på att du vill skapa en uppsättning grupper baserade på språkpar? + + + + Unassigned + Ej tilldelad + + + + Combine groups by source language to "%1->" + Kombinera grupper efter källspråk till "%1 >" + + + + Combine groups by target language to "->%1" + Kombinera grupper efter målspråk till "> %1" + + + + Make two-side translate group "%1-%2-%1" + Skapa den dubbelsidiga språkgruppen "%1-%2-%1" + + + + + Combine groups with "%1" + Kombinera grupper med "%1" + + + + DictInfo + + + Total articles: + Antal artiklar: + + + + Translates from: + Källspråk: + + + + Total words: + Antal ord: + + + + Translates to: + Målspråk: + + + + Open folder + Öppna mapp + + + + Edit dictionary + Redigera ordlista + + + + Files comprising this dictionary: + Filer som omfattas av ordlistan: + + + + Description: + Beskrivning: + + + + Edit the dictionary via command: +%1 + Redigera ordlistan via kommando: +%1 + + + + DictListModel + + + %1 entries + %1 poster + + + + DictionaryBar + + + &Dictionary Bar + &Ordlistefältet + + + + Extended menu with all dictionaries... + Visa alla ordlistor i en utökad meny … + + + + Edit this group + Redigera denna grupp + + + + Dictionary info + Ordlisteinformation + + + + Open dictionary folder + Öppna ordlistans lagringsmapp + + + + Edit dictionary + Redigera ordlista + + + + EditDictionaries + + + Dictionaries + Ordlistor + + + + &Sources + &Källor + + + + + &Dictionaries + &Ordlistor + + + + + &Groups + &Grupper + + + + Sources changed + Källor har ändrats + + + + Some sources were changed. Would you like to accept the changes? + Några källor har ändrats. Godkänner du ändringarna? + + + + Accept + Godkänn + + + + Cancel + Avbryt + + + + ExternalViewer + + + the viewer program name is empty + fältet för visningsprogrammets namn är tomt + + + + Forvo::ForvoArticleRequest + + + XML parse error: %1 at %2,%3 + XML-tolkningsfel: %1 vid %2,%3 + + + + Added %1 + Lade till %1 + + + + by + av + + + + Male + Man + + + + Female + Kvinna + + + + from + från + + + + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. + Gå till Redigera|Ordlistor|Källor|Forvo och ansök om att få vår egen API-nyckel för att få problemet att försvinna. + + + + GermanTranslit + + + German Transliteration + Translitterering av tyska + + + + GreekTranslit + + + Greek Transliteration + Translitterering av grekiska + + + + GroupComboBox + + + Choose a Group (Alt+G) + Välj en grupp (Alt+G) + + + + GroupSelectorWidget + + + Form + Formulär + + + + Look in + Sök i + + + + Groups + + + Dictionaries available: + Tillgängliga ordlistor: + + + + Add selected dictionaries to group (Ins) + Lägg till markerade ordlistor i gruppen (Insert) + + + + > + > + + + + Ins + Insert + + + + Remove selected dictionaries from group (Del) + Ta bort markerade ordlistor ur gruppen (Delete) + + + + < + < + + + + Del + Delete + + + + Groups: + Grupper: + + + + Tab 2 + Flik 2 + + + + Create new dictionary group + Skapa en ny ordlistegrupp + + + + &Add group + &Lägg till grupp + + + + Create language-based groups + Skapa språkbaserade grupper + + + + Auto groups + Autogruppering + + + + Rename current dictionary group + Byt namn på den aktuella ordlistegruppen + + + + Re&name group + Byt &namn på grupp + + + + Remove current dictionary group + Ta bort den aktuella ordlistegruppen + + + + &Remove group + Ta &bort grupp + + + + Remove all dictionary groups + Ta bort alla ordlistegrupper + + + + + Remove all groups + Ta bort alla grupper + + + + Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. + "&" is not an accelerator here, should be replaced by &amp; in the source file + Använd musen för att dra och släppa ordlistor till och från grupperna, ändra ordlistornas ordning inom grupperna samt ändra gruppernas inbördes ordning. + + + + Add group + Lägg till grupp + + + + Give a name for the new group: + Ange ett namn på den nya gruppen: + + + + Rename group + Byt namn på grupp + + + + Give a new name for the group: + Ange ett nytt namn på gruppen: + + + + Remove group + Ta bort grupp + + + + Are you sure you want to remove the group <b>%1</b>? + Är du säker på att du vill ta bort gruppen <b>%1</b>? + + + + Are you sure you want to remove all the groups? + Är du säker på att du vill ta bort alla grupper? + + + + HistoryPaneWidget + + + &Delete Selected + Ta &bort markerade + + + + Copy Selected + Kopiera markerade + + + + History: + Historik: + + + + %1/%2 + %1/%2 + + + + History size: %1 entries out of maximum %2 + Historikstorlek: %1 poster av maximalt %2 + + + + Hunspell + + + Spelling suggestions: + Stavningsförslag: + + + + %1 Morphology + Morfologi för %1 + + + + HunspellDictsModel + + + Enabled + Aktiverad + + + + Name + Namn + + + + Initializing + + + GoldenDict - Initializing + GoldenDict - Initierar + + + + + Please wait while indexing dictionary + Var god vänta medan ordlistan indexeras + + + + Dictionary Name + Ordlistans namn + + + + Please wait... + Var god vänta … + + + + Language + + + Afar + Afar + + + + Abkhazian + Abchaziska + + + + Avestan + Avestiska + + + + Afrikaans + Afrikaans + + + + Akan + Akan + + + + Amharic + Amhariska + + + + Aragonese + Aragonska + + + + Arabic + Arabiska + + + + Assamese + Assamesiska + + + + Avaric + Avariska + + + + Aymara + Aymara + + + + Azerbaijani + Azerbajdzjanska + + + + Bashkir + Basjkiriska + + + + Belarusian + Vitryska + + + + Bulgarian + Bulgariska + + + + Bihari + Bihari + + + + Bislama + Bislama + + + + Bambara + Bambara + + + + Bengali + Bengali + + + + Tibetan + Tibetanska + + + + Breton + Bretonska + + + + Bosnian + Bosniska + + + + Catalan + Katalanska + + + + Chechen + Tjetjenska + + + + Chamorro + Chamorro + + + + Corsican + Korsikanska + + + + Cree + Cree + + + + Czech + Tjeckiska + + + + Church Slavic + Kyrkoslaviska + + + + Chuvash + Tjuvasjiska + + + + Welsh + Kymriska + + + + Danish + Danska + + + + German + Tyska + + + + Divehi + Divehi + + + + Dzongkha + Dzongkha + + + + Ewe + Ewe + + + + Greek + Grekiska + + + + English + Engelska + + + + Esperanto + Esperanto + + + + Spanish + Spanska + + + + Estonian + Estniska + + + + Basque + Baskiska + + + + Persian + Persiska + + + + Fulah + Fula + + + + Finnish + Finska + + + + Fijian + Fijianska + + + + Faroese + Färöiska + + + + French + Franska + + + + Western Frisian + Västfrisiska + + + + Irish + Iriska + + + + Scottish Gaelic + Skotsk gäliska + + + + Galician + Galiciska + + + + Guarani + Guarani + + + + Gujarati + Gujarati + + + + Manx + Manx + + + + Hausa + Hausa + + + + Hebrew + Hebreiska + + + + Hindi + Hindi + + + + Hiri Motu + Hiri motu + + + + Croatian + Kroatiska + + + + Haitian + Haitiska + + + + Hungarian + Ungerska + + + + Armenian + Armeniska + + + + Herero + Herero + + + + Interlingua + Interlingua + + + + Indonesian + Indonesiska + + + + Interlingue + Occidental + + + + Igbo + Igbo + + + + Sichuan Yi + Sichuanesisk yi + + + + Inupiaq + Iñupiaq + + + + Ido + Ido + + + + Icelandic + Isländska + + + + Italian + Italienska + + + + Inuktitut + Inuktitut + + + + Japanese + Japanska + + + + Javanese + Javanesiska + + + + Georgian + Georgiska + + + + Kongo + Kikongo + + + + Kikuyu + Kikuyu + + + + Kwanyama + Kwanyama + + + + Kazakh + Kazakiska + + + + Kalaallisut + Grönländska + + + + Khmer + Khmer + + + + Kannada + Kannada + + + + Korean + Koreanska + + + + Kanuri + Kanuri + + + + Kashmiri + Kashmiri + + + + Kurdish + Kurdiska + + + + Komi + Komi + + + + Cornish + Korniska + + + + Kirghiz + Kirgiziska + + + + Latin + Latin + + + + Luxembourgish + Luxemburgiska + + + + Ganda + Luganda + + + + Limburgish + Limburgiska + + + + Lingala + Lingala + + + + Lao + Lao + + + + Lithuanian + Litauiska + + + + Luba-Katanga + Luba-katanga + + + + Latvian + Lettiska + + + + Malagasy + Malagassiska + + + + Marshallese + Marshallesiska + + + + Maori + Maori + + + + Macedonian + Makedonska + + + + Malayalam + Malayalam + + + + Mongolian + Mongoliska + + + + Marathi + Marathi + + + + Malay + Malajiska + + + + Maltese + Maltesiska + + + + Burmese + Burmesiska + + + + Nauru + Nauruanska + + + + Norwegian Bokmal + Norska (bokmål) + + + + North Ndebele + Nordndebele + + + + Nepali + Nepali + + + + Ndonga + Ndonga + + + + Dutch + Nederländska + + + + Norwegian Nynorsk + Norska (nynorsk) + + + + Norwegian + Norska + + + + South Ndebele + Sydndebele + + + + Navajo + Navajo + + + + Chichewa + Chichewa + + + + Occitan + Occitanska + + + + Ojibwa + Ojibwa + + + + Oromo + Oromo + + + + Oriya + Oriya + + + + Ossetian + Ossetiska + + + + Panjabi + Punjabi + + + + Pali + Pali + + + + Polish + Polska + + + + Pashto + Pashto + + + + Portuguese + Portugisiska + + + + Quechua + Quechua + + + + Raeto-Romance + Rätoromanska + + + + Kirundi + Kirundi + + + + Romanian + Rumänska + + + + Russian + Ryska + + + + Kinyarwanda + Rwanda + + + + Sanskrit + Sanskrit + + + + Sardinian + Sardiska + + + + Sindhi + Sindhi + + + + Northern Sami + Nordsamiska + + + + Sango + Sango + + + + Serbo-Croatian + Serbokroatiska + + + + Sinhala + Singalesiska + + + + Slovak + Slovakiska + + + + Slovenian + Slovenska + + + + Samoan + Samoanska + + + + Shona + Shona + + + + Somali + Somaliska + + + + Albanian + Albanska + + + + Serbian + Serbiska + + + + Swati + SiSwati + + + + Southern Sotho + Sesotho + + + + Sundanese + Sundanesiska + + + + Swedish + Svenska + + + + Swahili + Swahili + + + + Tamil + Tamil + + + + Telugu + Telugu + + + + Tajik + Tadzjikiska + + + + Thai + Thailändska + + + + Tigrinya + Tigrinska + + + + Turkmen + Turkmeniska + + + + Tagalog + Tagalog + + + + Tswana + Tswana + + + + Tonga + Tonga + + + + Turkish + Turkiska + + + + Tsonga + Tsonga + + + + Tatar + Tatariska + + + + Twi + Twi + + + + Tahitian + Tahitiska + + + + Uighur + Uiguriska + + + + Ukrainian + Ukrainska + + + + Urdu + Urdu + + + + Uzbek + Uzbekiska + + + + Venda + Venda + + + + Vietnamese + Vietnamesiska + + + + Volapuk + Volapük + + + + Walloon + Vallonska + + + + Wolof + Wolof + + + + Xhosa + Xhosa + + + + Yiddish + Jiddisch + + + + Yoruba + Yoruba + + + + Zhuang + Zhuang + + + + Chinese + Kinesiska + + + + Zulu + Zulu + + + + Lojban + Lojban + + + + Traditional Chinese + Kinesiska (traditionell) + + + + Simplified Chinese + Kinesiska (förenklad) + + + + Other + Annat + + + + Other Simplified Chinese dialects + Andra förenklade kinesiska dialekter + + + + Other Traditional Chinese dialects + Andra traditionella kinesiska dialekter + + + + Other Eastern-European languages + Andra östeuropeiska språk + + + + Other Western-European languages + Andra västeuropeiska språk + + + + Other Russian languages + Andra ryska språk + + + + Other Japanese languages + Andra japanska språk + + + + Other Baltic languages + Andra baltiska språk + + + + Other Greek languages + Andra grekiska språk + + + + Other Korean dialects + Andra koreanska dialekter + + + + Other Turkish dialects + Andra turkiska dialekter + + + + Other Thai dialects + Andra thailändska dialekter + + + + Tamazight + Tamazight + + + + LoadDictionaries + + + Error loading dictionaries + Fel vid inläsning av ordlistorna + + + + Main + + + Error in configuration file. Continue with default settings? + Fel i konfigurationsfilen. Vill du använda standardinställningarna istället? + + + + MainWindow + + + + Welcome! + Välkommen! + + + + &File + &Arkiv + + + + &Edit + &Redigera + + + + &Help + &Hjälp + + + + &View + &Visa + + + + &Zoom + &Zooma + + + + H&istory + &Historik + + + + &Search Pane + &Sökpanel + + + + &Results Navigation Pane + &Resultatpanel + + + + &History Pane + &Historikpanel + + + + &Dictionaries... + &Ordlistor … + + + + F3 + F3 + + + + &Preferences... + &Inställningar … + + + + F4 + F4 + + + + &Homepage + &Webbplats + + + + &About + &Om + + + + About GoldenDict + Om GoldenDict + + + + F1 + F1 + + + + + &Quit + &Avsluta + + + + Quit from application + Avslutar programmet + + + + Ctrl+Q + Ctrl+Q + + + + &Forum + &Forum + + + + &Close To Tray + &Stäng till meddelandefältet + + + + Minimizes the window to tray + Minimerar programfönstret till meddelandefältet + + + + Ctrl+F4 + Ctrl+F4 + + + + &Save Article + &Spara artikel + + + + Save Article + Spara artikel + + + + F2 + F2 + + + + &Print + Skriv &ut + + + + Ctrl+P + Ctrl+P + + + + Page Set&up + Utskrifts&format + + + + Print Pre&view + Förhands&granska + + + + &Rescan Files + Sök igenom filer &igen + + + + &New Tab + &Ny flik + + + + &Always on Top + &Alltid överst + + + + Always on Top + Alltid överst + + + + Ctrl+O + Ctrl+O + + + + + + Menu Button + Menyknapp + + + + Ctrl+F5 + Ctrl+F5 + + + + &Clear + &Rensa + + + + New Tab + Ny flik + + + + Ctrl+T + Ctrl+T + + + + &Configuration Folder + &Konfigurationsfilmapp + + + + + &Show + &Visa + + + + Ctrl+H + Ctrl+H + + + + &Export + &Exportera + + + + &Import + &Importera + + + + &Menubar + &Menyrad + + + + Show Names in Dictionary &Bar + Visa namn i ordliste&fältet + + + + Show Small Icons in &Toolbars + Visa små ikoner i &verktygsfält + + + + &Navigation + &Navigeringsfältet + + + + Back + Bakåt + + + + Forward + Framåt + + + + Scan Popup + Sökpopupruta + + + + Pronounce Word (Alt+S) + Läs upp ord (Alt+S) + + + + Zoom In + Zooma in + + + + Zoom Out + Zooma ut + + + + Normal Size + Normal storlek + + + + + Look up in: + Slå upp i: + + + + Found in Dictionaries: + Träffar hittades i följande ordlistor: + + + + Words Zoom In + Zooma in ord + + + + Words Zoom Out + Zooma ut ord + + + + Words Normal Size + Normal storlek på ord + + + + Show &Main Window + Visa &huvudfönstret + + + + Opened tabs + Öppnade flikar + + + + Close current tab + Stäng aktuell flik + + + + Close all tabs + Stäng alla flikar + + + + Close all tabs except current + Stäng alla flikar utom aktuell flik + + + + Loading... + Läser in … + + + + %1 dictionaries, %2 articles, %3 words + %1 ordlistor, %2 artiklar, %3 ord + + + + Look up: + Slå upp: + + + + All + Alla + + + + Open Tabs List + Öppna lista över flikar + + + + (untitled) + (namnlös) + + + + %1 - %2 + %1 - %2 + + + + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. + Det gick inte att initiera övervakningsmekanismen för kortkommandon.<br>Säkerställ att tillägget RECORD för din XServer är aktiverat. + + + + New Release Available + Ny version tillgänglig + + + + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. + Version <b>%1</b> av GoldenDict finns nu tillgänglig för hämtning.<br>Klicka på <b>Hämta</b> för att gå till hämtningssidan. + + + + Download + Hämta + + + + Skip This Release + Hoppa över denna version + + + + + Accessibility API is not enabled + API för hjälpmedel har inte aktiverats + + + + You have chosen to hide a menubar. Use %1 to show it back. + Du har valt att dölja en menyrad. Använd %1 för att visa den igen. + + + + Ctrl+M + Ctrl+M + + + + Page Setup + Utskriftsformat + + + + No printer is available. Please install one first. + Inga tillgängliga skrivare. Du måste installera eller ansluta dig till en. + + + + Print Article + Skriv ut artikel + + + + Article, Complete (*.html) + Artikel, fullständig (*.html) + + + + Article, HTML Only (*.html) + Artikel, endast HTML (*.html) + + + + Save Article As + Spara artikel som + + + + Error + Fel + + + + Can't save article: %1 + Det gick inte att spara artikeln: %1 + + + + Saving article... + Sparar artikel … + + + + The main window is set to be always on top. + Huvudfönstret har ställts in att alltid ligga överst. + + + + &Hide + &Dölj + + + + Export history to file + Exportera historik till fil + + + + + Text files (*.txt);;All files (*.*) + Textfiler (*.txt);;Alla filer (*.*) + + + + History export complete + Historiken har exporterats + + + + Export error: + Fel vid export: + + + + Import history from file + Importera historik från fil + + + + Import error: invalid data in file + Fel vid import: felaktiga data i fil + + + + History import complete + Historiken har importerats + + + + Import error: + Fel vid import: + + + + Dictionary info + Information om ordlista + + + + Open dictionary folder + Öppna ordlistans mapp + + + + Edit dictionary + Redigera ordlista + + + + Mdx::MdxArticleRequest + + + Dictionary file was tampered or corrupted + Ordlistefilen har manipulerats eller är skadad + + + + Failed loading article from %1, reason: %2 + Det gick inte att läsa in en artikel från %1, orsak: %2 + + + + MediaWiki::MediaWikiArticleRequest + + + XML parse error: %1 at %2,%3 + XML-tolkningsfel: %1 på %2, %3 + + + + MediaWiki::MediaWikiWordSearchRequest + + + XML parse error: %1 at %2,%3 + XML-tolkningsfel: %1 på %2, %3 + + + + MediaWikisModel + + + Enabled + Aktiverad + + + + Name + Namn + + + + Address + Adress + + + + Icon + Ikon + + + + OrderAndProps + + + Form + Formulär + + + + Dictionary order: + Ordlisteordning: + + + + + + + ... + + + + + Inactive (disabled) dictionaries: + Inaktiverade ordlistor: + + + + Dictionary information + Information om ordlista + + + + Name: + Namn: + + + + Total articles: + Antal artiklar: + + + + Total words: + Antal ord: + + + + Translates from: + Källspråk: + + + + Translates to: + Målspråk: + + + + Description: + Beskrivning: + + + + Files comprising this dictionary: + Filer som omfattas av ordlistan: + + + + Adjust the order by dragging and dropping items in it. Drop dictionaries to the inactive group to disable their use. + Ändra ordningen genom att dra och släppa objekten i listan. Släpp ordlistor i gruppen "Inaktiverade ordlistor" för att inaktivera dem. + + + + Sort by name + Sortera efter namn + + + + Sort by languages + Sortera efter språk + + + + PathsModel + + + Path + Sökväg + + + + Recursive + Rekursiv + + + + Preferences + + + Preferences + Inställningar + + + + &Interface + &Gränssnitt + + + + Tabbed browsing + Flikar + + + + Normally, opening a new tab switches to it immediately. +With this on however, new tabs will be opened without +switching to them. + I vanliga fall fokuseras en nyöppnad flik omedelbart. +Aktivera detta alternativ för att öppna nya flikar utan +att växla till dem på en gång. + + + + Open new tabs in background + Öppna nya flikar i bakgrunden + + + + With this on, new tabs are opened just after the +current, active one. Otherwise they are added to +be the last ones. + Aktivera detta alternativ för att öppna nya flikar +bredvid den aktuella, aktiva fliken. Annars öppnas +de efter den sista fliken i flikfältet. + + + + Open new tabs after the current one + Öppna nya flikar bredvid den aktuella fliken + + + + Select this option if you don't want to see the main tab bar when only a single tab is opened. + Välj detta alternativ om du inte fill se flikfältet när endast en flik är öppen. + + + + Hide single tab + Dölj fliken och flikfältet om endast en flik är öppen + + + + Ctrl-Tab navigates tabs in MRU order + Ctrl+Tabb bläddrar igenom flikarna i den ordning de senast användes + + + + When enabled, an icon appears in the sytem tray area which can be used +to open main window and perform other tasks. + När detta alternativ är aktiverat visas en ikon i meddelandefältet, som kan +användas för att öppna huvudfönstret och utföra andra uppgifter. + + + + Enable system tray icon + Visa ikon i meddelandefältet + + + + With this on, the application starts directly to system tray without showing +its main window. + Aktivera detta alternativ för att öppna programmet direkt i meddelande- +fältet, utan att visa huvudfönstret. + + + + Start to system tray + Starta programmet minimerat i meddelandefältet + + + + With this on, an attempt to close main window would hide it instead of closing +the application. + När detta alternativ är aktiverat kommer ett klick på stängknappen (X) att +minimera fönstret till meddelandefältet istället för att avsluta programmet. + + + + Close to system tray + Stäng till meddelandefältet + + + + Turn this option on if you want to select words by single mouse click + Aktivera detta alternativ om du vill markera ord med ett enkelklick. + + + + Select word by single click + Markera ord med enkelklick + + + + Startup + Programstart + + + + Automatically starts GoldenDict after operation system bootup. + Startar GoldenDict automatiskt efter att operativsystemet har startats. + + + + Start with system + Starta automatiskt när datorn startar + + + + Interface language: + Språk för användargränssnittet: + + + + Display style: + Visningsformat: + + + + Double-click translates the word clicked + Dubbelklick översätter det klickade ordet + + + + Normally, pressing ESC key moves focus to the translation line. +With this on however, it will hide the main window. + Vanligtvis flyttar ett tryck på Esc-tangenten fokus till sökfältet. +Med detta alternativ aktiverat döljer den istället huvudfönstret. + + + + ESC key hides main window + Esc-tangenten döljer huvudfönstert + + + + Add-on style: + Tilläggsformat: + + + + Adjust this value to avoid huge context menus. + Justera detta värde för att undvika alltför stora snabbmenyer. + + + + Context menu dictionaries limit: + Högsta antal ordlistor i snabbmenyer: + + + + &Scan Popup + &Sökpopupruta + + + + When enabled, a translation popup window would be shown each time +you point your mouse on any word on the screen (Windows) or select +any word with mouse (Linux). When enabled, you can switch it on and +off from main window or tray icon. + När detta är aktiverat visas en popupruta varje gång som du hovrar +med musspekaren över ett ord på skärmen (Windows) eller markerar +ett ord med musen (Linux). Är alternativet aktiverat kan det slås på +och stängas av från huvudfönstret eller ikonen i meddelandefältet. + + + + Enable scan popup functionality + Aktivera sökpopuprutefunktionen + + + + Chooses whether the scan popup mode is on by default or not. If checked, +the program would always start with the scan popup active. + Avgör om sökpopuprutelägets standardinställning är PÅ eller AV. Om kryss- +rutan är markerad startar programmet alltid med sökpopuprutan påslagen. + + + + Start with scan popup turned on + Starta med sökpopuprutan påslagen + + + + With this enabled, the popup would only show up if all chosen keys are +in the pressed state when the word selection changes. + När alternativet är aktiverat visas sökpopuprutan endast om alla de +angivna tangenterna är nedtryckta när ordet markeras. + + + + Only show popup when all selected keys are kept pressed: + Visa endast sökpopuprutan när följande tangenter hålls nedtryckta: + + + + Left Ctrl only + Endast vänster Ctrl-tangent + + + + Left Ctrl + Vänster Ctrl + + + + Right Shift only + Endast höger Skift-tangent + + + + Right Shift + Höger Skift + + + + Alt key + Alt-tangenten + + + + Alt + Alt + + + + Ctrl key + Ctrl-tangenten + + + + Ctrl + Ctrl + + + + Left Alt only + Endast vänster Alt-tangent + + + + Left Alt + Vänster Alt + + + + Shift key + Skift-tangenten + + + + Shift + Skift + + + + Right Alt only + Endast höger Alt-tangent + + + + Right Alt + Höger Alt + + + + Right Ctrl only + Endast höger Ctrl-tangent + + + + Right Ctrl + Höger Ctrl + + + + Left Shift only + Endast vänster Skift-tangent + + + + Left Shift + Vänster Skift + + + + Windows key or Meta key + Windows- eller Meta-tangenten + + + + Win/Meta + Win/Meta + + + + Normally, in order to activate a popup you have to +maintain the chosen keys pressed while you select +a word. With this enabled, the chosen keys may also +be pressed shortly after the selection is done. + I normala fall kan du bara aktivera en popupruta om +du håller de angivna tangenterna nedtryckta medan +du markerar ett ord. Med detta alternativ aktiverat kan +tangenterna även tryckas ned strax efter att ordet har +markerats. + + + + Keys may also be pressed afterwards, within + Tillåt att tangenter trycks ned efter markering, inom + + + + To avoid false positives, the keys are only monitored +after the selection's done for a limited amount of +seconds, which is specified here. + För att undvika falska positiva identifieringar övervakas +tangenterna endast under ett begränsat antal sekunder +efter slutförd markering. Här anges den tidsperioden. + + + + secs + s + + + + Send translated word to main window instead of to show it in popup window + Skicka översatta ord till huvudfönstret istället för att visa dem i popuprutan. + + + + Send translated word to main window + Skicka översatta ord till huvudfönstret + + + + Hotkeys + Kortkommandon + + + + Use the following hotkey to show or hide the main window: + Använd följande kortkommando för att visa eller dölja huvudfönstret: + + + + Use the following hotkey to translate a word from clipboard: + Använd följande kortkommando för att översätta ett ord från Urklipp: + + + + The hotkeys are global and work from any program and within any context as long as GoldenDict is running in background. + Kortkommandona är globala och fungerar inifrån alla program och i alla sammanhang, förutsatt att GoldenDict körs i bakgrunden. + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Note: You appear to be running an X.Org XServer release which has the RECORD extension broken. Hotkeys in GoldenDict will probably not work. This must be fixed in the server itself. Please refer to the following </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">bug entry</span></a><span style=" color:#ff0000;"> and leave a comment there if you like.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Obs: Det verkar som att du kör en XServer-version (från X.Org) vars tillägg <b>Record</b> är skadat. Kortkommandon kommer antagligen inte att fungera i GoldenDict. Problemet måste åtgärdas i själva servern. Gå till följande </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">buggrapport</span></a><span style=" color:#ff0000;"> och lämna en kommentar där om du så önskar.</span></p></body></html> + + + + &Audio + L&jud + + + + Pronunciation + Text till tal + + + + Auto-pronounce words in main window + Läs automatiskt upp ord i huvudfönstret + + + + Auto-pronounce words in scan popup + Läs automatiskt upp ord i popuprutan + + + + Playback + Uppspelning + + + + Play audio files via FFmpeg(libav) and libao + Spela upp ljudfiler via FFmpeg(libav) och libao. + + + + Use internal player + Använd intern spelare + + + + Select this option to automatic collapse big articles + Välj detta alternativ för att automatiskt dölja stora artiklar. + + + + Collapse articles more than + Dölj artiklar längre än + + + + Articles longer than this size will be collapsed + Artiklar som är längre än följande antal tecken kommer att komprimeras. + + + + symbols + tecken + + + + Use any external program to play audio files + Använd ett externt program för att spela upp ljudfiler. + + + + Use external program: + Använd externt program: + + + + &Network + &Nätverk + + + + Enable if you wish to use a proxy server +for all program's network requests. + Aktivera detta alternativ om du vill använda +en proxyserver för programmets alla nätverks- +förfrågningar. + + + + Use proxy server + Använd proxyserver + + + + Type: + Typ: + + + + Host: + Värd: + + + + Port: + Port: + + + + User: + Användare: + + + + Password: + Lösenord: + + + + Enabling this would make GoldenDict block most advertisements +by disallowing content (images, frames) not originating from the site +you are browsing. If some site breaks because of this, try disabling this. + Om du aktiverar detta alternativ blockerar GoldenDict de flesta av de +annonser som finns på olika sidor genom att blockera innehåll (bilder, ramar) +som inte ursprungligen kommer från webbplatsen du surfar på. Om en +webbplats slutar fungera p.g.a. det här, testa att inaktivera alternativet. + + + + Disallow loading content from other sites (hides most advertisements) + Blockera inläsning av innehåll från andra webbplatser (döljer merparten av annonserna) + + + + Enabling this would allow to listen to sound pronunciations from +online dictionaries that rely on Flash or other web plugins. +Plugin must be installed for this option to work. + Detta alternativ låter dig lyssna till ljudfiler, där uppslagsordet +uttalas, från webbordlistor som använder Flash eller andra webb- +insticksmoduler. Insticksmodulerna måste vara installerade för att +detta alternativ skall fungera. + + + + Enable web plugins + Aktivera webbinsticksmoduler + + + + Some sites detect GoldenDict via HTTP headers and block the requests. +Enable this option to workaround the problem. + Vissa webbplatser identifierar GoldenDict m.h.a. HTTP-huvuden och +blockerar alla förfrågningar. Aktivera detta alternativ för att lösa +det problemet. + + + + Do not identify GoldenDict in HTTP headers + Identifiera inte GoldenDict i HTTP-huvuden + + + + When this is enabled, the program periodically +checks if a new, updated version of GoldenDict +is available for download. If it is so, the program +informs the user about it and prompts to open a +download page. + När detta alternativ är aktiverat kontrollerar +programmet med jämna mellanrum om det finns +en ny, uppdaterad version av GoldenDict. Om så +är fallet informerar programmet användaren om +saken och ber denna att öppna en hämtningssida. + + + + Check for new program releases periodically + Sök med jämna mellanrum efter nya programversioner + + + + Ad&vanced + A&vancerat + + + + ScanPopup extra technologies + Ytterligare teknologier för sökpopuprutan + + + + Try to use IAccessibleEx technology to retrieve word under cursor. +This technology works only with some programs that support it + (for example Internet Explorer 9). +It is not needed to select this option if you don't use such programs. + Försök att använda IAccessibleEx-teknologi för att hämta ett ord +under muspekaren. Denna teknologi fungerar endast med program +som stöder den (t.ex. Internet Explorer 9). Om du inte använder +sådana program, så behöver du inte aktivera det här alternativet. + + + + Use &IAccessibleEx + Använd &IAccessibleEx + + + + Try to use UI Automation technology to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Försök att använda UI Automation-teknologi för att hämta ett ord +under muspekaren. Denna teknologi fungerar endast med program +som stöder den. Om du inte använder sådana program, så behöver +du inte aktivera det här alternativet. + + + + Use &UIAutomation + Använd &UIAutomation + + + + Try to use special GoldenDict message to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Försök att använda ett särskilt GoldenDict-meddelandei för att hämta +ett ord under muspekaren. Denna teknologi fungerar endast med program +som stöder den. Om du inte använder sådana program, så behöver +du inte aktivera det här alternativet. + + + + Use &GoldenDict message + Använd &GoldenDict-meddelande + + + + History + Historik + + + + Turn this option on to store history of the translated words + Aktivera detta alternativ för att lagra en historik över översatta ord. + + + + Store &history + Lagra &historik + + + + Specify the maximum number of entries to keep in history. + Ange det maximala antalet poster som får behållas i historiken. + + + + Maximum history size: + Största historikstorlek: + + + + History saving interval. If set to 0 history will be saved only during exit. + Sparintervall för historiken. Ange till 0 för att endast spara historiken vid programavslut. + + + + Save every + Spara var + + + + minutes + minut + + + + Articles + Artiklar + + + + Turn this option on to always expand optional parts of articles + Aktivera detta alternativ för att alltid visa valfria delar av artiklar. + + + + Expand optional &parts + Visa valfria &delar + + + + System default + Systemstandard + + + + Default + Standard + + + + Modern + Modernt + + + + Lingvo + Lingvo + + + + Babylon + Babylon + + + + Lingoes + Lingoes + + + + Lingoes-Blue + Lingoes (blå) + + + + Changing Language + Språkbyte + + + + Restart the program to apply the language change. + Starta om programmet för att verkställa bytet av språk. + + + + ProgramTypeEditor + + + Audio + Ljud + + + + Plain Text + Oformaterad text + + + + Html + HTML + + + + Prefix Match + Prefixmatchning + + + + Unknown + Okänd + + + + Programs::RunInstance + + + No program name was given. + Inget programnamn har angivits. + + + + The program has crashed. + Programmet har kraschat. + + + + The program has returned exit code %1. + Programmet returnerade avslutningskoden %1. + + + + ProgramsModel + + + Enabled + Aktiverad + + + + Type + Typ + + + + Name + Namn + + + + Command Line + Kommandorad + + + + Icon + Ikon + + + + QObject + + + Article loading error + Artikelinläsningsfel + + + + Article decoding error + Artikelavkodningsfel + + + + avformat_alloc_context() failed. + avformat_alloc_context() misslyckades. + + + + av_malloc() failed. + av_malloc() misslyckades. + + + + avio_alloc_context() failed. + avio_alloc_context() misslyckades. + + + + avformat_open_input() failed: %1. + avformat_open_input() misslyckades: %1. + + + + avformat_find_stream_info() failed: %1. + avformat_find_stream_info() misslyckades: %1. + + + + Could not find audio stream. + Det gick inte att hitta ljudströmmen. + + + + Codec [id: %1] not found. + Det gick inte att hitta kodeken [id: %1]. + + + + avcodec_open2() failed: %1. + avcodec_open2() misslyckades: %1. + + + + Cannot find usable audio output device. + Det gick inte att hitta en användbar utdataenhet för ljud. + + + + Unsupported sample format. + Sampelformatet stöds inte. + + + + ao_open_live() failed: + ao_open_live() misslyckades: + + + + No driver. + Ingen drivrutin. + + + + This driver is not a live output device. + Denna drivrutin är inte en ansluten utdataenhet. + + + + A valid option key has an invalid value. + En giltig alternativnyckel har ett ogiltigt värde. + + + + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. + Det gick inte att öppna enheten: %1, kanaler: %2, hastighet: %3, bitar: %4. + + + + Unknown error. + Okänt fel. + + + + avcodec_alloc_frame() failed. + avcodec_alloc_frame() misslyckades. + + + + QuickFilterLine + + + Dictionary search/filter (Ctrl+F) + Sök i/filtrera ordlista (Ctrl+F) + + + + Quick Search + Snabbsökning + + + + Clear Search + Rensa sökning + + + + ResourceToSaveHandler + + + + ERROR: %1 + FEL: %1 + + + + Resource saving error: + Fel när resurs skulle sparas: + + + + The referenced resource failed to download. + Det gick inte att hämta den refererade resursen. + + + + Romaji + + + Hepburn Romaji for Hiragana + Romanisering för hiragana enl. Hepburn-systemet + + + + Hepburn Romaji for Katakana + Romanisering för katakana enl. Hepburn-systemet + + + + RussianTranslit + + + Russian Transliteration + Translitterering av ryska + + + + ScanPopup + + + Dialog + Dialog + + + + Back + Bakåt + + + + + + + + ... + + + + + Forward + Framåt + + + + Pronounce Word (Alt+S) + Läs upp ord (Alt+S) + + + + Alt+S + Alt+S + + + + Send word to main window (Alt+W) + Skicka ord till huvudfönstret (Alt+W) + + + + Alt+W + Alt+W + + + + Shows or hides the dictionary bar + Visar/döljer ordlistefältet + + + + Use this to pin down the window so it would stay on screen, +could be resized or managed in other ways. + Klicka här för att nåla fast rutan så att den stannar kvar på skärmen. +Rutan kan storleksändras och hanteras på andra sätt. + + + + + %1 - %2 + %1 - %2 + + + + SoundDirsModel + + + Path + Sökväg + + + + Name + Namn + + + + Icon + Ikon + + + + Sources + + + Files + Filer + + + + Paths to search for the dictionary files: + Sökvägar där programmet skall söka efter ordlistefiler: + + + + + + + + &Add... + &Lägg till … + + + + + + + + &Remove + Ta &bort + + + + Re&scan now + &Sök igenom + + + + Sound Dirs + Ljudmappar + + + + Make dictionaries from bunches of audiofiles by adding paths here: + Skapa ordlistor från samlingar av ljudfiler genom att lägga till sökvägar här: + + + + Morphology + Morfologi + + + + Path to a directory with Hunspell/Myspell dictionaries: + Sökväg till mapp som inehåller Hunspell-/Myspell-ordlistor: + + + + &Change... + &Bläddra … + + + + Available morphology dictionaries: + Tillgängliga mofologiska ordlistor: + + + + Each morphology dictionary appears as a +separate auxiliary dictionary which +provides stem words for searches and +spelling suggestions for mistyped words. +Add appropriate dictionaries to the bottoms +of the appropriate groups to use them. + Varje mofologisk ordlista visas som en +separat hjälpordlista, som tillhandahåller +ordstammar för sök- och stavningsförslag +till felstavade ord. Lägg till ordlistorna +nederst i därtill passande grupper för att +använda dem. + + + + Wikipedia + Wikipedia + + + + Wikipedia (MediaWiki) sites: + Wikiwebbplatser (MediaWiki): + + + + Websites + Webbplatser + + + + Any websites. A string %GDWORD% will be replaced with the query word: + Ange de webbplatser du vill använda. Strängen %GDWORD% ersätts av sökordet vid sökning: + + + + Programs + Program + + + + Forvo + Forvo + + + + Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. + Uppläsning av ord från <a href="http://www.forvo.com/">forvo.com</a>, en webbplats som låter människor spela in och dela uttal av ord. Du kan lyssna på inspelningarna inifrån GoldenDict. + + + + Enable pronunciations from Forvo + Aktivera orduppläsningar från Forvo + + + + API Key: + API-nyckel: + + + + Use of Forvo currently requires an API key. Leave this field +blank to use the default key, which may become unavailable +in the future, or register on the site to get your own key. + För närvarande krävs en API-nyckel för att kunna använda +Forvo. Lämna fältet tomt för att använda standardnyckeln, +som kan komma att bli otillgänglig i framtiden, eller registrera +dig på webbplatsen för att få din egen nyckel. + + + + Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. + Skaffa en egen nyckel <a href="http://api.forvo.com/key/">här</a> eller lämna fältet tomt för att använda standardnyckeln. + + + + Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, +%GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. + Du kan också använda %GD1251% för Windows-1251, %GDISO1%-%GDISO16% för ISO 8859-1 till ISO 8859-16, +%GDBIG5% för Big5, %GDBIG5HKSCS% för Big5-HKSCS, %GDGBK% för GBK och GB18030, samt %GDSHIFTJIS% för Shift JIS. + + + + Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. + Ange de program du vill använda. Strängen %GDWORD% ersätts av sökordet. Om strängen inte finns kommer sökordet att matas in som standardindata. + + + + Language codes (comma-separated): + Språkkoder: + + + + List of language codes you would like to have. Example: "en, ru". + Lista över språkkoder för de som du vill ha tillgång till. Exempel: "en, fr, sv". + + + + Full list of language codes is available <a href="http://www.forvo.com/languages-codes/">here</a>. + Avgränsa språkkoderna med kommatecken. En fullständig lista över språkkoder finns tillgänglig <a href="http://www.forvo.com/languages-codes/">här</a>. + + + + Transliteration + Translitterering + + + + Russian transliteration + Translitterering av ryska + + + + Greek transliteration + Translitterering av grekiska + + + + German transliteration + Translitterering av tyska + + + + Belarusian transliteration + Translitterering av vitryska + + + + Enables to use the Latin alphabet to write the Japanese language + Låter dig använda det latinska alfabetet för att skriva på japanska + + + + Japanese Romaji + Romanisering av japanska + + + + Systems: + System: + + + + The most widely used method of transcription of Japanese, +based on English phonology + Den mest utbredda metoden för transkribering av japanska, +baserad på engelsk fonologi. + + + + Hepburn + Hepburn + + + + The most regular system, having a one-to-one relation to the +kana writing systems. Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + Det regelbundnaste systemet, med direkta motsvarigheter i +stavelseskriftsystemet kana. Standardiserat som ISO 3602. + +Har ännu inte implementerats i GoldenDict. + + + + Nihon-shiki + Nihon-shiki + + + + Based on Nihon-shiki system, but modified for modern standard Japanese. +Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + Baserat på Nihon-shiki, men anpassat till modern standardjapanska. +Standardiserat som ISO 3602. + +Har ännu inte implementerats i GoldenDict. + + + + Kunrei-shiki + Kunrei-shiki + + + + Syllabaries: + Stavelseskrifter: + + + + Hiragana Japanese syllabary + Den japanska stavelseskriften hiragana. + + + + Hiragana + Hiragana + + + + Katakana Japanese syllabary + Den japanska stavelseskriften katakana. + + + + Katakana + Katakana + + + + Text to Speech + Text till tal + + + + (not available in portable version) + (inte tillgängligt i den portabla versionen) + + + + + + Choose a directory + Välj en mapp + + + + + + + + Confirm removal + Bekräfta borttagning + + + + + Remove directory <b>%1</b> from the list? + Vill du ta bort mappen <b>%1</b> ur listan? + + + + + Remove site <b>%1</b> from the list? + Vill du ta bort webbplatsen <b>%1</b> ur listan? + + + + Remove program <b>%1</b> from the list? + Vill du ta bort programmet <b>%1</b> ur listan? + + + + StylesComboBox + + + None + Ingen + + + + TextToSpeechSource + + + Selected voice engines: + Valda talmoduler: + + + + &Add + &Lägg till + + + + &Remove + Ta &bort + + + + Preferences + Inställningar + + + + Volume: + Volym: + + + + Rate: + Hastighet: + + + + Preview + Förhandsgranskning + + + + Available voice engines: + Tillgängliga talmoduler: + + + + Text to be previewed: + Text som skall förhandsgranskas: + + + + Type text to be previewed here. + Skriv texten du vill förhandsgranska här. + + + + &Preview + &Förhandsgranska + + + + No TTS voice available + Inga text till tal-moduler tillgängliga + + + + Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. + Det gick inte att hitta någon tillgänglig talmodul.<br>Säkerställ att åtminstone en talmodul finns installerad på din dator. + + + + Confirm removal + Bekräfta borttagning + + + + Remove voice engine <b>%1</b> from the list? + Vill du ta bort talmodulen <b>%1</b> ur listan? + + + + TranslateBox + + + Type a word or phrase to search dictionaries + Ange ett ord eller en fras för att söka i ordlistor + + + + Drop-down + Rullgardinsmeny + + + + VoiceEnginesModel + + + Enabled + Aktiverad + + + + Name + Namn + + + + Id + ID + + + + Icon + Ikon + + + + WebSitesModel + + + Enabled + Aktiverad + + + + Name + Namn + + + + Address + Adress + + + + Icon + Ikon + + + + WordFinder + + + Failed to query some dictionaries. + Det gick inte att fråga några av ordlistorna. + + + + WordList + + + WARNING: %1 + VARNING: %1 + + + diff -Nru goldendict-1.0.2~git20130620/locale/tg_TJ.ts goldendict-1.5.0~ppa131019/locale/tg_TJ.ts --- goldendict-1.0.2~git20130620/locale/tg_TJ.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/tg_TJ.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,22 +9,22 @@ Дар бораи барнома - + GoldenDict dictionary lookup program, version Луғати GoldenDict, версияи - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Константин Исаков (ikm@goldendict.org) - + Licensed under GNU GPLv3 or later Иҷозатномаи GNU GPLv3 ё навтар - + Credits: Рӯйхати тарҷумонҳо: @@ -34,7 +34,7 @@ [Номаълум] - + Based on Qt %1 (%2, %3 bit) Дар Qt %1 (%2, %3 бит) асос меёбад @@ -52,52 +52,52 @@ Печондани мақола - + No translation for <b>%1</b> was found in group <b>%2</b>. Ягон тарҷума барои <b>%1</b> дар гурӯҳи <b>%2</b> ёфт нашудааст. - + No translation was found in group <b>%1</b>. Ягон тарҷума дар гурӯҳи <b>%1</b> ёфт нашудааст. - + Welcome! Хуш омадед! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Хуш омадед ба луғати <b>GoldenDict</b>!</h3><p>Барои оғози кор бо луғат, пеш аз ҳама ба <b>Танзимот|Луғатҳо</b> гузаред ва файлҳои луғатҳои лозимиро илова кунед, сайтҳои Wikipedia ё сайтҳои дигарро насб кунед, тартиби луғатҳоро таъин кунед ё гурӯҳҳои луғатро эҷод кунед.<p>Баъд аз ин шумо метавонед калимаҳоро тарҷума кунед! Шумо метавонед калимаҳоро бо истифодаи лавҳаи чапи ин равзана тарҷума кунед, ё шумо метавонед <a href="Тарҷума бо равзанаи пайдошаванда">калимаҳоро дар барномаҳои дигар тарҷума кунед</a>. <p>Барои насб кардани танзимоти шахсӣ, хусусиятҳои дастрасиро дар <b>Танзимот|Хусусиятҳо</b> истифода баред. Ҳамаи танзимоти ин барнома дорои маслиҳат мебошанд. Агар ягон мушкилӣ дошта бошед, мутмаин шавед, ки он маслиҳатҳоро хонед.<p>Барои маълумоти муфассал, гирифтани кӯмак, ҷавобу саволҳо, маслиҳатҳо ё ҳалли масъалаҳои дигар, шумо метавонед <a href="http://goldendict.org/forum/">форуми луғатро</a> истифода баред.<p>Барои гирифтани навсозиҳои барнома <a href="http://goldendict.org/">вебсайти луғатро</a> истифода баред. <p>(c) 2008-2013 Константин Исаков. Иҷозатномаи GPLv3 ё навтар. - + Working with popup Тарҷума бо равзанаи пайдошаванда - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Тарҷума бо равзанаи пайдошаванда</h3>Барои тарҷума кардани калимаҳо дар барномаҳои дигар, пеш аз ҳама шумо бояд <i>"Хусусияти тарҷумаи пайдошавандаро"</i> дар <b>Хусусиятҳо</b> фаъол кунед. Дар оянда шумо метавонед ин хусусиятро ба воситаи зеркунии тугмаи "Тарҷумаи пайдошаванда" фаъол кунед, ё шумо метавонед ин хусусиятро бо зеркунии нишонаи панел аз менюи пайдошуда фаъол кунед. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Баъд аз фаъол кардани хусусияти тарҷумаи пайдошаванда курсори мушро ба болои калимаи дилхоҳ ҷойгир кунед, ва равзана бо тарҷумаҳо бояд барои шумо пайдо шавад. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Баъд аз фаъол кардани хусусияти тарҷумаи пайдошаванда, калимаи дилхоҳро дар барномаи дигар бо нишондиҳандаи муш интихоб кунед (ба калимаи дилхоҳ дубора зер кунед) ва равзана бо тарҷумаҳо бояд барои шумо пайдо шавад. - + (untitled) (беном) - + (picture) (тасвир) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article Баркушодани мақола - + From Аз - + Collapse article Печондани мақола - + Query error: %1 Хатои дархост: %1 - + Close words: Калимаҳои наздик: - + Compound expressions: Ифодаҳои алоқадор: - + Individual words: Калимаҳои шахсӣ: @@ -188,32 +188,42 @@ Ҳамаашро ҷу&до кунед - + Resource Манбаъ - + Audio Аудио - + TTS Voice Овози TTS (Матн ба талаффуз) - + Picture Тасвир - + + Video + Видео + + + + Video: %1 + Видео: %1 + + + Definition from dictionary "%1": %2 Таъриф аз луғати "%1": %2 - + Definition: %1 Маъно: %1 @@ -222,38 +232,38 @@ Луғати GoldenDict - - + + The referenced resource doesn't exist. Манбаъи ишорашуда вуҷуд надорад. - + The referenced audio program doesn't exist. Барномаи аудиоии ишорашуда вуҷуд надорад. - + ERROR: %1 ХАТОГӢ: %1 - + Save sound Захира кардани садо - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) Файлҳои садоӣ (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Ҳамаи файлҳо (*.*) - + Save image Захира кардани тасвир - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) Файлҳои тасвирӣ (*.bmp *.jpg *.png *.tif);;Ҳамаи файлҳо (*.*) @@ -262,63 +272,63 @@ Хатои захиракунии манбаъ: - + &Open Link &Пайвандро кушодан - + Open Link in New &Tab Пайвандро дар &варақаи нав кушодан - + Open Link in &External Browser Пайвандро дар &браузер кушодан - + Save &image... Захира &кардани тасвир... - + Save s&ound... Захира &кардани садо... - + &Look up "%1" "%1"-ро &дарёфт кардан - + Look up "%1" in &New Tab "%1"-ро дар варақаи &нав дарёфт кардан - + Send "%1" to input line Фиристодани "%1" ба хати ворида - - + + &Add "%1" to history &Илова кардани "%1" ба таърих - + Look up "%1" in %2 "%1"-ро дар %2 дарёфт кардан - + Look up "%1" in %2 in &New Tab "%1"-ро дар %2 дар варақаи &нав дарёфт кардан - + WARNING: FFmpeg Audio Player: %1 ОГОҲӢ: Плеери аудиоии FFmpeg: %1 @@ -339,42 +349,42 @@ Китобхои басс ин садоро пахш карда наметавонад. - + Failed to run a player to play sound file: %1 Барои иҷрои файли аудиоӣ кушоиши плеер қатъ карда шуд: %1 - + Failed to create temporary file. Эҷодкунии файли муваққатӣ қатъ карда шуд. - + Failed to auto-open resource file, try opening manually: %1. Кушоиши файл ба таври худкор қатъ карда шуд, кӯшиш кунед, ки онро ба таври дастӣ кушоед: %1. - + WARNING: %1 ОГОҲӢ: %1 - + Select Current Article Интихоб кардани мақолаи ҷорӣ - + Copy as text Нусха бардоштан ҳамчун матн - + Inspect Тафтиш кардан - + The referenced resource failed to download. Боргирии манбаъи ишорашуда қатъ карда шуд. @@ -524,12 +534,12 @@ Open folder - + Кушодани ҷузвдон Edit dictionary - Таҳрир кардани луғат + Таҳрир кардани луғат @@ -545,7 +555,8 @@ Edit the dictionary via command: %1 - + Таҳрир кардани луғат тавассути фармон: +%1 @@ -570,7 +581,7 @@ Extended menu with all dictionaries... - + Менюи васеъшуда бо ҳамаи луғатҳо... @@ -585,7 +596,7 @@ Open dictionary folder - + Кушодани ҷузвдони луғат @@ -649,37 +660,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Хатои таҳлили XML: %1 дар %2,%3 - + Added %1 %1 илова шуд - + by аз - + Male Мард - + Female Зан - + from аз - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Ба Танзимот|Луғатҳо|Сарчашмаҳо||Forvo гузаред ва барои ҳал кардани ин хато калиди API-и худро татбиқ кунед. @@ -878,12 +889,12 @@ Таърих: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Андозаи таърих: %1 аз %2 @@ -896,7 +907,7 @@ Пешниҳоди санҷиши калима: - + %1 Morphology Морфологияи %1 @@ -1957,7 +1968,7 @@ Main - + Error in configuration file. Continue with default settings? Хатогӣ дар файли танзимӣ. Бо танзимоти пешфарз давом медиҳед? @@ -1970,7 +1981,7 @@ - + Welcome! Хуш омадед! @@ -2209,7 +2220,7 @@ - + &Show &Намоиш додан @@ -2243,7 +2254,7 @@ - + Look up in: Тарҷума дар: @@ -2352,32 +2363,32 @@ Бор шуда истодааст... - + %1 dictionaries, %2 articles, %3 words %1 луғат, %2 мақола, %3 калима - + Look up: Тарҷума кардан: - + All Умумӣ - + Open Tabs List Рӯйхати варақаҳоро кушодан - + (untitled) (беном) - + %1 - %2 %1 - %2 @@ -2386,73 +2397,73 @@ ОГОҲӢ: %1 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Омодасозии механизми назорати тугмаҳои зеркор қатъ карда шуд.<br>Мутмаин шавед, ки имконоти RECORD дар XServer фаъол аст. - + New Release Available Версияи барномаи нав дастрас аст - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Версияи навтарини луғати GoldenDict <b>%1</b> барои боргирӣ дастрас аст.<br>Барои кушодани саҳифаи боргирии барнома, тугмаи <b>Боргириро</b> зер кунед. - + Download Боргирӣ кунед - + Skip This Release Ин версияро нодида гузарондан - - + + Accessibility API is not enabled Қобилияти API фаъол нашудааст - + You have chosen to hide a menubar. Use %1 to show it back. Шумо пинҳон кардани лавҳаи менюро интихоб кардед. Барои аз нав намоиш додани лавҳаи меню, %1-ро истифода баред. - + Ctrl+M Ctrl+M - + Page Setup Танзими саҳифа - + No printer is available. Please install one first. Ягон принтер дастрас нест. Пеш аз ҳама шумо бояд принтерро танзим кунед. - + Print Article Мақоларо чоп кардан - + Article, Complete (*.html) Мақола, Пурра (*.html) - + Article, HTML Only (*.html) Мақола, танҳо HTML (*.html) - + Save Article As Мақоларо захира кардан ҳамчун @@ -2461,27 +2472,27 @@ Файлҳои html (*.html *.htm) - + Error Хато - + Can't save article: %1 Мақола захира нашуд: %1 - + Saving article... Захиракунии мақола... - + The main window is set to be always on top. Равзанаи асосӣ ҳамеша дар боло ҷойгир мешавад. - + &Hide &Пинҳон кардан @@ -2490,28 +2501,28 @@ Ҳолати намоиши таърих - + Export history to file Таърихро ба файл содир кардан - - + + Text files (*.txt);;All files (*.*) Файлҳои матнӣ (*.txt);;Ҳамаи файлҳо (*.*) - + History export complete Содиркунии таърих ба анҷом расид - + Export error: Хатои содиркунӣ: - + Import history from file Ворид кардани таърих аз файл @@ -2520,32 +2531,32 @@ Воридшуда аз файл: - + Import error: invalid data in file Хатои воридот: маълумоти беэътибор дар файл - + History import complete Воридоти таърих ба анҷом расид - + Import error: Хатои воридот: - + Dictionary info Иттилооти луғат - + Open dictionary folder - + Кушодани ҷузвдони луғат - + Edit dictionary Таҳрир кардани луғат @@ -2553,12 +2564,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted Файли луғат тағйир ёфт ё вайрон шуд - + Failed loading article from %1, reason: %2 Боркунии мақола аз %1 қатъ шуд; сабаб: %2 @@ -2566,7 +2577,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Хатои таҳлили XML: %1 дар %2,%3 @@ -2574,7 +2585,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Хатои таҳлили XML: %1 дар %2,%3 @@ -2853,12 +2864,12 @@ Adjust this value to avoid huge context menus. - + Танзим кардани ин қимат барои рад кардани менюҳои марбути бузург. Context menu dictionaries limit: - + Ҳудуди луғатҳои менюи марбуд: @@ -3130,7 +3141,7 @@ Articles longer than this size will be collapsed - + Мақалаҳои зиёда аз ин андоза мухтасар мешаванд Artiles longer than this size will be collapsed @@ -3429,12 +3440,12 @@ Ба воситаи DirectShow иҷро кунед - + Changing Language Забонро иваз кунед - + Restart the program to apply the language change. Барои татбиқ кардани забони интихобшуда барномаро аз нав оғоз кунед. @@ -3516,97 +3527,97 @@ QObject - + Article loading error Хатогии боркунии мақола - + Article decoding error Хатогии рамзкушоии мақола - + avformat_alloc_context() failed. avformat_alloc_context() қатъ шудааст. - + av_malloc() failed. av_malloc() қатъ шудааст. - + avio_alloc_context() failed. avio_alloc_context() қатъ шудааст. - + avformat_open_input() failed: %1. avformat_open_input() қатъ шудааст: %1. - + avformat_find_stream_info() failed: %1. avformat_find_stream_info() қатъ шудааст: %1. - + Could not find audio stream. Ҷараёни аудиоӣ ёфт нашуд. - + Codec [id: %1] not found. Кодеки [id: %1] ёфт нашуд. - + avcodec_open2() failed: %1. avcodec_open2() қатъ шудааст: %1. - + Cannot find usable audio output device. Дастгоҳи аудиоии истифодашаванда ёфт нашуд. - + Unsupported sample format. Формати намунаи дастгиринашаванда. - + ao_open_live() failed: ao_open_live() қатъ шудааст: - + No driver. Драйвер надорад. - + This driver is not a live output device. Ин драйвер дастгоҳи барориши мустақим намебошад. - + A valid option key has an invalid value. Калиди имконоти боэътибор дорои қимати нодуруст мебошад. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. Ин дастгоҳ кушода намешавад: %1, каналҳо: %2, суръат: %3, битҳо: %4. - + Unknown error. Хатои номаълум. - + avcodec_alloc_frame() failed. avcodec_alloc_frame() қатъ шудааст. @@ -3632,18 +3643,18 @@ ResourceToSaveHandler - - + + ERROR: %1 ХАТОГӢ: %1 - + Resource saving error: Хатои захиракунии манбаъ: - + The referenced resource failed to download. Боргирии манбаъи ишорашуда қатъ карда шуд. @@ -3943,7 +3954,7 @@ Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Ягон барномаи берунӣ. Сатри %GDWORD% бо калимаи дархостшуда ҷойгузин мешавад. Агар чунин сатр вуҷуд надошта бошад, калима ба вуруди стандартӣ равона мешавад. diff -Nru goldendict-1.0.2~git20130620/locale/tk_TM.ts goldendict-1.5.0~ppa131019/locale/tk_TM.ts --- goldendict-1.0.2~git20130620/locale/tk_TM.ts 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/tk_TM.ts 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,4247 @@ + + + + + About + + + About + Hakynda + + + + GoldenDict dictionary lookup program, version + GoldenDict - sozlükleri açmak üçin programma, wersiýa + + + + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2011 Konstantin Isakow (ikm@goldendict.org) + + + (c) 2008-2011 Konstantin Isakov (ikm@goldendict.org) + (c) 2008-2011 Konstantin Isakow (ikm@goldendict.org) + + + + Licensed under GNU GPLv3 or later + GNU GPLv3 we ondan soňky çykan lisenziýasy boýunça + + + + Credits: + Hormatlar: + + + + [Unknown] + [Näbelli] + + + + Based on Qt %1 (%2, %3 bit) + Esaslanýar Qt %1 (%2, %3 bit) + + + + ArticleMaker + + + No translation for <b>%1</b> was found in group <b>%2</b>. + <b>%1</b> üçin <b>%2</b> toparynda hiç terjime tapylmady. + + + + No translation was found in group <b>%1</b>. + <b>%1</b> toparda hiç terjime tapylmady.. + + + + Welcome! + Hoş geldiňiz! + + + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2011 Konstantin Isakov. Licensed under GPLv3 or later. + <h3 align="center">Hoş geldiňiz! <b>GoldenDict</b>!</h3><p>Programany ulanyp başlamak üçin, ilki bilent <b>Redaktrile|Dictionaries menýusyna baryň</b> we şol ýerden sözlük faýllaryň ýerleşýän bukjalaryny görkeziň, Wikipedia ýa-da başga çeşmeleri saýlaň, sözlükleriň görkeziş tertibini sazlaň ýa-da sözlükleriň toparyny dörediň.<p>Şondan soň sözleriň terjimesini gözlemäge başlap bolýar! Ony şu penjiräniň sag tarapynda ýerleşýän meýdançadan edip bolýar ýa-da <a href="Ýüzüne çykýan penjire (popup) bilen işlemek">göni başga programmalaryň içinden hem edip bolýar</a>. <p>Programmany sazlamak üçin, serediň <b>Redaktirle|Saýlamalar menýusyna</b>. Şol ýerde ýerleşen ähli sazlamalaryň gysga düşündirişi bar, bir zat düşünmeseňiz olary okamagy unutmaň.<p>Eger goşmaça soragyňyz bar bolsa,maslahat gerek bolsa, pikiriňizi paýlaşmak isleseňiz ýa-da beýleki ulanyjylaryň pikirlerini bilmek isleseňiz <a href="http://goldendict.org/forum/">foruma giriň</a>.<p>Programmanyň <a href="http://goldendict.org/">websaýtyndan</a> täzelikleri bilip bilersiňiz. <p>(c) 2008-2011 Konstantin Isakow. GPLv3 ýa-da soňky çykan lisenziýasy boýunça. + + + + Expand article + Makalany giňelt + + + + Collapse article + Makalany kiçelt + + + + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. + <h3 align="center">Hoş geldiňiz! <b>GoldenDict</b></h3><p>Programany ulanyp başlamak üçin, ilki bilen <b>Redaktrile|Dictionaries menýusyna baryň</b> we şol ýerden sözlük faýllaryň ýerleşýän bukjalaryny görkeziň, Wikipedia ýa-da başga çeşmeleri saýlaň, sözlükleriň görkeziş tertibini goýuň ýa-da sözlükleriň toparyny dörediň.<p>Şondan soň sözleriň terjimesini gözlemäge başlap bolýar! Ony şu penjiräniň sag tarapynda ýerleşýän meýdançasyndan edip bolýar ýa-da <a href="Ýüzüne çykýan penjire (popup) bilen işlemek">göni başga programmalaryň içinden hem edip bolýar</a>. <p>Programmany sazlamak üçin, serediň <b>Redaktirle|Saýlamalar menýusyna</b>. Şol ýerde ýerleşen ähli sazlamalaryň gysga düşündirişi bar, bir zat düşünmeseňiz olary okamagy unutmaň.<p>Eger goşmaça soragyňyz bar bolsa,maslahat gerek bolsa, pikiriňizi paýlaşmak isleseňiz ýa-da beýleki ulanyjylaryň pikirlerini bilmek isleseňiz <a href="http://goldendict.org/forum/">foruma giriň</a>.<p>Programmanyň <a href="http://goldendict.org/">websaýtyndan</a> täzelikleri bilip bilersiňiz. <p>(c) 2008-2013 Konstantin Isakow. GPLv3 ýa-da soňky çykan lisenziýasy boýunça. + + + + Working with popup + Ýüzüne çykýan penjire (popup) bilen işlemek + + + + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. + <h3 align="center">Ýüze çykýan penjireler ( popup) bilen işlemegiň düzgünleri</h3>Başga programmalaryň içinden sözleri terjime etmek üçin, şuny açmak gerek: <i>"Skan popup"</i> in <b>Saýlamalar menýusynyň içinde ýerleşýär</b>, soň ony Popup nyşany açyp ýa-da aşakdaky panelden myşkanyň sag düwmesine basyp işe göýbermek bolýar. + + + + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. + Ondan soň, başga programmanyň içinde kursory gyzyklanýan sözüň üstüne getiriň - ýüze çykan penjirede onuň düşündirilişi görkeziler. + + + + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. + Ondan soň, başga programmanyň içinde gyzyklanýan sözüňiziň üstüne myşka bilen iki gezek basyň ýa-da bellik ediň,soň- ýüze çykan penjirede onuň düşündirilişi görkeziler. + + + + (untitled) + (atsyz) + + + + (picture) + (surat) + + + + ArticleRequest + + + Expand article + Makalany giňelt + + + + From + Sözlük + + + + Collapse article + Makalany kiçelt + + + + Query error: %1 + Sorag ýalňyşlygy: %1 + + + + Close words: + Ýakyn sözler: + + + + Compound expressions: + Goşma aňlatmalar: + + + + Individual words: + Aýry sözler: + + + + ArticleView + + + Form + Forma + + + + about:blank + barada: boş + + + + x + x + + + + Find: + Tap: + + + + &Previous + &Yza + + + + &Next + &Indiki + + + + Ctrl+G + Ctrl+G + + + + &Case Sensitive + &Uly-kiçi harplara duýgurlyk + + + + Highlight &all + Belle&hemmesini + + + + Resource + Çeşme + + + + Audio + Audio + + + + Definition: %1 + Kesgitleme: %1 + + + GoldenDict + GoldenDict + + + + Select Current Article + Şu makalany saýla + + + + Copy as text + Tekst görnüşinde kopiýa et + + + + Inspect + Gözden geçir + + + + TTS Voice + TTS sesi + + + + Picture + Surat + + + + Video + Wideo + + + + Video: %1 + Wideo: %1 + + + + Definition from dictionary "%1": %2 + Adalga şu sözlükden alyndy - "%1": %2 + + + + + The referenced resource doesn't exist. + Salgylanan çeşme ýok. + + + + The referenced audio program doesn't exist. + Salgylanan audio programa ýok. + + + + ERROR: %1 + ÝALŇYŞLYK: %1 + + + + &Open Link + &Linki aç + + + + Open Link in New &Tab + Linki täze aç &Tab-dan + + + + Open Link in &External Browser + Linki &Daşky Brauzerden aç + + + + Save &image... + Surady &ýatda sakla - ... + + + + Save s&ound... + Ýatda sakla s&esi - ... + + + + &Look up "%1" + &Tap "%1" + + + + Look up "%1" in &New Tab + Tap "%1" in &New Tab + + + + Send "%1" to input line + Iber "%1" girizme setire + + + + + &Add "%1" to history + &Goş "%1" geçmişe + + + + Look up "%1" in %2 + Tap "%1" in %2 + + + + Look up "%1" in %2 in &New Tab + Tap "%1" in %2 in &New Tab + + + + Save sound + Ýatda sakla sesini + + + + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) + Ses faýllary (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Ähli faýllar (*.*) + + + + Save image + Surady ýatda sakla + + + + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) + Surat faýllary (*.bmp *.jpg *.png *.tif);;All files (*.*) + + + + WARNING: FFmpeg Audio Player: %1 + DUÝDURYŞ: FFmpeg Audio Player: %1 + + + Wav + WAV-däl faýly oýnatmak + + + To enable playback of files different than WAV, please go to Edit|Preferences, choose the Audio tab and select "Play via DirectShow" there. + WAV-dan daşaryfaýllaryň oýnadylmagy üçin, Redaktirle|Saýlamalar baryň, Audio wkladkasyny saýlaň we şol ýerden DirectShow arkaly oýnatmagy saýlaň. + + + + Failed to run a player to play sound file: %1 + Şu ses faýly açmak üçin gerek bolan pleýeri işledip bolmady: %1 + + + + Failed to create temporary file. + Wagtlaýyn faýly döredip bolmady. + + + + Failed to auto-open resource file, try opening manually: %1. + Çeşme faýly awtomat açyp bolmady, özbaşdak açmaga synanşyň: %1. + + + + WARNING: %1 + ÄGÄ BOLUŇ %1 + + + + The referenced resource failed to download. + Salgylanýan çeşmäni ýükläp almak bolmady. + + + + BelarusianTranslit + + + Belarusian transliteration from latin to cyrillic (classic orthography) + Belarus transliterasiýa - latinden kirilisa (klassyk orfografiýa) + + + + Belarusian transliteration from latin to cyrillic (school orthography) + Belarus transliterasiýa - latinden kirillisa (mekdep orfografiýa) + + + + Belarusian transliteration (smoothes out the difference +between classic and school orthography in cyrillic) + Belarus transliterasiýa (klassyk we mekdep kirillisa orfografiýalary arasynda tapawutlaryny sazlaýar) + + + + DictGroupWidget + + + Form + Forma + + + + Group icon: + Toparyň nyşany: + + + + Shortcut: + Çalt açar: + + + + None + Hiç birisi + + + + From file... + Şu faýldan... + + + + Choose a file to use as group icon + Topar nyşany hökmünde ulanyljak faýly saýla + + + + Images + Suratlar + + + + All files + Ähli faýllar + + + + Error + Ýalňyş + + + + Can't read the specified image file. + Bellenen şekiliň faýlyny okap bolanok. + + + + DictGroupsWidget + + + + + + Dictionaries: + Sözlükler: + + + + Confirmation + Tassyklama + + + + Are you sure you want to generate a set of groups based on language pairs? + Çyndan hem toparlary dil jübütleriň esasynda gurmak isleýäýäňizmi? + + + + Unassigned + Bellenmedik + + + + Combine groups by source language to "%1->" + Toparlary çeşme dillere görä utgaşdyr - "%1->" + + + + Combine groups by target language to "->%1" + Toparlary terjime dillere görä utgaşdyr - "->%1" + + + + Make two-side translate group "%1-%2-%1" + Iki-taraplaýyn terjime topary ýasa - "%1-%2-%1" + + + + + Combine groups with "%1" + Utgaşdyr toparlary we "%1" + + + + DictInfo + + + Total articles: + Jemi makala sany: + + + + Translates from: + Terjime edýär şu dilden: + + + + Total words: + Jemi söz sany: + + + + Translates to: + Terjime edýär şu dile: + + + + Open folder + Aç bukjany + + + + Edit dictionary + Sözlügi üýtget + + + + Files comprising this dictionary: + Şu sözlügiň düzümine girýän faýlllar: + + + + Description: + Häsiýetnama: + + + + Edit the dictionary via command: +%1 + Sözlügi şu komanda bilen üýtget: +%1 + + + + DictListModel + + + %1 entries + %1 girizmeler + + + + DictionaryBar + + Dictionary Bar + Sözlük zolagy + + + + &Dictionary Bar + &Sözlük zolagy + + + + Extended menu with all dictionaries... + Ähli sözlükleri görkezýän giňeldilen menýu... + + + + Edit this group + Şu topary üýtget + + + + Dictionary info + Sözlük barada maglumat + + + + Open dictionary folder + Sözlügiň bukjasyny aç + + + + Edit dictionary + Sözlügi üýtget + + + + EditDictionaries + + + Dictionaries + Sözlükler + + + + &Sources + &Çeşmeler + + + + + &Dictionaries + &Sözlükler + + + + + &Groups + &Toparlar + + + + Sources changed + Çeşmeler üýtgedildi + + + + Some sources were changed. Would you like to accept the changes? + Käbir çeşmeler üýtgedildi. Üýtgeşmeleri kabul etmek isleýäňmi? + + + + Accept + Kabul et + + + + Cancel + Yza Gaýtar + + + + ExternalViewer + + + the viewer program name is empty + Görmek üçin programanyň ady boş + + + + Forvo::ForvoArticleRequest + + + XML parse error: %1 at %2,%3 + XML analizinde ýalňyşlyk: %1 at %2,%3 + + + + Added %1 + Goşuldy %1 + + + + by + - + + + + Male + Erkek + + + + Female + Aýal + + + + from + kimden + + + + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. + Redkatirle|Dictionaries|Çeşmeler|Forvo açyň we öz API açaryňyzy soraň, şeýlelikde bu ýalňyşlyk ýok bolar. + + + + GermanTranslit + + + German Transliteration + Nemes transliterasiýa + + + + GreekTranslit + + + Greek Transliteration + Grek transliterasiýa + + + + GroupComboBox + + + Choose a Group (Alt+G) + Topary saýla (Alt+G) + + + + GroupSelectorWidget + + + Form + Forma + + + + Look in + Seret + + + + Groups + + + Dictionaries available: + Elýeterli sözlükler: + + + + Add selected dictionaries to group (Ins) + Saýlanan sözlükleri topara goş (Ins) + + + + > + > + + + + Ins + Ins + + + + Remove selected dictionaries from group (Del) + Saýlanan sözlükleri topardan aýyr (Del) + + + + < + < + + + + Del + Del + + + + Groups: + Toparlar: + + + + Tab 2 + Tab 2 + + + + Create new dictionary group + Täze sözlük toparyny döret + + + + &Add group + &Topary goş + + + + Create language-based groups + Dil esasynda toparlary döret + + + + Auto groups + Awto toparlar + + + + Rename current dictionary group + Häzirki sözlük toparynyň adyny üýtget + + + + Re&name group + Toparyň adyny&üýtget + + + + Remove current dictionary group + Häzirki sözlük toparyny aýyr + + + + &Remove group + &Topary aýyr + + + + Remove all dictionary groups + Ähli sözlük toparlaryny aýyr + + + + + Remove all groups + Ähli toparlary aýyr + + + + Drag&drop dictionaries to and from the groups, move them inside the groups, reorder the groups using your mouse. + Süýre&taşla sözlükleri toparyň içine ýa-da daşyna, myşkanyň kömegi bilen toparyň içinde ýerlerini ýa-da tertibini üýtget. + + + + Add group + Topary goş + + + + Give a name for the new group: + Täze topara at ber: + + + + Rename group + Toparyň adyny üýtget + + + + Give a new name for the group: + Topara täze adyny ber: + + + + Remove group + Topary aýyr + + + + Are you sure you want to remove the group <b>%1</b>? + <b>%1</b>? topary çyndan hem aýyrmak isleýäňmi? + + + + Are you sure you want to remove all the groups? + Siz çyndanam ähli toparlary aýyrmak isleýärsiňizmi? + + + + HistoryPaneWidget + + + &Delete Selected + &Saýlananlary ýok et + + + + Copy Selected + Saýlananlary kopiýa et + + + + History: + Geçmiş: + + + + %1/%2 + %1/%2 + + + + History size: %1 entries out of maximum %2 + Geçmişde görkeziljek terjimeleriň göwrümi: %1 girizmeler maksimum %2 + + + + Hunspell + + + Spelling suggestions: + Dürs ýazuw kadalary hödürlemek: + + + + %1 Morphology + %1 Morfologiýa + + + + HunspellDictsModel + + + Enabled + Işledilen + + + + Name + Ady + + + + Initializing + + + GoldenDict - Initializing + GoldenDict - başlangyç + + + + + Please wait while indexing dictionary + Sözlükler indeksirlenýär, garaşyň + + + + Dictionary Name + Sözlügiň ady + + + + Please wait... + Haýyş garaşyň... + + + + Language + + + Afar + Afar + + + + Abkhazian + Abhaz + + + + Avestan + Awest + + + + Afrikaans + Afrikaans + + + + Akan + Akan + + + + Amharic + Amhar + + + + Aragonese + Aragon + + + + Arabic + Arap + + + + Assamese + Assamen + + + + Avaric + Awar + + + + Aymara + Aýmar + + + + Azerbaijani + Azerbeýjan + + + + Bashkir + Başkir + + + + Belarusian + Belarus + + + + Bulgarian + Bolgar + + + + Bihari + Bengal + + + + Bislama + Bihari + + + + Bambara + Bambara + + + + Bengali + Bengal + + + + Tibetan + Tibet + + + + Breton + Breton + + + + Bosnian + Boşnýak + + + + Catalan + Katalon + + + + Chechen + Çeçen + + + + Chamorro + Çamoro + + + + Corsican + Korsika + + + + Cree + Kri + + + + Czech + Çeh + + + + Church Slavic + Gadymy slawýan + + + + Chuvash + Çuvaş + + + + Welsh + Welş + + + + Danish + Daniýa + + + + German + Nemes + + + + Divehi + Diweli + + + + Dzongkha + Jonka + + + + Ewe + Ewe + + + + Greek + Grek + + + + English + Iňlis + + + + Esperanto + Esperanto + + + + Spanish + Ispan + + + + Estonian + Eston + + + + Basque + Bask + + + + Persian + Pars (Parsça) + + + + Fulah + Fula + + + + Finnish + Fin + + + + Fijian + Fijian + + + + Faroese + Friz + + + + French + Fransuz + + + + Western Frisian + Günbatar Friz + + + + Irish + Irland + + + + Scottish Gaelic + Şotland gall + + + + Galician + Galisiýa + + + + Guarani + Guarani + + + + Gujarati + Gujarat + + + + Manx + Manks + + + + Hausa + Hauza + + + + Hebrew + Yewreý + + + + Hindi + Hindi + + + + Hiri Motu + Hindi + + + + Croatian + Horwat + + + + Haitian + Gaiti + + + + Hungarian + Wenger + + + + Armenian + Ermeni + + + + Herero + Herero + + + + Interlingua + Interlingwa + + + + Indonesian + Endoneziýa + + + + Interlingue + Interlingwe + + + + Igbo + Irland + + + + Sichuan Yi + Syçuan Ýi + + + + Inupiaq + Inupak + + + + Ido + Ido + + + + Icelandic + Island + + + + Italian + italiyan + + + + Inuktitut + Inuktikut + + + + Japanese + Ýapon + + + + Javanese + Ýawa + + + + Georgian + Gruzin + + + + Kongo + Kongo + + + + Kikuyu + Kikuýu + + + + Kwanyama + Kwanýama + + + + Kazakh + Gazak + + + + Kalaallisut + Kalaallisut + + + + Khmer + Khmer + + + + Kannada + Kannada + + + + Korean + Koreý + + + + Kanuri + Kanuri + + + + Kashmiri + Kaşmir + + + + Kurdish + Kürt + + + + Komi + Komi + + + + Cornish + Korniş + + + + Kirghiz + Gyrgyz + + + + Latin + Latyn + + + + Luxembourgish + Lýuksemburg + + + + Ganda + Ganda + + + + Limburgish + Limburg + + + + Lingala + Lingala + + + + Lao + Lao + + + + Lithuanian + Litwanýa + + + + Luba-Katanga + Luba-katanga + + + + Latvian + Latyş + + + + Malagasy + Malagazi + + + + Marshallese + Marşal + + + + Maori + Maori + + + + Macedonian + Makedon + + + + Malayalam + Malaý + + + + Mongolian + Mongol + + + + Marathi + Marati + + + + Malay + Malaý + + + + Maltese + Malta + + + + Burmese + Birma + + + + Nauru + Nauru + + + + Norwegian Bokmal + Norwegiýa bokmal + + + + North Ndebele + Demirgazyk Ndbele + + + + Nepali + Nepal + + + + Ndonga + Ndonga + + + + Dutch + Golland + + + + Norwegian Nynorsk + Norwegiýa Ninorsk + + + + Norwegian + Norweg + + + + South Ndebele + Günorta Ndbele + + + + Navajo + Nawaho + + + + Chichewa + Çiçewa + + + + Occitan + Okkitan + + + + Ojibwa + Ojibwe + + + + Oromo + Oromo + + + + Oriya + Oriwa + + + + Ossetian + Osetin + + + + Panjabi + Panjabi + + + + Pali + Pali + + + + Polish + Polýak + + + + Pashto + Puştu + + + + Portuguese + Portugal + + + + Quechua + Keçua + + + + Raeto-Romance + Rito-Roman + + + + Kirundi + Kirundu + + + + Romanian + Rumyn + + + + Russian + Rus + + + + Kinyarwanda + Kinýarwanda + + + + Sanskrit + Sanskrit + + + + Sardinian + Sardin + + + + Sindhi + Sindhi + + + + Northern Sami + Demirgazyk Sami + + + + Sango + Sango + + + + Serbo-Croatian + Singala + + + + Sinhala + Sinhala + + + + Slovak + Slowak + + + + Slovenian + Slowen + + + + Samoan + Samoa + + + + Shona + Şona + + + + Somali + Somali + + + + Albanian + Alban + + + + Serbian + Serb + + + + Swati + Swati + + + + Southern Sotho + Günorta Soto + + + + Sundanese + Sundan + + + + Swedish + Şwed + + + + Swahili + Swahili + + + + Tamil + Tamil + + + + Telugu + Telügü + + + + Tajik + Täjik + + + + Thai + tayland + + + + Tigrinya + Tigrinýa + + + + Turkmen + Türkmen + + + + Tagalog + Tagalog + + + + Tswana + Tswana + + + + Tonga + Tonga + + + + Turkish + Türki + + + + Tsonga + Tsonga + + + + Tatar + Tatar + + + + Twi + Twi + + + + Tahitian + Taiti + + + + Uighur + Uýgur + + + + Ukrainian + Ukrain + + + + Urdu + Urdu + + + + Uzbek + Özbek + + + + Venda + Wenda + + + + Vietnamese + Vetnam + + + + Volapuk + Wolapuk + + + + Walloon + Walon + + + + Wolof + Wolof + + + + Xhosa + Kosa + + + + Yiddish + Idiş + + + + Yoruba + Ýoruba + + + + Zhuang + Žuang + + + + Chinese + Hytay + + + + Zulu + Zulus + + + + Lojban + Ložban + + + + Traditional Chinese + Adaty Hytaý + + + + Simplified Chinese + Ýönekeýleşdirlen Hytaý + + + + Other + Başgalar + + + + Other Simplified Chinese dialects + Başga ýönekeýleşdirlen Hytaý şiweleri + + + + Other Traditional Chinese dialects + Başga adaty Hytaý şiweleri + + + + Other Eastern-European languages + Başga Gündogar-Ýewropa dilleri + + + + Other Western-European languages + Başga Günbatar-Ýewropa dilleri + + + + Other Russian languages + Başga rus dilleri + + + + Other Japanese languages + Başga ýapon dilleri + + + + Other Baltic languages + Başga baltik dilleri + + + + Other Greek languages + Başga grek dilleri + + + + Other Korean dialects + Başga koreýa dilleri + + + + Other Turkish dialects + Başga türki dilleri + + + + Other Thai dialects + Başga tailand dilleri + + + + Tamazight + Tamazigt + + + + LoadDictionaries + + + Error loading dictionaries + Sözlük ýüklenende ýalňyşlyk çykdy + + + + Main + + + Error in configuration file. Continue with default settings? + Konfigurasiýa faýlynda ýalňyşlyk bar. Başlangyç sazlamalar bilen dowam etjekmi? + + + + MainWindow + + GoldenDict + GoldenDict + + + + + Welcome! + Hoş geldiňiz! + + + + &File + &Faýl + + + + &Edit + &Redaktirle + + + + &Help + &Kömek + + + + &View + &Görnüş + + + + &Zoom + &Ulalt + + + + H&istory + &Geçmiş + + + Search Pane + Gözleg tagtasy + + + Results Navigation Pane + Gözleg tagtasyndaky netijeler + + + &Dictionaries... F3 + &Sözlükler... F3 + + + + &Search Pane + &Gözleg tagtasy + + + + &Results Navigation Pane + &Nawigasiýa tagtasyndan netijeler + + + + &History Pane + &Geçmiş tagtasy + + + + &Dictionaries... + &Sözlükler... + + + + F3 + F3 + + + + &Preferences... + &Saýlamalar... + + + + F4 + F4 + + + + &Homepage + &Baş sahypa + + + + &About + &Maglumat + + + + About GoldenDict + GoldenDict barada + + + + F1 + F1 + + + + + &Quit + &Çyk + + + + Quit from application + Programadan çyk + + + + Ctrl+Q + Ctrl+Q + + + + &Forum + &Forum + + + + &Close To Tray + &Panel içine buk + + + + Minimizes the window to tray + Penjireleri paneliň içinde gizlemek + + + + Ctrl+F4 + Ctrl+F4 + + + + &Save Article + &Makalany ýatda sakla + + + + Save Article + Ýatda sakla + + + + F2 + F2 + + + + &Print + &Çap et + + + + Ctrl+P + Ctrl+P + + + + Page Set&up + Sahypany &sazla + + + + Print Pre&view + Çap edilen &görnüşi + + + + &Rescan Files + &Faýllary täzeden gözden geçirmek + + + + &New Tab + &Täze wkladka + + + + + &Show + &Görkez + + + + Ctrl+H + Ctrl+H + + + + &Export + &Eksport + + + + &Import + &Import + + + + &Always on Top + &Mydama ýokarda + + + + Always on Top + Mydama ýokarda + + + + Ctrl+O + Ctrl+O + + + + + + Menu Button + Menýu düwmesi + + + Print Preview + Çap edilen görnüşi + + + Rescan Files + Faýllary täzeden skanerlemek + + + + Ctrl+F5 + Ctrl+F5 + + + + &Clear + &Arassala + + + + New Tab + Täze wkladka + + + + Ctrl+T + Ctrl+T + + + + &Configuration Folder + &Konfigurasiýa bukjasy + + + Show Names in Dictionary Bar + Sözlük tagtasynda atlary görkez + + + Show Small Icons in Toolbars + Gurallar zolagynda nyşanlary kiçi et + + + + &Menubar + &Menýu zolagy + + + + + Look up in: + Tap şu ýerde: + + + + Found in Dictionaries: + Sözlüklerden tapylan: + + + Navigation + Nawigasiýa + + + + Back + Yza gaýt + + + + Forward + Ugrukdyr + + + + Scan Popup + Skan popup + + + + Pronounce Word (Alt+S) + Sözi eşitdirmek (Alt+S) + + + + Zoom In + Ulalt + + + + Zoom Out + Kiçelt + + + + Normal Size + Normal ululygy + + + + Words Zoom In + Sözleri ulalt + + + + Words Zoom Out + Sözleri kiçelt + + + + Words Normal Size + Sözleriň normal ululygy + + + + Show &Main Window + Görkez &Esasy penjiräni + + + + Close current tab + Şu wagtky wkladkany ýap + + + + Close all tabs + Ähli açyk wkladkalary ýap + + + + Close all tabs except current + Şu wagtky açylandan daşary ähli başga wkladkalary ýap + + + + Loading... + Ýüklenip alynýar... + + + + + Accessibility API is not enabled + API elýeterli edilmedik + + + + %1 dictionaries, %2 articles, %3 words + %1 sözlükler, %2 makalalar, %3 sözler + + + + Look up: + Tap: + + + + All + Ählisi + + + + Saving article... + Makala ýatda saklanýar... + + + + The main window is set to be always on top. + Baş penjire mydama ýokarda durar ýaly edilen. + + + + &Hide + &Gizle + + + + Export history to file + Geçmişi faýl görnüşinde eksport et + + + + + Text files (*.txt);;All files (*.*) + Tekst faýllary (*.txt);;Ähli faýllar (*.*) + + + + History export complete + Geşmiş eksport edildi + + + + Export error: + Eksport ýalnyşlygy: + + + + Import history from file + Faýldan geçmişi import et + + + + Import error: invalid data in file + Import ýalňyşlygy: faýlda nädogry maglumatlar bar + + + + History import complete + Geçmiş import edildi + + + + Import error: + Import ýalňyşlygy: + + + + Dictionary info + Sözlük barada maglumat + + + + Open dictionary folder + Sözlügiň bukjasyny aç + + + + Edit dictionary + Sözlügi üýtget + + + + Opened tabs + Açyk wkladkalar + + + + Show Names in Dictionary &Bar + Sözlük &tagtasynda atlary görkez + + + + Show Small Icons in &Toolbars + Kiçi nyşanlary görkez &gurallar-tagtasynda + + + + &Navigation + &Nawigasiýa + + + + Open Tabs List + Açyk wkladkalaryň sanawy + + + + (untitled) + (atsyz) + + + + %1 - %2 + %1 - %2 + + + WARNING: %1 + ÄGÄ BOLUŇ %1 + + + + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. + + + + New Release Available + Täze neşir elýeterli + + + + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. + + + + Download + Ýükläp almak + + + + Skip This Release + Şu neşiri böküp geç + + + + You have chosen to hide a menubar. Use %1 to show it back. + Siz menýu zolagyny gizlemägi saýladyňyz. %1 ulanyp ýenede çykaryp görkez. + + + + Ctrl+M + Ctrl+M + + + + Page Setup + Sahypany sazlamak + + + + No printer is available. Please install one first. + Printer ýok. Ilki bilen gurna ony. + + + + Print Article + Makalany çap et + + + + Article, Complete (*.html) + Makala, taýýar (*.html) + + + + Article, HTML Only (*.html) + Makala, HTML diňe (*.html) + + + + Save Article As + Makalany şular ýaly ýatda sakla + + + Html files (*.html *.htm) + Html faýllar (*.html *.htm) + + + + Error + Ýalňyş + + + + Can't save article: %1 + Makalany ýatda saklap bolmady %1 + + + + Mdx::MdxArticleRequest + + + Dictionary file was tampered or corrupted + Sözlük faýly bozuldy ýa-da zaýa boldy + + + + Failed loading article from %1, reason: %2 + %1-den/dan makalany ýükläp bolmady, sebäbi: %2 + + + + MediaWiki::MediaWikiArticleRequest + + + XML parse error: %1 at %2,%3 + XML analizinde ýalňyşlyk: %1 at %2,%3 + + + + MediaWiki::MediaWikiWordSearchRequest + + + XML parse error: %1 at %2,%3 + XML analizinde ýalňyşlyk: %1 at %2,%3 + + + + MediaWikisModel + + + Enabled + Işledilen + + + + Name + Ady + + + + Address + Adres + + + + Icon + Nyşan + + + + OrderAndProps + + + Form + Forma + + + + Dictionary order: + Sözlügiň tertibi: + + + + + + + ... + ... + + + + Inactive (disabled) dictionaries: + Işjeň däl (öçürilen) sözlükler: + + + + Dictionary information + Sözlük barada maglumat + + + + Name: + Ady: + + + + Total articles: + Jemi makala sany: + + + + Total words: + Jemi söz sany: + + + + Translates from: + Terjime edýär şu dilden: + + + + Translates to: + Terjime edýär şu dile: + + + + Description: + Häsiýetnama: + + + + Files comprising this dictionary: + Şu sözlügiň düzümine girýän faýlllar: + + + + Adjust the order by dragging and dropping items in it. Drop dictionaries to the inactive group to disable their use. + Içine zatlary süýräp we taşlap tertibini üýtgedip bolýar. Sözlükleri öçürmek üçin, olary aktiw däl toparyna taşlamaly. + + + + Sort by name + Ady boýunça sortla + + + + Sort by languages + Dili boýunça sorla + + + + PathsModel + + + Path + Ýol + + + + Recursive + Rekursiw + + + + Preferences + + + Preferences + Saýlamalar + + + + &Interface + &Interfeýs + + + + Tabbed browsing + Wkladkaly agdaryp seretmek + + + + Normally, opening a new tab switches to it immediately. +With this on however, new tabs will be opened without +switching to them. + Normally, opening a new tab switches to it immediately. +With this on however, new tabs will be opened without +switching to them. + + + + Open new tabs in background + Yzynda täze wkladkalary aç + + + + With this on, new tabs are opened just after the +current, active one. Otherwise they are added to +be the last ones. + With this on, new tabs are opened just after the +current, active one. Otherwise they are added to +be the last ones. + + + + Open new tabs after the current one + Täze wkladkalary şu wagtky wkladkadan soň aç + + + + Select this option if you don't want to see the main tab bar when only a single tab is opened. + Select this option if you don't want to see the main tab bar when only a single tab is opened. + + + + Hide single tab + Ýeke wkladkany gizle + + + + When enabled, an icon appears in the sytem tray area which can be used +to open main window and perform other tasks. + When enabled, an icon appears in the sytem tray area which can be used +to open main window and perform other tasks. + + + + Enable system tray icon + Sistema paneli nyşany görkez + + + + With this on, the application starts directly to system tray without showing +its main window. + With this on, the application starts directly to system tray without showing +its main window. + + + + Start to system tray + Sistema panelinden başlat + + + + With this on, an attempt to close main window would hide it instead of closing +the application. + With this on, an attempt to close main window would hide it instead of closing +the application. + + + + Close to system tray + Sistema panelinden ýap + + + + Startup + Başlangyç + + + + Automatically starts GoldenDict after operation system bootup. + Operasion ulgam açylandan soň, GoldenDict öz işini awtomat başlar. + + + + Start with system + Sistema bilen bile b + + + + Interface language: + Interfeýs dili: + + + + Display style: + Görkeziş usuly: + + + + Double-click translates the word clicked + Sözüň üstünde iki gezek basylanda ol terjime edilýär + + + + Add-on style: + Add-on stili: + + + + Normally, pressing ESC key moves focus to the translation line. +With this on however, it will hide the main window. + Normally, pressing ESC key moves focus to the translation line. +With this on however, it will hide the main window. + + + + ESC key hides main window + ESC düwmesini basmak bilen baş penjire ýapylýar + + + + Turn this option on if you want to select words by single mouse click + Şuny aç eger-de sözleri bir gezek myşka bilen basyp saýlamak isleseň + + + + Select word by single click + Sözleri bir gezek myşka bilen basyp saýlamak + + + + Ctrl-Tab navigates tabs in MRU order + Ctrl-Tab arkaly wkladkalary MRU tertipde nawigasiýa edilýär + + + + Adjust this value to avoid huge context menus. + Şu bahany sazlap juda uly kontekst menýularyň öňüni almak mümkin. + + + + Context menu dictionaries limit: + Kontekst menýu sözlükleriň çägi: + + + + &Scan Popup + &Skan popup + + + + When enabled, a translation popup window would be shown each time +you point your mouse on any word on the screen (Windows) or select +any word with mouse (Linux). When enabled, you can switch it on and +off from main window or tray icon. + When enabled, a translation popup window would be shown each time +you point your mouse on any word on the screen (Windows) or select +any word with mouse (Linux). When enabled, you can switch it on and +off from main window or tray icon. + + + + Enable scan popup functionality + Skan ýüze çykarmagyna rugsat ber + + + + Chooses whether the scan popup mode is on by default or not. If checked, +the program would always start with the scan popup active. + Chooses whether the scan popup mode is on by default or not. If checked, +the program would always start with the scan popup active. + + + + Start with scan popup turned on + Skan ýüze çykarmany işledip başlat + + + + With this enabled, the popup would only show up if all chosen keys are +in the pressed state when the word selection changes. + With this enabled, the popup would only show up if all chosen keys are +in the pressed state when the word selection changes. + + + + Only show popup when all selected keys are kept pressed: + Ýüze çykarmagy (popup) görkez diňe ähli saýlanan düwmler basylyp saklananda: + + + + Left Ctrl only + Çep Ctrl diňe + + + + Left Ctrl + Çep Ctrl + + + + Right Shift only + Sag Shift diňe + + + + Right Shift + Sag Shift + + + + Alt key + Alt düwmesi + + + + Alt + Alt + + + + Ctrl key + Ctrl düwmesi + + + + Ctrl + Ctrl + + + + Left Alt only + Çep Alt diňe + + + + Left Alt + Çep Alt + + + + Shift key + Shift düwmesi + + + + Shift + Shift + + + + Right Alt only + Sag Alt diňe + + + + Right Alt + Sag Alt + + + + Right Ctrl only + Sag Alt diňe + + + + Right Ctrl + Sag Alt + + + + Left Shift only + Çep Shift diňe + + + + Left Shift + Çep Shift + + + + Windows key or Meta key + Windows düwme ýa-da Meta düwme + + + + Win/Meta + Win/Meta + + + + Normally, in order to activate a popup you have to +maintain the chosen keys pressed while you select +a word. With this enabled, the chosen keys may also +be pressed shortly after the selection is done. + Normally, in order to activate a popup you have to +maintain the chosen keys pressed while you select +a word. With this enabled, the chosen keys may also +be pressed shortly after the selection is done. + + + + Keys may also be pressed afterwards, within + Düwmeleri soň hem basmak bolýar, şu çäklerde + + + + To avoid false positives, the keys are only monitored +after the selection's done for a limited amount of +seconds, which is specified here. + To avoid false positives, the keys are only monitored +after the selection's done for a limited amount of +seconds, which is specified here. + + + + secs + sekunt + + + + Send translated word to main window instead of to show it in popup window + Terjime edilen sözleri ýüze çykýan penjireden görkezmän olary baş penjirä iber + + + + Send translated word to main window + Terjime edilen sözleri baş penjirä iber + + + + Hotkeys + Gyzgyn düwmeler + + + + Use the following hotkey to show or hide the main window: + Baş penjiräni görkezmek ýa-da gizlemek üçin şeýle düwmeleri ulan: + + + + Use the following hotkey to translate a word from clipboard: + Buferde saklanan sözi terjime etmek üçin şeýle düwmeleri ulan: + + + + The hotkeys are global and work from any program and within any context as long as GoldenDict is running in background. + Bu gyzgyn düwmeler globaldyr we GoldenDict açyk duran wagty islendik başga programmada hem ýerlerde işleýärler. + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Note: You appear to be running an X.Org XServer release which has the RECORD extension broken. Hotkeys in GoldenDict will probably not work. This must be fixed in the server itself. Please refer to the following </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">bug entry</span></a><span style=" color:#ff0000;"> and leave a comment there if you like.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Note: You appear to be running an X.Org XServer release which has the RECORD extension broken. Hotkeys in GoldenDict will probably not work. This must be fixed in the server itself. Please refer to the following </span><a href="https://bugs.freedesktop.org/show_bug.cgi?id=20500"><span style=" text-decoration: underline; color:#0000ff;">bug entry</span></a><span style=" color:#ff0000;"> and leave a comment there if you like.</span></p></body></html> + + + + &Audio + &Audio + + + + Pronunciation + Aýdyş + + + + Auto-pronounce words in main window + Baş penjirede sözleriň awto-aýdylyşy + + + + Auto-pronounce words in scan popup + Skan popup-dan sözleriň awto-aýdylyşy + + + + Playback + Oýnatmak + + + + Play audio files via FFmpeg(libav) and libao + Audio faýllary FFmpeg(libav) we libao arkaly oýnat + + + + Use internal player + Içerki pleýeri ulan + + + + History + Geçmiş + + + + Turn this option on to store history of the translated words + Şuny aç eger-de geçmişde terjime edilen sözleri ýatda saklajak bolsaň + + + + Store &history + Saklanma &geçmiş + + + + Specify the maximum number of entries to keep in history. + Geçmişde iň köp saklanjak girizmeleriň sany. + + + + Maximum history size: + Geçmişiň maksimum sany: + + + + History saving interval. If set to 0 history will be saved only during exit. + Geçmişi ýatda saklanmagyň döwri. Eger 0 goýulsa, geçmiş diňe çykan wagty ýatda saklanar. + + + + Save every + Ýatda sakla her + + + + minutes + minut + + + + Articles + makalalar + + + + Turn this option on to always expand optional parts of articles + Makalalaryň goşmaça ýerlerini giňeldip görkezmek üçin şuny saýlaň + + + + Expand optional &parts + Goşmaça &ýerlerini giňeldip görkez + + + + Select this option to automatic collapse big articles + Uly makalalaryň awtomat kiçi edilip görkezilmegi üçin şuny saýlaň + + + + Collapse articles more than + Makalalary kiçelt şundan köp - + + + + Articles longer than this size will be collapsed + Şundan uly bolan makalalar kiçi edilip görkeziljek + + + + symbols + nyşanlar + + + Use Windows native playback API. Limited to .wav files only, +but works very well. + Use Windows native playback API. Limited to .wav files only, +but works very well. + + + Play via Windows native API + Windows öz API arkaly oýnatmak + + + Play audio via Phonon framework. May be somewhat unstable, +but should support most audio file formats. + Play audio via Phonon framework. May be somewhat unstable, +but should support most audio file formats. + + + Play via Phonon + Phonon arkaly oýnatmak + + + + Use any external program to play audio files + Audio faýllary oýnatmak üçin islendik özge programmany ulan + + + + Use external program: + Daşky programmany ulan: + + + + &Network + &Baglanyşyk ulgamy + + + + Enable if you wish to use a proxy server +for all program's network requests. + Enable if you wish to use a proxy server +for all program's network requests. + + + + Use proxy server + Proksi serweri ulan + + + + Type: + Tip: + + + + Host: + Öy eyesi: + + + + Port: + Port: + + + + User: + Ulanyjy: + + + + Password: + Parol: + + + + Enabling this would make GoldenDict block most advertisements +by disallowing content (images, frames) not originating from the site +you are browsing. If some site breaks because of this, try disabling this. + Enabling this would make GoldenDict block most advertisements +by disallowing content (images, frames) not originating from the site +you are browsing. If some site breaks because of this, try disabling this. + + + + Disallow loading content from other sites (hides most advertisements) + Özge saýtlardan zat ýüklemegi gadagan et (köp sanly reklama/mahabt gizlemgegini üpjün edýär) + + + + Enabling this would allow to listen to sound pronunciations from +online dictionaries that rely on Flash or other web plugins. +Plugin must be installed for this option to work. + Enabling this would allow to listen to sound pronunciations from +online dictionaries that rely on Flash or other web plugins. +Plugin must be installed for this option to work. + + + + Enable web plugins + Web plugin-leri işlet + + + + Some sites detect GoldenDict via HTTP headers and block the requests. +Enable this option to workaround the problem. + Käbir websaýtlar GoldenDict programmany HTTP ady arkaly görýärler we olara ýüz tutmaga rugsat berenoklar. +Şeýle meseläni çözmek üçin, şuny işlediň. + + + + Do not identify GoldenDict in HTTP headers + GoldenDict HTTP ady arkaly görkezme + + + + When this is enabled, the program periodically +checks if a new, updated version of GoldenDict +is available for download. If it is so, the program +informs the user about it and prompts to open a +download page. + When this is enabled, the program periodically +checks if a new, updated version of GoldenDict +is available for download. If it is so, the program +informs the user about it and prompts to open a +download page. + + + + Check for new program releases periodically + Programmanyň täze neşirlerini wagtal-wagtal barlap dur + + + + Ad&vanced + Has &çylşyrymly + + + + ScanPopup extra technologies + SkanPopup goşmaça tehnologiýalary + + + + Try to use IAccessibleEx technology to retrieve word under cursor. +This technology works only with some programs that support it + (for example Internet Explorer 9). +It is not needed to select this option if you don't use such programs. + Try to use IAccessibleEx technology to retrieve word under cursor. +This technology works only with some programs that support it + (for example Internet Explorer 9). +It is not needed to select this option if you don't use such programs. + + + + Use &IAccessibleEx + Ulan &IAccessibleEx + + + + Try to use UI Automation technology to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Try to use UI Automation technology to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + + + + Use &UIAutomation + Ulan &UIAutomation + + + + Try to use special GoldenDict message to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + Try to use special GoldenDict message to retrieve word under cursor. +This technology works only with some programs that support it. +It is not needed to select this option if you don't use such programs. + + + + Use &GoldenDict message + Ulan &GoldenDict habarlary + + + + System default + Sistemanyň başlangyç bahalary + + + + Default + Ilkibaşky ýagdaýy + + + + Modern + Häzirki zaman + + + + Lingvo + Lingvo + + + + Babylon + Babylon + + + + Lingoes + Lingoes + + + + Lingoes-Blue + Lingoes-Blue + + + Play via DirectShow + DirectShow arkaly oýnatmak + + + + Changing Language + Dili çalşmak + + + + Restart the program to apply the language change. + Diliň çalşmagyny işe girizmek üçin programmany täzeden işlet. + + + + ProgramTypeEditor + + + Audio + Audio + + + + Plain Text + Düz tekst + + + + Html + Html + + + + Prefix Match + Prefiks gabat getirme + + + + Unknown + Näbelli + + + + Programs::RunInstance + + + No program name was given. + Hiç programma ady berilmedi. + + + + The program has crashed. + Programma doňdy. + + + + The program has returned exit code %1. + Programma %1 çykyş koduny çykardy. + + + + ProgramsModel + + + Enabled + Işledilen + + + + Type + Tip + + + + Name + Ady + + + + Command Line + Komanda setiri + + + + Icon + Nyşan + + + + QObject + + + Article loading error + Makala ýüklenende ýalňyşlyk ýüze çykdy + + + + Article decoding error + Makala dekodirlenen wagty ýalňyşlyk ýüze çykdy + + + + avformat_alloc_context() failed. + avformat_alloc_context() bolmady. + + + + av_malloc() failed. + av_malloc() bolmady. + + + + avio_alloc_context() failed. + avio_alloc_context() bolmady. + + + + avformat_open_input() failed: %1. + avformat_open_input() bomady: %1. + + + + avformat_find_stream_info() failed: %1. + avformat_find_stream_info() bolmady: %1. + + + + Could not find audio stream. + Audio akymy tapylmady. + + + + Codec [id: %1] not found. + Kodek [id: %1] tapylmady. + + + + avcodec_open2() failed: %1. + avcodec_open2() tapylmady: %1. + + + + Cannot find usable audio output device. + Ulanyp boljak audio çykaryjy enjam tapylanok. + + + + Unsupported sample format. + Nusga format näbelli. + + + + ao_open_live() failed: + ao_open_live() bolmady: + + + + No driver. + Draýwer ýok. + + + + This driver is not a live output device. + Bu draýwer janly çukaryş enjam däl. + + + + A valid option key has an invalid value. + Dogry sazlama açaryň bahasy nädogry. + + + + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. + Şu enjamy açyp bolanok: %1, kanallar: %2, reýt: %3, bit: %4. + + + + Unknown error. + Näbelli ýalňyşlyk. + + + + avcodec_alloc_frame() failed. + avcodec_alloc_frame() bolmady. + + + + QuickFilterLine + + + Dictionary search/filter (Ctrl+F) + Sözlük gözlegi/filtri (Ctrl+F) + + + + Quick Search + Tiz gözleg + + + + Clear Search + Gözlegi arassala + + + + ResourceToSaveHandler + + + + ERROR: %1 + ÝALŇYŞLYK: %1 + + + + Resource saving error: + Çeşmäni ýatda saklamagyň ýalňyşlygy: + + + + The referenced resource failed to download. + Salgylanýan çeşmäni ýükläp almak bolmady. + + + + Romaji + + + Hepburn Romaji for Hiragana + Hiragana üçin Hepburn Romaji + + + + Hepburn Romaji for Katakana + Katakana üçin Hepburn Romaji + + + + RussianTranslit + + + Russian Transliteration + Rus transliterasiýa + + + + ScanPopup + + + Dialog + Dialog + + + word + söz + + + List Matches (Alt+M) + Gabat gelýänleriň sanawy (Alt+M) + + + + + + + + ... + ... + + + Alt+M + Alt+M + + + + Back + Yza gaýt + + + + Forward + Öňe geç + + + + Pronounce Word (Alt+S) + Sözi eşitdirmek (Alt+S) + + + + Alt+S + Alt+S + + + + Send word to main window (Alt+W) + Sözi baş penjirä iber (Alt+W) + + + + Alt+W + Alt+W + + + + Shows or hides the dictionary bar + Sözlük zolagy görkezýär ýa-da gizleýär + + + + Use this to pin down the window so it would stay on screen, +could be resized or managed in other ways. + Use this to pin down the window so it would stay on screen, +could be resized or managed in other ways. + + + + + %1 - %2 + %1 - %2 + + + + SoundDirsModel + + + Path + Ýol + + + + Name + Ady + + + + Icon + Nyşan + + + + Sources + + + Files + Faýllar + + + + Paths to search for the dictionary files: + Sözlük faýllary gözlemegiň ýollary: + + + + + + + + &Add... + &Goşmak... + + + + + + + + &Remove + &Aýyr + + + + Re&scan now + Şu wagt &gaýtadan skanerle + + + + Sound Dirs + Sesli bukjalar + + + + Make dictionaries from bunches of audiofiles by adding paths here: + Birtopar audiofaýllardan sözlýkleri ýasamak üçin şu ýerde ýollaryny görkez: + + + + Morphology + Morfologiýa + + + + Path to a directory with Hunspell/Myspell dictionaries: + Hunspell/Myspell sözlükli bukjalar ýol: + + + + &Change... + &Özgertmek... + + + + Available morphology dictionaries: + Bar bolan morfologiýa sözlükler: + + + + Each morphology dictionary appears as a +separate auxiliary dictionary which +provides stem words for searches and +spelling suggestions for mistyped words. +Add appropriate dictionaries to the bottoms +of the appropriate groups to use them. + Her morfologiýa sözlügi aýry bir goşmaça sözlük ýaly +görkezilip gözleg üçin esasy sözleri üpjün edýär +we ýalňyş ýazylan sözler üçin dogrylary hödürleýär. +Laýyk gelýän sözlükleri degişli toparlaryň aşagyna goşup ulan. + + + + Wikipedia + Wikipedia + + + + Wikipedia (MediaWiki) sites: + Wikipedia (MediaWiki) saýtlary: + + + + Websites + Websaýtlar + + + + Any websites. A string %GDWORD% will be replaced with the query word: + Islendik websaýt %GDWORD% setiri soralýan söz bilen çalşyrylar: + + + Alternatively, use %GD1251% for CP1251, %GDISO1% for ISO 8859-1. + Ýogsam, ulan %GD1251% (CP1251 üçin), %GDISO1% (ISO 8859-1 üçin). + + + + Programs + Programmalar + + + Any external programs. A string %GDWORD% will be replaced with the query word. The word will also be fed into standard input. + Any external programs. A string %GDWORD% will be replaced with the query word. The word will also be fed into standard input. + + + + Forvo + Forvo + + + + Live pronunciations from <a href="http://www.forvo.com/">forvo.com</a>. The site allows people to record and share word pronunciations. You can listen to them from GoldenDict. + Janly aýdylyşy şu ýerden alynýar - <a href="http://www.forvo.com/">forvo.com</a>. Bu websaýt adamlar üçin sözleriň aýdyşyny ýazga geçirmäge we paýlaşmaga mümkinçilik berýär. Olary GoldenDict arkaly diňläp bolýar. + + + + Enable pronunciations from Forvo + Forvo-dan aýdyşyny aç + + + + API Key: + API açary: + + + + Use of Forvo currently requires an API key. Leave this field +blank to use the default key, which may become unavailable +in the future, or register on the site to get your own key. + Forvo häzirki wagtda API açary talap edýär. Özüň üçin täze açary almak üçin, websaýtda hasaba durmak gerek. Eger başdaky berlen açary ulanmak isleseň, şu meýdançany boş galdyr. Ýone başdaky berlen açar wagtyň geçmegi bilen ýiter. + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> +<tr> +<td style="border: none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Get your own key <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> +<tr> +<td style="border: none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Get your own key <a href="http://api.forvo.com/key/"><span style=" text-decoration: underline; color:#0057ae;">here</span></a>, or leave blank to use the default one.</p></td></tr></table></body></html> + + + + Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, +%GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. + Ýogsam, degişlilikde ulan %GD1251% - CP1251 üçin, %GDISO1%...%GDISO16% - ISO 8859-1...ISO 8859-16 üçin, +%GDBIG5% - Big-5 üçin, %GDBIG5HKSCS% - Big5-HKSCS üçin, %GDGBK% - GBK and GB18030 üçin, %GDSHIFTJIS% - Shift-JIS üçin. + + + + Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. + Islendik daşky programma. Setir %GDWORD% gözlenýän sözi bilen çalşyryljak. Eger şeýle setir berilmese, şol söz standart girizmä geçiriler. + + + + Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. + Öz açaryňy <a href="http://api.forvo.com/key/">şu ýerden al</a>, ýa-da, başdaky açary ulanmak üçin, boş goý. + + + + Language codes (comma-separated): + Dil kodlary (otur bilen bölünen): + + + + List of language codes you would like to have. Example: "en, ru". + Almak isleýän dil kodlarynyň sanawy: Mysal: "en, ru". + + + + Full list of language codes is available <a href="http://www.forvo.com/languages-codes/">here</a>. + Dil kodlarynyň doly sanawy bar <a href="http://www.forvo.com/languages-codes/">here</a>. + + + + Transliteration + Transliterasiýa + + + + Russian transliteration + Rus transliterasiýa + + + + Greek transliteration + Grek transliterasiýa + + + + German transliteration + Nemes transliterasiýa + + + + Belarusian transliteration + Belarus transliterasiýa + + + + Enables to use the Latin alphabet to write the Japanese language + Ýapon dilinde ýazan mahalynda latin harplary ulanmaga rugsat berýär + + + + Japanese Romaji + Ýapon romaji + + + + Systems: + Sistemalar: + + + + The most widely used method of transcription of Japanese, +based on English phonology + Ýapon diliniň iňlis fonologiýasynda iň köp ulanylýan transkripsiýa usuly. + + + + Hepburn + Hepburn + + + + The most regular system, having a one-to-one relation to the +kana writing systems. Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + Iň tertipli sistemasy, kana ýazylyş sistemalara brimeňzeşlik gatnaşygy bar. ISO 3602 boýunça standartlaşdyrlan. + +Entek GoldenDict-de edilmedik. + + + + Nihon-shiki + Nihon-shiki + + + + Based on Nihon-shiki system, but modified for modern standard Japanese. +Standardized as ISO 3602 + +Not implemented yet in GoldenDict. + Nihon-şiki sistemasyna esaslanýar, ýöne häzirki zaman adaty Ýapon dili üçin üýtgedilen görnüşindedir. +ISO 3602 boýunça standartlaşdyrlan. + +Entek GoldenDict-de edilmedik. + + + + Kunrei-shiki + Kunrei-shiki + + + + Syllabaries: + Bogunlaryň elipbiýi: + + + + Hiragana Japanese syllabary + Hiragana ýapon bogunlaryň elipbiýi + + + + Hiragana + Hiragana + + + + Katakana Japanese syllabary + Katakana ýapon bogunlaryň elipbiýi + + + + Katakana + Katakana + + + + Text to Speech + Teksti gürläp aýtdyrmak + + + + (not available in portable version) + (ykjam/portable wersiýada elýeterli däl) + + + + + + Choose a directory + Bukjany saýla + + + + + + + + Confirm removal + Aýyrmagy tassykla + + + + + Remove directory <b>%1</b> from the list? + <b>%1</b> bukjasyny sanawdan aýyrmalymy? + + + + + Remove site <b>%1</b> from the list? + <b>%1</b> saýty sanawdan aýyrmalymy? + + + + Remove program <b>%1</b> from the list? + <b>%1</b> programmany sanawdan aýyrmalymy? + + + + StylesComboBox + + + None + Hiç birisi + + + + TextToSpeechSource + + + Selected voice engines: + Saýlanan ses gurallary: + + + + &Add + &Goş + + + + &Remove + &Aýyr + + + + Preferences + Saýlamalar + + + + Volume: + Sesiň güýçlüligi: + + + + Rate: + Derejesi: + + + + Preview + Öňünden barlamak + + + + Available voice engines: + Bar bolan ses gurallary: + + + + Text to be previewed: + Öňünden görüljek tekst: + + + + Type text to be previewed here. + Öňünden görüljek teksti şu ýerden giriz. + + + + &Preview + &Öňünden görmek + + + + No TTS voice available + TTS ses ýok + + + + Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. + TTS ses tapylanok.<br> TTS gurallaryň azyndan biri kompýuterde gurnalandygyny barlaň. + + + + Confirm removal + Aýyrmagy tassykla + + + + Remove voice engine <b>%1</b> from the list? + Ses <b>%1</b> guraly sanawdan aýyrmalymy? + + + + TranslateBox + + + Type a word or phrase to search dictionaries + Sözlükleri ýa-da söz düzümleri gözlemek üçin söz giriz + + + + Drop-down + Gaçyrma + + + + VoiceEnginesModel + + + Enabled + Işledilen + + + + Name + Ady + + + + Id + Id + + + + Icon + Nyşan + + + + WebSitesModel + + + Enabled + Işledilen + + + + Name + Ady + + + + Address + Adres + + + + Icon + Nyşan + + + + WordFinder + + + Failed to query some dictionaries. + Käbir sözlükleri tapyp bolmady. + + + + WordList + + + WARNING: %1 + ÄGÄ BOLUŇ %1 + + + diff -Nru goldendict-1.0.2~git20130620/locale/tr_TR.ts goldendict-1.5.0~ppa131019/locale/tr_TR.ts --- goldendict-1.0.2~git20130620/locale/tr_TR.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/tr_TR.ts 2013-10-18 14:32:58.000000000 +0000 @@ -311,6 +311,14 @@ Inspect + + Video + + + + Video: %1 + + BelarusianTranslit diff -Nru goldendict-1.0.2~git20130620/locale/uk_UA.ts goldendict-1.5.0~ppa131019/locale/uk_UA.ts --- goldendict-1.0.2~git20130620/locale/uk_UA.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/uk_UA.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,18 +9,18 @@ Про програму - + GoldenDict dictionary lookup program, version GoldenDict — програма для роботи зі словниками, версія - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) © 2008-2013 Konstantin Isakov (ikm@goldendict.org) © 2008-2013 Konstantin Isakov (ikm@goldendict.org) - + Credits: Подяки: @@ -29,7 +29,7 @@ #.# - + Licensed under GNU GPLv3 or later Ліцензовано за GNU GPLv3 або пізніше @@ -39,9 +39,9 @@ [Невідомий] - + Based on Qt %1 (%2, %3 bit) - + Основано наQt %1 (%2, %3 біт) @@ -49,60 +49,60 @@ Expand article - + Розкрити статтю Collapse article - + Згорнути статтю - + No translation for <b>%1</b> was found in group <b>%2</b>. Нема перекладу для <b>%1</b> в групі <b>%2</b>. - + No translation was found in group <b>%1</b>. Нема перекладу в групі <b>%1</b>. - + Welcome! Ласкаво просимо! - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">Ласкаво просимо до <b>GoldenDict</b>!</h3><p>Щоб розпочати роботу з програмою, спочатку відвідайте <b>Зміни|Словники</b>, та додайте деякі шляхи до словників, де їх можна знайти, вкажіть варіанти сайтів Wikipedia або інших джерел, встановити порядок словників або згрупувати словники.<p>І тоді ви зможете шукати самі слова! Ви можете це здійснити в цьому вікні, використовуючи панель зліва, або можете через <a href="Контекстні вікна">шукати слова з інших запущених програм</a>. <p>Щоб налаштувати програму, перевірте доступність налаштувань в <b>Зміни|Налаштування</b>. Всі параметри мають підказки, переконайтесь, що прочитали їх, якщо в чомусь не впевнені.<p>Якщо потрібна допомога, маєте якісь запитання, поради або просто бажаєте поділитись враженнями, ми будемо раді кожному на <a href="http://goldendict.org/forum/">форумі</a> програми.<p>Відвідайте <a href="http://goldendict.org/">сайт</a> програми щодо оновлень. <p>© 2008–2013 Konstantin Isakov. Ліцензовано за GPLv3 або пізнішої версії. - + Working with popup Контекстні вікна - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">Контекстні вікна</h3>Для пошуку слів з інших запущених програм вам потрібно ввімкнути <i>«Контекстні вікна»</i> в меню <b>Налаштування</b> і потім може увімкнути його в будь-який момент натиснувши піктограму «Контекстне вікно» вище, або натиснувши піктограму в лотку нижче правим клацом мишки і вибравши його в контекстному меню. - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. Потім наведіть курсор миші на слово, котре ви бажаєте перекласти, у сторонній програмі, тоді появиться контекстне вікно з потрібним описом слова. - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. Тепер виберіть будь-яке слово,котре ви бажаєте перекласти, у сторонній програмі за допомогою мишки (подвійний клац або підвівши курсор при затиснутій лівій кнопці), тоді появиться контекстне вікно з потрібним описом слова. - + (untitled) (без назви) - + (picture) (зображення) @@ -110,37 +110,37 @@ ArticleRequest - + Expand article - + Розкрити статтю - + From Зі словника - + Collapse article - + Згорнути статтю - + Query error: %1 Помилка запиту: %1 - + Close words: Близькі за значенням: - + Compound expressions: Словосполучення: - + Individual words: Окремі слова: @@ -193,47 +193,47 @@ Виділити &все - + Select Current Article Вибрати поточний об'єкт - + Copy as text - + Скопіювати як текст - + Inspect - + Дослідити - + Resource Ресурс - + Audio Аудіо - + TTS Voice - + Голос TTS - + Picture Зображення - + Definition from dictionary "%1": %2 Визначення зі словника "%1": %2 - + Definition: %1 Визначення: %1 @@ -242,91 +242,101 @@ GoldenDict - - + + The referenced resource doesn't exist. Вказаного ресурсу не існує. - + The referenced audio program doesn't exist. Вказана аудіо програма не існує. - + ERROR: %1 - + Помилка:%1 - + Save sound - + Зберегти звук - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) - + Звукові файли(*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;Усі файли (*.*) - + Save image - + Зберегти малюнок - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) - + Графічні файли (*.bmp *.jpg *.png *.tif);;Усі файли (*.*) - + &Open Link &Відкрити посилання - + + Video + Відеозапис + + + + Video: %1 + Відеозапис: %1 + + + Open Link in New &Tab Відкрити посилання в новій в&кладці - + Open Link in &External Browser Відкрити посилання у &зовнішньому переглядачі - + &Look up "%1" &Пошук «%1» - + Look up "%1" in &New Tab Пошук «%1» в &новій вкладці - + Send "%1" to input line Послати "%1" до стрічки введення - - + + &Add "%1" to history &Додати "%1" до історії - + Look up "%1" in %2 Пошук «%1» в %2 - + Look up "%1" in %2 in &New Tab Пошук «%1»в %2 в &новій вкладці - + WARNING: FFmpeg Audio Player: %1 - + Попередження: звуковий програвач FFmpeg: %1 Playing a non-WAV file @@ -345,37 +355,37 @@ Басова бібліотека не взмозі відтворити цей звук. - + Failed to run a player to play sound file: %1 Не вдалось запустити програвач для відтворення звукового файла: %1 - + Failed to create temporary file. Не вдалось створити тимчасовий файл. - + Failed to auto-open resource file, try opening manually: %1. Не вдалось відкрити файл ресурсу, спробуйте відкрити вручну: %1. - + The referenced resource failed to download. Не вдалось звантажити вказаний ресурс. - + Save &image... - + Зберегти &зображення… - + Save s&ound... - + Зберегти з&вук - + WARNING: %1 УВАГА: %1s @@ -525,12 +535,12 @@ Open folder - + Відкрити теку Edit dictionary - Редагувати словник + Редагувати словник @@ -546,7 +556,8 @@ Edit the dictionary via command: %1 - + Редагувати словник через команду: +%1 @@ -571,7 +582,7 @@ Extended menu with all dictionaries... - + Розширене меню з усіма словниками @@ -586,7 +597,7 @@ Open dictionary folder - + Відкрити словникову теку @@ -650,37 +661,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 Помилка аналізу XML: %1 в %2,%3 - + Added %1 Додано %1 - + by - + Male чоловіком - + Female жінкою - + from з - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. Перейдіть до меню <b>Зміни|Словники|Джерела|Forvo</b> та застосуйте наш власний ключ API, щоб усунути цю проблему. @@ -879,12 +890,12 @@ Історія: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 Розмір історії: %1 статей з максимальних %2 @@ -897,7 +908,7 @@ Орфографічні підказки: - + %1 Morphology Морфологія %1 @@ -1870,7 +1881,7 @@ Lojban - + Ложбан @@ -1959,9 +1970,9 @@ Main - + Error in configuration file. Continue with default settings? - + Помилка в файлі налаштувань. Продовжити з типовими параметрами? @@ -1972,7 +1983,7 @@ - + Welcome! Ласкаво просимо! @@ -2207,7 +2218,7 @@ - + &Show &Показати @@ -2237,7 +2248,7 @@ - + Look up in: Пошук в: @@ -2326,17 +2337,17 @@ Завантаження… - + %1 dictionaries, %2 articles, %3 words %1 словників, %2 статей, %3 слів - + Look up: Шукати: - + All Усьому @@ -2361,17 +2372,17 @@ &Навігація - + Open Tabs List Відчинити список вкладок - + (untitled) (без назви) - + %1 - %2 %1 - %2 @@ -2380,73 +2391,73 @@ Попередження: %1 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. Не вдалось запустити механізм стеження за гарячими клавішами.<br>Переконайтесь, що ваш XServer має розширення RECORD увімкнутим. - + New Release Available Доступний новий випуск - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. Версія <b>%1</b> GoldenDict доступна до звантаження.<br>Натисніть <b>Звантажити</b>, щоб перейти до сторінки звантаження. - + Download Звантажити - + Skip This Release Пропустити цей випуск - - + + Accessibility API is not enabled - + API доступності не ввімкнено - + You have chosen to hide a menubar. Use %1 to show it back. Ви вирішили сховати лоток меню. Викор. %1 аби показувати його знову. - + Ctrl+M Ctrl+M - + Page Setup Параметри сторінки - + No printer is available. Please install one first. Не знайдено жодного принтера. Будь ласка, спершу встановіть хоч якийсь. - + Print Article Надрукувати статтю - + Article, Complete (*.html) - + Стаття, Повна (*.html) - + Article, HTML Only (*.html) - + Стаття, тільки HTML (*.html) - + Save Article As Зберегти статтю як @@ -2455,83 +2466,83 @@ Файли HTML (*.html *.htm) - + Error Помилка - + Can't save article: %1 Неможливо зберегти статтю: %1 - + Saving article... - + Збередення статті… - + The main window is set to be always on top. Головне меню налаштовано аби завжди бути зверху. - + &Hide &Сховати - + Export history to file Експортувати файл історії - - + + Text files (*.txt);;All files (*.*) Текстові файли (*.txt);;Всі файли (*.*) - + History export complete Експорти історії завершено - + Export error: Помилка експортування: - + Import history from file Імпортувати історію з файлу - + Import error: invalid data in file Помилка імпорту: недійсна дата у файлі - + History import complete Імпорти історії завершено - + Import error: Помилка імпортування: - + Dictionary info Інфа про словник - + Open dictionary folder - + Відкрити словникову теку - + Edit dictionary Редагувати словник @@ -2539,20 +2550,20 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted - + Словниковий файл пошкоджено - + Failed loading article from %1, reason: %2 - + Не вдалося завантажити статтю з%1, причина: %2 MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 Помилка аналізу XML: %1 в %2,%3 @@ -2560,7 +2571,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 Помилка аналізу XML: %1 в %2,%3 @@ -2837,12 +2848,12 @@ Adjust this value to avoid huge context menus. - + Скоригуйте це значення, щоб уникнути величезних контекстних меню. Context menu dictionaries limit: - + Обмеження контекстного меню для словників: @@ -3090,32 +3101,32 @@ Play audio files via FFmpeg(libav) and libao - + Програвати аудіофайли через FFmpeg(libav) та libao Use internal player - + Використовувати внутрішній програвач Select this option to automatic collapse big articles - + Виберіть це, щоб автоматично згортати великі статті Collapse articles more than - + Згортати статті з понад Articles longer than this size will be collapsed - + Статті довші за цей розмір буде згорнуто symbols - + символів Use Windows native playback API. Limited to .wav files only, @@ -3231,12 +3242,13 @@ Some sites detect GoldenDict via HTTP headers and block the requests. Enable this option to workaround the problem. - + Деякі сайти виявлять GoldenDict через загловок HTTP і блокують запити. +Щоб обійти цю проблему, ввімкніть цей параметр. Do not identify GoldenDict in HTTP headers - + Не отожнювати GoldenDict в заголовках HTTP @@ -3338,17 +3350,17 @@ History saving interval. If set to 0 history will be saved only during exit. - + Проміжок збереження історії. Якщо вказати 0, то історія зберігатиметься тільки після виходу з програми. Save every - + Зберігати кожні minutes - + хвилин @@ -3378,7 +3390,7 @@ Modern - + Modern @@ -3393,24 +3405,24 @@ Lingoes - + Lingoes Lingoes-Blue - + Lingoes-Blue Play via DirectShow Програвати через DirectShow - + Changing Language Зміна мови - + Restart the program to apply the language change. Перезапустіть програму, щоб змінити мову. @@ -3492,99 +3504,99 @@ QObject - + Article loading error - + Помилка завантаження статті - + Article decoding error - + Помилка розкодування статті - + avformat_alloc_context() failed. - + Помилка: avformat_alloc_context(). - + av_malloc() failed. - + Помилка: av_malloc(). - + avio_alloc_context() failed. - + Помилка: avio_alloc_context(). - + avformat_open_input() failed: %1. - + Помилка: avformat_open_input() %1. - + avformat_find_stream_info() failed: %1. - + Помилка: avformat_find_stream_info() %1. - + Could not find audio stream. - + Неможливо знайти аудіопотік. - + Codec [id: %1] not found. - + Кодек [ід: %1] не знайдено. - + avcodec_open2() failed: %1. - + Помилка: avcodec_open2() %1. - + Cannot find usable audio output device. - + Неможливо знайти зручний пристрій для аудіовиходу. - + Unsupported sample format. - + Непідтримуваний формат проби. - + ao_open_live() failed: - + Помилка: ao_open_live(): - + No driver. - + Немає носія. - + This driver is not a live output device. - + Цей носій не є пристроєм потокового аудіовиходу. - + A valid option key has an invalid value. - + Дійсний ключ має недійсне значення. - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. - + Неможливо відкрити пристрій: %1, канали: %2, частота: %3, бітів: %4. - + Unknown error. - + Невідома помилка. - + avcodec_alloc_frame() failed. - + Помилка: avcodec_alloc_frame(). @@ -3608,20 +3620,20 @@ ResourceToSaveHandler - - + + ERROR: %1 - + Помилка: %1 - + Resource saving error: - + Помилка зберігання ресурсів: - + The referenced resource failed to download. - Не вдалось звантажити вказаний ресурс. + Не вдалось звантажити поданий ресурс. @@ -3741,7 +3753,7 @@ Icon - Наличка + Піктограма @@ -3886,7 +3898,7 @@ Get your own key <a href="http://api.forvo.com/key/">here</a>, or leave blank to use the default one. - + Дістаньте власний ключ <a href="http://api.forvo.com/key/">тут</a>, або залиште поле порожнім, щоб скористатись типовим. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -3910,12 +3922,13 @@ Alternatively, use %GD1251% for CP1251, %GDISO1%...%GDISO16% for ISO 8859-1...ISO 8859-16 respectively, %GDBIG5% for Big-5, %GDBIG5HKSCS% for Big5-HKSCS, %GDGBK% for GBK and GB18030, %GDSHIFTJIS% for Shift-JIS. - + Інакше, використовуйте %GD1251% для CP1251, %GDISO1%...%GDISO16% для ISO 8859-1...ISO 8859-16 відповідно, +%GDBIG5% для Big-5, %GDBIG5HKSCS% для Big5-HKSCS, %GDGBK% для GBK та GB18030, %GDSHIFTJIS% для Shift-JIS. Any external programs. A string %GDWORD% will be replaced with the query word. If such string is not presented, the word will be fed into standard input. - + Будь-яка стороння програма. Рядок %GDWORD% буде замінено на запитуване слово. Якщо такого рядка немає, слово буде підбиратись зі стандартного джерела. @@ -4044,7 +4057,7 @@ Text to Speech - + Текст для вимови @@ -4098,77 +4111,77 @@ Selected voice engines: - + Вибрані голосові рушії: &Add - + &Додати &Remove - &Вилучити + &Вилучити Preferences - Налаштування + Параметри Volume: - + Гучність: Rate: - + Частота: Preview - + Огляд Available voice engines: - + Доступні голосові рушії: Text to be previewed: - + Текст для огляду: Type text to be previewed here. - + Введіть текст, щоб його оглянути тут. &Preview - + &Огляд No TTS voice available - + Немає доступного голосу TTS Cannot find available TTS voice.<br>Please make sure that at least one TTS engine installed on your computer already. - + Неможливо знайти доступний голос TTS.<br>Переконайтесь, що рушій TTS хоча би встановлено на комп'ютері. Confirm removal - Підтвердження вилучення + Підтвердити вилучення Remove voice engine <b>%1</b> from the list? - + Вилучити голосовий рушій<b>%1</b> з цього переліку? @@ -4189,22 +4202,22 @@ Enabled - Увімкнено + Увімкнено Name - Назва + Назва Id - + Ідентифікатор Icon - Наличка + Піктограма diff -Nru goldendict-1.0.2~git20130620/locale/vi_VN.ts goldendict-1.5.0~ppa131019/locale/vi_VN.ts --- goldendict-1.0.2~git20130620/locale/vi_VN.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/vi_VN.ts 2013-10-18 14:32:58.000000000 +0000 @@ -300,6 +300,14 @@ Inspect + + Video + + + + Video: %1 + + BelarusianTranslit diff -Nru goldendict-1.0.2~git20130620/locale/zh_CN.ts goldendict-1.5.0~ppa131019/locale/zh_CN.ts --- goldendict-1.0.2~git20130620/locale/zh_CN.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/zh_CN.ts 2013-10-18 14:32:58.000000000 +0000 @@ -9,17 +9,17 @@ 关于 - + GoldenDict dictionary lookup program, version GoldenDict 电子词典程序,版本 - + Licensed under GNU GPLv3 or later 授权基于 GNU 公共授权 GPLv3 或更高版本 - + Credits: 致谢名单: @@ -29,12 +29,12 @@ [未知] - + Based on Qt %1 (%2, %3 bit) 基于 Qt %1 (%2, %3 位) - + (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) (c) 2008-2013 Konstantin Isakov (ikm@goldendict.org) @@ -42,12 +42,12 @@ ArticleMaker - + Then just stop the cursor over the word you want to look up in another application, and a window would pop up which would describe it to you. 然后只要将鼠标指针停留在你想要进行抓词查询的单词上,程序就会在弹出式窗口中显示释义。 - + <h3 align="center">Working with the popup</h3>To look up words from other active applications, you would need to first activate the <i>"Scan popup functionality"</i> in <b>Preferences</b>, and then enable it at any time either by triggering the 'Popup' icon above, or by clicking the tray icon down below with your right mouse button and choosing so in the menu you've popped. <h3 align="center">使用屏幕取词功能</h3><p style="text-indent:2em">如要从其它程序中直接进行抓词查询,需要首先在<b>首选项</b>中启用“屏幕取词功能”,然后点击上面的“弹出菜单”图标,或者右键点击系统托盘图标后从弹出菜单中选定“屏幕取词”以激活此功能。 @@ -62,42 +62,42 @@ 收起文章 - + No translation for <b>%1</b> was found in group <b>%2</b>. 在 <b>%2</b> 群组中找不到 <b>%1</b> 的可用翻译。 - + Working with popup 使用屏幕取词功能 - + (untitled) (未命名) - + Welcome! 欢迎使用! - + Then just select any word you want to look up in another application by your mouse (double-click it or swipe it with mouse with the button pressed), and a window would pop up which would describe the word to you. 然后只要用鼠标指针选定你要进行抓词查询的词(双击单词或者用鼠标拖拉选定),程序就会在弹出式窗口中显示释义。 - + No translation was found in group <b>%1</b>. 在 <b>%1</b> 群组中找不到可用的翻译。 - + <h3 align="center">Welcome to <b>GoldenDict</b>!</h3><p>To start working with the program, first visit <b>Edit|Dictionaries</b> to add some directory paths where to search for the dictionary files, set up various Wikipedia sites or other sources, adjust dictionary order or create dictionary groups.<p>And then you're ready to look up your words! You can do that in this window by using a pane to the left, or you can <a href="Working with popup">look up words from other active applications</a>. <p>To customize program, check out the available preferences at <b>Edit|Preferences</b>. All settings there have tooltips, be sure to read them if you are in doubt about anything.<p>Should you need further help, have any questions, suggestions or just wonder what the others think, you are welcome at the program's <a href="http://goldendict.org/forum/">forum</a>.<p>Check program's <a href="http://goldendict.org/">website</a> for the updates. <p>(c) 2008-2013 Konstantin Isakov. Licensed under GPLv3 or later. <h3 align="center">欢迎使用 <b>GoldenDict</b> 词典程序!</h3><p style="text-indent:2em">使用时请首先打开<b>编辑 | 词典</b>菜单以添加并扫描含有词典文件的目录,添加维基百科网站查询或其它资源,调整词典排序或创建新的词典群组。<p style="text-indent:2em">这些设置都完成以后,就可以开始使用了。你可以使用左侧的查询面板,或者<a href="使用屏幕取词功能">直接从其它程序中抓词查询</a>。<p style="text-indent:2em">如需要改变设置,可以在<b>编辑 | 首选项</b>菜单中查看一下可用的系统设置。所有的设置都有鼠标指针提示信息,如果有不明之处,请仔细阅读提示信息。<p style="text-indent:2em">如果你需要更多帮助,有任何疑问、建议,或者仅仅想了解其他人的想法,欢迎访问此程序的<a href="http://goldendict.org/forum/">官方论坛</a>。<p style="text-indent:2em">访问此程序的<a href="http://goldendict.org/">官方网站</a>以获取更新。<p style="text-indent:2em">(c) 2008-2013 Konstantin Isakov. 授权基于 GPLv3 或更高版本。 - + (picture) (图片) @@ -105,37 +105,37 @@ ArticleRequest - + Expand article 展开文章 - + From 来自 - + Collapse article 收起文章 - + Query error: %1 查询错误:%1 - + Close words: 相近词条: - + Compound expressions: 复合短语: - + Individual words: 单个词汇: @@ -153,7 +153,7 @@ 表单 - + Failed to run a player to play sound file: %1 没有可用的播放器,无法打开音频文件:%1 @@ -168,12 +168,12 @@ 查找: - + The referenced resource failed to download. 所引用的资源下载失败。 - + Failed to create temporary file. 创建临时文件失败。 @@ -183,7 +183,7 @@ Ctrl+G - + &Look up "%1" 查找 "%1"(&L) @@ -198,7 +198,7 @@ 前一个(&P) - + Look up "%1" in &New Tab 在新标签页中查找 "%1"(&N) @@ -207,13 +207,13 @@ GoldenDict - - + + The referenced resource doesn't exist. 所引用的资源不存在。 - + &Open Link 打开链接(&O) @@ -223,42 +223,42 @@ 区分大小写(&C) - + Failed to auto-open resource file, try opening manually: %1. 自动打开资源文件时失败,请尝试手动打开:%1. - + Look up "%1" in %2 在 %2 中查找 "%1" - + Select Current Article 选择当前文章 - + Copy as text 复制为文本 - + Inspect 审查元素 - + Look up "%1" in %2 in &New Tab 在 %2 中查找 "%1" 并使用新标签页(&N) - + Open Link in New &Tab 在新标签页中打开链接(&T) - + Open Link in &External Browser 在外部浏览器中打开链接(&E) @@ -276,62 +276,73 @@ 高亮所有结果(&a) - + Resource 资源 - + Audio 音频 - + TTS Voice TTS 音频 - + Picture 图片 - + + Video + 视频: %1 + 视频 + + + + Video: %1 + + + + Definition from dictionary "%1": %2 定义:"%1": %2 - + Definition: %1 定义:%1 - + The referenced audio program doesn't exist. 引用的音频播放程序不存在。 - + ERROR: %1 错误: %1 - + Save sound 保存音频文件 - + Sound files (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;All files (*.*) 音频文件 (*.wav *.ogg *.mp3 *.mp4 *.aac *.flac *.mid *.wv *.ape);;所有文件 (*.*) - + Save image 保存图片 - + Image files (*.bmp *.jpg *.png *.tif);;All files (*.*) 图片文件 (*.bmp *.jpg *.png *.tif);;所有文件 (*.*) @@ -340,33 +351,33 @@ 资源保存失败: - + Save &image... 保存图片(&I)... - + Save s&ound... 保存音频文件(&O)... - + Send "%1" to input line 将 "%1" 发送到输入框 - - + + &Add "%1" to history 将 "%1" 添加到历史(&A) - + WARNING: %1 警告: %1 - + WARNING: FFmpeg Audio Player: %1 警告: 内置播放器:%1 @@ -376,18 +387,18 @@ Belarusian transliteration from latin to cyrillic (classic orthography) - + 白俄罗斯文转写(拉丁到西里尔字母,传统正字法) Belarusian transliteration from latin to cyrillic (school orthography) - + 白俄罗斯文转写(拉丁到西里尔字母,官方正字法) Belarusian transliteration (smoothes out the difference between classic and school orthography in cyrillic) - + 白俄罗斯文转写(西里尔字母,官方正字法到传统正字法) @@ -458,23 +469,23 @@ Combine groups by source language to "%1->" - + 根据源语言合并群组"%1->" Combine groups by target language to "->%1" - + 根据目标语言合并群组"->%1" Make two-side translate group "%1-%2-%1" - + 建立双向群组"%1-%2-%1" Combine groups with "%1" - + 与群组"%1"合并 @@ -640,37 +651,37 @@ Forvo::ForvoArticleRequest - + XML parse error: %1 at %2,%3 XML 语法错误:%1 于 %2, %3 - + Added %1 添加 %1 - + by - + Male - + Female - + from 来自 - + Go to Edit|Dictionaries|Sources|Forvo and apply for our own API key to make this error disappear. 进入 编辑|词典|词典来源|Forvo, 申请自己的 API-key 来消除此错误。 @@ -869,12 +880,12 @@ 历史: - + %1/%2 %1/%2 - + History size: %1 entries out of maximum %2 历史条数:%1/%2 @@ -887,7 +898,7 @@ 拼写建议: - + %1 Morphology %1 构词法 @@ -1948,7 +1959,7 @@ Main - + Error in configuration file. Continue with default settings? 配置文件错误,使用默认配置并继续? @@ -1976,7 +1987,7 @@ F4 - + All 全部 @@ -1990,7 +2001,7 @@ 打印预览 - + %1 dictionaries, %2 articles, %3 words 词典数:%1,文章数:%2,词条数:%3 @@ -2016,7 +2027,7 @@ 退出(&Q) - + Error 错误 @@ -2036,7 +2047,7 @@ 关闭至系统托盘(&C) - + Can't save article: %1 无法保存文章:%1 @@ -2071,7 +2082,7 @@ 保存文章(&S) - + Save Article As 文章另存为 @@ -2105,12 +2116,12 @@ 主页(&H) - + New Release Available 有新版本可用 - + Look up: 查找: @@ -2134,18 +2145,18 @@ 关于 GoldenDict - + Download 下载 - + Page Setup 页面设置 - + Look up in: 查找于: @@ -2155,12 +2166,12 @@ 正常大小 - + Failed to initialize hotkeys monitoring mechanism.<br>Make sure your XServer has RECORD extension turned on. 初始化热键监视机制失败。<br>请确保你的 XServer 已启用 RECORD 扩展。 - + Version <b>%1</b> of GoldenDict is now available for download.<br>Click <b>Download</b> to get to the download page. 有新版 GoldenDict 可用,版本为 <b>%1</b>。<br> 点击<b>下载</b>,打开下载页面。 @@ -2189,7 +2200,7 @@ 加载中…… - + (untitled) (未命名) @@ -2204,7 +2215,7 @@ - + Welcome! 欢迎使用! @@ -2219,7 +2230,7 @@ 保存文章 - + Skip This Release 忽略此次升级 @@ -2233,12 +2244,12 @@ 警告: %1 - + Print Article 打印文章 - + No printer is available. Please install one first. 找不到可用的打印机,请先安装一个打印机。 @@ -2343,28 +2354,28 @@ 在以下词典中找到: - + Open Tabs List 打开标签页列表 - + %1 - %2 %1 - %2 - + You have chosen to hide a menubar. Use %1 to show it back. 你选择了隐藏菜单栏,使用 %1 再次显示。 - + Ctrl+M Ctrl+M - + &Show 显示(&S) @@ -2374,7 +2385,7 @@ 导出(&E) - + &Hide 隐藏(&H) @@ -2383,23 +2394,23 @@ 历史记录查看模式 - + Export history to file 导出历史记录到文件 - - + + Text files (*.txt);;All files (*.*) 文本文件 (*.txt);;所有文件 (*.*) - + History export complete 历史记录导出完成 - + Export error: 导出错误: @@ -2414,37 +2425,37 @@ 导入(&I) - + Import history from file 导入历史文件 - + Import error: invalid data in file 导入失败:无效数据 - + History import complete 历史导入成功 - + Import error: 导入错误: - + Dictionary info 词典信息 - + Open dictionary folder 打开词典文件夹 - + Edit dictionary 编辑词典信息 @@ -2511,22 +2522,22 @@ 导航栏(&N) - + Article, Complete (*.html) 文章, 完整 (*.html) - + Article, HTML Only (*.html) 文章, 仅 HTML (*.html) - + Saving article... 文章保存中…… - + The main window is set to be always on top. 主窗口已设置为总在最前。 @@ -2536,8 +2547,8 @@ 历史面板(&H) - - + + Accessibility API is not enabled 无障碍API未启用 @@ -2545,12 +2556,12 @@ Mdx::MdxArticleRequest - + Dictionary file was tampered or corrupted 词典文件被修改或已损坏 - + Failed loading article from %1, reason: %2 从 %1 加载文章失败:%2 @@ -2558,7 +2569,7 @@ MediaWiki::MediaWikiArticleRequest - + XML parse error: %1 at %2,%3 XML 解析失败:%1 于 %2, %3 @@ -2566,7 +2577,7 @@ MediaWiki::MediaWikiWordSearchRequest - + XML parse error: %1 at %2,%3 XML 解析失败:%1 于 %2, %3 @@ -2894,7 +2905,7 @@ 在当前页之后打开新标签页 - + Restart the program to apply the language change. 变更界面语言需要重新启动程序才能生效。 @@ -2983,7 +2994,7 @@ 被监视。热键监视的秒数可以在这里设置。 - + Changing Language 变更界面语言 @@ -3487,97 +3498,97 @@ QObject - + Article loading error 文章加载错误 - + Article decoding error 文章解码错误 - + avformat_alloc_context() failed. avformat_alloc_context() 调用失败。 - + av_malloc() failed. av_malloc() 调用失败。 - + avio_alloc_context() failed. avio_alloc_context() 调用失败。 - + avformat_open_input() failed: %1. avformat_open_input() 调用失败:%1。 - + avformat_find_stream_info() failed: %1. avformat_find_stream_info() 调用失败:%1。 - + Could not find audio stream. 未找到有效的音频流数据。 - + Codec [id: %1] not found. 未找到有效的解码器 [id: %1]。 - + avcodec_open2() failed: %1. avcodec_open2() 调用失败:%1。 - + Cannot find usable audio output device. 未找到有效的音频输出设备。 - + Unsupported sample format. 不支持的采样格式。 - + ao_open_live() failed: ao_open_live() 调用失败: - + No driver. 无驱动程序。 - + This driver is not a live output device. 该驱动程序不是有效的输出设备。 - + A valid option key has an invalid value. 配置键值不匹配。 - + Cannot open the device: %1, channels: %2, rate: %3, bits: %4. 无法打开设备:%1,声道:%2,采样率:%3,位:%4。 - + Unknown error. 未知错误。 - + avcodec_alloc_frame() failed. avcodec_alloc_frame() 调用失败。 @@ -3603,18 +3614,18 @@ ResourceToSaveHandler - - + + ERROR: %1 错误: %1 - + Resource saving error: 资源保存失败: - + The referenced resource failed to download. 所引用的资源下载失败。 diff -Nru goldendict-1.0.2~git20130620/locale/zh_TW.ts goldendict-1.5.0~ppa131019/locale/zh_TW.ts --- goldendict-1.0.2~git20130620/locale/zh_TW.ts 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/locale/zh_TW.ts 2013-10-18 14:32:58.000000000 +0000 @@ -296,6 +296,14 @@ Inspect + + Video + + + + Video: %1 + + BelarusianTranslit diff -Nru goldendict-1.0.2~git20130620/lsa.cc goldendict-1.5.0~ppa131019/lsa.cc --- goldendict-1.0.2~git20130620/lsa.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/lsa.cc 2013-10-18 14:32:58.000000000 +0000 @@ -23,6 +23,7 @@ #include #include +#include namespace Lsa { @@ -462,7 +463,7 @@ if ( result <= 0 ) { - FDPRINTF( stderr, "Warning: failed to read Vorbis data (code = %ld)\n", result ); + qWarning( "Warning: failed to read Vorbis data (code = %ld)\n", result ); memset( ptr, 0, left ); break; } @@ -547,6 +548,8 @@ { // Building the index + qDebug( "Lsa: Building the index for dictionary: %s\n", i->c_str() ); + initializing.indexingDictionary( FsEncoding::basename( *i ) ); File::Class idx( indexFile, "wb" ); @@ -622,8 +625,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Lingo's LSA reading failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Lingvo's LSA reading failed: %s, error: %s\n", + i->c_str(), e.what() ); } } diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/base.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/base.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/base.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/base.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,601 @@ +/** + * \file lzma/base.h + * \brief Data types and functions used in many places in liblzma API + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Boolean + * + * This is here because C89 doesn't have stdbool.h. To set a value for + * variables having type lzma_bool, you can use + * - C99's `true' and `false' from stdbool.h; + * - C++'s internal `true' and `false'; or + * - integers one (true) and zero (false). + */ +typedef unsigned char lzma_bool; + + +/** + * \brief Type of reserved enumeration variable in structures + * + * To avoid breaking library ABI when new features are added, several + * structures contain extra variables that may be used in future. Since + * sizeof(enum) can be different than sizeof(int), and sizeof(enum) may + * even vary depending on the range of enumeration constants, we specify + * a separate type to be used for reserved enumeration variables. All + * enumeration constants in liblzma API will be non-negative and less + * than 128, which should guarantee that the ABI won't break even when + * new constants are added to existing enumerations. + */ +typedef enum { + LZMA_RESERVED_ENUM = 0 +} lzma_reserved_enum; + + +/** + * \brief Return values used by several functions in liblzma + * + * Check the descriptions of specific functions to find out which return + * values they can return. With some functions the return values may have + * more specific meanings than described here; those differences are + * described per-function basis. + */ +typedef enum { + LZMA_OK = 0, + /**< + * \brief Operation completed successfully + */ + + LZMA_STREAM_END = 1, + /**< + * \brief End of stream was reached + * + * In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or + * LZMA_FINISH was finished. In decoder, this indicates + * that all the data was successfully decoded. + * + * In all cases, when LZMA_STREAM_END is returned, the last + * output bytes should be picked from strm->next_out. + */ + + LZMA_NO_CHECK = 2, + /**< + * \brief Input stream has no integrity check + * + * This return value can be returned only if the + * LZMA_TELL_NO_CHECK flag was used when initializing + * the decoder. LZMA_NO_CHECK is just a warning, and + * the decoding can be continued normally. + * + * It is possible to call lzma_get_check() immediately after + * lzma_code has returned LZMA_NO_CHECK. The result will + * naturally be LZMA_CHECK_NONE, but the possibility to call + * lzma_get_check() may be convenient in some applications. + */ + + LZMA_UNSUPPORTED_CHECK = 3, + /**< + * \brief Cannot calculate the integrity check + * + * The usage of this return value is different in encoders + * and decoders. + * + * Encoders can return this value only from the initialization + * function. If initialization fails with this value, the + * encoding cannot be done, because there's no way to produce + * output with the correct integrity check. + * + * Decoders can return this value only from lzma_code() and + * only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when + * initializing the decoder. The decoding can still be + * continued normally even if the check type is unsupported, + * but naturally the check will not be validated, and possible + * errors may go undetected. + * + * With decoder, it is possible to call lzma_get_check() + * immediately after lzma_code() has returned + * LZMA_UNSUPPORTED_CHECK. This way it is possible to find + * out what the unsupported Check ID was. + */ + + LZMA_GET_CHECK = 4, + /**< + * \brief Integrity check type is now available + * + * This value can be returned only by the lzma_code() function + * and only if the decoder was initialized with the + * LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the + * application that it may now call lzma_get_check() to find + * out the Check ID. This can be used, for example, to + * implement a decoder that accepts only files that have + * strong enough integrity check. + */ + + LZMA_MEM_ERROR = 5, + /**< + * \brief Cannot allocate memory + * + * Memory allocation failed, or the size of the allocation + * would be greater than SIZE_MAX. + * + * Due to internal implementation reasons, the coding cannot + * be continued even if more memory were made available after + * LZMA_MEM_ERROR. + */ + + LZMA_MEMLIMIT_ERROR = 6, + /** + * \brief Memory usage limit was reached + * + * Decoder would need more memory than allowed by the + * specified memory usage limit. To continue decoding, + * the memory usage limit has to be increased with + * lzma_memlimit_set(). + */ + + LZMA_FORMAT_ERROR = 7, + /**< + * \brief File format not recognized + * + * The decoder did not recognize the input as supported file + * format. This error can occur, for example, when trying to + * decode .lzma format file with lzma_stream_decoder, + * because lzma_stream_decoder accepts only the .xz format. + */ + + LZMA_OPTIONS_ERROR = 8, + /**< + * \brief Invalid or unsupported options + * + * Invalid or unsupported options, for example + * - unsupported filter(s) or filter options; or + * - reserved bits set in headers (decoder only). + * + * Rebuilding liblzma with more features enabled, or + * upgrading to a newer version of liblzma may help. + */ + + LZMA_DATA_ERROR = 9, + /**< + * \brief Data is corrupt + * + * The usage of this return value is different in encoders + * and decoders. In both encoder and decoder, the coding + * cannot continue after this error. + * + * Encoders return this if size limits of the target file + * format would be exceeded. These limits are huge, thus + * getting this error from an encoder is mostly theoretical. + * For example, the maximum compressed and uncompressed + * size of a .xz Stream is roughly 8 EiB (2^63 bytes). + * + * Decoders return this error if the input data is corrupt. + * This can mean, for example, invalid CRC32 in headers + * or invalid check of uncompressed data. + */ + + LZMA_BUF_ERROR = 10, + /**< + * \brief No progress is possible + * + * This error code is returned when the coder cannot consume + * any new input and produce any new output. The most common + * reason for this error is that the input stream being + * decoded is truncated or corrupt. + * + * This error is not fatal. Coding can be continued normally + * by providing more input and/or more output space, if + * possible. + * + * Typically the first call to lzma_code() that can do no + * progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only + * the second consecutive call doing no progress will return + * LZMA_BUF_ERROR. This is intentional. + * + * With zlib, Z_BUF_ERROR may be returned even if the + * application is doing nothing wrong, so apps will need + * to handle Z_BUF_ERROR specially. The above hack + * guarantees that liblzma never returns LZMA_BUF_ERROR + * to properly written applications unless the input file + * is truncated or corrupt. This should simplify the + * applications a little. + */ + + LZMA_PROG_ERROR = 11, + /**< + * \brief Programming error + * + * This indicates that the arguments given to the function are + * invalid or the internal state of the decoder is corrupt. + * - Function arguments are invalid or the structures + * pointed by the argument pointers are invalid + * e.g. if strm->next_out has been set to NULL and + * strm->avail_out > 0 when calling lzma_code(). + * - lzma_* functions have been called in wrong order + * e.g. lzma_code() was called right after lzma_end(). + * - If errors occur randomly, the reason might be flaky + * hardware. + * + * If you think that your code is correct, this error code + * can be a sign of a bug in liblzma. See the documentation + * how to report bugs. + */ +} lzma_ret; + + +/** + * \brief The `action' argument for lzma_code() + * + * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH, + * the same `action' must is used until lzma_code() returns LZMA_STREAM_END. + * Also, the amount of input (that is, strm->avail_in) must not be modified + * by the application until lzma_code() returns LZMA_STREAM_END. Changing the + * `action' or modifying the amount of input will make lzma_code() return + * LZMA_PROG_ERROR. + */ +typedef enum { + LZMA_RUN = 0, + /**< + * \brief Continue coding + * + * Encoder: Encode as much input as possible. Some internal + * buffering will probably be done (depends on the filter + * chain in use), which causes latency: the input used won't + * usually be decodeable from the output of the same + * lzma_code() call. + * + * Decoder: Decode as much input as possible and produce as + * much output as possible. + */ + + LZMA_SYNC_FLUSH = 1, + /**< + * \brief Make all the input available at output + * + * Normally the encoder introduces some latency. + * LZMA_SYNC_FLUSH forces all the buffered data to be + * available at output without resetting the internal + * state of the encoder. This way it is possible to use + * compressed stream for example for communication over + * network. + * + * Only some filters support LZMA_SYNC_FLUSH. Trying to use + * LZMA_SYNC_FLUSH with filters that don't support it will + * make lzma_code() return LZMA_OPTIONS_ERROR. For example, + * LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does. + * + * Using LZMA_SYNC_FLUSH very often can dramatically reduce + * the compression ratio. With some filters (for example, + * LZMA2), fine-tuning the compression options may help + * mitigate this problem significantly (for example, + * match finder with LZMA2). + * + * Decoders don't support LZMA_SYNC_FLUSH. + */ + + LZMA_FULL_FLUSH = 2, + /**< + * \brief Finish encoding of the current Block + * + * All the input data going to the current Block must have + * been given to the encoder (the last bytes can still be + * pending in* next_in). Call lzma_code() with LZMA_FULL_FLUSH + * until it returns LZMA_STREAM_END. Then continue normally + * with LZMA_RUN or finish the Stream with LZMA_FINISH. + * + * This action is currently supported only by Stream encoder + * and easy encoder (which uses Stream encoder). If there is + * no unfinished Block, no empty Block is created. + */ + + LZMA_FINISH = 3 + /**< + * \brief Finish the coding operation + * + * All the input data must have been given to the encoder + * (the last bytes can still be pending in next_in). + * Call lzma_code() with LZMA_FINISH until it returns + * LZMA_STREAM_END. Once LZMA_FINISH has been used, + * the amount of input must no longer be changed by + * the application. + * + * When decoding, using LZMA_FINISH is optional unless the + * LZMA_CONCATENATED flag was used when the decoder was + * initialized. When LZMA_CONCATENATED was not used, the only + * effect of LZMA_FINISH is that the amount of input must not + * be changed just like in the encoder. + */ +} lzma_action; + + +/** + * \brief Custom functions for memory handling + * + * A pointer to lzma_allocator may be passed via lzma_stream structure + * to liblzma, and some advanced functions take a pointer to lzma_allocator + * as a separate function argument. The library will use the functions + * specified in lzma_allocator for memory handling instead of the default + * malloc() and free(). C++ users should note that the custom memory + * handling functions must not throw exceptions. + * + * liblzma doesn't make an internal copy of lzma_allocator. Thus, it is + * OK to change these function pointers in the middle of the coding + * process, but obviously it must be done carefully to make sure that the + * replacement `free' can deallocate memory allocated by the earlier + * `alloc' function(s). + */ +typedef struct { + /** + * \brief Pointer to a custom memory allocation function + * + * If you don't want a custom allocator, but still want + * custom free(), set this to NULL and liblzma will use + * the standard malloc(). + * + * \param opaque lzma_allocator.opaque (see below) + * \param nmemb Number of elements like in calloc(). liblzma + * will always set nmemb to 1, so it is safe to + * ignore nmemb in a custom allocator if you like. + * The nmemb argument exists only for + * compatibility with zlib and libbzip2. + * \param size Size of an element in bytes. + * liblzma never sets this to zero. + * + * \return Pointer to the beginning of a memory block of + * `size' bytes, or NULL if allocation fails + * for some reason. When allocation fails, functions + * of liblzma return LZMA_MEM_ERROR. + * + * The allocator should not waste time zeroing the allocated buffers. + * This is not only about speed, but also memory usage, since the + * operating system kernel doesn't necessarily allocate the requested + * memory in physical memory until it is actually used. With small + * input files, liblzma may actually need only a fraction of the + * memory that it requested for allocation. + * + * \note LZMA_MEM_ERROR is also used when the size of the + * allocation would be greater than SIZE_MAX. Thus, + * don't assume that the custom allocator must have + * returned NULL if some function from liblzma + * returns LZMA_MEM_ERROR. + */ + void *(LZMA_API_CALL *alloc)(void *opaque, size_t nmemb, size_t size); + + /** + * \brief Pointer to a custom memory freeing function + * + * If you don't want a custom freeing function, but still + * want a custom allocator, set this to NULL and liblzma + * will use the standard free(). + * + * \param opaque lzma_allocator.opaque (see below) + * \param ptr Pointer returned by lzma_allocator.alloc(), + * or when it is set to NULL, a pointer returned + * by the standard malloc(). + */ + void (LZMA_API_CALL *free)(void *opaque, void *ptr); + + /** + * \brief Pointer passed to .alloc() and .free() + * + * opaque is passed as the first argument to lzma_allocator.alloc() + * and lzma_allocator.free(). This intended to ease implementing + * custom memory allocation functions for use with liblzma. + * + * If you don't need this, you should set this to NULL. + */ + void *opaque; + +} lzma_allocator; + + +/** + * \brief Internal data structure + * + * The contents of this structure is not visible outside the library. + */ +typedef struct lzma_internal_s lzma_internal; + + +/** + * \brief Passing data to and from liblzma + * + * The lzma_stream structure is used for + * - passing pointers to input and output buffers to liblzma; + * - defining custom memory hander functions; and + * - holding a pointer to coder-specific internal data structures. + * + * Typical usage: + * + * - After allocating lzma_stream (on stack or with malloc()), it must be + * initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details). + * + * - Initialize a coder to the lzma_stream, for example by using + * lzma_easy_encoder() or lzma_auto_decoder(). Some notes: + * - In contrast to zlib, strm->next_in and strm->next_out are + * ignored by all initialization functions, thus it is safe + * to not initialize them yet. + * - The initialization functions always set strm->total_in and + * strm->total_out to zero. + * - If the initialization function fails, no memory is left allocated + * that would require freeing with lzma_end() even if some memory was + * associated with the lzma_stream structure when the initialization + * function was called. + * + * - Use lzma_code() to do the actual work. + * + * - Once the coding has been finished, the existing lzma_stream can be + * reused. It is OK to reuse lzma_stream with different initialization + * function without calling lzma_end() first. Old allocations are + * automatically freed. + * + * - Finally, use lzma_end() to free the allocated memory. lzma_end() never + * frees the lzma_stream structure itself. + * + * Application may modify the values of total_in and total_out as it wants. + * They are updated by liblzma to match the amount of data read and + * written, but aren't used for anything else. + */ +typedef struct { + const uint8_t *next_in; /**< Pointer to the next input byte. */ + size_t avail_in; /**< Number of available input bytes in next_in. */ + uint64_t total_in; /**< Total number of bytes read by liblzma. */ + + uint8_t *next_out; /**< Pointer to the next output position. */ + size_t avail_out; /**< Amount of free space in next_out. */ + uint64_t total_out; /**< Total number of bytes written by liblzma. */ + + /** + * \brief Custom memory allocation functions + * + * In most cases this is NULL which makes liblzma use + * the standard malloc() and free(). + */ + lzma_allocator *allocator; + + /** Internal state is not visible to applications. */ + lzma_internal *internal; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. Excluding the initialization of this structure, + * you should not touch these, because the names of these variables + * may change. + */ + void *reserved_ptr1; + void *reserved_ptr2; + void *reserved_ptr3; + void *reserved_ptr4; + uint64_t reserved_int1; + uint64_t reserved_int2; + size_t reserved_int3; + size_t reserved_int4; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + +} lzma_stream; + + +/** + * \brief Initialization for lzma_stream + * + * When you declare an instance of lzma_stream, you can immediately + * initialize it so that initialization functions know that no memory + * has been allocated yet: + * + * lzma_stream strm = LZMA_STREAM_INIT; + * + * If you need to initialize a dynamically allocated lzma_stream, you can use + * memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this + * violates the C standard since NULL may have different internal + * representation than zero, but it should be portable enough in practice. + * Anyway, for maximum portability, you can use something like this: + * + * lzma_stream tmp = LZMA_STREAM_INIT; + * *strm = tmp; + */ +#define LZMA_STREAM_INIT \ + { NULL, 0, 0, NULL, 0, 0, NULL, NULL, \ + NULL, NULL, NULL, NULL, 0, 0, 0, 0, \ + LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM } + + +/** + * \brief Encode or decode data + * + * Once the lzma_stream has been successfully initialized (e.g. with + * lzma_stream_encoder()), the actual encoding or decoding is done + * using this function. The application has to update strm->next_in, + * strm->avail_in, strm->next_out, and strm->avail_out to pass input + * to and get output from liblzma. + * + * See the description of the coder-specific initialization function to find + * out what `action' values are supported by the coder. + */ +extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Free memory allocated for the coder data structures + * + * \param strm Pointer to lzma_stream that is at least initialized + * with LZMA_STREAM_INIT. + * + * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other + * members of the lzma_stream structure are touched. + * + * \note zlib indicates an error if application end()s unfinished + * stream structure. liblzma doesn't do this, and assumes that + * application knows what it is doing. + */ +extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow; + + +/** + * \brief Get the memory usage of decoder filter chain + * + * This function is currently supported only when *strm has been initialized + * with a function that takes a memlimit argument. With other functions, you + * should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage() + * to estimate the memory requirements. + * + * This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big + * the memory usage limit should have been to decode the input. Note that + * this may give misleading information if decoding .xz Streams that have + * multiple Blocks, because each Block can have different memory requirements. + * + * \return How much memory is currently allocated for the filter + * decoders. If no filter chain is currently allocated, + * some non-zero value is still returned, which is less than + * or equal to what any filter chain would indicate as its + * memory requirement. + * + * If this function isn't supported by *strm or some other error + * occurs, zero is returned. + */ +extern LZMA_API(uint64_t) lzma_memusage(const lzma_stream *strm) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the current memory usage limit + * + * This function is supported only when *strm has been initialized with + * a function that takes a memlimit argument. + * + * \return On success, the current memory usage limit is returned + * (always non-zero). On error, zero is returned. + */ +extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Set the memory usage limit + * + * This function is supported only when *strm has been initialized with + * a function that takes a memlimit argument. + * + * \return - LZMA_OK: New memory usage limit successfully set. + * - LZMA_MEMLIMIT_ERROR: The new limit is too small. + * The limit was not changed. + * - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't + * support memory usage limit or memlimit was zero. + */ +extern LZMA_API(lzma_ret) lzma_memlimit_set( + lzma_stream *strm, uint64_t memlimit) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/bcj.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/bcj.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/bcj.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/bcj.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,90 @@ +/** + * \file lzma/bcj.h + * \brief Branch/Call/Jump conversion filters + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/* Filter IDs for lzma_filter.id */ + +#define LZMA_FILTER_X86 LZMA_VLI_C(0x04) + /**< + * Filter for x86 binaries + */ + +#define LZMA_FILTER_POWERPC LZMA_VLI_C(0x05) + /**< + * Filter for Big endian PowerPC binaries + */ + +#define LZMA_FILTER_IA64 LZMA_VLI_C(0x06) + /**< + * Filter for IA-64 (Itanium) binaries. + */ + +#define LZMA_FILTER_ARM LZMA_VLI_C(0x07) + /**< + * Filter for ARM binaries. + */ + +#define LZMA_FILTER_ARMTHUMB LZMA_VLI_C(0x08) + /**< + * Filter for ARM-Thumb binaries. + */ + +#define LZMA_FILTER_SPARC LZMA_VLI_C(0x09) + /**< + * Filter for SPARC binaries. + */ + + +/** + * \brief Options for BCJ filters + * + * The BCJ filters never change the size of the data. Specifying options + * for them is optional: if pointer to options is NULL, default value is + * used. You probably never need to specify options to BCJ filters, so just + * set the options pointer to NULL and be happy. + * + * If options with non-default values have been specified when encoding, + * the same options must also be specified when decoding. + * + * \note At the moment, none of the BCJ filters support + * LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, + * LZMA_OPTIONS_ERROR will be returned. If there is need, + * partial support for LZMA_SYNC_FLUSH can be added in future. + * Partial means that flushing would be possible only at + * offsets that are multiple of 2, 4, or 16 depending on + * the filter, except x86 which cannot be made to support + * LZMA_SYNC_FLUSH predictably. + */ +typedef struct { + /** + * \brief Start offset for conversions + * + * This setting is useful only when the same filter is used + * _separately_ for multiple sections of the same executable file, + * and the sections contain cross-section branch/call/jump + * instructions. In that case it is beneficial to set the start + * offset of the non-first sections so that the relative addresses + * of the cross-section branch/call/jump instructions will use the + * same absolute addresses as in the first section. + * + * When the pointer to options is NULL, the default value (zero) + * is used. + */ + uint32_t start_offset; + +} lzma_options_bcj; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/block.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/block.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/block.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/block.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,530 @@ +/** + * \file lzma/block.h + * \brief .xz Block handling + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Options for the Block and Block Header encoders and decoders + * + * Different Block handling functions use different parts of this structure. + * Some read some members, other functions write, and some do both. Only the + * members listed for reading need to be initialized when the specified + * functions are called. The members marked for writing will be assigned + * new values at some point either by calling the given function or by + * later calls to lzma_code(). + */ +typedef struct { + /** + * \brief Block format version + * + * To prevent API and ABI breakages if new features are needed in + * the Block field, a version number is used to indicate which + * fields in this structure are in use. For now, version must always + * be zero. With non-zero version, most Block related functions will + * return LZMA_OPTIONS_ERROR. + * + * Read by: + * - All functions that take pointer to lzma_block as argument, + * including lzma_block_header_decode(). + * + * Written by: + * - lzma_block_header_decode() + */ + uint32_t version; + + /** + * \brief Size of the Block Header field + * + * This is always a multiple of four. + * + * Read by: + * - lzma_block_header_encode() + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_size() + * - lzma_block_buffer_encode() + */ + uint32_t header_size; +# define LZMA_BLOCK_HEADER_SIZE_MIN 8 +# define LZMA_BLOCK_HEADER_SIZE_MAX 1024 + + /** + * \brief Type of integrity Check + * + * The Check ID is not stored into the Block Header, thus its value + * must be provided also when decoding. + * + * Read by: + * - lzma_block_header_encode() + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_check check; + + /** + * \brief Size of the Compressed Data in bytes + * + * Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder + * will store this value to the Block Header. Block encoder doesn't + * care about this value, but will set it once the encoding has been + * finished. + * + * Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will + * verify that the size of the Compressed Data field matches + * compressed_size. + * + * Usually you don't know this value when encoding in streamed mode, + * and thus cannot write this field into the Block Header. + * + * In non-streamed mode you can reserve space for this field before + * encoding the actual Block. After encoding the data, finish the + * Block by encoding the Block Header. Steps in detail: + * + * - Set compressed_size to some big enough value. If you don't know + * better, use LZMA_VLI_MAX, but remember that bigger values take + * more space in Block Header. + * + * - Call lzma_block_header_size() to see how much space you need to + * reserve for the Block Header. + * + * - Encode the Block using lzma_block_encoder() and lzma_code(). + * It sets compressed_size to the correct value. + * + * - Use lzma_block_header_encode() to encode the Block Header. + * Because space was reserved in the first step, you don't need + * to call lzma_block_header_size() anymore, because due to + * reserving, header_size has to be big enough. If it is "too big", + * lzma_block_header_encode() will add enough Header Padding to + * make Block Header to match the size specified by header_size. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_vli compressed_size; + + /** + * \brief Uncompressed Size in bytes + * + * This is handled very similarly to compressed_size above. + * + * uncompressed_size is needed by fewer functions than + * compressed_size. This is because uncompressed_size isn't + * needed to validate that Block stays within proper limits. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_vli uncompressed_size; + + /** + * \brief Array of filters + * + * There can be 1-4 filters. The end of the array is marked with + * .id = LZMA_VLI_UNKNOWN. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode(): Note that this does NOT free() + * the old filter options structures. All unused filters[] will + * have .id == LZMA_VLI_UNKNOWN and .options == NULL. If + * decoding fails, all filters[] are guaranteed to be + * LZMA_VLI_UNKNOWN and NULL. + * + * \note Because of the array is terminated with + * .id = LZMA_VLI_UNKNOWN, the actual array must + * have LZMA_FILTERS_MAX + 1 members or the Block + * Header decoder will overflow the buffer. + */ + lzma_filter *filters; + + /** + * \brief Raw value stored in the Check field + * + * After successful coding, the first lzma_check_size(check) bytes + * of this array contain the raw value stored in the Check field. + * + * Note that CRC32 and CRC64 are stored in little endian byte order. + * Take it into account if you display the Check values to the user. + * + * Written by: + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + uint8_t raw_check[LZMA_CHECK_SIZE_MAX]; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * with the currently supported options, so it is safe to leave these + * uninitialized. + */ + void *reserved_ptr1; + void *reserved_ptr2; + void *reserved_ptr3; + uint32_t reserved_int1; + uint32_t reserved_int2; + lzma_vli reserved_int3; + lzma_vli reserved_int4; + lzma_vli reserved_int5; + lzma_vli reserved_int6; + lzma_vli reserved_int7; + lzma_vli reserved_int8; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + lzma_bool reserved_bool1; + lzma_bool reserved_bool2; + lzma_bool reserved_bool3; + lzma_bool reserved_bool4; + lzma_bool reserved_bool5; + lzma_bool reserved_bool6; + lzma_bool reserved_bool7; + lzma_bool reserved_bool8; + +} lzma_block; + + +/** + * \brief Decode the Block Header Size field + * + * To decode Block Header using lzma_block_header_decode(), the size of the + * Block Header has to be known and stored into lzma_block.header_size. + * The size can be calculated from the first byte of a Block using this macro. + * Note that if the first byte is 0x00, it indicates beginning of Index; use + * this macro only when the byte is not 0x00. + * + * There is no encoding macro, because Block Header encoder is enough for that. + */ +#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4) + + +/** + * \brief Calculate Block Header Size + * + * Calculate the minimum size needed for the Block Header field using the + * settings specified in the lzma_block structure. Note that it is OK to + * increase the calculated header_size value as long as it is a multiple of + * four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size + * just means that lzma_block_header_encode() will add Header Padding. + * + * \return - LZMA_OK: Size calculated successfully and stored to + * block->header_size. + * - LZMA_OPTIONS_ERROR: Unsupported version, filters or + * filter options. + * - LZMA_PROG_ERROR: Invalid values like compressed_size == 0. + * + * \note This doesn't check that all the options are valid i.e. this + * may return LZMA_OK even if lzma_block_header_encode() or + * lzma_block_encoder() would fail. If you want to validate the + * filter chain, consider using lzma_memlimit_encoder() which as + * a side-effect validates the filter chain. + */ +extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Block Header + * + * The caller must have calculated the size of the Block Header already with + * lzma_block_header_size(). If a value larger than the one calculated by + * lzma_block_header_size() is used, the Block Header will be padded to the + * specified size. + * + * \param out Beginning of the output buffer. This must be + * at least block->header_size bytes. + * \param block Block options to be encoded. + * + * \return - LZMA_OK: Encoding was successful. block->header_size + * bytes were written to output buffer. + * - LZMA_OPTIONS_ERROR: Invalid or unsupported options. + * - LZMA_PROG_ERROR: Invalid arguments, for example + * block->header_size is invalid or block->filters is NULL. + */ +extern LZMA_API(lzma_ret) lzma_block_header_encode( + const lzma_block *block, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Block Header + * + * block->version should be set to the highest value supported by the + * application; currently the only possible version is zero. This function + * will set version to the lowest value that still supports all the features + * required by the Block Header. + * + * The size of the Block Header must have already been decoded with + * lzma_block_header_size_decode() macro and stored to block->header_size. + * + * block->filters must have been allocated, but they don't need to be + * initialized (possible existing filter options are not freed). + * + * \param block Destination for Block options. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() (and also free() + * if an error occurs). + * \param in Beginning of the input buffer. This must be + * at least block->header_size bytes. + * + * \return - LZMA_OK: Decoding was successful. block->header_size + * bytes were read from the input buffer. + * - LZMA_OPTIONS_ERROR: The Block Header specifies some + * unsupported options such as unsupported filters. This can + * happen also if block->version was set to a too low value + * compared to what would be required to properly represent + * the information stored in the Block Header. + * - LZMA_DATA_ERROR: Block Header is corrupt, for example, + * the CRC32 doesn't match. + * - LZMA_PROG_ERROR: Invalid arguments, for example + * block->header_size is invalid or block->filters is NULL. + */ +extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block, + lzma_allocator *allocator, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Validate and set Compressed Size according to Unpadded Size + * + * Block Header stores Compressed Size, but Index has Unpadded Size. If the + * application has already parsed the Index and is now decoding Blocks, + * it can calculate Compressed Size from Unpadded Size. This function does + * exactly that with error checking: + * + * - Compressed Size calculated from Unpadded Size must be positive integer, + * that is, Unpadded Size must be big enough that after Block Header and + * Check fields there's still at least one byte for Compressed Size. + * + * - If Compressed Size was present in Block Header, the new value + * calculated from Unpadded Size is compared against the value + * from Block Header. + * + * \note This function must be called _after_ decoding the Block Header + * field so that it can properly validate Compressed Size if it + * was present in Block Header. + * + * \return - LZMA_OK: block->compressed_size was set successfully. + * - LZMA_DATA_ERROR: unpadded_size is too small compared to + * block->header_size and lzma_check_size(block->check). + * - LZMA_PROG_ERROR: Some values are invalid. For example, + * block->header_size must be a multiple of four and + * between 8 and 1024 inclusive. + */ +extern LZMA_API(lzma_ret) lzma_block_compressed_size( + lzma_block *block, lzma_vli unpadded_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate Unpadded Size + * + * The Index field stores Unpadded Size and Uncompressed Size. The latter + * can be taken directly from the lzma_block structure after coding a Block, + * but Unpadded Size needs to be calculated from Block Header Size, + * Compressed Size, and size of the Check field. This is where this function + * is needed. + * + * \return Unpadded Size on success, or zero on error. + */ +extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate the total encoded size of a Block + * + * This is equivalent to lzma_block_unpadded_size() except that the returned + * value includes the size of the Block Padding field. + * + * \return On success, total encoded size of the Block. On error, + * zero is returned. + */ +extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize .xz Block encoder + * + * Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the + * filter chain supports it), and LZMA_FINISH. + * + * \return - LZMA_OK: All good, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID + * that is not supported by this buid of liblzma. Initializing + * the encoder failed. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_encoder( + lzma_stream *strm, lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Block decoder + * + * Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using + * LZMA_FINISH is not required. It is supported only for convenience. + * + * \return - LZMA_OK: All good, continue with lzma_code(). + * - LZMA_UNSUPPORTED_CHECK: Initialization was successful, but + * the given Check ID is not supported, thus Check will be + * ignored. + * - LZMA_PROG_ERROR + * - LZMA_MEM_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_decoder( + lzma_stream *strm, lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate maximum output size for single-call Block encoding + * + * This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks. + * See the documentation of lzma_stream_buffer_bound(). + */ +extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size) + lzma_nothrow; + + +/** + * \brief Single-call .xz Block encoder + * + * In contrast to the multi-call encoder initialized with + * lzma_block_encoder(), this function encodes also the Block Header. This + * is required to make it possible to write appropriate Block Header also + * in case the data isn't compressible, and different filter chain has to be + * used to encode the data in uncompressed form using uncompressed chunks + * of the LZMA2 filter. + * + * When the data isn't compressible, header_size, compressed_size, and + * uncompressed_size are set just like when the data was compressible, but + * it is possible that header_size is too small to hold the filter chain + * specified in block->filters, because that isn't necessarily the filter + * chain that was actually used to encode the data. lzma_block_unpadded_size() + * still works normally, because it doesn't read the filters array. + * + * \param block Block options: block->version, block->check, + * and block->filters must have been initialized. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_buffer_encode( + lzma_block *block, lzma_allocator *allocator, + const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Block decoder + * + * This is single-call equivalent of lzma_block_decoder(), and requires that + * the caller has already decoded Block Header and checked its memory usage. + * + * \param block Block options just like with lzma_block_decoder(). + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_OPTIONS_ERROR + * - LZMA_DATA_ERROR + * - LZMA_MEM_ERROR + * - LZMA_BUF_ERROR: Output buffer was too small. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_buffer_decode( + lzma_block *block, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/check.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/check.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/check.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/check.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,150 @@ +/** + * \file lzma/check.h + * \brief Integrity checks + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Type of the integrity check (Check ID) + * + * The .xz format supports multiple types of checks that are calculated + * from the uncompressed data. They vary in both speed and ability to + * detect errors. + */ +typedef enum { + LZMA_CHECK_NONE = 0, + /**< + * No Check is calculated. + * + * Size of the Check field: 0 bytes + */ + + LZMA_CHECK_CRC32 = 1, + /**< + * CRC32 using the polynomial from the IEEE 802.3 standard + * + * Size of the Check field: 4 bytes + */ + + LZMA_CHECK_CRC64 = 4, + /**< + * CRC64 using the polynomial from the ECMA-182 standard + * + * Size of the Check field: 8 bytes + */ + + LZMA_CHECK_SHA256 = 10 + /**< + * SHA-256 + * + * Size of the Check field: 32 bytes + */ +} lzma_check; + + +/** + * \brief Maximum valid Check ID + * + * The .xz file format specification specifies 16 Check IDs (0-15). Some + * of them are only reserved, that is, no actual Check algorithm has been + * assigned. When decoding, liblzma still accepts unknown Check IDs for + * future compatibility. If a valid but unsupported Check ID is detected, + * liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, + * LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h. + */ +#define LZMA_CHECK_ID_MAX 15 + + +/** + * \brief Test if the given Check ID is supported + * + * Return true if the given Check ID is supported by this liblzma build. + * Otherwise false is returned. It is safe to call this with a value that + * is not in the range [0, 15]; in that case the return value is always false. + * + * You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always + * supported (even if liblzma is built with limited features). + */ +extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Get the size of the Check field with the given Check ID + * + * Although not all Check IDs have a check algorithm associated, the size of + * every Check is already frozen. This function returns the size (in bytes) of + * the Check field with the specified Check ID. The values are: + * { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 } + * + * If the argument is not in the range [0, 15], UINT32_MAX is returned. + */ +extern LZMA_API(uint32_t) lzma_check_size(lzma_check check) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Maximum size of a Check field + */ +#define LZMA_CHECK_SIZE_MAX 64 + + +/** + * \brief Calculate CRC32 + * + * Calculate CRC32 using the polynomial from the IEEE 802.3 standard. + * + * \param buf Pointer to the input buffer + * \param size Size of the input buffer + * \param crc Previously returned CRC value. This is used to + * calculate the CRC of a big buffer in smaller chunks. + * Set to zero when starting a new calculation. + * + * \return Updated CRC value, which can be passed to this function + * again to continue CRC calculation. + */ +extern LZMA_API(uint32_t) lzma_crc32( + const uint8_t *buf, size_t size, uint32_t crc) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate CRC64 + * + * Calculate CRC64 using the polynomial from the ECMA-182 standard. + * + * This function is used similarly to lzma_crc32(). See its documentation. + */ +extern LZMA_API(uint64_t) lzma_crc64( + const uint8_t *buf, size_t size, uint64_t crc) + lzma_nothrow lzma_attr_pure; + + +/* + * SHA-256 functions are currently not exported to public API. + * Contact Lasse Collin if you think it should be. + */ + + +/** + * \brief Get the type of the integrity check + * + * This function can be called only immediately after lzma_code() has + * returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. + * Calling this function in any other situation has undefined behavior. + */ +extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/container.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/container.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/container.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/container.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,424 @@ +/** + * \file lzma/container.h + * \brief File formats + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/************ + * Encoding * + ************/ + +/** + * \brief Default compression preset + * + * It's not straightforward to recommend a default preset, because in some + * cases keeping the resource usage relatively low is more important that + * getting the maximum compression ratio. + */ +#define LZMA_PRESET_DEFAULT UINT32_C(6) + + +/** + * \brief Mask for preset level + * + * This is useful only if you need to extract the level from the preset + * variable. That should be rare. + */ +#define LZMA_PRESET_LEVEL_MASK UINT32_C(0x1F) + + +/* + * Preset flags + * + * Currently only one flag is defined. + */ + +/** + * \brief Extreme compression preset + * + * This flag modifies the preset to make the encoding significantly slower + * while improving the compression ratio only marginally. This is useful + * when you don't mind wasting time to get as small result as possible. + * + * This flag doesn't affect the memory usage requirements of the decoder (at + * least not significantly). The memory usage of the encoder may be increased + * a little but only at the lowest preset levels (0-3). + */ +#define LZMA_PRESET_EXTREME (UINT32_C(1) << 31) + + +/** + * \brief Calculate approximate memory usage of easy encoder + * + * This function is a wrapper for lzma_raw_encoder_memusage(). + * + * \param preset Compression preset (level and possible flags) + * + * \return Number of bytes of memory required for the given + * preset when encoding. If an error occurs, for example + * due to unsupported preset, UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate approximate decoder memory usage of a preset + * + * This function is a wrapper for lzma_raw_decoder_memusage(). + * + * \param preset Compression preset (level and possible flags) + * + * \return Number of bytes of memory required to decompress a file + * that was compressed using the given preset. If an error + * occurs, for example due to unsupported preset, UINT64_MAX + * is returned. + */ +extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize .xz Stream encoder using a preset number + * + * This function is intended for those who just want to use the basic features + * if liblzma (that is, most developers out there). + * + * \param strm Pointer to lzma_stream that is at least initialized + * with LZMA_STREAM_INIT. + * \param preset Compression preset to use. A preset consist of level + * number and zero or more flags. Usually flags aren't + * used, so preset is simply a number [0, 9] which match + * the options -0 ... -9 of the xz command line tool. + * Additional flags can be be set using bitwise-or with + * the preset level number, e.g. 6 | LZMA_PRESET_EXTREME. + * \param check Integrity check type to use. See check.h for available + * checks. The xz command line tool defaults to + * LZMA_CHECK_CRC64, which is a good choice if you are + * unsure. LZMA_CHECK_CRC32 is good too as long as the + * uncompressed file is not many gigabytes. + * + * \return - LZMA_OK: Initialization succeeded. Use lzma_code() to + * encode your data. + * - LZMA_MEM_ERROR: Memory allocation failed. + * - LZMA_OPTIONS_ERROR: The given compression preset is not + * supported by this build of liblzma. + * - LZMA_UNSUPPORTED_CHECK: The given check type is not + * supported by this liblzma build. + * - LZMA_PROG_ERROR: One or more of the parameters have values + * that will never be valid. For example, strm == NULL. + * + * If initialization fails (return value is not LZMA_OK), all the memory + * allocated for *strm by liblzma is always freed. Thus, there is no need + * to call lzma_end() after failed initialization. + * + * If initialization succeeds, use lzma_code() to do the actual encoding. + * Valid values for `action' (the second argument of lzma_code()) are + * LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future, + * there may be compression levels or flags that don't support LZMA_SYNC_FLUSH. + */ +extern LZMA_API(lzma_ret) lzma_easy_encoder( + lzma_stream *strm, uint32_t preset, lzma_check check) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Stream encoding using a preset number + * + * The maximum required output buffer size can be calculated with + * lzma_stream_buffer_bound(). + * + * \param preset Compression preset to use. See the description + * in lzma_easy_encoder(). + * \param check Type of the integrity check to calculate from + * uncompressed data. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_easy_buffer_encode( + uint32_t preset, lzma_check check, + lzma_allocator *allocator, const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Initialize .xz Stream encoder using a custom filter chain + * + * \param strm Pointer to properly prepared lzma_stream + * \param filters Array of filters. This must be terminated with + * filters[n].id = LZMA_VLI_UNKNOWN. See filter.h for + * more information. + * \param check Type of the integrity check to calculate from + * uncompressed data. + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_encoder(lzma_stream *strm, + const lzma_filter *filters, lzma_check check) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .lzma encoder (legacy file format) + * + * The .lzma format is sometimes called the LZMA_Alone format, which is the + * reason for the name of this function. The .lzma format supports only the + * LZMA1 filter. There is no support for integrity checks like CRC32. + * + * Use this function if and only if you need to create files readable by + * legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format + * is strongly recommended. + * + * The valid action values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * No kind of flushing is supported, because the file format doesn't make + * it possible. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_alone_encoder( + lzma_stream *strm, const lzma_options_lzma *options) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate output buffer size for single-call Stream encoder + * + * When trying to compress uncompressible data, the encoded size will be + * slightly bigger than the input data. This function calculates how much + * output buffer space is required to be sure that lzma_stream_buffer_encode() + * doesn't return LZMA_BUF_ERROR. + * + * The calculated value is not exact, but it is guaranteed to be big enough. + * The actual maximum output space required may be slightly smaller (up to + * about 100 bytes). This should not be a problem in practice. + * + * If the calculated maximum size doesn't fit into size_t or would make the + * Stream grow past LZMA_VLI_MAX (which should never happen in practice), + * zero is returned to indicate the error. + * + * \note The limit calculated by this function applies only to + * single-call encoding. Multi-call encoding may (and probably + * will) have larger maximum expansion when encoding + * uncompressible data. Currently there is no function to + * calculate the maximum expansion of multi-call encoding. + */ +extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size) + lzma_nothrow; + + +/** + * \brief Single-call .xz Stream encoder + * + * \param filters Array of filters. This must be terminated with + * filters[n].id = LZMA_VLI_UNKNOWN. See filter.h + * for more information. + * \param check Type of the integrity check to calculate from + * uncompressed data. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_buffer_encode( + lzma_filter *filters, lzma_check check, + lzma_allocator *allocator, const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/************ + * Decoding * + ************/ + +/** + * This flag makes lzma_code() return LZMA_NO_CHECK if the input stream + * being decoded has no integrity check. Note that when used with + * lzma_auto_decoder(), all .lzma files will trigger LZMA_NO_CHECK + * if LZMA_TELL_NO_CHECK is used. + */ +#define LZMA_TELL_NO_CHECK UINT32_C(0x01) + + +/** + * This flag makes lzma_code() return LZMA_UNSUPPORTED_CHECK if the input + * stream has an integrity check, but the type of the integrity check is not + * supported by this liblzma version or build. Such files can still be + * decoded, but the integrity check cannot be verified. + */ +#define LZMA_TELL_UNSUPPORTED_CHECK UINT32_C(0x02) + + +/** + * This flag makes lzma_code() return LZMA_GET_CHECK as soon as the type + * of the integrity check is known. The type can then be got with + * lzma_get_check(). + */ +#define LZMA_TELL_ANY_CHECK UINT32_C(0x04) + + +/** + * This flag enables decoding of concatenated files with file formats that + * allow concatenating compressed files as is. From the formats currently + * supported by liblzma, only the .xz format allows concatenated files. + * Concatenated files are not allowed with the legacy .lzma format. + * + * This flag also affects the usage of the `action' argument for lzma_code(). + * When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END + * unless LZMA_FINISH is used as `action'. Thus, the application has to set + * LZMA_FINISH in the same way as it does when encoding. + * + * If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH + * as `action' for lzma_code(), but the usage of LZMA_FINISH isn't required. + */ +#define LZMA_CONCATENATED UINT32_C(0x08) + + +/** + * \brief Initialize .xz Stream decoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param memlimit Memory usage limit as bytes. Use UINT64_MAX + * to effectively disable the limiter. + * \param flags Bitwise-or of zero or more of the decoder flags: + * LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, + * LZMA_TELL_ANY_CHECK, LZMA_CONCATENATED + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR: Cannot allocate memory. + * - LZMA_OPTIONS_ERROR: Unsupported flags + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_decoder( + lzma_stream *strm, uint64_t memlimit, uint32_t flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode .xz Streams and .lzma files with autodetection + * + * This decoder autodetects between the .xz and .lzma file formats, and + * calls lzma_stream_decoder() or lzma_alone_decoder() once the type + * of the input file has been detected. + * + * \param strm Pointer to properly prepared lzma_stream + * \param memlimit Memory usage limit as bytes. Use UINT64_MAX + * to effectively disable the limiter. + * \param flags Bitwise-or of flags, or zero for no flags. + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR: Cannot allocate memory. + * - LZMA_OPTIONS_ERROR: Unsupported flags + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_auto_decoder( + lzma_stream *strm, uint64_t memlimit, uint32_t flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .lzma decoder (legacy file format) + * + * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. + * There is no need to use LZMA_FINISH, but allowing it may simplify + * certain types of applications. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_alone_decoder( + lzma_stream *strm, uint64_t memlimit) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Stream decoder + * + * \param memlimit Pointer to how much memory the decoder is allowed + * to allocate. The value pointed by this pointer is + * modified if and only if LZMA_MEMLIMIT_ERROR is + * returned. + * \param flags Bitwise-or of zero or more of the decoder flags: + * LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, + * LZMA_CONCATENATED. Note that LZMA_TELL_ANY_CHECK + * is not allowed and will return LZMA_PROG_ERROR. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if decoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_DATA_ERROR + * - LZMA_NO_CHECK: This can be returned only if using + * the LZMA_TELL_NO_CHECK flag. + * - LZMA_UNSUPPORTED_CHECK: This can be returned only if using + * the LZMA_TELL_UNSUPPORTED_CHECK flag. + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. + * The minimum required memlimit value was stored to *memlimit. + * - LZMA_BUF_ERROR: Output buffer was too small. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_buffer_decode( + uint64_t *memlimit, uint32_t flags, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/delta.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/delta.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/delta.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/delta.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,77 @@ +/** + * \file lzma/delta.h + * \brief Delta filter + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Filter ID + * + * Filter ID of the Delta filter. This is used as lzma_filter.id. + */ +#define LZMA_FILTER_DELTA LZMA_VLI_C(0x03) + + +/** + * \brief Type of the delta calculation + * + * Currently only byte-wise delta is supported. Other possible types could + * be, for example, delta of 16/32/64-bit little/big endian integers, but + * these are not currently planned since byte-wise delta is almost as good. + */ +typedef enum { + LZMA_DELTA_TYPE_BYTE +} lzma_delta_type; + + +/** + * \brief Options for the Delta filter + * + * These options are needed by both encoder and decoder. + */ +typedef struct { + /** For now, this must always be LZMA_DELTA_TYPE_BYTE. */ + lzma_delta_type type; + + /** + * \brief Delta distance + * + * With the only currently supported type, LZMA_DELTA_TYPE_BYTE, + * the distance is as bytes. + * + * Examples: + * - 16-bit stereo audio: distance = 4 bytes + * - 24-bit RGB image data: distance = 3 bytes + */ + uint32_t dist; +# define LZMA_DELTA_DIST_MIN 1 +# define LZMA_DELTA_DIST_MAX 256 + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these + * uninitialized. + */ + uint32_t reserved_int1; + uint32_t reserved_int2; + uint32_t reserved_int3; + uint32_t reserved_int4; + void *reserved_ptr1; + void *reserved_ptr2; + +} lzma_options_delta; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/filter.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/filter.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/filter.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/filter.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,424 @@ +/** + * \file lzma/filter.h + * \brief Common filter related types and functions + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Maximum number of filters in a chain + * + * A filter chain can have 1-4 filters, of which three are allowed to change + * the size of the data. Usually only one or two filters are needed. + */ +#define LZMA_FILTERS_MAX 4 + + +/** + * \brief Filter options + * + * This structure is used to pass Filter ID and a pointer filter's + * options to liblzma. A few functions work with a single lzma_filter + * structure, while most functions expect a filter chain. + * + * A filter chain is indicated with an array of lzma_filter structures. + * The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter + * array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to + * be able to hold any arbitrary filter chain. This is important when + * using lzma_block_header_decode() from block.h, because too small + * array would make liblzma write past the end of the filters array. + */ +typedef struct { + /** + * \brief Filter ID + * + * Use constants whose name begin with `LZMA_FILTER_' to specify + * different filters. In an array of lzma_filter structures, use + * LZMA_VLI_UNKNOWN to indicate end of filters. + * + * \note This is not an enum, because on some systems enums + * cannot be 64-bit. + */ + lzma_vli id; + + /** + * \brief Pointer to filter-specific options structure + * + * If the filter doesn't need options, set this to NULL. If id is + * set to LZMA_VLI_UNKNOWN, options is ignored, and thus + * doesn't need be initialized. + */ + void *options; + +} lzma_filter; + + +/** + * \brief Test if the given Filter ID is supported for encoding + * + * Return true if the give Filter ID is supported for encoding by this + * liblzma build. Otherwise false is returned. + * + * There is no way to list which filters are available in this particular + * liblzma version and build. It would be useless, because the application + * couldn't know what kind of options the filter would need. + */ +extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Test if the given Filter ID is supported for decoding + * + * Return true if the give Filter ID is supported for decoding by this + * liblzma build. Otherwise false is returned. + */ +extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Copy the filters array + * + * Copy the Filter IDs and filter-specific options from src to dest. + * Up to LZMA_FILTERS_MAX filters are copied, plus the terminating + * .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least + * LZMA_FILTERS_MAX + 1 elements space unless the caller knows that + * src is smaller than that. + * + * Unless the filter-specific options is NULL, the Filter ID has to be + * supported by liblzma, because liblzma needs to know the size of every + * filter-specific options structure. The filter-specific options are not + * validated. If options is NULL, any unsupported Filter IDs are copied + * without returning an error. + * + * Old filter-specific options in dest are not freed, so dest doesn't + * need to be initialized by the caller in any way. + * + * If an error occurs, memory possibly already allocated by this function + * is always freed. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options + * is not NULL. + * - LZMA_PROG_ERROR: src or dest is NULL. + */ +extern LZMA_API(lzma_ret) lzma_filters_copy(const lzma_filter *src, + lzma_filter *dest, lzma_allocator *allocator) lzma_nothrow; + + +/** + * \brief Calculate approximate memory requirements for raw encoder + * + * This function can be used to calculate the memory requirements for + * Block and Stream encoders too because Block and Stream encoders don't + * need significantly more memory than raw encoder. + * + * \param filters Array of filters terminated with + * .id == LZMA_VLI_UNKNOWN. + * + * \return Number of bytes of memory required for the given + * filter chain when encoding. If an error occurs, + * for example due to unsupported filter chain, + * UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate approximate memory requirements for raw decoder + * + * This function can be used to calculate the memory requirements for + * Block and Stream decoders too because Block and Stream decoders don't + * need significantly more memory than raw decoder. + * + * \param filters Array of filters terminated with + * .id == LZMA_VLI_UNKNOWN. + * + * \return Number of bytes of memory required for the given + * filter chain when decoding. If an error occurs, + * for example due to unsupported filter chain, + * UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize raw encoder + * + * This function may be useful when implementing custom file formats. + * + * \param strm Pointer to properly prepared lzma_stream + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * + * The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the + * filter chain supports it), or LZMA_FINISH. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_raw_encoder( + lzma_stream *strm, const lzma_filter *filters) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize raw decoder + * + * The initialization of raw decoder goes similarly to raw encoder. + * + * The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using + * LZMA_FINISH is not required, it is supported just for convenience. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_raw_decoder( + lzma_stream *strm, const lzma_filter *filters) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Update the filter chain in the encoder + * + * This function is for advanced users only. This function has two slightly + * different purposes: + * + * - After LZMA_FULL_FLUSH when using Stream encoder: Set a new filter + * chain, which will be used starting from the next Block. + * + * - After LZMA_SYNC_FLUSH using Raw, Block, or Stream encoder: Change + * the filter-specific options in the middle of encoding. The actual + * filters in the chain (Filter IDs) cannot be changed. In the future, + * it might become possible to change the filter options without + * using LZMA_SYNC_FLUSH. + * + * While rarely useful, this function may be called also when no data has + * been compressed yet. In that case, this function will behave as if + * LZMA_FULL_FLUSH (Stream encoder) or LZMA_SYNC_FLUSH (Raw or Block + * encoder) had been used right before calling this function. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_filters_update( + lzma_stream *strm, const lzma_filter *filters) lzma_nothrow; + + +/** + * \brief Single-call raw encoder + * + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + * + * \note There is no function to calculate how big output buffer + * would surely be big enough. (lzma_stream_buffer_bound() + * works only for lzma_stream_buffer_encode(); raw encoder + * won't necessarily meet that bound.) + */ +extern LZMA_API(lzma_ret) lzma_raw_buffer_encode( + const lzma_filter *filters, lzma_allocator *allocator, + const uint8_t *in, size_t in_size, uint8_t *out, + size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Single-call raw decoder + * + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + */ +extern LZMA_API(lzma_ret) lzma_raw_buffer_decode( + const lzma_filter *filters, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Get the size of the Filter Properties field + * + * This function may be useful when implementing custom file formats + * using the raw encoder and decoder. + * + * \param size Pointer to uint32_t to hold the size of the properties + * \param filter Filter ID and options (the size of the properties may + * vary depending on the options) + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + * + * \note This function validates the Filter ID, but does not + * necessarily validate the options. Thus, it is possible + * that this returns LZMA_OK while the following call to + * lzma_properties_encode() returns LZMA_OPTIONS_ERROR. + */ +extern LZMA_API(lzma_ret) lzma_properties_size( + uint32_t *size, const lzma_filter *filter) lzma_nothrow; + + +/** + * \brief Encode the Filter Properties field + * + * \param filter Filter ID and options + * \param props Buffer to hold the encoded options. The size of + * buffer must have been already determined with + * lzma_properties_size(). + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + * + * \note Even this function won't validate more options than actually + * necessary. Thus, it is possible that encoding the properties + * succeeds but using the same options to initialize the encoder + * will fail. + * + * \note If lzma_properties_size() indicated that the size + * of the Filter Properties field is zero, calling + * lzma_properties_encode() is not required, but it + * won't do any harm either. + */ +extern LZMA_API(lzma_ret) lzma_properties_encode( + const lzma_filter *filter, uint8_t *props) lzma_nothrow; + + +/** + * \brief Decode the Filter Properties field + * + * \param filter filter->id must have been set to the correct + * Filter ID. filter->options doesn't need to be + * initialized (it's not freed by this function). The + * decoded options will be stored to filter->options. + * filter->options is set to NULL if there are no + * properties or if an error occurs. + * \param allocator Custom memory allocator used to allocate the + * options. Set to NULL to use the default malloc(), + * and in case of an error, also free(). + * \param props Input buffer containing the properties. + * \param props_size Size of the properties. This must be the exact + * size; giving too much or too little input will + * return LZMA_OPTIONS_ERROR. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + */ +extern LZMA_API(lzma_ret) lzma_properties_decode( + lzma_filter *filter, lzma_allocator *allocator, + const uint8_t *props, size_t props_size) lzma_nothrow; + + +/** + * \brief Calculate encoded size of a Filter Flags field + * + * Knowing the size of Filter Flags is useful to know when allocating + * memory to hold the encoded Filter Flags. + * + * \param size Pointer to integer to hold the calculated size + * \param filter Filter ID and associated options whose encoded + * size is to be calculated + * + * \return - LZMA_OK: *size set successfully. Note that this doesn't + * guarantee that filter->options is valid, thus + * lzma_filter_flags_encode() may still fail. + * - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options. + * - LZMA_PROG_ERROR: Invalid options + * + * \note If you need to calculate size of List of Filter Flags, + * you need to loop over every lzma_filter entry. + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_size( + uint32_t *size, const lzma_filter *filter) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Filter Flags into given buffer + * + * In contrast to some functions, this doesn't allocate the needed buffer. + * This is due to how this function is used internally by liblzma. + * + * \param filter Filter ID and options to be encoded + * \param out Beginning of the output buffer + * \param out_pos out[*out_pos] is the next write position. This + * is updated by the encoder. + * \param out_size out[out_size] is the first byte to not write. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: Invalid or unsupported options. + * - LZMA_PROG_ERROR: Invalid options or not enough output + * buffer space (you should have checked it with + * lzma_filter_flags_size()). + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_encode(const lzma_filter *filter, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Filter Flags from given buffer + * + * The decoded result is stored into *filter. The old value of + * filter->options is not free()d. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_decode( + lzma_filter *filter, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow lzma_attr_warn_unused_result; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/hardware.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/hardware.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/hardware.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/hardware.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,50 @@ +/** + * \file lzma/hardware.h + * \brief Hardware information + * + * Since liblzma can consume a lot of system resources, it also provides + * ways to limit the resource usage. Applications linking against liblzma + * need to do the actual decisions how much resources to let liblzma to use. + * To ease making these decisions, liblzma provides functions to find out + * the relevant capabilities of the underlaying hardware. Currently there + * is only a function to find out the amount of RAM, but in the future there + * will be also a function to detect how many concurrent threads the system + * can run. + * + * \note On some operating systems, these function may temporarily + * load a shared library or open file descriptor(s) to find out + * the requested hardware information. Unless the application + * assumes that specific file descriptors are not touched by + * other threads, this should have no effect on thread safety. + * Possible operations involving file descriptors will restart + * the syscalls if they return EINTR. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Get the total amount of physical memory (RAM) in bytes + * + * This function may be useful when determining a reasonable memory + * usage limit for decompressing or how much memory it is OK to use + * for compressing. + * + * \return On success, the total amount of physical memory in bytes + * is returned. If the amount of RAM cannot be determined, + * zero is returned. This can happen if an error occurs + * or if there is no code in liblzma to detect the amount + * of RAM on the specific operating system. + */ +extern LZMA_API(uint64_t) lzma_physmem(void) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/index.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/index.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/index.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/index.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,682 @@ +/** + * \file lzma/index.h + * \brief Handling of .xz Index and related information + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Opaque data type to hold the Index(es) and other information + * + * lzma_index often holds just one .xz Index and possibly the Stream Flags + * of the same Stream and size of the Stream Padding field. However, + * multiple lzma_indexes can be concatenated with lzma_index_cat() and then + * there may be information about multiple Streams in the same lzma_index. + * + * Notes about thread safety: Only one thread may modify lzma_index at + * a time. All functions that take non-const pointer to lzma_index + * modify it. As long as no thread is modifying the lzma_index, getting + * information from the same lzma_index can be done from multiple threads + * at the same time with functions that take a const pointer to + * lzma_index or use lzma_index_iter. The same iterator must be used + * only by one thread at a time, of course, but there can be as many + * iterators for the same lzma_index as needed. + */ +typedef struct lzma_index_s lzma_index; + + +/** + * \brief Iterator to get information about Blocks and Streams + */ +typedef struct { + struct { + /** + * \brief Pointer to Stream Flags + * + * This is NULL if Stream Flags have not been set for + * this Stream with lzma_index_stream_flags(). + */ + const lzma_stream_flags *flags; + + const void *reserved_ptr1; + const void *reserved_ptr2; + const void *reserved_ptr3; + + /** + * \brief Stream number in the lzma_index + * + * The first Stream is 1. + */ + lzma_vli number; + + /** + * \brief Number of Blocks in the Stream + * + * If this is zero, the block structure below has + * undefined values. + */ + lzma_vli block_count; + + /** + * \brief Compressed start offset of this Stream + * + * The offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + */ + lzma_vli compressed_offset; + + /** + * \brief Uncompressed start offset of this Stream + * + * The offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + */ + lzma_vli uncompressed_offset; + + /** + * \brief Compressed size of this Stream + * + * This includes all headers except the possible + * Stream Padding after this Stream. + */ + lzma_vli compressed_size; + + /** + * \brief Uncompressed size of this Stream + */ + lzma_vli uncompressed_size; + + /** + * \brief Size of Stream Padding after this Stream + * + * If it hasn't been set with lzma_index_stream_padding(), + * this defaults to zero. Stream Padding is always + * a multiple of four bytes. + */ + lzma_vli padding; + + lzma_vli reserved_vli1; + lzma_vli reserved_vli2; + lzma_vli reserved_vli3; + lzma_vli reserved_vli4; + } stream; + + struct { + /** + * \brief Block number in the file + * + * The first Block is 1. + */ + lzma_vli number_in_file; + + /** + * \brief Compressed start offset of this Block + * + * This offset is relative to the beginning of the + * lzma_index (i.e. usually the beginning of the .xz file). + * Normally this is where you should seek in the .xz file + * to start decompressing this Block. + */ + lzma_vli compressed_file_offset; + + /** + * \brief Uncompressed start offset of this Block + * + * This offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + * + * When doing random-access reading, it is possible that + * the target offset is not exactly at Block boundary. One + * will need to compare the target offset against + * uncompressed_file_offset or uncompressed_stream_offset, + * and possibly decode and throw away some amount of data + * before reaching the target offset. + */ + lzma_vli uncompressed_file_offset; + + /** + * \brief Block number in this Stream + * + * The first Block is 1. + */ + lzma_vli number_in_stream; + + /** + * \brief Compressed start offset of this Block + * + * This offset is relative to the beginning of the Stream + * containing this Block. + */ + lzma_vli compressed_stream_offset; + + /** + * \brief Uncompressed start offset of this Block + * + * This offset is relative to the beginning of the Stream + * containing this Block. + */ + lzma_vli uncompressed_stream_offset; + + /** + * \brief Uncompressed size of this Block + * + * You should pass this to the Block decoder if you will + * decode this Block. It will allow the Block decoder to + * validate the uncompressed size. + */ + lzma_vli uncompressed_size; + + /** + * \brief Unpadded size of this Block + * + * You should pass this to the Block decoder if you will + * decode this Block. It will allow the Block decoder to + * validate the unpadded size. + */ + lzma_vli unpadded_size; + + /** + * \brief Total compressed size + * + * This includes all headers and padding in this Block. + * This is useful if you need to know how many bytes + * the Block decoder will actually read. + */ + lzma_vli total_size; + + lzma_vli reserved_vli1; + lzma_vli reserved_vli2; + lzma_vli reserved_vli3; + lzma_vli reserved_vli4; + + const void *reserved_ptr1; + const void *reserved_ptr2; + const void *reserved_ptr3; + const void *reserved_ptr4; + } block; + + /* + * Internal data which is used to store the state of the iterator. + * The exact format may vary between liblzma versions, so don't + * touch these in any way. + */ + union { + const void *p; + size_t s; + lzma_vli v; + } internal[6]; +} lzma_index_iter; + + +/** + * \brief Operation mode for lzma_index_iter_next() + */ +typedef enum { + LZMA_INDEX_ITER_ANY = 0, + /**< + * \brief Get the next Block or Stream + * + * Go to the next Block if the current Stream has at least + * one Block left. Otherwise go to the next Stream even if + * it has no Blocks. If the Stream has no Blocks + * (lzma_index_iter.stream.block_count == 0), + * lzma_index_iter.block will have undefined values. + */ + + LZMA_INDEX_ITER_STREAM = 1, + /**< + * \brief Get the next Stream + * + * Go to the next Stream even if the current Stream has + * unread Blocks left. If the next Stream has at least one + * Block, the iterator will point to the first Block. + * If there are no Blocks, lzma_index_iter.block will have + * undefined values. + */ + + LZMA_INDEX_ITER_BLOCK = 2, + /**< + * \brief Get the next Block + * + * Go to the next Block if the current Stream has at least + * one Block left. If the current Stream has no Blocks left, + * the next Stream with at least one Block is located and + * the iterator will be made to point to the first Block of + * that Stream. + */ + + LZMA_INDEX_ITER_NONEMPTY_BLOCK = 3 + /**< + * \brief Get the next non-empty Block + * + * This is like LZMA_INDEX_ITER_BLOCK except that it will + * skip Blocks whose Uncompressed Size is zero. + */ + +} lzma_index_iter_mode; + + +/** + * \brief Calculate memory usage of lzma_index + * + * On disk, the size of the Index field depends on both the number of Records + * stored and how big values the Records store (due to variable-length integer + * encoding). When the Index is kept in lzma_index structure, the memory usage + * depends only on the number of Records/Blocks stored in the Index(es), and + * in case of concatenated lzma_indexes, the number of Streams. The size in + * RAM is almost always significantly bigger than in the encoded form on disk. + * + * This function calculates an approximate amount of memory needed hold + * the given number of Streams and Blocks in lzma_index structure. This + * value may vary between CPU architectures and also between liblzma versions + * if the internal implementation is modified. + */ +extern LZMA_API(uint64_t) lzma_index_memusage( + lzma_vli streams, lzma_vli blocks) lzma_nothrow; + + +/** + * \brief Calculate the memory usage of an existing lzma_index + * + * This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), + * lzma_index_block_count(i)). + */ +extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i) + lzma_nothrow; + + +/** + * \brief Allocate and initialize a new lzma_index structure + * + * \return On success, a pointer to an empty initialized lzma_index is + * returned. If allocation fails, NULL is returned. + */ +extern LZMA_API(lzma_index *) lzma_index_init(lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Deallocate lzma_index + * + * If i is NULL, this does nothing. + */ +extern LZMA_API(void) lzma_index_end(lzma_index *i, lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Add a new Block to lzma_index + * + * \param i Pointer to a lzma_index structure + * \param allocator Pointer to lzma_allocator, or NULL to + * use malloc() + * \param unpadded_size Unpadded Size of a Block. This can be + * calculated with lzma_block_unpadded_size() + * after encoding or decoding the Block. + * \param uncompressed_size Uncompressed Size of a Block. This can be + * taken directly from lzma_block structure + * after encoding or decoding the Block. + * + * Appending a new Block does not invalidate iterators. For example, + * if an iterator was pointing to the end of the lzma_index, after + * lzma_index_append() it is possible to read the next Block with + * an existing iterator. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR: Compressed or uncompressed size of the + * Stream or size of the Index field would grow too big. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_append( + lzma_index *i, lzma_allocator *allocator, + lzma_vli unpadded_size, lzma_vli uncompressed_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Set the Stream Flags + * + * Set the Stream Flags of the last (and typically the only) Stream + * in lzma_index. This can be useful when reading information from the + * lzma_index, because to decode Blocks, knowing the integrity check type + * is needed. + * + * The given Stream Flags are copied into internal preallocated structure + * in the lzma_index, thus the caller doesn't need to keep the *stream_flags + * available after calling this function. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_stream_flags( + lzma_index *i, const lzma_stream_flags *stream_flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the types of integrity Checks + * + * If lzma_index_stream_flags() is used to set the Stream Flags for + * every Stream, lzma_index_checks() can be used to get a bitmask to + * indicate which Check types have been used. It can be useful e.g. if + * showing the Check types to the user. + * + * The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10. + */ +extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Set the amount of Stream Padding + * + * Set the amount of Stream Padding of the last (and typically the only) + * Stream in the lzma_index. This is needed when planning to do random-access + * reading within multiple concatenated Streams. + * + * By default, the amount of Stream Padding is assumed to be zero bytes. + * + * \return - LZMA_OK + * - LZMA_DATA_ERROR: The file size would grow too big. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_stream_padding( + lzma_index *i, lzma_vli stream_padding) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the number of Streams + */ +extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the number of Blocks + * + * This returns the total number of Blocks in lzma_index. To get number + * of Blocks in individual Streams, use lzma_index_iter. + */ +extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the size of the Index field as bytes + * + * This is needed to verify the Backward Size field in the Stream Footer. + */ +extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the Stream + * + * If multiple lzma_indexes have been combined, this works as if the Blocks + * were in a single Stream. This is useful if you are going to combine + * Blocks from multiple Streams into a single new Stream. + */ +extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the Blocks + * + * This doesn't include the Stream Header, Stream Footer, Stream Padding, + * or Index fields. + */ +extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the file + * + * When no lzma_indexes have been combined with lzma_index_cat() and there is + * no Stream Padding, this function is identical to lzma_index_stream_size(). + * If multiple lzma_indexes have been combined, this includes also the headers + * of each separate Stream and the possible Stream Padding fields. + */ +extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the uncompressed size of the file + */ +extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize an iterator + * + * \param iter Pointer to a lzma_index_iter structure + * \param i lzma_index to which the iterator will be associated + * + * This function associates the iterator with the given lzma_index, and calls + * lzma_index_iter_rewind() on the iterator. + * + * This function doesn't allocate any memory, thus there is no + * lzma_index_iter_end(). The iterator is valid as long as the + * associated lzma_index is valid, that is, until lzma_index_end() or + * using it as source in lzma_index_cat(). Specifically, lzma_index doesn't + * become invalid if new Blocks are added to it with lzma_index_append() or + * if it is used as the destination in lzma_index_cat(). + * + * It is safe to make copies of an initialized lzma_index_iter, for example, + * to easily restart reading at some particular position. + */ +extern LZMA_API(void) lzma_index_iter_init( + lzma_index_iter *iter, const lzma_index *i) lzma_nothrow; + + +/** + * \brief Rewind the iterator + * + * Rewind the iterator so that next call to lzma_index_iter_next() will + * return the first Block or Stream. + */ +extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter) + lzma_nothrow; + + +/** + * \brief Get the next Block or Stream + * + * \param iter Iterator initialized with lzma_index_iter_init() + * \param mode Specify what kind of information the caller wants + * to get. See lzma_index_iter_mode for details. + * + * \return If next Block or Stream matching the mode was found, *iter + * is updated and this function returns false. If no Block or + * Stream matching the mode is found, *iter is not modified + * and this function returns true. If mode is set to an unknown + * value, *iter is not modified and this function returns true. + */ +extern LZMA_API(lzma_bool) lzma_index_iter_next( + lzma_index_iter *iter, lzma_index_iter_mode mode) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Locate a Block + * + * If it is possible to seek in the .xz file, it is possible to parse + * the Index field(s) and use lzma_index_iter_locate() to do random-access + * reading with granularity of Block size. + * + * \param iter Iterator that was earlier initialized with + * lzma_index_iter_init(). + * \param target Uncompressed target offset which the caller would + * like to locate from the Stream + * + * If the target is smaller than the uncompressed size of the Stream (can be + * checked with lzma_index_uncompressed_size()): + * - Information about the Stream and Block containing the requested + * uncompressed offset is stored into *iter. + * - Internal state of the iterator is adjusted so that + * lzma_index_iter_next() can be used to read subsequent Blocks or Streams. + * - This function returns false. + * + * If target is greater than the uncompressed size of the Stream, *iter + * is not modified, and this function returns true. + */ +extern LZMA_API(lzma_bool) lzma_index_iter_locate( + lzma_index_iter *iter, lzma_vli target) lzma_nothrow; + + +/** + * \brief Concatenate lzma_indexes + * + * Concatenating lzma_indexes is useful when doing random-access reading in + * multi-Stream .xz file, or when combining multiple Streams into single + * Stream. + * + * \param dest lzma_index after which src is appended + * \param src lzma_index to be appended after dest. If this + * function succeeds, the memory allocated for src + * is freed or moved to be part of dest, and all + * iterators pointing to src will become invalid. + * \param allocator Custom memory allocator; can be NULL to use + * malloc() and free(). + * + * \return - LZMA_OK: lzma_indexes were concatenated successfully. + * src is now a dangling pointer. + * - LZMA_DATA_ERROR: *dest would grow too big. + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_cat( + lzma_index *dest, lzma_index *src, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Duplicate lzma_index + * + * \return A copy of the lzma_index, or NULL if memory allocation failed. + */ +extern LZMA_API(lzma_index *) lzma_index_dup( + const lzma_index *i, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Index encoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param i Pointer to lzma_index which should be encoded. + * + * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * It is enough to use only one of them (you can choose freely; use LZMA_RUN + * to support liblzma versions older than 5.0.0). + * + * \return - LZMA_OK: Initialization succeeded, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_encoder( + lzma_stream *strm, const lzma_index *i) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Index decoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param i The decoded Index will be made available via + * this pointer. Initially this function will + * set *i to NULL (the old value is ignored). If + * decoding succeeds (lzma_code() returns + * LZMA_STREAM_END), *i will be set to point + * to a new lzma_index, which the application + * has to later free with lzma_index_end(). + * \param memlimit How much memory the resulting lzma_index is + * allowed to require. + * + * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * It is enough to use only one of them (you can choose freely; use LZMA_RUN + * to support liblzma versions older than 5.0.0). + * + * \return - LZMA_OK: Initialization succeeded, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_decoder( + lzma_stream *strm, lzma_index **i, uint64_t memlimit) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Index encoder + * + * \param i lzma_index to be encoded + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Output buffer is too small. Use + * lzma_index_size() to find out how much output + * space is needed. + * - LZMA_PROG_ERROR + * + * \note This function doesn't take allocator argument since all + * the internal data is allocated on stack. + */ +extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Single-call .xz Index decoder + * + * \param i If decoding succeeds, *i will point to a new + * lzma_index, which the application has to + * later free with lzma_index_end(). If an error + * occurs, *i will be NULL. The old value of *i + * is always ignored and thus doesn't need to be + * initialized by the caller. + * \param memlimit Pointer to how much memory the resulting + * lzma_index is allowed to require. The value + * pointed by this pointer is modified if and only + * if LZMA_MEMLIMIT_ERROR is returned. + * \param allocator Pointer to lzma_allocator, or NULL to use malloc() + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. + * The minimum required memlimit value was stored to *memlimit. + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i, + uint64_t *memlimit, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/index_hash.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/index_hash.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/index_hash.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/index_hash.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,107 @@ +/** + * \file lzma/index_hash.h + * \brief Validate Index by using a hash function + * + * Hashing makes it possible to use constant amount of memory to validate + * Index of arbitrary size. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + +/** + * \brief Opaque data type to hold the Index hash + */ +typedef struct lzma_index_hash_s lzma_index_hash; + + +/** + * \brief Allocate and initialize a new lzma_index_hash structure + * + * If index_hash is NULL, a new lzma_index_hash structure is allocated, + * initialized, and a pointer to it returned. If allocation fails, NULL + * is returned. + * + * If index_hash is non-NULL, it is reinitialized and the same pointer + * returned. In this case, return value cannot be NULL or a different + * pointer than the index_hash that was given as an argument. + */ +extern LZMA_API(lzma_index_hash *) lzma_index_hash_init( + lzma_index_hash *index_hash, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Deallocate lzma_index_hash structure + */ +extern LZMA_API(void) lzma_index_hash_end( + lzma_index_hash *index_hash, lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Add a new Record to an Index hash + * + * \param index Pointer to a lzma_index_hash structure + * \param unpadded_size Unpadded Size of a Block + * \param uncompressed_size Uncompressed Size of a Block + * + * \return - LZMA_OK + * - LZMA_DATA_ERROR: Compressed or uncompressed size of the + * Stream or size of the Index field would grow too big. + * - LZMA_PROG_ERROR: Invalid arguments or this function is being + * used when lzma_index_hash_decode() has already been used. + */ +extern LZMA_API(lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash, + lzma_vli unpadded_size, lzma_vli uncompressed_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode and validate the Index field + * + * After telling the sizes of all Blocks with lzma_index_hash_append(), + * the actual Index field is decoded with this function. Specifically, + * once decoding of the Index field has been started, no more Records + * can be added using lzma_index_hash_append(). + * + * This function doesn't use lzma_stream structure to pass the input data. + * Instead, the input buffer is specified using three arguments. This is + * because it matches better the internal APIs of liblzma. + * + * \param index_hash Pointer to a lzma_index_hash structure + * \param in Pointer to the beginning of the input buffer + * \param in_pos in[*in_pos] is the next byte to process + * \param in_size in[in_size] is the first byte not to process + * + * \return - LZMA_OK: So far good, but more input is needed. + * - LZMA_STREAM_END: Index decoded successfully and it matches + * the Records given with lzma_index_hash_append(). + * - LZMA_DATA_ERROR: Index is corrupt or doesn't match the + * information given with lzma_index_hash_append(). + * - LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_hash_decode(lzma_index_hash *index_hash, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the size of the Index field as bytes + * + * This is needed to verify the Backward Size field in the Stream Footer. + */ +extern LZMA_API(lzma_vli) lzma_index_hash_size( + const lzma_index_hash *index_hash) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/lzma.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/lzma.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/lzma.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/lzma.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,420 @@ +/** + * \file lzma/lzma.h + * \brief LZMA1 and LZMA2 filters + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief LZMA1 Filter ID + * + * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, + * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from + * accidentally using LZMA when they actually want LZMA2. + * + * LZMA1 shouldn't be used for new applications unless you _really_ know + * what you are doing. LZMA2 is almost always a better choice. + */ +#define LZMA_FILTER_LZMA1 LZMA_VLI_C(0x4000000000000001) + +/** + * \brief LZMA2 Filter ID + * + * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds + * support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion + * when trying to compress uncompressible data), possibility to change + * lc/lp/pb in the middle of encoding, and some other internal improvements. + */ +#define LZMA_FILTER_LZMA2 LZMA_VLI_C(0x21) + + +/** + * \brief Match finders + * + * Match finder has major effect on both speed and compression ratio. + * Usually hash chains are faster than binary trees. + * + * If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better + * choice, because binary trees get much higher compression ratio penalty + * with LZMA_SYNC_FLUSH. + * + * The memory usage formulas are only rough estimates, which are closest to + * reality when dict_size is a power of two. The formulas are more complex + * in reality, and can also change a little between liblzma versions. Use + * lzma_raw_encoder_memusage() to get more accurate estimate of memory usage. + */ +typedef enum { + LZMA_MF_HC3 = 0x03, + /**< + * \brief Hash Chain with 2- and 3-byte hashing + * + * Minimum nice_len: 3 + * + * Memory usage: + * - dict_size <= 16 MiB: dict_size * 7.5 + * - dict_size > 16 MiB: dict_size * 5.5 + 64 MiB + */ + + LZMA_MF_HC4 = 0x04, + /**< + * \brief Hash Chain with 2-, 3-, and 4-byte hashing + * + * Minimum nice_len: 4 + * + * Memory usage: + * - dict_size <= 32 MiB: dict_size * 7.5 + * - dict_size > 32 MiB: dict_size * 6.5 + */ + + LZMA_MF_BT2 = 0x12, + /**< + * \brief Binary Tree with 2-byte hashing + * + * Minimum nice_len: 2 + * + * Memory usage: dict_size * 9.5 + */ + + LZMA_MF_BT3 = 0x13, + /**< + * \brief Binary Tree with 2- and 3-byte hashing + * + * Minimum nice_len: 3 + * + * Memory usage: + * - dict_size <= 16 MiB: dict_size * 11.5 + * - dict_size > 16 MiB: dict_size * 9.5 + 64 MiB + */ + + LZMA_MF_BT4 = 0x14 + /**< + * \brief Binary Tree with 2-, 3-, and 4-byte hashing + * + * Minimum nice_len: 4 + * + * Memory usage: + * - dict_size <= 32 MiB: dict_size * 11.5 + * - dict_size > 32 MiB: dict_size * 10.5 + */ +} lzma_match_finder; + + +/** + * \brief Test if given match finder is supported + * + * Return true if the given match finder is supported by this liblzma build. + * Otherwise false is returned. It is safe to call this with a value that + * isn't listed in lzma_match_finder enumeration; the return value will be + * false. + * + * There is no way to list which match finders are available in this + * particular liblzma version and build. It would be useless, because + * a new match finder, which the application developer wasn't aware, + * could require giving additional options to the encoder that the older + * match finders don't need. + */ +extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Compression modes + * + * This selects the function used to analyze the data produced by the match + * finder. + */ +typedef enum { + LZMA_MODE_FAST = 1, + /**< + * \brief Fast compression + * + * Fast mode is usually at its best when combined with + * a hash chain match finder. + */ + + LZMA_MODE_NORMAL = 2 + /**< + * \brief Normal compression + * + * This is usually notably slower than fast mode. Use this + * together with binary tree match finders to expose the + * full potential of the LZMA1 or LZMA2 encoder. + */ +} lzma_mode; + + +/** + * \brief Test if given compression mode is supported + * + * Return true if the given compression mode is supported by this liblzma + * build. Otherwise false is returned. It is safe to call this with a value + * that isn't listed in lzma_mode enumeration; the return value will be false. + * + * There is no way to list which modes are available in this particular + * liblzma version and build. It would be useless, because a new compression + * mode, which the application developer wasn't aware, could require giving + * additional options to the encoder that the older modes don't need. + */ +extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Options specific to the LZMA1 and LZMA2 filters + * + * Since LZMA1 and LZMA2 share most of the code, it's simplest to share + * the options structure too. For encoding, all but the reserved variables + * need to be initialized unless specifically mentioned otherwise. + * lzma_lzma_preset() can be used to get a good starting point. + * + * For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and + * preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb. + */ +typedef struct { + /** + * \brief Dictionary size in bytes + * + * Dictionary size indicates how many bytes of the recently processed + * uncompressed data is kept in memory. One method to reduce size of + * the uncompressed data is to store distance-length pairs, which + * indicate what data to repeat from the dictionary buffer. Thus, + * the bigger the dictionary, the better the compression ratio + * usually is. + * + * Maximum size of the dictionary depends on multiple things: + * - Memory usage limit + * - Available address space (not a problem on 64-bit systems) + * - Selected match finder (encoder only) + * + * Currently the maximum dictionary size for encoding is 1.5 GiB + * (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit + * systems for certain match finder implementation reasons. In the + * future, there may be match finders that support bigger + * dictionaries. + * + * Decoder already supports dictionaries up to 4 GiB - 1 B (i.e. + * UINT32_MAX), so increasing the maximum dictionary size of the + * encoder won't cause problems for old decoders. + * + * Because extremely small dictionaries sizes would have unneeded + * overhead in the decoder, the minimum dictionary size is 4096 bytes. + * + * \note When decoding, too big dictionary does no other harm + * than wasting memory. + */ + uint32_t dict_size; +# define LZMA_DICT_SIZE_MIN UINT32_C(4096) +# define LZMA_DICT_SIZE_DEFAULT (UINT32_C(1) << 23) + + /** + * \brief Pointer to an initial dictionary + * + * It is possible to initialize the LZ77 history window using + * a preset dictionary. It is useful when compressing many + * similar, relatively small chunks of data independently from + * each other. The preset dictionary should contain typical + * strings that occur in the files being compressed. The most + * probable strings should be near the end of the preset dictionary. + * + * This feature should be used only in special situations. For + * now, it works correctly only with raw encoding and decoding. + * Currently none of the container formats supported by + * liblzma allow preset dictionary when decoding, thus if + * you create a .xz or .lzma file with preset dictionary, it + * cannot be decoded with the regular decoder functions. In the + * future, the .xz format will likely get support for preset + * dictionary though. + */ + const uint8_t *preset_dict; + + /** + * \brief Size of the preset dictionary + * + * Specifies the size of the preset dictionary. If the size is + * bigger than dict_size, only the last dict_size bytes are + * processed. + * + * This variable is read only when preset_dict is not NULL. + * If preset_dict is not NULL but preset_dict_size is zero, + * no preset dictionary is used (identical to only setting + * preset_dict to NULL). + */ + uint32_t preset_dict_size; + + /** + * \brief Number of literal context bits + * + * How many of the highest bits of the previous uncompressed + * eight-bit byte (also known as `literal') are taken into + * account when predicting the bits of the next literal. + * + * E.g. in typical English text, an upper-case letter is + * often followed by a lower-case letter, and a lower-case + * letter is usually followed by another lower-case letter. + * In the US-ASCII character set, the highest three bits are 010 + * for upper-case letters and 011 for lower-case letters. + * When lc is at least 3, the literal coding can take advantage of + * this property in the uncompressed data. + * + * There is a limit that applies to literal context bits and literal + * position bits together: lc + lp <= 4. Without this limit the + * decoding could become very slow, which could have security related + * results in some cases like email servers doing virus scanning. + * This limit also simplifies the internal implementation in liblzma. + * + * There may be LZMA1 streams that have lc + lp > 4 (maximum possible + * lc would be 8). It is not possible to decode such streams with + * liblzma. + */ + uint32_t lc; +# define LZMA_LCLP_MIN 0 +# define LZMA_LCLP_MAX 4 +# define LZMA_LC_DEFAULT 3 + + /** + * \brief Number of literal position bits + * + * lp affects what kind of alignment in the uncompressed data is + * assumed when encoding literals. A literal is a single 8-bit byte. + * See pb below for more information about alignment. + */ + uint32_t lp; +# define LZMA_LP_DEFAULT 0 + + /** + * \brief Number of position bits + * + * pb affects what kind of alignment in the uncompressed data is + * assumed in general. The default means four-byte alignment + * (2^ pb =2^2=4), which is often a good choice when there's + * no better guess. + * + * When the aligment is known, setting pb accordingly may reduce + * the file size a little. E.g. with text files having one-byte + * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can + * improve compression slightly. For UTF-16 text, pb=1 is a good + * choice. If the alignment is an odd number like 3 bytes, pb=0 + * might be the best choice. + * + * Even though the assumed alignment can be adjusted with pb and + * lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment. + * It might be worth taking into account when designing file formats + * that are likely to be often compressed with LZMA1 or LZMA2. + */ + uint32_t pb; +# define LZMA_PB_MIN 0 +# define LZMA_PB_MAX 4 +# define LZMA_PB_DEFAULT 2 + + /** Compression mode */ + lzma_mode mode; + + /** + * \brief Nice length of a match + * + * This determines how many bytes the encoder compares from the match + * candidates when looking for the best match. Once a match of at + * least nice_len bytes long is found, the encoder stops looking for + * better candidates and encodes the match. (Naturally, if the found + * match is actually longer than nice_len, the actual length is + * encoded; it's not truncated to nice_len.) + * + * Bigger values usually increase the compression ratio and + * compression time. For most files, 32 to 128 is a good value, + * which gives very good compression ratio at good speed. + * + * The exact minimum value depends on the match finder. The maximum + * is 273, which is the maximum length of a match that LZMA1 and + * LZMA2 can encode. + */ + uint32_t nice_len; + + /** Match finder ID */ + lzma_match_finder mf; + + /** + * \brief Maximum search depth in the match finder + * + * For every input byte, match finder searches through the hash chain + * or binary tree in a loop, each iteration going one step deeper in + * the chain or tree. The searching stops if + * - a match of at least nice_len bytes long is found; + * - all match candidates from the hash chain or binary tree have + * been checked; or + * - maximum search depth is reached. + * + * Maximum search depth is needed to prevent the match finder from + * wasting too much time in case there are lots of short match + * candidates. On the other hand, stopping the search before all + * candidates have been checked can reduce compression ratio. + * + * Setting depth to zero tells liblzma to use an automatic default + * value, that depends on the selected match finder and nice_len. + * The default is in the range [4, 200] or so (it may vary between + * liblzma versions). + * + * Using a bigger depth value than the default can increase + * compression ratio in some cases. There is no strict maximum value, + * but high values (thousands or millions) should be used with care: + * the encoder could remain fast enough with typical input, but + * malicious input could cause the match finder to slow down + * dramatically, possibly creating a denial of service attack. + */ + uint32_t depth; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * with the currently supported options, so it is safe to leave these + * uninitialized. + */ + uint32_t reserved_int1; + uint32_t reserved_int2; + uint32_t reserved_int3; + uint32_t reserved_int4; + uint32_t reserved_int5; + uint32_t reserved_int6; + uint32_t reserved_int7; + uint32_t reserved_int8; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + void *reserved_ptr1; + void *reserved_ptr2; + +} lzma_options_lzma; + + +/** + * \brief Set a compression preset to lzma_options_lzma structure + * + * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9 + * of the xz command line tool. In addition, it is possible to bitwise-or + * flags to the preset. Currently only LZMA_PRESET_EXTREME is supported. + * The flags are defined in container.h, because the flags are used also + * with lzma_easy_encoder(). + * + * The preset values are subject to changes between liblzma versions. + * + * This function is available only if LZMA1 or LZMA2 encoder has been enabled + * when building liblzma. + * + * \return On success, false is returned. If the preset is not + * supported, true is returned. + */ +extern LZMA_API(lzma_bool) lzma_lzma_preset( + lzma_options_lzma *options, uint32_t preset) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/stream_flags.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/stream_flags.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/stream_flags.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/stream_flags.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,223 @@ +/** + * \file lzma/stream_flags.h + * \brief .xz Stream Header and Stream Footer encoder and decoder + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Size of Stream Header and Stream Footer + * + * Stream Header and Stream Footer have the same size and they are not + * going to change even if a newer version of the .xz file format is + * developed in future. + */ +#define LZMA_STREAM_HEADER_SIZE 12 + + +/** + * \brief Options for encoding/decoding Stream Header and Stream Footer + */ +typedef struct { + /** + * \brief Stream Flags format version + * + * To prevent API and ABI breakages if new features are needed in + * Stream Header or Stream Footer, a version number is used to + * indicate which fields in this structure are in use. For now, + * version must always be zero. With non-zero version, the + * lzma_stream_header_encode() and lzma_stream_footer_encode() + * will return LZMA_OPTIONS_ERROR. + * + * lzma_stream_header_decode() and lzma_stream_footer_decode() + * will always set this to the lowest value that supports all the + * features indicated by the Stream Flags field. The application + * must check that the version number set by the decoding functions + * is supported by the application. Otherwise it is possible that + * the application will decode the Stream incorrectly. + */ + uint32_t version; + + /** + * \brief Backward Size + * + * Backward Size must be a multiple of four bytes. In this Stream + * format version, Backward Size is the size of the Index field. + * + * Backward Size isn't actually part of the Stream Flags field, but + * it is convenient to include in this structure anyway. Backward + * Size is present only in the Stream Footer. There is no need to + * initialize backward_size when encoding Stream Header. + * + * lzma_stream_header_decode() always sets backward_size to + * LZMA_VLI_UNKNOWN so that it is convenient to use + * lzma_stream_flags_compare() when both Stream Header and Stream + * Footer have been decoded. + */ + lzma_vli backward_size; +# define LZMA_BACKWARD_SIZE_MIN 4 +# define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34) + + /** + * \brief Check ID + * + * This indicates the type of the integrity check calculated from + * uncompressed data. + */ + lzma_check check; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the + * names of these variables may change. + * + * (We will never be able to use all of these since Stream Flags + * is just two bytes plus Backward Size of four bytes. But it's + * nice to have the proper types when they are needed.) + */ + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + lzma_bool reserved_bool1; + lzma_bool reserved_bool2; + lzma_bool reserved_bool3; + lzma_bool reserved_bool4; + lzma_bool reserved_bool5; + lzma_bool reserved_bool6; + lzma_bool reserved_bool7; + lzma_bool reserved_bool8; + uint32_t reserved_int1; + uint32_t reserved_int2; + +} lzma_stream_flags; + + +/** + * \brief Encode Stream Header + * + * \param options Stream Header options to be encoded. + * options->backward_size is ignored and doesn't + * need to be initialized. + * \param out Beginning of the output buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: options->version is not supported by + * this liblzma version. + * - LZMA_PROG_ERROR: Invalid options. + */ +extern LZMA_API(lzma_ret) lzma_stream_header_encode( + const lzma_stream_flags *options, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Stream Footer + * + * \param options Stream Footer options to be encoded. + * \param out Beginning of the output buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: options->version is not supported by + * this liblzma version. + * - LZMA_PROG_ERROR: Invalid options. + */ +extern LZMA_API(lzma_ret) lzma_stream_footer_encode( + const lzma_stream_flags *options, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Stream Header + * + * \param options Target for the decoded Stream Header options. + * \param in Beginning of the input buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to + * help comparing Stream Flags from Stream Header and Stream Footer with + * lzma_stream_flags_compare(). + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given + * buffer cannot be Stream Header. + * - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header + * is corrupt. + * - LZMA_OPTIONS_ERROR: Unsupported options are present + * in the header. + * + * \note When decoding .xz files that contain multiple Streams, it may + * make sense to print "file format not recognized" only if + * decoding of the Stream Header of the _first_ Stream gives + * LZMA_FORMAT_ERROR. If non-first Stream Header gives + * LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is + * probably more appropriate. + * + * For example, Stream decoder in liblzma uses LZMA_DATA_ERROR if + * LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode() + * when decoding non-first Stream. + */ +extern LZMA_API(lzma_ret) lzma_stream_header_decode( + lzma_stream_flags *options, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Stream Footer + * + * \param options Target for the decoded Stream Header options. + * \param in Beginning of the input buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given + * buffer cannot be Stream Footer. + * - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer + * is corrupt. + * - LZMA_OPTIONS_ERROR: Unsupported options are present + * in Stream Footer. + * + * \note If Stream Header was already decoded successfully, but + * decoding Stream Footer returns LZMA_FORMAT_ERROR, the + * application should probably report some other error message + * than "file format not recognized", since the file more likely + * is corrupt (possibly truncated). Stream decoder in liblzma + * uses LZMA_DATA_ERROR in this situation. + */ +extern LZMA_API(lzma_ret) lzma_stream_footer_decode( + lzma_stream_flags *options, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Compare two lzma_stream_flags structures + * + * backward_size values are compared only if both are not + * LZMA_VLI_UNKNOWN. + * + * \return - LZMA_OK: Both are equal. If either had backward_size set + * to LZMA_VLI_UNKNOWN, backward_size values were not + * compared or validated. + * - LZMA_DATA_ERROR: The structures differ. + * - LZMA_OPTIONS_ERROR: version in either structure is greater + * than the maximum supported version (currently zero). + * - LZMA_PROG_ERROR: Invalid value, e.g. invalid check or + * backward_size. + */ +extern LZMA_API(lzma_ret) lzma_stream_flags_compare( + const lzma_stream_flags *a, const lzma_stream_flags *b) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/version.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/version.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/version.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/version.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,121 @@ +/** + * \file lzma/version.h + * \brief Version number + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/* + * Version number split into components + */ +#define LZMA_VERSION_MAJOR 5 +#define LZMA_VERSION_MINOR 0 +#define LZMA_VERSION_PATCH 4 +#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE + +#ifndef LZMA_VERSION_COMMIT +# define LZMA_VERSION_COMMIT "" +#endif + + +/* + * Map symbolic stability levels to integers. + */ +#define LZMA_VERSION_STABILITY_ALPHA 0 +#define LZMA_VERSION_STABILITY_BETA 1 +#define LZMA_VERSION_STABILITY_STABLE 2 + + +/** + * \brief Compile-time version number + * + * The version number is of format xyyyzzzs where + * - x = major + * - yyy = minor + * - zzz = revision + * - s indicates stability: 0 = alpha, 1 = beta, 2 = stable + * + * The same xyyyzzz triplet is never reused with different stability levels. + * For example, if 5.1.0alpha has been released, there will never be 5.1.0beta + * or 5.1.0 stable. + * + * \note The version number of liblzma has nothing to with + * the version number of Igor Pavlov's LZMA SDK. + */ +#define LZMA_VERSION (LZMA_VERSION_MAJOR * UINT32_C(10000000) \ + + LZMA_VERSION_MINOR * UINT32_C(10000) \ + + LZMA_VERSION_PATCH * UINT32_C(10) \ + + LZMA_VERSION_STABILITY) + + +/* + * Macros to construct the compile-time version string + */ +#if LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_ALPHA +# define LZMA_VERSION_STABILITY_STRING "alpha" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_BETA +# define LZMA_VERSION_STABILITY_STRING "beta" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_STABLE +# define LZMA_VERSION_STABILITY_STRING "" +#else +# error Incorrect LZMA_VERSION_STABILITY +#endif + +#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) \ + #major "." #minor "." #patch stability commit + +#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit) \ + LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) + + +/** + * \brief Compile-time version as a string + * + * This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable + * versions don't have any "stable" suffix). In future, a snapshot built + * from source code repository may include an additional suffix, for example + * "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form + * in LZMA_VERSION macro. + */ +#define LZMA_VERSION_STRING LZMA_VERSION_STRING_C( \ + LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, \ + LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \ + LZMA_VERSION_COMMIT) + + +/* #ifndef is needed for use with windres (MinGW or Cygwin). */ +#ifndef LZMA_H_INTERNAL_RC + +/** + * \brief Run-time version number as an integer + * + * Return the value of LZMA_VERSION macro at the compile time of liblzma. + * This allows the application to compare if it was built against the same, + * older, or newer version of liblzma that is currently running. + */ +extern LZMA_API(uint32_t) lzma_version_number(void) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Run-time version as a string + * + * This function may be useful if you want to display which version of + * liblzma your application is currently using. + */ +extern LZMA_API(const char *) lzma_version_string(void) + lzma_nothrow lzma_attr_const; + +#endif diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma/vli.h goldendict-1.5.0~ppa131019/maclibs/include/lzma/vli.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma/vli.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma/vli.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,166 @@ +/** + * \file lzma/vli.h + * \brief Variable-length integer handling + * + * In the .xz format, most integers are encoded in a variable-length + * representation, which is sometimes called little endian base-128 encoding. + * This saves space when smaller values are more likely than bigger values. + * + * The encoding scheme encodes seven bits to every byte, using minimum + * number of bytes required to represent the given value. Encodings that use + * non-minimum number of bytes are invalid, thus every integer has exactly + * one encoded representation. The maximum number of bits in a VLI is 63, + * thus the vli argument must be less than or equal to UINT64_MAX / 2. You + * should use LZMA_VLI_MAX for clarity. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Maximum supported value of a variable-length integer + */ +#define LZMA_VLI_MAX (UINT64_MAX / 2) + +/** + * \brief VLI value to denote that the value is unknown + */ +#define LZMA_VLI_UNKNOWN UINT64_MAX + +/** + * \brief Maximum supported encoded length of variable length integers + */ +#define LZMA_VLI_BYTES_MAX 9 + +/** + * \brief VLI constant suffix + */ +#define LZMA_VLI_C(n) UINT64_C(n) + + +/** + * \brief Variable-length integer type + * + * Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is + * indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the + * underlaying integer type. + * + * lzma_vli will be uint64_t for the foreseeable future. If a bigger size + * is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will + * not overflow lzma_vli. This simplifies integer overflow detection. + */ +typedef uint64_t lzma_vli; + + +/** + * \brief Validate a variable-length integer + * + * This is useful to test that application has given acceptable values + * for example in the uncompressed_size and compressed_size variables. + * + * \return True if the integer is representable as VLI or if it + * indicates unknown value. + */ +#define lzma_vli_is_valid(vli) \ + ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN) + + +/** + * \brief Encode a variable-length integer + * + * This function has two modes: single-call and multi-call. Single-call mode + * encodes the whole integer at once; it is an error if the output buffer is + * too small. Multi-call mode saves the position in *vli_pos, and thus it is + * possible to continue encoding if the buffer becomes full before the whole + * integer has been encoded. + * + * \param vli Integer to be encoded + * \param vli_pos How many VLI-encoded bytes have already been written + * out. When starting to encode a new integer in + * multi-call mode, *vli_pos must be set to zero. + * To use single-call encoding, set vli_pos to NULL. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return Slightly different return values are used in multi-call and + * single-call modes. + * + * Single-call (vli_pos == NULL): + * - LZMA_OK: Integer successfully encoded. + * - LZMA_PROG_ERROR: Arguments are not sane. This can be due + * to too little output space; single-call mode doesn't use + * LZMA_BUF_ERROR, since the application should have checked + * the encoded size with lzma_vli_size(). + * + * Multi-call (vli_pos != NULL): + * - LZMA_OK: So far all OK, but the integer is not + * completely written out yet. + * - LZMA_STREAM_END: Integer successfully encoded. + * - LZMA_BUF_ERROR: No output space was provided. + * - LZMA_PROG_ERROR: Arguments are not sane. + */ +extern LZMA_API(lzma_ret) lzma_vli_encode(lzma_vli vli, size_t *vli_pos, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Decode a variable-length integer + * + * Like lzma_vli_encode(), this function has single-call and multi-call modes. + * + * \param vli Pointer to decoded integer. The decoder will + * initialize it to zero when *vli_pos == 0, so + * application isn't required to initialize *vli. + * \param vli_pos How many bytes have already been decoded. When + * starting to decode a new integer in multi-call + * mode, *vli_pos must be initialized to zero. To + * use single-call decoding, set vli_pos to NULL. + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * + * \return Slightly different return values are used in multi-call and + * single-call modes. + * + * Single-call (vli_pos == NULL): + * - LZMA_OK: Integer successfully decoded. + * - LZMA_DATA_ERROR: Integer is corrupt. This includes hitting + * the end of the input buffer before the whole integer was + * decoded; providing no input at all will use LZMA_DATA_ERROR. + * - LZMA_PROG_ERROR: Arguments are not sane. + * + * Multi-call (vli_pos != NULL): + * - LZMA_OK: So far all OK, but the integer is not + * completely decoded yet. + * - LZMA_STREAM_END: Integer successfully decoded. + * - LZMA_DATA_ERROR: Integer is corrupt. + * - LZMA_BUF_ERROR: No input was provided. + * - LZMA_PROG_ERROR: Arguments are not sane. + */ +extern LZMA_API(lzma_ret) lzma_vli_decode(lzma_vli *vli, size_t *vli_pos, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow; + + +/** + * \brief Get the number of bytes required to encode a VLI + * + * \return Number of bytes on success (1-9). If vli isn't valid, + * zero is returned. + */ +extern LZMA_API(uint32_t) lzma_vli_size(lzma_vli vli) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/maclibs/include/lzma.h goldendict-1.5.0~ppa131019/maclibs/include/lzma.h --- goldendict-1.0.2~git20130620/maclibs/include/lzma.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/include/lzma.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,313 @@ +/** + * \file api/lzma.h + * \brief The public API of liblzma data compression library + * + * liblzma is a public domain general-purpose data compression library with + * a zlib-like API. The native file format is .xz, but also the old .lzma + * format and raw (no headers) streams are supported. Multiple compression + * algorithms (filters) are supported. Currently LZMA2 is the primary filter. + * + * liblzma is part of XZ Utils . XZ Utils includes + * a gzip-like command line tool named xz and some other tools. XZ Utils + * is developed and maintained by Lasse Collin. + * + * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK + * . + * + * The SHA-256 implementation is based on the public domain code found from + * 7-Zip , which has a modified version of the public + * domain SHA-256 code found from Crypto++ . + * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + */ + +#ifndef LZMA_H +#define LZMA_H + +/***************************** + * Required standard headers * + *****************************/ + +/* + * liblzma API headers need some standard types and macros. To allow + * including lzma.h without requiring the application to include other + * headers first, lzma.h includes the required standard headers unless + * they already seem to be included already or if LZMA_MANUAL_HEADERS + * has been defined. + * + * Here's what types and macros are needed and from which headers: + * - stddef.h: size_t, NULL + * - stdint.h: uint8_t, uint32_t, uint64_t, UINT32_C(n), uint64_C(n), + * UINT32_MAX, UINT64_MAX + * + * However, inttypes.h is a little more portable than stdint.h, although + * inttypes.h declares some unneeded things compared to plain stdint.h. + * + * The hacks below aren't perfect, specifically they assume that inttypes.h + * exists and that it typedefs at least uint8_t, uint32_t, and uint64_t, + * and that, in case of incomplete inttypes.h, unsigned int is 32-bit. + * If the application already takes care of setting up all the types and + * macros properly (for example by using gnulib's stdint.h or inttypes.h), + * we try to detect that the macros are already defined and don't include + * inttypes.h here again. However, you may define LZMA_MANUAL_HEADERS to + * force this file to never include any system headers. + * + * Some could argue that liblzma API should provide all the required types, + * for example lzma_uint64, LZMA_UINT64_C(n), and LZMA_UINT64_MAX. This was + * seen as an unnecessary mess, since most systems already provide all the + * necessary types and macros in the standard headers. + * + * Note that liblzma API still has lzma_bool, because using stdbool.h would + * break C89 and C++ programs on many systems. sizeof(bool) in C99 isn't + * necessarily the same as sizeof(bool) in C++. + */ + +#ifndef LZMA_MANUAL_HEADERS + /* + * I suppose this works portably also in C++. Note that in C++, + * we need to get size_t into the global namespace. + */ +# include + + /* + * Skip inttypes.h if we already have all the required macros. If we + * have the macros, we assume that we have the matching typedefs too. + */ +# if !defined(UINT32_C) || !defined(UINT64_C) \ + || !defined(UINT32_MAX) || !defined(UINT64_MAX) + /* + * MSVC has no C99 support, and thus it cannot be used to + * compile liblzma. The liblzma API has to still be usable + * from MSVC, so we need to define the required standard + * integer types here. + */ +# if defined(_WIN32) && defined(_MSC_VER) + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + typedef unsigned __int64 uint64_t; +# else + /* Use the standard inttypes.h. */ +# ifdef __cplusplus + /* + * C99 sections 7.18.2 and 7.18.4 specify + * that C++ implementations define the limit + * and constant macros only if specifically + * requested. Note that if you want the + * format macros (PRIu64 etc.) too, you need + * to define __STDC_FORMAT_MACROS before + * including lzma.h, since re-including + * inttypes.h with __STDC_FORMAT_MACROS + * defined doesn't necessarily work. + */ +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 +# endif +# endif + +# include +# endif + + /* + * Some old systems have only the typedefs in inttypes.h, and + * lack all the macros. For those systems, we need a few more + * hacks. We assume that unsigned int is 32-bit and unsigned + * long is either 32-bit or 64-bit. If these hacks aren't + * enough, the application has to setup the types manually + * before including lzma.h. + */ +# ifndef UINT32_C +# if defined(_WIN32) && defined(_MSC_VER) +# define UINT32_C(n) n ## UI32 +# else +# define UINT32_C(n) n ## U +# endif +# endif + +# ifndef UINT64_C +# if defined(_WIN32) && defined(_MSC_VER) +# define UINT64_C(n) n ## UI64 +# else + /* Get ULONG_MAX. */ +# include +# if ULONG_MAX == 4294967295UL +# define UINT64_C(n) n ## ULL +# else +# define UINT64_C(n) n ## UL +# endif +# endif +# endif + +# ifndef UINT32_MAX +# define UINT32_MAX (UINT32_C(4294967295)) +# endif + +# ifndef UINT64_MAX +# define UINT64_MAX (UINT64_C(18446744073709551615)) +# endif +# endif +#endif /* ifdef LZMA_MANUAL_HEADERS */ + + +/****************** + * LZMA_API macro * + ******************/ + +/* + * Some systems require that the functions and function pointers are + * declared specially in the headers. LZMA_API_IMPORT is for importing + * symbols and LZMA_API_CALL is to specify the calling convention. + * + * By default it is assumed that the application will link dynamically + * against liblzma. #define LZMA_API_STATIC in your application if you + * want to link against static liblzma. If you don't care about portability + * to operating systems like Windows, or at least don't care about linking + * against static liblzma on them, don't worry about LZMA_API_STATIC. That + * is, most developers will never need to use LZMA_API_STATIC. + * + * The GCC variants are a special case on Windows (Cygwin and MinGW). + * We rely on GCC doing the right thing with its auto-import feature, + * and thus don't use __declspec(dllimport). This way developers don't + * need to worry about LZMA_API_STATIC. Also the calling convention is + * omitted on Cygwin but not on MinGW. + */ +#ifndef LZMA_API_IMPORT +# if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__GNUC__) +# define LZMA_API_IMPORT __declspec(dllimport) +# else +# define LZMA_API_IMPORT +# endif +#endif + +#ifndef LZMA_API_CALL +# if defined(_WIN32) && !defined(__CYGWIN__) +# define LZMA_API_CALL __cdecl +# else +# define LZMA_API_CALL +# endif +#endif + +#ifndef LZMA_API +# define LZMA_API(type) LZMA_API_IMPORT type LZMA_API_CALL +#endif + + +/*********** + * nothrow * + ***********/ + +/* + * None of the functions in liblzma may throw an exception. Even + * the functions that use callback functions won't throw exceptions, + * because liblzma would break if a callback function threw an exception. + */ +#ifndef lzma_nothrow +# if defined(__cplusplus) +# define lzma_nothrow throw() +# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) +# define lzma_nothrow __attribute__((__nothrow__)) +# else +# define lzma_nothrow +# endif +#endif + + +/******************** + * GNU C extensions * + ********************/ + +/* + * GNU C extensions are used conditionally in the public API. It doesn't + * break anything if these are sometimes enabled and sometimes not, only + * affects warnings and optimizations. + */ +#if __GNUC__ >= 3 +# ifndef lzma_attribute +# define lzma_attribute(attr) __attribute__(attr) +# endif + + /* warn_unused_result was added in GCC 3.4. */ +# ifndef lzma_attr_warn_unused_result +# if __GNUC__ == 3 && __GNUC_MINOR__ < 4 +# define lzma_attr_warn_unused_result +# endif +# endif + +#else +# ifndef lzma_attribute +# define lzma_attribute(attr) +# endif +#endif + + +#ifndef lzma_attr_pure +# define lzma_attr_pure lzma_attribute((__pure__)) +#endif + +#ifndef lzma_attr_const +# define lzma_attr_const lzma_attribute((__const__)) +#endif + +#ifndef lzma_attr_warn_unused_result +# define lzma_attr_warn_unused_result \ + lzma_attribute((__warn_unused_result__)) +#endif + + +/************** + * Subheaders * + **************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Subheaders check that this is defined. It is to prevent including + * them directly from applications. + */ +#define LZMA_H_INTERNAL 1 + +/* Basic features */ +#include "lzma/version.h" +#include "lzma/base.h" +#include "lzma/vli.h" +#include "lzma/check.h" + +/* Filters */ +#include "lzma/filter.h" +#include "lzma/bcj.h" +#include "lzma/delta.h" +#include "lzma/lzma.h" + +/* Container formats */ +#include "lzma/container.h" + +/* Advanced features */ +#include "lzma/stream_flags.h" +#include "lzma/block.h" +#include "lzma/index.h" +#include "lzma/index_hash.h" + +/* Hardware information */ +#include "lzma/hardware.h" + +/* + * All subheaders included. Undefine LZMA_H_INTERNAL to prevent applications + * re-including the subheaders. + */ +#undef LZMA_H_INTERNAL + +#ifdef __cplusplus +} +#endif + +#endif /* ifndef LZMA_H */ diff -Nru goldendict-1.0.2~git20130620/maclibs/install_aoplugin.sh goldendict-1.5.0~ppa131019/maclibs/install_aoplugin.sh --- goldendict-1.0.2~git20130620/maclibs/install_aoplugin.sh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/install_aoplugin.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -#!/bin/sh -# -# Run this script for properly play of the sounds under Mac OS X -# -if test -f "/usr/local/lib/ao/plugins-4/libmacosx.so"; then : -else - mkdir -p /usr/local/lib/ao/plugins-4 - cp lib/libmacosx.so /usr/local/lib/ao/plugins-4/ -fi Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/maclibs/lib/ao/libmacosx.so and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/maclibs/lib/ao/libmacosx.so differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/maclibs/lib/libao.dylib and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/maclibs/lib/libao.dylib differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/maclibs/lib/liblzma.a and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/maclibs/lib/liblzma.a differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/maclibs/lib/libmacosx.so and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/maclibs/lib/libmacosx.so differ diff -Nru goldendict-1.0.2~git20130620/maclibs/scripts/libao-build.sh goldendict-1.5.0~ppa131019/maclibs/scripts/libao-build.sh --- goldendict-1.0.2~git20130620/maclibs/scripts/libao-build.sh 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/scripts/libao-build.sh 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,42 @@ +#!/bin/bash +# $1 - GoldenDict source directory + +if [ ${OSTYPE:0:6} != "darwin" ]; then + echo "OSX Only" + exit 1 +fi + + +if [[ -n "$1" && ! -d "$1" ]]; then + echo "Invalid GoldenDict source directory" + exit 1 +fi + +./configure \ + CFLAGS="-arch i386 -arch x86_64 -DCUSTOM_AO_PLUGIN_PATH=\\\"@executable_path/../Frameworks/ao\\\"" \ + LDFLAGS="-arch i386 -arch x86_64" \ + --disable-dependency-tracking + +make clean && make + + +install_name_tool \ + -id @executable_path/../Frameworks/libao.dylib \ + src/.libs/libao.dylib + +for PLUGIN_DIR in `find src/plugins -type d -maxdepth 1`; do + PLUGIN_NAME=$(basename "$PLUGIN_DIR") + PLUGIN_PATH=$PLUGIN_DIR/.libs/lib$PLUGIN_NAME.so + if [ -f "$PLUGIN_PATH" ]; then + install_name_tool \ + -id @executable_path/../Frameworks/ao/$PLUGIN_NAME.so \ + $PLUGIN_PATH + fi +done + +if [ -n "$1" ]; then + cp src/.libs/libao.dylib $1/maclibs/lib + # Copy plugins + mkdir -p $1/maclibs/lib/ao + find src/plugins -type f -maxdepth 3 -name "*.so" -exec cp {} $1/maclibs/lib/ao \; +fi diff -Nru goldendict-1.0.2~git20130620/maclibs/scripts/libao.txt goldendict-1.5.0~ppa131019/maclibs/scripts/libao.txt --- goldendict-1.0.2~git20130620/maclibs/scripts/libao.txt 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maclibs/scripts/libao.txt 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,9 @@ +Patched libao source for OSX can be found here: +https://github.com/timonwong/libao/tree/goldendict + +You can checkout the source directly using git: + git clone -b goldendict https://github.com/timonwong/libao.git + +Then, copy libao-build.sh (along with this file) to libao source directory, and build using following commands: + chmod +x libao-build.sh + ./libao-build.sh [goldendict source directory] diff -Nru goldendict-1.0.2~git20130620/main.cc goldendict-1.5.0~ppa131019/main.cc --- goldendict-1.0.2~git20130620/main.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/main.cc 2013-10-18 14:32:58.000000000 +0000 @@ -12,6 +12,8 @@ //#define __DO_DEBUG +#define LOG_TO_FILE_KEY "--log-to-file" + #ifdef Q_OS_WIN32 #include #endif @@ -25,6 +27,57 @@ #include #include +#include +#include +#include + +QFile logFile; + +void gdMessageHandler( QtMsgType type, const char *msg ) +{ + QString message = QString::fromUtf8( msg ); + switch (type) { + + case QtDebugMsg: + if( logFile.isOpen() ) + message.insert( 0, "Debug: " ); + else + fprintf(stderr, "Debug: %s\n", msg); + break; + + case QtWarningMsg: + if( logFile.isOpen() ) + message.insert( 0, "Warning: " ); + else + fprintf(stderr, "Warning: %s\n", msg); + break; + + case QtCriticalMsg: + if( logFile.isOpen() ) + message.insert( 0, "Critical: " ); + else + fprintf(stderr, "Critical: %s\n", msg); + break; + + case QtFatalMsg: + if( logFile.isOpen() ) + { + logFile.write( "Fatal: " ); + logFile.write( msg ); + logFile.flush(); + } + else + fprintf(stderr, "Fatal: %s\n", msg); + abort(); + } + + if( logFile.isOpen() ) + { + message.append( "\n" ); + logFile.write( message.toUtf8() ); + logFile.flush(); + } +} int main( int argc, char ** argv ) { @@ -94,17 +147,17 @@ if ( app.isRunning() ) { - if( argc == 2 ) + if( argc == 2 && strcmp( argv[ 1 ], LOG_TO_FILE_KEY ) != 0 ) #ifdef Q_OS_WIN32 { LPWSTR * pstr; int num; pstr = CommandLineToArgvW( GetCommandLineW(), &num ); if( pstr && num > 0 ) - app.sendMessage( QString( "translateWord: ") + QString::fromWCharArray( pstr[1] ) ); + app.sendMessage( QString( "translateWord: " ) + QString::fromWCharArray( pstr[1] ) ); } #else - app.sendMessage( QString( "translateWord: ") + QString::fromLocal8Bit( argv[1] ) ); + app.sendMessage( QString( "translateWord: " ) + QString::fromLocal8Bit( argv[1] ) ); #endif else app.sendMessage("bringToFront"); @@ -113,7 +166,9 @@ app.setApplicationName( "GoldenDict" ); app.setOrganizationDomain( "http://goldendict.org/" ); +#if QT_VERSION >= 0x040600 app.setStyle(new GdAppStyle); +#endif #ifndef Q_OS_MAC app.setWindowIcon( QIcon( ":/icons/programicon.png" ) ); @@ -160,6 +215,18 @@ break; } + if( argc == 2 && strcmp( argv[ 1 ], LOG_TO_FILE_KEY ) == 0 ) + { + // Open log file + logFile.setFileName( Config::getConfigDir() + "gd_log.txt" ); + logFile.remove(); + logFile.open( QFile::ReadWrite ); + + // Install message handler + qInstallMsgHandler( gdMessageHandler ); + } + + if ( Config::isPortableVersion() ) { // For portable version, hardcode some settings @@ -200,7 +267,7 @@ QObject::connect( &app, SIGNAL(messageReceived(const QString&)), &m, SLOT(messageFromAnotherInstanceReceived(const QString&))); - if( argc == 2 ) + if( argc == 2 && strcmp( argv[ 1 ], LOG_TO_FILE_KEY ) != 0) #ifdef Q_OS_WIN32 { LPWSTR * pstr; @@ -217,5 +284,8 @@ app.removeDataCommiter( m ); + if( logFile.isOpen() ) + logFile.close(); + return r; } diff -Nru goldendict-1.0.2~git20130620/maintabwidget.cc goldendict-1.5.0~ppa131019/maintabwidget.cc --- goldendict-1.0.2~git20130620/maintabwidget.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/maintabwidget.cc 2013-10-18 14:32:58.000000000 +0000 @@ -65,7 +65,7 @@ if( obj == tabBar() && ev->type() == QEvent::MouseButtonPress ) { QMouseEvent * mev = static_cast< QMouseEvent *>( ev ); - if( mev->button() == Qt::MiddleButton ) + if( mev->button() == Qt::MidButton ) { emit tabCloseRequested( tabBar()->tabAt( mev->pos() ) ); return true; diff -Nru goldendict-1.0.2~git20130620/mainwindow.cc goldendict-1.5.0~ppa131019/mainwindow.cc --- goldendict-1.0.2~git20130620/mainwindow.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/mainwindow.cc 2013-10-18 14:32:58.000000000 +0000 @@ -160,7 +160,7 @@ navToolbar->widgetForAction( afterScanPopupSeparator )->setObjectName( "afterScanPopupSeparator" ); // sound - navPronounce = navToolbar->addAction( QIcon( ":/icons/playsound.png" ), tr( "Pronounce Word (Alt+S)" ) ); + navPronounce = navToolbar->addAction( QIcon( ":/icons/playsound_full.png" ), tr( "Pronounce Word (Alt+S)" ) ); navPronounce->setShortcut( QKeySequence( "Alt+S" ) ); navPronounce->setEnabled( false ); navToolbar->widgetForAction( navPronounce )->setObjectName( "soundButton" ); @@ -515,7 +515,7 @@ if ( cfg.preferences.enableTrayIcon ) { - trayIcon = new QSystemTrayIcon( QIcon( ":/icons/programicon.png" ), this ); + trayIcon = new QSystemTrayIcon( QIcon( ":/icons/programicon_old.png" ), this ); trayIcon->setToolTip( tr( "Loading..." ) ); trayIcon->show(); } @@ -619,6 +619,9 @@ connect( ui.dictsList, SIGNAL( itemSelectionChanged() ), this, SLOT( dictsListSelectionChanged() ) ); + connect( ui.dictsList, SIGNAL( itemDoubleClicked( QListWidgetItem * ) ), + this, SLOT( dictsListItemActivated( QListWidgetItem * ) ) ); + connect( &configEvents, SIGNAL( mutedDictionariesChanged() ), this, SLOT( mutedDictionariesChanged() ) ); @@ -962,7 +965,7 @@ if ( !trayIcon && cfg.preferences.enableTrayIcon ) { // Need to show it - trayIcon = new QSystemTrayIcon( QIcon( ":/icons/programicon.png" ), this ); + trayIcon = new QSystemTrayIcon( QIcon( ":/icons/programicon_old.png" ), this ); trayIcon->setContextMenu( &trayIconMenu ); trayIcon->show(); @@ -983,7 +986,7 @@ trayIcon->setIcon( QIcon( enableScanPopup->isChecked() ? ":/icons/programicon_scan.png" : - ":/icons/programicon.png" ) ); + ":/icons/programicon_old.png" ) ); trayIcon->setToolTip( "GoldenDict" ); } @@ -1148,7 +1151,10 @@ updateDictionaryBar(); +#ifdef QT_DEBUG qDebug() << "Reloading all the tabs..."; +#endif + for( int i = 0; i < ui.tabWidget->count(); ++i ) { ArticleView & view = @@ -1518,6 +1524,12 @@ QString escaped = title; escaped.replace( "&", "&&" ); + if( escaped.isRightToLeft() ) + { + escaped.insert( 0, (ushort)0x202E ); // RLE, Right-to-Left Embedding + escaped.append( (ushort)0x202C ); // PDF, POP DIRECTIONAL FORMATTING + } + ui.tabWidget->setTabText( ui.tabWidget->indexOf( view ), escaped ); updateWindowTitle(); } @@ -1535,6 +1547,11 @@ QString str = view->getTitle(); if( !str.isEmpty() ) { + if( str.isRightToLeft() ) + { + str.insert( 0, (ushort)0x202E ); // RLE, Right-to-Left Embedding + str.append( (ushort)0x202C ); // PDF, POP DIRECTIONAL FORMATTING + } if( !blockUpdateWindowTitle ) setWindowTitle( tr( "%1 - %2" ).arg( str, "GoldenDict" ) ); blockUpdateWindowTitle = false; @@ -1693,6 +1710,9 @@ Config::Class newCfg = cfg; EditDictionaries dicts( this, newCfg, dictionaries, groupInstances, dictNetMgr ); + connect( &dicts, SIGNAL( showDictionaryInfo( QString const & ) ), + this, SLOT( showDictionaryInfo( QString const & ) ) ); + if ( editDictionaryGroup != Instances::Group::NoGroupId ) dicts.editGroup( editDictionaryGroup ); @@ -1721,6 +1741,8 @@ updateGroupList(); Config::save( cfg ); + + translateInputChanged( translateLine->text() ); } } @@ -2208,16 +2230,23 @@ void MainWindow::dictsListItemActivated( QListWidgetItem * item ) { - QString id = item->data( Qt::UserRole ).toString(); - getCurrentArticleView()->jumpToDictionary( id ); + jumpToDictionary( item, true ); } void MainWindow::dictsListSelectionChanged() { QList< QListWidgetItem * > selected = ui.dictsList->selectedItems(); - if ( selected.size() ) - dictsListItemActivated( selected.front() ); + jumpToDictionary( selected.front() ); +} + +void MainWindow::jumpToDictionary( QListWidgetItem * item, bool force ) +{ + ArticleView * view = getCurrentArticleView(); + if ( view ) + { + view->jumpToDictionary( item->data( Qt::UserRole ).toString(), force ); + } } void MainWindow::openLinkInNewTab( QUrl const & url, @@ -3216,7 +3245,7 @@ { if ( QWidget * cw = ui.tabWidget->currentWidget() ) { - return &( dynamic_cast< ArticleView & >( *( cw ) ) ); + return dynamic_cast< ArticleView * >( cw ); } return 0; } diff -Nru goldendict-1.0.2~git20130620/mainwindow.hh goldendict-1.5.0~ppa131019/mainwindow.hh --- goldendict-1.0.2~git20130620/mainwindow.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/mainwindow.hh 2013-10-18 14:32:58.000000000 +0000 @@ -323,6 +323,8 @@ void dictsListItemActivated( QListWidgetItem * ); void dictsListSelectionChanged(); + void jumpToDictionary( QListWidgetItem *, bool force = false ); + void showDictsPane( ); void dictsPaneVisibilityChanged ( bool ); diff -Nru goldendict-1.0.2~git20130620/mdx.cc goldendict-1.5.0~ppa131019/mdx.cc --- goldendict-1.0.2~git20130620/mdx.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/mdx.cc 2013-10-18 14:32:58.000000000 +0000 @@ -880,7 +880,7 @@ Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1\"bres://" + id + "/\\\"" ) // images - .replace( QRegExp( "(<\\s*img\\s+[^>]*\\bsrc\\b\\s*=\\s*[\"']+)(?:file://)?[\\x00-\\x30\\x7f]*([^\"']*)", + .replace( QRegExp( "(<\\s*img\\s+[^>]*\\bsrc\\b\\s*=\\s*[\"']+)(?:file://)?[\\x00-\\x1f\\x7f]*([^\"']*)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1bres://" + id + "/\\2" ) .replace( QRegExp( "(<\\s*img\\s+[^>]*\\bsrc\\b\\s*=\\s*)(?!['\"]+)(?!bres:|data:)(?:file://)?([^\\s>]+)", @@ -1009,6 +1009,9 @@ indexIsOldOrBad( dictFiles, indexFile ) ) { // Building the index + + qDebug( "MDict: Building the index for dictionary: %s\n", i->c_str() ); + MdictParser parser; list< sptr< MdictParser > > mddParsers; @@ -1026,7 +1029,7 @@ sptr< MdictParser > mddParser = new MdictParser(); if ( !mddParser->open( mddIter->c_str() ) ) { - FDPRINTF( stderr, "Warning: Broken mdd (resource) file: %s\n", mddIter->c_str() ); + qWarning( "Warning: Broken mdd (resource) file: %s\n", mddIter->c_str() ); continue; } mddParsers.push_back( mddParser ); diff -Nru goldendict-1.0.2~git20130620/mediawiki.cc goldendict-1.5.0~ppa131019/mediawiki.cc --- goldendict-1.0.2~git20130620/mediawiki.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/mediawiki.cc 2013-10-18 14:32:58.000000000 +0000 @@ -10,6 +10,7 @@ #include #include "dprintf.hh" #include "audiolink.hh" +#include "langcoder.hh" namespace MediaWiki { @@ -22,6 +23,7 @@ string name; QString url, icon; QNetworkAccessManager & netMgr; + quint32 langId; public: @@ -33,8 +35,12 @@ name( name_ ), url( url_ ), icon( icon_ ), - netMgr( netMgr_ ) + netMgr( netMgr_ ), + langId( 0 ) { + int n = url.indexOf( "." ); + if( n == 2 || ( n > 3 && url[ n-3 ] == '/' ) ) + langId = LangCoder::code2toInt( url.mid( n - 2, 2 ).toLatin1().data() ); } virtual string getName() throw() @@ -56,6 +62,12 @@ wstring const & ) throw( std::exception ); + virtual quint32 getLangFrom() const + { return langId; } + + virtual quint32 getLangTo() const + { return langId; } + protected: virtual void loadIcon() throw(); @@ -205,7 +217,7 @@ MediaWikiArticleRequest( wstring const & word, vector< wstring > const & alts, QString const & url, QNetworkAccessManager & mgr, - string const & wikidictID ); + Class * dictPtr_ ); virtual void cancel(); @@ -214,7 +226,7 @@ void addQuery( QNetworkAccessManager & mgr, wstring const & word ); virtual void requestFinished( QNetworkReply * ); - string dictID; + Class * dictPtr; }; void MediaWikiArticleRequest::cancel() @@ -226,8 +238,8 @@ vector< wstring > const & alts, QString const & url_, QNetworkAccessManager & mgr, - string const & wikidictID ): - url( url_ ), dictID( wikidictID ) + Class * dictPtr_ ): + url( url_ ), dictPtr( dictPtr_ ) { connect( &mgr, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( requestFinished( QNetworkReply * ) ), @@ -242,13 +254,7 @@ void MediaWikiArticleRequest::addQuery( QNetworkAccessManager & mgr, wstring const & str ) { - DPRINTF( "Requesting article %ls\n", -#ifdef Q_OS_WIN - gd::toQString( str ).toStdWString().c_str() -#else - str.c_str() -#endif - ); + qDebug() << "MediaWiki: requesting article" << gd::toQString( str ); QUrl reqUrl( url + "/api.php?action=parse&prop=text|revid&format=xml&redirects" ); @@ -325,7 +331,7 @@ // audio url articleString.replace( QRegExp( "dictID )+ "dictPtr->getId() )+ "]*(upload\\.wikimedia\\.org/wikipedia/commons/[^\"'&]*\\.ogg)[^>]*>\\s*<[^<]*"), - QString::fromStdString(addAudioLink("\"http://\\1\"",this->dictID)+ + QString::fromStdString(addAudioLink("\"http://\\1\"",this->dictPtr->getId())+ "\"Play\"")); // In those strings, change any underscores to spaces for( ; ; ) @@ -355,9 +361,8 @@ QByteArray articleBody = articleString.toUtf8(); - DPRINTF( "Article body after: %s\n", articleBody.data() ); - - articleBody.prepend( "
" ); + articleBody.prepend( dictPtr->isToLanguageRTL() ? "
" : + "
" ); articleBody.append( "
" ); Mutex::Lock _( dataMutex ); @@ -414,7 +419,7 @@ return new DataRequestInstant( false ); } else - return new MediaWikiArticleRequest( word, alts, url, netMgr,this->getId() ); + return new MediaWikiArticleRequest( word, alts, url, netMgr, this ); } } diff -Nru goldendict-1.0.2~git20130620/mouseover.cc goldendict-1.5.0~ppa131019/mouseover.cc --- goldendict-1.0.2~git20130620/mouseover.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/mouseover.cc 2013-10-18 14:32:58.000000000 +0000 @@ -25,16 +25,16 @@ #ifdef Q_OS_WIN32 const UINT WM_MY_SHOW_TRANSLATION = WM_USER + 301; static wchar_t className[] = L"GoldenDictMouseover"; -typedef BOOL WINAPI ( *ChangeWindowMessageFilterFunc )( UINT, DWORD ); +typedef BOOL ( WINAPI *ChangeWindowMessageFilterFunc )( UINT, DWORD ); -#ifndef CHANGEFILTERSTRUCT +#ifndef _MSC_VER typedef struct tagCHANGEFILTERSTRUCT { DWORD cbSize; DWORD ExtStatus; } CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT; #endif -typedef BOOL WINAPI ( *ChangeWindowMessageFilterExFunc )( HWND, UINT, DWORD, PCHANGEFILTERSTRUCT ); +typedef BOOL ( WINAPI *ChangeWindowMessageFilterExFunc )( HWND, UINT, DWORD, PCHANGEFILTERSTRUCT ); #endif // Q_OS_WIN32 diff -Nru goldendict-1.0.2~git20130620/myInfo.plist goldendict-1.5.0~ppa131019/myInfo.plist --- goldendict-1.0.2~git20130620/myInfo.plist 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/myInfo.plist 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,22 @@ + + + + + CFBundleIconFile + @ICON@ + CFBundlePackageType + APPL + CFBundleGetInfoString + @SHORT_VERSION@ + CFBundleSignature + @TYPEINFO@ + CFBundleExecutable + @EXECUTABLE@ + CFBundleShortVersionString + @SHORT_VERSION@ + CFBundleIdentifier + org.goldendict + NSPrincipalClass + NSApplication + + diff -Nru goldendict-1.0.2~git20130620/nsis/GoldenDict.nsi goldendict-1.5.0~ppa131019/nsis/GoldenDict.nsi --- goldendict-1.0.2~git20130620/nsis/GoldenDict.nsi 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/nsis/GoldenDict.nsi 2013-10-18 14:32:58.000000000 +0000 @@ -1,7 +1,7 @@ !include "MUI2.nsh" Name "GoldenDict" - OutFile "GoldenDict-1.0.1-1-Install.exe" + OutFile "GoldenDict-1.5.0-Install.exe" InstallDir "$PROGRAMFILES\GoldenDict" @@ -20,7 +20,7 @@ ;Pages !insertmacro MUI_PAGE_WELCOME - !insertmacro MUI_PAGE_LICENSE "LICENSE.txt" + !insertmacro MUI_PAGE_LICENSE "../LICENSE.txt" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_STARTMENU GDApplication $StartMenuFolder @@ -102,30 +102,35 @@ CreateDirectory $INSTDIR\imageformats SetOutPath $INSTDIR\imageformats - File ..\release\imageformats\* + File ..\imageformats\* - CreateDirectory $INSTDIR\phonon_backend - SetOutPath $INSTDIR\phonon_backend - File ..\release\phonon_backend\* + CreateDirectory $INSTDIR\codecs + SetOutPath $INSTDIR\codecs + File ..\codecs\* + + CreateDirectory $INSTDIR\x64 + SetOutPath $INSTDIR\x64 + File ..\x64\* CreateDirectory $INSTDIR\locale SetOutPath $INSTDIR\locale - File ..\release\locale\* + File ..\locale\* CreateDirectory $INSTDIR\content CreateDirectory $INSTDIR\content\morphology SetOutPath $INSTDIR\content\morphology - File ..\release\content\morphology\* + File ..\content\morphology\* SetOutPath $INSTDIR - File ..\release\*.dll - File LICENSE.txt - File /oname=$INSTDIR\GoldenDict.exe ..\release\goldendict.exe + File ..\*.dll + File ..\LICENSE.txt + File /oname=$INSTDIR\GoldenDict.exe ..\goldendict.exe WriteUninstaller "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN GDApplication + SetShellVarContext all CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GoldenDict.lnk" "$INSTDIR\GoldenDict.exe" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" @@ -404,6 +409,7 @@ skip_cfg: + SetShellVarContext all !insertmacro MUI_STARTMENU_GETFOLDER GDApplication $StartMenuFolder ; This file is auto-generated diff -Nru goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.exe.manifest goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.exe.manifest --- goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.exe.manifest 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.exe.manifest 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff -Nru goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.pro goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.pro --- goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.pro 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.pro 2013-10-18 14:32:58.000000000 +0000 @@ -9,3 +9,5 @@ # Input SOURCES += gen_uninstall.cc + +RC_FILE = gen_uninstall.rc diff -Nru goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.rc goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.rc --- goldendict-1.0.2~git20130620/nsis/gen_uninstall/gen_uninstall.rc 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/nsis/gen_uninstall/gen_uninstall.rc 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,3 @@ +#include + +1 RT_MANIFEST gen_uninstall.exe.manifest diff -Nru goldendict-1.0.2~git20130620/preferences.cc goldendict-1.5.0~ppa131019/preferences.cc --- goldendict-1.0.2~git20130620/preferences.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/preferences.cc 2013-10-18 14:32:58.000000000 +0000 @@ -77,7 +77,7 @@ break; } - ui.displayStyle->addItem( QIcon( ":/icons/programicon.png" ), tr( "Default" ), QString() ); + ui.displayStyle->addItem( QIcon( ":/icons/programicon_old.png" ), tr( "Default" ), QString() ); ui.displayStyle->addItem( QIcon( ":/icons/programicon.png" ), tr( "Modern" ), QString( "modern" ) ); ui.displayStyle->addItem( QIcon( ":/icons/icon32_dsl.png" ), tr( "Lingvo" ), QString( "lingvo" ) ); ui.displayStyle->addItem( QIcon( ":/icons/icon32_bgl.png" ), tr( "Babylon" ), QString( "babylon" ) ); diff -Nru goldendict-1.0.2~git20130620/preferences.ui goldendict-1.5.0~ppa131019/preferences.ui --- goldendict-1.0.2~git20130620/preferences.ui 2013-06-20 19:14:28.000000000 +0000 +++ goldendict-1.5.0~ppa131019/preferences.ui 2013-10-18 14:32:58.000000000 +0000 @@ -804,7 +804,7 @@ - :/icons/playsound.png:/icons/playsound.png + :/icons/playsound_color.png:/icons/playsound_color.png &Audio diff -Nru goldendict-1.0.2~git20130620/redist/goldendict.desktop goldendict-1.5.0~ppa131019/redist/goldendict.desktop --- goldendict-1.0.2~git20130620/redist/goldendict.desktop 2013-06-20 19:14:38.000000000 +0000 +++ goldendict-1.5.0~ppa131019/redist/goldendict.desktop 2013-10-18 14:32:58.000000000 +0000 @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Terminal=false -Categories=Office;Dictionary;Education;Qt;Applications +Categories=Office;Dictionary;Education;Qt Name=GoldenDict GenericName=Multiformat Dictionary Comment=GoldenDict Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/redist/icons/goldendict.png and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/redist/icons/goldendict.png differ diff -Nru goldendict-1.0.2~git20130620/resources.qrc goldendict-1.5.0~ppa131019/resources.qrc --- goldendict-1.0.2~git20130620/resources.qrc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/resources.qrc 2013-10-18 14:32:58.000000000 +0000 @@ -71,5 +71,10 @@ icons/expand_article.png icons/collapse_article_hovered.png icons/collapse_article.png + icons/video.png + icons/programicon_old.png + icons/playsound_color.png + icons/playsound_full.png + icons/icon32_zim.png diff -Nru goldendict-1.0.2~git20130620/sdict.cc goldendict-1.5.0~ppa131019/sdict.cc --- goldendict-1.0.2~git20130620/sdict.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/sdict.cc 2013-10-18 14:32:58.000000000 +0000 @@ -10,6 +10,7 @@ #include "dprintf.hh" #include "fsencoding.hh" #include "decompress.hh" +#include "htmlescape.hh" #include #include @@ -23,7 +24,8 @@ #include #include #include -#include +#include +#include #include "ufile.hh" @@ -47,9 +49,7 @@ DEF_EX_STR( exWordIsTooLarge, "Enountered a word that is too large:", Dictionary::Ex ) DEF_EX_STR( exSuddenEndOfFile, "Sudden end of file", Dictionary::Ex ) -#ifdef _MSC_VER #pragma pack( push, 1 ) -#endif /// DCT file header struct DCT_header @@ -107,9 +107,7 @@ #endif ; -#ifdef _MSC_VER -#pragma pack( pop, 1 ) -#endif +#pragma pack( pop ) bool indexIsOldOrBad( string const & indexFile ) { @@ -256,60 +254,72 @@ } } - QDomDocument dd; - QString errorStr; - int errorLine, errorColumn; + QString result = QString::fromUtf8( inConverted.c_str(), inConverted.size() ); - if( !dd.setContent( QByteArray( inConverted.c_str() ), false, &errorStr, &errorLine, &errorColumn ) ) - { - FDPRINTF( stderr, "Sdictionary article parse failed: %s at %d,%d\n", errorStr.toLocal8Bit().constData(), errorLine, errorColumn ); - FDPRINTF( stderr, "The input was: %s\n", in.c_str() ); - return in; - } + result.replace( QRegExp( "<\\s*(p|br)\\s*>", Qt::CaseInsensitive ), "
" ); + result.remove( QRegExp( "<\\s*/p\\s*>", Qt::CaseInsensitive ) ); - QDomNodeList nodes = dd.elementsByTagName( "r" ); // Reference to another word + result.replace( QRegExp( "<\\s*t\\s*>", Qt::CaseInsensitive ), "" ); + result.replace( QRegExp( "<\\s*f\\s*>", Qt::CaseInsensitive ), "" ); + result.replace( QRegExp( "<\\s*/(t|f)\\s*>", Qt::CaseInsensitive ), "" ); - while( nodes.size() ) - { - QDomElement el = nodes.at( 0 ).toElement(); + result.replace( QRegExp( "<\\s*l\\s*>", Qt::CaseInsensitive ), "
    " ); + result.replace( QRegExp( "<\\s*/l\\s*>", Qt::CaseInsensitive ), "
" ); - el.setTagName( "a" ); - el.setAttribute( "href", QString( "bword:" ) + el.text() ); - el.setAttribute( "class", "sdict_wordref" ); - } + // Links handling - nodes = dd.elementsByTagName( "t" ); // Transcription - - while( nodes.size() ) + int n = 0; + for( ; ; ) { - QDomElement el = nodes.at( 0 ).toElement(); + static QRegExp start_link_tag( "<\\s*r\\s*>", Qt::CaseInsensitive ); + static QRegExp end_link_tag( "<\\s*/r\\s*>", Qt::CaseInsensitive ); - el.setTagName( "span" ); - el.setAttribute( "class", "sdict_tr" ); - } + n = result.indexOf( start_link_tag, n ); + if( n < 0 ) + break; - nodes = dd.elementsByTagName( "l" ); // List + int end = result.indexOf( end_link_tag, n ); + if( end < 0 ) + break; - while( nodes.size() ) - { - QDomElement el = nodes.at( 0 ).toElement(); + int tag_len = start_link_tag.cap().length(); + QString link_text = result.mid( n + tag_len, end - n - tag_len ); - el.setTagName( "ul" ); + result.replace( end, end_link_tag.cap().length(), "" ); + result.replace( n, tag_len, QString( ""); } - nodes = dd.elementsByTagName( "f" ); // Word forms + // Adjust text direction for lines - while( nodes.size() ) + n = 0; + bool b = true; + while( b ) { - QDomElement el = nodes.at( 0 ).toElement(); + int next = result.indexOf( "
", n ); + if( next < 0 ) + { + next = result.length(); + b = false; + } - el.setTagName( "span" ); - el.setAttribute( "class", "sdict_forms" ); - } + if( !result.mid( n, next - n ).contains( '<' ) ) + { + if( Html::unescape( result.mid( n, next - n ) ).isRightToLeft() != isToLanguageRTL() ) + { + result.insert( next, "
" ); + result.insert( n, + QString( "" + ); + next = result.indexOf( "
", n ); + } + } -// DPRINTF( "Result>>>>>>>>>>: %s\n\n\n", dd.toByteArray().data() ); + n = next + 5; + } - return dd.toByteArray().data(); + return result.toUtf8().data(); } void SdictDictionary::loadArticle( uint32_t address, @@ -335,8 +345,15 @@ else articleText = string( articleBody.data(), articleSize ); - articleText = "
" + articleText + "
"; articleText = convert( articleText ); + + string div = "
" ); } /// SdictDictionary::getArticle() @@ -447,25 +464,33 @@ string headword, articleText; headword = chain[ x ].word; - dict.loadArticle( chain[ x ].articleOffset, articleText ); - // Ok. Now, does it go to main articles, or to alternate ones? We list - // main ones first, and alternates after. + try + { + dict.loadArticle( chain[ x ].articleOffset, articleText ); + + // Ok. Now, does it go to main articles, or to alternate ones? We list + // main ones first, and alternates after. - // We do the case-folded comparison here. + // We do the case-folded comparison here. - wstring headwordStripped = - Folding::applySimpleCaseOnly( Utf8::decode( headword ) ); + wstring headwordStripped = + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ); - multimap< wstring, pair< string, string > > & mapToUse = - ( wordCaseFolded == headwordStripped ) ? - mainArticles : alternateArticles; + multimap< wstring, pair< string, string > > & mapToUse = + ( wordCaseFolded == headwordStripped ) ? + mainArticles : alternateArticles; - mapToUse.insert( pair< wstring, pair< string, string > >( - Folding::applySimpleCaseOnly( Utf8::decode( headword ) ), - pair< string, string >( headword, articleText ) ) ); + mapToUse.insert( pair< wstring, pair< string, string > >( + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ), + pair< string, string >( headword, articleText ) ) ); - articlesIncluded.insert( chain[ x ].articleOffset ); + articlesIncluded.insert( chain[ x ].articleOffset ); + } + catch( std::exception &ex ) + { + qWarning( "SDict: Failed loading article from \"%s\", reason: %s\n", dict.getName().c_str(), ex.what() ); + } } if ( mainArticles.empty() && alternateArticles.empty() ) @@ -481,7 +506,7 @@ for( i = mainArticles.begin(); i != mainArticles.end(); ++i ) { - result += "

"; + result += dict.isFromLanguageRTL() ? "

" : "

"; result += i->second.first; result += "

"; result += i->second.second; @@ -489,10 +514,14 @@ for( i = alternateArticles.begin(); i != alternateArticles.end(); ++i ) { - result += "

"; + result += dict.isFromLanguageRTL() ? "

" : "

"; result += i->second.first; result += "

"; + if( dict.isToLanguageRTL() ) + result += ""; result += i->second.second; + if( dict.isToLanguageRTL() ) + result += ""; } Mutex::Lock _( dataMutex ); @@ -546,6 +575,8 @@ { try { + qDebug( "SDict: Building the index for dictionary: %s\n", i->c_str() ); + File::Class df( *i, "rb" ); DCT_header dictHeader; @@ -553,7 +584,7 @@ df.read( &dictHeader, sizeof(dictHeader) ); if( strncmp( dictHeader.signature, "sdct", 4 ) ) { - DPRINTF( "File %s is not valid sdictionary file", i->c_str() ); + qWarning( "File \"%s\" is not valid SDictionary file", i->c_str() ); continue; } int compression = dictHeader.compression & 0x0F; @@ -650,13 +681,13 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Sdictionary dictionary indexing failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Sdictionary dictionary indexing failed: %s, error: %s\n", + i->c_str(), e.what() ); continue; } catch( ... ) { - FDPRINTF( stderr, "Sdictionary dictionary indexing failed\n" ); + qWarning( "Sdictionary dictionary indexing failed\n" ); continue; } } // if need to rebuild diff -Nru goldendict-1.0.2~git20130620/sounddir.cc goldendict-1.5.0~ppa131019/sounddir.cc --- goldendict-1.0.2~git20130620/sounddir.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/sounddir.cc 2013-10-18 14:32:58.000000000 +0000 @@ -16,6 +16,7 @@ #include #include #include +#include namespace SoundDir { @@ -371,6 +372,8 @@ { // Building the index + qDebug() << "Sounds: Building the index for directory: " << i->path; + initializing.indexingDictionary( i->name.toUtf8().data() ); File::Class idx( indexFile, "wb" ); diff -Nru goldendict-1.0.2~git20130620/stardict.cc goldendict-1.5.0~ppa131019/stardict.cc --- goldendict-1.0.2~git20130620/stardict.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/stardict.cc 2013-10-18 14:32:58.000000000 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include #include "ufile.hh" @@ -312,12 +313,14 @@ .toUtf8().data() ); } case 'm': // Pure meaning, usually means preformatted text - return "
" + Html::preformat( string( resource, size ) ) + "
"; + return "
" + Html::preformat( string( resource, size ), isToLanguageRTL() ) + "
"; case 'l': // Same as 'm', but not in utf8, instead in current locale's // encoding. // We just use Qt here, it should know better about system's // locale. - return "
" + Html::preformat( QString::fromLocal8Bit( resource, size ).toUtf8().data() ) + "
"; + return "
" + Html::preformat( QString::fromLocal8Bit( resource, size ).toUtf8().data(), + isToLanguageRTL() ) + + "
"; case 'g': // Pango markup. return "
" + string( resource, size ) + "
"; case 't': // Transcription @@ -393,7 +396,7 @@ else if ( !size ) { - FDPRINTF( stderr, "Warning: short entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: short entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -407,7 +410,7 @@ if ( size < entrySize ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -428,7 +431,7 @@ { if ( size < sizeof( uint32_t ) ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -442,7 +445,7 @@ if ( size < entrySize ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -453,8 +456,8 @@ } else { - FDPRINTF( stderr, "Warning: non-alpha entry type 0x%x for the word %s encountered.\n", - type, headword.c_str() ); + qWarning( "Stardict: non-alpha entry type 0x%x for the word %s encountered in \"%s\".\n", + type, headword.c_str(), getName().c_str() ); break; } } @@ -471,7 +474,7 @@ if ( size < len + 2 ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -486,7 +489,7 @@ // An entry which havs its size before contents if ( size < sizeof( uint32_t ) + 1 ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -498,7 +501,7 @@ if ( size < sizeof( uint32_t ) + 1 + entrySize ) { - FDPRINTF( stderr, "Warning: malformed entry for the word %s encountered.\n", headword.c_str() ); + qWarning( "Stardict: malformed entry for the word %s encountered in \"%s\".\n", headword.c_str(), getName().c_str() ); break; } @@ -509,8 +512,8 @@ } else { - FDPRINTF( stderr, "Warning: non-alpha entry type 0x%x for the word %s encountered.\n", - (unsigned)*ptr, headword.c_str() ); + qWarning( "Stardict: non-alpha entry type 0x%x for the word %s encountered in \"%s\".\n", + (unsigned)*ptr, headword.c_str(), getName().c_str() ); break; } } @@ -821,20 +824,28 @@ for( i = mainArticles.begin(); i != mainArticles.end(); ++i ) { - result += "

"; + result += dict.isFromLanguageRTL() ? "

" : "

"; result += i->second.first; result += "

"; + if( dict.isToLanguageRTL() ) + result += ""; result += i->second.second; result += cleaner; + if( dict.isToLanguageRTL() ) + result += ""; } for( i = alternateArticles.begin(); i != alternateArticles.end(); ++i ) { - result += "

"; + result += dict.isFromLanguageRTL() ? "

" : "

"; result += i->second.first; result += "

"; + if( dict.isToLanguageRTL() ) + result += ""; result += i->second.second; result += cleaner; + if( dict.isToLanguageRTL() ) + result += ""; } result = QString::fromUtf8( result.c_str() ) .replace( QRegExp( "(<\\s*a\\s+[^>]*href\\s*=\\s*[\"']\\s*)bword://", Qt::CaseInsensitive ), @@ -1104,13 +1115,11 @@ hasAnyData = true; } - catch( File::Ex & ) + catch( std::exception &ex ) { - // No such resource -- we don't set the hasAnyData flag then - } - catch( Utf8::exCantDecode ) - { - // Failed to decode some utf8 -- probably the resource name is no good + qWarning( "Stardict: Failed loading resource \"%s\" for \"%s\", reason: %s\n", + resourceName.c_str(), dict.getName().c_str(), ex.what() ); + // Resource not loaded -- we don't set the hasAnyData flag then } catch( ... ) { @@ -1347,6 +1356,8 @@ Ifo ifo( ifoFile ); + qDebug( "Stardict: Building the index for dictionary: %s\n", ifo.bookname.c_str() ); + if ( ifo.idxoffsetbits == 64 ) throw ex64BitsNotSupported(); diff -Nru goldendict-1.0.2~git20130620/termination.cc goldendict-1.5.0~ppa131019/termination.cc --- goldendict-1.0.2~git20130620/termination.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/termination.cc 2013-10-18 14:32:58.000000000 +0000 @@ -4,7 +4,11 @@ #include "termination.hh" #include #include + +#ifndef _MSC_VER #include +#endif + #include #ifndef __WIN32 @@ -22,19 +26,33 @@ static void termHandler() { + if( logFile.isOpen() ) + logFile.close(); + std::string message( "GoldenDict has crashed with an unexpected exception\n\n" ); int status; char * function = 0; size_t functionLength = 0; +#ifdef _MSC_VER + std::type_info * ti = 0; +#else std::type_info * ti = __cxxabiv1::__cxa_current_exception_type(); +#endif if ( ti ) { char const * name = ti->name(); +#ifdef _MSC_VER + char * ret = 0; + // avoid 'unused' warnings + (void) status; + (void) functionLength; +#else char * ret = abi::__cxa_demangle( name, function, &functionLength, &status ); +#endif if ( ret ) { diff -Nru goldendict-1.0.2~git20130620/termination.hh goldendict-1.5.0~ppa131019/termination.hh --- goldendict-1.0.2~git20130620/termination.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/termination.hh 2013-10-18 14:32:58.000000000 +0000 @@ -4,6 +4,10 @@ #ifndef TERMINATION_HH #define TERMINATION_HH +#include + +extern QFile logFile; + // Installs the termination handler which attempts to pop Qt's dialog showing // the exception and backtrace, and then aborts. void installTerminationHandler(); diff -Nru goldendict-1.0.2~git20130620/ufile.cc goldendict-1.5.0~ppa131019/ufile.cc --- goldendict-1.0.2~git20130620/ufile.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/ufile.cc 2013-10-18 14:32:58.000000000 +0000 @@ -1,6 +1,7 @@ #ifdef __WIN32 #include +#include #include #include diff -Nru goldendict-1.0.2~git20130620/ufile.hh goldendict-1.5.0~ppa131019/ufile.hh --- goldendict-1.0.2~git20130620/ufile.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/ufile.hh 2013-10-18 14:32:58.000000000 +0000 @@ -5,6 +5,11 @@ #include "zlib.h" +// eliminate some VC++ warnings +#ifdef _MSC_VER +#define fileno _fileno +#endif + #ifdef __cplusplus extern "C" { diff -Nru goldendict-1.0.2~git20130620/utf8.cc goldendict-1.5.0~ppa131019/utf8.cc --- goldendict-1.0.2~git20130620/utf8.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/utf8.cc 2013-10-18 14:32:58.000000000 +0000 @@ -141,6 +141,10 @@ wstring decode( string const & in ) throw( exCantDecode ) { + + if ( in.size() == 0 ) + return wstring(); + std::vector< wchar > buffer( in.size() ); long result = decode( in.data(), in.size(), &buffer.front() ); diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/affentry.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/affentry.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/affentry.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/affentry.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,136 @@ +#ifndef _AFFIX_HXX_ +#define _AFFIX_HXX_ + +#include "hunvisapi.h" + +#include "atypes.hxx" +#include "baseaffix.hxx" +#include "affixmgr.hxx" + +/* A Prefix Entry */ + +class LIBHUNSPELL_DLL_EXPORTED PfxEntry : protected AffEntry +{ + AffixMgr* pmyMgr; + + PfxEntry * next; + PfxEntry * nexteq; + PfxEntry * nextne; + PfxEntry * flgnxt; + +public: + + PfxEntry(AffixMgr* pmgr, affentry* dp ); + ~PfxEntry(); + + inline bool allowCross() { return ((opts & aeXPRODUCT) != 0); } + struct hentry * checkword(const char * word, int len, char in_compound, + const FLAG needflag = FLAG_NULL); + + struct hentry * check_twosfx(const char * word, int len, char in_compound, const FLAG needflag = NULL); + + char * check_morph(const char * word, int len, char in_compound, + const FLAG needflag = FLAG_NULL); + + char * check_twosfx_morph(const char * word, int len, + char in_compound, const FLAG needflag = FLAG_NULL); + + inline FLAG getFlag() { return aflag; } + inline const char * getKey() { return appnd; } + char * add(const char * word, int len); + + inline short getKeyLen() { return appndl; } + + inline const char * getMorph() { return morphcode; } + + inline const unsigned short * getCont() { return contclass; } + inline short getContLen() { return contclasslen; } + + inline PfxEntry * getNext() { return next; } + inline PfxEntry * getNextNE() { return nextne; } + inline PfxEntry * getNextEQ() { return nexteq; } + inline PfxEntry * getFlgNxt() { return flgnxt; } + + inline void setNext(PfxEntry * ptr) { next = ptr; } + inline void setNextNE(PfxEntry * ptr) { nextne = ptr; } + inline void setNextEQ(PfxEntry * ptr) { nexteq = ptr; } + inline void setFlgNxt(PfxEntry * ptr) { flgnxt = ptr; } + + inline char * nextchar(char * p); + inline int test_condition(const char * st); +}; + + + + +/* A Suffix Entry */ + +class LIBHUNSPELL_DLL_EXPORTED SfxEntry : protected AffEntry +{ + AffixMgr* pmyMgr; + char * rappnd; + + SfxEntry * next; + SfxEntry * nexteq; + SfxEntry * nextne; + SfxEntry * flgnxt; + + SfxEntry * l_morph; + SfxEntry * r_morph; + SfxEntry * eq_morph; + +public: + + SfxEntry(AffixMgr* pmgr, affentry* dp ); + ~SfxEntry(); + + inline bool allowCross() { return ((opts & aeXPRODUCT) != 0); } + struct hentry * checkword(const char * word, int len, int optflags, + PfxEntry* ppfx, char ** wlst, int maxSug, int * ns, +// const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound=IN_CPD_NOT); + const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, const FLAG badflag = 0); + + struct hentry * check_twosfx(const char * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL); + + char * check_twosfx_morph(const char * word, int len, int optflags, + PfxEntry* ppfx, const FLAG needflag = FLAG_NULL); + struct hentry * get_next_homonym(struct hentry * he); + struct hentry * get_next_homonym(struct hentry * word, int optflags, PfxEntry* ppfx, + const FLAG cclass, const FLAG needflag); + + + inline FLAG getFlag() { return aflag; } + inline const char * getKey() { return rappnd; } + char * add(const char * word, int len); + + + inline const char * getMorph() { return morphcode; } + + inline const unsigned short * getCont() { return contclass; } + inline short getContLen() { return contclasslen; } + inline const char * getAffix() { return appnd; } + + inline short getKeyLen() { return appndl; } + + inline SfxEntry * getNext() { return next; } + inline SfxEntry * getNextNE() { return nextne; } + inline SfxEntry * getNextEQ() { return nexteq; } + + inline SfxEntry * getLM() { return l_morph; } + inline SfxEntry * getRM() { return r_morph; } + inline SfxEntry * getEQM() { return eq_morph; } + inline SfxEntry * getFlgNxt() { return flgnxt; } + + inline void setNext(SfxEntry * ptr) { next = ptr; } + inline void setNextNE(SfxEntry * ptr) { nextne = ptr; } + inline void setNextEQ(SfxEntry * ptr) { nexteq = ptr; } + inline void setFlgNxt(SfxEntry * ptr) { flgnxt = ptr; } + + inline char * nextchar(char * p); + inline int test_condition(const char * st, const char * begin); + +}; + +#endif + + diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/affixmgr.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/affixmgr.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/affixmgr.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/affixmgr.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,250 @@ +#ifndef _AFFIXMGR_HXX_ +#define _AFFIXMGR_HXX_ + +#include "hunvisapi.h" + +#include + +#include "atypes.hxx" +#include "baseaffix.hxx" +#include "hashmgr.hxx" +#include "phonet.hxx" +#include "replist.hxx" + +// check flag duplication +#define dupSFX (1 << 0) +#define dupPFX (1 << 1) + +class PfxEntry; +class SfxEntry; + +class LIBHUNSPELL_DLL_EXPORTED AffixMgr +{ + + PfxEntry * pStart[SETSIZE]; + SfxEntry * sStart[SETSIZE]; + PfxEntry * pFlag[SETSIZE]; + SfxEntry * sFlag[SETSIZE]; + HashMgr * pHMgr; + HashMgr ** alldic; + int * maxdic; + char * keystring; + char * trystring; + char * encoding; + struct cs_info * csconv; + int utf8; + int complexprefixes; + FLAG compoundflag; + FLAG compoundbegin; + FLAG compoundmiddle; + FLAG compoundend; + FLAG compoundroot; + FLAG compoundforbidflag; + FLAG compoundpermitflag; + int checkcompounddup; + int checkcompoundrep; + int checkcompoundcase; + int checkcompoundtriple; + int simplifiedtriple; + FLAG forbiddenword; + FLAG nosuggest; + FLAG nongramsuggest; + FLAG needaffix; + int cpdmin; + int numrep; + replentry * reptable; + RepList * iconvtable; + RepList * oconvtable; + int nummap; + mapentry * maptable; + int numbreak; + char ** breaktable; + int numcheckcpd; + patentry * checkcpdtable; + int simplifiedcpd; + int numdefcpd; + flagentry * defcpdtable; + phonetable * phone; + int maxngramsugs; + int maxcpdsugs; + int maxdiff; + int onlymaxdiff; + int nosplitsugs; + int sugswithdots; + int cpdwordmax; + int cpdmaxsyllable; + char * cpdvowels; + w_char * cpdvowels_utf16; + int cpdvowels_utf16_len; + char * cpdsyllablenum; + const char * pfxappnd; // BUG: not stateless + const char * sfxappnd; // BUG: not stateless + FLAG sfxflag; // BUG: not stateless + char * derived; // BUG: not stateless + SfxEntry * sfx; // BUG: not stateless + PfxEntry * pfx; // BUG: not stateless + int checknum; + char * wordchars; + unsigned short * wordchars_utf16; + int wordchars_utf16_len; + char * ignorechars; + unsigned short * ignorechars_utf16; + int ignorechars_utf16_len; + char * version; + char * lang; + int langnum; + FLAG lemma_present; + FLAG circumfix; + FLAG onlyincompound; + FLAG keepcase; + FLAG forceucase; + FLAG warn; + int forbidwarn; + FLAG substandard; + int checksharps; + int fullstrip; + + int havecontclass; // boolean variable + char contclasses[CONTSIZE]; // flags of possible continuing classes (twofold affix) + +public: + + AffixMgr(const char * affpath, HashMgr** ptr, int * md, + const char * key = NULL); + ~AffixMgr(); + struct hentry * affix_check(const char * word, int len, + const unsigned short needflag = (unsigned short) 0, + char in_compound = IN_CPD_NOT); + struct hentry * prefix_check(const char * word, int len, + char in_compound, const FLAG needflag = FLAG_NULL); + inline int isSubset(const char * s1, const char * s2); + struct hentry * prefix_check_twosfx(const char * word, int len, + char in_compound, const FLAG needflag = FLAG_NULL); + inline int isRevSubset(const char * s1, const char * end_of_s2, int len); + struct hentry * suffix_check(const char * word, int len, int sfxopts, + PfxEntry* ppfx, char ** wlst, int maxSug, int * ns, + const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, + char in_compound = IN_CPD_NOT); + struct hentry * suffix_check_twosfx(const char * word, int len, + int sfxopts, PfxEntry* ppfx, const FLAG needflag = FLAG_NULL); + + char * affix_check_morph(const char * word, int len, + const FLAG needflag = FLAG_NULL, char in_compound = IN_CPD_NOT); + char * prefix_check_morph(const char * word, int len, + char in_compound, const FLAG needflag = FLAG_NULL); + char * suffix_check_morph (const char * word, int len, int sfxopts, + PfxEntry * ppfx, const FLAG cclass = FLAG_NULL, + const FLAG needflag = FLAG_NULL, char in_compound = IN_CPD_NOT); + + char * prefix_check_twosfx_morph(const char * word, int len, + char in_compound, const FLAG needflag = FLAG_NULL); + char * suffix_check_twosfx_morph(const char * word, int len, + int sfxopts, PfxEntry * ppfx, const FLAG needflag = FLAG_NULL); + + char * morphgen(char * ts, int wl, const unsigned short * ap, + unsigned short al, char * morph, char * targetmorph, int level); + + int expand_rootword(struct guessword * wlst, int maxn, const char * ts, + int wl, const unsigned short * ap, unsigned short al, char * bad, + int, char *); + + short get_syllable (const char * word, int wlen); + int cpdrep_check(const char * word, int len); + int cpdpat_check(const char * word, int len, hentry * r1, hentry * r2, + const char affixed); + int defcpd_check(hentry *** words, short wnum, hentry * rv, + hentry ** rwords, char all); + int cpdcase_check(const char * word, int len); + inline int candidate_check(const char * word, int len); + void setcminmax(int * cmin, int * cmax, const char * word, int len); + struct hentry * compound_check(const char * word, int len, short wordnum, + short numsyllable, short maxwordnum, short wnum, hentry ** words, + char hu_mov_rule, char is_sug, int * info); + + int compound_check_morph(const char * word, int len, short wordnum, + short numsyllable, short maxwordnum, short wnum, hentry ** words, + char hu_mov_rule, char ** result, char * partresult); + + struct hentry * lookup(const char * word); + int get_numrep() const; + struct replentry * get_reptable() const; + RepList * get_iconvtable() const; + RepList * get_oconvtable() const; + struct phonetable * get_phonetable() const; + int get_nummap() const; + struct mapentry * get_maptable() const; + int get_numbreak() const; + char ** get_breaktable() const; + char * get_encoding(); + int get_langnum() const; + char * get_key_string(); + char * get_try_string() const; + const char * get_wordchars() const; + unsigned short * get_wordchars_utf16(int * len) const; + char * get_ignore() const; + unsigned short * get_ignore_utf16(int * len) const; + int get_compound() const; + FLAG get_compoundflag() const; + FLAG get_compoundbegin() const; + FLAG get_forbiddenword() const; + FLAG get_nosuggest() const; + FLAG get_nongramsuggest() const; + FLAG get_needaffix() const; + FLAG get_onlyincompound() const; + FLAG get_compoundroot() const; + FLAG get_lemma_present() const; + int get_checknum() const; + const char * get_prefix() const; + const char * get_suffix() const; + const char * get_derived() const; + const char * get_version() const; + int have_contclass() const; + int get_utf8() const; + int get_complexprefixes() const; + char * get_suffixed(char ) const; + int get_maxngramsugs() const; + int get_maxcpdsugs() const; + int get_maxdiff() const; + int get_onlymaxdiff() const; + int get_nosplitsugs() const; + int get_sugswithdots(void) const; + FLAG get_keepcase(void) const; + FLAG get_forceucase(void) const; + FLAG get_warn(void) const; + int get_forbidwarn(void) const; + int get_checksharps(void) const; + char * encode_flag(unsigned short aflag) const; + int get_fullstrip() const; + +private: + int parse_file(const char * affpath, const char * key); + int parse_flag(char * line, unsigned short * out, FileMgr * af); + int parse_num(char * line, int * out, FileMgr * af); + int parse_cpdsyllable(char * line, FileMgr * af); + int parse_reptable(char * line, FileMgr * af); + int parse_convtable(char * line, FileMgr * af, RepList ** rl, const char * keyword); + int parse_phonetable(char * line, FileMgr * af); + int parse_maptable(char * line, FileMgr * af); + int parse_breaktable(char * line, FileMgr * af); + int parse_checkcpdtable(char * line, FileMgr * af); + int parse_defcpdtable(char * line, FileMgr * af); + int parse_affix(char * line, const char at, FileMgr * af, char * dupflags); + + void reverse_condition(char *); + void debugflag(char * result, unsigned short flag); + int condlen(char *); + int encodeit(affentry &entry, char * cs); + int build_pfxtree(PfxEntry* pfxptr); + int build_sfxtree(SfxEntry* sfxptr); + int process_pfx_order(); + int process_sfx_order(); + PfxEntry * process_pfx_in_order(PfxEntry * ptr, PfxEntry * nptr); + SfxEntry * process_sfx_in_order(SfxEntry * ptr, SfxEntry * nptr); + int process_pfx_tree_to_list(); + int process_sfx_tree_to_list(); + int redundant_condition(char, char * strip, int stripl, + const char * cond, int); +}; + +#endif + diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/atypes.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/atypes.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/atypes.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/atypes.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,107 @@ +#ifndef _ATYPES_HXX_ +#define _ATYPES_HXX_ + +#ifndef HUNSPELL_WARNING +#include +#ifdef HUNSPELL_WARNING_ON +#define HUNSPELL_WARNING fprintf +#else +// empty inline function to switch off warnings (instead of the C99 standard variadic macros) +static inline void HUNSPELL_WARNING(FILE *, const char *, ...) {} +#endif +#endif + +// HUNSTEM def. +#define HUNSTEM + +#include "hashmgr.hxx" +#include "w_char.hxx" + +#define SETSIZE 256 +#define CONTSIZE 65536 +#define MAXWORDLEN 100 +#define MAXWORDUTF8LEN 256 + +// affentry options +#define aeXPRODUCT (1 << 0) +#define aeUTF8 (1 << 1) +#define aeALIASF (1 << 2) +#define aeALIASM (1 << 3) +#define aeLONGCOND (1 << 4) + +// compound options +#define IN_CPD_NOT 0 +#define IN_CPD_BEGIN 1 +#define IN_CPD_END 2 +#define IN_CPD_OTHER 3 + +// info options +#define SPELL_COMPOUND (1 << 0) +#define SPELL_FORBIDDEN (1 << 1) +#define SPELL_ALLCAP (1 << 2) +#define SPELL_NOCAP (1 << 3) +#define SPELL_INITCAP (1 << 4) +#define SPELL_ORIGCAP (1 << 5) +#define SPELL_WARN (1 << 6) + +#define MAXLNLEN 8192 + +#define MINCPDLEN 3 +#define MAXCOMPOUND 10 +#define MAXCONDLEN 20 +#define MAXCONDLEN_1 (MAXCONDLEN - sizeof(char *)) + +#define MAXACC 1000 + +#define FLAG unsigned short +#define FLAG_NULL 0x00 +#define FREE_FLAG(a) a = 0 + +#define TESTAFF( a, b , c ) flag_bsearch((unsigned short *) a, (unsigned short) b, c) + +struct affentry +{ + char * strip; + char * appnd; + unsigned char stripl; + unsigned char appndl; + char numconds; + char opts; + unsigned short aflag; + unsigned short * contclass; + short contclasslen; + union { + char conds[MAXCONDLEN]; + struct { + char conds1[MAXCONDLEN_1]; + char * conds2; + } l; + } c; + char * morphcode; +}; + +struct guessword { + char * word; + bool allow; + char * orig; +}; + +struct mapentry { + char ** set; + int len; +}; + +struct flagentry { + FLAG * def; + int len; +}; + +struct patentry { + char * pattern; + char * pattern2; + char * pattern3; + FLAG cond; + FLAG cond2; +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/baseaffix.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/baseaffix.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/baseaffix.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/baseaffix.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,28 @@ +#ifndef _BASEAFF_HXX_ +#define _BASEAFF_HXX_ + +#include "hunvisapi.h" + +class LIBHUNSPELL_DLL_EXPORTED AffEntry +{ +protected: + char * appnd; + char * strip; + unsigned char appndl; + unsigned char stripl; + char numconds; + char opts; + unsigned short aflag; + union { + char conds[MAXCONDLEN]; + struct { + char conds1[MAXCONDLEN_1]; + char * conds2; + } l; + } c; + char * morphcode; + unsigned short * contclass; + short contclasslen; +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/csutil.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/csutil.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/csutil.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/csutil.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,220 @@ +#ifndef __CSUTILHXX__ +#define __CSUTILHXX__ + +#include "hunvisapi.h" + +// First some base level utility routines + +#include +#include "w_char.hxx" +#include "htypes.hxx" + +#ifdef MOZILLA_CLIENT +#include "nscore.h" // for mozalloc headers +#endif + +// casing +#define NOCAP 0 +#define INITCAP 1 +#define ALLCAP 2 +#define HUHCAP 3 +#define HUHINITCAP 4 + +// default encoding and keystring +#define SPELL_ENCODING "ISO8859-1" +#define SPELL_KEYSTRING "qwertyuiop|asdfghjkl|zxcvbnm" + +// default morphological fields +#define MORPH_STEM "st:" +#define MORPH_ALLOMORPH "al:" +#define MORPH_POS "po:" +#define MORPH_DERI_PFX "dp:" +#define MORPH_INFL_PFX "ip:" +#define MORPH_TERM_PFX "tp:" +#define MORPH_DERI_SFX "ds:" +#define MORPH_INFL_SFX "is:" +#define MORPH_TERM_SFX "ts:" +#define MORPH_SURF_PFX "sp:" +#define MORPH_FREQ "fr:" +#define MORPH_PHON "ph:" +#define MORPH_HYPH "hy:" +#define MORPH_PART "pa:" +#define MORPH_FLAG "fl:" +#define MORPH_HENTRY "_H:" +#define MORPH_TAG_LEN strlen(MORPH_STEM) + +#define MSEP_FLD ' ' +#define MSEP_REC '\n' +#define MSEP_ALT '\v' + +// default flags +#define DEFAULTFLAGS 65510 +#define FORBIDDENWORD 65510 +#define ONLYUPCASEFLAG 65511 + +// convert UTF-16 characters to UTF-8 +LIBHUNSPELL_DLL_EXPORTED char * u16_u8(char * dest, int size, const w_char * src, int srclen); + +// convert UTF-8 characters to UTF-16 +LIBHUNSPELL_DLL_EXPORTED int u8_u16(w_char * dest, int size, const char * src); + +// sort 2-byte vector +LIBHUNSPELL_DLL_EXPORTED void flag_qsort(unsigned short flags[], int begin, int end); + +// binary search in 2-byte vector +LIBHUNSPELL_DLL_EXPORTED int flag_bsearch(unsigned short flags[], unsigned short flag, int right); + +// remove end of line char(s) +LIBHUNSPELL_DLL_EXPORTED void mychomp(char * s); + +// duplicate string +LIBHUNSPELL_DLL_EXPORTED char * mystrdup(const char * s); + +// strcat for limited length destination string +LIBHUNSPELL_DLL_EXPORTED char * mystrcat(char * dest, const char * st, int max); + +// duplicate reverse of string +LIBHUNSPELL_DLL_EXPORTED char * myrevstrdup(const char * s); + +// parse into tokens with char delimiter +LIBHUNSPELL_DLL_EXPORTED char * mystrsep(char ** sptr, const char delim); +// parse into tokens with char delimiter +LIBHUNSPELL_DLL_EXPORTED char * mystrsep2(char ** sptr, const char delim); + +// parse into tokens with char delimiter +LIBHUNSPELL_DLL_EXPORTED char * mystrrep(char *, const char *, const char *); + +// append s to ends of every lines in text +LIBHUNSPELL_DLL_EXPORTED void strlinecat(char * lines, const char * s); + +// tokenize into lines with new line +LIBHUNSPELL_DLL_EXPORTED int line_tok(const char * text, char *** lines, char breakchar); + +// tokenize into lines with new line and uniq in place +LIBHUNSPELL_DLL_EXPORTED char * line_uniq(char * text, char breakchar); +LIBHUNSPELL_DLL_EXPORTED char * line_uniq_app(char ** text, char breakchar); + +// change oldchar to newchar in place +LIBHUNSPELL_DLL_EXPORTED char * tr(char * text, char oldc, char newc); + +// reverse word +LIBHUNSPELL_DLL_EXPORTED int reverseword(char *); + +// reverse word +LIBHUNSPELL_DLL_EXPORTED int reverseword_utf(char *); + +// remove duplicates +LIBHUNSPELL_DLL_EXPORTED int uniqlist(char ** list, int n); + +// free character array list +LIBHUNSPELL_DLL_EXPORTED void freelist(char *** list, int n); + +// character encoding information +struct cs_info { + unsigned char ccase; + unsigned char clower; + unsigned char cupper; +}; + +LIBHUNSPELL_DLL_EXPORTED int initialize_utf_tbl(); +LIBHUNSPELL_DLL_EXPORTED void free_utf_tbl(); +LIBHUNSPELL_DLL_EXPORTED unsigned short unicodetoupper(unsigned short c, int langnum); +LIBHUNSPELL_DLL_EXPORTED unsigned short unicodetolower(unsigned short c, int langnum); +LIBHUNSPELL_DLL_EXPORTED int unicodeisalpha(unsigned short c); + +LIBHUNSPELL_DLL_EXPORTED struct cs_info * get_current_cs(const char * es); + +// get language identifiers of language codes +LIBHUNSPELL_DLL_EXPORTED int get_lang_num(const char * lang); + +// get characters of the given 8bit encoding with lower- and uppercase forms +LIBHUNSPELL_DLL_EXPORTED char * get_casechars(const char * enc); + +// convert null terminated string to all caps using encoding +LIBHUNSPELL_DLL_EXPORTED void enmkallcap(char * d, const char * p, const char * encoding); + +// convert null terminated string to all little using encoding +LIBHUNSPELL_DLL_EXPORTED void enmkallsmall(char * d, const char * p, const char * encoding); + +// convert null terminated string to have initial capital using encoding +LIBHUNSPELL_DLL_EXPORTED void enmkinitcap(char * d, const char * p, const char * encoding); + +// convert null terminated string to all caps +LIBHUNSPELL_DLL_EXPORTED void mkallcap(char * p, const struct cs_info * csconv); + +// convert null terminated string to all little +LIBHUNSPELL_DLL_EXPORTED void mkallsmall(char * p, const struct cs_info * csconv); + +// convert null terminated string to have initial capital +LIBHUNSPELL_DLL_EXPORTED void mkinitcap(char * p, const struct cs_info * csconv); + +// convert first nc characters of UTF-8 string to little +LIBHUNSPELL_DLL_EXPORTED void mkallsmall_utf(w_char * u, int nc, int langnum); + +// convert first nc characters of UTF-8 string to capital +LIBHUNSPELL_DLL_EXPORTED void mkallcap_utf(w_char * u, int nc, int langnum); + +// get type of capitalization +LIBHUNSPELL_DLL_EXPORTED int get_captype(char * q, int nl, cs_info *); + +// get type of capitalization (UTF-8) +LIBHUNSPELL_DLL_EXPORTED int get_captype_utf8(w_char * q, int nl, int langnum); + +// strip all ignored characters in the string +LIBHUNSPELL_DLL_EXPORTED void remove_ignored_chars_utf(char * word, unsigned short ignored_chars[], int ignored_len); + +// strip all ignored characters in the string +LIBHUNSPELL_DLL_EXPORTED void remove_ignored_chars(char * word, char * ignored_chars); + +LIBHUNSPELL_DLL_EXPORTED int parse_string(char * line, char ** out, int ln); + +LIBHUNSPELL_DLL_EXPORTED int parse_array(char * line, char ** out, unsigned short ** out_utf16, + int * out_utf16_len, int utf8, int ln); + +LIBHUNSPELL_DLL_EXPORTED int fieldlen(const char * r); +LIBHUNSPELL_DLL_EXPORTED char * copy_field(char * dest, const char * morph, const char * var); + +LIBHUNSPELL_DLL_EXPORTED int morphcmp(const char * s, const char * t); + +LIBHUNSPELL_DLL_EXPORTED int get_sfxcount(const char * morph); + +// conversion function for protected memory +LIBHUNSPELL_DLL_EXPORTED void store_pointer(char * dest, char * source); + +// conversion function for protected memory +LIBHUNSPELL_DLL_EXPORTED char * get_stored_pointer(const char * s); + +// hash entry macros +LIBHUNSPELL_DLL_EXPORTED inline char* HENTRY_DATA(struct hentry *h) +{ + char *ret; + if (!h->var) + ret = NULL; + else if (h->var & H_OPT_ALIASM) + ret = get_stored_pointer(HENTRY_WORD(h) + h->blen + 1); + else + ret = HENTRY_WORD(h) + h->blen + 1; + return ret; +} + +// NULL-free version for warning-free OOo build +LIBHUNSPELL_DLL_EXPORTED inline const char* HENTRY_DATA2(const struct hentry *h) +{ + const char *ret; + if (!h->var) + ret = ""; + else if (h->var & H_OPT_ALIASM) + ret = get_stored_pointer(HENTRY_WORD(h) + h->blen + 1); + else + ret = HENTRY_WORD(h) + h->blen + 1; + return ret; +} + +LIBHUNSPELL_DLL_EXPORTED inline char* HENTRY_FIND(struct hentry *h, const char *p) +{ + return (HENTRY_DATA(h) ? strstr(HENTRY_DATA(h), p) : NULL); +} + +#define w_char_eq(a,b) (((a).l == (b).l) && ((a).h == (b).h)) + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/dictmgr.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/dictmgr.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/dictmgr.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/dictmgr.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,36 @@ +#ifndef _DICTMGR_HXX_ +#define _DICTMGR_HXX_ + +#include "hunvisapi.h" + +#define MAXDICTIONARIES 100 +#define MAXDICTENTRYLEN 1024 + +struct dictentry { + char * filename; + char * lang; + char * region; +}; + + +class LIBHUNSPELL_DLL_EXPORTED DictMgr +{ + + int numdict; + dictentry * pdentry; + +public: + + DictMgr(const char * dictpath, const char * etype); + ~DictMgr(); + int get_list(dictentry** ppentry); + +private: + int parse_file(const char * dictpath, const char * etype); + char * mystrsep(char ** stringp, const char delim); + char * mystrdup(const char * s); + void mychomp(char * s); + +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/filemgr.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/filemgr.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/filemgr.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/filemgr.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,25 @@ +/* file manager class - read lines of files [filename] OR [filename.hz] */ +#ifndef _FILEMGR_HXX_ +#define _FILEMGR_HXX_ + +#include "hunvisapi.h" + +#include "hunzip.hxx" +#include + +class LIBHUNSPELL_DLL_EXPORTED FileMgr +{ +protected: + FILE * fin; + Hunzip * hin; + char in[BUFSIZE + 50]; // input buffer + int fail(const char * err, const char * par); + int linenum; + +public: + FileMgr(const char * filename, const char * key = NULL); + ~FileMgr(); + char * getline(); + int getlinenum(); +}; +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/hashmgr.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hashmgr.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/hashmgr.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hashmgr.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,69 @@ +#ifndef _HASHMGR_HXX_ +#define _HASHMGR_HXX_ + +#include "hunvisapi.h" + +#include + +#include "htypes.hxx" +#include "filemgr.hxx" + +enum flag { FLAG_CHAR, FLAG_LONG, FLAG_NUM, FLAG_UNI }; + +class LIBHUNSPELL_DLL_EXPORTED HashMgr +{ + int tablesize; + struct hentry ** tableptr; + int userword; + flag flag_mode; + int complexprefixes; + int utf8; + unsigned short forbiddenword; + int langnum; + char * enc; + char * lang; + struct cs_info * csconv; + char * ignorechars; + unsigned short * ignorechars_utf16; + int ignorechars_utf16_len; + int numaliasf; // flag vector `compression' with aliases + unsigned short ** aliasf; + unsigned short * aliasflen; + int numaliasm; // morphological desciption `compression' with aliases + char ** aliasm; + + +public: + HashMgr(const char * tpath, const char * apath, const char * key = NULL); + ~HashMgr(); + + struct hentry * lookup(const char *) const; + int hash(const char *) const; + struct hentry * walk_hashtable(int & col, struct hentry * hp) const; + + int add(const char * word); + int add_with_affix(const char * word, const char * pattern); + int remove(const char * word); + int decode_flags(unsigned short ** result, char * flags, FileMgr * af); + unsigned short decode_flag(const char * flag); + char * encode_flag(unsigned short flag); + int is_aliasf(); + int get_aliasf(int index, unsigned short ** fvec, FileMgr * af); + int is_aliasm(); + char * get_aliasm(int index); + +private: + int get_clen_and_captype(const char * word, int wbl, int * captype); + int load_tables(const char * tpath, const char * key); + int add_word(const char * word, int wbl, int wcl, unsigned short * ap, + int al, const char * desc, bool onlyupcase); + int load_config(const char * affpath, const char * key); + int parse_aliasf(char * line, FileMgr * af); + int add_hidden_capitalized_word(char * word, int wbl, int wcl, + unsigned short * flags, int al, char * dp, int captype); + int parse_aliasm(char * line, FileMgr * af); + int remove_forbidden_flag(const char * word); + +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/htypes.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/htypes.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/htypes.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/htypes.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,32 @@ +#ifndef _HTYPES_HXX_ +#define _HTYPES_HXX_ + +#define ROTATE_LEN 5 + +#define ROTATE(v,q) \ + (v) = ((v) << (q)) | (((v) >> (32 - q)) & ((1 << (q))-1)); + +// hentry options +#define H_OPT (1 << 0) +#define H_OPT_ALIASM (1 << 1) +#define H_OPT_PHON (1 << 2) + +// see also csutil.hxx +#define HENTRY_WORD(h) &(h->word[0]) + +// approx. number of user defined words +#define USERWORD 1000 + +struct hentry +{ + unsigned char blen; // word length in bytes + unsigned char clen; // word length in characters (different for UTF-8 enc.) + short alen; // length of affix flag vector + unsigned short * astr; // affix flag vector + struct hentry * next; // next word with same hash code + struct hentry * next_homonym; // next homonym word (with same hash code) + char var; // variable fields (only for special pronounciation yet) + char word[1]; // variable-length word (8-bit or UTF-8 encoding) +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunspell.h goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunspell.h --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunspell.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunspell.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,95 @@ +#ifndef _MYSPELLMGR_H_ +#define _MYSPELLMGR_H_ + +#include "hunvisapi.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Hunhandle Hunhandle; + +LIBHUNSPELL_DLL_EXPORTED Hunhandle *Hunspell_create(const char * affpath, const char * dpath); + +LIBHUNSPELL_DLL_EXPORTED Hunhandle *Hunspell_create_key(const char * affpath, const char * dpath, + const char * key); + +LIBHUNSPELL_DLL_EXPORTED void Hunspell_destroy(Hunhandle *pHunspell); + +/* spell(word) - spellcheck word + * output: 0 = bad word, not 0 = good word + */ +LIBHUNSPELL_DLL_EXPORTED int Hunspell_spell(Hunhandle *pHunspell, const char *); + +LIBHUNSPELL_DLL_EXPORTED char *Hunspell_get_dic_encoding(Hunhandle *pHunspell); + +/* suggest(suggestions, word) - search suggestions + * input: pointer to an array of strings pointer and the (bad) word + * array of strings pointer (here *slst) may not be initialized + * output: number of suggestions in string array, and suggestions in + * a newly allocated array of strings (*slts will be NULL when number + * of suggestion equals 0.) + */ +LIBHUNSPELL_DLL_EXPORTED int Hunspell_suggest(Hunhandle *pHunspell, char*** slst, const char * word); + + /* morphological functions */ + + /* analyze(result, word) - morphological analysis of the word */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_analyze(Hunhandle *pHunspell, char*** slst, const char * word); + + /* stem(result, word) - stemmer function */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_stem(Hunhandle *pHunspell, char*** slst, const char * word); + + /* stem(result, analysis, n) - get stems from a morph. analysis + * example: + * char ** result, result2; + * int n1 = Hunspell_analyze(result, "words"); + * int n2 = Hunspell_stem2(result2, result, n1); + */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_stem2(Hunhandle *pHunspell, char*** slst, char** desc, int n); + + /* generate(result, word, word2) - morphological generation by example(s) */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_generate(Hunhandle *pHunspell, char*** slst, const char * word, + const char * word2); + + /* generate(result, word, desc, n) - generation by morph. description(s) + * example: + * char ** result; + * char * affix = "is:plural"; // description depends from dictionaries, too + * int n = Hunspell_generate2(result, "word", &affix, 1); + * for (int i = 0; i < n; i++) printf("%s\n", result[i]); + */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_generate2(Hunhandle *pHunspell, char*** slst, const char * word, + char** desc, int n); + + /* functions for run-time modification of the dictionary */ + + /* add word to the run-time dictionary */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_add(Hunhandle *pHunspell, const char * word); + + /* add word to the run-time dictionary with affix flags of + * the example (a dictionary word): Hunspell will recognize + * affixed forms of the new word, too. + */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_add_with_affix(Hunhandle *pHunspell, const char * word, const char * example); + + /* remove word from the run-time dictionary */ + +LIBHUNSPELL_DLL_EXPORTED int Hunspell_remove(Hunhandle *pHunspell, const char * word); + + /* free suggestion lists */ + +LIBHUNSPELL_DLL_EXPORTED void Hunspell_free_list(Hunhandle *pHunspell, char *** slst, int n); + +#ifdef __cplusplus +} +#endif + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunspell.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunspell.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunspell.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunspell.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,172 @@ +#include "hunvisapi.h" + +#include "hashmgr.hxx" +#include "affixmgr.hxx" +#include "suggestmgr.hxx" +#include "langnum.hxx" + +#define SPELL_XML "" + +#define MAXDIC 20 +#define MAXSUGGESTION 15 +#define MAXSHARPS 5 + +#define HUNSPELL_OK (1 << 0) +#define HUNSPELL_OK_WARN (1 << 1) + +#ifndef _MYSPELLMGR_HXX_ +#define _MYSPELLMGR_HXX_ + +class LIBHUNSPELL_DLL_EXPORTED Hunspell +{ + AffixMgr* pAMgr; + HashMgr* pHMgr[MAXDIC]; + int maxdic; + SuggestMgr* pSMgr; + char * affixpath; + char * encoding; + struct cs_info * csconv; + int langnum; + int utf8; + int complexprefixes; + char** wordbreak; + +public: + + /* Hunspell(aff, dic) - constructor of Hunspell class + * input: path of affix file and dictionary file + */ + + Hunspell(const char * affpath, const char * dpath, const char * key = NULL); + ~Hunspell(); + + /* load extra dictionaries (only dic files) */ + int add_dic(const char * dpath, const char * key = NULL); + + /* spell(word) - spellcheck word + * output: 0 = bad word, not 0 = good word + * + * plus output: + * info: information bit array, fields: + * SPELL_COMPOUND = a compound word + * SPELL_FORBIDDEN = an explicit forbidden word + * root: root (stem), when input is a word with affix(es) + */ + + int spell(const char * word, int * info = NULL, char ** root = NULL); + + /* suggest(suggestions, word) - search suggestions + * input: pointer to an array of strings pointer and the (bad) word + * array of strings pointer (here *slst) may not be initialized + * output: number of suggestions in string array, and suggestions in + * a newly allocated array of strings (*slts will be NULL when number + * of suggestion equals 0.) + */ + + int suggest(char*** slst, const char * word); + + /* deallocate suggestion lists */ + + void free_list(char *** slst, int n); + + char * get_dic_encoding(); + + /* morphological functions */ + + /* analyze(result, word) - morphological analysis of the word */ + + int analyze(char*** slst, const char * word); + + /* stem(result, word) - stemmer function */ + + int stem(char*** slst, const char * word); + + /* stem(result, analysis, n) - get stems from a morph. analysis + * example: + * char ** result, result2; + * int n1 = analyze(&result, "words"); + * int n2 = stem(&result2, result, n1); + */ + + int stem(char*** slst, char ** morph, int n); + + /* generate(result, word, word2) - morphological generation by example(s) */ + + int generate(char*** slst, const char * word, const char * word2); + + /* generate(result, word, desc, n) - generation by morph. description(s) + * example: + * char ** result; + * char * affix = "is:plural"; // description depends from dictionaries, too + * int n = generate(&result, "word", &affix, 1); + * for (int i = 0; i < n; i++) printf("%s\n", result[i]); + */ + + int generate(char*** slst, const char * word, char ** desc, int n); + + /* functions for run-time modification of the dictionary */ + + /* add word to the run-time dictionary */ + + int add(const char * word); + + /* add word to the run-time dictionary with affix flags of + * the example (a dictionary word): Hunspell will recognize + * affixed forms of the new word, too. + */ + + int add_with_affix(const char * word, const char * example); + + /* remove word from the run-time dictionary */ + + int remove(const char * word); + + /* other */ + + /* get extra word characters definied in affix file for tokenization */ + const char * get_wordchars(); + unsigned short * get_wordchars_utf16(int * len); + + struct cs_info * get_csconv(); + const char * get_version(); + + int get_langnum() const; + + /* experimental and deprecated functions */ + +#ifdef HUNSPELL_EXPERIMENTAL + /* suffix is an affix flag string, similarly in dictionary files */ + int put_word_suffix(const char * word, const char * suffix); + char * morph_with_correction(const char * word); + + /* spec. suggestions */ + int suggest_auto(char*** slst, const char * word); + int suggest_pos_stems(char*** slst, const char * word); +#endif + +private: + int cleanword(char *, const char *, int * pcaptype, int * pabbrev); + int cleanword2(char *, const char *, w_char *, int * w_len, int * pcaptype, int * pabbrev); + void mkinitcap(char *); + int mkinitcap2(char * p, w_char * u, int nc); + int mkinitsmall2(char * p, w_char * u, int nc); + void mkallcap(char *); + int mkallcap2(char * p, w_char * u, int nc); + void mkallsmall(char *); + int mkallsmall2(char * p, w_char * u, int nc); + struct hentry * checkword(const char *, int * info, char **root); + char * sharps_u8_l1(char * dest, char * source); + hentry * spellsharps(char * base, char *, int, int, char * tmp, int * info, char **root); + int is_keepcase(const hentry * rv); + int insert_sug(char ***slst, char * word, int ns); + void cat_result(char * result, char * st); + char * stem_description(const char * desc); + int spellml(char*** slst, const char * word); + int get_xml_par(char * dest, const char * par, int maxl); + const char * get_xml_pos(const char * s, const char * attr); + int get_xml_list(char ***slst, char * list, const char * tag); + int check_xml_par(const char * q, const char * attr, const char * value); + +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunvisapi.h goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunvisapi.h --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunvisapi.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunvisapi.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,18 @@ +#ifndef _HUNSPELL_VISIBILITY_H_ +#define _HUNSPELL_VISIBILITY_H_ + +#if defined(HUNSPELL_STATIC) +# define LIBHUNSPELL_DLL_EXPORTED +#elif defined(_MSC_VER) +# if defined(BUILDING_LIBHUNSPELL) +# define LIBHUNSPELL_DLL_EXPORTED __declspec(dllexport) +# else +# define LIBHUNSPELL_DLL_EXPORTED __declspec(dllimport) +# endif +#elif BUILDING_LIBHUNSPELL && 1 +# define LIBHUNSPELL_DLL_EXPORTED __attribute__((__visibility__("default"))) +#else +# define LIBHUNSPELL_DLL_EXPORTED +#endif + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunzip.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunzip.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/hunzip.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/hunzip.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,45 @@ +/* hunzip: file decompression for sorted dictionaries with optional encryption, + * algorithm: prefix-suffix encoding and 16-bit Huffman encoding */ + +#ifndef _HUNZIP_HXX_ +#define _HUNZIP_HXX_ + +#include "hunvisapi.h" + +#include + +#define BUFSIZE 65536 +#define HZIP_EXTENSION ".hz" + +#define MSG_OPEN "error: %s: cannot open\n" +#define MSG_FORMAT "error: %s: not in hzip format\n" +#define MSG_MEMORY "error: %s: missing memory\n" +#define MSG_KEY "error: %s: missing or bad password\n" + +struct bit { + unsigned char c[2]; + int v[2]; +}; + +class LIBHUNSPELL_DLL_EXPORTED Hunzip +{ + +protected: + char * filename; + FILE * fin; + int bufsiz, lastbit, inc, inbits, outc; + struct bit * dec; // code table + char in[BUFSIZE]; // input buffer + char out[BUFSIZE + 1]; // Huffman-decoded buffer + char line[BUFSIZE + 50]; // decoded line + int getcode(const char * key); + int getbuf(); + int fail(const char * err, const char * par); + +public: + Hunzip(const char * filename, const char * key = NULL); + ~Hunzip(); + const char * getline(); +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/langnum.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/langnum.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/langnum.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/langnum.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,38 @@ +#ifndef _LANGNUM_HXX_ +#define _LANGNUM_HXX_ + +/* + language numbers for language specific codes + see http://l10n.openoffice.org/languages.html +*/ + +enum { +LANG_ar=96, +LANG_az=100, // custom number +LANG_bg=41, +LANG_ca=37, +LANG_cs=42, +LANG_da=45, +LANG_de=49, +LANG_el=30, +LANG_en=01, +LANG_es=34, +LANG_eu=10, +LANG_fr=02, +LANG_gl=38, +LANG_hr=78, +LANG_hu=36, +LANG_it=39, +LANG_la=99, // custom number +LANG_lv=101, // custom number +LANG_nl=31, +LANG_pl=48, +LANG_pt=03, +LANG_ru=07, +LANG_sv=50, +LANG_tr=90, +LANG_uk=80, +LANG_xx=999 +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/phonet.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/phonet.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/phonet.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/phonet.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,52 @@ +/* phonetic.c - generic replacement aglogithms for phonetic transformation + Copyright (C) 2000 Bjoern Jacke + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; If not, see + . + + Changelog: + + 2000-01-05 Bjoern Jacke + Initial Release insprired by the article about phonetic + transformations out of c't 25/1999 + + 2007-07-26 Bjoern Jacke + Released under MPL/GPL/LGPL tri-license for Hunspell + + 2007-08-23 Laszlo Nemeth + Porting from Aspell to Hunspell using C-like structs +*/ + +#ifndef __PHONETHXX__ +#define __PHONETHXX__ + +#define HASHSIZE 256 +#define MAXPHONETLEN 256 +#define MAXPHONETUTF8LEN (MAXPHONETLEN * 4) + +#include "hunvisapi.h" + +struct phonetable { + char utf8; + cs_info * lang; + int num; + char * * rules; + int hash[HASHSIZE]; +}; + +LIBHUNSPELL_DLL_EXPORTED void init_phonet_hash(phonetable & parms); + +LIBHUNSPELL_DLL_EXPORTED int phonet (const char * inword, char * target, + int len, phonetable & phone); + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/replist.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/replist.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/replist.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/replist.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,27 @@ +/* string replacement list class */ +#ifndef _REPLIST_HXX_ +#define _REPLIST_HXX_ + +#include "hunvisapi.h" + +#include "w_char.hxx" + +class LIBHUNSPELL_DLL_EXPORTED RepList +{ +protected: + replentry ** dat; + int size; + int pos; + +public: + RepList(int n); + ~RepList(); + + int get_pos(); + int add(char * pat1, char * pat2); + replentry * item(int n); + int near(const char * word); + int match(const char * word, int n); + int conv(const char * word, char * dest); +}; +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/suggestmgr.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/suggestmgr.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/suggestmgr.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/suggestmgr.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,111 @@ +#ifndef _SUGGESTMGR_HXX_ +#define _SUGGESTMGR_HXX_ + +#define MAXSWL 100 +#define MAXSWUTF8L (MAXSWL * 4) +#define MAX_ROOTS 100 +#define MAX_WORDS 100 +#define MAX_GUESS 200 +#define MAXNGRAMSUGS 4 +#define MAXPHONSUGS 2 +#define MAXCOMPOUNDSUGS 3 + +// timelimit: max ~1/4 sec (process time on Linux) for a time consuming function +#define TIMELIMIT (CLOCKS_PER_SEC >> 2) +#define MINTIMER 100 +#define MAXPLUSTIMER 100 + +#define NGRAM_LONGER_WORSE (1 << 0) +#define NGRAM_ANY_MISMATCH (1 << 1) +#define NGRAM_LOWERING (1 << 2) +#define NGRAM_WEIGHTED (1 << 3) + +#include "hunvisapi.h" + +#include "atypes.hxx" +#include "affixmgr.hxx" +#include "hashmgr.hxx" +#include "langnum.hxx" +#include + +enum { LCS_UP, LCS_LEFT, LCS_UPLEFT }; + +class LIBHUNSPELL_DLL_EXPORTED SuggestMgr +{ + char * ckey; + int ckeyl; + w_char * ckey_utf; + + char * ctry; + int ctryl; + w_char * ctry_utf; + + AffixMgr* pAMgr; + int maxSug; + struct cs_info * csconv; + int utf8; + int langnum; + int nosplitsugs; + int maxngramsugs; + int maxcpdsugs; + int complexprefixes; + + +public: + SuggestMgr(const char * tryme, int maxn, AffixMgr *aptr); + ~SuggestMgr(); + + int suggest(char*** slst, const char * word, int nsug, int * onlycmpdsug); + int ngsuggest(char ** wlst, char * word, int ns, HashMgr** pHMgr, int md); + int suggest_auto(char*** slst, const char * word, int nsug); + int suggest_stems(char*** slst, const char * word, int nsug); + int suggest_pos_stems(char*** slst, const char * word, int nsug); + + char * suggest_morph(const char * word); + char * suggest_gen(char ** pl, int pln, char * pattern); + char * suggest_morph_for_spelling_error(const char * word); + +private: + int testsug(char** wlst, const char * candidate, int wl, int ns, int cpdsuggest, + int * timer, clock_t * timelimit); + int checkword(const char *, int, int, int *, clock_t *); + int check_forbidden(const char *, int); + + int capchars(char **, const char *, int, int); + int replchars(char**, const char *, int, int); + int doubletwochars(char**, const char *, int, int); + int forgotchar(char **, const char *, int, int); + int swapchar(char **, const char *, int, int); + int longswapchar(char **, const char *, int, int); + int movechar(char **, const char *, int, int); + int extrachar(char **, const char *, int, int); + int badcharkey(char **, const char *, int, int); + int badchar(char **, const char *, int, int); + int twowords(char **, const char *, int, int); + int fixstems(char **, const char *, int); + + int capchars_utf(char **, const w_char *, int wl, int, int); + int doubletwochars_utf(char**, const w_char *, int wl, int, int); + int forgotchar_utf(char**, const w_char *, int wl, int, int); + int extrachar_utf(char**, const w_char *, int wl, int, int); + int badcharkey_utf(char **, const w_char *, int wl, int, int); + int badchar_utf(char **, const w_char *, int wl, int, int); + int swapchar_utf(char **, const w_char *, int wl, int, int); + int longswapchar_utf(char **, const w_char *, int, int, int); + int movechar_utf(char **, const w_char *, int, int, int); + + int mapchars(char**, const char *, int, int); + int map_related(const char *, char *, int, int, char ** wlst, int, int, const mapentry*, int, int *, clock_t *); + int ngram(int n, char * s1, const char * s2, int opt); + int mystrlen(const char * word); + int leftcommonsubstring(char * s1, const char * s2); + int commoncharacterpositions(char * s1, const char * s2, int * is_swap); + void bubblesort( char ** rwd, char ** rwd2, int * rsc, int n); + void lcs(const char * s, const char * s2, int * l1, int * l2, char ** result); + int lcslen(const char * s, const char* s2); + char * suggest_hentry_gen(hentry * rv, char * pattern); + +}; + +#endif + diff -Nru goldendict-1.0.2~git20130620/winlibs/include/hunspell/w_char.hxx goldendict-1.5.0~ppa131019/winlibs/include/hunspell/w_char.hxx --- goldendict-1.0.2~git20130620/winlibs/include/hunspell/w_char.hxx 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/hunspell/w_char.hxx 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,21 @@ +#ifndef __WCHARHXX__ +#define __WCHARHXX__ + +#ifndef GCC +typedef struct { +#else +typedef struct __attribute__ ((packed)) { +#endif + unsigned char l; + unsigned char h; +} w_char; + +// two character arrays +struct replentry { + char * pattern; + char * pattern2; + bool start; + bool end; +}; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/base.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/base.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/base.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/base.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,601 @@ +/** + * \file lzma/base.h + * \brief Data types and functions used in many places in liblzma API + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Boolean + * + * This is here because C89 doesn't have stdbool.h. To set a value for + * variables having type lzma_bool, you can use + * - C99's `true' and `false' from stdbool.h; + * - C++'s internal `true' and `false'; or + * - integers one (true) and zero (false). + */ +typedef unsigned char lzma_bool; + + +/** + * \brief Type of reserved enumeration variable in structures + * + * To avoid breaking library ABI when new features are added, several + * structures contain extra variables that may be used in future. Since + * sizeof(enum) can be different than sizeof(int), and sizeof(enum) may + * even vary depending on the range of enumeration constants, we specify + * a separate type to be used for reserved enumeration variables. All + * enumeration constants in liblzma API will be non-negative and less + * than 128, which should guarantee that the ABI won't break even when + * new constants are added to existing enumerations. + */ +typedef enum { + LZMA_RESERVED_ENUM = 0 +} lzma_reserved_enum; + + +/** + * \brief Return values used by several functions in liblzma + * + * Check the descriptions of specific functions to find out which return + * values they can return. With some functions the return values may have + * more specific meanings than described here; those differences are + * described per-function basis. + */ +typedef enum { + LZMA_OK = 0, + /**< + * \brief Operation completed successfully + */ + + LZMA_STREAM_END = 1, + /**< + * \brief End of stream was reached + * + * In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or + * LZMA_FINISH was finished. In decoder, this indicates + * that all the data was successfully decoded. + * + * In all cases, when LZMA_STREAM_END is returned, the last + * output bytes should be picked from strm->next_out. + */ + + LZMA_NO_CHECK = 2, + /**< + * \brief Input stream has no integrity check + * + * This return value can be returned only if the + * LZMA_TELL_NO_CHECK flag was used when initializing + * the decoder. LZMA_NO_CHECK is just a warning, and + * the decoding can be continued normally. + * + * It is possible to call lzma_get_check() immediately after + * lzma_code has returned LZMA_NO_CHECK. The result will + * naturally be LZMA_CHECK_NONE, but the possibility to call + * lzma_get_check() may be convenient in some applications. + */ + + LZMA_UNSUPPORTED_CHECK = 3, + /**< + * \brief Cannot calculate the integrity check + * + * The usage of this return value is different in encoders + * and decoders. + * + * Encoders can return this value only from the initialization + * function. If initialization fails with this value, the + * encoding cannot be done, because there's no way to produce + * output with the correct integrity check. + * + * Decoders can return this value only from lzma_code() and + * only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when + * initializing the decoder. The decoding can still be + * continued normally even if the check type is unsupported, + * but naturally the check will not be validated, and possible + * errors may go undetected. + * + * With decoder, it is possible to call lzma_get_check() + * immediately after lzma_code() has returned + * LZMA_UNSUPPORTED_CHECK. This way it is possible to find + * out what the unsupported Check ID was. + */ + + LZMA_GET_CHECK = 4, + /**< + * \brief Integrity check type is now available + * + * This value can be returned only by the lzma_code() function + * and only if the decoder was initialized with the + * LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the + * application that it may now call lzma_get_check() to find + * out the Check ID. This can be used, for example, to + * implement a decoder that accepts only files that have + * strong enough integrity check. + */ + + LZMA_MEM_ERROR = 5, + /**< + * \brief Cannot allocate memory + * + * Memory allocation failed, or the size of the allocation + * would be greater than SIZE_MAX. + * + * Due to internal implementation reasons, the coding cannot + * be continued even if more memory were made available after + * LZMA_MEM_ERROR. + */ + + LZMA_MEMLIMIT_ERROR = 6, + /** + * \brief Memory usage limit was reached + * + * Decoder would need more memory than allowed by the + * specified memory usage limit. To continue decoding, + * the memory usage limit has to be increased with + * lzma_memlimit_set(). + */ + + LZMA_FORMAT_ERROR = 7, + /**< + * \brief File format not recognized + * + * The decoder did not recognize the input as supported file + * format. This error can occur, for example, when trying to + * decode .lzma format file with lzma_stream_decoder, + * because lzma_stream_decoder accepts only the .xz format. + */ + + LZMA_OPTIONS_ERROR = 8, + /**< + * \brief Invalid or unsupported options + * + * Invalid or unsupported options, for example + * - unsupported filter(s) or filter options; or + * - reserved bits set in headers (decoder only). + * + * Rebuilding liblzma with more features enabled, or + * upgrading to a newer version of liblzma may help. + */ + + LZMA_DATA_ERROR = 9, + /**< + * \brief Data is corrupt + * + * The usage of this return value is different in encoders + * and decoders. In both encoder and decoder, the coding + * cannot continue after this error. + * + * Encoders return this if size limits of the target file + * format would be exceeded. These limits are huge, thus + * getting this error from an encoder is mostly theoretical. + * For example, the maximum compressed and uncompressed + * size of a .xz Stream is roughly 8 EiB (2^63 bytes). + * + * Decoders return this error if the input data is corrupt. + * This can mean, for example, invalid CRC32 in headers + * or invalid check of uncompressed data. + */ + + LZMA_BUF_ERROR = 10, + /**< + * \brief No progress is possible + * + * This error code is returned when the coder cannot consume + * any new input and produce any new output. The most common + * reason for this error is that the input stream being + * decoded is truncated or corrupt. + * + * This error is not fatal. Coding can be continued normally + * by providing more input and/or more output space, if + * possible. + * + * Typically the first call to lzma_code() that can do no + * progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only + * the second consecutive call doing no progress will return + * LZMA_BUF_ERROR. This is intentional. + * + * With zlib, Z_BUF_ERROR may be returned even if the + * application is doing nothing wrong, so apps will need + * to handle Z_BUF_ERROR specially. The above hack + * guarantees that liblzma never returns LZMA_BUF_ERROR + * to properly written applications unless the input file + * is truncated or corrupt. This should simplify the + * applications a little. + */ + + LZMA_PROG_ERROR = 11, + /**< + * \brief Programming error + * + * This indicates that the arguments given to the function are + * invalid or the internal state of the decoder is corrupt. + * - Function arguments are invalid or the structures + * pointed by the argument pointers are invalid + * e.g. if strm->next_out has been set to NULL and + * strm->avail_out > 0 when calling lzma_code(). + * - lzma_* functions have been called in wrong order + * e.g. lzma_code() was called right after lzma_end(). + * - If errors occur randomly, the reason might be flaky + * hardware. + * + * If you think that your code is correct, this error code + * can be a sign of a bug in liblzma. See the documentation + * how to report bugs. + */ +} lzma_ret; + + +/** + * \brief The `action' argument for lzma_code() + * + * After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH, + * the same `action' must is used until lzma_code() returns LZMA_STREAM_END. + * Also, the amount of input (that is, strm->avail_in) must not be modified + * by the application until lzma_code() returns LZMA_STREAM_END. Changing the + * `action' or modifying the amount of input will make lzma_code() return + * LZMA_PROG_ERROR. + */ +typedef enum { + LZMA_RUN = 0, + /**< + * \brief Continue coding + * + * Encoder: Encode as much input as possible. Some internal + * buffering will probably be done (depends on the filter + * chain in use), which causes latency: the input used won't + * usually be decodeable from the output of the same + * lzma_code() call. + * + * Decoder: Decode as much input as possible and produce as + * much output as possible. + */ + + LZMA_SYNC_FLUSH = 1, + /**< + * \brief Make all the input available at output + * + * Normally the encoder introduces some latency. + * LZMA_SYNC_FLUSH forces all the buffered data to be + * available at output without resetting the internal + * state of the encoder. This way it is possible to use + * compressed stream for example for communication over + * network. + * + * Only some filters support LZMA_SYNC_FLUSH. Trying to use + * LZMA_SYNC_FLUSH with filters that don't support it will + * make lzma_code() return LZMA_OPTIONS_ERROR. For example, + * LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does. + * + * Using LZMA_SYNC_FLUSH very often can dramatically reduce + * the compression ratio. With some filters (for example, + * LZMA2), fine-tuning the compression options may help + * mitigate this problem significantly (for example, + * match finder with LZMA2). + * + * Decoders don't support LZMA_SYNC_FLUSH. + */ + + LZMA_FULL_FLUSH = 2, + /**< + * \brief Finish encoding of the current Block + * + * All the input data going to the current Block must have + * been given to the encoder (the last bytes can still be + * pending in* next_in). Call lzma_code() with LZMA_FULL_FLUSH + * until it returns LZMA_STREAM_END. Then continue normally + * with LZMA_RUN or finish the Stream with LZMA_FINISH. + * + * This action is currently supported only by Stream encoder + * and easy encoder (which uses Stream encoder). If there is + * no unfinished Block, no empty Block is created. + */ + + LZMA_FINISH = 3 + /**< + * \brief Finish the coding operation + * + * All the input data must have been given to the encoder + * (the last bytes can still be pending in next_in). + * Call lzma_code() with LZMA_FINISH until it returns + * LZMA_STREAM_END. Once LZMA_FINISH has been used, + * the amount of input must no longer be changed by + * the application. + * + * When decoding, using LZMA_FINISH is optional unless the + * LZMA_CONCATENATED flag was used when the decoder was + * initialized. When LZMA_CONCATENATED was not used, the only + * effect of LZMA_FINISH is that the amount of input must not + * be changed just like in the encoder. + */ +} lzma_action; + + +/** + * \brief Custom functions for memory handling + * + * A pointer to lzma_allocator may be passed via lzma_stream structure + * to liblzma, and some advanced functions take a pointer to lzma_allocator + * as a separate function argument. The library will use the functions + * specified in lzma_allocator for memory handling instead of the default + * malloc() and free(). C++ users should note that the custom memory + * handling functions must not throw exceptions. + * + * liblzma doesn't make an internal copy of lzma_allocator. Thus, it is + * OK to change these function pointers in the middle of the coding + * process, but obviously it must be done carefully to make sure that the + * replacement `free' can deallocate memory allocated by the earlier + * `alloc' function(s). + */ +typedef struct { + /** + * \brief Pointer to a custom memory allocation function + * + * If you don't want a custom allocator, but still want + * custom free(), set this to NULL and liblzma will use + * the standard malloc(). + * + * \param opaque lzma_allocator.opaque (see below) + * \param nmemb Number of elements like in calloc(). liblzma + * will always set nmemb to 1, so it is safe to + * ignore nmemb in a custom allocator if you like. + * The nmemb argument exists only for + * compatibility with zlib and libbzip2. + * \param size Size of an element in bytes. + * liblzma never sets this to zero. + * + * \return Pointer to the beginning of a memory block of + * `size' bytes, or NULL if allocation fails + * for some reason. When allocation fails, functions + * of liblzma return LZMA_MEM_ERROR. + * + * The allocator should not waste time zeroing the allocated buffers. + * This is not only about speed, but also memory usage, since the + * operating system kernel doesn't necessarily allocate the requested + * memory in physical memory until it is actually used. With small + * input files, liblzma may actually need only a fraction of the + * memory that it requested for allocation. + * + * \note LZMA_MEM_ERROR is also used when the size of the + * allocation would be greater than SIZE_MAX. Thus, + * don't assume that the custom allocator must have + * returned NULL if some function from liblzma + * returns LZMA_MEM_ERROR. + */ + void *(LZMA_API_CALL *alloc)(void *opaque, size_t nmemb, size_t size); + + /** + * \brief Pointer to a custom memory freeing function + * + * If you don't want a custom freeing function, but still + * want a custom allocator, set this to NULL and liblzma + * will use the standard free(). + * + * \param opaque lzma_allocator.opaque (see below) + * \param ptr Pointer returned by lzma_allocator.alloc(), + * or when it is set to NULL, a pointer returned + * by the standard malloc(). + */ + void (LZMA_API_CALL *free)(void *opaque, void *ptr); + + /** + * \brief Pointer passed to .alloc() and .free() + * + * opaque is passed as the first argument to lzma_allocator.alloc() + * and lzma_allocator.free(). This intended to ease implementing + * custom memory allocation functions for use with liblzma. + * + * If you don't need this, you should set this to NULL. + */ + void *opaque; + +} lzma_allocator; + + +/** + * \brief Internal data structure + * + * The contents of this structure is not visible outside the library. + */ +typedef struct lzma_internal_s lzma_internal; + + +/** + * \brief Passing data to and from liblzma + * + * The lzma_stream structure is used for + * - passing pointers to input and output buffers to liblzma; + * - defining custom memory hander functions; and + * - holding a pointer to coder-specific internal data structures. + * + * Typical usage: + * + * - After allocating lzma_stream (on stack or with malloc()), it must be + * initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details). + * + * - Initialize a coder to the lzma_stream, for example by using + * lzma_easy_encoder() or lzma_auto_decoder(). Some notes: + * - In contrast to zlib, strm->next_in and strm->next_out are + * ignored by all initialization functions, thus it is safe + * to not initialize them yet. + * - The initialization functions always set strm->total_in and + * strm->total_out to zero. + * - If the initialization function fails, no memory is left allocated + * that would require freeing with lzma_end() even if some memory was + * associated with the lzma_stream structure when the initialization + * function was called. + * + * - Use lzma_code() to do the actual work. + * + * - Once the coding has been finished, the existing lzma_stream can be + * reused. It is OK to reuse lzma_stream with different initialization + * function without calling lzma_end() first. Old allocations are + * automatically freed. + * + * - Finally, use lzma_end() to free the allocated memory. lzma_end() never + * frees the lzma_stream structure itself. + * + * Application may modify the values of total_in and total_out as it wants. + * They are updated by liblzma to match the amount of data read and + * written, but aren't used for anything else. + */ +typedef struct { + const uint8_t *next_in; /**< Pointer to the next input byte. */ + size_t avail_in; /**< Number of available input bytes in next_in. */ + uint64_t total_in; /**< Total number of bytes read by liblzma. */ + + uint8_t *next_out; /**< Pointer to the next output position. */ + size_t avail_out; /**< Amount of free space in next_out. */ + uint64_t total_out; /**< Total number of bytes written by liblzma. */ + + /** + * \brief Custom memory allocation functions + * + * In most cases this is NULL which makes liblzma use + * the standard malloc() and free(). + */ + lzma_allocator *allocator; + + /** Internal state is not visible to applications. */ + lzma_internal *internal; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. Excluding the initialization of this structure, + * you should not touch these, because the names of these variables + * may change. + */ + void *reserved_ptr1; + void *reserved_ptr2; + void *reserved_ptr3; + void *reserved_ptr4; + uint64_t reserved_int1; + uint64_t reserved_int2; + size_t reserved_int3; + size_t reserved_int4; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + +} lzma_stream; + + +/** + * \brief Initialization for lzma_stream + * + * When you declare an instance of lzma_stream, you can immediately + * initialize it so that initialization functions know that no memory + * has been allocated yet: + * + * lzma_stream strm = LZMA_STREAM_INIT; + * + * If you need to initialize a dynamically allocated lzma_stream, you can use + * memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this + * violates the C standard since NULL may have different internal + * representation than zero, but it should be portable enough in practice. + * Anyway, for maximum portability, you can use something like this: + * + * lzma_stream tmp = LZMA_STREAM_INIT; + * *strm = tmp; + */ +#define LZMA_STREAM_INIT \ + { NULL, 0, 0, NULL, 0, 0, NULL, NULL, \ + NULL, NULL, NULL, NULL, 0, 0, 0, 0, \ + LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM } + + +/** + * \brief Encode or decode data + * + * Once the lzma_stream has been successfully initialized (e.g. with + * lzma_stream_encoder()), the actual encoding or decoding is done + * using this function. The application has to update strm->next_in, + * strm->avail_in, strm->next_out, and strm->avail_out to pass input + * to and get output from liblzma. + * + * See the description of the coder-specific initialization function to find + * out what `action' values are supported by the coder. + */ +extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Free memory allocated for the coder data structures + * + * \param strm Pointer to lzma_stream that is at least initialized + * with LZMA_STREAM_INIT. + * + * After lzma_end(strm), strm->internal is guaranteed to be NULL. No other + * members of the lzma_stream structure are touched. + * + * \note zlib indicates an error if application end()s unfinished + * stream structure. liblzma doesn't do this, and assumes that + * application knows what it is doing. + */ +extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow; + + +/** + * \brief Get the memory usage of decoder filter chain + * + * This function is currently supported only when *strm has been initialized + * with a function that takes a memlimit argument. With other functions, you + * should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage() + * to estimate the memory requirements. + * + * This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big + * the memory usage limit should have been to decode the input. Note that + * this may give misleading information if decoding .xz Streams that have + * multiple Blocks, because each Block can have different memory requirements. + * + * \return How much memory is currently allocated for the filter + * decoders. If no filter chain is currently allocated, + * some non-zero value is still returned, which is less than + * or equal to what any filter chain would indicate as its + * memory requirement. + * + * If this function isn't supported by *strm or some other error + * occurs, zero is returned. + */ +extern LZMA_API(uint64_t) lzma_memusage(const lzma_stream *strm) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the current memory usage limit + * + * This function is supported only when *strm has been initialized with + * a function that takes a memlimit argument. + * + * \return On success, the current memory usage limit is returned + * (always non-zero). On error, zero is returned. + */ +extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Set the memory usage limit + * + * This function is supported only when *strm has been initialized with + * a function that takes a memlimit argument. + * + * \return - LZMA_OK: New memory usage limit successfully set. + * - LZMA_MEMLIMIT_ERROR: The new limit is too small. + * The limit was not changed. + * - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't + * support memory usage limit or memlimit was zero. + */ +extern LZMA_API(lzma_ret) lzma_memlimit_set( + lzma_stream *strm, uint64_t memlimit) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/bcj.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/bcj.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/bcj.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/bcj.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,90 @@ +/** + * \file lzma/bcj.h + * \brief Branch/Call/Jump conversion filters + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/* Filter IDs for lzma_filter.id */ + +#define LZMA_FILTER_X86 LZMA_VLI_C(0x04) + /**< + * Filter for x86 binaries + */ + +#define LZMA_FILTER_POWERPC LZMA_VLI_C(0x05) + /**< + * Filter for Big endian PowerPC binaries + */ + +#define LZMA_FILTER_IA64 LZMA_VLI_C(0x06) + /**< + * Filter for IA-64 (Itanium) binaries. + */ + +#define LZMA_FILTER_ARM LZMA_VLI_C(0x07) + /**< + * Filter for ARM binaries. + */ + +#define LZMA_FILTER_ARMTHUMB LZMA_VLI_C(0x08) + /**< + * Filter for ARM-Thumb binaries. + */ + +#define LZMA_FILTER_SPARC LZMA_VLI_C(0x09) + /**< + * Filter for SPARC binaries. + */ + + +/** + * \brief Options for BCJ filters + * + * The BCJ filters never change the size of the data. Specifying options + * for them is optional: if pointer to options is NULL, default value is + * used. You probably never need to specify options to BCJ filters, so just + * set the options pointer to NULL and be happy. + * + * If options with non-default values have been specified when encoding, + * the same options must also be specified when decoding. + * + * \note At the moment, none of the BCJ filters support + * LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, + * LZMA_OPTIONS_ERROR will be returned. If there is need, + * partial support for LZMA_SYNC_FLUSH can be added in future. + * Partial means that flushing would be possible only at + * offsets that are multiple of 2, 4, or 16 depending on + * the filter, except x86 which cannot be made to support + * LZMA_SYNC_FLUSH predictably. + */ +typedef struct { + /** + * \brief Start offset for conversions + * + * This setting is useful only when the same filter is used + * _separately_ for multiple sections of the same executable file, + * and the sections contain cross-section branch/call/jump + * instructions. In that case it is beneficial to set the start + * offset of the non-first sections so that the relative addresses + * of the cross-section branch/call/jump instructions will use the + * same absolute addresses as in the first section. + * + * When the pointer to options is NULL, the default value (zero) + * is used. + */ + uint32_t start_offset; + +} lzma_options_bcj; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/block.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/block.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/block.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/block.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,530 @@ +/** + * \file lzma/block.h + * \brief .xz Block handling + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Options for the Block and Block Header encoders and decoders + * + * Different Block handling functions use different parts of this structure. + * Some read some members, other functions write, and some do both. Only the + * members listed for reading need to be initialized when the specified + * functions are called. The members marked for writing will be assigned + * new values at some point either by calling the given function or by + * later calls to lzma_code(). + */ +typedef struct { + /** + * \brief Block format version + * + * To prevent API and ABI breakages if new features are needed in + * the Block field, a version number is used to indicate which + * fields in this structure are in use. For now, version must always + * be zero. With non-zero version, most Block related functions will + * return LZMA_OPTIONS_ERROR. + * + * Read by: + * - All functions that take pointer to lzma_block as argument, + * including lzma_block_header_decode(). + * + * Written by: + * - lzma_block_header_decode() + */ + uint32_t version; + + /** + * \brief Size of the Block Header field + * + * This is always a multiple of four. + * + * Read by: + * - lzma_block_header_encode() + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_size() + * - lzma_block_buffer_encode() + */ + uint32_t header_size; +# define LZMA_BLOCK_HEADER_SIZE_MIN 8 +# define LZMA_BLOCK_HEADER_SIZE_MAX 1024 + + /** + * \brief Type of integrity Check + * + * The Check ID is not stored into the Block Header, thus its value + * must be provided also when decoding. + * + * Read by: + * - lzma_block_header_encode() + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_check check; + + /** + * \brief Size of the Compressed Data in bytes + * + * Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder + * will store this value to the Block Header. Block encoder doesn't + * care about this value, but will set it once the encoding has been + * finished. + * + * Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will + * verify that the size of the Compressed Data field matches + * compressed_size. + * + * Usually you don't know this value when encoding in streamed mode, + * and thus cannot write this field into the Block Header. + * + * In non-streamed mode you can reserve space for this field before + * encoding the actual Block. After encoding the data, finish the + * Block by encoding the Block Header. Steps in detail: + * + * - Set compressed_size to some big enough value. If you don't know + * better, use LZMA_VLI_MAX, but remember that bigger values take + * more space in Block Header. + * + * - Call lzma_block_header_size() to see how much space you need to + * reserve for the Block Header. + * + * - Encode the Block using lzma_block_encoder() and lzma_code(). + * It sets compressed_size to the correct value. + * + * - Use lzma_block_header_encode() to encode the Block Header. + * Because space was reserved in the first step, you don't need + * to call lzma_block_header_size() anymore, because due to + * reserving, header_size has to be big enough. If it is "too big", + * lzma_block_header_encode() will add enough Header Padding to + * make Block Header to match the size specified by header_size. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_compressed_size() + * - lzma_block_unpadded_size() + * - lzma_block_total_size() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode() + * - lzma_block_compressed_size() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_vli compressed_size; + + /** + * \brief Uncompressed Size in bytes + * + * This is handled very similarly to compressed_size above. + * + * uncompressed_size is needed by fewer functions than + * compressed_size. This is because uncompressed_size isn't + * needed to validate that Block stays within proper limits. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_decoder() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + lzma_vli uncompressed_size; + + /** + * \brief Array of filters + * + * There can be 1-4 filters. The end of the array is marked with + * .id = LZMA_VLI_UNKNOWN. + * + * Read by: + * - lzma_block_header_size() + * - lzma_block_header_encode() + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + * + * Written by: + * - lzma_block_header_decode(): Note that this does NOT free() + * the old filter options structures. All unused filters[] will + * have .id == LZMA_VLI_UNKNOWN and .options == NULL. If + * decoding fails, all filters[] are guaranteed to be + * LZMA_VLI_UNKNOWN and NULL. + * + * \note Because of the array is terminated with + * .id = LZMA_VLI_UNKNOWN, the actual array must + * have LZMA_FILTERS_MAX + 1 members or the Block + * Header decoder will overflow the buffer. + */ + lzma_filter *filters; + + /** + * \brief Raw value stored in the Check field + * + * After successful coding, the first lzma_check_size(check) bytes + * of this array contain the raw value stored in the Check field. + * + * Note that CRC32 and CRC64 are stored in little endian byte order. + * Take it into account if you display the Check values to the user. + * + * Written by: + * - lzma_block_encoder() + * - lzma_block_decoder() + * - lzma_block_buffer_encode() + * - lzma_block_buffer_decode() + */ + uint8_t raw_check[LZMA_CHECK_SIZE_MAX]; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * with the currently supported options, so it is safe to leave these + * uninitialized. + */ + void *reserved_ptr1; + void *reserved_ptr2; + void *reserved_ptr3; + uint32_t reserved_int1; + uint32_t reserved_int2; + lzma_vli reserved_int3; + lzma_vli reserved_int4; + lzma_vli reserved_int5; + lzma_vli reserved_int6; + lzma_vli reserved_int7; + lzma_vli reserved_int8; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + lzma_bool reserved_bool1; + lzma_bool reserved_bool2; + lzma_bool reserved_bool3; + lzma_bool reserved_bool4; + lzma_bool reserved_bool5; + lzma_bool reserved_bool6; + lzma_bool reserved_bool7; + lzma_bool reserved_bool8; + +} lzma_block; + + +/** + * \brief Decode the Block Header Size field + * + * To decode Block Header using lzma_block_header_decode(), the size of the + * Block Header has to be known and stored into lzma_block.header_size. + * The size can be calculated from the first byte of a Block using this macro. + * Note that if the first byte is 0x00, it indicates beginning of Index; use + * this macro only when the byte is not 0x00. + * + * There is no encoding macro, because Block Header encoder is enough for that. + */ +#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4) + + +/** + * \brief Calculate Block Header Size + * + * Calculate the minimum size needed for the Block Header field using the + * settings specified in the lzma_block structure. Note that it is OK to + * increase the calculated header_size value as long as it is a multiple of + * four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size + * just means that lzma_block_header_encode() will add Header Padding. + * + * \return - LZMA_OK: Size calculated successfully and stored to + * block->header_size. + * - LZMA_OPTIONS_ERROR: Unsupported version, filters or + * filter options. + * - LZMA_PROG_ERROR: Invalid values like compressed_size == 0. + * + * \note This doesn't check that all the options are valid i.e. this + * may return LZMA_OK even if lzma_block_header_encode() or + * lzma_block_encoder() would fail. If you want to validate the + * filter chain, consider using lzma_memlimit_encoder() which as + * a side-effect validates the filter chain. + */ +extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Block Header + * + * The caller must have calculated the size of the Block Header already with + * lzma_block_header_size(). If a value larger than the one calculated by + * lzma_block_header_size() is used, the Block Header will be padded to the + * specified size. + * + * \param out Beginning of the output buffer. This must be + * at least block->header_size bytes. + * \param block Block options to be encoded. + * + * \return - LZMA_OK: Encoding was successful. block->header_size + * bytes were written to output buffer. + * - LZMA_OPTIONS_ERROR: Invalid or unsupported options. + * - LZMA_PROG_ERROR: Invalid arguments, for example + * block->header_size is invalid or block->filters is NULL. + */ +extern LZMA_API(lzma_ret) lzma_block_header_encode( + const lzma_block *block, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Block Header + * + * block->version should be set to the highest value supported by the + * application; currently the only possible version is zero. This function + * will set version to the lowest value that still supports all the features + * required by the Block Header. + * + * The size of the Block Header must have already been decoded with + * lzma_block_header_size_decode() macro and stored to block->header_size. + * + * block->filters must have been allocated, but they don't need to be + * initialized (possible existing filter options are not freed). + * + * \param block Destination for Block options. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() (and also free() + * if an error occurs). + * \param in Beginning of the input buffer. This must be + * at least block->header_size bytes. + * + * \return - LZMA_OK: Decoding was successful. block->header_size + * bytes were read from the input buffer. + * - LZMA_OPTIONS_ERROR: The Block Header specifies some + * unsupported options such as unsupported filters. This can + * happen also if block->version was set to a too low value + * compared to what would be required to properly represent + * the information stored in the Block Header. + * - LZMA_DATA_ERROR: Block Header is corrupt, for example, + * the CRC32 doesn't match. + * - LZMA_PROG_ERROR: Invalid arguments, for example + * block->header_size is invalid or block->filters is NULL. + */ +extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block, + lzma_allocator *allocator, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Validate and set Compressed Size according to Unpadded Size + * + * Block Header stores Compressed Size, but Index has Unpadded Size. If the + * application has already parsed the Index and is now decoding Blocks, + * it can calculate Compressed Size from Unpadded Size. This function does + * exactly that with error checking: + * + * - Compressed Size calculated from Unpadded Size must be positive integer, + * that is, Unpadded Size must be big enough that after Block Header and + * Check fields there's still at least one byte for Compressed Size. + * + * - If Compressed Size was present in Block Header, the new value + * calculated from Unpadded Size is compared against the value + * from Block Header. + * + * \note This function must be called _after_ decoding the Block Header + * field so that it can properly validate Compressed Size if it + * was present in Block Header. + * + * \return - LZMA_OK: block->compressed_size was set successfully. + * - LZMA_DATA_ERROR: unpadded_size is too small compared to + * block->header_size and lzma_check_size(block->check). + * - LZMA_PROG_ERROR: Some values are invalid. For example, + * block->header_size must be a multiple of four and + * between 8 and 1024 inclusive. + */ +extern LZMA_API(lzma_ret) lzma_block_compressed_size( + lzma_block *block, lzma_vli unpadded_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate Unpadded Size + * + * The Index field stores Unpadded Size and Uncompressed Size. The latter + * can be taken directly from the lzma_block structure after coding a Block, + * but Unpadded Size needs to be calculated from Block Header Size, + * Compressed Size, and size of the Check field. This is where this function + * is needed. + * + * \return Unpadded Size on success, or zero on error. + */ +extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate the total encoded size of a Block + * + * This is equivalent to lzma_block_unpadded_size() except that the returned + * value includes the size of the Block Padding field. + * + * \return On success, total encoded size of the Block. On error, + * zero is returned. + */ +extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize .xz Block encoder + * + * Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the + * filter chain supports it), and LZMA_FINISH. + * + * \return - LZMA_OK: All good, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID + * that is not supported by this buid of liblzma. Initializing + * the encoder failed. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_encoder( + lzma_stream *strm, lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Block decoder + * + * Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using + * LZMA_FINISH is not required. It is supported only for convenience. + * + * \return - LZMA_OK: All good, continue with lzma_code(). + * - LZMA_UNSUPPORTED_CHECK: Initialization was successful, but + * the given Check ID is not supported, thus Check will be + * ignored. + * - LZMA_PROG_ERROR + * - LZMA_MEM_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_decoder( + lzma_stream *strm, lzma_block *block) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate maximum output size for single-call Block encoding + * + * This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks. + * See the documentation of lzma_stream_buffer_bound(). + */ +extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size) + lzma_nothrow; + + +/** + * \brief Single-call .xz Block encoder + * + * In contrast to the multi-call encoder initialized with + * lzma_block_encoder(), this function encodes also the Block Header. This + * is required to make it possible to write appropriate Block Header also + * in case the data isn't compressible, and different filter chain has to be + * used to encode the data in uncompressed form using uncompressed chunks + * of the LZMA2 filter. + * + * When the data isn't compressible, header_size, compressed_size, and + * uncompressed_size are set just like when the data was compressible, but + * it is possible that header_size is too small to hold the filter chain + * specified in block->filters, because that isn't necessarily the filter + * chain that was actually used to encode the data. lzma_block_unpadded_size() + * still works normally, because it doesn't read the filters array. + * + * \param block Block options: block->version, block->check, + * and block->filters must have been initialized. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_buffer_encode( + lzma_block *block, lzma_allocator *allocator, + const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Block decoder + * + * This is single-call equivalent of lzma_block_decoder(), and requires that + * the caller has already decoded Block Header and checked its memory usage. + * + * \param block Block options just like with lzma_block_decoder(). + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_OPTIONS_ERROR + * - LZMA_DATA_ERROR + * - LZMA_MEM_ERROR + * - LZMA_BUF_ERROR: Output buffer was too small. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_block_buffer_decode( + lzma_block *block, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/check.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/check.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/check.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/check.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,150 @@ +/** + * \file lzma/check.h + * \brief Integrity checks + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Type of the integrity check (Check ID) + * + * The .xz format supports multiple types of checks that are calculated + * from the uncompressed data. They vary in both speed and ability to + * detect errors. + */ +typedef enum { + LZMA_CHECK_NONE = 0, + /**< + * No Check is calculated. + * + * Size of the Check field: 0 bytes + */ + + LZMA_CHECK_CRC32 = 1, + /**< + * CRC32 using the polynomial from the IEEE 802.3 standard + * + * Size of the Check field: 4 bytes + */ + + LZMA_CHECK_CRC64 = 4, + /**< + * CRC64 using the polynomial from the ECMA-182 standard + * + * Size of the Check field: 8 bytes + */ + + LZMA_CHECK_SHA256 = 10 + /**< + * SHA-256 + * + * Size of the Check field: 32 bytes + */ +} lzma_check; + + +/** + * \brief Maximum valid Check ID + * + * The .xz file format specification specifies 16 Check IDs (0-15). Some + * of them are only reserved, that is, no actual Check algorithm has been + * assigned. When decoding, liblzma still accepts unknown Check IDs for + * future compatibility. If a valid but unsupported Check ID is detected, + * liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, + * LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h. + */ +#define LZMA_CHECK_ID_MAX 15 + + +/** + * \brief Test if the given Check ID is supported + * + * Return true if the given Check ID is supported by this liblzma build. + * Otherwise false is returned. It is safe to call this with a value that + * is not in the range [0, 15]; in that case the return value is always false. + * + * You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always + * supported (even if liblzma is built with limited features). + */ +extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Get the size of the Check field with the given Check ID + * + * Although not all Check IDs have a check algorithm associated, the size of + * every Check is already frozen. This function returns the size (in bytes) of + * the Check field with the specified Check ID. The values are: + * { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 } + * + * If the argument is not in the range [0, 15], UINT32_MAX is returned. + */ +extern LZMA_API(uint32_t) lzma_check_size(lzma_check check) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Maximum size of a Check field + */ +#define LZMA_CHECK_SIZE_MAX 64 + + +/** + * \brief Calculate CRC32 + * + * Calculate CRC32 using the polynomial from the IEEE 802.3 standard. + * + * \param buf Pointer to the input buffer + * \param size Size of the input buffer + * \param crc Previously returned CRC value. This is used to + * calculate the CRC of a big buffer in smaller chunks. + * Set to zero when starting a new calculation. + * + * \return Updated CRC value, which can be passed to this function + * again to continue CRC calculation. + */ +extern LZMA_API(uint32_t) lzma_crc32( + const uint8_t *buf, size_t size, uint32_t crc) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate CRC64 + * + * Calculate CRC64 using the polynomial from the ECMA-182 standard. + * + * This function is used similarly to lzma_crc32(). See its documentation. + */ +extern LZMA_API(uint64_t) lzma_crc64( + const uint8_t *buf, size_t size, uint64_t crc) + lzma_nothrow lzma_attr_pure; + + +/* + * SHA-256 functions are currently not exported to public API. + * Contact Lasse Collin if you think it should be. + */ + + +/** + * \brief Get the type of the integrity check + * + * This function can be called only immediately after lzma_code() has + * returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. + * Calling this function in any other situation has undefined behavior. + */ +extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/container.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/container.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/container.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/container.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,424 @@ +/** + * \file lzma/container.h + * \brief File formats + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/************ + * Encoding * + ************/ + +/** + * \brief Default compression preset + * + * It's not straightforward to recommend a default preset, because in some + * cases keeping the resource usage relatively low is more important that + * getting the maximum compression ratio. + */ +#define LZMA_PRESET_DEFAULT UINT32_C(6) + + +/** + * \brief Mask for preset level + * + * This is useful only if you need to extract the level from the preset + * variable. That should be rare. + */ +#define LZMA_PRESET_LEVEL_MASK UINT32_C(0x1F) + + +/* + * Preset flags + * + * Currently only one flag is defined. + */ + +/** + * \brief Extreme compression preset + * + * This flag modifies the preset to make the encoding significantly slower + * while improving the compression ratio only marginally. This is useful + * when you don't mind wasting time to get as small result as possible. + * + * This flag doesn't affect the memory usage requirements of the decoder (at + * least not significantly). The memory usage of the encoder may be increased + * a little but only at the lowest preset levels (0-3). + */ +#define LZMA_PRESET_EXTREME (UINT32_C(1) << 31) + + +/** + * \brief Calculate approximate memory usage of easy encoder + * + * This function is a wrapper for lzma_raw_encoder_memusage(). + * + * \param preset Compression preset (level and possible flags) + * + * \return Number of bytes of memory required for the given + * preset when encoding. If an error occurs, for example + * due to unsupported preset, UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate approximate decoder memory usage of a preset + * + * This function is a wrapper for lzma_raw_decoder_memusage(). + * + * \param preset Compression preset (level and possible flags) + * + * \return Number of bytes of memory required to decompress a file + * that was compressed using the given preset. If an error + * occurs, for example due to unsupported preset, UINT64_MAX + * is returned. + */ +extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize .xz Stream encoder using a preset number + * + * This function is intended for those who just want to use the basic features + * if liblzma (that is, most developers out there). + * + * \param strm Pointer to lzma_stream that is at least initialized + * with LZMA_STREAM_INIT. + * \param preset Compression preset to use. A preset consist of level + * number and zero or more flags. Usually flags aren't + * used, so preset is simply a number [0, 9] which match + * the options -0 ... -9 of the xz command line tool. + * Additional flags can be be set using bitwise-or with + * the preset level number, e.g. 6 | LZMA_PRESET_EXTREME. + * \param check Integrity check type to use. See check.h for available + * checks. The xz command line tool defaults to + * LZMA_CHECK_CRC64, which is a good choice if you are + * unsure. LZMA_CHECK_CRC32 is good too as long as the + * uncompressed file is not many gigabytes. + * + * \return - LZMA_OK: Initialization succeeded. Use lzma_code() to + * encode your data. + * - LZMA_MEM_ERROR: Memory allocation failed. + * - LZMA_OPTIONS_ERROR: The given compression preset is not + * supported by this build of liblzma. + * - LZMA_UNSUPPORTED_CHECK: The given check type is not + * supported by this liblzma build. + * - LZMA_PROG_ERROR: One or more of the parameters have values + * that will never be valid. For example, strm == NULL. + * + * If initialization fails (return value is not LZMA_OK), all the memory + * allocated for *strm by liblzma is always freed. Thus, there is no need + * to call lzma_end() after failed initialization. + * + * If initialization succeeds, use lzma_code() to do the actual encoding. + * Valid values for `action' (the second argument of lzma_code()) are + * LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future, + * there may be compression levels or flags that don't support LZMA_SYNC_FLUSH. + */ +extern LZMA_API(lzma_ret) lzma_easy_encoder( + lzma_stream *strm, uint32_t preset, lzma_check check) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Stream encoding using a preset number + * + * The maximum required output buffer size can be calculated with + * lzma_stream_buffer_bound(). + * + * \param preset Compression preset to use. See the description + * in lzma_easy_encoder(). + * \param check Type of the integrity check to calculate from + * uncompressed data. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_easy_buffer_encode( + uint32_t preset, lzma_check check, + lzma_allocator *allocator, const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Initialize .xz Stream encoder using a custom filter chain + * + * \param strm Pointer to properly prepared lzma_stream + * \param filters Array of filters. This must be terminated with + * filters[n].id = LZMA_VLI_UNKNOWN. See filter.h for + * more information. + * \param check Type of the integrity check to calculate from + * uncompressed data. + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_encoder(lzma_stream *strm, + const lzma_filter *filters, lzma_check check) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .lzma encoder (legacy file format) + * + * The .lzma format is sometimes called the LZMA_Alone format, which is the + * reason for the name of this function. The .lzma format supports only the + * LZMA1 filter. There is no support for integrity checks like CRC32. + * + * Use this function if and only if you need to create files readable by + * legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format + * is strongly recommended. + * + * The valid action values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * No kind of flushing is supported, because the file format doesn't make + * it possible. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_alone_encoder( + lzma_stream *strm, const lzma_options_lzma *options) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Calculate output buffer size for single-call Stream encoder + * + * When trying to compress uncompressible data, the encoded size will be + * slightly bigger than the input data. This function calculates how much + * output buffer space is required to be sure that lzma_stream_buffer_encode() + * doesn't return LZMA_BUF_ERROR. + * + * The calculated value is not exact, but it is guaranteed to be big enough. + * The actual maximum output space required may be slightly smaller (up to + * about 100 bytes). This should not be a problem in practice. + * + * If the calculated maximum size doesn't fit into size_t or would make the + * Stream grow past LZMA_VLI_MAX (which should never happen in practice), + * zero is returned to indicate the error. + * + * \note The limit calculated by this function applies only to + * single-call encoding. Multi-call encoding may (and probably + * will) have larger maximum expansion when encoding + * uncompressible data. Currently there is no function to + * calculate the maximum expansion of multi-call encoding. + */ +extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size) + lzma_nothrow; + + +/** + * \brief Single-call .xz Stream encoder + * + * \param filters Array of filters. This must be terminated with + * filters[n].id = LZMA_VLI_UNKNOWN. See filter.h + * for more information. + * \param check Type of the integrity check to calculate from + * uncompressed data. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_UNSUPPORTED_CHECK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_buffer_encode( + lzma_filter *filters, lzma_check check, + lzma_allocator *allocator, const uint8_t *in, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/************ + * Decoding * + ************/ + +/** + * This flag makes lzma_code() return LZMA_NO_CHECK if the input stream + * being decoded has no integrity check. Note that when used with + * lzma_auto_decoder(), all .lzma files will trigger LZMA_NO_CHECK + * if LZMA_TELL_NO_CHECK is used. + */ +#define LZMA_TELL_NO_CHECK UINT32_C(0x01) + + +/** + * This flag makes lzma_code() return LZMA_UNSUPPORTED_CHECK if the input + * stream has an integrity check, but the type of the integrity check is not + * supported by this liblzma version or build. Such files can still be + * decoded, but the integrity check cannot be verified. + */ +#define LZMA_TELL_UNSUPPORTED_CHECK UINT32_C(0x02) + + +/** + * This flag makes lzma_code() return LZMA_GET_CHECK as soon as the type + * of the integrity check is known. The type can then be got with + * lzma_get_check(). + */ +#define LZMA_TELL_ANY_CHECK UINT32_C(0x04) + + +/** + * This flag enables decoding of concatenated files with file formats that + * allow concatenating compressed files as is. From the formats currently + * supported by liblzma, only the .xz format allows concatenated files. + * Concatenated files are not allowed with the legacy .lzma format. + * + * This flag also affects the usage of the `action' argument for lzma_code(). + * When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END + * unless LZMA_FINISH is used as `action'. Thus, the application has to set + * LZMA_FINISH in the same way as it does when encoding. + * + * If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH + * as `action' for lzma_code(), but the usage of LZMA_FINISH isn't required. + */ +#define LZMA_CONCATENATED UINT32_C(0x08) + + +/** + * \brief Initialize .xz Stream decoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param memlimit Memory usage limit as bytes. Use UINT64_MAX + * to effectively disable the limiter. + * \param flags Bitwise-or of zero or more of the decoder flags: + * LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, + * LZMA_TELL_ANY_CHECK, LZMA_CONCATENATED + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR: Cannot allocate memory. + * - LZMA_OPTIONS_ERROR: Unsupported flags + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_decoder( + lzma_stream *strm, uint64_t memlimit, uint32_t flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode .xz Streams and .lzma files with autodetection + * + * This decoder autodetects between the .xz and .lzma file formats, and + * calls lzma_stream_decoder() or lzma_alone_decoder() once the type + * of the input file has been detected. + * + * \param strm Pointer to properly prepared lzma_stream + * \param memlimit Memory usage limit as bytes. Use UINT64_MAX + * to effectively disable the limiter. + * \param flags Bitwise-or of flags, or zero for no flags. + * + * \return - LZMA_OK: Initialization was successful. + * - LZMA_MEM_ERROR: Cannot allocate memory. + * - LZMA_OPTIONS_ERROR: Unsupported flags + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_auto_decoder( + lzma_stream *strm, uint64_t memlimit, uint32_t flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .lzma decoder (legacy file format) + * + * Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. + * There is no need to use LZMA_FINISH, but allowing it may simplify + * certain types of applications. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_alone_decoder( + lzma_stream *strm, uint64_t memlimit) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Stream decoder + * + * \param memlimit Pointer to how much memory the decoder is allowed + * to allocate. The value pointed by this pointer is + * modified if and only if LZMA_MEMLIMIT_ERROR is + * returned. + * \param flags Bitwise-or of zero or more of the decoder flags: + * LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, + * LZMA_CONCATENATED. Note that LZMA_TELL_ANY_CHECK + * is not allowed and will return LZMA_PROG_ERROR. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if decoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_DATA_ERROR + * - LZMA_NO_CHECK: This can be returned only if using + * the LZMA_TELL_NO_CHECK flag. + * - LZMA_UNSUPPORTED_CHECK: This can be returned only if using + * the LZMA_TELL_UNSUPPORTED_CHECK flag. + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. + * The minimum required memlimit value was stored to *memlimit. + * - LZMA_BUF_ERROR: Output buffer was too small. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_stream_buffer_decode( + uint64_t *memlimit, uint32_t flags, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/delta.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/delta.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/delta.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/delta.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,77 @@ +/** + * \file lzma/delta.h + * \brief Delta filter + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Filter ID + * + * Filter ID of the Delta filter. This is used as lzma_filter.id. + */ +#define LZMA_FILTER_DELTA LZMA_VLI_C(0x03) + + +/** + * \brief Type of the delta calculation + * + * Currently only byte-wise delta is supported. Other possible types could + * be, for example, delta of 16/32/64-bit little/big endian integers, but + * these are not currently planned since byte-wise delta is almost as good. + */ +typedef enum { + LZMA_DELTA_TYPE_BYTE +} lzma_delta_type; + + +/** + * \brief Options for the Delta filter + * + * These options are needed by both encoder and decoder. + */ +typedef struct { + /** For now, this must always be LZMA_DELTA_TYPE_BYTE. */ + lzma_delta_type type; + + /** + * \brief Delta distance + * + * With the only currently supported type, LZMA_DELTA_TYPE_BYTE, + * the distance is as bytes. + * + * Examples: + * - 16-bit stereo audio: distance = 4 bytes + * - 24-bit RGB image data: distance = 3 bytes + */ + uint32_t dist; +# define LZMA_DELTA_DIST_MIN 1 +# define LZMA_DELTA_DIST_MAX 256 + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these + * uninitialized. + */ + uint32_t reserved_int1; + uint32_t reserved_int2; + uint32_t reserved_int3; + uint32_t reserved_int4; + void *reserved_ptr1; + void *reserved_ptr2; + +} lzma_options_delta; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/filter.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/filter.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/filter.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/filter.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,424 @@ +/** + * \file lzma/filter.h + * \brief Common filter related types and functions + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Maximum number of filters in a chain + * + * A filter chain can have 1-4 filters, of which three are allowed to change + * the size of the data. Usually only one or two filters are needed. + */ +#define LZMA_FILTERS_MAX 4 + + +/** + * \brief Filter options + * + * This structure is used to pass Filter ID and a pointer filter's + * options to liblzma. A few functions work with a single lzma_filter + * structure, while most functions expect a filter chain. + * + * A filter chain is indicated with an array of lzma_filter structures. + * The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter + * array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to + * be able to hold any arbitrary filter chain. This is important when + * using lzma_block_header_decode() from block.h, because too small + * array would make liblzma write past the end of the filters array. + */ +typedef struct { + /** + * \brief Filter ID + * + * Use constants whose name begin with `LZMA_FILTER_' to specify + * different filters. In an array of lzma_filter structures, use + * LZMA_VLI_UNKNOWN to indicate end of filters. + * + * \note This is not an enum, because on some systems enums + * cannot be 64-bit. + */ + lzma_vli id; + + /** + * \brief Pointer to filter-specific options structure + * + * If the filter doesn't need options, set this to NULL. If id is + * set to LZMA_VLI_UNKNOWN, options is ignored, and thus + * doesn't need be initialized. + */ + void *options; + +} lzma_filter; + + +/** + * \brief Test if the given Filter ID is supported for encoding + * + * Return true if the give Filter ID is supported for encoding by this + * liblzma build. Otherwise false is returned. + * + * There is no way to list which filters are available in this particular + * liblzma version and build. It would be useless, because the application + * couldn't know what kind of options the filter would need. + */ +extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Test if the given Filter ID is supported for decoding + * + * Return true if the give Filter ID is supported for decoding by this + * liblzma build. Otherwise false is returned. + */ +extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Copy the filters array + * + * Copy the Filter IDs and filter-specific options from src to dest. + * Up to LZMA_FILTERS_MAX filters are copied, plus the terminating + * .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least + * LZMA_FILTERS_MAX + 1 elements space unless the caller knows that + * src is smaller than that. + * + * Unless the filter-specific options is NULL, the Filter ID has to be + * supported by liblzma, because liblzma needs to know the size of every + * filter-specific options structure. The filter-specific options are not + * validated. If options is NULL, any unsupported Filter IDs are copied + * without returning an error. + * + * Old filter-specific options in dest are not freed, so dest doesn't + * need to be initialized by the caller in any way. + * + * If an error occurs, memory possibly already allocated by this function + * is always freed. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options + * is not NULL. + * - LZMA_PROG_ERROR: src or dest is NULL. + */ +extern LZMA_API(lzma_ret) lzma_filters_copy(const lzma_filter *src, + lzma_filter *dest, lzma_allocator *allocator) lzma_nothrow; + + +/** + * \brief Calculate approximate memory requirements for raw encoder + * + * This function can be used to calculate the memory requirements for + * Block and Stream encoders too because Block and Stream encoders don't + * need significantly more memory than raw encoder. + * + * \param filters Array of filters terminated with + * .id == LZMA_VLI_UNKNOWN. + * + * \return Number of bytes of memory required for the given + * filter chain when encoding. If an error occurs, + * for example due to unsupported filter chain, + * UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Calculate approximate memory requirements for raw decoder + * + * This function can be used to calculate the memory requirements for + * Block and Stream decoders too because Block and Stream decoders don't + * need significantly more memory than raw decoder. + * + * \param filters Array of filters terminated with + * .id == LZMA_VLI_UNKNOWN. + * + * \return Number of bytes of memory required for the given + * filter chain when decoding. If an error occurs, + * for example due to unsupported filter chain, + * UINT64_MAX is returned. + */ +extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize raw encoder + * + * This function may be useful when implementing custom file formats. + * + * \param strm Pointer to properly prepared lzma_stream + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * + * The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the + * filter chain supports it), or LZMA_FINISH. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_raw_encoder( + lzma_stream *strm, const lzma_filter *filters) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize raw decoder + * + * The initialization of raw decoder goes similarly to raw encoder. + * + * The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using + * LZMA_FINISH is not required, it is supported just for convenience. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_raw_decoder( + lzma_stream *strm, const lzma_filter *filters) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Update the filter chain in the encoder + * + * This function is for advanced users only. This function has two slightly + * different purposes: + * + * - After LZMA_FULL_FLUSH when using Stream encoder: Set a new filter + * chain, which will be used starting from the next Block. + * + * - After LZMA_SYNC_FLUSH using Raw, Block, or Stream encoder: Change + * the filter-specific options in the middle of encoding. The actual + * filters in the chain (Filter IDs) cannot be changed. In the future, + * it might become possible to change the filter options without + * using LZMA_SYNC_FLUSH. + * + * While rarely useful, this function may be called also when no data has + * been compressed yet. In that case, this function will behave as if + * LZMA_FULL_FLUSH (Stream encoder) or LZMA_SYNC_FLUSH (Raw or Block + * encoder) had been used right before calling this function. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_filters_update( + lzma_stream *strm, const lzma_filter *filters) lzma_nothrow; + + +/** + * \brief Single-call raw encoder + * + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_size Size of the input buffer + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Not enough output buffer space. + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + * + * \note There is no function to calculate how big output buffer + * would surely be big enough. (lzma_stream_buffer_bound() + * works only for lzma_stream_buffer_encode(); raw encoder + * won't necessarily meet that bound.) + */ +extern LZMA_API(lzma_ret) lzma_raw_buffer_encode( + const lzma_filter *filters, lzma_allocator *allocator, + const uint8_t *in, size_t in_size, uint8_t *out, + size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Single-call raw decoder + * + * \param filters Array of lzma_filter structures. The end of the + * array must be marked with .id = LZMA_VLI_UNKNOWN. + * \param allocator lzma_allocator for custom allocator functions. + * Set to NULL to use malloc() and free(). + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + */ +extern LZMA_API(lzma_ret) lzma_raw_buffer_decode( + const lzma_filter *filters, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Get the size of the Filter Properties field + * + * This function may be useful when implementing custom file formats + * using the raw encoder and decoder. + * + * \param size Pointer to uint32_t to hold the size of the properties + * \param filter Filter ID and options (the size of the properties may + * vary depending on the options) + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + * + * \note This function validates the Filter ID, but does not + * necessarily validate the options. Thus, it is possible + * that this returns LZMA_OK while the following call to + * lzma_properties_encode() returns LZMA_OPTIONS_ERROR. + */ +extern LZMA_API(lzma_ret) lzma_properties_size( + uint32_t *size, const lzma_filter *filter) lzma_nothrow; + + +/** + * \brief Encode the Filter Properties field + * + * \param filter Filter ID and options + * \param props Buffer to hold the encoded options. The size of + * buffer must have been already determined with + * lzma_properties_size(). + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_PROG_ERROR + * + * \note Even this function won't validate more options than actually + * necessary. Thus, it is possible that encoding the properties + * succeeds but using the same options to initialize the encoder + * will fail. + * + * \note If lzma_properties_size() indicated that the size + * of the Filter Properties field is zero, calling + * lzma_properties_encode() is not required, but it + * won't do any harm either. + */ +extern LZMA_API(lzma_ret) lzma_properties_encode( + const lzma_filter *filter, uint8_t *props) lzma_nothrow; + + +/** + * \brief Decode the Filter Properties field + * + * \param filter filter->id must have been set to the correct + * Filter ID. filter->options doesn't need to be + * initialized (it's not freed by this function). The + * decoded options will be stored to filter->options. + * filter->options is set to NULL if there are no + * properties or if an error occurs. + * \param allocator Custom memory allocator used to allocate the + * options. Set to NULL to use the default malloc(), + * and in case of an error, also free(). + * \param props Input buffer containing the properties. + * \param props_size Size of the properties. This must be the exact + * size; giving too much or too little input will + * return LZMA_OPTIONS_ERROR. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + */ +extern LZMA_API(lzma_ret) lzma_properties_decode( + lzma_filter *filter, lzma_allocator *allocator, + const uint8_t *props, size_t props_size) lzma_nothrow; + + +/** + * \brief Calculate encoded size of a Filter Flags field + * + * Knowing the size of Filter Flags is useful to know when allocating + * memory to hold the encoded Filter Flags. + * + * \param size Pointer to integer to hold the calculated size + * \param filter Filter ID and associated options whose encoded + * size is to be calculated + * + * \return - LZMA_OK: *size set successfully. Note that this doesn't + * guarantee that filter->options is valid, thus + * lzma_filter_flags_encode() may still fail. + * - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options. + * - LZMA_PROG_ERROR: Invalid options + * + * \note If you need to calculate size of List of Filter Flags, + * you need to loop over every lzma_filter entry. + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_size( + uint32_t *size, const lzma_filter *filter) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Filter Flags into given buffer + * + * In contrast to some functions, this doesn't allocate the needed buffer. + * This is due to how this function is used internally by liblzma. + * + * \param filter Filter ID and options to be encoded + * \param out Beginning of the output buffer + * \param out_pos out[*out_pos] is the next write position. This + * is updated by the encoder. + * \param out_size out[out_size] is the first byte to not write. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: Invalid or unsupported options. + * - LZMA_PROG_ERROR: Invalid options or not enough output + * buffer space (you should have checked it with + * lzma_filter_flags_size()). + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_encode(const lzma_filter *filter, + uint8_t *out, size_t *out_pos, size_t out_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Filter Flags from given buffer + * + * The decoded result is stored into *filter. The old value of + * filter->options is not free()d. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_filter_flags_decode( + lzma_filter *filter, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow lzma_attr_warn_unused_result; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/hardware.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/hardware.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/hardware.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/hardware.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,50 @@ +/** + * \file lzma/hardware.h + * \brief Hardware information + * + * Since liblzma can consume a lot of system resources, it also provides + * ways to limit the resource usage. Applications linking against liblzma + * need to do the actual decisions how much resources to let liblzma to use. + * To ease making these decisions, liblzma provides functions to find out + * the relevant capabilities of the underlaying hardware. Currently there + * is only a function to find out the amount of RAM, but in the future there + * will be also a function to detect how many concurrent threads the system + * can run. + * + * \note On some operating systems, these function may temporarily + * load a shared library or open file descriptor(s) to find out + * the requested hardware information. Unless the application + * assumes that specific file descriptors are not touched by + * other threads, this should have no effect on thread safety. + * Possible operations involving file descriptors will restart + * the syscalls if they return EINTR. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Get the total amount of physical memory (RAM) in bytes + * + * This function may be useful when determining a reasonable memory + * usage limit for decompressing or how much memory it is OK to use + * for compressing. + * + * \return On success, the total amount of physical memory in bytes + * is returned. If the amount of RAM cannot be determined, + * zero is returned. This can happen if an error occurs + * or if there is no code in liblzma to detect the amount + * of RAM on the specific operating system. + */ +extern LZMA_API(uint64_t) lzma_physmem(void) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/index.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/index.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/index.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/index.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,682 @@ +/** + * \file lzma/index.h + * \brief Handling of .xz Index and related information + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Opaque data type to hold the Index(es) and other information + * + * lzma_index often holds just one .xz Index and possibly the Stream Flags + * of the same Stream and size of the Stream Padding field. However, + * multiple lzma_indexes can be concatenated with lzma_index_cat() and then + * there may be information about multiple Streams in the same lzma_index. + * + * Notes about thread safety: Only one thread may modify lzma_index at + * a time. All functions that take non-const pointer to lzma_index + * modify it. As long as no thread is modifying the lzma_index, getting + * information from the same lzma_index can be done from multiple threads + * at the same time with functions that take a const pointer to + * lzma_index or use lzma_index_iter. The same iterator must be used + * only by one thread at a time, of course, but there can be as many + * iterators for the same lzma_index as needed. + */ +typedef struct lzma_index_s lzma_index; + + +/** + * \brief Iterator to get information about Blocks and Streams + */ +typedef struct { + struct { + /** + * \brief Pointer to Stream Flags + * + * This is NULL if Stream Flags have not been set for + * this Stream with lzma_index_stream_flags(). + */ + const lzma_stream_flags *flags; + + const void *reserved_ptr1; + const void *reserved_ptr2; + const void *reserved_ptr3; + + /** + * \brief Stream number in the lzma_index + * + * The first Stream is 1. + */ + lzma_vli number; + + /** + * \brief Number of Blocks in the Stream + * + * If this is zero, the block structure below has + * undefined values. + */ + lzma_vli block_count; + + /** + * \brief Compressed start offset of this Stream + * + * The offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + */ + lzma_vli compressed_offset; + + /** + * \brief Uncompressed start offset of this Stream + * + * The offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + */ + lzma_vli uncompressed_offset; + + /** + * \brief Compressed size of this Stream + * + * This includes all headers except the possible + * Stream Padding after this Stream. + */ + lzma_vli compressed_size; + + /** + * \brief Uncompressed size of this Stream + */ + lzma_vli uncompressed_size; + + /** + * \brief Size of Stream Padding after this Stream + * + * If it hasn't been set with lzma_index_stream_padding(), + * this defaults to zero. Stream Padding is always + * a multiple of four bytes. + */ + lzma_vli padding; + + lzma_vli reserved_vli1; + lzma_vli reserved_vli2; + lzma_vli reserved_vli3; + lzma_vli reserved_vli4; + } stream; + + struct { + /** + * \brief Block number in the file + * + * The first Block is 1. + */ + lzma_vli number_in_file; + + /** + * \brief Compressed start offset of this Block + * + * This offset is relative to the beginning of the + * lzma_index (i.e. usually the beginning of the .xz file). + * Normally this is where you should seek in the .xz file + * to start decompressing this Block. + */ + lzma_vli compressed_file_offset; + + /** + * \brief Uncompressed start offset of this Block + * + * This offset is relative to the beginning of the lzma_index + * (i.e. usually the beginning of the .xz file). + * + * When doing random-access reading, it is possible that + * the target offset is not exactly at Block boundary. One + * will need to compare the target offset against + * uncompressed_file_offset or uncompressed_stream_offset, + * and possibly decode and throw away some amount of data + * before reaching the target offset. + */ + lzma_vli uncompressed_file_offset; + + /** + * \brief Block number in this Stream + * + * The first Block is 1. + */ + lzma_vli number_in_stream; + + /** + * \brief Compressed start offset of this Block + * + * This offset is relative to the beginning of the Stream + * containing this Block. + */ + lzma_vli compressed_stream_offset; + + /** + * \brief Uncompressed start offset of this Block + * + * This offset is relative to the beginning of the Stream + * containing this Block. + */ + lzma_vli uncompressed_stream_offset; + + /** + * \brief Uncompressed size of this Block + * + * You should pass this to the Block decoder if you will + * decode this Block. It will allow the Block decoder to + * validate the uncompressed size. + */ + lzma_vli uncompressed_size; + + /** + * \brief Unpadded size of this Block + * + * You should pass this to the Block decoder if you will + * decode this Block. It will allow the Block decoder to + * validate the unpadded size. + */ + lzma_vli unpadded_size; + + /** + * \brief Total compressed size + * + * This includes all headers and padding in this Block. + * This is useful if you need to know how many bytes + * the Block decoder will actually read. + */ + lzma_vli total_size; + + lzma_vli reserved_vli1; + lzma_vli reserved_vli2; + lzma_vli reserved_vli3; + lzma_vli reserved_vli4; + + const void *reserved_ptr1; + const void *reserved_ptr2; + const void *reserved_ptr3; + const void *reserved_ptr4; + } block; + + /* + * Internal data which is used to store the state of the iterator. + * The exact format may vary between liblzma versions, so don't + * touch these in any way. + */ + union { + const void *p; + size_t s; + lzma_vli v; + } internal[6]; +} lzma_index_iter; + + +/** + * \brief Operation mode for lzma_index_iter_next() + */ +typedef enum { + LZMA_INDEX_ITER_ANY = 0, + /**< + * \brief Get the next Block or Stream + * + * Go to the next Block if the current Stream has at least + * one Block left. Otherwise go to the next Stream even if + * it has no Blocks. If the Stream has no Blocks + * (lzma_index_iter.stream.block_count == 0), + * lzma_index_iter.block will have undefined values. + */ + + LZMA_INDEX_ITER_STREAM = 1, + /**< + * \brief Get the next Stream + * + * Go to the next Stream even if the current Stream has + * unread Blocks left. If the next Stream has at least one + * Block, the iterator will point to the first Block. + * If there are no Blocks, lzma_index_iter.block will have + * undefined values. + */ + + LZMA_INDEX_ITER_BLOCK = 2, + /**< + * \brief Get the next Block + * + * Go to the next Block if the current Stream has at least + * one Block left. If the current Stream has no Blocks left, + * the next Stream with at least one Block is located and + * the iterator will be made to point to the first Block of + * that Stream. + */ + + LZMA_INDEX_ITER_NONEMPTY_BLOCK = 3 + /**< + * \brief Get the next non-empty Block + * + * This is like LZMA_INDEX_ITER_BLOCK except that it will + * skip Blocks whose Uncompressed Size is zero. + */ + +} lzma_index_iter_mode; + + +/** + * \brief Calculate memory usage of lzma_index + * + * On disk, the size of the Index field depends on both the number of Records + * stored and how big values the Records store (due to variable-length integer + * encoding). When the Index is kept in lzma_index structure, the memory usage + * depends only on the number of Records/Blocks stored in the Index(es), and + * in case of concatenated lzma_indexes, the number of Streams. The size in + * RAM is almost always significantly bigger than in the encoded form on disk. + * + * This function calculates an approximate amount of memory needed hold + * the given number of Streams and Blocks in lzma_index structure. This + * value may vary between CPU architectures and also between liblzma versions + * if the internal implementation is modified. + */ +extern LZMA_API(uint64_t) lzma_index_memusage( + lzma_vli streams, lzma_vli blocks) lzma_nothrow; + + +/** + * \brief Calculate the memory usage of an existing lzma_index + * + * This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), + * lzma_index_block_count(i)). + */ +extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i) + lzma_nothrow; + + +/** + * \brief Allocate and initialize a new lzma_index structure + * + * \return On success, a pointer to an empty initialized lzma_index is + * returned. If allocation fails, NULL is returned. + */ +extern LZMA_API(lzma_index *) lzma_index_init(lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Deallocate lzma_index + * + * If i is NULL, this does nothing. + */ +extern LZMA_API(void) lzma_index_end(lzma_index *i, lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Add a new Block to lzma_index + * + * \param i Pointer to a lzma_index structure + * \param allocator Pointer to lzma_allocator, or NULL to + * use malloc() + * \param unpadded_size Unpadded Size of a Block. This can be + * calculated with lzma_block_unpadded_size() + * after encoding or decoding the Block. + * \param uncompressed_size Uncompressed Size of a Block. This can be + * taken directly from lzma_block structure + * after encoding or decoding the Block. + * + * Appending a new Block does not invalidate iterators. For example, + * if an iterator was pointing to the end of the lzma_index, after + * lzma_index_append() it is possible to read the next Block with + * an existing iterator. + * + * \return - LZMA_OK + * - LZMA_MEM_ERROR + * - LZMA_DATA_ERROR: Compressed or uncompressed size of the + * Stream or size of the Index field would grow too big. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_append( + lzma_index *i, lzma_allocator *allocator, + lzma_vli unpadded_size, lzma_vli uncompressed_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Set the Stream Flags + * + * Set the Stream Flags of the last (and typically the only) Stream + * in lzma_index. This can be useful when reading information from the + * lzma_index, because to decode Blocks, knowing the integrity check type + * is needed. + * + * The given Stream Flags are copied into internal preallocated structure + * in the lzma_index, thus the caller doesn't need to keep the *stream_flags + * available after calling this function. + * + * \return - LZMA_OK + * - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_stream_flags( + lzma_index *i, const lzma_stream_flags *stream_flags) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the types of integrity Checks + * + * If lzma_index_stream_flags() is used to set the Stream Flags for + * every Stream, lzma_index_checks() can be used to get a bitmask to + * indicate which Check types have been used. It can be useful e.g. if + * showing the Check types to the user. + * + * The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10. + */ +extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Set the amount of Stream Padding + * + * Set the amount of Stream Padding of the last (and typically the only) + * Stream in the lzma_index. This is needed when planning to do random-access + * reading within multiple concatenated Streams. + * + * By default, the amount of Stream Padding is assumed to be zero bytes. + * + * \return - LZMA_OK + * - LZMA_DATA_ERROR: The file size would grow too big. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_stream_padding( + lzma_index *i, lzma_vli stream_padding) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the number of Streams + */ +extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the number of Blocks + * + * This returns the total number of Blocks in lzma_index. To get number + * of Blocks in individual Streams, use lzma_index_iter. + */ +extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the size of the Index field as bytes + * + * This is needed to verify the Backward Size field in the Stream Footer. + */ +extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the Stream + * + * If multiple lzma_indexes have been combined, this works as if the Blocks + * were in a single Stream. This is useful if you are going to combine + * Blocks from multiple Streams into a single new Stream. + */ +extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the Blocks + * + * This doesn't include the Stream Header, Stream Footer, Stream Padding, + * or Index fields. + */ +extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the total size of the file + * + * When no lzma_indexes have been combined with lzma_index_cat() and there is + * no Stream Padding, this function is identical to lzma_index_stream_size(). + * If multiple lzma_indexes have been combined, this includes also the headers + * of each separate Stream and the possible Stream Padding fields. + */ +extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Get the uncompressed size of the file + */ +extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i) + lzma_nothrow lzma_attr_pure; + + +/** + * \brief Initialize an iterator + * + * \param iter Pointer to a lzma_index_iter structure + * \param i lzma_index to which the iterator will be associated + * + * This function associates the iterator with the given lzma_index, and calls + * lzma_index_iter_rewind() on the iterator. + * + * This function doesn't allocate any memory, thus there is no + * lzma_index_iter_end(). The iterator is valid as long as the + * associated lzma_index is valid, that is, until lzma_index_end() or + * using it as source in lzma_index_cat(). Specifically, lzma_index doesn't + * become invalid if new Blocks are added to it with lzma_index_append() or + * if it is used as the destination in lzma_index_cat(). + * + * It is safe to make copies of an initialized lzma_index_iter, for example, + * to easily restart reading at some particular position. + */ +extern LZMA_API(void) lzma_index_iter_init( + lzma_index_iter *iter, const lzma_index *i) lzma_nothrow; + + +/** + * \brief Rewind the iterator + * + * Rewind the iterator so that next call to lzma_index_iter_next() will + * return the first Block or Stream. + */ +extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter) + lzma_nothrow; + + +/** + * \brief Get the next Block or Stream + * + * \param iter Iterator initialized with lzma_index_iter_init() + * \param mode Specify what kind of information the caller wants + * to get. See lzma_index_iter_mode for details. + * + * \return If next Block or Stream matching the mode was found, *iter + * is updated and this function returns false. If no Block or + * Stream matching the mode is found, *iter is not modified + * and this function returns true. If mode is set to an unknown + * value, *iter is not modified and this function returns true. + */ +extern LZMA_API(lzma_bool) lzma_index_iter_next( + lzma_index_iter *iter, lzma_index_iter_mode mode) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Locate a Block + * + * If it is possible to seek in the .xz file, it is possible to parse + * the Index field(s) and use lzma_index_iter_locate() to do random-access + * reading with granularity of Block size. + * + * \param iter Iterator that was earlier initialized with + * lzma_index_iter_init(). + * \param target Uncompressed target offset which the caller would + * like to locate from the Stream + * + * If the target is smaller than the uncompressed size of the Stream (can be + * checked with lzma_index_uncompressed_size()): + * - Information about the Stream and Block containing the requested + * uncompressed offset is stored into *iter. + * - Internal state of the iterator is adjusted so that + * lzma_index_iter_next() can be used to read subsequent Blocks or Streams. + * - This function returns false. + * + * If target is greater than the uncompressed size of the Stream, *iter + * is not modified, and this function returns true. + */ +extern LZMA_API(lzma_bool) lzma_index_iter_locate( + lzma_index_iter *iter, lzma_vli target) lzma_nothrow; + + +/** + * \brief Concatenate lzma_indexes + * + * Concatenating lzma_indexes is useful when doing random-access reading in + * multi-Stream .xz file, or when combining multiple Streams into single + * Stream. + * + * \param dest lzma_index after which src is appended + * \param src lzma_index to be appended after dest. If this + * function succeeds, the memory allocated for src + * is freed or moved to be part of dest, and all + * iterators pointing to src will become invalid. + * \param allocator Custom memory allocator; can be NULL to use + * malloc() and free(). + * + * \return - LZMA_OK: lzma_indexes were concatenated successfully. + * src is now a dangling pointer. + * - LZMA_DATA_ERROR: *dest would grow too big. + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_cat( + lzma_index *dest, lzma_index *src, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Duplicate lzma_index + * + * \return A copy of the lzma_index, or NULL if memory allocation failed. + */ +extern LZMA_API(lzma_index *) lzma_index_dup( + const lzma_index *i, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Index encoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param i Pointer to lzma_index which should be encoded. + * + * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * It is enough to use only one of them (you can choose freely; use LZMA_RUN + * to support liblzma versions older than 5.0.0). + * + * \return - LZMA_OK: Initialization succeeded, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_encoder( + lzma_stream *strm, const lzma_index *i) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Initialize .xz Index decoder + * + * \param strm Pointer to properly prepared lzma_stream + * \param i The decoded Index will be made available via + * this pointer. Initially this function will + * set *i to NULL (the old value is ignored). If + * decoding succeeds (lzma_code() returns + * LZMA_STREAM_END), *i will be set to point + * to a new lzma_index, which the application + * has to later free with lzma_index_end(). + * \param memlimit How much memory the resulting lzma_index is + * allowed to require. + * + * The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. + * It is enough to use only one of them (you can choose freely; use LZMA_RUN + * to support liblzma versions older than 5.0.0). + * + * \return - LZMA_OK: Initialization succeeded, continue with lzma_code(). + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_decoder( + lzma_stream *strm, lzma_index **i, uint64_t memlimit) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Single-call .xz Index encoder + * + * \param i lzma_index to be encoded + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * *out_pos is updated only if encoding succeeds. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_BUF_ERROR: Output buffer is too small. Use + * lzma_index_size() to find out how much output + * space is needed. + * - LZMA_PROG_ERROR + * + * \note This function doesn't take allocator argument since all + * the internal data is allocated on stack. + */ +extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Single-call .xz Index decoder + * + * \param i If decoding succeeds, *i will point to a new + * lzma_index, which the application has to + * later free with lzma_index_end(). If an error + * occurs, *i will be NULL. The old value of *i + * is always ignored and thus doesn't need to be + * initialized by the caller. + * \param memlimit Pointer to how much memory the resulting + * lzma_index is allowed to require. The value + * pointed by this pointer is modified if and only + * if LZMA_MEMLIMIT_ERROR is returned. + * \param allocator Pointer to lzma_allocator, or NULL to use malloc() + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * *in_pos is updated only if decoding succeeds. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_MEM_ERROR + * - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. + * The minimum required memlimit value was stored to *memlimit. + * - LZMA_DATA_ERROR + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i, + uint64_t *memlimit, lzma_allocator *allocator, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/index_hash.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/index_hash.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/index_hash.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/index_hash.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,107 @@ +/** + * \file lzma/index_hash.h + * \brief Validate Index by using a hash function + * + * Hashing makes it possible to use constant amount of memory to validate + * Index of arbitrary size. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + +/** + * \brief Opaque data type to hold the Index hash + */ +typedef struct lzma_index_hash_s lzma_index_hash; + + +/** + * \brief Allocate and initialize a new lzma_index_hash structure + * + * If index_hash is NULL, a new lzma_index_hash structure is allocated, + * initialized, and a pointer to it returned. If allocation fails, NULL + * is returned. + * + * If index_hash is non-NULL, it is reinitialized and the same pointer + * returned. In this case, return value cannot be NULL or a different + * pointer than the index_hash that was given as an argument. + */ +extern LZMA_API(lzma_index_hash *) lzma_index_hash_init( + lzma_index_hash *index_hash, lzma_allocator *allocator) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Deallocate lzma_index_hash structure + */ +extern LZMA_API(void) lzma_index_hash_end( + lzma_index_hash *index_hash, lzma_allocator *allocator) + lzma_nothrow; + + +/** + * \brief Add a new Record to an Index hash + * + * \param index Pointer to a lzma_index_hash structure + * \param unpadded_size Unpadded Size of a Block + * \param uncompressed_size Uncompressed Size of a Block + * + * \return - LZMA_OK + * - LZMA_DATA_ERROR: Compressed or uncompressed size of the + * Stream or size of the Index field would grow too big. + * - LZMA_PROG_ERROR: Invalid arguments or this function is being + * used when lzma_index_hash_decode() has already been used. + */ +extern LZMA_API(lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash, + lzma_vli unpadded_size, lzma_vli uncompressed_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode and validate the Index field + * + * After telling the sizes of all Blocks with lzma_index_hash_append(), + * the actual Index field is decoded with this function. Specifically, + * once decoding of the Index field has been started, no more Records + * can be added using lzma_index_hash_append(). + * + * This function doesn't use lzma_stream structure to pass the input data. + * Instead, the input buffer is specified using three arguments. This is + * because it matches better the internal APIs of liblzma. + * + * \param index_hash Pointer to a lzma_index_hash structure + * \param in Pointer to the beginning of the input buffer + * \param in_pos in[*in_pos] is the next byte to process + * \param in_size in[in_size] is the first byte not to process + * + * \return - LZMA_OK: So far good, but more input is needed. + * - LZMA_STREAM_END: Index decoded successfully and it matches + * the Records given with lzma_index_hash_append(). + * - LZMA_DATA_ERROR: Index is corrupt or doesn't match the + * information given with lzma_index_hash_append(). + * - LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size. + * - LZMA_PROG_ERROR + */ +extern LZMA_API(lzma_ret) lzma_index_hash_decode(lzma_index_hash *index_hash, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Get the size of the Index field as bytes + * + * This is needed to verify the Backward Size field in the Stream Footer. + */ +extern LZMA_API(lzma_vli) lzma_index_hash_size( + const lzma_index_hash *index_hash) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/lzma.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/lzma.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/lzma.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/lzma.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,420 @@ +/** + * \file lzma/lzma.h + * \brief LZMA1 and LZMA2 filters + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief LZMA1 Filter ID + * + * LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, + * 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from + * accidentally using LZMA when they actually want LZMA2. + * + * LZMA1 shouldn't be used for new applications unless you _really_ know + * what you are doing. LZMA2 is almost always a better choice. + */ +#define LZMA_FILTER_LZMA1 LZMA_VLI_C(0x4000000000000001) + +/** + * \brief LZMA2 Filter ID + * + * Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds + * support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion + * when trying to compress uncompressible data), possibility to change + * lc/lp/pb in the middle of encoding, and some other internal improvements. + */ +#define LZMA_FILTER_LZMA2 LZMA_VLI_C(0x21) + + +/** + * \brief Match finders + * + * Match finder has major effect on both speed and compression ratio. + * Usually hash chains are faster than binary trees. + * + * If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better + * choice, because binary trees get much higher compression ratio penalty + * with LZMA_SYNC_FLUSH. + * + * The memory usage formulas are only rough estimates, which are closest to + * reality when dict_size is a power of two. The formulas are more complex + * in reality, and can also change a little between liblzma versions. Use + * lzma_raw_encoder_memusage() to get more accurate estimate of memory usage. + */ +typedef enum { + LZMA_MF_HC3 = 0x03, + /**< + * \brief Hash Chain with 2- and 3-byte hashing + * + * Minimum nice_len: 3 + * + * Memory usage: + * - dict_size <= 16 MiB: dict_size * 7.5 + * - dict_size > 16 MiB: dict_size * 5.5 + 64 MiB + */ + + LZMA_MF_HC4 = 0x04, + /**< + * \brief Hash Chain with 2-, 3-, and 4-byte hashing + * + * Minimum nice_len: 4 + * + * Memory usage: + * - dict_size <= 32 MiB: dict_size * 7.5 + * - dict_size > 32 MiB: dict_size * 6.5 + */ + + LZMA_MF_BT2 = 0x12, + /**< + * \brief Binary Tree with 2-byte hashing + * + * Minimum nice_len: 2 + * + * Memory usage: dict_size * 9.5 + */ + + LZMA_MF_BT3 = 0x13, + /**< + * \brief Binary Tree with 2- and 3-byte hashing + * + * Minimum nice_len: 3 + * + * Memory usage: + * - dict_size <= 16 MiB: dict_size * 11.5 + * - dict_size > 16 MiB: dict_size * 9.5 + 64 MiB + */ + + LZMA_MF_BT4 = 0x14 + /**< + * \brief Binary Tree with 2-, 3-, and 4-byte hashing + * + * Minimum nice_len: 4 + * + * Memory usage: + * - dict_size <= 32 MiB: dict_size * 11.5 + * - dict_size > 32 MiB: dict_size * 10.5 + */ +} lzma_match_finder; + + +/** + * \brief Test if given match finder is supported + * + * Return true if the given match finder is supported by this liblzma build. + * Otherwise false is returned. It is safe to call this with a value that + * isn't listed in lzma_match_finder enumeration; the return value will be + * false. + * + * There is no way to list which match finders are available in this + * particular liblzma version and build. It would be useless, because + * a new match finder, which the application developer wasn't aware, + * could require giving additional options to the encoder that the older + * match finders don't need. + */ +extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Compression modes + * + * This selects the function used to analyze the data produced by the match + * finder. + */ +typedef enum { + LZMA_MODE_FAST = 1, + /**< + * \brief Fast compression + * + * Fast mode is usually at its best when combined with + * a hash chain match finder. + */ + + LZMA_MODE_NORMAL = 2 + /**< + * \brief Normal compression + * + * This is usually notably slower than fast mode. Use this + * together with binary tree match finders to expose the + * full potential of the LZMA1 or LZMA2 encoder. + */ +} lzma_mode; + + +/** + * \brief Test if given compression mode is supported + * + * Return true if the given compression mode is supported by this liblzma + * build. Otherwise false is returned. It is safe to call this with a value + * that isn't listed in lzma_mode enumeration; the return value will be false. + * + * There is no way to list which modes are available in this particular + * liblzma version and build. It would be useless, because a new compression + * mode, which the application developer wasn't aware, could require giving + * additional options to the encoder that the older modes don't need. + */ +extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Options specific to the LZMA1 and LZMA2 filters + * + * Since LZMA1 and LZMA2 share most of the code, it's simplest to share + * the options structure too. For encoding, all but the reserved variables + * need to be initialized unless specifically mentioned otherwise. + * lzma_lzma_preset() can be used to get a good starting point. + * + * For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and + * preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb. + */ +typedef struct { + /** + * \brief Dictionary size in bytes + * + * Dictionary size indicates how many bytes of the recently processed + * uncompressed data is kept in memory. One method to reduce size of + * the uncompressed data is to store distance-length pairs, which + * indicate what data to repeat from the dictionary buffer. Thus, + * the bigger the dictionary, the better the compression ratio + * usually is. + * + * Maximum size of the dictionary depends on multiple things: + * - Memory usage limit + * - Available address space (not a problem on 64-bit systems) + * - Selected match finder (encoder only) + * + * Currently the maximum dictionary size for encoding is 1.5 GiB + * (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit + * systems for certain match finder implementation reasons. In the + * future, there may be match finders that support bigger + * dictionaries. + * + * Decoder already supports dictionaries up to 4 GiB - 1 B (i.e. + * UINT32_MAX), so increasing the maximum dictionary size of the + * encoder won't cause problems for old decoders. + * + * Because extremely small dictionaries sizes would have unneeded + * overhead in the decoder, the minimum dictionary size is 4096 bytes. + * + * \note When decoding, too big dictionary does no other harm + * than wasting memory. + */ + uint32_t dict_size; +# define LZMA_DICT_SIZE_MIN UINT32_C(4096) +# define LZMA_DICT_SIZE_DEFAULT (UINT32_C(1) << 23) + + /** + * \brief Pointer to an initial dictionary + * + * It is possible to initialize the LZ77 history window using + * a preset dictionary. It is useful when compressing many + * similar, relatively small chunks of data independently from + * each other. The preset dictionary should contain typical + * strings that occur in the files being compressed. The most + * probable strings should be near the end of the preset dictionary. + * + * This feature should be used only in special situations. For + * now, it works correctly only with raw encoding and decoding. + * Currently none of the container formats supported by + * liblzma allow preset dictionary when decoding, thus if + * you create a .xz or .lzma file with preset dictionary, it + * cannot be decoded with the regular decoder functions. In the + * future, the .xz format will likely get support for preset + * dictionary though. + */ + const uint8_t *preset_dict; + + /** + * \brief Size of the preset dictionary + * + * Specifies the size of the preset dictionary. If the size is + * bigger than dict_size, only the last dict_size bytes are + * processed. + * + * This variable is read only when preset_dict is not NULL. + * If preset_dict is not NULL but preset_dict_size is zero, + * no preset dictionary is used (identical to only setting + * preset_dict to NULL). + */ + uint32_t preset_dict_size; + + /** + * \brief Number of literal context bits + * + * How many of the highest bits of the previous uncompressed + * eight-bit byte (also known as `literal') are taken into + * account when predicting the bits of the next literal. + * + * E.g. in typical English text, an upper-case letter is + * often followed by a lower-case letter, and a lower-case + * letter is usually followed by another lower-case letter. + * In the US-ASCII character set, the highest three bits are 010 + * for upper-case letters and 011 for lower-case letters. + * When lc is at least 3, the literal coding can take advantage of + * this property in the uncompressed data. + * + * There is a limit that applies to literal context bits and literal + * position bits together: lc + lp <= 4. Without this limit the + * decoding could become very slow, which could have security related + * results in some cases like email servers doing virus scanning. + * This limit also simplifies the internal implementation in liblzma. + * + * There may be LZMA1 streams that have lc + lp > 4 (maximum possible + * lc would be 8). It is not possible to decode such streams with + * liblzma. + */ + uint32_t lc; +# define LZMA_LCLP_MIN 0 +# define LZMA_LCLP_MAX 4 +# define LZMA_LC_DEFAULT 3 + + /** + * \brief Number of literal position bits + * + * lp affects what kind of alignment in the uncompressed data is + * assumed when encoding literals. A literal is a single 8-bit byte. + * See pb below for more information about alignment. + */ + uint32_t lp; +# define LZMA_LP_DEFAULT 0 + + /** + * \brief Number of position bits + * + * pb affects what kind of alignment in the uncompressed data is + * assumed in general. The default means four-byte alignment + * (2^ pb =2^2=4), which is often a good choice when there's + * no better guess. + * + * When the aligment is known, setting pb accordingly may reduce + * the file size a little. E.g. with text files having one-byte + * alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can + * improve compression slightly. For UTF-16 text, pb=1 is a good + * choice. If the alignment is an odd number like 3 bytes, pb=0 + * might be the best choice. + * + * Even though the assumed alignment can be adjusted with pb and + * lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment. + * It might be worth taking into account when designing file formats + * that are likely to be often compressed with LZMA1 or LZMA2. + */ + uint32_t pb; +# define LZMA_PB_MIN 0 +# define LZMA_PB_MAX 4 +# define LZMA_PB_DEFAULT 2 + + /** Compression mode */ + lzma_mode mode; + + /** + * \brief Nice length of a match + * + * This determines how many bytes the encoder compares from the match + * candidates when looking for the best match. Once a match of at + * least nice_len bytes long is found, the encoder stops looking for + * better candidates and encodes the match. (Naturally, if the found + * match is actually longer than nice_len, the actual length is + * encoded; it's not truncated to nice_len.) + * + * Bigger values usually increase the compression ratio and + * compression time. For most files, 32 to 128 is a good value, + * which gives very good compression ratio at good speed. + * + * The exact minimum value depends on the match finder. The maximum + * is 273, which is the maximum length of a match that LZMA1 and + * LZMA2 can encode. + */ + uint32_t nice_len; + + /** Match finder ID */ + lzma_match_finder mf; + + /** + * \brief Maximum search depth in the match finder + * + * For every input byte, match finder searches through the hash chain + * or binary tree in a loop, each iteration going one step deeper in + * the chain or tree. The searching stops if + * - a match of at least nice_len bytes long is found; + * - all match candidates from the hash chain or binary tree have + * been checked; or + * - maximum search depth is reached. + * + * Maximum search depth is needed to prevent the match finder from + * wasting too much time in case there are lots of short match + * candidates. On the other hand, stopping the search before all + * candidates have been checked can reduce compression ratio. + * + * Setting depth to zero tells liblzma to use an automatic default + * value, that depends on the selected match finder and nice_len. + * The default is in the range [4, 200] or so (it may vary between + * liblzma versions). + * + * Using a bigger depth value than the default can increase + * compression ratio in some cases. There is no strict maximum value, + * but high values (thousands or millions) should be used with care: + * the encoder could remain fast enough with typical input, but + * malicious input could cause the match finder to slow down + * dramatically, possibly creating a denial of service attack. + */ + uint32_t depth; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the names + * of these variables may change. These are and will never be used + * with the currently supported options, so it is safe to leave these + * uninitialized. + */ + uint32_t reserved_int1; + uint32_t reserved_int2; + uint32_t reserved_int3; + uint32_t reserved_int4; + uint32_t reserved_int5; + uint32_t reserved_int6; + uint32_t reserved_int7; + uint32_t reserved_int8; + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + void *reserved_ptr1; + void *reserved_ptr2; + +} lzma_options_lzma; + + +/** + * \brief Set a compression preset to lzma_options_lzma structure + * + * 0 is the fastest and 9 is the slowest. These match the switches -0 .. -9 + * of the xz command line tool. In addition, it is possible to bitwise-or + * flags to the preset. Currently only LZMA_PRESET_EXTREME is supported. + * The flags are defined in container.h, because the flags are used also + * with lzma_easy_encoder(). + * + * The preset values are subject to changes between liblzma versions. + * + * This function is available only if LZMA1 or LZMA2 encoder has been enabled + * when building liblzma. + * + * \return On success, false is returned. If the preset is not + * supported, true is returned. + */ +extern LZMA_API(lzma_bool) lzma_lzma_preset( + lzma_options_lzma *options, uint32_t preset) lzma_nothrow; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/stream_flags.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/stream_flags.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/stream_flags.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/stream_flags.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,223 @@ +/** + * \file lzma/stream_flags.h + * \brief .xz Stream Header and Stream Footer encoder and decoder + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Size of Stream Header and Stream Footer + * + * Stream Header and Stream Footer have the same size and they are not + * going to change even if a newer version of the .xz file format is + * developed in future. + */ +#define LZMA_STREAM_HEADER_SIZE 12 + + +/** + * \brief Options for encoding/decoding Stream Header and Stream Footer + */ +typedef struct { + /** + * \brief Stream Flags format version + * + * To prevent API and ABI breakages if new features are needed in + * Stream Header or Stream Footer, a version number is used to + * indicate which fields in this structure are in use. For now, + * version must always be zero. With non-zero version, the + * lzma_stream_header_encode() and lzma_stream_footer_encode() + * will return LZMA_OPTIONS_ERROR. + * + * lzma_stream_header_decode() and lzma_stream_footer_decode() + * will always set this to the lowest value that supports all the + * features indicated by the Stream Flags field. The application + * must check that the version number set by the decoding functions + * is supported by the application. Otherwise it is possible that + * the application will decode the Stream incorrectly. + */ + uint32_t version; + + /** + * \brief Backward Size + * + * Backward Size must be a multiple of four bytes. In this Stream + * format version, Backward Size is the size of the Index field. + * + * Backward Size isn't actually part of the Stream Flags field, but + * it is convenient to include in this structure anyway. Backward + * Size is present only in the Stream Footer. There is no need to + * initialize backward_size when encoding Stream Header. + * + * lzma_stream_header_decode() always sets backward_size to + * LZMA_VLI_UNKNOWN so that it is convenient to use + * lzma_stream_flags_compare() when both Stream Header and Stream + * Footer have been decoded. + */ + lzma_vli backward_size; +# define LZMA_BACKWARD_SIZE_MIN 4 +# define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34) + + /** + * \brief Check ID + * + * This indicates the type of the integrity check calculated from + * uncompressed data. + */ + lzma_check check; + + /* + * Reserved space to allow possible future extensions without + * breaking the ABI. You should not touch these, because the + * names of these variables may change. + * + * (We will never be able to use all of these since Stream Flags + * is just two bytes plus Backward Size of four bytes. But it's + * nice to have the proper types when they are needed.) + */ + lzma_reserved_enum reserved_enum1; + lzma_reserved_enum reserved_enum2; + lzma_reserved_enum reserved_enum3; + lzma_reserved_enum reserved_enum4; + lzma_bool reserved_bool1; + lzma_bool reserved_bool2; + lzma_bool reserved_bool3; + lzma_bool reserved_bool4; + lzma_bool reserved_bool5; + lzma_bool reserved_bool6; + lzma_bool reserved_bool7; + lzma_bool reserved_bool8; + uint32_t reserved_int1; + uint32_t reserved_int2; + +} lzma_stream_flags; + + +/** + * \brief Encode Stream Header + * + * \param options Stream Header options to be encoded. + * options->backward_size is ignored and doesn't + * need to be initialized. + * \param out Beginning of the output buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: options->version is not supported by + * this liblzma version. + * - LZMA_PROG_ERROR: Invalid options. + */ +extern LZMA_API(lzma_ret) lzma_stream_header_encode( + const lzma_stream_flags *options, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Encode Stream Footer + * + * \param options Stream Footer options to be encoded. + * \param out Beginning of the output buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Encoding was successful. + * - LZMA_OPTIONS_ERROR: options->version is not supported by + * this liblzma version. + * - LZMA_PROG_ERROR: Invalid options. + */ +extern LZMA_API(lzma_ret) lzma_stream_footer_encode( + const lzma_stream_flags *options, uint8_t *out) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Stream Header + * + * \param options Target for the decoded Stream Header options. + * \param in Beginning of the input buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to + * help comparing Stream Flags from Stream Header and Stream Footer with + * lzma_stream_flags_compare(). + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given + * buffer cannot be Stream Header. + * - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header + * is corrupt. + * - LZMA_OPTIONS_ERROR: Unsupported options are present + * in the header. + * + * \note When decoding .xz files that contain multiple Streams, it may + * make sense to print "file format not recognized" only if + * decoding of the Stream Header of the _first_ Stream gives + * LZMA_FORMAT_ERROR. If non-first Stream Header gives + * LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is + * probably more appropriate. + * + * For example, Stream decoder in liblzma uses LZMA_DATA_ERROR if + * LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode() + * when decoding non-first Stream. + */ +extern LZMA_API(lzma_ret) lzma_stream_header_decode( + lzma_stream_flags *options, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Decode Stream Footer + * + * \param options Target for the decoded Stream Header options. + * \param in Beginning of the input buffer of + * LZMA_STREAM_HEADER_SIZE bytes. + * + * \return - LZMA_OK: Decoding was successful. + * - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given + * buffer cannot be Stream Footer. + * - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer + * is corrupt. + * - LZMA_OPTIONS_ERROR: Unsupported options are present + * in Stream Footer. + * + * \note If Stream Header was already decoded successfully, but + * decoding Stream Footer returns LZMA_FORMAT_ERROR, the + * application should probably report some other error message + * than "file format not recognized", since the file more likely + * is corrupt (possibly truncated). Stream decoder in liblzma + * uses LZMA_DATA_ERROR in this situation. + */ +extern LZMA_API(lzma_ret) lzma_stream_footer_decode( + lzma_stream_flags *options, const uint8_t *in) + lzma_nothrow lzma_attr_warn_unused_result; + + +/** + * \brief Compare two lzma_stream_flags structures + * + * backward_size values are compared only if both are not + * LZMA_VLI_UNKNOWN. + * + * \return - LZMA_OK: Both are equal. If either had backward_size set + * to LZMA_VLI_UNKNOWN, backward_size values were not + * compared or validated. + * - LZMA_DATA_ERROR: The structures differ. + * - LZMA_OPTIONS_ERROR: version in either structure is greater + * than the maximum supported version (currently zero). + * - LZMA_PROG_ERROR: Invalid value, e.g. invalid check or + * backward_size. + */ +extern LZMA_API(lzma_ret) lzma_stream_flags_compare( + const lzma_stream_flags *a, const lzma_stream_flags *b) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/version.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/version.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/version.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/version.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,121 @@ +/** + * \file lzma/version.h + * \brief Version number + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/* + * Version number split into components + */ +#define LZMA_VERSION_MAJOR 5 +#define LZMA_VERSION_MINOR 0 +#define LZMA_VERSION_PATCH 4 +#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE + +#ifndef LZMA_VERSION_COMMIT +# define LZMA_VERSION_COMMIT "" +#endif + + +/* + * Map symbolic stability levels to integers. + */ +#define LZMA_VERSION_STABILITY_ALPHA 0 +#define LZMA_VERSION_STABILITY_BETA 1 +#define LZMA_VERSION_STABILITY_STABLE 2 + + +/** + * \brief Compile-time version number + * + * The version number is of format xyyyzzzs where + * - x = major + * - yyy = minor + * - zzz = revision + * - s indicates stability: 0 = alpha, 1 = beta, 2 = stable + * + * The same xyyyzzz triplet is never reused with different stability levels. + * For example, if 5.1.0alpha has been released, there will never be 5.1.0beta + * or 5.1.0 stable. + * + * \note The version number of liblzma has nothing to with + * the version number of Igor Pavlov's LZMA SDK. + */ +#define LZMA_VERSION (LZMA_VERSION_MAJOR * UINT32_C(10000000) \ + + LZMA_VERSION_MINOR * UINT32_C(10000) \ + + LZMA_VERSION_PATCH * UINT32_C(10) \ + + LZMA_VERSION_STABILITY) + + +/* + * Macros to construct the compile-time version string + */ +#if LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_ALPHA +# define LZMA_VERSION_STABILITY_STRING "alpha" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_BETA +# define LZMA_VERSION_STABILITY_STRING "beta" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_STABLE +# define LZMA_VERSION_STABILITY_STRING "" +#else +# error Incorrect LZMA_VERSION_STABILITY +#endif + +#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) \ + #major "." #minor "." #patch stability commit + +#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit) \ + LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) + + +/** + * \brief Compile-time version as a string + * + * This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable + * versions don't have any "stable" suffix). In future, a snapshot built + * from source code repository may include an additional suffix, for example + * "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form + * in LZMA_VERSION macro. + */ +#define LZMA_VERSION_STRING LZMA_VERSION_STRING_C( \ + LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, \ + LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \ + LZMA_VERSION_COMMIT) + + +/* #ifndef is needed for use with windres (MinGW or Cygwin). */ +#ifndef LZMA_H_INTERNAL_RC + +/** + * \brief Run-time version number as an integer + * + * Return the value of LZMA_VERSION macro at the compile time of liblzma. + * This allows the application to compare if it was built against the same, + * older, or newer version of liblzma that is currently running. + */ +extern LZMA_API(uint32_t) lzma_version_number(void) + lzma_nothrow lzma_attr_const; + + +/** + * \brief Run-time version as a string + * + * This function may be useful if you want to display which version of + * liblzma your application is currently using. + */ +extern LZMA_API(const char *) lzma_version_string(void) + lzma_nothrow lzma_attr_const; + +#endif diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma/vli.h goldendict-1.5.0~ppa131019/winlibs/include/lzma/vli.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma/vli.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma/vli.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,166 @@ +/** + * \file lzma/vli.h + * \brief Variable-length integer handling + * + * In the .xz format, most integers are encoded in a variable-length + * representation, which is sometimes called little endian base-128 encoding. + * This saves space when smaller values are more likely than bigger values. + * + * The encoding scheme encodes seven bits to every byte, using minimum + * number of bytes required to represent the given value. Encodings that use + * non-minimum number of bytes are invalid, thus every integer has exactly + * one encoded representation. The maximum number of bits in a VLI is 63, + * thus the vli argument must be less than or equal to UINT64_MAX / 2. You + * should use LZMA_VLI_MAX for clarity. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + * + * See ../lzma.h for information about liblzma as a whole. + */ + +#ifndef LZMA_H_INTERNAL +# error Never include this file directly. Use instead. +#endif + + +/** + * \brief Maximum supported value of a variable-length integer + */ +#define LZMA_VLI_MAX (UINT64_MAX / 2) + +/** + * \brief VLI value to denote that the value is unknown + */ +#define LZMA_VLI_UNKNOWN UINT64_MAX + +/** + * \brief Maximum supported encoded length of variable length integers + */ +#define LZMA_VLI_BYTES_MAX 9 + +/** + * \brief VLI constant suffix + */ +#define LZMA_VLI_C(n) UINT64_C(n) + + +/** + * \brief Variable-length integer type + * + * Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is + * indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the + * underlaying integer type. + * + * lzma_vli will be uint64_t for the foreseeable future. If a bigger size + * is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will + * not overflow lzma_vli. This simplifies integer overflow detection. + */ +typedef uint64_t lzma_vli; + + +/** + * \brief Validate a variable-length integer + * + * This is useful to test that application has given acceptable values + * for example in the uncompressed_size and compressed_size variables. + * + * \return True if the integer is representable as VLI or if it + * indicates unknown value. + */ +#define lzma_vli_is_valid(vli) \ + ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN) + + +/** + * \brief Encode a variable-length integer + * + * This function has two modes: single-call and multi-call. Single-call mode + * encodes the whole integer at once; it is an error if the output buffer is + * too small. Multi-call mode saves the position in *vli_pos, and thus it is + * possible to continue encoding if the buffer becomes full before the whole + * integer has been encoded. + * + * \param vli Integer to be encoded + * \param vli_pos How many VLI-encoded bytes have already been written + * out. When starting to encode a new integer in + * multi-call mode, *vli_pos must be set to zero. + * To use single-call encoding, set vli_pos to NULL. + * \param out Beginning of the output buffer + * \param out_pos The next byte will be written to out[*out_pos]. + * \param out_size Size of the out buffer; the first byte into + * which no data is written to is out[out_size]. + * + * \return Slightly different return values are used in multi-call and + * single-call modes. + * + * Single-call (vli_pos == NULL): + * - LZMA_OK: Integer successfully encoded. + * - LZMA_PROG_ERROR: Arguments are not sane. This can be due + * to too little output space; single-call mode doesn't use + * LZMA_BUF_ERROR, since the application should have checked + * the encoded size with lzma_vli_size(). + * + * Multi-call (vli_pos != NULL): + * - LZMA_OK: So far all OK, but the integer is not + * completely written out yet. + * - LZMA_STREAM_END: Integer successfully encoded. + * - LZMA_BUF_ERROR: No output space was provided. + * - LZMA_PROG_ERROR: Arguments are not sane. + */ +extern LZMA_API(lzma_ret) lzma_vli_encode(lzma_vli vli, size_t *vli_pos, + uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow; + + +/** + * \brief Decode a variable-length integer + * + * Like lzma_vli_encode(), this function has single-call and multi-call modes. + * + * \param vli Pointer to decoded integer. The decoder will + * initialize it to zero when *vli_pos == 0, so + * application isn't required to initialize *vli. + * \param vli_pos How many bytes have already been decoded. When + * starting to decode a new integer in multi-call + * mode, *vli_pos must be initialized to zero. To + * use single-call decoding, set vli_pos to NULL. + * \param in Beginning of the input buffer + * \param in_pos The next byte will be read from in[*in_pos]. + * \param in_size Size of the input buffer; the first byte that + * won't be read is in[in_size]. + * + * \return Slightly different return values are used in multi-call and + * single-call modes. + * + * Single-call (vli_pos == NULL): + * - LZMA_OK: Integer successfully decoded. + * - LZMA_DATA_ERROR: Integer is corrupt. This includes hitting + * the end of the input buffer before the whole integer was + * decoded; providing no input at all will use LZMA_DATA_ERROR. + * - LZMA_PROG_ERROR: Arguments are not sane. + * + * Multi-call (vli_pos != NULL): + * - LZMA_OK: So far all OK, but the integer is not + * completely decoded yet. + * - LZMA_STREAM_END: Integer successfully decoded. + * - LZMA_DATA_ERROR: Integer is corrupt. + * - LZMA_BUF_ERROR: No input was provided. + * - LZMA_PROG_ERROR: Arguments are not sane. + */ +extern LZMA_API(lzma_ret) lzma_vli_decode(lzma_vli *vli, size_t *vli_pos, + const uint8_t *in, size_t *in_pos, size_t in_size) + lzma_nothrow; + + +/** + * \brief Get the number of bytes required to encode a VLI + * + * \return Number of bytes on success (1-9). If vli isn't valid, + * zero is returned. + */ +extern LZMA_API(uint32_t) lzma_vli_size(lzma_vli vli) + lzma_nothrow lzma_attr_pure; diff -Nru goldendict-1.0.2~git20130620/winlibs/include/lzma.h goldendict-1.5.0~ppa131019/winlibs/include/lzma.h --- goldendict-1.0.2~git20130620/winlibs/include/lzma.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/lzma.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,313 @@ +/** + * \file api/lzma.h + * \brief The public API of liblzma data compression library + * + * liblzma is a public domain general-purpose data compression library with + * a zlib-like API. The native file format is .xz, but also the old .lzma + * format and raw (no headers) streams are supported. Multiple compression + * algorithms (filters) are supported. Currently LZMA2 is the primary filter. + * + * liblzma is part of XZ Utils . XZ Utils includes + * a gzip-like command line tool named xz and some other tools. XZ Utils + * is developed and maintained by Lasse Collin. + * + * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK + * . + * + * The SHA-256 implementation is based on the public domain code found from + * 7-Zip , which has a modified version of the public + * domain SHA-256 code found from Crypto++ . + * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai. + */ + +/* + * Author: Lasse Collin + * + * This file has been put into the public domain. + * You can do whatever you want with this file. + */ + +#ifndef LZMA_H +#define LZMA_H + +/***************************** + * Required standard headers * + *****************************/ + +/* + * liblzma API headers need some standard types and macros. To allow + * including lzma.h without requiring the application to include other + * headers first, lzma.h includes the required standard headers unless + * they already seem to be included already or if LZMA_MANUAL_HEADERS + * has been defined. + * + * Here's what types and macros are needed and from which headers: + * - stddef.h: size_t, NULL + * - stdint.h: uint8_t, uint32_t, uint64_t, UINT32_C(n), uint64_C(n), + * UINT32_MAX, UINT64_MAX + * + * However, inttypes.h is a little more portable than stdint.h, although + * inttypes.h declares some unneeded things compared to plain stdint.h. + * + * The hacks below aren't perfect, specifically they assume that inttypes.h + * exists and that it typedefs at least uint8_t, uint32_t, and uint64_t, + * and that, in case of incomplete inttypes.h, unsigned int is 32-bit. + * If the application already takes care of setting up all the types and + * macros properly (for example by using gnulib's stdint.h or inttypes.h), + * we try to detect that the macros are already defined and don't include + * inttypes.h here again. However, you may define LZMA_MANUAL_HEADERS to + * force this file to never include any system headers. + * + * Some could argue that liblzma API should provide all the required types, + * for example lzma_uint64, LZMA_UINT64_C(n), and LZMA_UINT64_MAX. This was + * seen as an unnecessary mess, since most systems already provide all the + * necessary types and macros in the standard headers. + * + * Note that liblzma API still has lzma_bool, because using stdbool.h would + * break C89 and C++ programs on many systems. sizeof(bool) in C99 isn't + * necessarily the same as sizeof(bool) in C++. + */ + +#ifndef LZMA_MANUAL_HEADERS + /* + * I suppose this works portably also in C++. Note that in C++, + * we need to get size_t into the global namespace. + */ +# include + + /* + * Skip inttypes.h if we already have all the required macros. If we + * have the macros, we assume that we have the matching typedefs too. + */ +# if !defined(UINT32_C) || !defined(UINT64_C) \ + || !defined(UINT32_MAX) || !defined(UINT64_MAX) + /* + * MSVC has no C99 support, and thus it cannot be used to + * compile liblzma. The liblzma API has to still be usable + * from MSVC, so we need to define the required standard + * integer types here. + */ +# if defined(_WIN32) && defined(_MSC_VER) + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + typedef unsigned __int64 uint64_t; +# else + /* Use the standard inttypes.h. */ +# ifdef __cplusplus + /* + * C99 sections 7.18.2 and 7.18.4 specify + * that C++ implementations define the limit + * and constant macros only if specifically + * requested. Note that if you want the + * format macros (PRIu64 etc.) too, you need + * to define __STDC_FORMAT_MACROS before + * including lzma.h, since re-including + * inttypes.h with __STDC_FORMAT_MACROS + * defined doesn't necessarily work. + */ +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 +# endif +# endif + +# include +# endif + + /* + * Some old systems have only the typedefs in inttypes.h, and + * lack all the macros. For those systems, we need a few more + * hacks. We assume that unsigned int is 32-bit and unsigned + * long is either 32-bit or 64-bit. If these hacks aren't + * enough, the application has to setup the types manually + * before including lzma.h. + */ +# ifndef UINT32_C +# if defined(_WIN32) && defined(_MSC_VER) +# define UINT32_C(n) n ## UI32 +# else +# define UINT32_C(n) n ## U +# endif +# endif + +# ifndef UINT64_C +# if defined(_WIN32) && defined(_MSC_VER) +# define UINT64_C(n) n ## UI64 +# else + /* Get ULONG_MAX. */ +# include +# if ULONG_MAX == 4294967295UL +# define UINT64_C(n) n ## ULL +# else +# define UINT64_C(n) n ## UL +# endif +# endif +# endif + +# ifndef UINT32_MAX +# define UINT32_MAX (UINT32_C(4294967295)) +# endif + +# ifndef UINT64_MAX +# define UINT64_MAX (UINT64_C(18446744073709551615)) +# endif +# endif +#endif /* ifdef LZMA_MANUAL_HEADERS */ + + +/****************** + * LZMA_API macro * + ******************/ + +/* + * Some systems require that the functions and function pointers are + * declared specially in the headers. LZMA_API_IMPORT is for importing + * symbols and LZMA_API_CALL is to specify the calling convention. + * + * By default it is assumed that the application will link dynamically + * against liblzma. #define LZMA_API_STATIC in your application if you + * want to link against static liblzma. If you don't care about portability + * to operating systems like Windows, or at least don't care about linking + * against static liblzma on them, don't worry about LZMA_API_STATIC. That + * is, most developers will never need to use LZMA_API_STATIC. + * + * The GCC variants are a special case on Windows (Cygwin and MinGW). + * We rely on GCC doing the right thing with its auto-import feature, + * and thus don't use __declspec(dllimport). This way developers don't + * need to worry about LZMA_API_STATIC. Also the calling convention is + * omitted on Cygwin but not on MinGW. + */ +#ifndef LZMA_API_IMPORT +# if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__GNUC__) +# define LZMA_API_IMPORT __declspec(dllimport) +# else +# define LZMA_API_IMPORT +# endif +#endif + +#ifndef LZMA_API_CALL +# if defined(_WIN32) && !defined(__CYGWIN__) +# define LZMA_API_CALL __cdecl +# else +# define LZMA_API_CALL +# endif +#endif + +#ifndef LZMA_API +# define LZMA_API(type) LZMA_API_IMPORT type LZMA_API_CALL +#endif + + +/*********** + * nothrow * + ***********/ + +/* + * None of the functions in liblzma may throw an exception. Even + * the functions that use callback functions won't throw exceptions, + * because liblzma would break if a callback function threw an exception. + */ +#ifndef lzma_nothrow +# if defined(__cplusplus) +# define lzma_nothrow throw() +# elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) +# define lzma_nothrow __attribute__((__nothrow__)) +# else +# define lzma_nothrow +# endif +#endif + + +/******************** + * GNU C extensions * + ********************/ + +/* + * GNU C extensions are used conditionally in the public API. It doesn't + * break anything if these are sometimes enabled and sometimes not, only + * affects warnings and optimizations. + */ +#if __GNUC__ >= 3 +# ifndef lzma_attribute +# define lzma_attribute(attr) __attribute__(attr) +# endif + + /* warn_unused_result was added in GCC 3.4. */ +# ifndef lzma_attr_warn_unused_result +# if __GNUC__ == 3 && __GNUC_MINOR__ < 4 +# define lzma_attr_warn_unused_result +# endif +# endif + +#else +# ifndef lzma_attribute +# define lzma_attribute(attr) +# endif +#endif + + +#ifndef lzma_attr_pure +# define lzma_attr_pure lzma_attribute((__pure__)) +#endif + +#ifndef lzma_attr_const +# define lzma_attr_const lzma_attribute((__const__)) +#endif + +#ifndef lzma_attr_warn_unused_result +# define lzma_attr_warn_unused_result \ + lzma_attribute((__warn_unused_result__)) +#endif + + +/************** + * Subheaders * + **************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Subheaders check that this is defined. It is to prevent including + * them directly from applications. + */ +#define LZMA_H_INTERNAL 1 + +/* Basic features */ +#include "lzma/version.h" +#include "lzma/base.h" +#include "lzma/vli.h" +#include "lzma/check.h" + +/* Filters */ +#include "lzma/filter.h" +#include "lzma/bcj.h" +#include "lzma/delta.h" +#include "lzma/lzma.h" + +/* Container formats */ +#include "lzma/container.h" + +/* Advanced features */ +#include "lzma/stream_flags.h" +#include "lzma/block.h" +#include "lzma/index.h" +#include "lzma/index_hash.h" + +/* Hardware information */ +#include "lzma/hardware.h" + +/* + * All subheaders included. Undefine LZMA_H_INTERNAL to prevent applications + * re-including the subheaders. + */ +#undef LZMA_H_INTERNAL + +#ifdef __cplusplus +} +#endif + +#endif /* ifndef LZMA_H */ diff -Nru goldendict-1.0.2~git20130620/winlibs/include/stdint_msvc.h goldendict-1.5.0~ppa131019/winlibs/include/stdint_msvc.h --- goldendict-1.0.2~git20130620/winlibs/include/stdint_msvc.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/stdint_msvc.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,232 @@ +// ISO C9x compliant stdint.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2008 Alexander Chemeris +// +// 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 name of the author may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include + +// For Visual Studio 6 in C++ mode wrap include with 'extern "C++" {}' +// or compiler give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#if (_MSC_VER < 1300) && defined(__cplusplus) + extern "C++" { +#endif +# include +#if (_MSC_VER < 1300) && defined(__cplusplus) + } +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types +typedef __int8 int8_t; +typedef __int16 int16_t; +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; + +// 7.18.1.2 Minimum-width integer types +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; + +// 7.18.1.3 Fastest minimum-width integer types +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; + +// 7.18.1.4 Integer types capable of holding object pointers +#ifdef _WIN64 // [ + typedef __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + +// 7.18.1.5 Greatest-width integer types +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + + +// 7.18.2 Limits of specified-width integer types + +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 + +// 7.18.2.1 Limits of exact-width integer types +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX + +// 7.18.2.2 Limits of minimum-width integer types +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +// 7.18.2.3 Limits of fastest minimum-width integer types +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +// 7.18.2.4 Limits of integer types capable of holding object pointers +#ifdef _WIN64 // [ +# define INTPTR_MIN INT64_MIN +# define INTPTR_MAX INT64_MAX +# define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +# define INTPTR_MIN INT32_MIN +# define INTPTR_MAX INT32_MAX +# define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] + +// 7.18.2.5 Limits of greatest-width integer types +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +// 7.18.3 Limits of other integer types + +#ifdef _WIN64 // [ +# define PTRDIFF_MIN _I64_MIN +# define PTRDIFF_MAX _I64_MAX +#else // _WIN64 ][ +# define PTRDIFF_MIN _I32_MIN +# define PTRDIFF_MAX _I32_MAX +#endif // _WIN64 ] + +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX + +#ifndef SIZE_MAX // [ +# ifdef _WIN64 // [ +# define SIZE_MAX _UI64_MAX +# else // _WIN64 ][ +# define SIZE_MAX _UI32_MAX +# endif // _WIN64 ] +#endif // SIZE_MAX ] + +// WCHAR_MIN and WCHAR_MAX are also defined in +#ifndef WCHAR_MIN // [ +# define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +# define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] + +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX + +#endif // __STDC_LIMIT_MACROS ] + + +// 7.18.4 Limits of other integer types + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +#define INTMAX_C INT64_C +#define UINTMAX_C UINT64_C + +#endif // __STDC_CONSTANT_MACROS ] + + +#endif // _MSC_STDINT_H_ ] \ No newline at end of file diff -Nru goldendict-1.0.2~git20130620/winlibs/include/stub_msvc.h goldendict-1.5.0~ppa131019/winlibs/include/stub_msvc.h --- goldendict-1.0.2~git20130620/winlibs/include/stub_msvc.h 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/include/stub_msvc.h 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,14 @@ +#include + +#if !defined(strcasecmp) +# define strcasecmp _strcmpi +#endif +#if !defined(strncasecmp) +# define strncasecmp _strnicmp +#endif + +#ifndef _SSIZE_T +#define _SSIZE_T +#define ssize_t long +#endif + Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/winlibs/lib/libhunspell-1.3.2.a and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/winlibs/lib/libhunspell-1.3.2.a differ Binary files /tmp/oBbTHve1vL/goldendict-1.0.2~git20130620/winlibs/lib/liblzma.a and /tmp/U8gGz2C3AW/goldendict-1.5.0~ppa131019/winlibs/lib/liblzma.a differ diff -Nru goldendict-1.0.2~git20130620/winlibs/readme.txt goldendict-1.5.0~ppa131019/winlibs/readme.txt --- goldendict-1.0.2~git20130620/winlibs/readme.txt 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/winlibs/readme.txt 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,10 @@ +This directory holds precompiled third-party libraries and their header files +used to build GoldenDict under Windows. Those are supplied merely to ease +the build process. No other platform except Windows uses those files, so they +can safely be removed for Linux builds etc. +Due credit goes to those created those libraries. The libraries are +copyrighted by their responsive copyright holders and distributed in +compliance to their respective licenses. No modifications were made except +those needed in order to build the libraries correctly. The source codes +aren't shipped here merely to shrink the size of the distribution, and can +be downloaded from the original libraries' websites separately. diff -Nru goldendict-1.0.2~git20130620/wordbyauto.cc goldendict-1.5.0~ppa131019/wordbyauto.cc --- goldendict-1.0.2~git20130620/wordbyauto.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wordbyauto.cc 2013-10-18 14:32:58.000000000 +0000 @@ -1,6 +1,5 @@ #include #include -#include #include "wordbyauto.hh" #include "uiauto.hh" @@ -12,7 +11,7 @@ GDAutomationClient(); ~GDAutomationClient(); bool getWordAtPoint( POINT pt ); - WCHAR *getText() { return buffer; }; + WCHAR *getText() { return buffer; } private: WCHAR buffer[256]; IUIAutomation *pGDAutomation; diff -Nru goldendict-1.0.2~git20130620/wordfinder.cc goldendict-1.5.0~ppa131019/wordfinder.cc --- goldendict-1.0.2~git20130620/wordfinder.cc 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wordfinder.cc 2013-10-18 14:32:58.000000000 +0000 @@ -124,15 +124,24 @@ for( size_t y = 0; y < allWordWritings.size(); ++y ) { - sptr< Dictionary::WordSearchRequest > sr = - ( searchType == PrefixMatch ) ? - (*inputDicts)[ x ]->prefixMatch( allWordWritings[ y ], requestedMaxResults ) : - (*inputDicts)[ x ]->stemmedMatch( allWordWritings[ y ], stemmedMinLength, stemmedMaxSuffixVariation, requestedMaxResults ); - - connect( sr.get(), SIGNAL( finished() ), - this, SLOT( requestFinished() ), Qt::QueuedConnection ); - - queuedRequests.push_back( sr ); + try + { + sptr< Dictionary::WordSearchRequest > sr = + ( searchType == PrefixMatch ) ? + (*inputDicts)[ x ]->prefixMatch( allWordWritings[ y ], requestedMaxResults ) : + (*inputDicts)[ x ]->stemmedMatch( allWordWritings[ y ], stemmedMinLength, stemmedMaxSuffixVariation, requestedMaxResults ); + + connect( sr.get(), SIGNAL( finished() ), + this, SLOT( requestFinished() ), Qt::QueuedConnection ); + + queuedRequests.push_back( sr ); + } + catch( std::exception & e ) + { + qWarning() << "Word \"" << inputWord << "\" search error (" << e.what() << ") in \"" + << QString::fromUtf8( (*inputDicts)[ x ]->getName().c_str() ) + << "\""; + } } } diff -Nru goldendict-1.0.2~git20130620/wordlist.cc goldendict-1.5.0~ppa131019/wordlist.cc --- goldendict-1.0.2~git20130620/wordlist.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wordlist.cc 2013-10-18 14:32:58.000000000 +0000 @@ -6,9 +6,11 @@ #include "wordlist.hh" WordList::WordList( QWidget * parent ) : QListWidget( parent ) +, listItemDelegate( itemDelegate() ) { wordFinder = 0; translateLine = 0; + setItemDelegate( &listItemDelegate ); } void WordList::attachFinder( WordFinder * finder ) @@ -78,10 +80,8 @@ i->setFont( f ); } } - if (i->text().at(0).direction() == QChar::DirR) - i->setTextAlignment(Qt::AlignRight); - if (i->text().at(0).direction() == QChar::DirL) - i->setTextAlignment(Qt::AlignLeft); + + i->setTextAlignment(Qt::AlignLeft); } while ( count() > (int) results.size() ) @@ -114,6 +114,11 @@ 20000 , QPixmap( ":/icons/error.png" ) ); } + if( !results.empty() && results.front().first.isRightToLeft() ) + setLayoutDirection( Qt::RightToLeft ); + else + setLayoutDirection( Qt::LeftToRight ); + emit contentChanged(); } @@ -132,4 +137,3 @@ } } - diff -Nru goldendict-1.0.2~git20130620/wordlist.hh goldendict-1.5.0~ppa131019/wordlist.hh --- goldendict-1.0.2~git20130620/wordlist.hh 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wordlist.hh 2013-10-18 14:32:58.000000000 +0000 @@ -8,6 +8,7 @@ #include #include "wordfinder.hh" +#include "delegate.hh" class WordList : public QListWidget { @@ -34,6 +35,7 @@ WordFinder * wordFinder; QLineEdit * translateLine; + WordListItemDelegate listItemDelegate; }; #endif // WORDLIST_HH diff -Nru goldendict-1.0.2~git20130620/wstring_qt.cc goldendict-1.5.0~ppa131019/wstring_qt.cc --- goldendict-1.0.2~git20130620/wstring_qt.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wstring_qt.cc 2013-10-18 14:32:58.000000000 +0000 @@ -33,4 +33,10 @@ return wstring( ( const wchar * ) v.constData(), v.size() ); } + + wstring normalize( const wstring & str ) + { + return gd::toWString( gd::toQString( str ).normalized( QString::NormalizationForm_C ) ); + } + } diff -Nru goldendict-1.0.2~git20130620/wstring_qt.hh goldendict-1.5.0~ppa131019/wstring_qt.hh --- goldendict-1.0.2~git20130620/wstring_qt.hh 2013-06-20 19:00:45.000000000 +0000 +++ goldendict-1.5.0~ppa131019/wstring_qt.hh 2013-10-18 14:32:58.000000000 +0000 @@ -14,6 +14,7 @@ { QString toQString( wstring const & ); wstring toWString( QString const & ); + wstring normalize( wstring const & ); } #endif diff -Nru goldendict-1.0.2~git20130620/xdxf.cc goldendict-1.5.0~ppa131019/xdxf.cc --- goldendict-1.0.2~git20130620/xdxf.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/xdxf.cc 2013-10-18 14:32:58.000000000 +0000 @@ -25,12 +25,17 @@ #include "indexedzip.hh" #include "filetype.hh" +#ifdef _MSC_VER +#include +#endif + #include #include #include #include #include #include +#include #include #include @@ -94,7 +99,11 @@ // resource index. uint32_t zipIndexRootOffset; uint32_t revisionNumber; // Format revision -} __attribute__((packed)); +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; bool indexIsOldOrBad( string const & indexFile ) { @@ -434,25 +443,33 @@ string headword, articleText; headword = chain[ x ].word; - dict.loadArticle( chain[ x ].articleOffset, articleText ); - // Ok. Now, does it go to main articles, or to alternate ones? We list - // main ones first, and alternates after. + try + { + dict.loadArticle( chain[ x ].articleOffset, articleText ); + + // Ok. Now, does it go to main articles, or to alternate ones? We list + // main ones first, and alternates after. - // We do the case-folded comparison here. + // We do the case-folded comparison here. - wstring headwordStripped = - Folding::applySimpleCaseOnly( Utf8::decode( headword ) ); + wstring headwordStripped = + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ); - multimap< wstring, pair< string, string > > & mapToUse = - ( wordCaseFolded == headwordStripped ) ? - mainArticles : alternateArticles; + multimap< wstring, pair< string, string > > & mapToUse = + ( wordCaseFolded == headwordStripped ) ? + mainArticles : alternateArticles; - mapToUse.insert( pair< wstring, pair< string, string > >( - Folding::applySimpleCaseOnly( Utf8::decode( headword ) ), - pair< string, string >( headword, articleText ) ) ); + mapToUse.insert( pair< wstring, pair< string, string > >( + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ), + pair< string, string >( headword, articleText ) ) ); - articlesIncluded.insert( chain[ x ].articleOffset ); + articlesIncluded.insert( chain[ x ].articleOffset ); + } + catch( std::exception &ex ) + { + qWarning( "XDXF: Failed loading article from \"%s\", reason: %s\n", dict.getName().c_str(), ex.what() ); + } } if ( mainArticles.empty() && alternateArticles.empty() ) @@ -524,7 +541,10 @@ } if ( &chunk.front() + chunk.size() - propertiesData < 9 ) - throw exCorruptedIndex(); + { + articleText = string( "
Index seems corrupted
" ); + return; + } unsigned char fType = (unsigned char) *propertiesData; @@ -678,12 +698,27 @@ return result; } +namespace { + +/// Deal with Qt 4.5 incompatibility +QString readElementText( QXmlStreamReader & stream ) +{ +#if QT_VERSION >= 0x040600 + return stream.readElementText( QXmlStreamReader::SkipChildElements ); +#else + return stream.readElementText(); +#endif +} + +} + + void addAllKeyTags( QXmlStreamReader & stream, list< QString > & words ) { // todo implement support for tag , that overrides the article sorting order if ( stream.name() == "k" ) { - words.push_back( stream.readElementText( QXmlStreamReader::SkipChildElements ) ); + words.push_back( readElementText( stream ) ); return; } @@ -756,8 +791,8 @@ if ( words.empty() ) { // Nothing to index, this article didn't have any tags - DPRINTF( "Warning: no tags found in an article at offset 0x%x, article skipped.\n", - (unsigned) articleOffset ); + qWarning( "Warning: no tags found in an article at offset 0x%x, article skipped.\n", + (unsigned) articleOffset ); } else { @@ -956,13 +991,11 @@ hasAnyData = true; } - catch( File::Ex & ) + catch( std::exception &ex ) { - // No such resource -- we don't set the hasAnyData flag then - } - catch( Utf8::exCantDecode ) - { - // Failed to decode some utf8 -- probably the resource name is no good + qWarning( "XDXF: Failed loading resource \"%s\" for \"%s\", reason: %s\n", + resourceName.c_str(), dict.getName().c_str(), ex.what() ); + // Resource not loaded -- we don't set the hasAnyData flag then } finish(); @@ -1021,6 +1054,8 @@ { // Building the index + qDebug( "Xdxf: Building the index for dictionary: %s\n", i->c_str() ); + //initializing.indexingDictionary( nameFromFileName( dictFiles[ 0 ] ) ); File::Class idx( indexFile, "wb" ); @@ -1156,12 +1191,12 @@ stream.readNext(); if ( stream.isStartElement() && stream.name() == "abbr_k" ) { - s = stream.readElementText( QXmlStreamReader::SkipChildElements ); + s = readElementText( stream ); keys.push_back( gd::toWString( s ) ); } else if ( stream.isStartElement() && stream.name() == "abbr_v" ) { - s = stream.readElementText( QXmlStreamReader::SkipChildElements ); + s = readElementText( stream ); value = Utf8::encode( Folding::trimWhitespace( gd::toWString( s ) ) ); for( list< wstring >::iterator i = keys.begin(); i != keys.end(); ++i ) { @@ -1180,12 +1215,12 @@ stream.readNext(); if ( stream.isStartElement() && stream.name() == "k" ) { - s = stream.readElementText( QXmlStreamReader::SkipChildElements ); + s = readElementText( stream ); keys.push_back( gd::toWString( s ) ); } else if ( stream.isStartElement() && stream.name() == "v" ) { - s = stream.readElementText( QXmlStreamReader::SkipChildElements ); + s = readElementText( stream ); value = Utf8::encode( Folding::trimWhitespace( gd::toWString( s ) ) ); for( list< wstring >::iterator i = keys.begin(); i != keys.end(); ++i ) { @@ -1299,9 +1334,9 @@ if ( stream.hasError() ) { - DPRINTF( "Warning: %s had a parse error %ls at line %lu, and therefore was indexed only up to the point of error.", - dictFiles[ 0 ].c_str(), stream.errorString().toStdWString().c_str(), - (unsigned long) stream.lineNumber() ); + qWarning( "Warning: %s had a parse error %ls at line %lu, and therefore was indexed only up to the point of error.", + dictFiles[ 0 ].c_str(), stream.errorString().toStdWString().c_str(), + (unsigned long) stream.lineNumber() ); } } @@ -1311,8 +1346,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Xdxf dictionary reading failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Xdxf dictionary reading failed: %s, error: %s\n", + i->c_str(), e.what() ); } } diff -Nru goldendict-1.0.2~git20130620/xdxf2html.cc goldendict-1.5.0~ppa131019/xdxf2html.cc --- goldendict-1.0.2~git20130620/xdxf2html.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/xdxf2html.cc 2013-10-18 14:32:58.000000000 +0000 @@ -13,6 +13,7 @@ #include "filetype.hh" #include "htmlescape.hh" #include +#include namespace Xdxf2Html { @@ -110,15 +111,20 @@ string in_data; if( type == XDXF ) - in_data = "
"; + { + in_data = "
isToLanguageRTL() ) + in_data += " dir=\"rtl\""; + in_data += ">"; + } else in_data = "
"; in_data += inConverted + "
"; if( !dd.setContent( QByteArray( in_data.c_str() ), false, &errorStr, &errorLine, &errorColumn ) ) { - FDPRINTF( stderr, "Xdxf2html error, xml parse failed: %s at %d,%d\n", errorStr.toLocal8Bit().constData(), errorLine, errorColumn ); - FDPRINTF( stderr, "The input was: %s\n", in.c_str() ); + qWarning( "Xdxf2html error, xml parse failed: %s at %d,%d\n", errorStr.toLocal8Bit().constData(), errorLine, errorColumn ); + qWarning( "The input was: %s\n", in.c_str() ); return in; } @@ -161,6 +167,8 @@ { el.setTagName( "div" ); el.setAttribute( "class", "xdxf_headwords" ); + if( dictPtr->isFromLanguageRTL() != dictPtr->isToLanguageRTL() ) + el.setAttribute( "dir", dictPtr->isFromLanguageRTL() ? "rtl" : "ltr" ); } } diff -Nru goldendict-1.0.2~git20130620/zim.cc goldendict-1.5.0~ppa131019/zim.cc --- goldendict-1.0.2~git20130620/zim.cc 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/zim.cc 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,1183 @@ +/* This file is (c) 2012 Abs62 + * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ + +#ifdef MAKE_ZIM_SUPPORT + +#include "zim.hh" +#include "btreeidx.hh" +#include "fsencoding.hh" +#include "folding.hh" +#include "dprintf.hh" +#include "utf8.hh" +#include "decompress.hh" +#include "langcoder.hh" +#include "wstring_qt.hh" +#include "filetype.hh" +#include "file.hh" + +#ifdef _MSC_VER +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +namespace Zim { + +using std::string; +using std::map; +using std::vector; +using std::multimap; +using std::pair; +using std::set; +using gd::wstring; + +using BtreeIndexing::WordArticleLink; +using BtreeIndexing::IndexedWords; +using BtreeIndexing::IndexInfo; + +DEF_EX_STR( exNotZimFile, "Not an Zim file", Dictionary::Ex ) +DEF_EX_STR( exCantReadFile, "Can't read file", Dictionary::Ex ) + +//namespace { + +class ZimFile; + +#pragma pack( push, 1 ) + +enum CompressionType +{ + Default = 0, None, Zlib, Bzip2, Lzma2 +}; + +/// Zim file header +struct ZIM_header +{ + quint32 magicNumber; + quint32 version; + quint8 uuid[ 16 ]; + quint32 articleCount; + quint32 clusterCount; + quint64 urlPtrPos; + quint64 titlePtrPos; + quint64 clusterPtrPos; + quint64 mimeListPos; + quint32 mainPage; + quint32 layoutPage; + quint64 checksumPos; +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; + +struct ArticleEntry +{ + quint16 mimetype; + quint8 parameterLen; + char nameSpace; + quint32 revision; + quint32 clusterNumber; + quint32 blobNumber; +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; + +struct RedirectEntry +{ + quint16 mimetype; + quint8 parameterLen; + char nameSpace; + quint32 revision; + quint32 redirectIndex; +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; + +enum +{ + Signature = 0x584D495A, // ZIMX on little-endian, XMIZ on big-endian + CurrentFormatVersion = 1 + BtreeIndexing::FormatVersion + Folding::Version +}; + +struct IdxHeader +{ + quint32 signature; // First comes the signature, ZIMX + quint32 formatVersion; // File format version (CurrentFormatVersion) + quint32 indexBtreeMaxElements; // Two fields from IndexInfo + quint32 indexRootOffset; + quint32 resourceIndexBtreeMaxElements; // Two fields from IndexInfo + quint32 resourceIndexRootOffset; + quint32 wordCount; + quint32 articleCount; + quint32 namePtr; + quint32 descriptionPtr; + quint32 langFrom; // Source language + quint32 langTo; // Target language +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; + +#pragma pack( pop ) + +// Class for support of split zim files + +class ZimFile +{ + QVector< QFile * > files; + QVector< quint64 > offsets; + int currentFile; + +public: + + ZimFile(); + ZimFile( const QString & name ); + ~ZimFile(); + + void setFileName( const QString & name ); + void getFilenames( vector< string > & names ); + bool open( QFile::OpenMode mode ); + void close(); + bool seek( quint64 pos ); + qint64 read( char * data, qint64 maxSize ); + QByteArray read( qint64 maxSize ); + bool getChar( char * c ); + qint64 size() + { return files.isEmpty() ? 0 : offsets.last() + files.last()->size(); } +}; + +ZimFile::ZimFile() : + currentFile( 0 ) +{ +} + +ZimFile::ZimFile( const QString & name ) : + currentFile( 0 ) +{ + setFileName( name ); +} + +ZimFile::~ZimFile() +{ + close(); +} + +void ZimFile::setFileName( const QString & name ) +{ + close(); + + files.append( new QFile( name ) ); + offsets.append( 0 ); + + if( name.endsWith( ".zimaa", Qt::CaseInsensitive ) ) + { + QString fname = name; + + for( int i = 0; i < 26; i++ ) + { + fname[ fname.size() - 2 ] = (char)( 'a' + i ); + + int j; + for( j = 1; j < 26; j++ ) + { + fname[ fname.size() - 1 ] = (char)( 'a' + j ); + if( !QFileInfo( fname ).isFile() ) + break; + + quint64 offset = offsets.last() + files.last()->size(); + + files.append( new QFile( fname ) ); + offsets.append( offset ); + } + + if( j < 26 ) + break; + } + } +} + +void ZimFile::close() +{ + for( QVector< QFile * >::const_iterator i = files.begin(); i != files.end(); ++i ) + { + (*i)->close(); + delete (*i); + } + + files.clear(); + offsets.clear(); + + currentFile = 0; +} + +void ZimFile::getFilenames( vector< string > &names ) +{ + for( QVector< QFile const * >::const_iterator i = files.begin(); i != files.end(); ++i ) + names.push_back( FsEncoding::encode( (*i)->fileName() ) ); +} + +bool ZimFile::open( QFile::OpenMode mode ) +{ + for( QVector< QFile * >::iterator i = files.begin(); i != files.end(); ++i ) + if( !(*i)->open( mode ) ) + { + close(); + return false; + } + + return true; +} + +bool ZimFile::seek( quint64 pos ) +{ + int fileNom; + + for( fileNom = 0; fileNom < offsets.size() - 1; fileNom++ ) + if( pos < offsets.at( fileNom + 1 ) ) + break; + + pos -= offsets.at( fileNom ); + + currentFile = fileNom; + return files.at( fileNom )->seek( pos ); +} + +qint64 ZimFile::read( char *data, qint64 maxSize ) +{ + quint64 bytesReaded = 0; + for( int i = currentFile; i < files.size(); i++ ) + { + if( i != currentFile ) + files.at( i )->seek( 0 ); + + qint64 ret = files.at( i )->read( data + bytesReaded, maxSize ); + if( ret < 0 ) + break; + + bytesReaded += ret; + maxSize -= ret; + + if( maxSize <= 0 ) + break; + } + return bytesReaded; +} + +QByteArray ZimFile::read( qint64 maxSize ) +{ + QByteArray data; + data.resize( maxSize ); + + qint64 ret = read( data.data(), maxSize ); + + if( ret != maxSize ) + data.resize( ret ); + + return data; +} + +bool ZimFile::getChar( char *c ) +{ + char ch; + return read( c ? c : &ch, 1 ) == 1; +} + +// Some supporting functions + +bool indexIsOldOrBad( string const & indexFile ) +{ + File::Class idx( indexFile, "rb" ); + + IdxHeader header; + + return idx.readRecords( &header, sizeof( header ), 1 ) != 1 || + header.signature != Signature || + header.formatVersion != CurrentFormatVersion; +} + +quint32 readArticle( ZimFile & file, ZIM_header & header, uint32_t articleNumber, string & result, + set< quint32 > * loadedArticles = NULL ) +{ + while( 1 ) + { + if( articleNumber >= header.articleCount ) + break; + + file.seek( header.urlPtrPos + (quint64)articleNumber * 8 ); + quint64 pos; + if( file.read( reinterpret_cast< char * >( &pos ), sizeof(pos) ) != sizeof(pos) ) + break; + + // Read article info + + quint16 mimetype; + + file.seek( pos ); + if( file.read( reinterpret_cast< char * >( &mimetype ), sizeof(mimetype) ) != sizeof(mimetype) ) + break; + + if( mimetype == 0xFFFF ) // Redirect to other article + { + RedirectEntry redEntry; + if( file.read( reinterpret_cast< char * >( &redEntry ) + 2, sizeof(redEntry) - 2 ) != sizeof(redEntry) - 2 ) + break; + if( articleNumber == redEntry.redirectIndex ) + break; + articleNumber = redEntry.redirectIndex; + continue; + } + + if( loadedArticles && loadedArticles->find( articleNumber ) != loadedArticles->end() ) + break; + + ArticleEntry artEntry; + artEntry.mimetype = mimetype; + if( file.read( reinterpret_cast< char * >( &artEntry ) + 2, sizeof(artEntry) - 2 ) != sizeof(artEntry) - 2 ) + break; + + // Read cluster pointers + + quint64 clusters[ 2 ]; + file.seek( header.clusterPtrPos + (quint64)artEntry.clusterNumber * 8 ); + if( file.read( reinterpret_cast< char * >( clusters ), sizeof(clusters) ) != sizeof(clusters) ) + break; + + // Calculate cluster size + + quint64 clusterSize; + if( artEntry.clusterNumber < header.clusterCount - 1 ) + clusterSize = clusters[ 1 ] - clusters[ 0 ]; + else + clusterSize = file.size() - clusters[ 0 ]; + + // Read cluster data + + file.seek( clusters[ 0 ] ); + + char compressionType; + if( !file.getChar( &compressionType ) ) + break; + + string decompressedData; + + QByteArray data = file.read( clusterSize ); + if( compressionType == Default || compressionType == None ) + decompressedData = string( data.data(), data.size() ); + else + if( compressionType == Zlib ) + decompressedData = decompressZlib( data.constData(), data.size() ); + else + if( compressionType == Bzip2 ) + decompressedData = decompressBzip2( data.constData(), data.size() ); + else + if( compressionType == Lzma2 ) + decompressedData = decompressLzma2( data.constData(), data.size() ); + else + break; + + // Take article data from cluster + + quint32 blobCount; + memcpy( &blobCount, decompressedData.data(), sizeof(blobCount) ); + if( artEntry.blobNumber > blobCount ) + break; + + quint32 offsets[ 2 ]; + memcpy( offsets, decompressedData.data() + artEntry.blobNumber * 4, sizeof(offsets) ); + quint32 size = offsets[ 1 ] - offsets[ 0 ]; + + result.clear(); + result.append( decompressedData, offsets[ 0 ], size ); + + return articleNumber; + } + return 0xFFFFFFFF; +} + +// ZimDictionary + +class ZimDictionary: public BtreeIndexing::BtreeDictionary +{ + Mutex idxMutex; + Mutex zimMutex, idxResourceMutex; + File::Class idx; + BtreeIndex resourceIndex; + IdxHeader idxHeader; + string dictionaryName; + ZimFile df; + ZIM_header zimHeader; + + public: + + ZimDictionary( string const & id, string const & indexFile, + vector< string > const & dictionaryFiles ); + + ~ZimDictionary(); + + virtual string getName() throw() + { return dictionaryName; } + + virtual map< Dictionary::Property, string > getProperties() throw() + { return map< Dictionary::Property, string >(); } + + virtual unsigned long getArticleCount() throw() + { return idxHeader.articleCount; } + + virtual unsigned long getWordCount() throw() + { return idxHeader.wordCount; } + + inline virtual quint32 getLangFrom() const + { return idxHeader.langFrom; } + + inline virtual quint32 getLangTo() const + { return idxHeader.langTo; } + + virtual sptr< Dictionary::DataRequest > getArticle( wstring const &, + vector< wstring > const & alts, + wstring const & ) + throw( std::exception ); + + virtual sptr< Dictionary::DataRequest > getResource( string const & name ) + throw( std::exception ); + + virtual QString const& getDescription(); + + /// Loads the resource. + void loadResource( std::string &resourceName, string & data ); + +protected: + + virtual void loadIcon() throw(); + +private: + + /// Loads the article. + quint32 loadArticle( quint32 address, + string & articleText, + set< quint32 > * loadedArticles ); + + string convert( string const & in_data ); + friend class ZimArticleRequest; + friend class ZimResourceRequest; +}; + +ZimDictionary::ZimDictionary( string const & id, + string const & indexFile, + vector< string > const & dictionaryFiles ): + BtreeDictionary( id, dictionaryFiles ), + idx( indexFile, "rb" ), + idxHeader( idx.read< IdxHeader >() ), + df( FsEncoding::decode( dictionaryFiles[ 0 ].c_str() ) ) +{ + // Open data file + + df.open( QFile::ReadOnly ); + memset( &zimHeader, 0, sizeof(zimHeader) ); + df.read( reinterpret_cast< char * >( &zimHeader ), sizeof( zimHeader ) ); + + // Initialize the indexes + + openIndex( IndexInfo( idxHeader.indexBtreeMaxElements, + idxHeader.indexRootOffset ), + idx, idxMutex ); + + resourceIndex.openIndex( IndexInfo( idxHeader.resourceIndexBtreeMaxElements, + idxHeader.resourceIndexRootOffset ), + idx, idxResourceMutex ); + + // Read dictionary name + + if( idxHeader.namePtr == 0xFFFFFFFF ) + { + QString name = QDir::fromNativeSeparators( FsEncoding::decode( dictionaryFiles[ 0 ].c_str() ) ); + int n = name.lastIndexOf( '/' ); + dictionaryName = string( name.mid( n + 1 ).toUtf8().constData() ); + } + else + { + readArticle( df, zimHeader, idxHeader.namePtr, dictionaryName ); + } +} + +ZimDictionary::~ZimDictionary() +{ + df.close(); +} + +void ZimDictionary::loadIcon() throw() +{ + if ( dictionaryIconLoaded ) + return; + + QString fileName = + QDir::fromNativeSeparators( FsEncoding::decode( getDictionaryFilenames()[ 0 ].c_str() ) ); + + // Remove the extension + fileName.chop( 3 ); + + if( !loadIconFromFile( fileName ) ) + { + // Load failed -- use default icons + dictionaryNativeIcon = dictionaryIcon = QIcon(":/icons/icon32_zim.png"); + } + + dictionaryIconLoaded = true; +} + +quint32 ZimDictionary::loadArticle( quint32 address, + string & articleText, + set< quint32 > * loadedArticles ) +{ +quint32 ret; + { + Mutex::Lock _( zimMutex ); + ret = readArticle( df, zimHeader, address, articleText, loadedArticles ); + } + articleText = convert( articleText ); + return ret; +} + +string ZimDictionary::convert( const string & in ) +{ + QString text = QString::fromUtf8( in.c_str() ); + + text.replace( QRegExp( "<\\s*body\\s*([^>]*)background:([^;\"]*)" ), + QString( "]*)src=\"/" ), + QString( "<\\1 \\2src=\"bres://%1/").arg( getId().c_str() ) ); + + text.replace( QRegExp( "<\\s*link\\s*([^>]*)href=\"/" ), + QString( "]*)href=\"/[^\"]*\"\\s*title=\"([^\"]*)\"" ), + QString( "
]*)href=\"/A/([^\"]*)\"" ), + QString( ""; + + return text.toUtf8().data(); +} + +void ZimDictionary::loadResource( std::string & resourceName, string & data ) +{ + vector< WordArticleLink > link; + string resData; + + link = resourceIndex.findArticles( Utf8::decode( resourceName ) ); + + if( link.empty() ) + return; + + { + Mutex::Lock _( zimMutex ); + readArticle( df, zimHeader, link[ 0 ].articleOffset, data ); + } +} + +QString const& ZimDictionary::getDescription() +{ + if( !dictionaryDescription.isEmpty() || idxHeader.descriptionPtr == 0xFFFFFFFF ) + return dictionaryDescription; + + string str; + { + Mutex::Lock _( zimMutex ); + readArticle( df, zimHeader, idxHeader.descriptionPtr, str ); + } + + if( !str.empty() ) + dictionaryDescription = QString::fromUtf8( str.c_str(), str.size() ); + + return dictionaryDescription; +} + +/// ZimDictionary::getArticle() + +class ZimArticleRequest; + +class ZimArticleRequestRunnable: public QRunnable +{ + ZimArticleRequest & r; + QSemaphore & hasExited; + +public: + + ZimArticleRequestRunnable( ZimArticleRequest & r_, + QSemaphore & hasExited_ ): r( r_ ), + hasExited( hasExited_ ) + {} + + ~ZimArticleRequestRunnable() + { + hasExited.release(); + } + + virtual void run(); +}; + +class ZimArticleRequest: public Dictionary::DataRequest +{ + friend class ZimArticleRequestRunnable; + + wstring word; + vector< wstring > alts; + ZimDictionary & dict; + + QAtomicInt isCancelled; + QSemaphore hasExited; + +public: + + ZimArticleRequest( wstring const & word_, + vector< wstring > const & alts_, + ZimDictionary & dict_ ): + word( word_ ), alts( alts_ ), dict( dict_ ) + { + QThreadPool::globalInstance()->start( + new ZimArticleRequestRunnable( *this, hasExited ) ); + } + + void run(); // Run from another thread by ZimArticleRequestRunnable + + virtual void cancel() + { + isCancelled.ref(); + } + + ~ZimArticleRequest() + { + isCancelled.ref(); + hasExited.acquire(); + } +}; + +void ZimArticleRequestRunnable::run() +{ + r.run(); +} + +void ZimArticleRequest::run() +{ + if ( isCancelled ) + { + finish(); + return; + } + + vector< WordArticleLink > chain = dict.findArticles( word ); + + for( unsigned x = 0; x < alts.size(); ++x ) + { + /// Make an additional query for each alt + + vector< WordArticleLink > altChain = dict.findArticles( alts[ x ] ); + + chain.insert( chain.end(), altChain.begin(), altChain.end() ); + } + + multimap< wstring, pair< string, string > > mainArticles, alternateArticles; + + set< quint32 > articlesIncluded; // Some synonims make it that the articles + // appear several times. We combat this + // by only allowing them to appear once. + + wstring wordCaseFolded = Folding::applySimpleCaseOnly( word ); + + for( unsigned x = 0; x < chain.size(); ++x ) + { + if ( isCancelled ) + { + finish(); + return; + } + + // Now grab that article + + string headword, articleText; + + headword = chain[ x ].word; + + quint32 articleNumber = 0xFFFFFFFF; + try + { + articleNumber = dict.loadArticle( chain[ x ].articleOffset, articleText, &articlesIncluded ); + } + catch(...) + { + } + + if( articleNumber == 0xFFFFFFFF ) + continue; // No article loaded + + if ( articlesIncluded.find( articleNumber ) != articlesIncluded.end() ) + continue; // We already have this article in the body. + + // Ok. Now, does it go to main articles, or to alternate ones? We list + // main ones first, and alternates after. + + // We do the case-folded comparison here. + + wstring headwordStripped = + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ); + + multimap< wstring, pair< string, string > > & mapToUse = + ( wordCaseFolded == headwordStripped ) ? + mainArticles : alternateArticles; + + mapToUse.insert( pair< wstring, pair< string, string > >( + Folding::applySimpleCaseOnly( Utf8::decode( headword ) ), + pair< string, string >( headword, articleText ) ) ); + + articlesIncluded.insert( articleNumber ); + } + + if ( mainArticles.empty() && alternateArticles.empty() ) + { + // No such word + finish(); + return; + } + + string result; + + // See Issue #271: A mechanism to clean-up invalid HTML cards. + string cleaner = """""""""""" + """""""""""" + "" + "" + ""; + + multimap< wstring, pair< string, string > >::const_iterator i; + + + for( i = mainArticles.begin(); i != mainArticles.end(); ++i ) + { + result += "
"; + result += "

"; + result += i->second.first; + result += "

"; + result += i->second.second; + result += cleaner + "
"; + } + + for( i = alternateArticles.begin(); i != alternateArticles.end(); ++i ) + { + result += "
"; + result += "

"; + result += i->second.first; + result += "

"; + result += i->second.second; + result += cleaner + "
"; + } + + Mutex::Lock _( dataMutex ); + + data.resize( result.size() ); + + memcpy( &data.front(), result.data(), result.size() ); + + hasAnyData = true; + + finish(); +} + +sptr< Dictionary::DataRequest > ZimDictionary::getArticle( wstring const & word, + vector< wstring > const & alts, + wstring const & ) + throw( std::exception ) +{ + return new ZimArticleRequest( word, alts, *this ); +} + +//// ZimDictionary::getResource() + +class ZimResourceRequest; + +class ZimResourceRequestRunnable: public QRunnable +{ + ZimResourceRequest & r; + QSemaphore & hasExited; + +public: + + ZimResourceRequestRunnable( ZimResourceRequest & r_, + QSemaphore & hasExited_ ): r( r_ ), + hasExited( hasExited_ ) + {} + + ~ZimResourceRequestRunnable() + { + hasExited.release(); + } + + virtual void run(); +}; + +class ZimResourceRequest: public Dictionary::DataRequest +{ + friend class ZimResourceRequestRunnable; + + ZimDictionary & dict; + + string resourceName; + + QAtomicInt isCancelled; + QSemaphore hasExited; + +public: + + ZimResourceRequest( ZimDictionary & dict_, + string const & resourceName_ ): + dict( dict_ ), + resourceName( resourceName_ ) + { + QThreadPool::globalInstance()->start( + new ZimResourceRequestRunnable( *this, hasExited ) ); + } + + void run(); // Run from another thread by ZimResourceRequestRunnable + + virtual void cancel() + { + isCancelled.ref(); + } + + ~ZimResourceRequest() + { + isCancelled.ref(); + hasExited.acquire(); + } +}; + +void ZimResourceRequestRunnable::run() +{ + r.run(); +} + +void ZimResourceRequest::run() +{ + // Some runnables linger enough that they are cancelled before they start + if ( isCancelled ) + { + finish(); + return; + } + + try + { + string resource; + dict.loadResource( resourceName, resource ); + if( resource.empty() ) + throw File::Ex(); + + if( Filetype::isNameOfCSS( resourceName ) ) + { + QString css = QString::fromUtf8( resource.data(), resource.size() ); + dict.isolateCSS( css, ".zimdict" ); + QByteArray bytes = css.toUtf8(); + data.resize( bytes.size() ); + memcpy( &data.front(), bytes.constData(), bytes.size() ); + } + else + if ( Filetype::isNameOfTiff( resourceName ) ) + { + // Convert it + + dataMutex.lock(); + + QImage img = QImage::fromData( reinterpret_cast< const uchar * >( resource.data() ), resource.size() ); + + dataMutex.unlock(); + + if ( !img.isNull() ) + { + // Managed to load -- now store it back as BMP + + QByteArray ba; + QBuffer buffer( &ba ); + buffer.open( QIODevice::WriteOnly ); + img.save( &buffer, "BMP" ); + + Mutex::Lock _( dataMutex ); + + data.resize( buffer.size() ); + + memcpy( &data.front(), buffer.data(), data.size() ); + } + } + else + { + Mutex::Lock _( dataMutex ); + data.resize( resource.size() ); + memcpy( &data.front(), resource.data(), data.size() ); + } + + hasAnyData = true; + } + catch( std::exception &ex ) + { + qWarning( "ZIM: Failed loading resource \"%s\" from \"%s\", reason: %s\n", + resourceName.c_str(), dict.getName().c_str(), ex.what() ); + // Resource not loaded -- we don't set the hasAnyData flag then + } + + finish(); +} + +sptr< Dictionary::DataRequest > ZimDictionary::getResource( string const & name ) + throw( std::exception ) +{ + return new ZimResourceRequest( *this, name ); +} + +//} // anonymous namespace + +vector< sptr< Dictionary::Class > > makeDictionaries( + vector< string > const & fileNames, + string const & indicesDir, + Dictionary::Initializing & initializing ) + throw( std::exception ) +{ + vector< sptr< Dictionary::Class > > dictionaries; + + for( vector< string >::const_iterator i = fileNames.begin(); i != fileNames.end(); + ++i ) + { + // Skip files with the extensions different to .zim to speed up the + // scanning + + QString firstName = QDir::fromNativeSeparators( FsEncoding::decode( i->c_str() ) ); + if( !firstName.endsWith( ".zim") && !firstName.endsWith( ".zimaa" ) ) + continue; + + // Got the file -- check if we need to rebuid the index + + ZimFile df( firstName ); + + vector< string > dictFiles; + df.getFilenames( dictFiles ); + + string dictId = Dictionary::makeDictionaryId( dictFiles ); + + string indexFile = indicesDir + dictId; + + try + { + if ( Dictionary::needToRebuildIndex( dictFiles, indexFile ) || + indexIsOldOrBad( indexFile ) ) + { + qDebug( "Zim: Building the index for dictionary: %s\n", i->c_str() ); + + ZIM_header zh; + + unsigned articleCount = 0; + unsigned wordCount = 0; + + df.open( QFile::ReadOnly ); + + qint64 ret = df.read( reinterpret_cast< char * >( &zh ), sizeof( zh ) ); + if( ret != sizeof( zh ) ) + throw exCantReadFile( i->c_str() ); + + if( zh.magicNumber != 0x44D495A ) + throw exNotZimFile( i->c_str() ); + + { + int n = firstName.lastIndexOf( '/' ); + initializing.indexingDictionary( firstName.mid( n + 1 ).toUtf8().constData() ); + } + + File::Class idx( indexFile, "wb" ); + IdxHeader idxHeader; + memset( &idxHeader, 0, sizeof( idxHeader ) ); + idxHeader.namePtr = 0xFFFFFFFF; + idxHeader.descriptionPtr = 0xFFFFFFFF; + + // We write a dummy header first. At the end of the process the header + // will be rewritten with the right values. + + idx.write( idxHeader ); + + IndexedWords indexedWords, indexedResources; + + QByteArray artEntries; + df.seek( zh.urlPtrPos ); + artEntries = df.read( (quint64)zh.articleCount * 8 ); + + QVector< quint64 > clusters; + clusters.reserve( zh.clusterCount ); + df.seek( zh.clusterPtrPos ); + { + QByteArray data = df.read( (quint64)zh.clusterCount * 8 ); + for( unsigned n = 0; n < zh.clusterCount; n++ ) + clusters.append( *( reinterpret_cast< const quint64 * >( data.constData() ) + n ) ); + } + + const quint64 * ptr; + quint16 mimetype; + ArticleEntry artEntry; + RedirectEntry redEntry; + string url, title; + char nameSpace; + for( unsigned n = 0; n < zh.articleCount; n++ ) + { + ptr = reinterpret_cast< const quint64 * >( artEntries.constData() ) + n; + df.seek( *ptr ); + df.read( reinterpret_cast< char * >( &mimetype ), sizeof(mimetype) ); + if( mimetype == 0xFFFF ) + { + redEntry.mimetype = mimetype; + ret = df.read( reinterpret_cast< char * >( &redEntry ) + 2, sizeof(RedirectEntry) - 2 ); + if( ret != sizeof(RedirectEntry) - 2 ) + throw exCantReadFile( i->c_str() ); + + nameSpace = redEntry.nameSpace; + } + else + { + artEntry.mimetype = mimetype; + ret = df.read( reinterpret_cast< char * >( &artEntry ) + 2, sizeof(ArticleEntry) - 2 ); + if( ret != sizeof(ArticleEntry) - 2 ) + throw exCantReadFile( i->c_str() ); + + nameSpace = artEntry.nameSpace; + + if( nameSpace == 'A' ) + articleCount++; + } + + // Read article url and title + char ch; + + url.clear(); + while( df.getChar( &ch ) ) + { + if( ch == 0 ) + break; + url.push_back( ch ); + } + + title.clear(); + while( df.getChar( &ch ) ) + { + if( ch == 0 ) + break; + title.push_back( ch ); + } + + if( nameSpace == 'A' ) + { + if( !title.empty() ) + indexedWords.addWord( Utf8::decode( title ), n ); + else + indexedWords.addWord( Utf8::decode( url ), n ); + wordCount++; + } + else + if( nameSpace == 'M' ) + { + if( url.compare( "Title") == 0 ) + { + idxHeader.namePtr = n; + string name; + readArticle( df, zh, n, name ); + initializing.indexingDictionary( name ); + } + else + if( url.compare( "Description") == 0 ) + idxHeader.descriptionPtr = n; + else + if( url.compare( "Language") == 0 ) + { + string lang; + readArticle( df, zh, n, lang ); + if( lang.size() == 2 ) + idxHeader.langFrom = LangCoder::code2toInt( lang.c_str() ); + else + if( lang.size() == 3 ) + idxHeader.langFrom = LangCoder::code3toInt( lang.c_str() ); + idxHeader.langTo = idxHeader.langFrom; + } + } + else + { + url.insert( url.begin(), '/' ); + url.insert( url.begin(), nameSpace ); + indexedResources.addSingleWord( Utf8::decode( url ), n ); + } + } + + // Build index + + { + IndexInfo idxInfo = BtreeIndexing::buildIndex( indexedWords, idx ); + + idxHeader.indexBtreeMaxElements = idxInfo.btreeMaxElements; + idxHeader.indexRootOffset = idxInfo.rootOffset; + + indexedWords.clear(); // Release memory -- no need for this data + } + + { + IndexInfo idxInfo = BtreeIndexing::buildIndex( indexedResources, idx ); + + idxHeader.resourceIndexBtreeMaxElements = idxInfo.btreeMaxElements; + idxHeader.resourceIndexRootOffset = idxInfo.rootOffset; + + indexedResources.clear(); // Release memory -- no need for this data + } + + idxHeader.signature = Signature; + idxHeader.formatVersion = CurrentFormatVersion; + + idxHeader.articleCount = articleCount; + idxHeader.wordCount = wordCount; + + idx.rewind(); + + idx.write( &idxHeader, sizeof( idxHeader ) ); + } + } + catch( std::exception & e ) + { + qWarning( "Zim dictionary indexing failed: %s, error: %s\n", + i->c_str(), e.what() ); + continue; + } + catch( ... ) + { + qWarning( "Zim dictionary indexing failed\n" ); + continue; + } + dictionaries.push_back( new ZimDictionary( dictId, + indexFile, + dictFiles ) ); + } + return dictionaries; +} + +} // namespace Zim + +#endif diff -Nru goldendict-1.0.2~git20130620/zim.hh goldendict-1.5.0~ppa131019/zim.hh --- goldendict-1.0.2~git20130620/zim.hh 1970-01-01 00:00:00.000000000 +0000 +++ goldendict-1.5.0~ppa131019/zim.hh 2013-10-18 14:32:58.000000000 +0000 @@ -0,0 +1,24 @@ +#ifndef __ZIM_HH_INCLUDED__ +#define __ZIM_HH_INCLUDED__ + +#ifdef MAKE_ZIM_SUPPORT + +#include "dictionary.hh" + +/// Support for the Zim dictionaries. +namespace Zim { + +using std::vector; +using std::string; + +vector< sptr< Dictionary::Class > > makeDictionaries( + vector< string > const & fileNames, + string const & indicesDir, + Dictionary::Initializing & ) + throw( std::exception ); + +} + +#endif + +#endif diff -Nru goldendict-1.0.2~git20130620/zipfile.cc goldendict-1.5.0~ppa131019/zipfile.cc --- goldendict-1.0.2~git20130620/zipfile.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/zipfile.cc 2013-10-18 14:32:58.000000000 +0000 @@ -16,7 +16,11 @@ quint16 numDisk, numDiskCd, totalEntriesDisk, totalEntries; quint32 size, offset; quint16 commentLength; -} __attribute__((packed)); +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; struct CentralFileHeaderRecord { @@ -26,7 +30,11 @@ quint16 fileNameLength, extraFieldLength, fileCommentLength, diskNumberStart, intFileAttrs; quint32 externalFileAttrs, offsetOfLocalHeader; -} __attribute__((packed)); +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; struct LocalFileHeaderRecord { @@ -34,7 +42,11 @@ quint16 verNeeded, gpBits, compressionMethod, fileTime, fileDate; quint32 crc32, compressedSize, uncompressedSize; quint16 fileNameLength, extraFieldLength; -} __attribute__((packed)); +} +#ifndef _MSC_VER +__attribute__((packed)) +#endif +; #pragma pack( pop ) diff -Nru goldendict-1.0.2~git20130620/zipsounds.cc goldendict-1.5.0~ppa131019/zipsounds.cc --- goldendict-1.0.2~git20130620/zipsounds.cc 2013-06-20 19:05:08.000000000 +0000 +++ goldendict-1.5.0~ppa131019/zipsounds.cc 2013-10-18 14:32:58.000000000 +0000 @@ -8,7 +8,6 @@ #include "btreeidx.hh" #include "fsencoding.hh" #include "audiolink.hh" -#include "dprintf.hh" #include "indexedzip.hh" #include "filetype.hh" @@ -16,6 +15,7 @@ #include #include #include +#include #ifdef _MSC_VER #include @@ -329,6 +329,8 @@ if ( Dictionary::needToRebuildIndex( dictFiles, indexFile ) || indexIsOldOrBad( indexFile ) ) { + qDebug( "Zips: Building the index for dictionary: %s\n", i->c_str() ); + File::Class idx( indexFile, "wb" ); IdxHeader idxHeader; @@ -393,8 +395,8 @@ } catch( std::exception & e ) { - FDPRINTF( stderr, "Zipped sounds pack reading failed: %s, error: %s\n", - i->c_str(), e.what() ); + qWarning( "Zipped sounds pack reading failed: %s, error: %s\n", + i->c_str(), e.what() ); } }