This commit is contained in:
Jean-Francois Dockes 2014-09-11 08:40:09 +02:00
parent 7b4c1d8859
commit 1c0d3bd8cf
74 changed files with 3893 additions and 2522 deletions

View file

@ -12,18 +12,18 @@ More documentation can be found in the doc/ directory or at http://www.recoll.or
----------------------------------------------------------------------
Chapter 5. Installation and configuration
Chapter 5. Installation and configuration
5.1. Installing a binary copy
There are three types of binary Recoll installations:
o Through your system normal software distribution framework (ie,
* Through your system normal software distribution framework (ie,
Debian/Ubuntu apt, FreeBSD ports, etc.).
o From a package downloaded from the Recoll web site.
* From a package downloaded from the Recoll web site.
o From a prebuilt tree downloaded from the Recoll web site.
* From a prebuilt tree downloaded from the Recoll web site.
In all cases, the strict software dependancies (ie on Xapian or iconv)
will be automatically satisfied, you should not have to worry about them.
@ -58,7 +58,7 @@ Chapter 5. Installation and configuration
----------------------------------------------------------------------
Prev Next
4.3. API Home 5.2. Supporting packages
4.3. API Home 5.2. Supporting packages
Link: home: Recoll user manual
Link: up: Chapter 5. Installation and configuration
Link: prev: Chapter 5. Installation and configuration
@ -101,64 +101,64 @@ Chapter 5. Installation and configuration
Now for the list:
o Openoffice files need unzip and xsltproc.
* Openoffice files need unzip and xsltproc.
o PDF files need pdftotext which is part of the Xpdf or Poppler
* PDF files need pdftotext which is part of the Xpdf or Poppler
packages.
o Postscript files need pstotext. The original version has an issue with
* Postscript files need pstotext. The original version has an issue with
shell character in file names, which is corrected in recent packages.
See http://www.recoll.org/features.html for more detail.
o MS Word needs antiword. It is also useful to have wvWare installed as
* MS Word needs antiword. It is also useful to have wvWare installed as
it may be be used as a fallback for some files which antiword does not
handle.
o MS Excel and PowerPoint are processed by internal Python handlers.
* MS Excel and PowerPoint are processed by internal Python handlers.
o MS Open XML (docx) needs xsltproc.
* MS Open XML (docx) needs xsltproc.
o Wordperfect files need wpd2html from the libwpd (or libwpd-tools on
* Wordperfect files need wpd2html from the libwpd (or libwpd-tools on
Ubuntu) package.
o RTF files need unrtf, which, in its standard version, has much trouble
* RTF files need unrtf, which, in its standard version, has much trouble
with non-western character sets. Check
http://www.recoll.org/features.html.
o TeX files need untex or detex. Check
* TeX files need untex or detex. Check
http://www.recoll.org/features.html for sources if it's not packaged
for your distribution.
o dvi files need dvips.
* dvi files need dvips.
o djvu files need djvutxt and djvused from the DjVuLibre package.
* djvu files need djvutxt and djvused from the DjVuLibre package.
o Audio files: Recoll releases 1.14 and later use a single Python
* Audio files: Recoll releases 1.14 and later use a single Python
handler based on mutagen for all audio file types.
o Pictures: Recoll uses the Exiftool Perl package to extract tag
* Pictures: Recoll uses the Exiftool Perl package to extract tag
information. Most image file formats are supported. Note that there
may not be much interest in indexing the technical tags (image size,
aperture, etc.). This is only of interest if you store personal tags
or textual descriptions inside the image files.
o chm: files in Microsoft help format need Python and the pychm module
* chm: files in Microsoft help format need Python and the pychm module
(which needs chmlib).
o ICS: up to Recoll 1.13, iCalendar files need Python and the icalendar
* ICS: up to Recoll 1.13, iCalendar files need Python and the icalendar
module. icalendar is not needed for newer versions, which use internal
code.
o Zip archives need Python (and the standard zipfile module).
* Zip archives need Python (and the standard zipfile module).
o Rar archives need Python, the rarfile Python module and the unrar
* Rar archives need Python, the rarfile Python module and the unrar
utility.
o Midi karaoke files need Python and the Midi module
* Midi karaoke files need Python and the Midi module
o Konqueror webarchive format with Python (uses the Tarfile module).
* Konqueror webarchive format with Python (uses the Tarfile module).
o Mimehtml web archive format (support based on the email handler, which
* Mimehtml web archive format (support based on the email handler, which
introduces some mild weirdness, but still usable).
Text, HTML, email folders, and Scribus files are processed internally. Lyx
@ -191,10 +191,10 @@ Chapter 5. Installation and configuration
The shopping list:
o C++ compiler. Up to Recoll version 1.13.04, its absence can manifest
* C++ compiler. Up to Recoll version 1.13.04, its absence can manifest
itself by strange messages about a missing iconv_open.
o Development files for Xapian core.
* Development files for Xapian core.
Important
@ -203,14 +203,14 @@ Chapter 5. Installation and configuration
command. Else all Xapian application will crash with an illegal
instruction error.
o Development files for Qt 4 . Recoll has not been tested with Qt 5 yet.
* Development files for Qt 4 . Recoll has not been tested with Qt 5 yet.
Recoll 1.15.9 was the last version to support Qt 3. If you do not want
to install or build the Qt Webkit module, Recoll has a configuration
option to disable its use (see further).
o Development files for X11 and zlib.
* Development files for X11 and zlib.
o You may also need libiconv. On Linux systems, the iconv interface is
* You may also need libiconv. On Linux systems, the iconv interface is
part of libc and you should not need to do anything special.
Check the Recoll download page for up to date version information.
@ -224,21 +224,21 @@ Chapter 5. Installation and configuration
Configure options:
o --without-aspell will disable the code for phonetic matching of search
* --without-aspell will disable the code for phonetic matching of search
terms.
o --with-fam or --with-inotify will enable the code for real time
* --with-fam or --with-inotify will enable the code for real time
indexing. Inotify support is enabled by default on recent Linux
systems.
o --with-qzeitgeist will enable sending Zeitgeist events about the
* --with-qzeitgeist will enable sending Zeitgeist events about the
visited search results, and needs the qzeitgeist package.
o --disable-webkit is available from version 1.17 to implement the
* --disable-webkit is available from version 1.17 to implement the
result list with a Qt QTextBrowser instead of a WebKit widget if you
do not or can't depend on the latter.
o --disable-idxthreads is available from version 1.19 to suppress
* --disable-idxthreads is available from version 1.19 to suppress
multithreading inside the indexing process. You can also use the
run-time configuration to restrict recollindex to using a single
thread, but the compile-time option may disable a few more unused
@ -246,37 +246,37 @@ Chapter 5. Installation and configuration
index processing (data input). The Recoll monitor mode always uses at
least two threads of execution.
o --disable-python-module will avoid building the Python module.
* --disable-python-module will avoid building the Python module.
o --disable-xattr will prevent fetching data from file extended
* --disable-xattr will prevent fetching data from file extended
attributes. Beyond a few standard attributes, fetching extended
attributes data can only be useful is some application stores data in
there, and also needs some simple configuration (see comments in the
fields configuration file).
o --enable-camelcase will enable splitting camelCase words. This is not
* --enable-camelcase will enable splitting camelCase words. This is not
enabled by default as it has the unfortunate side-effect of making
some phrase searches quite confusing: ie, "MySQL manual" would be
matched by "MySQL manual" and "my sql manual" but not "mysql manual"
(only inside phrase searches).
o --with-file-command Specify the version of the 'file' command to use
* --with-file-command Specify the version of the 'file' command to use
(ie: --with-file-command=/usr/local/bin/file). Can be useful to enable
the gnu version on systems where the native one is bad.
o --disable-qtgui Disable the Qt interface. Will allow building the
* --disable-qtgui Disable the Qt interface. Will allow building the
indexer and the command line search program in absence of a Qt
environment.
o --disable-x11mon Disable X11 connection monitoring inside recollindex.
* --disable-x11mon Disable X11 connection monitoring inside recollindex.
Together with --disable-qtgui, this allows building recoll without Qt
and X11.
o --disable-pic will compile Recoll with position-dependant code. This
* --disable-pic will compile Recoll with position-dependant code. This
is incompatible with building the KIO or the Python or PHP extensions,
but might yield very marginally faster code.
o Of course the usual autoconf configure options, like --prefix apply.
* Of course the usual autoconf configure options, like --prefix apply.
Normal procedure:
@ -318,14 +318,14 @@ Chapter 5. Installation and configuration
----------------------------------------------------------------------
Prev Up Next
5.2. Supporting packages Home 5.4. Configuration overview
Prev Up Next
5.2. Supporting packages Home 5.4. Configuration overview
Link: home: Recoll user manual
Link: up: Chapter 5. Installation and configuration
Link: prev: 5.3. Building from source
5.4. Configuration overview
Prev Chapter 5. Installation and configuration
Prev Chapter 5. Installation and configuration
----------------------------------------------------------------------
@ -395,11 +395,11 @@ Chapter 5. Installation and configuration
There are three kinds of lines:
o Comment (starts with #) or empty.
* Comment (starts with #) or empty.
o Parameter affectation (name = value).
* Parameter affectation (name = value).
o Section definition ([somedirname]).
* Section definition ([somedirname]).
Depending on the type of configuration file, section definitions either
separate groups of parameters or allow redefining some parameters for a
@ -418,12 +418,12 @@ Chapter 5. Installation and configuration
Encoding issues. Most of the configuration parameters are plain ASCII. Two
particular sets of values may cause encoding issues:
o File path parameters may contain non-ascii characters and should use
* File path parameters may contain non-ascii characters and should use
the exact same byte values as found in the file system directory.
Usually, this means that the configuration file should use the system
default locale encoding.
o The unac_except_trans parameter should be encoded in UTF-8. If your
* The unac_except_trans parameter should be encoded in UTF-8. If your
system locale is not UTF-8, and you need to also specify non-ascii
file paths, this poses a difficulty because common text editors cannot
handle multiple encodings in a single file. In this relatively
@ -578,11 +578,17 @@ Chapter 5. Installation and configuration
usesystemfilecommand
Decide if we use the file -i system command as a final step for
determining the MIME type for a file (the main procedure uses
suffix associations as defined in the mimemap file). This can be
useful for files with suffix-less names, but it will also cause
the indexing of many bogus "text" files.
Decide if we execute a system command (file -i by default) as a
final step for determining the MIME type for a file (the main
procedure uses suffix associations as defined in the mimemap
file). This can be useful for files with suffix-less names, but it
will also cause the indexing of many bogus "text" files.
systemfilecommand
Command to use for mime for mime type determination if
usesystefilecommand is set. Recent versions of xdg-mime sometimes
work better than file.
processwebqueue
@ -1004,7 +1010,7 @@ Chapter 5. Installation and configuration
obtain the desired behaviour.
We will only give a short description here, you should refer to the
comments inside the file for more detailed information.
comments inside the default file for more detailed information.
Field names should be lowercase alphabetic ASCII.
@ -1023,6 +1029,13 @@ Chapter 5. Installation and configuration
This section defines lists of synonyms for the canonical names
used inside the [prefixes] and [stored] sections
[queryaliases]
This section also defines aliases for the canonic field names,
with the difference that the substitution will only be used at
query time, avoiding any possibility that the value would pick-up
random metadata from documents.
handler-specific sections
Some input handlers may need specific configuration for handling
@ -1046,6 +1059,10 @@ Chapter 5. Installation and configuration
# displayed - as %(mailmytag) - in result lists).
mailmytag =
[queryaliases]
filename = fn
containerfilename = cfn
[mail]
# Extract the X-My-Tag mail header, and use it internally with the
# mailmytag field name
@ -1139,31 +1156,29 @@ Chapter 5. Installation and configuration
The right side of each assignment holds a command to be executed for
opening the file. The following substitutions are performed:
o %D. Document date
* %D. Document date
o %f. File name. This may be the name of a temporary file if it was
* %f. File name. This may be the name of a temporary file if it was
necessary to create one (ie: to extract a subdocument from a
container).
o %F. Original file name. Same as %f except if a temporary file is used.
o %i. Internal path, for subdocuments of containers. The format depends
* %i. Internal path, for subdocuments of containers. The format depends
on the container type. If this appears in the command line, Recoll
will not create a temporary file to extract the subdocument, expecting
the called application (possibly a script) to be able to handle it.
o %M. MIME type
* %M. MIME type
o %p. Page index. Only significant for a subset of document types,
* %p. Page index. Only significant for a subset of document types,
currently only PDF, Postscript and DVI files. Can be used to start the
editor at the right page for a match or snippet.
o %s. Search term. The value will only be set for documents with indexed
* %s. Search term. The value will only be set for documents with indexed
page numbers (ie: PDF). The value will be one of the matched search
terms. It would allow pre-setting the value in the "Find" entry inside
Evince for example, for easy highlighting of the term.
o %U, %u. Url.
* %u. Url.
In addition to the predefined values above, all strings like %(fieldname)
will be replaced by the value of the field named fieldname for the
@ -1200,7 +1215,7 @@ Chapter 5. Installation and configuration
You need two entries in the configuration files for this to work:
o In $RECOLL_CONFDIR/mimemap (typically ~/.recoll/mimemap), add the
* In $RECOLL_CONFDIR/mimemap (typically ~/.recoll/mimemap), add the
following line:
.blob = application/x-blobapp
@ -1208,7 +1223,7 @@ Chapter 5. Installation and configuration
Note that the MIME type is made up here, and you could call it
diesel/oil just the same.
o In $RECOLL_CONFDIR/mimeview under the [view] section, add:
* In $RECOLL_CONFDIR/mimeview under the [view] section, add:
application/x-blobapp = blobviewer %f
@ -1229,16 +1244,16 @@ Chapter 5. Installation and configuration
alteration, and also to add data to the mimeconf file (typically in
~/.recoll/mimeconf):
o Under the [index] section, add the following line (more about the
* Under the [index] section, add the following line (more about the
rclblob indexing script later):
application/x-blobapp = exec rclblob
o Under the [icons] section, you should choose an icon to be displayed
* Under the [icons] section, you should choose an icon to be displayed
for the files inside the result lists. Icons are normally 64x64 pixels
PNG files which live in /usr/[local/]share/recoll/images.
o Under the [categories] section, you should add the MIME type where it
* Under the [categories] section, you should add the MIME type where it
makes sense (you can also create a category). Categories may be used
for filtering in advanced search.
@ -1252,5 +1267,5 @@ Chapter 5. Installation and configuration
----------------------------------------------------------------------
Prev Up
5.3. Building from source Home
Prev Up
5.3. Building from source Home

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
1.20.0
1.20.0p2

View file

@ -847,16 +847,19 @@ bool RclConfig::readFieldsConfig(const string& cnferrloc)
ft.wdfinc = atoi(tval.c_str());
if (attrs.get("boost", tval))
ft.boost = atof(tval.c_str());
if (attrs.get("pfxonly", tval))
ft.pfxonly = stringToBool(tval);
m_fldtotraits[stringtolower(*it)] = ft;
LOGDEB2(("readFieldsConfig: [%s] -> [%s] %d %.1f\n",
it->c_str(), ft.pfx.c_str(), ft.wdfinc, ft.boost));
}
// Add prefixes for aliases an build alias-to-canonic map while we're at it
// Having the aliases in the prefix map avoids an additional indirection
// at index time.
// Add prefixes for aliases and build alias-to-canonic map while
// we're at it. Having the aliases in the prefix map avoids an
// additional indirection at index time.
tps = m_fields->getNames("aliases");
for (vector<string>::const_iterator it = tps.begin(); it != tps.end();it++) {
for (vector<string>::const_iterator it = tps.begin();
it != tps.end(); it++){
string canonic = stringtolower(*it); // canonic name
FieldTraits ft;
map<string, FieldTraits>::const_iterator pit =
@ -876,6 +879,21 @@ bool RclConfig::readFieldsConfig(const string& cnferrloc)
}
}
// Query aliases map
tps = m_fields->getNames("queryaliases");
for (vector<string>::const_iterator it = tps.begin();
it != tps.end(); it++){
string canonic = stringtolower(*it); // canonic name
string aliases;
m_fields->get(canonic, aliases, "queryaliases");
vector<string> l;
stringToStrings(aliases, l);
for (vector<string>::const_iterator ait = l.begin();
ait != l.end(); ait++) {
m_aliastoqcanon[stringtolower(*ait)] = canonic;
}
}
#if 0
for (map<string, FieldTraits>::const_iterator it = m_fldtotraits.begin();
it != m_fldtotraits.end(); it++) {
@ -907,10 +925,10 @@ bool RclConfig::readFieldsConfig(const string& cnferrloc)
}
// Return specifics for field name:
bool RclConfig::getFieldTraits(const string& _fld, const FieldTraits **ftpp)
const
bool RclConfig::getFieldTraits(const string& _fld, const FieldTraits **ftpp,
bool isquery) const
{
string fld = fieldCanon(_fld);
string fld = isquery ? fieldQCanon(_fld) : fieldCanon(_fld);
map<string, FieldTraits>::const_iterator pit = m_fldtotraits.find(fld);
if (pit != m_fldtotraits.end()) {
*ftpp = &pit->second;
@ -949,6 +967,18 @@ string RclConfig::fieldCanon(const string& f) const
return fld;
}
string RclConfig::fieldQCanon(const string& f) const
{
string fld = stringtolower(f);
map<string, string>::const_iterator it = m_aliastoqcanon.find(fld);
if (it != m_aliastoqcanon.end()) {
LOGDEB1(("RclConfig::fieldQCanon: [%s] -> [%s]\n",
f.c_str(), it->second.c_str()));
return it->second;
}
return fieldCanon(f);
}
vector<string> RclConfig::getFieldSectNames(const string &sk, const char* patrn)
const
{
@ -1420,6 +1450,7 @@ void RclConfig::initFrom(const RclConfig& r)
m_ptrans = new ConfSimple(*(r.m_ptrans));
m_fldtotraits = r.m_fldtotraits;
m_aliastocanon = r.m_aliastocanon;
m_aliastoqcanon = r.m_aliastoqcanon;
m_storedFields = r.m_storedFields;
m_xattrtofld = r.m_xattrtofld;
if (r.m_stopsuffixes)

View file

@ -65,9 +65,11 @@ struct FieldTraits {
string pfx; // indexing prefix,
int wdfinc; // Index time term frequency increment (default 1)
double boost; // Query time boost (default 1.0)
FieldTraits(int i, double f) {wdfinc = i; boost = f;}
FieldTraits() : wdfinc(1), boost(1.0) {}
FieldTraits(const string& s) : pfx(s), wdfinc(1), boost(1.0) {}
bool pfxonly; // Suppress prefix-less indexing
FieldTraits()
: wdfinc(1), boost(1.0), pfxonly(false)
{}
};
class RclConfig {
@ -239,8 +241,10 @@ class RclConfig {
/** mimeconf: get query lang frag for named filter */
bool getGuiFilter(const string& filtername, string& frag) const;
/** fields: get field prefix from field name */
bool getFieldTraits(const string& fldname, const FieldTraits **) const;
/** fields: get field prefix from field name. Use additional query
aliases if isquery is set */
bool getFieldTraits(const string& fldname, const FieldTraits **,
bool isquery = false) const;
const set<string>& getStoredFields() const {return m_storedFields;}
@ -249,6 +253,9 @@ class RclConfig {
/** Get canonic name for possible alias */
string fieldCanon(const string& fld) const;
/** Get canonic name for possible alias, including query-only aliases */
string fieldQCanon(const string& fld) const;
/** Get xattr name to field names translations */
const map<string, string>& getXattrToField() const {return m_xattrtofld;}
@ -321,6 +328,7 @@ class RclConfig {
ConfSimple *m_ptrans; // Paths translations
map<string, FieldTraits> m_fldtotraits; // Field to field params
map<string, string> m_aliastocanon;
map<string, string> m_aliastoqcanon;
set<string> m_storedFields;
map<string, string> m_xattrtofld;

View file

@ -656,7 +656,13 @@ bool TextSplit::text_to_words(const string &in)
break;
case '#':
// Keep it only at end of word ... Special case for c# you see...
// Keep it only at the beginning of a word (hashtag),
if (m_wordLen == 0) {
m_wordLen += it.appendchartostring(m_span);
STATS_INC_WORDCHARS;
break;
}
// or at the end (special case for c# ...)
if (m_wordLen > 0) {
int w = whatcc(it[it.getCpos()+1]);
if (w == SPACE || w == '\n' || w == '\r') {
@ -729,7 +735,10 @@ bool TextSplit::text_to_words(const string &in)
m_wordLen--;
if (!doemit(false, it.getBpos()))
return false;
m_wordStart--;
// m_wordstart could be 0 here if the span was reset
// for excessive length
if (m_wordStart)
m_wordStart--;
m_wordLen++;
}
goto NORMALCHAR;

View file

@ -1,5 +1,4 @@
.\" $Id: recoll.conf.5,v 1.5 2007-07-13 10:18:49 dockes Exp $ (C) 2005 J.F.Dockes\$
.TH RECOLL.CONF 5 "8 January 2006"
.TH RECOLL.CONF 5 "14 November 2012"
.SH NAME
recoll.conf \- main personal configuration file for Recoll
.SH DESCRIPTION

View file

@ -3,7 +3,7 @@
<!ENTITY RCL "<application>Recoll</application>">
<!ENTITY RCLAPPS "<ulink url='http://www.recoll.org/features.html'>http://www.recoll.org/features.html</ulink>">
<!ENTITY RCLVERSION "1.19">
<!ENTITY RCLVERSION "1.20">
<!ENTITY XAP "<application>Xapian</application>">
<!ENTITY WIKI "http://bitbucket.org/medoc/recoll/wiki/">
]>
@ -22,7 +22,7 @@
</author>
<copyright>
<year>2005-2013</year>
<year>2005-2014</year>
<holder role="mailto:jfd@recoll.org">Jean-Francois Dockes</holder>
</copyright>
<abstract>
@ -1269,6 +1269,11 @@ fs.inotify.max_user_watches=32768
<filename>mimeview</filename></link> configuration file if you find
this more convenient.</para>
<para>Each result entry also has a right-click menu with an
<guilabel>Open With</guilabel> entry. This lets you choose an
application from the list of those which registered with the desktop
for the document MIME type.</para>
<para>The <literal>Preview</literal> and <literal>Open</literal>
edit links may not be present for all entries, meaning that
&RCL; has no configured way to preview a given file type (which
@ -2031,6 +2036,19 @@ fs.inotify.max_user_watches=32768
also save the result list in CSV format.</para>
</formalpara>
<formalpara><title>Changing the GUI geometry</title>
<para>It is possible to configure the GUI in wide form
factor by dragging the toolbars to one of the sides (their
location is remembered between sessions), and moving the
category filters to a menu (can be set in the
<menuchoice>
<guimenu>Preferences</guimenu>
<guimenuitem>GUI configuration</guimenuitem>
<guimenuitem>User interface</guimenuitem>
</menuchoice> panel).</para>
</formalpara>
<formalpara><title>Query explanation</title>
<para>You can get an exact description of what the query
looked for, including stem expansion, and Boolean operators
@ -2421,6 +2439,10 @@ fs.inotify.max_user_watches=32768
<listitem><formalpara><title>%N</title><para>result Number inside
the result page</para></formalpara>
</listitem>
<listitem><formalpara><title>%P</title><para>Parent folder
Url. In the case of an embedded document, this is the parent folder
for the top level container file.</para></formalpara>
</listitem>
<listitem><formalpara><title>%R</title><para>Relevance
percentage</para></formalpara>
</listitem>
@ -2445,6 +2467,14 @@ fs.inotify.max_user_watches=32768
where <replaceable>docnum</replaceable> (%N) expands to the document
number inside the result page).</para>
<para>It is also possible to use a <literal>"F%N"</literal> value
as a link target. This will open the document corresponding to the
<literal>%P</literal> parent folder expansion, usually creating a
file manager window on the folder where the container file
resides. E.g.:
<programlisting>&lt;a href="F%N"&gt;%P&lt;/a&gt;</programlisting>
</para>
<para>In addition to the predefined values above, all strings
like <literal>%(fieldname)</literal> will be replaced by the
value of the field named <literal>fieldname</literal> for this
@ -2781,6 +2811,16 @@ text/html [file:///Users/uncrypted-dockes/projets/bateaux/ilur/factEtCie/r
<replaceable>title:prejudice title:pride</replaceable>, and is
unlikely to find a result.</para>
<para>To save you some typing, recent &RCL; versions (1.20 and later)
interpret a comma-separated list of terms as an AND list inside the
field. Use slash characters ('/') for an OR list. No white space
is allowed. So
<programlisting>author:john,lennon</programlisting> will search for
documents with <literal>john</literal> and <literal>lennon</literal>
inside the <literal>author</literal> field (in any order), and
<programlisting>author:john/ringo</programlisting> would search for
<literal>john</literal> or <literal>ringo</literal>.</para>
<para>Modifiers can be set on a phrase clause, for example to specify
a proximity search (unordered). See
<link linkend="RCL.SEARCH.LANG.MODIFIERS">the modifier
@ -2811,14 +2851,38 @@ text/html [file:///Users/uncrypted-dockes/projets/bateaux/ilur/factEtCie/r
any).</para>
</listitem>
<listitem><para><literal>filename</literal> for the document's
file name.</para></listitem>
<listitem><para><literal>filename</literal> for the document's
file name. This is not necessarily set for all documents:
internal documents contained inside a compound one (for example
an EPUB section) do not inherit the container file name any more,
this was replaced by an explicit field (see next). Sub-documents
can still have a specific <literal>filename</literal>, if it is
implied by the document format, for example the attachment file
name for an email attachment.</para></listitem>
<listitem><para><literal>containerfilename</literal>. This is
set for all documents, both top-level and contained
sub-documents, and is always the name of the filesystem directory
entry which contains the data. The terms from this field can
only be matched by an explicit field specification (as opposed
to terms from <literal>filename</literal> which are also indexed
as general document content). This avoids getting matches for
all the sub-documents when searching for the container file
name.</para></listitem>
<listitem><para><literal>ext</literal> specifies the file
name extension (Ex: <literal>ext:html</literal>)</para>
</listitem>
</itemizedlist>
</itemizedlist>
<para>&RCL; 1.20 and later have a way to specify aliases for the
field names, which will save typing, for example by aliasing
<literal>filename</literal> to <replaceable>fn</replaceable> or
<literal>containerfilename</literal> to
<replaceable>cfn</replaceable>. See the <link
linkend="RCL.INSTALL.CONFIG.FIELDS">section about the
<filename>fields</filename> file</link></para>
<para>The field syntax also supports a few field-like, but
special, criteria:</para>
@ -5076,8 +5140,8 @@ skippedPaths = ~/somedir/*.txt
</varlistentry>
<varlistentry><term><varname>usesystemfilecommand</varname></term>
<listitem><para>Decide if we use the
<command>file</command> <option>-i</option> system command
<listitem><para>Decide if we execute a system command
(<command>file</command> <option>-i</option> by default)
as a final step for determining the MIME type for a file
(the main procedure uses suffix associations as defined in
the <filename>mimemap</filename> file). This can be useful
@ -5086,6 +5150,14 @@ skippedPaths = ~/somedir/*.txt
</listitem>
</varlistentry>
<varlistentry><term><varname>systemfilecommand</varname></term>
<listitem><para>Command to use for mime for mime type
determination if <literal>usesystefilecommand</literal> is
set. Recent versions of <command>xdg-mime</command> sometimes
work better than <command>file</command>.</para>
</listitem>
</varlistentry>
<varlistentry><term><varname>processwebqueue</varname></term>
<listitem><para>If this is set, process the directory where
Web browser plugins copy visited pages for indexing.</para>
@ -5657,7 +5729,8 @@ mondelaypatterns = *.log:20 "this one has spaces*:10"
behaviour.</para>
<para>We will only give a short description here, you should refer
to the comments inside the file for more detailed information.</para>
to the comments inside the default file for more detailed
information.</para>
<para>Field names should be lowercase alphabetic ASCII.</para>
@ -5683,6 +5756,14 @@ mondelaypatterns = *.log:20 "this one has spaces*:10"
and <literal>[stored]</literal> sections</para>
</listitem>
</varlistentry>
<varlistentry>
<term>[queryaliases]</term>
<listitem><para>This section also defines aliases for the
canonic field names, with the difference that the substitution
will only be used at query time, avoiding any possibility that
the value would pick-up random metadata from documents.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>handler-specific sections</term>
<listitem><para>Some input handlers may need specific
@ -5713,6 +5794,10 @@ mailmytag = XMTAG
# displayed - as %(mailmytag) - in result lists).
mailmytag =
[queryaliases]
filename = fn
containerfilename = cfn
[mail]
# Extract the X-My-Tag mail header, and use it internally with the
# mailmytag field name
@ -5863,11 +5948,6 @@ x-my-tag = mailmytag
from a container).</para></formalpara>
</listitem>
<listitem><formalpara><title>%F</title>
<para>Original file name. Same as %f except if a temporary
file is used.</para></formalpara>
</listitem>
<listitem><formalpara><title>%i</title>
<para>Internal path, for subdocuments of containers. The
format depends on the container type. If this appears in the
@ -5895,7 +5975,7 @@ x-my-tag = mailmytag
highlighting of the term.</para></formalpara>
</listitem>
<listitem><formalpara><title>%U, %u</title>
<listitem><formalpara><title>%u</title>
<para>Url.</para></formalpara>
</listitem>
</itemizedlist>

View file

@ -53,7 +53,7 @@ class PPTDumper(object):
try:
dirstrm = strm.getDirectoryStreamByName(dirname)
except Exception, err:
error("getDirectoryStreamByName(%s): %s\n" % (dirname,str(err)))
error("getDirectoryStreamByName(%s): %s - %s\n" % (dirname,str(err),self.filepath))
# The previous version was killed by the exception
# here, so the equivalent is to break, but maybe there
# is no reason to do so.
@ -119,9 +119,9 @@ def main (args):
try:
dumper = PPTDumper(args[0], globals.params)
if not dumper.dump():
error("ppt-dump: dump error\n")
error("ppt-dump: dump error " + args[0] + "\n")
except:
error("ppt-dump: FAILURE (bad format?)\n")
error("ppt-dump: FAILURE (bad format?) " + args[0] + "\n")
if globals.params.dumpText:
print(globals.textdump.replace("\r", "\n"))

View file

@ -90,23 +90,30 @@ umask 77
checkcmds awk antiword iconv
# output the result
# We need to do some strange stuff to retrieve the status from antiword. Things
# would be simpler if we relied on using bash.
# Explanations:
#http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status
stdintoexitstatus() {
read exitstatus
return $exitstatus
}
# The strange 'BEGIN' setup is to prevent 'file' from thinking this file
# is an awk program
$decoder "$infile" |
(((($decoder "$infile"; echo $? >&3) |
awk 'BEGIN'\
' {
cont = ""
gotdata = 0
}
{
if (!($0 ~ /^[ ]*$/)) {
if (!($0 ~ /^[ ]*$/) && gotdata == 0) {
print "<html><head><title></title>"
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">"
print "</head>\n<body>\n<p>"
gotdata = 1
if (gotdata == 0) {
print "<html><head><title></title>"
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">"
print "</head>\n<body>\n<p>"
}
}
$0 = cont $0
cont = ""
@ -124,17 +131,19 @@ awk 'BEGIN'\
print "</p><hr><p>"
next
}
gsub(/&/, "\\&amp;", $0)
gsub(/</, "\\&lt;", $0)
gsub(/>/, "\\&gt;", $0)
print $0 "<br>"
if (gotdata == 1) {
gsub(/&/, "\\&amp;", $0)
gsub(/</, "\\&lt;", $0)
gsub(/>/, "\\&gt;", $0)
print $0 "<br>"
}
}
END {
if (gotdata == 0)
exit(1)
print "</p></body></html>"
}'
if (gotdata == 1)
print "</p></body></html>"
}' >&4) 3>&1) | stdintoexitstatus) 4>&1
# Antiword rarely fails, we try to catch the most common reasons:

View file

@ -1,22 +1,18 @@
#!/bin/sh
# @(#$Id: rclpdf,v 1.10 2007-07-12 17:13:38 dockes Exp $ (C) 2004 J.F.Dockes
# This is copied almost verbatim from Estraier:
#================================================================
# Some parts are Copyright Estraier (GPL v2).
# Estraier: a personal full-text search system
# Copyright (C) 2003-2004 Mikio Hirabayashi
# Copyright (C) 2014 J.F. Dockes
# This file is licensed under the GPL v2
#================================================================
#================================================================
# Convert a pdf file to HTML.
#
# We use pdftotxt from the xpdf package. This does not perfect results as
# whitespace is sometimes either arbitrarily inserted or stripped from the
# text. This seems to depend on the usage of option -raw, and,
# unfortunately also of the document itself, so that there does not seem to
# be an universally good solution
# We use pdftotext from the xpdf/poppler-utils package.
#
# Also, the filter sometimes seems to output problematic utf-8. I did not
# check if it was actually incorrect or just mis-understood by qtextedit
# (tobedone)
# pdftotext sometimes outputs unescaped text inside HTML text sections.
# We try to correct.
# Uncomment the following if you get better results without. The
# pdftotext manual says that the option is no longer recommended The
@ -133,6 +129,19 @@ awk 'BEGIN'\
mid = "<title>" mid "</title>"
$0 = part1 mid part2
}
if(doescape == 0 && $0 ~ /content=".*"\/>/){
match($0, /content=".*"\/>/)
part1 = substr($0, 0, RSTART-1)
mid = substr($0, RSTART, RLENGTH)
part2 = substr($0, RSTART + RLENGTH, length($0))
gsub(/content="/, "", mid)
gsub(/"\/>/, "", mid)
gsub(/&/, "\\&amp;", mid)
gsub(/</, "\\&lt;", mid)
gsub(/>/, "\\&gt;", mid)
mid = "content=\"" mid "\"/>"
$0 = part1 mid part2
}
# Recoll treats "Subject" as a "title" element (based on emails). The PDF
# "Subject" metadata field is more like an HTML "description"

View file

@ -98,7 +98,8 @@ class ZipExtractor:
try:
self.zip = ZipFile(filename)
return True
except:
except Exception, err:
self.em.rclog("openfile: failed: [%s]" % err)
return False
def getipath(self, params):

View file

@ -2,6 +2,8 @@
import sys
import xml.sax
sys.path.append(sys.path[0]+"/msodump.zip")
from msodumper.globals import error
dtt = True
@ -47,6 +49,8 @@ class XlsXmlHandler(xml.sax.handler.ContentHandler):
try:
xml.sax.parse(sys.stdin, XlsXmlHandler())
except:
except BaseException as err:
error("xml-parse: %s\n" % (str(sys.exc_info()[:2]),))
sys.exit(1)
sys.exit(0)

View file

@ -455,6 +455,7 @@ BeagleQueueIndexer::processone(const string &path,
if (doc.fmtime.empty())
doc.fmtime = ascdate;
dotdoc.fmtime = doc.fmtime;
char cbuf[100];
sprintf(cbuf, "%lld", (long long)stp->st_size);

View file

@ -724,9 +724,12 @@ FsIndexer::processonefile(RclConfig *config,
if (doc.url.empty())
doc.url = cstr_fileu + fn;
const string *fnp = 0;
if (doc.ipath.empty() &&
(!doc.peekmeta(Rcl::Doc::keyfn, &fnp) || fnp->empty()))
doc.meta[Rcl::Doc::keyfn] = utf8fn;
if (doc.ipath.empty()) {
if (!doc.peekmeta(Rcl::Doc::keyfn, &fnp) || fnp->empty())
doc.meta[Rcl::Doc::keyfn] = utf8fn;
}
// Set container file name for all docs, top or subdoc
doc.meta[Rcl::Doc::keytcfn] = utf8fn;
char cbuf[100];
sprintf(cbuf, "%lld", (long long)stp->st_size);
@ -811,7 +814,8 @@ FsIndexer::processonefile(RclConfig *config,
fileDoc.onlyxattr = true;
} else {
fileDoc.fmtime = ascdate;
fileDoc.meta[Rcl::Doc::keyfn] = utf8fn;
fileDoc.meta[Rcl::Doc::keyfn] =
fileDoc.meta[Rcl::Doc::keytcfn] = utf8fn;
fileDoc.haschildren = true;
fileDoc.mimetype = mimetype;
fileDoc.url = cstr_fileu + fn;

View file

@ -46,15 +46,21 @@ using namespace std;
/// current/interesting file types.
/// As a last resort we execute 'file' (except if forbidden by config)
static string mimetypefromdata(const string &fn, bool usfc)
static string mimetypefromdata(RclConfig *cfg, const string &fn, bool usfc)
{
// First try the internal identifying routine
string mime = idFile(fn.c_str());
#ifdef USE_SYSTEM_FILE_COMMAND
if (usfc && mime.empty()) {
// Last resort: use "file -i"
// Last resort: use "file -i", or its configured replacement.
vector<string> cmd = create_vector<string>(FILE_PROG) ("-i") (fn);
string scommand;
if (cfg->getConfParam("systemfilecommand", scommand)) {
stringToStrings(scommand, cmd);
cmd.push_back(fn);
}
string result;
if (!ExecCmd::backtick(cmd, result)) {
LOGERR(("mimetypefromdata: exec %s failed\n", FILE_PROG));
@ -164,7 +170,7 @@ string mimetype(const string &fn, const struct stat *stp,
// only do this if we have an actual file (as opposed to a pure
// name).
if (mtype.empty() && stp)
mtype = mimetypefromdata(fn, usfc);
mtype = mimetypefromdata(cfg, fn, usfc);
out:
return mtype;

View file

@ -279,13 +279,9 @@ python/samples/docdups.py
python/samples/mutt-recoll.py
python/samples/rcldlkp.py
python/samples/rclmbox.py
python/samples/recoll/
python/samples/recoll/cur/
python/samples/recoll/new/
python/samples/recollgui/
python/samples/recollgui/Makefile
python/samples/recollgui/qrecoll.py
python/samples/recollgui/rclmain.py
python/samples/recollgui/rclmain.ui
python/samples/recollq.py
python/samples/recollqsd.py

View file

@ -62,7 +62,9 @@ typedef struct {
static void
SearchData_dealloc(recoll_SearchDataObject *self)
{
LOGDEB(("SearchData_dealloc\n"));
LOGDEB(("SearchData_dealloc. Releasing. Count before: %d\n",
self->sd.getcnt()));
self->sd.release();
Py_TYPE(self)->tp_free((PyObject*)self);
}
@ -178,7 +180,7 @@ static PyObject *
SearchData_addclause(recoll_SearchDataObject* self, PyObject *args,
PyObject *kwargs)
{
LOGDEB(("SearchData_addclause\n"));
LOGDEB0(("SearchData_addclause\n"));
if (self->sd.isNull()) {
LOGERR(("SearchData_addclause: not init??\n"));
PyErr_SetString(PyExc_AttributeError, "sd");
@ -302,8 +304,8 @@ Doc_dealloc(recoll_DocObject *self)
static PyObject *
Doc_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
recoll_DocObject *self;
LOGDEB(("Doc_new\n"));
recoll_DocObject *self;
self = (recoll_DocObject *)type->tp_alloc(type, 0);
if (self == 0)
@ -338,7 +340,7 @@ PyDoc_STRVAR(doc_Doc_getbinurl,
static PyObject *
Doc_getbinurl(recoll_DocObject *self)
{
LOGDEB(("Doc_getbinurl\n"));
LOGDEB0(("Doc_getbinurl\n"));
if (self->doc == 0 ||
the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc");
@ -357,6 +359,7 @@ PyDoc_STRVAR(doc_Doc_setbinurl,
static PyObject *
Doc_setbinurl(recoll_DocObject *self, PyObject *value)
{
LOGDEB0(("Doc_setbinurl\n"));
if (self->doc == 0 ||
the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc??");
@ -378,7 +381,7 @@ PyDoc_STRVAR(doc_Doc_keys,
static PyObject *
Doc_keys(recoll_DocObject *self)
{
LOGDEB(("Doc_keys\n"));
LOGDEB0(("Doc_keys\n"));
if (self->doc == 0 ||
the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc");
@ -403,7 +406,7 @@ PyDoc_STRVAR(doc_Doc_items,
static PyObject *
Doc_items(recoll_DocObject *self)
{
LOGDEB(("Doc_items\n"));
LOGDEB0(("Doc_items\n"));
if (self->doc == 0 ||
the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc");
@ -433,7 +436,7 @@ PyDoc_STRVAR(doc_Doc_get,
static PyObject *
Doc_get(recoll_DocObject *self, PyObject *args)
{
LOGDEB(("Doc_get\n"));
LOGDEB0(("Doc_get\n"));
char *sutf8 = 0; // needs freeing
if (!PyArg_ParseTuple(args, "es:Doc_get",
"utf-8", &sutf8)) {
@ -487,6 +490,7 @@ static PyMethodDef Doc_methods[] = {
static PyObject *
Doc_getattro(recoll_DocObject *self, PyObject *nameobj)
{
LOGDEB0(("Doc_getattro\n"));
if (self->doc == 0 || the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc");
return 0;
@ -514,7 +518,7 @@ Doc_getattro(recoll_DocObject *self, PyObject *nameobj)
Py_RETURN_NONE;
}
key = rclconfig->fieldCanon(string(name));
key = rclconfig->fieldQCanon(string(name));
switch (key.at(0)) {
case 'u':
@ -605,11 +609,11 @@ Doc_getattro(recoll_DocObject *self, PyObject *nameobj)
static int
Doc_setattr(recoll_DocObject *self, char *name, PyObject *value)
{
LOGDEB0(("Doc_setattr: doc %p\n", self->doc));
if (self->doc == 0 || the_docs.find(self->doc) == the_docs.end()) {
PyErr_SetString(PyExc_AttributeError, "doc??");
return -1;
}
LOGDEB1(("Doc_setmeta: doc %p\n", self->doc));
#if PY_MAJOR_VERSION < 3
if (PyString_Check(value)) {
@ -636,7 +640,7 @@ Doc_setattr(recoll_DocObject *self, char *name, PyObject *value)
}
char* uvalue = PyBytes_AsString(putf8);
Py_DECREF(putf8);
string key = rclconfig->fieldCanon(string(name));
string key = rclconfig->fieldQCanon(string(name));
LOGDEB0(("Doc_setattr: [%s] (%s) -> [%s]\n", key.c_str(), name, uvalue));
// We set the value in the meta array in all cases. Good idea ? or do it
@ -793,31 +797,36 @@ typedef struct {
PyDoc_STRVAR(doc_Query_close,
"close(). Deallocate query. Object is unusable after the call."
);
static void
static PyObject *
Query_close(recoll_QueryObject *self)
{
LOGDEB(("Query_close\n"));
if (self->query)
if (self->query) {
the_queries.erase(self->query);
deleteZ(self->query);
deleteZ(self->query);
}
deleteZ(self->sortfield);
if (self->connection)
if (self->connection) {
Py_DECREF(self->connection);
self->connection = 0;
}
Py_RETURN_NONE;
}
static void
Query_dealloc(recoll_QueryObject *self)
{
LOGDEB(("Query_dealloc\n"));
Query_close(self);
PyObject *ret = Query_close(self);
Py_DECREF(ret);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
Query_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
recoll_QueryObject *self;
LOGDEB(("Query_new\n"));
recoll_QueryObject *self;
self = (recoll_QueryObject *)type->tp_alloc(type, 0);
if (self == 0)
@ -852,6 +861,7 @@ Query_init(recoll_QueryObject *self, PyObject *, PyObject *)
static PyObject *
Query_iter(PyObject *self)
{
Py_INCREF(self);
return self;
}
@ -865,7 +875,7 @@ PyDoc_STRVAR(doc_Query_sortby,
static PyObject *
Query_sortby(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB(("Query_sortby\n"));
LOGDEB0(("Query_sortby\n"));
static const char *kwlist[] = {"field", "ascending", NULL};
char *sfield = 0;
PyObject *ascobj = 0;
@ -899,7 +909,7 @@ PyDoc_STRVAR(doc_Query_execute,
static PyObject *
Query_execute(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB1(("Query_execute\n"));
LOGDEB0(("Query_execute\n"));
static const char *kwlist[] = {"query_string", "stemming", "stemlang", NULL};
char *sutf8 = 0; // needs freeing
char *sstemlang = 0;
@ -922,7 +932,7 @@ Query_execute(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
PyMem_Free(sstemlang);
}
LOGDEB(("Query_execute: [%s] dostem %d stemlang [%s]\n", utf8.c_str(),
LOGDEB0(("Query_execute: [%s] dostem %d stemlang [%s]\n", utf8.c_str(),
dostem, stemlang.c_str()));
if (self->query == 0 ||
@ -960,9 +970,9 @@ PyDoc_STRVAR(doc_Query_executesd,
static PyObject *
Query_executesd(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB0(("Query_executeSD\n"));
static const char *kwlist[] = {"searchdata", NULL};
recoll_SearchDataObject *pysd = 0;
LOGDEB(("Query_executeSD\n"));
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:Query_execute",
(char **)kwlist,
&recoll_SearchDataType, &pysd)) {
@ -1002,8 +1012,8 @@ PyDoc_STRVAR(doc_Query_fetchone,
static PyObject *
Query_fetchone(PyObject *_self)
{
LOGDEB0(("Query_fetchone/next\n"));
recoll_QueryObject* self = (recoll_QueryObject*)_self;
LOGDEB(("Query_fetchone/next\n"));
if (self->query == 0 ||
the_queries.find(self->query) == the_queries.end()) {
@ -1044,7 +1054,7 @@ PyDoc_STRVAR(doc_Query_fetchmany,
static PyObject *
Query_fetchmany(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB(("Query_fetchmany\n"));
LOGDEB0(("Query_fetchmany\n"));
static const char *kwlist[] = {"size", NULL};
int size = 0;
@ -1096,7 +1106,7 @@ PyDoc_STRVAR(doc_Query_scroll,
static PyObject *
Query_scroll(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB(("Query_scroll\n"));
LOGDEB0(("Query_scroll\n"));
static const char *kwlist[] = {"position", "mode", NULL};
int pos = 0;
char *smode = 0;
@ -1183,7 +1193,7 @@ public:
static PyObject *
Query_highlight(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB1(("Query_highlight\n"));
LOGDEB0(("Query_highlight\n"));
static const char *kwlist[] = {"text", "ishtml", "eolbr", "methods", NULL};
char *sutf8 = 0; // needs freeing
int ishtml = 0;
@ -1205,7 +1215,7 @@ Query_highlight(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
ishtml = 1;
if (eolbrobj && !PyObject_IsTrue(eolbrobj))
eolbr = 0;
LOGDEB(("Query_highlight: ishtml %d\n", ishtml));
LOGDEB0(("Query_highlight: ishtml %d\n", ishtml));
if (self->query == 0 ||
the_queries.find(self->query) == the_queries.end()) {
@ -1243,7 +1253,7 @@ PyDoc_STRVAR(doc_Query_makedocabstract,
static PyObject *
Query_makedocabstract(recoll_QueryObject* self, PyObject *args,PyObject *kwargs)
{
LOGDEB(("Query_makeDocAbstract\n"));
LOGDEB0(("Query_makeDocAbstract\n"));
static const char *kwlist[] = {"doc", "methods", NULL};
recoll_DocObject *pydoc = 0;
PyObject *hlmethods = 0;
@ -1313,7 +1323,7 @@ PyDoc_STRVAR(doc_Query_getxquery,
static PyObject *
Query_getxquery(recoll_QueryObject* self, PyObject *, PyObject *)
{
LOGDEB(("Query_getxquery self->query %p\n"));
LOGDEB0(("Query_getxquery self->query %p\n", self->query));
if (self->query == 0 ||
the_queries.find(self->query) == the_queries.end()) {
@ -1341,7 +1351,7 @@ PyDoc_STRVAR(doc_Query_getgroups,
static PyObject *
Query_getgroups(recoll_QueryObject* self, PyObject *, PyObject *)
{
LOGDEB(("Query_getxquery\n"));
LOGDEB0(("Query_getgroups\n"));
if (self->query == 0 ||
the_queries.find(self->query) == the_queries.end()) {
@ -1483,27 +1493,31 @@ typedef struct recoll_DbObject {
Rcl::Db *db;
} recoll_DbObject;
static void
static PyObject *
Db_close(recoll_DbObject *self)
{
LOGDEB(("Db_close\n"));
if (self->db)
LOGDEB(("Db_close. self %p\n", self));
if (self->db) {
the_dbs.erase(self->db);
delete self->db;
self->db = 0;
delete self->db;
self->db = 0;
}
Py_RETURN_NONE;
}
static void
Db_dealloc(recoll_DbObject *self)
{
LOGDEB(("Db_dealloc\n"));
Db_close(self);
PyObject *ret = Db_close(self);
Py_DECREF(ret);
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
Db_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
LOGDEB2(("Db_new\n"));
recoll_DbObject *self;
self = (recoll_DbObject *)type->tp_alloc(type, 0);
@ -1609,14 +1623,13 @@ Db_query(recoll_DbObject* self)
Py_INCREF(self);
the_queries.insert(result->query);
Py_INCREF(result);
return (PyObject *)result;
}
static PyObject *
Db_setAbstractParams(recoll_DbObject *self, PyObject *args, PyObject *kwargs)
{
LOGDEB(("Db_setAbstractParams\n"));
LOGDEB0(("Db_setAbstractParams\n"));
static const char *kwlist[] = {"maxchars", "contextwords", NULL};
int ctxwords = -1, maxchars = -1;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii", (char**)kwlist,
@ -1627,7 +1640,7 @@ Db_setAbstractParams(recoll_DbObject *self, PyObject *args, PyObject *kwargs)
PyErr_SetString(PyExc_AttributeError, "db id not found");
return 0;
}
LOGDEB(("Db_setAbstractParams: mxchrs %d, ctxwrds %d\n", maxchars, ctxwords));
LOGDEB0(("Db_setAbstractParams: mxchrs %d, ctxwrds %d\n", maxchars, ctxwords));
self->db->setAbstractParams(-1, maxchars, ctxwords);
Py_RETURN_NONE;
}
@ -1635,7 +1648,7 @@ Db_setAbstractParams(recoll_DbObject *self, PyObject *args, PyObject *kwargs)
static PyObject *
Db_makeDocAbstract(recoll_DbObject* self, PyObject *args)
{
LOGDEB(("Db_makeDocAbstract\n"));
LOGDEB0(("Db_makeDocAbstract\n"));
recoll_DocObject *pydoc = 0;
recoll_QueryObject *pyquery = 0;
if (!PyArg_ParseTuple(args, "O!O!:Db_makeDocAbstract",
@ -1680,7 +1693,7 @@ PyDoc_STRVAR(doc_Db_termMatch,
static PyObject *
Db_termMatch(recoll_DbObject* self, PyObject *args, PyObject *kwargs)
{
LOGDEB(("Db_termMatch\n"));
LOGDEB0(("Db_termMatch\n"));
static const char *kwlist[] = {"type", "expr", "field", "maxlen",
"casesens", "diacsens", "lang", NULL};
char *tp = 0;
@ -1749,9 +1762,9 @@ out:
static PyObject *
Db_needUpdate(recoll_DbObject* self, PyObject *args, PyObject *kwds)
{
LOGDEB0(("Db_needUpdate\n"));
char *udi = 0; // needs freeing
char *sig = 0; // needs freeing
LOGDEB(("Db_needUpdate\n"));
if (!PyArg_ParseTuple(args, "eses:Db_needUpdate",
"utf-8", &udi, "utf-8", &sig)) {
return 0;
@ -1772,8 +1785,8 @@ Db_needUpdate(recoll_DbObject* self, PyObject *args, PyObject *kwds)
static PyObject *
Db_delete(recoll_DbObject* self, PyObject *args, PyObject *kwds)
{
LOGDEB0(("Db_delete\n"));
char *udi = 0; // needs freeing
LOGDEB(("Db_delete\n"));
if (!PyArg_ParseTuple(args, "es:Db_delete", "utf-8", &udi)) {
return 0;
}
@ -1791,6 +1804,7 @@ Db_delete(recoll_DbObject* self, PyObject *args, PyObject *kwds)
static PyObject *
Db_purge(recoll_DbObject* self)
{
LOGDEB0(("Db_purge\n"));
if (self->db == 0 || the_dbs.find(self->db) == the_dbs.end()) {
LOGERR(("Db_purge: db not found %p\n", self->db));
PyErr_SetString(PyExc_AttributeError, "db");
@ -1803,7 +1817,7 @@ Db_purge(recoll_DbObject* self)
static PyObject *
Db_addOrUpdate(recoll_DbObject* self, PyObject *args, PyObject *)
{
LOGDEB(("Db_addOrUpdate\n"));
LOGDEB0(("Db_addOrUpdate\n"));
char *sudi = 0; // needs freeing
char *sparent_udi = 0; // needs freeing
recoll_DocObject *pydoc;
@ -1944,6 +1958,7 @@ static PyTypeObject recoll_DbType = {
static PyObject *
recoll_connect(PyObject *self, PyObject *args, PyObject *kwargs)
{
LOGDEB2(("recoll_connect\n"));
recoll_DbObject *db = (recoll_DbObject *)
PyObject_Call((PyObject *)&recoll_DbType, args, kwargs);
return (PyObject *)db;

0
src/python/samples/recollqsd.py Normal file → Executable file
View file

View file

@ -583,11 +583,11 @@ Klepněte na tlačítko Zrušit pro úpravu souboru s nastavením, předtím ne
</message>
<message>
<source>Default character set</source>
<translation>Výchozí znaková sada</translation>
<translation type="obsolete">Výchozí znaková sada</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Toto je znaková sada, která se používá pro čtení souborů, které svou znakovou sadu vnitřně neurčují, např.. soubory s textem.&lt;br&gt;Výchozí hodnota je prázdná a používá se hodnota prostředí NLS.</translation>
<translation type="obsolete">Toto je znaková sada, která se používá pro čtení souborů, které svou znakovou sadu vnitřně neurčují, např.. soubory s textem.&lt;br&gt;Výchozí hodnota je prázdná a používá se hodnota prostředí NLS.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -617,6 +617,14 @@ Klepněte na tlačítko Zrušit pro úpravu souboru s nastavením, předtím ne
<source>Web history</source>
<translation>Historie webu</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -837,7 +845,7 @@ Prověřte soubor mimeconf</translation>
</message>
<message>
<source>Document category filter</source>
<translation>Filtr pro skupinu dokumentu</translation>
<translation type="obsolete">Filtr pro skupinu dokumentu</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -969,20 +977,57 @@ Prověřte soubor mimeconf</translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>Rejstřík není pro tento soubor nejnovější. Ukázání nesprávného záznamu bylo zamítnuto.</translation>
<translation type="obsolete">Rejstřík není pro tento soubor nejnovější. Ukázání nesprávného záznamu bylo zamítnuto.</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Klepněte na tlačítko pro aktualizaci rejstříku pro tento soubor, potom dotaz, bude rejstříkování hotovo, spusťte znovu. Jinak klepněte na Zrušit.</translation>
<translation type="obsolete">Klepněte na tlačítko pro aktualizaci rejstříku pro tento soubor, potom dotaz, bude rejstříkování hotovo, spusťte znovu. Jinak klepněte na Zrušit.</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>Rejstříkovač běží, takže věci by se po dokončení rejstříkování měly zlepšit</translation>
<translation type="obsolete">Rejstříkovač běží, takže věci by se po dokončení rejstříkování měly zlepšit</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Podřízené dokumenty a přílohy</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Zdvojené dokumenty</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Tyto adresy ( | ipath) sdílejí totožný obsah:</translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1016,11 +1061,11 @@ Prověřte soubor mimeconf</translation>
</message>
<message>
<source>Search tools</source>
<translation>Nástroje pro hledání</translation>
<translation type="obsolete">Nástroje pro hledání</translation>
</message>
<message>
<source>Result list</source>
<translation>Seznam s výsledky</translation>
<translation type="obsolete">Seznam s výsledky</translation>
</message>
<message>
<source>&amp;About Recoll</source>
@ -1108,7 +1153,7 @@ Prověřte soubor mimeconf</translation>
</message>
<message>
<source>All</source>
<translation>Vše</translation>
<translation type="obsolete">Vše</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1414,11 +1459,11 @@ Prověřte soubor mimeconf</translation>
</message>
<message>
<source>Duplicate documents</source>
<translation>Zdvojené dokumenty</translation>
<translation type="obsolete">Zdvojené dokumenty</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation>Tyto adresy ( | ipath) sdílejí totožný obsah:</translation>
<translation type="obsolete">Tyto adresy ( | ipath) sdílejí totožný obsah:</translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1573,6 +1618,10 @@ Prověřte soubor mimeconf</translation>
<source>Show subdocuments / attachments</source>
<translation>Ukázat podřízené dokumenty/přílohy</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2418,6 +2467,22 @@ To pomůže při prohledávání velmi velkých textových souborů (např. soub
<translation>Vnější filtry pracující déle než po tak dlouhou dobu budou přerušeny. Je to pro ten zřídkavý případ (např. postscript), kdy by dokument mohl zapříčinit vejití filtru do smyčky. Nastavte na -1 pro žádné omezení.
</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2598,7 +2663,7 @@ To pomůže při prohledávání velmi velkých textových souborů (např. soub
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Zobrazit skupinový filtr jako nástrojový pruh místo tlačítkového panelu (potřebuje spustit program znovu).</translation>
<translation type="obsolete">Zobrazit skupinový filtr jako nástrojový pruh místo tlačítkového panelu (potřebuje spustit program znovu).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2846,5 +2911,25 @@ Výchozí hodnota je 2 (procenta).</translation>
<source>Resets the Snippets window style</source>
<translation>Nastaví znovu styl okna s úryvky</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -582,11 +582,11 @@ Voreinstellung: leer.</translation>
</message>
<message>
<source>Default character set</source>
<translation>Standard-Zeichensatz</translation>
<translation type="obsolete">Standard-Zeichensatz</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>DIes ist der Zeichensatz, der für Dateien benutzt wird, die
<translation type="obsolete">DIes ist der Zeichensatz, der für Dateien benutzt wird, die
ihren Zeichensatz nicht intern definieren, z.B. Textdateien.
Der Standardwert ist leer und der Wert der NLS-Umgebung wird benutzt.</translation>
</message>
@ -620,6 +620,14 @@ Der Standardwert ist &quot;Nein&quot;, um doppelte Indizierung zu vermeiden.</tr
<source>Web history</source>
<translation>Web-Chronik</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -836,7 +844,7 @@ Please check the mimeconf file</source>
</message>
<message>
<source>Document category filter</source>
<translation>Filter für Dokumenten-Kategorie</translation>
<translation type="obsolete">Filter für Dokumenten-Kategorie</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -965,20 +973,57 @@ Please check the mimeview file</source>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>Der Index ist für diese Datei nicht mehr aktuell. Einträge könnten fehlerhaft sein und werden nicht angezeigt.</translation>
<translation type="obsolete">Der Index ist für diese Datei nicht mehr aktuell. Einträge könnten fehlerhaft sein und werden nicht angezeigt.</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Drücken Sie Ok, um den Index für diese Datei zu aktualisieren und die Suche daraufhin zu wiederholen. Ansonsten drücken Sie auf Abbrechen.</translation>
<translation type="obsolete">Drücken Sie Ok, um den Index für diese Datei zu aktualisieren und die Suche daraufhin zu wiederholen. Ansonsten drücken Sie auf Abbrechen.</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>Indizierung ist im Gange. Die Resultate sollten sich nach der Fertigstelltung verbessert haben</translation>
<translation type="obsolete">Indizierung ist im Gange. Die Resultate sollten sich nach der Fertigstelltung verbessert haben</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Untergeordnete Dokumente und Anhänge</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Doppelte Dokumente</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Diese URLs ( | ipath) sind inhaltsgleich:</translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1012,11 +1057,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Suchwerkzeuge</translation>
<translation type="obsolete">Suchwerkzeuge</translation>
</message>
<message>
<source>Result list</source>
<translation>Ergebnisliste</translation>
<translation type="obsolete">Ergebnisliste</translation>
</message>
<message>
<source>&amp;About Recoll</source>
@ -1104,7 +1149,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>Alle</translation>
<translation type="obsolete">Alle</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1402,12 +1447,12 @@ Please check the mimeview file</source>
</message>
<message>
<source>Duplicate documents</source>
<translation>Doppelte Dokumente</translation>
<translation type="obsolete">Doppelte Dokumente</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translatorcomment>ipath?</translatorcomment>
<translation>Diese URLs ( | ipath) sind inhaltsgleich:</translation>
<translation type="obsolete">Diese URLs ( | ipath) sind inhaltsgleich:</translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1554,6 +1599,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation>Untergeordnete Dokumente / Anhänge anzeigen</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2406,6 +2455,22 @@ Auf -1 setzen, um keine Obergrenze zu haben.</translation>
Das ist für den seltenen Fall (Postscript), in dem ein Dokument eine unendliche Schleife auslöst.
Auf -1 setzen, um keine Obergrenze zu haben.</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2583,7 +2648,7 @@ für Ergebnisse</translation>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Kategorie-Filter in Werkzeugleiste statt als Radio-Buttons (Neustart erforderlich)</translation>
<translation type="obsolete">Kategorie-Filter in Werkzeugleiste statt als Radio-Buttons (Neustart erforderlich)</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2823,5 +2888,25 @@ und vermindern den Nutzender automatischen Phrasen. Der Standardwert ist 2.</tra
<source>Resets the Snippets window style</source>
<translation>Setzt das Schnipsel-Fenster Style Sheet auf den Standardwert zurück</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -565,11 +565,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Default character set</source>
<translation>Προκαθορισμένο σύνολο χαρακτήρων</translation>
<translation type="obsolete">Προκαθορισμένο σύνολο χαρακτήρων</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Το σύνολο των χαρακτήρων που χρησιμοποιείται για την ανάγνωση των αρχείων στα οποία δεν μπορεί να αναγνωριστεί το σύνολο χαρακτήρων με εσωτερικό τρόπο, για παράδειγμα τα αρχεία απλού κειμένου.&lt;br&gt;Η προκαθορισμένη τιμή είναι κενή, και το πρόγραμμα χρησιμοποιεί αυτή του περιβάλλοντος.</translation>
<translation type="obsolete">Το σύνολο των χαρακτήρων που χρησιμοποιείται για την ανάγνωση των αρχείων στα οποία δεν μπορεί να αναγνωριστεί το σύνολο χαρακτήρων με εσωτερικό τρόπο, για παράδειγμα τα αρχεία απλού κειμένου.&lt;br&gt;Η προκαθορισμένη τιμή είναι κενή, και το πρόγραμμα χρησιμοποιεί αυτή του περιβάλλοντος.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -595,6 +595,14 @@ p, li { white-space: pre-wrap; }
<source>Web history</source>
<translation>Ιστορικό ιστού</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -713,7 +721,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Document category filter</source>
<translation>Φίλτρο κατηγοριών των εγγράφων</translation>
<translation type="obsolete">Φίλτρο κατηγοριών των εγγράφων</translation>
</message>
<message>
<source>Could not open external index. Db not open. Check external indexes list.</source>
@ -931,20 +939,57 @@ Please check the mimeview file</source>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>Η δεικτοδότηση δεν είναι ενημερωμένηη για αυτό το αρχείο. Πιθανός κίνδυνος εμφάνισης μιας λανθασμένης εισαγωγής.</translation>
<translation type="obsolete">Η δεικτοδότηση δεν είναι ενημερωμένηη για αυτό το αρχείο. Πιθανός κίνδυνος εμφάνισης μιας λανθασμένης εισαγωγής.</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Κάντε κλικ στο Εντάξει για να ενημερώσετε τη δεικτοδότηση για αυτό το αρχείο, και στη συνέχεια επανεκκινήστε την αναζήτηση όταν θα έχει ολοκληρωθεί η δημιουργία του ευρετηρίου. Διαφορετικά, κλικ στο Ακύρωση.</translation>
<translation type="obsolete">Κάντε κλικ στο Εντάξει για να ενημερώσετε τη δεικτοδότηση για αυτό το αρχείο, και στη συνέχεια επανεκκινήστε την αναζήτηση όταν θα έχει ολοκληρωθεί η δημιουργία του ευρετηρίου. Διαφορετικά, κλικ στο Ακύρωση.</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>Η δημιουργία του ευρετηρίου βρίσκεται σε εξέλιξη, το αρχείο θα ενημερωθεί μετά το πέρας της ενημέρωσης</translation>
<translation type="obsolete">Η δημιουργία του ευρετηρίου βρίσκεται σε εξέλιξη, το αρχείο θα ενημερωθεί μετά το πέρας της ενημέρωσης</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Υπο-έγγραφα και συνημμένα</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Διπλότυπα έγγραφα</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Αυτά τα URL (| ipath) μοιράζονται το ίδιο περιεχόμενο:</translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -954,15 +999,15 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>Όλα</translation>
<translation type="obsolete">Όλα</translation>
</message>
<message>
<source>Search tools</source>
<translation>Εργαλεία αναζήτησης</translation>
<translation type="obsolete">Εργαλεία αναζήτησης</translation>
</message>
<message>
<source>Result list</source>
<translation>Λίστα αποτελεσμάτων</translation>
<translation type="obsolete">Λίστα αποτελεσμάτων</translation>
</message>
<message>
<source>&amp;File</source>
@ -1356,11 +1401,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Duplicate documents</source>
<translation>Διπλότυπα έγγραφα</translation>
<translation type="obsolete">Διπλότυπα έγγραφα</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation>Αυτά τα URL (| ipath) μοιράζονται το ίδιο περιεχόμενο:</translation>
<translation type="obsolete">Αυτά τα URL (| ipath) μοιράζονται το ίδιο περιεχόμενο:</translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1511,6 +1556,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation>Εμφάνιση των υπο-εγγράφων / συνημμένων</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2105,6 +2154,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation>Τα εξωτερικά φίλτρα σε λειτουργία μεγαλύτερη από αυτό θα διακόπτονται. Χρήσιμο για τη σπάνια περίπτωση (π.χ. postscript) όπου ένα έγγραφο μπορεί να προκαλέσει ένα βρόγχο στο φίλτρο. Ορίστε το σε -1 για να αφαιρέσετε το όριο.</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2277,7 +2342,7 @@ This will help searching very big text files (ie: log files).</source>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Εμφάνιση φίλτρ. κατηγορίας ως γρ. εργαλείων αντί για πίν. κουμπιών (απαιτεί επανεκκίνηση).</translation>
<translation type="obsolete">Εμφάνιση φίλτρ. κατηγορίας ως γρ. εργαλείων αντί για πίν. κουμπιών (απαιτεί επανεκκίνηση).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2505,5 +2570,25 @@ May be slow for big documents.</source>
<source>Resets the Snippets window style</source>
<translation>Επαναφορά του στυλ του παραθύρου αποσπασμάτων</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -574,11 +574,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Conjunto de caracteres por defecto </translation>
<translation type="obsolete">Conjunto de caracteres por defecto </translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Este es el conjunto de caracteres usado para leer archivos que no son identificados internamente, por ejemplo, archivos de texto puro.&lt;br&gt;El valor por defecto está vacío, y el valor del ambiente NLS es usado.</translation>
<translation type="obsolete">Este es el conjunto de caracteres usado para leer archivos que no son identificados internamente, por ejemplo, archivos de texto puro.&lt;br&gt;El valor por defecto está vacío, y el valor del ambiente NLS es usado.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -608,6 +608,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation>Historial Web</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -828,7 +836,7 @@ Por favor revise el fichero mimeconf</translation>
</message>
<message>
<source>Document category filter</source>
<translation>Filtro de categorías de documentos</translation>
<translation type="obsolete">Filtro de categorías de documentos</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -959,20 +967,57 @@ Por favor revise el archivo mimeconf</translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>El índice no está actualizado para este archivo. Rehusando mostrar la entrada equivocada.</translation>
<translation type="obsolete">El índice no está actualizado para este archivo. Rehusando mostrar la entrada equivocada.</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Presione Ok para actualizar el índice para este archivo, y ejecute de nuevo la consulta cuando la indexación termine. En caso contrario, cancele.</translation>
<translation type="obsolete">Presione Ok para actualizar el índice para este archivo, y ejecute de nuevo la consulta cuando la indexación termine. En caso contrario, cancele.</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>El indexador está en ejecución, así que las cosas deberían mejorar cuando termine</translation>
<translation type="obsolete">El indexador está en ejecución, así que las cosas deberían mejorar cuando termine</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Sub-documentos y adjuntos</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Documentos duplicados</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Estos URLs ( | ipath) comparten el mismo contenido: </translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -982,11 +1027,11 @@ Por favor revise el archivo mimeconf</translation>
</message>
<message>
<source>Search tools</source>
<translation>Herramientas de búsqueda</translation>
<translation type="obsolete">Herramientas de búsqueda</translation>
</message>
<message>
<source>Result list</source>
<translation>Lista de resultados</translation>
<translation type="obsolete">Lista de resultados</translation>
</message>
<message>
<source>&amp;File</source>
@ -1098,7 +1143,7 @@ Por favor revise el archivo mimeconf</translation>
</message>
<message>
<source>All</source>
<translation>Todo</translation>
<translation type="obsolete">Todo</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1396,11 +1441,11 @@ Por favor revise el archivo mimeconf</translation>
</message>
<message>
<source>Duplicate documents</source>
<translation>Documentos duplicados</translation>
<translation type="obsolete">Documentos duplicados</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation>Estos URLs ( | ipath) comparten el mismo contenido: </translation>
<translation type="obsolete">Estos URLs ( | ipath) comparten el mismo contenido: </translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1559,6 +1604,10 @@ Por favor revise el archivo mimeconf</translation>
<source>Show subdocuments / attachments</source>
<translation>Mostrar subdocumentos / adjuntos</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2185,6 +2234,22 @@ Esto ayuda con las búsquedas de archivos de texto muy grandes (ej: archivos de
</source>
<translation>Filtros externos que se ejecuten por más tiempo del establecido serán detenidos. Esto es por el caso inusual (ej: postscript) dónde un documento puede causar que un filtro entre en un ciclo infinito. Establezca el número -1 para indicar que no hay límite.</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2365,7 +2430,7 @@ Esto ayuda con las búsquedas de archivos de texto muy grandes (ej: archivos de
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Mostrar filtros de categorías como barra de herramientas en lugar de panel de botones (necesita reinicio).</translation>
<translation type="obsolete">Mostrar filtros de categorías como barra de herramientas en lugar de panel de botones (necesita reinicio).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2601,5 +2666,25 @@ El valor por defecto es 2 (por ciento).</translation>
<source>Resets the Snippets window style</source>
<translation>Establece el valor por defecto para el estilo de la ventana de Fragmentos</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -582,11 +582,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Jeu de caractères par défaut</translation>
<translation type="obsolete">Jeu de caractères par défaut</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Jeu de caractères utilisé pour lire les fichiers qui ne l&apos;identifient pas de manière interne, par exemple les fichiers de texte pur. &lt;br&gt;La valeur par défaut est vide, et le programme utilise l&apos;environnement.</translation>
<translation type="obsolete">Jeu de caractères utilisé pour lire les fichiers qui ne l&apos;identifient pas de manière interne, par exemple les fichiers de texte pur. &lt;br&gt;La valeur par défaut est vide, et le programme utilise l&apos;environnement.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -616,6 +616,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation>Historique Web</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -844,7 +852,7 @@ Vérifier le fichier mimeconf</translation>
</message>
<message>
<source>Document category filter</source>
<translation>Filtre de catégories de documents</translation>
<translation type="obsolete">Filtre de catégories de documents</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -975,20 +983,57 @@ Please check the mimeview file</source>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>L&apos;index n&apos;est pas à jour pour ce fichier. Il y aurait un risque d&apos;afficher une entrée incorrecte</translation>
<translation type="obsolete">L&apos;index n&apos;est pas à jour pour ce fichier. Il y aurait un risque d&apos;afficher une entrée incorrecte</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Cliquer Ok pour mettre à jour l&apos;index pour ce fichier, puis relancer la recherche quand l&apos;indexation est terminée. Sinon cliquer Annuler</translation>
<translation type="obsolete">Cliquer Ok pour mettre à jour l&apos;index pour ce fichier, puis relancer la recherche quand l&apos;indexation est terminée. Sinon cliquer Annuler</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>L&apos;indexeur est en cours d&apos;execution, le fichier devrait être mis à jour</translation>
<translation type="obsolete">L&apos;indexeur est en cours d&apos;execution, le fichier devrait être mis à jour</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Sous-documents et attachements</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Documents identiques</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Ces URLs(| ipath) partagent le même contenu</translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1022,11 +1067,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Outils de recherche</translation>
<translation type="obsolete">Outils de recherche</translation>
</message>
<message>
<source>Result list</source>
<translation>Liste de résultats</translation>
<translation type="obsolete">Liste de résultats</translation>
</message>
<message>
<source>&amp;About Recoll</source>
@ -1114,7 +1159,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>Tout</translation>
<translation type="obsolete">Tout</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1428,11 +1473,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Duplicate documents</source>
<translation>Documents identiques</translation>
<translation type="obsolete">Documents identiques</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation>Ces URLs(| ipath) partagent le même contenu</translation>
<translation type="obsolete">Ces URLs(| ipath) partagent le même contenu</translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1587,6 +1632,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation>Afficher les sous-documents et attachements</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2498,6 +2547,22 @@ Ceci diminue les ressources consommées par l&apos;indexation et aide le chargem
</source>
<translation>Un filtre externe qui prend plus de temps sera arrêté. Traite le cas rare (possible avec postscript par exemple) un document pourrait amener un filtre à boucler sans fin. Mettre -1 pour complètement supprimer la limite (déconseillé).</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2678,7 +2743,7 @@ Ceci diminue les ressources consommées par l&apos;indexation et aide le chargem
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Afficher le filtre de catégorie comme une barre d&apos;outils plutot que comme un panneau de boutons (après le redémarrage).</translation>
<translation type="obsolete">Afficher le filtre de catégorie comme une barre d&apos;outils plutot que comme un panneau de boutons (après le redémarrage).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2926,5 +2991,25 @@ La valeur par défaut est 2%</translation>
<source>Resets the Snippets window style</source>
<translation>Réinitialise le style de la fenêtre des fragments</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -546,11 +546,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Set di caratteri di default</translation>
<translation type="obsolete">Set di caratteri di default</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Questa è la codifica caratteri usata per leggere i file che non contengono indicazioni interne sulla codifica usata, ad esempio file di testo semplice.&lt;br&gt;Il valore predefinito è vuoto, in modo che venga usata l&apos;impostazione locale del sistema.</translation>
<translation type="obsolete">Questa è la codifica caratteri usata per leggere i file che non contengono indicazioni interne sulla codifica usata, ad esempio file di testo semplice.&lt;br&gt;Il valore predefinito è vuoto, in modo che venga usata l&apos;impostazione locale del sistema.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -576,6 +576,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -777,10 +785,6 @@ Verifica il file mimeconf</translation>
<source>Missing helper programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document category filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
<translation type="unfinished"></translation>
@ -899,22 +903,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -948,11 +977,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Strumenti di ricerca</translation>
<translation type="obsolete">Strumenti di ricerca</translation>
</message>
<message>
<source>Result list</source>
<translation>Lista risultati</translation>
<translation type="obsolete">Lista risultati</translation>
</message>
<message>
<source>&amp;About Recoll</source>
@ -1038,10 +1067,6 @@ Please check the mimeview file</source>
<source>&amp;Indexing configuration</source>
<translation type="obsolete">Conf&amp;igurazione indicizzazione</translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
<translation type="unfinished"></translation>
@ -1304,14 +1329,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1425,6 +1442,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2242,6 +2263,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2420,10 +2457,6 @@ This will help searching very big text files (ie: log files).</source>
<source>Choose editor applications</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
<translation>Inizia automaticamente una ricerca semplice digitando uno spazio.</translation>
@ -2639,5 +2672,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -541,11 +541,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Default character set</source>
<translation>Numatytoji simbolių aibė</translation>
<translation type="obsolete">Numatytoji simbolių aibė</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Pasirinkta simbolių aibė bus naudojama skaityti bylų, kurių simbolių aibės nepavyksta nustatyti, turiniui.&lt;br&gt;Numatytoji vertė yra nepasirinkti konkrečios simbolių aibės - tokiu atveju naudojama NLS aplinkos vertė.</translation>
<translation type="obsolete">Pasirinkta simbolių aibė bus naudojama skaityti bylų, kurių simbolių aibės nepavyksta nustatyti, turiniui.&lt;br&gt;Numatytoji vertė yra nepasirinkti konkrečios simbolių aibės - tokiu atveju naudojama NLS aplinkos vertė.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -575,6 +575,14 @@ p, li { white-space: pre-wrap; }
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -798,7 +806,7 @@ Prašome patikrinti mimeconf bylą</translation>
</message>
<message>
<source>Document category filter</source>
<translation>Dokumentų kategorijų filtras</translation>
<translation type="obsolete">Dokumentų kategorijų filtras</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -919,22 +927,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -944,11 +977,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Paieškos įrankiai</translation>
<translation type="obsolete">Paieškos įrankiai</translation>
</message>
<message>
<source>Result list</source>
<translation>Rezultatų sąrašas</translation>
<translation type="obsolete">Rezultatų sąrašas</translation>
</message>
<message>
<source>&amp;File</source>
@ -1060,7 +1093,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>Visi</translation>
<translation type="obsolete">Visi</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1344,14 +1377,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1489,6 +1514,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2357,6 +2386,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2537,7 +2582,7 @@ This will help searching very big text files (ie: log files).</source>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Kategorijų filtrą rodyti kaip įrankų juostą (reikalauja perkrovimo).</translation>
<translation type="obsolete">Kategorijų filtrą rodyti kaip įrankų juostą (reikalauja perkrovimo).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2753,5 +2798,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -579,11 +579,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Кодировка по умолчанию</translation>
<translation type="obsolete">Кодировка по умолчанию</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Эта кодировка будет использована при чтении файлов, в которых таковая не указывается явно (например, чисто текстовых файлов).&lt;br&gt;Обычно значение пусто, тогда оно извлекается из окружения (локали).</translation>
<translation type="obsolete">Эта кодировка будет использована при чтении файлов, в которых таковая не указывается явно (например, чисто текстовых файлов).&lt;br&gt;Обычно значение пусто, тогда оно извлекается из окружения (локали).</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -613,6 +613,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation>Посещённые web-страницы</translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -841,7 +849,7 @@ Please check the mimeconf file</source>
</message>
<message>
<source>Document category filter</source>
<translation>Фильтр категории документа</translation>
<translation type="obsolete">Фильтр категории документа</translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -973,20 +981,57 @@ Please check the mimeview file</source>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation>Индекс для этого файла устарел. Отказываюсь рисковать показывать неправильную запись.</translation>
<translation type="obsolete">Индекс для этого файла устарел. Отказываюсь рисковать показывать неправильную запись.</translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation>Нажмите ОК, чтобы обновить индекс для файла, и перезапустите очередь по окончании. Или нажмите Отмена.</translation>
<translation type="obsolete">Нажмите ОК, чтобы обновить индекс для файла, и перезапустите очередь по окончании. Или нажмите Отмена.</translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation>Индексация выполняется, так что по завершении положение должно улучшиться</translation>
<translation type="obsolete">Индексация выполняется, так что по завершении положение должно улучшиться</translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation>Вложенные документы</translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished">Дублированные документы</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished">Данные URL ( | индексные пути) имеют одно и то же содержимое:</translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1012,11 +1057,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Инструменты поиска</translation>
<translation type="obsolete">Инструменты поиска</translation>
</message>
<message>
<source>Result list</source>
<translation>Список результатов</translation>
<translation type="obsolete">Список результатов</translation>
</message>
<message>
<source>E&amp;xit</source>
@ -1112,7 +1157,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>все</translation>
<translation type="obsolete">все</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1414,11 +1459,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Duplicate documents</source>
<translation>Дублированные документы</translation>
<translation type="obsolete">Дублированные документы</translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation>Данные URL ( | индексные пути) имеют одно и то же содержимое:</translation>
<translation type="obsolete">Данные URL ( | индексные пути) имеют одно и то же содержимое:</translation>
</message>
<message>
<source>Result count (est.)</source>
@ -1573,6 +1618,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation>Показать вложенные документы</translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2461,6 +2510,22 @@ This will help searching very big text files (ie: log files).</source>
<translation>Внешние фильтры, выполняющиеся дольше указанного предельного времени работы, принудительно завершаются. Это может помочь в тех редких случаях, когда фильтр (например, postscript) зацикливается при обработке некоторого документа. Значение, равное -1, выключает проверку времени работы.
</translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2641,7 +2706,7 @@ This will help searching very big text files (ie: log files).</source>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation>Показывать фильтр категории документа в виде выпадающего списка, а не панели с кнопками (требуется перезапуск).</translation>
<translation type="obsolete">Показывать фильтр категории документа в виде выпадающего списка, а не панели с кнопками (требуется перезапуск).</translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2881,5 +2946,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation>Сбрасывает стиль окна Фрагменты</translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -547,11 +547,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Öntanımlı karakter seti</translation>
<translation type="obsolete">Öntanımlı karakter seti</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Bu karakter seti, karakter kodlaması uygulama tarafından belirlenemeyen dosyalar için kulanılır, Örneğin salt metin dosyaları.&lt;br&gt;Öntanımlı değer boştur ve NLS çevresel değişkeni kullanılır.</translation>
<translation type="obsolete">Bu karakter seti, karakter kodlaması uygulama tarafından belirlenemeyen dosyalar için kulanılır, Örneğin salt metin dosyaları.&lt;br&gt;Öntanımlı değer boştur ve NLS çevresel değişkeni kullanılır.</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -577,6 +577,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -778,10 +786,6 @@ Lütfen mimeconf dosyasını kontrol edin</translation>
<source>Missing helper programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document category filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
<translation type="unfinished"></translation>
@ -900,22 +904,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -925,11 +954,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Arama araçları</translation>
<translation type="obsolete">Arama araçları</translation>
</message>
<message>
<source>Result list</source>
<translation>Sonuç listesi</translation>
<translation type="obsolete">Sonuç listesi</translation>
</message>
<message>
<source>&amp;File</source>
@ -1039,10 +1068,6 @@ Please check the mimeview file</source>
<source>&amp;Indexing configuration</source>
<translation type="obsolete">İ&amp;ndeksleme yapılandırması </translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
<translation type="unfinished"></translation>
@ -1305,14 +1330,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1426,6 +1443,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2242,6 +2263,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2420,10 +2457,6 @@ This will help searching very big text files (ie: log files).</source>
<source>Choose editor applications</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
<translation>Beyaz alan girdisi olduğunda basit aramayı otomatik olarak başlat.</translation>
@ -2639,5 +2672,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -548,11 +548,11 @@ Click Cancel if you want to edit the configuration file before indexing starts,
</message>
<message>
<source>Default character set</source>
<translation>Типове кодування</translation>
<translation type="obsolete">Типове кодування</translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>Кодування, яке буде застосовано при читанні файлів, які не вказують таке особливо (наприклад, чисто текстових файлів).&lt;br&gt;Типово невказане, тоді використовується значення з оточення (локалі).</translation>
<translation type="obsolete">Кодування, яке буде застосовано при читанні файлів, які не вказують таке особливо (наприклад, чисто текстових файлів).&lt;br&gt;Типово невказане, тоді використовується значення з оточення (локалі).</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -578,6 +578,14 @@ Click Cancel if you want to edit the configuration file before indexing starts,
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -799,10 +807,6 @@ Please check the mimeconf file</source>
<source>Choose a file name to save under</source>
<translation type="obsolete">Оберіть ім&apos;я файла для збереження</translation>
</message>
<message>
<source>Document category filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
<translation type="unfinished"></translation>
@ -921,22 +925,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -962,11 +991,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation>Інструменти пошуку</translation>
<translation type="obsolete">Інструменти пошуку</translation>
</message>
<message>
<source>Result list</source>
<translation>Список результатів</translation>
<translation type="obsolete">Список результатів</translation>
</message>
<message>
<source>E&amp;xit</source>
@ -1062,7 +1091,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation>всі</translation>
<translation type="obsolete">всі</translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1334,14 +1363,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1455,6 +1476,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2287,6 +2312,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2465,10 +2506,6 @@ This will help searching very big text files (ie: log files).</source>
<source>Choose editor applications</source>
<translation>Оберіть редактори</translation>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
<translation>Починати простий пошук при введенні пробілу.</translation>
@ -2684,5 +2721,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -511,14 +511,6 @@ p, li { white-space: pre-wrap; }
<source>These are patterns for file or directory names which should not be indexed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Follow symbolic links</source>
<translation type="unfinished"></translation>
@ -543,6 +535,14 @@ p, li { white-space: pre-wrap; }
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -730,10 +730,6 @@ p, li { white-space: pre-wrap; }
<source>Missing helper programs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document category filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
<translation type="unfinished"></translation>
@ -848,22 +844,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -871,14 +892,6 @@ Please check the mimeview file</source>
<source>Recoll</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search tools</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result list</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;File</source>
<translation type="unfinished"></translation>
@ -979,10 +992,6 @@ Please check the mimeview file</source>
<source>External index dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
<translation type="unfinished"></translation>
@ -1221,14 +1230,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1311,6 +1312,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -1842,6 +1847,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -1992,10 +2013,6 @@ This will help searching very big text files (ie: log files).</source>
<source>Choose editor applications</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
<translation type="unfinished"></translation>
@ -2205,5 +2222,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -612,11 +612,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Default character set</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>使&lt;br&gt;使</translation>
<translation type="obsolete">使&lt;br&gt;使</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -646,6 +646,14 @@ p, li { white-space: pre-wrap; }
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -868,7 +876,7 @@ Please check the mimeconf file</source>
</message>
<message>
<source>Document category filter</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -993,22 +1001,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1018,11 +1051,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>Result list</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>&amp;File</source>
@ -1134,7 +1167,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1418,14 +1451,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1575,6 +1600,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2179,6 +2208,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2351,7 +2396,7 @@ This will help searching very big text files (ie: log files).</source>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2579,5 +2624,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -612,11 +612,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Default character set</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>This is the character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation>使&lt;br&gt;使</translation>
<translation type="obsolete">使&lt;br&gt;使</translation>
</message>
<message>
<source>Follow symbolic links</source>
@ -646,6 +646,14 @@ p, li { white-space: pre-wrap; }
<source>Web history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default&lt;br&gt;character set</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Character set used for reading files which do not identify the character set internally, for example pure text files.&lt;br&gt;The default value is empty, and the value from the NLS environnement is used.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RTIToolW</name>
@ -868,7 +876,7 @@ Please check the mimeconf file</source>
</message>
<message>
<source>Document category filter</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>No external viewer configured for mime type [</source>
@ -993,22 +1001,47 @@ Please check the mimeview file</source>
<source>External applications/commands needed for your file types and not found, as stored by the last indexing pass in </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then re-run the query when indexing is done. Else, Cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Indexer running so things should improve when it&apos;s done</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Sub-documents and attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Index not up to date for this file. Refusing to risk showing the wrong entry. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Ok to update the index for this file, then you will need to re-run the query when indexing is done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The indexer is running so things should improve when it&apos;s done. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The document belongs to an external indexwhich I can&apos;t update. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click Cancel to return to the list. Click Ignore to show the preview anyway. </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Bad desktop app spec for %1: [%2]
Please check the desktop file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RclMainBase</name>
@ -1018,11 +1051,11 @@ Please check the mimeview file</source>
</message>
<message>
<source>Search tools</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>Result list</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>&amp;File</source>
@ -1134,7 +1167,7 @@ Please check the mimeview file</source>
</message>
<message>
<source>All</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>&amp;Show missing helpers</source>
@ -1418,14 +1451,6 @@ Please check the mimeview file</source>
<source>&lt;p&gt;&lt;i&gt;Alternate spellings: &lt;/i&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate documents</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>These Urls ( | ipath) share the same content:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Result count (est.)</source>
<translation type="unfinished"></translation>
@ -1575,6 +1600,10 @@ Please check the mimeview file</source>
<source>Show subdocuments / attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open With</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSearch</name>
@ -2179,6 +2208,22 @@ This will help searching very big text files (ie: log files).</source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Only mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An exclusive list of indexed mime types.&lt;br&gt;Nothing else will be indexed. Normally empty and inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude mime types</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mime types not to be indexed</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>confgui::ConfTopPanelW</name>
@ -2351,7 +2396,7 @@ This will help searching very big text files (ie: log files).</source>
</message>
<message>
<source>Display category filter as toolbar instead of button panel (needs restart).</source>
<translation></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>Auto-start simple search on whitespace entry.</source>
@ -2579,5 +2624,25 @@ The default value is 2 (percent). </source>
<source>Resets the Snippets window style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Decide if document filters are shown as radio buttons, toolbar combobox, or menu.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Document filter choice style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Buttons Panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toolbar Combobox</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -58,6 +58,7 @@
#ifdef RCL_USE_ASPELL
#include "rclaspell.h"
#endif
#include "appformime.h"
#include "respopup.h"
static const QKeySequence quitKeySeq("Ctrl+q");
@ -876,6 +877,20 @@ void ResList::linkWasClicked(const QUrl &url)
}
break;
// Open parent folder
case 'F':
{
int i = atoi(ascurl.c_str()+1) - 1;
Rcl::Doc doc;
if (!getDoc(i, doc)) {
LOGERR(("ResList::linkWasClicked: can't get doc for %d\n", i));
return;
}
emit editRequested(ResultPopup::getParent(RefCntr<DocSequence>(),
doc));
}
break;
// Show query details
case 'H':
{
@ -913,6 +928,27 @@ void ResList::linkWasClicked(const QUrl &url)
resultPageBack();
break;
// Run script. Link format Rnn|Script Name
case 'R':
{
int i = atoi(ascurl.c_str() + 1) - 1;
QString s = url.toString();
int bar = s.indexOf("|");
if (bar == -1 || bar >= s.size()-1)
break;
string cmdname = qs2utf8s(s.right(s.size() - (bar + 1)));
DesktopDb ddb(path_cat(theconfig->getConfDir(), "scripts"));
DesktopDb::AppDef app;
if (ddb.appByName(cmdname, app)) {
QAction act(QString::fromUtf8(app.name.c_str()), this);
QVariant v(QString::fromUtf8(app.command.c_str()));
act.setData(v);
m_popDoc = i;
menuOpenWith(&act);
}
}
break;
// Spelling: replacement suggestion clicked
case 'S':
{

View file

@ -77,6 +77,27 @@ QMenu *create(QWidget *me, int opts, RefCntr<DocSequence> source, Rcl::Doc& doc)
SLOT(menuOpenWith(QAction *)));
}
}
// See if there are any desktop files in $RECOLL_CONFDIR/scripts
// and possibly create a "run script" menu.
aps.clear();
ddb = new DesktopDb(path_cat(theconfig->getConfDir(), "scripts"));
if (ddb && ddb->allApps(&aps) && !aps.empty()) {
QMenu *sub = popup->addMenu(me->tr("Run Script"));
if (sub) {
for (vector<DesktopDb::AppDef>::const_iterator it = aps.begin();
it != aps.end(); it++) {
QAction *act = new
QAction(QString::fromUtf8(it->name.c_str()), me);
QVariant v(QString::fromUtf8(it->command.c_str()));
act->setData(v);
sub->addAction(act);
}
sub->connect(sub, SIGNAL(triggered(QAction *)), me,
SLOT(menuOpenWith(QAction *)));
}
}
delete ddb;
}
popup->addAction(me->tr("Copy &File Name"), me, SLOT(menuCopyFN()));
@ -120,7 +141,7 @@ Rcl::Doc getParent(RefCntr<DocSequence> source, Rcl::Doc& doc)
if (source.isNull() || !source->getEnclosing(doc, pdoc)) {
// No parent doc: show enclosing folder with app configured for
// directories
pdoc.url = path_getfather(doc.url);
pdoc.url = url_parentfolder(doc.url);
pdoc.meta[Rcl::Doc::keychildurl] = doc.url;
pdoc.meta[Rcl::Doc::keyapptg] = "parentopen";
pdoc.mimetype = "inode/directory";

View file

@ -48,6 +48,7 @@
#include "respopup.h"
#include "rclmain_w.h"
#include "multisave.h"
#include "appformime.h"
static const QKeySequence quitKeySeq("Ctrl+q");
static const QKeySequence closeKeySeq("Ctrl+w");
@ -764,6 +765,14 @@ void ResTable::linkWasClicked(const QUrl &url)
m_rclmain->newDupsW(m_detaildoc, dups);
}
}
// Open parent folder
case 'F':
{
emit editRequested(ResultPopup::getParent(RefCntr<DocSequence>(),
m_detaildoc));
}
break;
case 'P':
case 'E':
{
@ -773,6 +782,25 @@ void ResTable::linkWasClicked(const QUrl &url)
emit editRequested(m_detaildoc);
}
break;
// Run script. Link format Rnn|Script Name
case 'R':
{
int bar = s.indexOf("|");
if (bar == -1 || bar >= s.size()-1)
break;
string cmdname = qs2utf8s(s.right(s.size() - (bar + 1)));
DesktopDb ddb(path_cat(theconfig->getConfDir(), "scripts"));
DesktopDb::AppDef app;
if (ddb.appByName(cmdname, app)) {
QAction act(QString::fromUtf8(app.name.c_str()), this);
QVariant v(QString::fromUtf8(app.command.c_str()));
act.setData(v);
menuOpenWith(&act);
}
}
break;
default:
LOGERR(("ResTable::linkWasClicked: bad link [%s]\n", ascurl));
break;// ??

View file

@ -381,6 +381,11 @@ endopts:
string titleorfn = doc.meta[Rcl::Doc::keytt];
if (titleorfn.empty())
titleorfn = doc.meta[Rcl::Doc::keyfn];
if (titleorfn.empty()) {
string url;
printableUrl(rclconfig->getDefCharset(), doc.url, url);
titleorfn = path_getsimple(url);
}
char cpc[20];
sprintf(cpc, "%d", doc.pc);

View file

@ -179,6 +179,15 @@ void ResListPager::displayDoc(RclConfig *config, int i, Rcl::Doc& doc,
titleOrFilename = utf8fn;
}
// Url for the parent directory. We strip the file:// part for local
// paths
string parenturl = url_parentfolder(url);
{
string localpath = fileurltolocalpath(parenturl);
if (!localpath.empty())
parenturl = localpath;
}
// Result number
char numbuf[20];
int docnumforlinks = m_winfirst + 1 + i;
@ -286,6 +295,7 @@ void ResListPager::displayDoc(RclConfig *config, int i, Rcl::Doc& doc,
subs["L"] = linksbuf.str();
subs["N"] = numbuf;
subs["M"] = doc.mimetype;
subs["P"] = parenturl;
subs["R"] = doc.meta[Rcl::Doc::keyrr];
subs["S"] = sizebuf;
subs["T"] = maybeEscapeHtml(titleOrFilename);

View file

@ -1033,9 +1033,10 @@ bool Db::isopen()
}
// Try to translate field specification into field prefix.
bool Db::fieldToTraits(const string& fld, const FieldTraits **ftpp)
bool Db::fieldToTraits(const string& fld, const FieldTraits **ftpp,
bool isquery)
{
if (m_config && m_config->getFieldTraits(fld, ftpp))
if (m_config && m_config->getFieldTraits(fld, ftpp, isquery))
return true;
*ftpp = 0;
@ -1060,8 +1061,7 @@ class TextSplitDb : public TextSplitP {
Xapian::termpos curpos;
TextSplitDb(Xapian::Document &d, TermProc *prc)
: TextSplitP(prc),
doc(d), basepos(1), curpos(0), wdfinc(1)
: TextSplitP(prc), doc(d), basepos(1), curpos(0)
{}
// Reimplement text_to_words to insert the begin and end anchor terms.
@ -1072,7 +1072,7 @@ class TextSplitDb : public TextSplitP {
try {
// Index the possibly prefixed start term.
doc.add_posting(prefix + start_of_field_term, basepos, wdfinc);
doc.add_posting(ft.pfx + start_of_field_term, basepos, ft.wdfinc);
++basepos;
} XCATCHERROR(ermsg);
if (!ermsg.empty()) {
@ -1087,8 +1087,8 @@ class TextSplitDb : public TextSplitP {
try {
// Index the possibly prefixed end term.
doc.add_posting(prefix + end_of_field_term, basepos + curpos + 1,
wdfinc);
doc.add_posting(ft.pfx + end_of_field_term, basepos + curpos + 1,
ft.wdfinc);
++basepos;
} XCATCHERROR(ermsg);
if (!ermsg.empty()) {
@ -1103,27 +1103,17 @@ class TextSplitDb : public TextSplitP {
return true;
}
void setprefix(const string& pref)
void setTraits(const FieldTraits& ftp)
{
if (pref.empty())
prefix.clear();
else
prefix = wrap_prefix(pref);
}
void setwdfinc(int i)
{
wdfinc = i;
ft = ftp;
if (!ft.pfx.empty())
ft.pfx = wrap_prefix(ft.pfx);
}
friend class TermProcIdx;
private:
// If prefix is set, we also add a posting for the prefixed terms
// (ie: for titles, add postings for both "term" and "Sterm")
string prefix;
// Some fields have more weight
int wdfinc;
FieldTraits ft;
};
class TermProcIdx : public TermProc {
@ -1145,15 +1135,18 @@ public:
try {
// Index without prefix, using the field-specific weighting
LOGDEB1(("Emitting term at %d : [%s]\n", pos, term.c_str()));
m_ts->doc.add_posting(term, pos, m_ts->wdfinc);
if (!m_ts->ft.pfxonly)
m_ts->doc.add_posting(term, pos, m_ts->ft.wdfinc);
#ifdef TESTING_XAPIAN_SPELL
if (Db::isSpellingCandidate(term)) {
m_ts->db.add_spelling(term);
}
#endif
// Index the prefixed term.
if (!m_ts->prefix.empty()) {
m_ts->doc.add_posting(m_ts->prefix + term, pos, m_ts->wdfinc);
if (!m_ts->ft.pfx.empty()) {
m_ts->doc.add_posting(m_ts->ft.pfx + term, pos,
m_ts->ft.wdfinc);
}
return true;
} XCATCHERROR(ermsg);
@ -1168,7 +1161,7 @@ public:
return;
}
m_ts->doc.add_posting(m_ts->prefix + page_break_term, pos);
m_ts->doc.add_posting(m_ts->ft.pfx + page_break_term, pos);
if (pos == m_lastpagepos) {
m_pageincr++;
LOGDEB2(("newpage: same pos, pageincr %d lastpagepos %d\n",
@ -1351,15 +1344,15 @@ bool Db::addOrUpdate(const string &udi, const string &parent_udi, Doc &doc)
LOGDEB0(("Db::add: field [%s] pfx [%s] inc %d: [%s]\n",
meta_it->first.c_str(), ftp->pfx.c_str(), ftp->wdfinc,
meta_it->second.c_str()));
splitter.setprefix(ftp->pfx);
splitter.setwdfinc(ftp->wdfinc);
splitter.setTraits(*ftp);
if (!splitter.text_to_words(meta_it->second))
LOGDEB(("Db::addOrUpdate: split failed for %s\n",
meta_it->first.c_str()));
}
}
splitter.setprefix(string());
splitter.setwdfinc(1);
// Reset to no prefix and default params
splitter.setTraits(FieldTraits());
if (splitter.curpos < baseTextPosition)
splitter.basepos = baseTextPosition;
@ -1539,6 +1532,21 @@ bool Db::addOrUpdate(const string &udi, const string &parent_udi, Doc &doc)
}
}
// At this point, if the document "filename" field was empty,
// try to store the "container file name" value. This is done
// after indexing because we don't want search matches on
// this, but the filename is often useful for display
// purposes.
const string *fnp = 0;
if (!doc.peekmeta(Rcl::Doc::keyfn, &fnp) || fnp->empty()) {
if (doc.peekmeta(Rcl::Doc::keytcfn, &fnp) && !fnp->empty()) {
string value =
neutchars(truncate_to_word(*fnp,
m_idxMetaStoredLen), cstr_nc);
RECORD_APPEND(record, Rcl::Doc::keyfn, value);
}
}
// If empty pages (multiple break at same pos) were recorded, save
// them (this is because we have no way to record them in the
// Xapian list
@ -1619,8 +1627,7 @@ bool Db::Native::docToXdocXattrOnly(TextSplitDb *splitter, const string &udi,
LOGDEB0(("Db::xattrOnly: field [%s] pfx [%s] inc %d: [%s]\n",
meta_it->first.c_str(), ftp->pfx.c_str(), ftp->wdfinc,
meta_it->second.c_str()));
splitter->setprefix(ftp->pfx);
splitter->setwdfinc(ftp->wdfinc);
splitter->setTraits(*ftp);
if (!splitter->text_to_words(meta_it->second))
LOGDEB(("Db::xattrOnly: split failed for %s\n",
meta_it->first.c_str()));

View file

@ -223,7 +223,8 @@ class Db {
/* Return configured stop words */
const StopList& getStopList() const {return m_stops;}
/* Field name to prefix translation (ie: author -> 'A') */
bool fieldToTraits(const string& fldname, const FieldTraits **ftpp);
bool fieldToTraits(const string& fldname, const FieldTraits **ftpp,
bool isquery = false);
/* Update-related methods ******************************************/

View file

@ -30,6 +30,7 @@ namespace Rcl {
const string Doc::keyds("dbytes");
const string Doc::keyfmt("fmtime");
const string Doc::keyfn("filename");
const string Doc::keytcfn("containerfilename");
const string Doc::keyfs("fbytes");
const string Doc::keyipt("ipath");
const string Doc::keykw("keywords");

View file

@ -246,7 +246,19 @@ class Doc {
// childurl. This is set when working with the parent of the result, to hold
// the child of interest url, typically to highlight a directory entry
static const string keychildurl;
static const string keyfn; // file name
// file name. This is set for filesystem-level containers or
// documents, and not inherited by subdocuments (which can get a
// keyfn anyway from, e.g, an attachment filename value). Subdocs
// used to inherit the file name, but this was undesirable (you
// usually don't want to see all subdocs when searching for the
// file name). Instead the container file name is now set in the
// document record but not indexed (see next entry).
static const string keyfn;
// Container file name. This is set for all subdocuments of a
// given top level container. It is not indexed by default but
// stored in the document record keyfn field if this is still
// empty when we create it, for display purposes.
static const string keytcfn;
static const string keyipt; // ipath
static const string keytp; // mime type
static const string keyfmt; // file mtime

View file

@ -160,7 +160,7 @@ void Query::setSortBy(const string& fld, bool ascending) {
if (fld.empty()) {
m_sortField.erase();
} else {
m_sortField = m_db->getConf()->fieldCanon(fld);
m_sortField = m_db->getConf()->fieldQCanon(fld);
m_sortAscending = ascending;
}
LOGDEB0(("RclQuery::setSortBy: [%s] %s\n", m_sortField.c_str(),

View file

@ -328,7 +328,7 @@ bool Db::idxTermMatch(int typ_sens, const string &lang, const string &root,
string prefix;
if (!field.empty()) {
const FieldTraits *ftp = 0;
if (!fieldToTraits(field, &ftp) || ftp->pfx.empty()) {
if (!fieldToTraits(field, &ftp, true) || ftp->pfx.empty()) {
LOGDEB(("Db::termMatch: field is not indexed (no prefix): [%s]\n",
field.c_str()));
} else {

View file

@ -686,7 +686,7 @@ void SearchDataClauseSimple::processSimpleSpan(Rcl::Db &db, string& ermsg,
string prefix;
const FieldTraits *ftp;
if (!m_field.empty() && db.fieldToTraits(m_field, &ftp)) {
if (!m_field.empty() && db.fieldToTraits(m_field, &ftp, true)) {
prefix = wrap_prefix(ftp->pfx);
}
@ -743,7 +743,7 @@ void SearchDataClauseSimple::processPhraseOrNear(Rcl::Db &db, string& ermsg,
string prefix;
const FieldTraits *ftp;
if (!m_field.empty() && db.fieldToTraits(m_field, &ftp)) {
if (!m_field.empty() && db.fieldToTraits(m_field, &ftp, true)) {
prefix = wrap_prefix(ftp->pfx);
}

View file

@ -29,6 +29,10 @@
# (NOT CURRENTLY IMPLEMENTED) would automatically boost the weight of a
# caption-based field query (ie: caption:mytitle or title:mytitle) at query
# time.
#
# The pfxonly attribute can also be set on entries to express that terms
# from the field should be indexed only with a prefix (in general, field
# terms are indexed both with and without a prefix).
# The following ones are probably hard-coded in the c code, can't change at
# all.
@ -44,8 +48,10 @@ rclmd5 = XM
dir = XP
abstract = XS
filename = XSFN
containerfilename = XCFN ; pfxonly = 1
rclUnsplitFN = XSFS
xapyear = Y
recipient = XTO
# Extension examples. These are actually used by default by Recoll, you can
# add your own to search for fields produced by the filters and not handled
@ -57,7 +63,6 @@ xapyear = Y
# I hereby commit to not using XY for Recoll:
# *** USE XY for beginning your local prefixes *** ie:
# myfield = XYMYPREF
recipient = XTO
[stored]
############################
@ -105,6 +110,14 @@ mtype = mime mimetype xesam:mimetype contenttype xesam:contenttype dc:format
recipient = to xesam:recipient
url = dc:identifier xesam:url
##################
# The queryaliases section defines aliases which are used exclusively at
# query time: there is no risk to pick up a random field from a document
# (e.g. an HTML meta field) and index it.
[queryaliases]
#filename = fn
#containerfilename = cfn
[xattrtofields]
######################
# Processing for extended file attributes.
@ -113,10 +126,16 @@ url = dc:identifier xesam:url
# You can enter name translations as "xattrname = fieldname". Case matters.
# Entering an empty translation will disable use of the attribute.
# The values from the extended attributes will extend, not replace, the
# data found from equivalent fields inside the document. As an example, the
# following would map a quite plausible "tags" extended attribute into the
# "keywords" field.
# data found from equivalent fields inside the document.
# As an example, the following would map a quite plausible "tags" extended
# attribute into the "keywords" field.
tags = keywords
# Proposed or standard freedesktop.org extended attributes
xdg.tags = keywords
xdg.comment = abstract
# Some standard fields are not to be indexed
mime_type =
charset =

View file

@ -26,6 +26,7 @@
#
# The script (ie: rcluncomp) must output the uncompressed file name on
# stdout.
application/gzip = uncompress rcluncomp gunzip %f %t
application/x-gzip = uncompress rcluncomp gunzip %f %t
application/x-compress = uncompress rcluncomp gunzip %f %t
application/x-bzip2 = uncompress rcluncomp bunzip2 %f %t
@ -41,6 +42,8 @@ application/x-lzma = uncompress rcluncomp unxz %f %t
# each filter, see the exemples below (ie: msword)
[index]
application/epub+zip = execm rclepub
# Returned by xdg-mime for .js. Future-proofing
application/javascript = internal text/plain
# MSWORD: the rcldoc script handles a number of marginal case that raw
# antiword won't:
@ -106,6 +109,8 @@ application/x-mimehtml = internal message/rfc822
#application/x-mobipocket-ebook = execm rclmobi
application/x-okular-notes = exec rclokulnote
application/x-perl = internal text/plain
# Returned by xdg-mime for .php. Future-proofing
application/x-php = internal text/plain
application/x-rar = execm rclrar;charset=default
application/x-scribus = exec rclscribus
application/x-shellscript = internal text/plain
@ -161,6 +166,7 @@ text/xml = exec rclxml
# Icons to be used in the result list if required by gui config
[icons]
application/epub+zip = book
application/javascript = source
application/msword = wordprocessing
application/ogg = sownd
application/pdf = pdf
@ -203,6 +209,7 @@ application/x-mimehtml = message
application/x-mobipocket-ebook = document
application/x-okular-notes = document
application/x-perl = source
application/x-php = source
application/x-rar = archive
application/x-scribus = document
application/x-scribus = wordprocessing

View file

@ -189,6 +189,10 @@ iconsdir = @prefix@/share/recoll/images
# identification ? This may be useful, but will usually cause the
# indexation of many bogus 'text' files
usesystemfilecommand = 1
# Actual command to use as "file -i" workalike. xdg-mime works fine here.
# The file path will be added as a last parameter to the command line. If
# that's not what your preferred command would like, use an intermediary script
# systemfilecommand = xdg-mime query filetype
# Should we index the file names of files with mime types we don't
# know? (we can otherwise just ignore them)

File diff suppressed because it is too large Load diff

View file

@ -35,7 +35,7 @@ extern "C" {
#define UNAC_BLOCK_SHIFT 3
#define UNAC_BLOCK_MASK ((1 << UNAC_BLOCK_SHIFT) - 1)
#define UNAC_BLOCK_SIZE (1 << UNAC_BLOCK_SHIFT)
#define UNAC_BLOCK_COUNT 714
#define UNAC_BLOCK_COUNT 713
#define UNAC_INDEXES_SIZE (0x10000 >> UNAC_BLOCK_SHIFT)
/* Generated by builder. Do not modify. End defines */
@ -893,7 +893,6 @@ extern unsigned short unac_data709[];
extern unsigned short unac_data710[];
extern unsigned short unac_data711[];
extern unsigned short unac_data712[];
extern unsigned short unac_data713[];
/* Generated by builder. Do not modify. End declarations */
#ifdef __cplusplus

View file

@ -30,21 +30,15 @@ static const string desktopext("desktop");
static DesktopDb *theDb;
typedef map<string, vector<DesktopDb::AppDef> > AppMap;
static AppMap theAppMap;
static std::string o_reason;
static bool o_ok;
class FstCb : public FsTreeWalkerCB {
public:
FstCb(AppMap *appdefs)
FstCb(DesktopDb::AppMap *appdefs)
: m_appdefs(appdefs)
{
}
virtual FsTreeWalker::Status
processone(const string &, const struct stat *, FsTreeWalker::CbFlag);
AppMap *m_appdefs;
DesktopDb::AppMap *m_appdefs;
};
FsTreeWalker::Status FstCb::processone(const string& fn, const struct stat *,
@ -100,27 +94,37 @@ DesktopDb* DesktopDb::getDb()
if (theDb == 0) {
theDb = new DesktopDb();
}
if (o_ok)
if (theDb && theDb->m_ok)
return theDb;
return 0;
}
void DesktopDb::build(const string& dir)
{
FstCb procapp(&m_appMap);
FsTreeWalker walker;
if (walker.walk(dir, procapp) != FsTreeWalker::FtwOk) {
m_ok = false;
m_reason = walker.getReason();
}
m_ok = true;
}
DesktopDb::DesktopDb()
{
FstCb procapp(&theAppMap);
FsTreeWalker walker;
if (walker.walk(topappsdir, procapp) != FsTreeWalker::FtwOk) {
o_ok = false;
o_reason = walker.getReason();
}
o_ok = true;
build(topappsdir);
}
DesktopDb::DesktopDb(const string& dir)
{
build(dir);
}
bool DesktopDb::appForMime(const string& mime, vector<AppDef> *apps,
string *reason)
{
AppMap::const_iterator it = theAppMap.find(mime);
if (it == theAppMap.end()) {
AppMap::const_iterator it = m_appMap.find(mime);
if (it == m_appMap.end()) {
if (reason)
*reason = string("No application found for ") + mime;
return false;
@ -129,9 +133,43 @@ bool DesktopDb::appForMime(const string& mime, vector<AppDef> *apps,
return true;
}
bool DesktopDb::allApps(vector<AppDef> *apps)
{
map<string, AppDef> allaps;
for (AppMap::const_iterator it = m_appMap.begin();
it != m_appMap.end(); it++) {
for (vector<AppDef>::const_iterator it1 = it->second.begin();
it1 != it->second.end(); it1++) {
allaps.insert(pair<string, AppDef>
(it1->name, AppDef(it1->name, it1->command)));
}
}
for (map<string, AppDef>::const_iterator it = allaps.begin();
it != allaps.end(); it++) {
apps->push_back(it->second);
}
return true;
}
bool DesktopDb::appByName(const string& nm, AppDef& app)
{
for (AppMap::const_iterator it = m_appMap.begin();
it != m_appMap.end(); it++) {
for (vector<AppDef>::const_iterator it1 = it->second.begin();
it1 != it->second.end(); it1++) {
if (!nm.compare(it1->name)) {
app.name = it1->name;
app.command = it1->command;
return true;
}
}
}
return false;
}
const string& DesktopDb::getReason()
{
return o_reason;
return m_reason;
}
#else // TEST_APPFORMIME

View file

@ -33,13 +33,20 @@ public:
AppDef(const std::string& nm, const std::string& cmd)
: name(nm), command(cmd)
{}
AppDef() {}
std::string name;
std::string command;
};
/** Build/Get the db for the standard fdo directory */
static DesktopDb* getDb();
static const string& getReason();
~DesktopDb();
/** Constructor for a db based on a non-standard location */
DesktopDb(const string& dir);
/** In case of error: what happened ? */
const string& getReason();
/**
* Get a list of applications able to process a given MIME type.
@ -52,10 +59,30 @@ public:
bool appForMime(const std::string& mime, vector<AppDef> *apps,
std::string *reason = 0);
/**
* Get all applications defs:
* @param[output] apps applications
* @return true
*/
bool allApps(vector<AppDef> *apps);
/**
* Get app with given name
*/
bool appByName(const string& nm, AppDef& app);
typedef map<string, vector<DesktopDb::AppDef> > AppMap;
private:
/** This is used by getDb() and builds a db for the standard location */
DesktopDb();
void build(const string& dir);
DesktopDb(const DesktopDb &);
DesktopDb& operator=(const DesktopDb &);
AppMap m_appMap;
std::string m_reason;
bool m_ok;
};

View file

@ -525,6 +525,20 @@ string url_gpath(const string& url)
return path_canon(url.substr(colon+1));
}
string url_parentfolder(const string& url)
{
// In general, the parent is the directory above the full path
string parenturl = path_getfather(url_gpath(url));
// But if this is http, make sure to keep the host part. Recoll
// only has file or http urls for now.
bool isfileurl = urlisfileurl(url);
if (!isfileurl && parenturl == "/") {
parenturl = url_gpath(url);
}
return isfileurl ? string("file://") + parenturl :
string("http://") + parenturl;
}
// Convert to file path if url is like file:
// Note: this only works with our internal pseudo-urls which are not
// encoded/escaped
@ -540,6 +554,7 @@ string fileurltolocalpath(string url)
}
return url;
}
bool urlisfileurl(const string& url)
{
return url.find("file://") == 0;

View file

@ -60,6 +60,8 @@ extern bool printableUrl(const std::string &fcharset,
extern std::string fileurltolocalpath(std::string url);
/// Test for file:/// url
extern bool urlisfileurl(const std::string& url);
///
extern std::string url_parentfolder(const std::string& url);
/// Return the host+path part of an url. This is not a general
/// routine, it does the right thing only in the recoll context

View file

@ -4,12 +4,9 @@ topdir=`dirname $0`/..
. $topdir/shared.sh
initvariables $0
(
for q in xing;do
echo $q
recollq -q $q
done
(
recollq -S url -q xing dir:embed
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout
diff -w ${myname}.txt $mystdout > $mydiffs 2>&1

View file

@ -1,5 +1,2 @@
xing
3 results
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/outmail] [video+recdat] 1027 bytes
application/msword [file:///home/dockes/projets/fulltext/testrecoll/msword/xingfx1.doc] [xingfx1.doc] 24576 bytes
1 results
application/msword [file:///home/dockes/projets/fulltext/testrecoll/embed/thunderbirdlocalfolders.zip] [xingfx1.doc] 24576 bytes

View file

@ -6,9 +6,9 @@ topdir=`dirname $0`/..
initvariables $0
(
recollq -S mtime 'Bienvenue Dans Univers De Lyx'
recollq -S mtime 'Welcome To Lyx'
recollq -S mtime 'LyX jol dokumentalt'
recollq -S url 'Bienvenue Dans Univers De Lyx'
recollq -S url 'Welcome To Lyx'
recollq -S url 'LyX jol dokumentalt'
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout
diff -w ${myname}.txt $mystdout > $mydiffs 2>&1

View file

@ -2,7 +2,7 @@
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/accentué.lyx] [accentué.lyx] 3577 bytes
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/fr_splash.lyx] [fr_splash.lyx] 3577 bytes
2 results
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/with spaces.lyx] [with spaces.lyx] 2974 bytes
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/splash.lyx] [splash.lyx] 2974 bytes
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/with spaces.lyx] [with spaces.lyx] 2974 bytes
1 results
application/x-lyx [file:///home/dockes/projets/fulltext/testrecoll/lyx/hu_splash.lyx] [hu_splash.lyx] 4773 bytes

View file

@ -6,8 +6,8 @@ topdir=`dirname $0`/..
initvariables $0
(
recollq '"Evenements et programme 2006"'
recollq 'pcx11 manuel de programmation iamactuallyanrtf'
recollq -S url '"Evenements et programme 2006"'
recollq -S url 'pcx11 manuel de programmation iamactuallyanrtf'
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout
diff -w ${myname}.txt $mystdout > $mydiffs 2>&1

View file

@ -14,7 +14,7 @@ d=${tstdata}/partialpurge/
recollindex -Zi $d/testmbox
echo Should have 2 results: testmbox and longmbox:
recollq -q deletedmessageuniqueterm
recollq -S url -q deletedmessageuniqueterm
echo
echo Changing file and reindexing
@ -22,17 +22,17 @@ d=${tstdata}/partialpurge/
recollindex -Zi $d/testmbox
echo Should have 1 result: longmbox:
recollq -q deletedmessageuniqueterm
recollq -S url -q deletedmessageuniqueterm
echo
echo Purging whole test file
recollindex -e $d/testmbox
echo Should have 1 result: longmbox:
recollq -q deletedmessageuniqueterm
recollq -S url -q deletedmessageuniqueterm
echo Should have 2 results: longmbox shortmbox:
recollq -q stablemessageuniqueterm
recollq -S url -q stablemessageuniqueterm
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout

View file

@ -34,11 +34,11 @@ for doc in query:
for fld in ('title', 'testfield', 'filename'):
print("getattr(doc, %s) -> [%s]"%(fld,utf8string(getattr(doc, fld))))
print("doc.get(%s) -> [%s]"%(fld,utf8string(doc.get(fld))))
print("\nfor fld in doc.keys():")
for fld in doc.keys():
print("\nfor fld in sorted(doc.keys()):")
for fld in sorted(doc.keys()):
print(utf8string("[%s] -> [%s]" % (fld, getattr(doc, fld))))
print("\nfor k,v in doc.items().items():")
for k,v in doc.items().items():
print("\nfor k,v in sorted(doc.items().items()):")
for k,v in sorted(doc.items().items(), key=lambda itm: itm[0]):
print(utf8string("[%s] -> [%s]" % (k, v)))
print("\nAccented query:")

View file

@ -10,7 +10,7 @@ doc.get(testfield) -> [testfieldvalue1]
getattr(doc, filename) -> [htmlfield1.html]
doc.get(filename) -> [htmlfield1.html]
for fld in doc.keys():
for fld in sorted(doc.keys()):
[abstract] -> [ ThisIsTheFieldHtmlTestFile]
[caption] -> [HTML fields test file: été à noël]
[dbytes] -> [27]
@ -24,29 +24,29 @@ for fld in doc.keys():
[pcbytes] -> [267]
[rcludi] -> [/home/dockes/projets/fulltext/testrecoll/html/htmlfield1.html|]
[relevancyrating] -> [100%]
[sig] -> [2671383154417]
[sig] -> [2671402138880]
[testfield] -> [testfieldvalue1]
[title] -> [HTML fields test file: été à noël]
[url] -> [file:///home/dockes/projets/fulltext/testrecoll/html/htmlfield1.html]
for k,v in doc.items().items():
[testfield] -> [testfieldvalue1]
[ipath] -> []
[url] -> [file:///home/dockes/projets/fulltext/testrecoll/html/htmlfield1.html]
for k,v in sorted(doc.items().items()):
[abstract] -> [ ThisIsTheFieldHtmlTestFile]
[pcbytes] -> [267]
[caption] -> [HTML fields test file: été à noël]
[dbytes] -> [27]
[fbytes] -> [267]
[filename] -> [htmlfield1.html]
[mtype] -> [text/html]
[caption] -> [HTML fields test file: été à noël]
[fmtime] -> [01383154417]
[dbytes] -> [27]
[sig] -> [2671383154417]
[ipath] -> []
[mtime] -> [01383154417]
[title] -> [HTML fields test file: été à noël]
[mtype] -> [text/html]
[origcharset] -> [utf-8]
[pcbytes] -> [267]
[rcludi] -> [/home/dockes/projets/fulltext/testrecoll/html/htmlfield1.html|]
[relevancyrating] -> [100%]
[origcharset] -> [utf-8]
[sig] -> [2671402138880]
[testfield] -> [testfieldvalue1]
[title] -> [HTML fields test file: été à noël]
[url] -> [file:///home/dockes/projets/fulltext/testrecoll/html/htmlfield1.html]
Accented query:
User query [title:"été à noël"]

View file

@ -7,6 +7,8 @@ else:
ISP3 = False
def utf8string(s):
if s is None:
return "None"
if ISP3:
return s
else:

View file

@ -3,7 +3,11 @@
RECOLL_TESTDATA=/home/dockes/projets/fulltext/testrecoll
RECOLL_CONFDIR=/home/dockes/projets/fulltext/recoll/tests/config
# All source'rs should set topdir as a relative path from their location to
# this directory
topdir=${topdir:-.}
RECOLL_CONFDIR=$topdir/config/
export RECOLL_CONFDIR
ECHON="/bin/echo -n"

View file

@ -7,8 +7,8 @@ initvariables $0
(
recollq -S mtime -q '"simulating shock turbulence interactions"'
recollq -S mtime Utf8pathunique
recollq -S url -q '"simulating shock turbulence interactions"'
recollq -S url Utf8pathunique
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout

View file

@ -1,6 +1,6 @@
2 results
image/vnd.djvu [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/1999_Hu_Shu.OCR.djvu] [1999_Hu_Shu.OCR.djvu] 753409 bytes
image/vnd.djvu [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/1999_Hu_Shu.OCR.djvu] [1999_Hu_Shu.OCR.djvu] 753409 bytes
image/vnd.djvu [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/1999_Hu_Shu.OCR.djvu] [1999_Hu_Shu.OCR.djvu] 753409 bytes
2 results
text/plain [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/utf8path.txt] [utf8path.txt] 49 bytes
text/plain [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/utf8path.txt] [utf8path.txt] 49 bytes
text/plain [file:///home/dockes/projets/fulltext/testrecoll/utfInPath/accentué/utf8path.txt] [utf8path.txt] 49 bytes

View file

@ -97,6 +97,8 @@ sub main {
# Hindi Devanagari
&& !(hex $code_value >= 0x0900 && hex $code_value <= 0x097f)
&& !(hex $code_value >= 0xa8e0 && hex $code_value <= 0xa8ff)
# Bengali
&& !(hex $code_value >= 0x0980 && hex $code_value <= 0x09ff)
) {
# If a decomposition exists, record it
if($character_decomposition_mapping =~ /(<.*>)?\s*(.+)/) {

File diff suppressed because it is too large Load diff

View file

@ -35,7 +35,7 @@ extern "C" {
#define UNAC_BLOCK_SHIFT 3
#define UNAC_BLOCK_MASK ((1 << UNAC_BLOCK_SHIFT) - 1)
#define UNAC_BLOCK_SIZE (1 << UNAC_BLOCK_SHIFT)
#define UNAC_BLOCK_COUNT 714
#define UNAC_BLOCK_COUNT 713
#define UNAC_INDEXES_SIZE (0x10000 >> UNAC_BLOCK_SHIFT)
/* Generated by builder. Do not modify. End defines */
@ -893,7 +893,6 @@ extern unsigned short unac_data709[];
extern unsigned short unac_data710[];
extern unsigned short unac_data711[];
extern unsigned short unac_data712[];
extern unsigned short unac_data713[];
/* Generated by builder. Do not modify. End declarations */
#ifdef __cplusplus

View file

@ -29,7 +29,7 @@
later versions. Bugs listed in the topmost section may also exist in older
versions.</i></p>
<h2><a name="b_latest">recoll 1.19.14p1</a></h2>
<h2><a name="b_latest">recoll 1.19.14p2</a></h2>
<ul>
<li>The Open/LibreOffice document filter does not output white space
for tab-separated words in input, leading to search failures.</li>
@ -67,6 +67,12 @@ versions.</i></p>
recoll.</li>
</ul>
<h2><a name="b_1_19_14p1">recoll 1.19.14p1</a></h2>
<ul>
<li>The Py_INCREF fix in 1.19.14p1 activated a bug in the Query
object iterator, a missing INCREF this time.</li>
</ul>
<h2><a name="b_1_19_14">recoll 1.19.14</a></h2>
<ul>
<li>A stray Py_INCREF causes a descriptor and memory leak in the Python

View file

@ -67,7 +67,7 @@ function showdiv(viewid)
<div id="general">
<h2><a name="general">General information</a></h2>
<p>The current version is 1.19.14p1. <a href="release-1.19.html">Release
<p>The current version is 1.19.14p2. <a href="release-1.19.html">Release
notes</a>.</p>
<p>The download page for Recoll 1.18 is <a href="download-1.18.html">still
@ -117,17 +117,23 @@ is probably no necessity to upgrade anyway.</p>
<div id="source">
<h2><a name="source">Source</a></h2>
<h3>Current release distribution: 1.19.14:</h3>
<h3>Current release distribution: 1.19.14p2:</h3>
<!-- Attention: source packages must remain here, not in a
subdirectory, because of all the places they're referred from
(package watches) -->
<p><a href="recoll-1.19.14.tar.gz">recoll-1.19.14.tar.gz</a>. </p>
<p><a href="recoll-1.19.14p2.tar.gz">recoll-1.19.14p2.tar.gz</a>. </p>
<h3>1.20 preview</h3>
<p>See the <a href="release-1.20.html">release notes</a>.</p>
<p><a href="recoll-1.20.0.tar.gz">recoll-1.20.0.tar.gz</a>. </p>
<p>Recoll 1.20 will contain no revolutionary changes, but a set of
hopefully useful adjustments, which will be released in a series of
incremental snapshots. The current snapshot is
<a href="recoll-1.20.0p2.tar.gz">recoll-1.20.0p2.tar.gz</a>.
See the <a href="release-1.20.html">release notes</a> for what's in
there.</p>
<!--
<h3>Snapshot</h3>
@ -202,6 +208,8 @@ branch for the current production version.</p>
<h3>Older recoll releases:</h3>
<p>
<a href="recoll-1.19.14p1.tar.gz">1.19.14p1</a>.
<a href="recoll-1.19.14.tar.gz">1.19.14</a>.
<a href="recoll-1.19.13.tar.gz">1.19.13</a>.
<a href="recoll-1.19.12p1.tar.gz">1.19.12p1</a>.
<a href="recoll-1.19.9.tar.gz">1.19.9</a>.

View file

@ -43,7 +43,8 @@
<ul>
<li>It can search
most <span class="important"><a href="features.html#doctypes">document
formats</a></span>.</li>
formats</a></span>. <a href="features.html#doctypes">You may
need external applications for text extraction</a>.</li>
<li>It can reach any storage place: files,
archive members, email attachments, transparently
handling decompression.</li>
@ -51,10 +52,11 @@
display an even quicker text preview.</li>
<li>The software is free, open source,
and licensed under the GPL.</li>
<li><a href="features.html">Detailed features</a>.
<li><a href="features.html">Detailed features</a>.</li>
</ul>
<p>The current <span class="application">Recoll</span> version is
<a href="download.html">1.19.14p1</a>
<a href="download.html">1.19.14p2</a>
(<a href="release-1.19.html">Release notes</a>,
<a href="BUGS.html">known bugs</a>).</p>
@ -92,10 +94,16 @@
<div class="news">
<dl>
<dt>2014-06-26</dt> <dd>Recoll version 1.19.14p1 fixes a
descriptor (and memory) leak in the Python module. Only the
Python package needs upgrading (no changes to the main
library or programs).</dd>
<dt>2014-07-28</dt> <dd>A nice new application to complement
Recoll: <a href="https://github.com/pidlug/recollfs">recollfs</a>
implements a Fuse filesystem where Recoll queries are
represented as directories, the contents of which are links
to the result documents.</dd>
<dt>2014-07-16</dt> <dd>Recoll version 1.19.14p2 fixes more
resource management issues in the Python module (only the
Python package needs upgrading for this), and the processing
of Bengali characters (no more diacritics stripping).</dd>
<dt>2014-06-24</dt> <dd><a href="filters/filters.html#soff1">An
updated filter</a> for Open/LibreOffice documents. The

View file

@ -49,7 +49,7 @@
<p><span class="application">Recoll</span> est un logiciel libre
gratuit, dont le code source est disponible sous licence GPL.
La dernière version est
<a class="important" href="download.html">1.19.14</a>
<a class="important" href="download.html">1.19.14p2</a>
(<a href="release-1.19.html">notes sur la version, en
anglais</a>)</p>
@ -77,7 +77,9 @@
<li>Traite la plupart des <a href="fr/features.html#doctypes">
types de documents</a> courants, les messages et leurs fichiers
attachés. Peut aussi traiter leurs versions comprimées
(gzip ou bzip2) de tous ces documents.</li>
(gzip ou bzip2) de tous ces documents.
<a href="features.html#doctypes">Application externes pour
l'extraction du texte</a>.</li>
<li>Fonctions de recherche puissantes, avec expressions Booléennes,
phrases et proximité, wildcards, filtrage sur les types de fichiers
@ -88,6 +90,7 @@
<li><a class="weak" href="fr/features.html">
(plus de détails)</a></li>
</ul>
<p><b><i>Déjà utilisateur ?</i></b> Il est possible qu'il

View file

@ -63,6 +63,11 @@ Configuration</em> menu.</p>
<h2><a name="minor_releases">Minor releases at a glance</a></h2>
<ul>
<li>1.19.14p2 fixes another reference count issue in the Python
module (a problem with the Query iterator put in evidence by the
change in 1.19.14p1). It also changes the handling of diacritics
for Bengali (accents are now unstripped, as for Hindi).</li>
<li>1.19.14p1 fixes a descriptor and memory leak in the Python
module. The main library and programs are unchanged.</li>

View file

@ -64,7 +64,7 @@
opposed to only bug fixes). There will be a freeze at some
point.
<h2>Changes in Recoll 1.20.0</h2>
<h2>Changes in Recoll 1.20.0p1</h2>
<ul>
<li>An <em>Open With</em> entry was added to the result list
@ -97,6 +97,8 @@
possible to search for left-truncated versions of the
compound, e.g., all emails from a given domain.</li>
<li>Recoll now indexes <em>#hashtags</em> as such.</li>
<li>It is now possible to configure the GUI in wide form
factor by dragging the toolbars to one of the sides (their
location is remembered between sessions), and moving the
@ -109,11 +111,40 @@
ininteresting variables were also removed.</li>
<li>When indexing, we no longer add the top container
file-name as a term for the contained sub-documents (if
any). This made no sense at all in most cases. However,
this was sometimes useful when searching email
folders. Complain if you do not like this change, and I'll
make it configurable.</li>
file name as a term for the contained sub-documents (if
any). This made no sense in most cases, as it meant that
you would get hits on all the sections from a chm or epub
when the top file name matched the search, when you
probably wanted only the parent document in this case.<br>
However, the container file name was sometimes useful for
filtering results, and it is still accessible, in a
different way: the top container file name is added as a
term to all the sub-documents, <em>only for searching with
a prefix</em>. The field name
is <span class="literal">containerfilename</span>, and no
match on the subdocuments will occur if the field is not
specified (this is different from
previous <span class="literal">filename</span> processing,
which was indexed as a general
term. <span class="literal">containerfilename</span> is
also set on files without sub-documents (e.g. a pdf).</li>
<li>A new attribute, <span class="literal">pfxonly</span>,
was created. This can be set on any metadata field inside
the <span class="literal">[prefixes]</span> section of
the <span class="filename">fields</span> file.</li>
<li>A new <span class="literal">[queryaliases]</span>
section was created in
the <span class="filename">fields</span>, for definining
field name aliases to be used only at query time (to avoid
unwanted collection of data on random fields during
indexing). The section is empty by default, but 2 obvious
alias are in
comment: <span class="literal">filename=fn</span>
and <span class="literal">containerfilename=cfn</span>. Setting
them in your personal file may save you some typing if you
search on file names.</li>
<li>You can now use both <em>-e</em> and <em>-i</em> for
erasing then updating the index for the given file
@ -127,6 +158,20 @@
terms was added. See
<span class="filename">src/python/samples/docdups.py</span></li>
<li>The command used to identify the mime types of files
when the internal method is <span class="literal">file
-i</span> by default. It is now possible to customize this
command by setting
the <span class="literal">systemfilecommand</span> in the
configuration. A suggested value would
be <span class="filename">xdg-mime</span>, which sometimes
works better than <span class="filename">file</span>.</li>
<li>The result list has two new elements: %P substitution
for printing the parent folder name, and an <tt>F</tt>
link target which will open the parent folder in a
file manager window.</li>
<li><span class="filename">/media</span> was added to the default
skippedPaths list mostly as a reminder that blindly
processing these with the general indexer is a bad idea