From 5e643a77b99dbedee5e38490681337a681c03ea0 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Tue, 26 Dec 2017 10:55:24 -0100 Subject: empty all Signed-off-by: Maxence Lange --- AUTHORS.md | 4 - CHANGELOG.md | 23 - COPYING | 661 -------------- LICENSE | 661 -------------- Makefile | 174 ---- README.md | 78 -- appinfo/app.php | 38 - appinfo/autoload.php | 44 - appinfo/database.xml | 29 - appinfo/info.xml | 71 -- appinfo/register_command.php | 39 - appinfo/routes.php | 85 -- composer.json | 5 - composer.lock | 136 --- config/nextant_solrconfig.xml | 25 - css/admin.css | 101 --- css/navigate.css | 121 --- img/app.svg | 43 - img/bookmarks.svg | 18 - img/check.png | Bin 18895 -> 0 bytes img/fail.png | Bin 22720 -> 0 bytes js/navigate.js | 842 ------------------ js/settings.admin.js | 775 ----------------- l10n/.tx/config | 9 - l10n/ast.js | 62 -- l10n/ast.json | 60 -- l10n/ca.js | 92 -- l10n/ca.json | 90 -- l10n/cs.js | 92 -- l10n/cs.json | 90 -- l10n/de.js | 92 -- l10n/de.json | 90 -- l10n/de_DE.js | 92 -- l10n/de_DE.json | 90 -- l10n/el.js | 91 -- l10n/el.json | 89 -- l10n/en_GB.js | 92 -- l10n/en_GB.json | 90 -- l10n/es.js | 92 -- l10n/es.json | 90 -- l10n/es_AR.js | 89 -- l10n/es_AR.json | 87 -- l10n/es_MX.js | 92 -- l10n/es_MX.json | 90 -- l10n/fi.js | 42 - l10n/fi.json | 40 - l10n/fr.js | 92 -- l10n/fr.json | 90 -- l10n/hu.js | 56 -- l10n/hu.json | 54 -- l10n/is.js | 55 -- l10n/is.json | 53 -- l10n/it.js | 92 -- l10n/it.json | 90 -- l10n/ko.js | 52 -- l10n/ko.json | 50 -- l10n/lv.js | 31 - l10n/lv.json | 29 - l10n/mn.js | 46 - l10n/mn.json | 44 - l10n/nb.js | 92 -- l10n/nb.json | 90 -- l10n/nl.js | 92 -- l10n/nl.json | 90 -- l10n/pl.js | 92 -- l10n/pl.json | 90 -- l10n/pt_BR.js | 92 -- l10n/pt_BR.json | 90 -- l10n/ru.js | 92 -- l10n/ru.json | 90 -- l10n/sq.js | 92 -- l10n/sq.json | 90 -- l10n/sv.js | 92 -- l10n/sv.json | 90 -- l10n/tr.js | 92 -- l10n/tr.json | 90 -- l10n/zh_CN.js | 92 -- l10n/zh_CN.json | 90 -- lib/AppInfo/Application.php | 265 ------ lib/Command/Background.php | 58 -- lib/Command/Check.php | 124 --- lib/Command/Clear.php | 86 -- lib/Command/Index.php | 454 ---------- lib/Command/Live.php | 175 ---- lib/Command/Optimize.php | 92 -- lib/Command/Pick.php | 127 --- lib/Command/Test.php | 331 ------- lib/Controller/SearchController.php | 305 ------- lib/Controller/SettingsController.php | 475 ---------- lib/Cron/BackgroundIndex.php | 60 -- lib/Db/LiveQueue.php | 44 - lib/Db/LiveQueueMapper.php | 75 -- lib/Events/BookmarksEvents.php | 85 -- lib/Events/FilesEvents.php | 228 ----- lib/Hooks/BookmarksHooks.php | 79 -- lib/Hooks/FilesHooks.php | 128 --- lib/Items/ItemDocument.php | 630 -------------- lib/Items/ItemError.php | 81 -- lib/Items/ItemQueue.php | 145 ---- lib/Migration/NextantUpgrade.php | 69 -- lib/Service/BackgroundService.php | 186 ---- lib/Service/BookmarkService.php | 121 --- lib/Service/ConfigService.php | 302 ------- lib/Service/FileService.php | 728 ---------------- lib/Service/IndexService.php | 937 -------------------- lib/Service/MiscService.php | 81 -- lib/Service/NewsService.php | 118 --- lib/Service/QueueService.php | 213 ----- lib/Service/SolrAdminService.php | 1521 --------------------------------- lib/Service/SolrService.php | 816 ------------------ lib/Service/SolrToolsService.php | 539 ------------ lib/Service/SourceService.php | 62 -- lib/Service/TestService.php | 47 - lib/admin.php | 36 - lib/search.php | 36 - phpunit.integration.xml | 7 - phpunit.xml | 7 - screenshots/admin.jpg | Bin 364273 -> 0 bytes screenshots/displayResult.jpg | Bin 129175 -> 0 bytes screenshots/displaySuggestions.jpg | Bin 90067 -> 0 bytes screenshots/noindex1.png | Bin 27819 -> 0 bytes screenshots/noindex2.png | Bin 29205 -> 0 bytes templates/settings.admin.php | 413 --------- test.jpg | Bin 15385 -> 0 bytes test.pdf | Bin 8655 -> 0 bytes test.tif | Bin 24676 -> 0 bytes tests/bootstrap.php | 27 - tests/integration/AppTest.php | 52 -- 128 files changed, 18653 deletions(-) delete mode 100644 AUTHORS.md delete mode 100644 CHANGELOG.md delete mode 100644 COPYING delete mode 100644 LICENSE delete mode 100644 Makefile delete mode 100644 README.md delete mode 100644 appinfo/app.php delete mode 100644 appinfo/autoload.php delete mode 100644 appinfo/database.xml delete mode 100644 appinfo/info.xml delete mode 100644 appinfo/register_command.php delete mode 100644 appinfo/routes.php delete mode 100644 composer.json delete mode 100644 composer.lock delete mode 100644 config/nextant_solrconfig.xml delete mode 100644 css/admin.css delete mode 100644 css/navigate.css delete mode 100644 img/app.svg delete mode 100644 img/bookmarks.svg delete mode 100644 img/check.png delete mode 100644 img/fail.png delete mode 100644 js/navigate.js delete mode 100644 js/settings.admin.js delete mode 100644 l10n/.tx/config delete mode 100644 l10n/ast.js delete mode 100644 l10n/ast.json delete mode 100644 l10n/ca.js delete mode 100644 l10n/ca.json delete mode 100644 l10n/cs.js delete mode 100644 l10n/cs.json delete mode 100644 l10n/de.js delete mode 100644 l10n/de.json delete mode 100644 l10n/de_DE.js delete mode 100644 l10n/de_DE.json delete mode 100644 l10n/el.js delete mode 100644 l10n/el.json delete mode 100644 l10n/en_GB.js delete mode 100644 l10n/en_GB.json delete mode 100644 l10n/es.js delete mode 100644 l10n/es.json delete mode 100644 l10n/es_AR.js delete mode 100644 l10n/es_AR.json delete mode 100644 l10n/es_MX.js delete mode 100644 l10n/es_MX.json delete mode 100644 l10n/fi.js delete mode 100644 l10n/fi.json delete mode 100644 l10n/fr.js delete mode 100644 l10n/fr.json delete mode 100644 l10n/hu.js delete mode 100644 l10n/hu.json delete mode 100644 l10n/is.js delete mode 100644 l10n/is.json delete mode 100644 l10n/it.js delete mode 100644 l10n/it.json delete mode 100644 l10n/ko.js delete mode 100644 l10n/ko.json delete mode 100644 l10n/lv.js delete mode 100644 l10n/lv.json delete mode 100644 l10n/mn.js delete mode 100644 l10n/mn.json delete mode 100644 l10n/nb.js delete mode 100644 l10n/nb.json delete mode 100644 l10n/nl.js delete mode 100644 l10n/nl.json delete mode 100644 l10n/pl.js delete mode 100644 l10n/pl.json delete mode 100644 l10n/pt_BR.js delete mode 100644 l10n/pt_BR.json delete mode 100644 l10n/ru.js delete mode 100644 l10n/ru.json delete mode 100644 l10n/sq.js delete mode 100644 l10n/sq.json delete mode 100644 l10n/sv.js delete mode 100644 l10n/sv.json delete mode 100644 l10n/tr.js delete mode 100644 l10n/tr.json delete mode 100644 l10n/zh_CN.js delete mode 100644 l10n/zh_CN.json delete mode 100644 lib/AppInfo/Application.php delete mode 100644 lib/Command/Background.php delete mode 100644 lib/Command/Check.php delete mode 100644 lib/Command/Clear.php delete mode 100644 lib/Command/Index.php delete mode 100644 lib/Command/Live.php delete mode 100644 lib/Command/Optimize.php delete mode 100644 lib/Command/Pick.php delete mode 100644 lib/Command/Test.php delete mode 100644 lib/Controller/SearchController.php delete mode 100644 lib/Controller/SettingsController.php delete mode 100644 lib/Cron/BackgroundIndex.php delete mode 100644 lib/Db/LiveQueue.php delete mode 100644 lib/Db/LiveQueueMapper.php delete mode 100644 lib/Events/BookmarksEvents.php delete mode 100644 lib/Events/FilesEvents.php delete mode 100644 lib/Hooks/BookmarksHooks.php delete mode 100644 lib/Hooks/FilesHooks.php delete mode 100644 lib/Items/ItemDocument.php delete mode 100644 lib/Items/ItemError.php delete mode 100644 lib/Items/ItemQueue.php delete mode 100644 lib/Migration/NextantUpgrade.php delete mode 100644 lib/Service/BackgroundService.php delete mode 100644 lib/Service/BookmarkService.php delete mode 100644 lib/Service/ConfigService.php delete mode 100644 lib/Service/FileService.php delete mode 100644 lib/Service/IndexService.php delete mode 100644 lib/Service/MiscService.php delete mode 100644 lib/Service/NewsService.php delete mode 100644 lib/Service/QueueService.php delete mode 100644 lib/Service/SolrAdminService.php delete mode 100644 lib/Service/SolrService.php delete mode 100644 lib/Service/SolrToolsService.php delete mode 100644 lib/Service/SourceService.php delete mode 100644 lib/Service/TestService.php delete mode 100644 lib/admin.php delete mode 100644 lib/search.php delete mode 100644 phpunit.integration.xml delete mode 100644 phpunit.xml delete mode 100644 screenshots/admin.jpg delete mode 100644 screenshots/displayResult.jpg delete mode 100644 screenshots/displaySuggestions.jpg delete mode 100644 screenshots/noindex1.png delete mode 100644 screenshots/noindex2.png delete mode 100644 templates/settings.admin.php delete mode 100644 test.jpg delete mode 100644 test.pdf delete mode 100644 test.tif delete mode 100644 tests/bootstrap.php delete mode 100644 tests/integration/AppTest.php diff --git a/AUTHORS.md b/AUTHORS.md deleted file mode 100644 index ccde036..0000000 --- a/AUTHORS.md +++ /dev/null @@ -1,4 +0,0 @@ -# Authors - -* Maxence Lange: - diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index e2e86d4..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,23 +0,0 @@ -**1.0.3** -- max_delay is now configurable. -- possibility to not use the cron system from nextcloud. -- new command nextant:background to be run in cron. -- adding is: function during search (is:deleted) -- bugfixes: - * pdf from outside the current folder were not opened - * commit were not triggered in some situation - * external files were not indexed in some situation - * missing entries from Live if sql is gone - -**1.0.1** -- new tool: nextant:pick -- new compat with Bookmarks 0.9.1 -- bugfixes: - * remove files_external in admin if module is not enabled. - * few glitch in command line tools. - * cleaner exits on empty live queue. - * error while indexing on encrypted external storage - -**1.0.0** -First release. - diff --git a/COPYING b/COPYING deleted file mode 100644 index 2def0e8..0000000 --- a/COPYING +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index dbbe355..0000000 --- a/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/Makefile b/Makefile deleted file mode 100644 index ba128e4..0000000 --- a/Makefile +++ /dev/null @@ -1,174 +0,0 @@ -# This file is licensed under the Affero General Public License version 3 or -# later. See the COPYING file. -# @author Bernhard Posselt -# @copyright Bernhard Posselt 2016 - -# Generic Makefile for building and packaging a Nextcloud app which uses npm and -# Composer. -# -# Dependencies: -# * make -# * which -# * curl: used if phpunit and composer are not installed to fetch them from the web -# * tar: for building the archive -# * npm: for building and testing everything JS -# -# If no composer.json is in the app root directory, the Composer step -# will be skipped. The same goes for the package.json which can be located in -# the app root or the js/ directory. -# -# The npm command by launches the npm build script: -# -# npm run build -# -# The npm test command launches the npm test script: -# -# npm run test -# -# The idea behind this is to be completely testing and build tool agnostic. All -# build tools and additional package managers should be installed locally in -# your project, since this won't pollute people's global namespace. -# -# The following npm scripts in your package.json install and update the bower -# and npm dependencies and use gulp as build system (notice how everything is -# run from the node_modules folder): -# -# "scripts": { -# "test": "node node_modules/gulp-cli/bin/gulp.js karma", -# "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", -# "build": "node node_modules/gulp-cli/bin/gulp.js" -# }, - -app_name=$(notdir $(CURDIR)) -build_tools_directory=$(CURDIR)/build/tools -source_build_directory=$(CURDIR)/build/artifacts/source -source_package_name=$(source_build_directory)/$(app_name) -appstore_build_directory=$(CURDIR)/build/artifacts/appstore -appstore_package_name=$(appstore_build_directory)/$(app_name) -npm=$(shell which npm 2> /dev/null) -composer=$(shell which composer 2> /dev/null) - -all: build - -# Fetches the PHP and JS dependencies and compiles the JS. If no composer.json -# is present, the composer step is skipped, if no package.json or js/package.json -# is present, the npm step is skipped -.PHONY: build -build: -ifneq (,$(wildcard $(CURDIR)/composer.json)) - make composer -endif -ifneq (,$(wildcard $(CURDIR)/package.json)) - make npm -endif -ifneq (,$(wildcard $(CURDIR)/js/package.json)) - make npm -endif - -# Installs and updates the composer dependencies. If composer is not installed -# a copy is fetched from the web -.PHONY: composer -composer: -ifeq (, $(composer)) - @echo "No composer command available, downloading a copy from the web" - mkdir -p $(build_tools_directory) - curl -sS https://getcomposer.org/installer | php - mv composer.phar $(build_tools_directory) - php $(build_tools_directory)/composer.phar install --prefer-dist - php $(build_tools_directory)/composer.phar update --prefer-dist -else - composer install --prefer-dist - composer update --prefer-dist -endif - -# Installs npm dependencies -.PHONY: npm -npm: -ifeq (,$(wildcard $(CURDIR)/package.json)) - cd js && $(npm) run build -else - npm run build -endif - -# Removes the appstore build -.PHONY: clean -clean: - rm -rf ./build - -# Same as clean but also removes dependencies installed by composer, bower and -# npm -.PHONY: distclean -distclean: clean - rm -rf vendor - rm -rf node_modules - rm -rf js/vendor - rm -rf js/node_modules - -# Builds the source and appstore package -.PHONY: dist -dist: - make source - make appstore - -# Builds the source package -.PHONY: source -source: - rm -rf $(source_build_directory) - mkdir -p $(source_build_directory) - tar cvzf $(source_package_name).tar.gz ../$(app_name) \ - --exclude-vcs \ - --exclude="../$(app_name)/build" \ - --exclude="../$(app_name)/js/node_modules" \ - --exclude="../$(app_name)/node_modules" \ - --exclude="../$(app_name)/*.log" \ - --exclude="../$(app_name)/js/*.log" \ - -# Builds the source package for the app store, ignores php and js tests -.PHONY: appstore -appstore: - rm -rf $(appstore_build_directory) - mkdir -p $(appstore_build_directory) - tar cvzf $(appstore_package_name).tar.gz ../$(app_name) \ - --exclude-vcs \ - --exclude="../$(app_name)/build" \ - --exclude="../$(app_name)/tests" \ - --exclude="../$(app_name)/Makefile" \ - --exclude="../$(app_name)/*.log" \ - --exclude="../$(app_name)/phpunit*xml" \ - --exclude="../$(app_name)/composer.*" \ - --exclude="../$(app_name)/js/node_modules" \ - --exclude="../$(app_name)/js/tests" \ - --exclude="../$(app_name)/js/test" \ - --exclude="../$(app_name)/js/*.log" \ - --exclude="../$(app_name)/js/package.json" \ - --exclude="../$(app_name)/js/bower.json" \ - --exclude="../$(app_name)/js/karma.*" \ - --exclude="../$(app_name)/js/protractor.*" \ - --exclude="../$(app_name)/package.json" \ - --exclude="../$(app_name)/bower.json" \ - --exclude="../$(app_name)/karma.*" \ - --exclude="../$(app_name)/protractor\.*" \ - --exclude="../$(app_name)/.*" \ - --exclude="../$(app_name)/js/.*" \ - -# Command for running JS and PHP tests. Works for package.json files in the js/ -# and root directory. If phpunit is not installed systemwide, a copy is fetched -# from the internet -.PHONY: test -test: -ifneq (,$(wildcard $(CURDIR)/js/package.json)) - cd js && $(npm) run test -endif -ifneq (,$(wildcard $(CURDIR)/package.json)) - $(npm) run test -endif -ifeq (, $(shell which phpunit 2> /dev/null)) - @echo "No phpunit command available, downloading a copy from the web" - mkdir -p $(build_tools_directory) - curl -sSL https://phar.phpunit.de/phpunit.phar -o $(build_tools_directory)/phpunit.phar - php $(build_tools_directory)/phpunit.phar -c phpunit.xml - php $(build_tools_directory)/phpunit.phar -c phpunit.integration.xml -else - phpunit -c phpunit.xml --coverage-clover build/php-unit.clover - phpunit -c phpunit.integration.xml --coverage-clover build/php-unit.clover -endif \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index fde20b0..0000000 --- a/README.md +++ /dev/null @@ -1,78 +0,0 @@ - - - - - -# Nextant - -> Navigate through your cloud using Solr - -**Nextant** performs fast and concise _Full-Text Search_ within: - -- your own files, -- shared files, -- federated cloud shares, -- external storage, -- server-side encrypted storage, -- your bookmarks. - - -### Recognized file formats: -- plain text, -- RTF, -- PDF, -- JPEG & TIFF (requires Tesseract) -- HTML, -- LibreOffice & OpenOffice, -- Microsoft Office, - - - -## Installation - -- [You first need to install a Solr servlet](https://github.com/nextcloud/nextant/wiki) -- Download the .tar.gz from the [appstore](https://apps.nextcloud.com/apps/nextant), unzip and place this app in **nextcloud/apps/** (or clone from GitHub and build the app yourself) -- Enable the app in the app list, -- Edit the settings on the administration page. -- Enable Nextant using the **./occ app:enable nextant** command -- Test your Solr installation and save the configuration to Nextant using the **./occ nextant:test http://127.0.0.1:8983/solr/ nextant --save** command -- Extract the current files from your cloud using the **./occ nextant:index** command -- Have a look to this [explanation on how Nextant works](https://github.com/nextcloud/nextant/wiki/Extracting,-Live-Update) -- _(Optional)_ [Installing Tesseract](https://github.com/tesseract-ocr/tesseract/wiki) ([Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) Engine) will allow Nextant to extract text from image file and PDFs without a text layer. - -## Scripted installation (Ubuntu) -The developers of the [Nextcloud VM](https://github.com/nextcloud/vm) has made a [script](https://raw.githubusercontent.com/nextcloud/vm/master/apps/nextant.sh) that you can use. -Please note that you must change the variables in the script to suit your config before you run it. - -To get the script, please type the folloing command: `wget https://github.com/nextcloud/vm/blob/master/apps/nextant.sh` and then run the script with `sudo bash nextant.sh`. - -Please report any issues regarding the script in the [Nextcloud VM repo](https://github.com/nextcloud/vm/issues). - -## Building the app - -The app can be built by using the provided Makefile by running: - - make - -This requires the following things to be present: -* make -* which -* tar: For building the archive -* curl: Used if phpunit and composer are not installed to fetch them from the web -* npm: For building and testing everything JS, only required if a package.json is placed inside the **js/** folder - -The make command will install or update Composer dependencies if a composer.json is present and also **npm run build** if a package.json is present in the **js/** folder. The npm **build** script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.: - -**package.json**: -```json -"scripts": { - "test": "node node_modules/gulp-cli/bin/gulp.js karma", - "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", - "build": "node node_modules/gulp-cli/bin/gulp.js" -} -``` - - - - - diff --git a/appinfo/app.php b/appinfo/app.php deleted file mode 100644 index 0ee569a..0000000 --- a/appinfo/app.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\AppInfo; - -require_once __DIR__ . '/autoload.php'; - -$app = new \OCA\Nextant\AppInfo\Application(); - -// $app->registerNavigation(); -$app->registerFilesHooks(); -$app->registerSettingsAdmin(); -$app->registerSearchProvider(); - - diff --git a/appinfo/autoload.php b/appinfo/autoload.php deleted file mode 100644 index e1e330a..0000000 --- a/appinfo/autoload.php +++ /dev/null @@ -1,44 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\AppInfo; - -/** - * Additional autoloader registration, e.g. - * registering composer autoloaders - */ -$composerInstalled = false; -// $solariumInstalled = false; -$composerDir = __DIR__ . '/../vendor/'; - -if (is_dir($composerDir) && file_exists($composerDir . 'autoload.php')) { - require_once $composerDir . 'autoload.php'; - $composerInstalled = true; -} - -//if (! $composerInstalled) { -// $app->getContainer ()->query ( 'MiscService' )->log ( 'You\'ll need to build this apps. Please check documentation', 2 ); -//} \ No newline at end of file diff --git a/appinfo/database.xml b/appinfo/database.xml deleted file mode 100644 index 0adbc94..0000000 --- a/appinfo/database.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - *dbname* - true - false - utf8 - - - *dbprefix*nextant_live_queue - - - id - integer - true - true - true - true - 8 - - - item - text - true - 512 - - -
- -
\ No newline at end of file diff --git a/appinfo/info.xml b/appinfo/info.xml deleted file mode 100644 index 304c6ed..0000000 --- a/appinfo/info.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - nextant - Nextant - Navigate through your cloud using Solr - - Navigate through your cloud using Solr - - -**Nextant** performs fast and concise _Full-Text Search_ within: - -- your own files, -- shared files, -- external storage, -- bookmarks - - -### Recognized file format: -- plain text, -- rtf, -- pdf, -- html, -- openoffice, -- microsoft office, -- image JPEG and TIFF (will requiert Tesseract installed) -- pdf with no text layer (will also requiert Tesseract) _[work in progress]_ - - - -## Installation - -- [You first need to install a Solr servlet](https://github.com/nextcloud/nextant/wiki) -- Download the .zip from the appstore, unzip and place this app in **nextcloud/apps/** (or clone the github and build the app yourself) -- Enable the app in the app list, -- Edit the settings in the administration page. -- Extract the current files from your cloud using the **./occ nextant:index** command -- Have a look to this [explanation on how Nextant works](https://github.com/nextcloud/nextant/wiki/Extracting,-Live-Update) -- _(Optional)_ [Installing Tesseract](https://github.com/tesseract-ocr/tesseract/wiki) ([Optical Character Recognition](https://en.wikipedia.org/wiki/Optical_character_recognition) (OCR) Engine) will allow Nextant to extract text from images and pdfs without text layer. - - - - 1.0.8 - agpl - Maxence Lange - - - - - https://github.com/nextcloud/nextant/wiki - - tools - files - https://github.com/nextcloud/nextant/wiki - https://github.com/nextcloud/nextant/issues - https://github.com/nextcloud/nextant/ - https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/displayResult.jpg - https://raw.githubusercontent.com/nextcloud/nextant/master/screenshots/admin.jpg - - - - - - OCA\Nextant\Cron\BackgroundIndex - - - - OCA\Nextant\Migration\NextantUpgrade - - - \ No newline at end of file diff --git a/appinfo/register_command.php b/appinfo/register_command.php deleted file mode 100644 index 3037024..0000000 --- a/appinfo/register_command.php +++ /dev/null @@ -1,39 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -$app = new \OCA\Nextant\AppInfo\Application(); -$c = $app->getContainer(); - -$application->add(new OCA\Nextant\Command\Check($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('SettingsController'))); -$application->add(new OCA\Nextant\Command\Test($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('IndexService'), $c->query('SettingsController'))); -$application->add(new OCA\Nextant\Command\Clear($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrAdminService'))); -$application->add(new OCA\Nextant\Command\Index(OC::$server->getUserManager(), $c->query('RootFolder'), $c->query('IndexService'), $c->query('QueueService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('MiscService'))); -$application->add(new OCA\Nextant\Command\Optimize($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'))); -$application->add(new OCA\Nextant\Command\Pick($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'))); -$application->add(new OCA\Nextant\Command\Live($c->query('QueueService'), $c->query('IndexService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('MiscService'))); -$application->add(new OCA\Nextant\Command\Background($c->query('BackgroundService'))); - - diff --git a/appinfo/routes.php b/appinfo/routes.php deleted file mode 100644 index 78064a3..0000000 --- a/appinfo/routes.php +++ /dev/null @@ -1,85 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -return [ - 'routes' => [ - [ - 'name' => 'settings#setSettings', - 'url' => 'ajax/settings/admin.php', - 'verb' => 'POST' - ], - [ - 'name' => 'settings#setOptionsFiles', - 'url' => 'ajax/settings/option_files.php', - 'verb' => 'POST' - ], - [ - 'name' => 'settings#setOptionsFilesFilters', - 'url' => 'ajax/settings/option_files_filters.php', - 'verb' => 'POST' - ], - [ - 'name' => 'settings#setOptionsBookmarks', - 'url' => 'ajax/settings/option_bookmarks.php', - 'verb' => 'POST' - ], - [ - 'name' => 'settings#setOptionsStatus', - 'url' => 'ajax/settings/option_status.php', - 'verb' => 'POST' - ], - [ - 'name' => 'settings#updateSubOptions', - 'url' => 'ajax/settings/updateSubOptions.php', - 'verb' => 'POST' - ], - [ - 'name' => 'search#searchRequest', - 'url' => 'ajax/search.php', - 'verb' => 'POST' - ], - [ - 'name' => 'search#suggestRequest', - 'url' => 'ajax/suggest.php', - 'verb' => 'POST' - ], - [ - 'name' => 'search#searchOptions', - 'url' => 'ajax/search_options.php', - 'verb' => 'POST' - ], - - [ - 'name' => 'search#searchRequestPublic', - 'url' => 'ajax/search_public.php', - 'verb' => 'POST' - ], - [ - 'name' => 'search#suggestRequestPublic', - 'url' => 'ajax/suggest_public.php', - 'verb' => 'POST' - ] - ] -]; diff --git a/composer.json b/composer.json deleted file mode 100644 index a14de1d..0000000 --- a/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": { - "solarium/solarium": "^3.7" - } -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 032ea97..0000000 --- a/composer.lock +++ /dev/null @@ -1,136 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "content-hash": "bf7709dd02147d6820929f1d232796af", - "packages": [ - { - "name": "solarium/solarium", - "version": "3.8.1", - "source": { - "type": "git", - "url": "https://github.com/solariumphp/solarium.git", - "reference": "c353babec89fdbe8c64054bfec8e77bcb5da6705" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/solariumphp/solarium/zipball/c353babec89fdbe8c64054bfec8e77bcb5da6705", - "reference": "c353babec89fdbe8c64054bfec8e77bcb5da6705", - "shasum": "" - }, - "require": { - "php": ">=5.3.2", - "symfony/event-dispatcher": "~2.3|~3.0" - }, - "require-dev": { - "guzzlehttp/guzzle": "^3.8 || ^6.2", - "phpunit/phpunit": "~3.7", - "satooshi/php-coveralls": "~1.0", - "squizlabs/php_codesniffer": "~1.4", - "zendframework/zendframework1": "~1.12" - }, - "suggest": { - "minimalcode/search": "Query builder compatible with Solarium, allows simplified solr-query handling" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-develop": "3.3.x-dev" - } - }, - "autoload": { - "psr-0": { - "Solarium\\": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "See GitHub contributors", - "homepage": "https://github.com/basdenooijer/solarium/contributors" - } - ], - "description": "PHP Solr client", - "homepage": "http://www.solarium-project.org", - "keywords": [ - "php", - "search", - "solr" - ], - "time": "2017-02-02T13:32:22+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v3.2.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9137eb3a3328e413212826d63eeeb0217836e2b6", - "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6", - "shasum": "" - }, - "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2017-01-02T20:32:22+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -} diff --git a/config/nextant_solrconfig.xml b/config/nextant_solrconfig.xml deleted file mode 100644 index 8864910..0000000 --- a/config/nextant_solrconfig.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - suggest - org.apache.solr.spelling.suggest.Suggester - org.apache.solr.spelling.suggest.fst.FSTLookupFactory - text - true - - - - - - true - suggest - 5 - - - suggest - - - - \ No newline at end of file diff --git a/css/admin.css b/css/admin.css deleted file mode 100644 index 9c3b029..0000000 --- a/css/admin.css +++ /dev/null @@ -1,101 +0,0 @@ -#nextant_saving_settings, #nextant_saving_files, - #nextant_saving_files_filters, #nextant_saving_bookmarks, - #nextant_saving_check, #nextant_saving_status { - font-weight: bolder; - font-size: 12px; - margin-left: 30px; - font-style: italic; - filter: alpha(opacity = 50); - opacity: 0.5; -} - -#nextant-display { - width: 450px; - height: 250px; - position: relative; - border-radius: 20px; - padding: 10px; -} - -#nextant-filters { - width: 450px; - height: 250px; - border-radius: 20px; - position: absolute; - margin-top: 20px; - padding: 10px; - top: 300px; -} - -DIV.solr_filters_item { - float: left; - width: 200px; - font-style: italic; - font-size: 12px; -} - -DIV.solr_filters_item_large { - float: left; - width: 400px; - font-style: italic; - font-size: 12px; -} - -DIV.solr_filters_title { - font-weight: bold; - font-size: 13px; -} - -DIV.nextant-box { - border: solid 1px #f3f3f3; - box-shadow: 2px 2px 5px #0000004D; - background: #f8f8f8; -} - -DIV.nextant-display-line { - margin: 0 auto; - position: absolute; -} - -IMG.nextant_display_icon { - position: absolute; - width: 25px; - height: 25px; -} - -DIV.nextant_display_text { - top: 3px; - left: 40px; - position: absolute; - font-style: italic; -} - -TD.nextant_admin_left { - width: 300px; - text-align: right; - font-weight: bold; - padding-right: 15px; -} - -TR.nextant_admin_head, TR.nextant_admin_head:hover { - margin-top: 12px; - width: 600px; - background: #ddd; -} - -TD.nextant_admin_head { - font-weight: bold; - text-align: right; - padding: 4px; - padding-right: 30px; - font-style: italic; -} - -#solr_switch_filters, #solr_switch_filters:hover { - cursor: pointer; - font-size: 12px; -} - -#solr_switch_filters:hover { - text-decoration: underline; -} \ No newline at end of file diff --git a/css/navigate.css b/css/navigate.css deleted file mode 100644 index ebec24b..0000000 --- a/css/navigate.css +++ /dev/null @@ -1,121 +0,0 @@ -@CHARSET "ISO-8859-1"; - -.searchbox input[type="search"]:valid, .searchbox input[type="search"]:focus - { - width: 300px; - background: rgba(255,255,255,0.2); - border-radius: 15px; -} - -.searchbox_querying { - border-color: rgba(255,255,255,1) !important; -} - -#nextantList { - width: 100%; -} - -DIV.nextant_entry { - height: 50px; - width: 100%; - background: #f00; - margin: 2px; -} - -DIV.nextant_details { - width: 22px; - background-size: 22px; - display: inline-block; - height: 22px; - margin-left: -8px; - margin-top: -8px; - cursor: pointer; - float: left; - position: absolute; - z-index: 4; - opacity: 0.5; - filter: alpha(opacity = 50) -} - -A.nextant_file { - cursor: default !important; - position: relative; - -moz-box-sizing: border-box; - box-sizing: border-box; - display: block; - height: 50px; - line-height: 50px; - padding: 0; - left: 50px; - margin-right: 50px; -} - -SPAN.nextant_line { - position: absolute; - padding: 0; - overflow: hidden; - padding-right: 20px; - max-width: 800px; - text-overflow: ellipsis; -} - -SPAN.nextant_line1 { - top: -15px; - font-style: italic; - font-weight: bold; -} - -SPAN.nextant_line2 { - top: 0px; - font-style: italic; - font-size: 11px; - left: 10px; - color: #9e9e9e; -} - -SPAN.nextant_line3 { - font-style: italic; - font-size: 11px; - color: #9e9e9e; - left: 10px; - top: 15px; - padding-right: 20px; -} - -SPAN.nextant_hl { - color: #000; - font-weight: bold; -} - -#nextant_suggestion { - z-index: 2000; - margin-top: 18px; - border: solid 1px rgba(0,0,0,0.3); - border-radius: 4px; - background: rgba(254,254,254,0.8); - width: 350px; - box-shadow: 2px 2px 5px rgba(0,0,0,0.3); -} - -DIV.nextant_suggestion_item { - border-top: dashed 1px rgba(0,0,0,0.2); - padding: 4px; - padding-left: 12px; - padding-right: 12px; -} - -DIV.nextant_suggestion_item, nextant_suggestion_item:hover { - -webkit-transition: background-color 200ms linear; - -moz-transition: background-color 200ms linear; - -o-transition: background-color 200ms linear; - -ms-transition: background-color 200ms linear; - transition: background-color 200ms linear; -} - -nextant_suggestion_item:hover { - background: #eee;; -} - -DIV.nextant_suggestion_firstitem { - border-top: 0px; -} diff --git a/img/app.svg b/img/app.svg deleted file mode 100644 index 1b09540..0000000 --- a/img/app.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/img/bookmarks.svg b/img/bookmarks.svg deleted file mode 100644 index 89a2cf2..0000000 --- a/img/bookmarks.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - diff --git a/img/check.png b/img/check.png deleted file mode 100644 index d31c204..0000000 Binary files a/img/check.png and /dev/null differ diff --git a/img/fail.png b/img/fail.png deleted file mode 100644 index b93f167..0000000 Binary files a/img/fail.png and /dev/null differ diff --git a/js/navigate.js b/js/navigate.js deleted file mode 100644 index ce1fe2d..0000000 --- a/js/navigate.js +++ /dev/null @@ -1,842 +0,0 @@ -/** - * Nextcloud - nextant - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Maxence Lange - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU Affero General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more - * details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -(function() { - - /** - * @constructs Nextant - */ - var Nextant = function() { - this.initialize(); - }; - - Nextant.prototype = { - - fileList : null, - requesting : false, - currFiles : null, - oldQuery : '', - searchResult : null, - locked : false, - config : null, - - nextant_sharelink : true, - searchboxFocus : false, - - timerQuery : null, - suggestNoSpam : false, - - /** - * Initialize the file search - */ - initialize : function() { - - var self = this; - - // - // fileAppLoaded - detect if Files App is loaded - this.fileAppLoaded = function() { - return !!OCA.Files && !!OCA.Files.App; - }; - - // - // initFileList - init fileList - this.initFileList = function() { - - var query = $('#searchbox').val(); - if (self.fileList != null) { - - if (self.oldQuery == '') - self.currFiles = self.fileList.files; - - self.oldQuery = $('#searchbox').val(); - return; - } - - if (self.nextant_sharelink) - self.fileList = OCA.Sharing.PublicApp.fileList; - - else { - _.each(OC.Plugins.getPlugins('OCA.Search'), - function(plugin) { - if (plugin instanceof OCA.Search.Files) - self.fileList = plugin.fileList; - }); - } - - /* - * Haven't found a way to include (or remove) a fileAction only - * in a specific place (only in search result) - */ - if (self.nextant_sharelink || OCA.Files.App.fileList != null) // #82 - OCA.Files.fileActions.registerAction({ - name : 'nextant_gotofolder', - displayName : t('nextant', 'Go to folder'), - mime : 'all', - permissions : OC.PERMISSION_READ, - type : OCA.Files.FileActions.TYPE_DROPDOWN, - icon : function() { - return OC.imagePath('core', 'filetypes/folder'); - }, - actionHandler : function(filename, context) { - self.onGoToFolder(filename, context); - } - }); - - if (self.config == null) - $.post( - OC - .filePath('nextant', 'ajax', - 'search_options.php'), {}, - self.getOptionsResult); - - }; - - // - // getOptionsResult - get config from server - this.getOptionsResult = function(result) { - if (self.config != null) - return; - - self.config = result; - } - - // initShareLink - init Share Link (only if needed) - this.initShareLink = function() { - if (!self.nextant_sharelink) - return; - - $searchbox = ''; - - $('#logo-claim').after($searchbox); - setTimeout(function() { - $('#searchbox').fadeIn(500); - }, 1000); - - $('#searchbox').on('input', function(e) { - self.sendSuggestRequest(); - self.delayedSearchRequest(); - }); - - $('DIV.crumb.svg.last').live('click', function() { - $('#searchbox').val(''); - self.sendSearchRequest(); - }); - - $('DIV.crumb.svg.ui-droppable').live('click', function() { - $('#searchbox').val(''); - self.sendSearchRequest(); - }); - - $("form.searchbox").submit(function() { - return false; - }); - - $('#searchbox').focusout(function() { - // nextantCurrentFocus = false; - // nextant_share_link.suggestShow(); - }); - - $('#searchbox').focusin(function() { - // nextantCurrentFocus = true; - // nextant_share_link.suggestShow(); - }); - - }; - - // - // sendSearchRequest - - this.sendSearchRequest = function() { - - var query = $('#searchbox').val(); - - if (query == '') { - if (self.searchResult != null) { - self.searchResult = null; - self.fileList.setSort('name', 'asc', false, false); - self.fileList.setFiles(self.currFiles); - } - return; - } - - if (self.requesting) - return; - - self.requesting = true; - $('#searchbox').addClass('searchbox_querying'); - - var data = { - query : query, - current_dir : self.get('dir'), - key : self.getShareLinkKey() - } - - self.postSearchRequest(data); - }; - - // - // sendSuggestRequest - - this.sendSuggestRequest = function() { - var query = $('#searchbox').val(); - - if (query == '') - return; - - if (self.requestingSuggest) - return; - - self.requestingSuggest = true; - - var data = { - query : query - } - - self.postSuggestRequest(data); - }; - - // - // searchRequest - search request - this.postSearchRequest = function(data) { - - if (self.nextant_sharelink) - $.post(OC.filePath('nextant', 'ajax', 'search_public.php'), - data, self.searchRequestResult); - else - $.post(OC.filePath('nextant', 'ajax', 'search.php'), data, - self.searchRequestResult); - }; - - // - // suggest request - this.postSuggestRequest = function(data) { - - if (self.suggestNoSpam) - return; - - if (self.nextant_sharelink) - $.post( - OC - .filePath('nextant', 'ajax', - 'suggest_public.php'), data, - self.suggestRequestResult); - else - $.post(OC.filePath('nextant', 'ajax', 'suggest.php'), data, - self.suggestRequestResult); - }; - - // - // searchRequestResult - parse result from last request - this.searchRequestResult = function(infos) { - - var result = infos.result; - - var origResult = []; - if (self.config == null - || self.config.index_files_nextant_only != '1') - origResult = self.currentFileResult(); - - self.searchResult = origResult.concat(result); - result = self.searchResult; - - if (result == null) - return; - - var data = []; - for (var i = 0; i < result.length; i++) { - if (result[i] == null || result[i].entry == null) - continue; - - var alr = false; - for (var j = 0; j < data.length; j++) { - if (data[j].id == result[i].entry.id) { - alr = true; - break; - } - } - - if (!alr) - data.push(result[i].entry); - } - - self.fileList.setSort('score', 'desc', false, false); - self.fileList.setFiles(data); - - self.requesting = false; - $('#searchbox').removeClass('searchbox_querying'); - - self.updateSearchResult(); - - if (infos.query && $('#searchbox').val() != infos.query) - self.sendSearchRequest(); - }; - - // - // updateSearchResult - update and morph the filelist with result - this.updateSearchResult = function() { - - var result = self.searchResult; - if (result == null) - return; - - // if (self.currQuery == '') - // return; - - self.locked = false; - - // We edit each row - _.each(result, function(item) { - if (item == null) - return; - if (item.entry == null) - return; - - tr = self.getElem(item.entry.name); - - if (!$(tr).length) - return; - - self.__morphLink(tr, item); - self.__morphResultDisplay(tr, item); - self.__morphOverlayIcon(tr, item); - self.__morphBookmarksFileAction(tr, item); - }); - - self.__morphSummary(result); - self.__morphEmptyContent(result); - - // done - self.locked = true; - }; - - // - this.suggestRequestResult = function(response) { - - self.requestingSuggest = false; - if (response.query && $('#searchbox').val() != response.query) - self.sendSuggestRequest(); - - if (response == null || response.status > 0 - || response.result == null - || response.result.length == 0) { - - if (response.status > 0) { - self.suggestNoSpam = true; - setTimeout(function() { - self.suggestNoSpam = false; - }, 60000); - } - - if ($('#nextant_suggestion').length) - $('#nextant_suggestion').hide(200); - return; - } - - if (!$('#nextant_suggestion').length) { - if (self.nextant_sharelink) - $('#body-public').append( - $('
').attr('id', - 'nextant_suggestion')); - else - $('#body-user').append( - $('
').attr('id', - 'nextant_suggestion')); - } - - self.suggestDisplay(); - - $('#nextant_suggestion').empty(); - var result = response.result; - for (var i = 0; i < result.length; i++) { - var first = ''; - if (i == 0) - first = 'nextant_suggestion_firstitem'; - - $('#nextant_suggestion').append( - $('
').attr('id', 'nextant_sugg_' + i) - .attr('class', - 'nextant_suggestion_item ' + first) - .html(result[i].suggestion)); - } - - $('.nextant_suggestion_item').click(function() { - self.suggestReplace($(this).text()); - // self.searchRequest($('#searchbox')); - }); - }; - - // - // init search on shared link - this.delayedSearchRequest = function() { - - self.initFileList(); - // self.currQuery = query; - - if (self.timerQuery != null) - window.clearTimeout(self.timerQuery); - - var delay = 250; - if (self.config != null) - switch (self.config.resource_level) { - case '1': - delay = 400; - break; - - case '5': - delay = 150; - break; - } - - self.timerQuery = setTimeout(function() { - self.sendSearchRequest(); - }, delay); - }; - - // - // return array containing current file from current directory that - // fit the query. - // (like current search in files app) - this.currentFileResult = function() { - var currFiles = self.currFiles; - var data = []; - - if (currFiles == null || currFiles.length == 0) - return data; - - for (var i = 0; i < currFiles.length; i++) { - - if (currFiles[i].name.toLowerCase().indexOf( - $('#searchbox').val().toLowerCase()) === -1) - continue; - - data.push({ - data : { - id : currFiles[i].id, - score : 9999 - }, - entry : currFiles[i] - }); - } - - return data; - }; - - // - // refresh display of suggestion - this.suggestDisplay = function() { - - var offset = $('#searchbox').offset(); - var height = $('#searchbox').height(); - var top = offset.top + height + "px"; - var left = offset.left + "px"; - - $('#nextant_suggestion').css({ - 'position' : 'absolute', - 'left' : left, - 'top' : top - }); - - if (!$('#nextant_suggestion').length) - return; - if (self.searchboxFocus) - $('#nextant_suggestion').show(200); - else - $('#nextant_suggestion').hide(200); - }; - - // - // replace search with suggestion - this.suggestReplace = function(suggestion) { - $('#searchbox').val(suggestion + ' '); - $('#searchbox').focus(); - }; - - // - // detect mutation FileList - this.mutationFileList = function(mutations, observer) { - if (self.locked) - self.updateSearchResult(); - }; - - // - // Go To Folder. Called on FileActions - this.onGoToFolder = function(path, context) { - var apath = path.split('/'); - - var dir = ''; - var filename = ''; - for (var i = 0; i < apath.length; i++) { - filename = apath[i]; - dir += '/'; - if (i < (apath.length - 1)) - dir += filename; - } - - // window.alert('DIR: ' + dir + ' - FILENAME: ' + filename); - - var link = ''; - if (self.nextant_sharelink) - link = '/s/' + self.getShareLinkKey() - + '?path={dir}&scrollto={scrollto}'; - - if (link == '') - link = '/apps/files/?dir={dir}&scrollto={scrollto}' - - window.location = OC.generateUrl(link, { - dir : dir, - scrollto : filename - }); - - }; - - // - // get TR elem from filelist - this.getElem = function(file) { - var list = $('#fileList').children('tr'); - for (var i = 0; i < list.length; i++) { - if ($(list[i]).attr('data-file') == file) - return $(list[i]); - } - - return null; - }; - - // - // get info from url - this.get = function(name, url) { - - if (!url) - url = window.location.href; - name = name.replace(/[\[\]]/g, "\\$&"); - var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex - .exec(url); - if (!results || !results[2]) - return ''; - - return decodeURIComponent(results[2].replace(/\+/g, ' ')); - }; - - this.getShareLinkKey = function() { - if (!self.nextant_sharelink) - return ''; - - dir = window.location.href.split('/'); - key = dir[dir.length - 1]; - return key; - }; - - // - // MORPH - // - - // - // fix the subfolder link - // - this.__morphLink = function(tr, item) { - $(tr).attr('data-path', item.entry.dirpath); - var elemhref = $(tr).find('td.filename').find('a.name'); - if (!$(elemhref).length) - return; - - if (self.nextant_sharelink) { - var link = parent.location.protocol + '//' + location.host - + OC.generateUrl('/s/') + self.getShareLinkKey(); - link += '/download?path=' + item.entry.dirpath + '&files=' - + item.entry.filename; - $(elemhref).attr('href', link.replace(/%2F/g, '/')); - return; - } - - // fix files link - if (item.data.type == 'files') { - $(elemhref).attr('href', - $(elemhref).attr('href').replace(/%2F/g, '/')); - $(tr).attr('data-file', item.entry.filename); - } - - // fix bookmark link - if (item.data.type == 'bookmarks') - $(elemhref).attr('href', item.data.path).attr('target', - '_blank'); - - }; - - // - // fix the display and add few lines - // - this.__morphResultDisplay = function(tr, item) { - var elemname = $(tr).find('td.filename').find('a.name').find( - 'span.nametext'); - - if (item.data.lines == null) - return; - - $(elemname).empty(); - var displaydiv = $(''); - if (item.data.lines[1]) - displaydiv.append($('').attr('class', - 'nextant_line nextant_line1').html( - item.data.lines[1])); - if (item.data.lines[2]) - displaydiv.append($('').attr('class', - 'nextant_line nextant_line2').html( - item.data.lines[2])); - if (item.data.lines[3]) - displaydiv.append($('').attr('class', - 'nextant_line nextant_line3').html( - item.data.lines[3])); - - $(elemname).append(displaydiv); - $(elemname).css('width', '800px'); - - }; - - // - // Add overlay icon - // - this.__morphOverlayIcon = function(tr, item) { - - var elemicon = $(tr).find('td.filename').find('div.thumbnail'); - - if (item.data.type == 'bookmarks') - elemicon.append($('
').attr( - { - 'class' : 'nextant_details', - 'style' : "background-image: url('" - + OC.imagePath('nextant', - 'bookmarks.svg') + "')" - })); - if (item.data.shared) - elemicon.append($('
').attr( - { - 'class' : 'nextant_details', - 'style' : "background-image: url('" - + OC.imagePath('core', - 'actions/shared.svg') + "')" - })); - if (item.data.deleted) - elemicon.append($('
').attr( - { - 'class' : 'nextant_details', - 'style' : "background-image: url('" - + OC.imagePath('core', - 'actions/delete.svg') + "')" - })); - }; - - // - // removing fileaction on bookmarks - // - this.__morphBookmarksFileAction = function(tr, item) { - if (item.data.type != 'bookmarks') - return; - - $(tr).find('.filename').on('click', function(e) { - e.stopPropagation(); - }); - $(tr).find('.fileactions').empty().on('click', function(e) { - e.stopPropagation(); - }); - $(tr).find('.filesize').empty().on('click', function(e) { - e.stopPropagation(); - }); - $(tr).find('.date').on('click', function(e) { - e.stopPropagation(); - }); - }; - - // - // fix Summary - // - this.__morphSummary = function(files) { - - var cBookmarks = 0; - for (var i = 0; i < files.length; i++) { - if (files[i] == null) - continue; - if (files[i].data.type == 'bookmarks') - cBookmarks++; - } - - var elemsumm = $('tr.summary').find('span.info'); - if (!elemsumm.length) - return; - - // First, fix the current cummary - self.fileList.fileSummary.calculate(self.fileList.files); - self.fileList.fileSummary.summary.totalFiles -= cBookmarks; - self.fileList.fileSummary.update(); - - // Then, add a summary for bookmarks - elemsumm.find('span.bminfo').text( - cBookmarks + ' bookmark' - + ((cBookmarks > 1) ? 's' : '')); - - if (cBookmarks == 0) { - elemsumm.find('span.bminfo').addClass('hidden'); - elemsumm.find('span.bmconnector').addClass('hidden'); - } else { - - elemsumm.find('span.bminfo').removeClass('hidden'); - elemsumm.find('span.bmconnector').removeClass('hidden'); - - if (files.length == cBookmarks) { - $('tr.summary').removeClass('hidden'); - elemsumm.find('span.dirinfo').addClass('hidden'); - elemsumm.find('span.connector').addClass('hidden'); - elemsumm.find('span.fileinfo').addClass('hidden'); - elemsumm.find('span.bmconnector').addClass('hidden'); - - } else if (elemsumm.find('span.fileinfo.hidden').length - || elemsumm.find('span.dirinfo.hidden').length) { - } else - elemsumm.find('span.connector').text(', '); - } - }; - - // - // fix empty result div - // - this.__morphEmptyContent = function(files) { - if (files.length > 0) - setTimeout(function() { - $('#searchresults').find('div.emptycontent').addClass( - 'hidden') - }, 200); - }; - - // register - OC.Plugins.register('OCA.Search', this); - }, - - attach : function(search) { - var self = this; - - // receiving search request in Files App - search.setFilter('files', function(query) { - self.sendSuggestRequest(); - self.delayedSearchRequest(); - }); - - if (self.fileAppLoaded()) - self.nextant_sharelink = false; - - self.initShareLink(); - - // init Search/FileList if needed - self.initFileList(); - - // - // Add few elem Summary - var elemsumm = $('tr.summary').find('span.info'); - elemsumm.find('span.fileinfo').after(function() { - return $('').attr('class', 'bminfo hidden'); - }); - elemsumm.find('span.fileinfo').after( - function() { - return $('').attr('class', - 'bmconnector hidden').text( - elemsumm.find('span.connector').text()) - }); - - // - // Stop Mutation on click - $('#app-navigation').find('a').on('click', function(e) { - // self.currQuery = ''; - self.fileList.setSort('name', 'asc', false, false); - }); - - // - // Mutations - MutationObserver = window.MutationObserver - || window.WebKitMutationObserver; - - var observerFileList = new MutationObserver(function(mutations, - observer) { - self.mutationFileList(mutations, observer); - }); - - observerFileList.observe($('#fileList')[0], { - childList : true, - attributes : true - }); - - // animate suggest popup - $('#searchbox').focusout(function() { - self.searchboxFocus = false; - self.suggestDisplay(); - }); - - $('#searchbox').focusin(function() { - self.searchboxFocus = true; - self.suggestDisplay(); - }); - - $(window).resize(function() { - self.suggestDisplay(); - }); - - } - }; - OCA.Search.Nextant = Nextant; - OCA.Search.nextant = new Nextant(); - - // Sort per score (also index if score is identical) - OCA.Files.FileList.Comparators.score = function(f1, f2) { - result = OCA.Search.nextant.searchResult; - if (result == null) - return; - - var s1 = 0; - var s2 = 0; - var i1 = 99; - var i2 = 99; - for (var i = 0; i < result.length; i++) { - if (result[i] == null) - continue; - if (result[i].data.id == f1.id) - i1 = i; - if (result[i].data.id == f2.id) - i2 = i; - if (result[i].data.id == f1.id) - s1 = result[i].data.score; - if (result[i].data.id == f2.id) - s2 = result[i].data.score; - } - - if (s1 < s2) - return -1; - else if (s1 > s2) - return 1; - else { - if (i1 > i2) - return -1; - else - return 1; - } - }; - -})(); diff --git a/js/settings.admin.js b/js/settings.admin.js deleted file mode 100644 index ab9ef3d..0000000 --- a/js/settings.admin.js +++ /dev/null @@ -1,775 +0,0 @@ -/** - * Nextcloud - nextant - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Maxence Lange - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU Affero General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more - * details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -$(document) - .ready( - function() { - - var timerSavingFilesFiltersExtensions = null; - - var nextantSettings = { - - init : function() { - $('#nextant-display').fadeOut(0); - $('#nextant_saving_status').fadeOut(0); - $('#nextant_saving_check').fadeOut(0); - $('#nextant_saving_settings').fadeOut(0); - $('#nextant_saving_files').fadeOut(0); - $('#nextant_saving_files_filters').fadeOut(0); - $('#nextant_saving_bookmarks').fadeOut(0); - nextantSettings.statusclearall(true); - nextantSettings.checksuboptions(true); - setInterval(function() { - nextantSettings.saving('check', true); - nextantSettings.checksuboptions(false) - }, 60000); - }, - - saving : function(rub, load) { - if (load) { - $('#nextant_saving_' + rub).fadeIn(50); - } else - $('#nextant_saving_' + rub).fadeOut(50); - }, - - savesuboptions_files : function(switched) { - - nextantSettings.saving('files', true); - - var data = { - index_files : ($('#solr_index_files') - .is(':checked')) ? 1 : 0, - index_files_max_size : $( - '#solr_index_files_max_size').val(), - index_files_tree : ($('#solr_index_files_tree') - .is(':checked')) ? 1 : 0, - index_files_nextant_only : ($('#solr_index_files_nextant_only') - .is(':checked')) ? 1 : 0, - index_files_trash : ($('#solr_index_files_trash') - .is(':checked')) ? 1 : 0, - index_files_trash : ($('#solr_index_files_trash') - .is(':checked')) ? 1 : 0, - index_files_sharelink : ($('#solr_index_files_sharelink') - .is(':checked')) ? 1 : 0, - index_files_federated : ($('#solr_index_files_federated') - .is(':checked')) ? 1 : 0, - index_files_external : ($('#solr_index_files_external') - .is(':checked')) ? 1 : 0, - index_files_encrypted : ($('#solr_index_files_encrypted') - .is(':checked')) ? 1 : 0 - } - - if (switched == 'index_files') - data.index_files = (data.index_files == 1) ? 0 - : 1; - - if (switched == 'index_files_tree') - data.index_files_tree = (data.index_files_tree == 1) ? 0 - : 1; - - if (switched == 'index_files_nextant_only') - data.index_files_nextant_only = (data.index_files_nextant_only == 1) ? 0 - : 1; - - if (switched == 'index_files_trash') - data.index_files_trash = (data.index_files_trash == 1) ? 0 - : 1; - - if (switched == 'index_files_sharelink') - data.index_files_sharelink = (data.index_files_sharelink == 1) ? 0 - : 1; - - if (switched == 'index_files_federated') - data.index_files_federated = (data.index_files_federated == 1) ? 0 - : 1; - - if (switched == 'index_files_external') - data.index_files_external = (data.index_files_external == 1) ? 0 - : 1; - - if (switched == 'index_files_encrypted') - data.index_files_encrypted = (data.index_files_encrypted == 1) ? 0 - : 1; - - $.post(OC.filePath('nextant', 'ajax/settings', - 'option_files.php'), data, - nextantSettings.updatesuboptions); - }, - - savesuboptions_files_filters : function(switched) { - - nextantSettings.saving('files_filters', true); - - var data = { - index_files_filters_text : ($('#solr_filters_text') - .is(':checked')) ? 1 : 0, - index_files_filters_pdf : ($('#solr_filters_pdf') - .is(':checked')) ? 1 : 0, - index_files_filters_office : ($('#solr_filters_office') - .is(':checked')) ? 1 : 0, - index_files_filters_image : ($('#solr_filters_image') - .is(':checked')) ? 1 : 0, - index_files_filters_audio : ($('#solr_filters_audio') - .is(':checked')) ? 1 : 0, - index_files_filters_extensions : $( - '#solr_filters_extensions').val() - } - - if (switched == 'index_files_filters_text') - data.index_files_filters_text = (data.index_files_filters_text == 1) ? 0 - : 1; - if (switched == 'index_files_filters_pdf') - data.index_files_filters_pdf = (data.index_files_filters_pdf == 1) ? 0 - : 1; - if (switched == 'index_files_filters_office') - data.index_files_filters_office = (data.index_files_filters_office == 1) ? 0 - : 1; - if (switched == 'index_files_filters_image') - data.index_files_filters_image = (data.index_files_filters_image == 1) ? 0 - : 1; - if (switched == 'index_files_filters_audio') - data.index_files_filters_audio = (data.index_files_filters_audio == 1) ? 0 - : 1; - - $.post(OC.filePath('nextant', 'ajax/settings', - 'option_files_filters.php'), data, - nextantSettings.updatesuboptions); - }, - savesuboptions_bookmarks : function(switched) { - - nextantSettings.saving('bookmarks', true); - - var data = { - index_bookmarks : ($('#solr_index_bookmarks') - .is(':checked')) ? 1 : 0, - } - - if (switched == 'index_bookmarks') - data.index_bookmarks = (data.index_bookmarks == 1) ? 0 - : 1; - - $.post(OC.filePath('nextant', 'ajax/settings', - 'option_bookmarks.php'), data, - nextantSettings.updatesuboptions); - }, - - savesuboptions_status : function(switched) { - - nextantSettings.saving('status', true); - - var force_index = 0; - if (switched == 'force_index') - force_index = 1; - - var data = { - resource_level : $('#solr_resource_level') - .val(), - index_live : $('#solr_index_live').val(), - use_cron : ($('#solr_use_cron').is(':checked')) ? 1 - : 0, - index_delay_min : $('#solr_index_delay_min') - .val(), - index_delay_max : $('#solr_index_delay_max') - .val(), - force_index : force_index - } - - if (switched == 'use_cron') - data.use_cron = (data.use_cron == 1) ? 0 : 1; - - $.post(OC.filePath('nextant', 'ajax/settings', - 'option_status.php'), data, - nextantSettings.updatesuboptions); - }, - - checksuboptions : function(instant) { - $.post(OC.filePath('nextant', 'ajax/settings', - 'updateSubOptions.php'), { - instant : instant, - source : 'check' - }, nextantSettings.updatesuboptions); - }, - - updatesuboptions : function(response) { - var delay = 600; - if (response.instant == 'true') - delay = 0; - - if ($('#nextant_version').text() != '' - && response.configured == '0') - return; - - if (response.source != '') - nextantSettings.saving(response.source, false); - - $('#nextant_version') - .text(response.nextant_version); - $('#solr_url').val(response.solr_url); - $('#solr_core').val(response.solr_core); - $('#solr_timeout').val(response.solr_timeout); - - // if (response.index_live == 1 - // && response.ext_sysvmsg_loaded == false) - // response.index_live = 2; - - if (response.configured > 0) { - $('#nextant_suboptions :input').prop( - 'disabled', false); - $('#nextant_help_link').unbind('click'); - $('#nextant_suboptions').fadeTo(delay, 1); - // $('#solr_index_live_queuekey').prop('disabled', - // true); - // if (response.index_live == 1) - // $('#solr_index_live_queuekey').fadeTo( - // delay, 0.85); - // else - // $('#solr_index_live_queuekey').fadeTo( - // delay, 0); - // if (response.ext_sysvmsg_loaded == false) - // $('#solr_index_live option[value="1"]') - // .prop('disabled', true); - // else - // $('#solr_index_live option[value="1"]') - // .prop('disabled', false); - - } else { - $('#nextant_suboptions :input').attr( - "disabled", true); - $('#nextant_help_link').bind('click', - function(e) { - e.preventDefault(); - }) - $('#nextant_suboptions').fadeTo(delay, 0.4); - } - - $('#solr_index_files').prop('checked', - (response.index_files == 1)); - $('#solr_index_files_tree').prop('checked', - (response.index_files_tree == 1)); - $('#solr_index_files_nextant_only').prop('checked', - (response.index_files_nextant_only == 1)); - $('#solr_index_files_trash').prop('checked', - (response.index_files_trash == 1)); - $('#solr_index_files_sharelink').prop('checked', - (response.index_files_sharelink == 1)); - $('#solr_index_files_federated').prop('checked', - (response.index_files_federated == 1)); - $('#solr_index_files_external').prop('checked', - (response.index_files_external == 1)); - $('#solr_index_files_encrypted').prop('checked', - (response.index_files_encrypted == 1)); - $('#solr_index_files_max_size').val( - response.index_files_max_size); - - if (response.index_files == 1) - $('#solr_sub_files').show(delay); - else { - $('#solr_sub_files').hide(delay); - $('#nextant-filters').hide(delay); - } - - if (response.files_external_app_enabled) - $('#solr_index_files_external').prop( - 'disabled', false); - else { - $('#solr_index_files_external').prop( - 'disabled', true); - $('#solr_index_files_external').prop('checked', - false); - } - - $('#solr_filters_text').prop('checked', - (response.index_files_filters_text == 1)); - $('#solr_filters_pdf').prop('checked', - (response.index_files_filters_pdf == 1)); - $('#solr_filters_office').prop('checked', - (response.index_files_filters_office == 1)); - $('#solr_filters_image').prop('checked', - (response.index_files_filters_image == 1)); - $('#solr_filters_item').prop('checked', - (response.index_files_filters_item == 1)); - if ($('#solr_filters_extensions').val() == '') - $('#solr_filters_extensions') - .val( - response.index_files_filters_extensions); - - $('#solr_index_bookmarks').prop('checked', - (response.index_bookmarks == 1)); - - if (response.bookmarks_app_enabled) { - $('#nextant_bookmarks_appdisabled').hide(delay); - $('#nextant_bookmarks_appenabled').show(delay); - - $('#solr_index_bookmarks').prop('checked', - (response.index_bookmarks == 1)); - } else { - $('#nextant_bookmarks_appdisabled').show(delay); - $('#nextant_bookmarks_appenabled').hide(delay); - } - - if (response.index_bookmarks == 1) - $('#solr_sub_bookmarks').show(delay); - else - $('#solr_sub_bookmarks').hide(delay); - - $('#solr_resource_level').val( - response.resource_level); - - $('#solr_index_live').val(response.index_live); - // $('#solr_index_live_queuekey').val( - // response.index_live_queuekey); - - $('#solr_use_cron').prop('checked', - (response.use_cron == 1)); - - $('#solr_index_delay_min').val( - response.index_delay_min); - $('#solr_index_delay_max').val( - response.index_delay_max); - - if (response.index_files_tree == 1) { - $('#solr_index_files_nextant_only').attr( - "disabled", false); - $('#solr_index_files_nextant_only_span') - .fadeTo(delay, 1); - } else { - $('#solr_index_files_nextant_only').attr( - "disabled", true); - $('#solr_index_files_nextant_only_span') - .fadeTo(delay, 0.4); - } - - if (response.index_files_last > 0) - $('#solr_index_files_last').text( - response.index_files_last_format); - else - $('#solr_index_files_last').text( - t('nextant', 'never')); - - if (response.index_bookmarks_last > 0) - $('#solr_index_bookmarks_last').text( - response.index_bookmarks_last_format); - else - $('#solr_index_bookmarks_last').text( - t('nextant', 'never')); - - if (response.configured == 0) { - $('#solr_current_docs') - .text( - t('nextant', - 'Nextant is not configured yet')); - $('#solr_current_segments').text(''); - $('#nextant_force_index').hide(delay); - $('#nextant_index_scheduled').hide(delay); - $('#nextant_first_index').hide(delay); - $('#nextant_index_scheduled').hide(delay); - $('#nextant_index_inprogress').hide(delay); - } else if (response.solr_ping == 'false') { - $('#solr_current_docs').text( - 'Solr Core is down'); - $('#solr_current_segments').text(''); - } else { - if (response.index_locked > 0) { - $('#nextant_first_index').hide(delay); - $('#nextant_index_scheduled').hide(delay); - $('#nextant_force_index').hide(delay); - $('#nextant_index_inprogress').show(delay); - } else if (response.configured == 2) { - $('#nextant_first_index').show(delay); - $('#nextant_index_scheduled').hide(delay); - $('#nextant_force_index').hide(delay); - $('#nextant_index_inprogress').hide(delay); - } else if (response.index_files_needed == 1) { - $('#nextant_first_index').hide(delay); - $('#nextant_force_index').hide(delay); - $('#nextant_index_scheduled').show(delay); - $('#nextant_index_inprogress').hide(delay); - } else { - $('#nextant_first_index').hide(delay); - $('#nextant_index_scheduled').hide(delay); - $('#nextant_force_index').show(delay); - $('#nextant_index_inprogress').hide(delay); - } - if (response.current_docs > 0) { - $('#solr_current_docs').text( - response.current_docs); - $('#solr_current_segments').text( - response.current_segments); - } else - $('#solr_current_docs').text('none'); - } - }, - - statusclearall : function(instant) { - nextantSettings.statusclear('#ping', instant); - nextantSettings.statusclear('#schema', instant); - nextantSettings.statusclear('#extract', instant); - nextantSettings.statusclear('#update', instant); - nextantSettings.statusclear('#search', instant); - nextantSettings.statusclear('#delete', instant); - nextantSettings.statusclear('#save', instant); - }, - - statusclear : function(vid, instant) { - var delay = 200; - if (instant) - delay = 0; - - $('#nextant-display').children(vid).children( - '#icon_fail').fadeTo(delay, 0); - $('#nextant-display').children(vid).children( - '#icon_check').fadeTo(delay, 0); - $('#nextant-display').children(vid).children( - '#text').fadeTo(delay, 0); - }, - - status : function(vid, text, level) { - $('#nextant-display').children(vid).children( - '#text').text(text).fadeTo(200, 1); - var src = ''; - if (level == 1) { - $('#nextant-display').children(vid).children( - '#icon_check').fadeTo(200, 1); - $('#nextant-display').children(vid).children( - '#icon_fail').fadeTo(200, 0); - } - - if (level == 2) { - $('#nextant-display').children(vid).children( - '#icon_check').fadeTo(200, 0); - $('#nextant-display').children(vid).children( - '#icon_fail').fadeTo(200, 1); - - } - }, - - filtersswitch : function() { - if ($('#nextant-filters').is(':visible')) - nextantSettings.filtershide(); - else - nextantSettings.filtersshow(); - }, - - filtersshow : function() { - $('#nextant-filters').show(400); - }, - - filtershide : function() { - $('#nextant-filters').hide(400); - }, - - save : function() { - $('#nextant-display').fadeIn(300); - $('#nextant_apply').attr('disabled', true); - $('#solr_url').attr('disabled', true); - $('#solr_core').attr('disabled', true); - $('#solr_timeout').attr('disabled', true); - nextantSettings.test('ping'); - }, - - test_standby : function(command) { - // setTimeout(function() { - nextantSettings.test(command); - // }, 400); - }, - - test : function(command) { - - var data = { - solr_url : $('#solr_url').val(), - solr_core : $('#solr_core').val(), - solr_timeout : $('#solr_timeout').val(), - command : command - } - - switch (command) { - case 'ping': - if ($('#nextant-display').children('#ping') - .children('#text').text() != '') - nextantSettings.statusclearall(false); - nextantSettings.status('#ping', t('nextant', - 'Ping querying your Solr Server'), 0); - break; - - case 'schema': - nextantSettings.status('#schema', t('nextant', - 'Verifying Schema integrity'), 0); - break; - - case 'extract': - nextantSettings.status('#extract', t('nextant', - 'Test simple text extract query'), 0); - break; - - case 'update': - nextantSettings.status('#update', t('nextant', - 'Test update document query'), 0); - break; - - case 'search': - nextantSettings.status('#search', t('nextant', - 'Test search query'), 0); - break; - - case 'delete': - nextantSettings.status('#delete', t('nextant', - 'Removing the test document'), 0); - break; - - case 'save': - nextantSettings.saving('settings', true); - nextantSettings - .status( - '#save', - t('nextant', - 'All test went fine. Saving your configuration'), - 0); - break; - } - - $.post(OC.filePath('nextant', 'ajax/settings', - 'admin.php'), data, - nextantSettings.tested_standby); - }, - - tested_standby : function(response) { - // setTimeout(function() { - nextantSettings.tested(response); - // }, 200); - }, - - tested : function(response) { - nextantSettings.status('#' + response.command, - response.message, - (response.status == 'success') ? 1 : 2); - - switch (response.command) { - case 'ping': - if (response.status == 'success') - nextantSettings.test_standby('schema'); - else - nextantSettings.reset(); - break; - - case 'schema': - if (response.status == 'success') - nextantSettings.test_standby('extract'); - else - nextantSettings.reset(); - break; - - case 'extract': - if (response.status == 'success') - nextantSettings.test_standby('update'); - else - nextantSettings.reset(); - break; - - case 'update': - if (response.status == 'success') - nextantSettings.test_standby('search'); - else - nextantSettings.reset(); - break; - - case 'search': - if (response.status == 'success') - nextantSettings.test_standby('delete'); - else - nextantSettings.reset(); - break; - - case 'delete': - if (response.status == 'success') - nextantSettings.test_standby('save'); - else - nextantSettings.reset(); - break; - - case 'save': - nextantSettings.saving('settings', false); - nextantSettings.reset(); - nextantSettings.checksuboptions(false); - setTimeout(function() { - $('#nextant-display').fadeOut(300); - }, 20000); - - break; - } - - }, - - reset : function() { - $('#solr_url').attr('disabled', false); - $('#solr_core').attr('disabled', false); - $('#solr_timeout').attr('disabled', false); - $('#nextant_apply').attr('disabled', false); - } - } - - $('#nextant_apply').on('click', nextantSettings.save); - - $('#solr_index_files_cont').mousedown(function() { - nextantSettings.savesuboptions_files('index_files'); - }); - - $('#solr_switch_filters').click(function() { - nextantSettings.filtersswitch(); - }); - - $('#nextant-filters').hide(); - - $('#solr_index_files_max_size').on('input', function(e) { - nextantSettings.savesuboptions_files(); - }); - - $('#solr_index_files_tree') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_tree'); - }); - - $('#solr_index_files_nextant_only') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_nextant_only'); - }); - - $('#solr_index_files_trash') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_trash'); - }); - - $('#solr_index_files_sharelink') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_sharelink'); - }); - - $('#solr_index_files_federated') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_federated'); - }); - - $('#solr_index_files_external') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_external'); - }); - - $('#solr_index_files_encrypted') - .mousedown( - function() { - nextantSettings - .savesuboptions_files('index_files_encrypted'); - }); - - $('#solr_filters_text') - .mousedown( - function() { - nextantSettings - .savesuboptions_files_filters('index_files_filters_text'); - }); - $('#solr_filters_pdf') - .mousedown( - function() { - nextantSettings - .savesuboptions_files_filters('index_files_filters_pdf'); - }); - $('#solr_filters_office') - .mousedown( - function() { - nextantSettings - .savesuboptions_files_filters('index_files_filters_office'); - }); - $('#solr_filters_image') - .mousedown( - function() { - nextantSettings - .savesuboptions_files_filters('index_files_filters_image'); - }); - $('#solr_filters_audio') - .mousedown( - function() { - nextantSettings - .savesuboptions_files_filters('index_files_filters_audio'); - }); - - $('#solr_filters_extensions') - .on( - 'input', - function(e) { - clearTimeout(timerSavingFilesFiltersExtensions) - timerSavingFilesFiltersExtensions = setTimeout( - function() { - nextantSettings - .savesuboptions_files_filters(); - }, 1200); - }); - - $('#nextant_force_index').on('click', function() { - nextantSettings.savesuboptions_status('force_index'); - }); - $('#nextant_force_first_index').on('click', function() { - nextantSettings.savesuboptions_status('force_index'); - }); - - $('#solr_resource_level').on('change', function() { - nextantSettings.savesuboptions_status(); - }); - - $('#solr_index_live').on('change', function() { - nextantSettings.savesuboptions_status(); - }); - - $('#solr_use_cron').mousedown(function() { - nextantSettings.savesuboptions_status('use_cron'); - }); - - $('#solr_index_delay_min').on('input', function(e) { - nextantSettings.savesuboptions_status(); - }); - $('#solr_index_delay_max').on('input', function(e) { - nextantSettings.savesuboptions_status(); - }); - - $('#solr_index_bookmarks_cont') - .mousedown( - function() { - nextantSettings - .savesuboptions_bookmarks('index_bookmarks'); - - }); - - nextantSettings.init(); - - }); diff --git a/l10n/.tx/config b/l10n/.tx/config deleted file mode 100644 index ff347ca..0000000 --- a/l10n/.tx/config +++ /dev/null @@ -1,9 +0,0 @@ -[main] -host = https://www.transifex.com -lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja - -[nextcloud.nextant] -file_filter = /nextant.po -source_file = templates/nextant.pot -source_lang = en -type = PO diff --git a/l10n/ast.js b/l10n/ast.js deleted file mode 100644 index e735121..0000000 --- a/l10n/ast.js +++ /dev/null @@ -1,62 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Dir a la carpeta", - "never" : "enxamĆ”s", - "Nextant is not configured yet" : "EntĆ” nun se configurĆ³ Nextant", - "Removing the test document" : "Desaniciando'l documentu de prueba", - "Schema is fine" : "L'esquema ta bien", - "Text extracted" : "Testu estrayĆ­u", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la estraiciĆ³n. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fallu anovando'l campu - Nun pue alcontrase'l documentu orixinal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Fallu nel unviu (Fallu #%1$s)", - "Error while updating field (Error #%1$s)" : "Fallu entrĆ­n s'anovaba'l campu (Fallu #%1$s)", - "Document updated" : "Documentu anovĆ”u", - "Found it" : "AlcontrĆ©lu", - "Found something, but not what was expected." : "AlcontrĆ© daquĆ©, pero non de lo esperao.", - "Cannot find any document" : "Nun pudo alcontrase documentu dalu", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la gueta. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)", - "Test-document deleted" : "Documentu de testu desaniciĆ”u", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nun pudo desaniciase'l documentu de testu. Comprueba la configuraciĆ³n del to sirvidor Solr (Fallu #%1$s)", - "Your configuration has been saved" : "GuardĆ³se la to configuraciĆ³n", - "Configuration could not be saved. Please reload this page." : "Nun pudo guardase la configuraciĆ³n. Recarga esta pĆ”xina, por favor.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (gueta de testos completos)", - "Specify the address of your Solr, and the name of the core to use." : "Especifica la direiciĆ³n del to Solr y el nome del nucleu pa usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si nun tienes un servlet de Solr n'execuciĆ³n, na wiki pue alccontrase les guĆ­es d'instalaciĆ³n.", - "You can also find more information there about this interface." : "TamiĆ©n pues alcontrar informaciĆ³n ellĆ­ tocante a esta interfaz.", - "Saving" : "Guardando", - "Settings" : "Axustes", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DireiriciĆ³n del to servlet Solr:", - "Core:" : "Nucleu:", - "Timeout (in seconds):" : "Escosa de tiempu (en segundos):", - "Test and Save" : "Probar y guardar", - "Index Files Tree:" : "Ɓrbole d'Ć­ndice de ficheros:", - "Checking" : "Comprobando", - "Nextant Status" : "EstĆ”u de Nextant", - "Higher performance" : "Rindimientu mĆ”s altu", - "High performance" : "Rindimientu altu", - "Medium performance" : "Rindimientu mediu", - "Low performance" : "Rindimientu baxu", - "Lower performance" : "Rindimientu mĆ”s baxu", - "Using Database" : "Usando base de datos", - "hours" : "hores", - "days" : "dĆ­es", - "Nextcloud Cron:" : "Cron de Nextcloud:", - "Number of documents:" : "NĆŗmberu de documentos:", - "Number of segments:" : "NĆŗmberu de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "AconsĆ©yase facer el primer indizĆ”u de los tos ficheros usando'l comandu ./occ nextant:index .", - "However, you can force it to be started as a background process." : "Por embargu, pues forcialu a que s'anicie como procesu de fondu.", - "Force index" : "Forciar indizĆ”u", - "Indexing is scheduled within the next few hours (Cron)" : "L'indizĆ”u ta planificĆ”u pa dientro d'unes hores (Cron)", - "Indexing in progress" : "IndizĆ”u en cursu", - "Type of files to extract" : "Triba de ficheros pa estrayer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ficheru de testu (txt, HTML, soĆ­tulos, cĆ³sigu fonteā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos ofimĆ”ticos", - "Image (JPEG, TIFF)" : "Imaxe (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ficheru d'audiu (MPĀ·, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Estensiones que desees inorar (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/ast.json b/l10n/ast.json deleted file mode 100644 index 93fc707..0000000 --- a/l10n/ast.json +++ /dev/null @@ -1,60 +0,0 @@ -{ "translations": { - "Go to folder" : "Dir a la carpeta", - "never" : "enxamĆ”s", - "Nextant is not configured yet" : "EntĆ” nun se configurĆ³ Nextant", - "Removing the test document" : "Desaniciando'l documentu de prueba", - "Schema is fine" : "L'esquema ta bien", - "Text extracted" : "Testu estrayĆ­u", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la estraiciĆ³n. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fallu anovando'l campu - Nun pue alcontrase'l documentu orixinal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Fallu nel unviu (Fallu #%1$s)", - "Error while updating field (Error #%1$s)" : "Fallu entrĆ­n s'anovaba'l campu (Fallu #%1$s)", - "Document updated" : "Documentu anovĆ”u", - "Found it" : "AlcontrĆ©lu", - "Found something, but not what was expected." : "AlcontrĆ© daquĆ©, pero non de lo esperao.", - "Cannot find any document" : "Nun pudo alcontrase documentu dalu", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la gueta. Comprueba la configuraciĆ³n del to sirvidor Solr, por favor (Fallu #%1$s)", - "Test-document deleted" : "Documentu de testu desaniciĆ”u", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nun pudo desaniciase'l documentu de testu. Comprueba la configuraciĆ³n del to sirvidor Solr (Fallu #%1$s)", - "Your configuration has been saved" : "GuardĆ³se la to configuraciĆ³n", - "Configuration could not be saved. Please reload this page." : "Nun pudo guardase la configuraciĆ³n. Recarga esta pĆ”xina, por favor.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (gueta de testos completos)", - "Specify the address of your Solr, and the name of the core to use." : "Especifica la direiciĆ³n del to Solr y el nome del nucleu pa usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si nun tienes un servlet de Solr n'execuciĆ³n, na wiki pue alccontrase les guĆ­es d'instalaciĆ³n.", - "You can also find more information there about this interface." : "TamiĆ©n pues alcontrar informaciĆ³n ellĆ­ tocante a esta interfaz.", - "Saving" : "Guardando", - "Settings" : "Axustes", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DireiriciĆ³n del to servlet Solr:", - "Core:" : "Nucleu:", - "Timeout (in seconds):" : "Escosa de tiempu (en segundos):", - "Test and Save" : "Probar y guardar", - "Index Files Tree:" : "Ɓrbole d'Ć­ndice de ficheros:", - "Checking" : "Comprobando", - "Nextant Status" : "EstĆ”u de Nextant", - "Higher performance" : "Rindimientu mĆ”s altu", - "High performance" : "Rindimientu altu", - "Medium performance" : "Rindimientu mediu", - "Low performance" : "Rindimientu baxu", - "Lower performance" : "Rindimientu mĆ”s baxu", - "Using Database" : "Usando base de datos", - "hours" : "hores", - "days" : "dĆ­es", - "Nextcloud Cron:" : "Cron de Nextcloud:", - "Number of documents:" : "NĆŗmberu de documentos:", - "Number of segments:" : "NĆŗmberu de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "AconsĆ©yase facer el primer indizĆ”u de los tos ficheros usando'l comandu ./occ nextant:index .", - "However, you can force it to be started as a background process." : "Por embargu, pues forcialu a que s'anicie como procesu de fondu.", - "Force index" : "Forciar indizĆ”u", - "Indexing is scheduled within the next few hours (Cron)" : "L'indizĆ”u ta planificĆ”u pa dientro d'unes hores (Cron)", - "Indexing in progress" : "IndizĆ”u en cursu", - "Type of files to extract" : "Triba de ficheros pa estrayer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ficheru de testu (txt, HTML, soĆ­tulos, cĆ³sigu fonteā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos ofimĆ”ticos", - "Image (JPEG, TIFF)" : "Imaxe (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ficheru d'audiu (MPĀ·, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Estensiones que desees inorar (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/ca.js b/l10n/ca.js deleted file mode 100644 index fb737da..0000000 --- a/l10n/ca.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Anar a la carpeta", - "never" : "mai", - "Nextant is not configured yet" : "Nextant no s'ha configurat encara", - "Ping querying your Solr Server" : "Pink consulteu el servidor", - "Verifying Schema integrity" : "ComprovaciĆ³ de la integritat de l'Esquema", - "Test simple text extract query" : "Prova de consulta simple d'extracte de text", - "Test update document query" : "Consulta de documents d'actualitzaciĆ³ de prova", - "Test search query" : "Proveu la consulta de cerca", - "Removing the test document" : "S'estĆ  eliminant el document de prova", - "All test went fine. Saving your configuration" : "La prova ha anat bĆ©. S'estĆ  desant la configuraciĆ³", - "Address-format incorrect" : "El format de l'adreƧa no Ć©s correcte", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ  activat, executant i responent a la consulta de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no respon a la consulta de ping (Error #%1$s)", - "Schema is fine" : "L'esquema estĆ  bĆ©", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No es pot verificar / reparar la integritat de l'esquema (Error #%1$s)", - "Text extracted" : "Text extret", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "L'extracciĆ³ ha fallat. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Camp d'actualitzaciĆ³ d'errors: no es pot trobar el document original (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error durant el commit (error #%1$s)", - "Error while updating field (Error #%1$s)" : "S'ha produĆÆt un error en actualitzar el camp (error nĆŗmero%1$s)", - "Document updated" : "Document actualitzat", - "Found it" : "Trobat", - "Found something, but not what was expected." : "S'ha trobat alguna cosa, perĆ² no el que s'esperava.", - "Cannot find any document" : "No es pot trobar cap document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ha fallat la cerca. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Test-document deleted" : "S'ha eliminat el document de prova", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No s'ha pogut suprimir el document de prova. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Your configuration has been saved" : "La vostra configuraciĆ³ s'ha guardat", - "Configuration could not be saved. Please reload this page." : "No s'ha pogut desar la configuraciĆ³. Torna a carregar aquesta pĆ gina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Especifiqueu l'adreƧa del vostre Solr i el nom del nucli que voleu utilitzar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no teniu un servlet Solr executant, es poden trobar guies d'instalĀ·laciĆ³ a la wiki.", - "You can also find more information there about this interface." : "TambĆ© podeu trobar mĆ©s informaciĆ³ sobre aquesta interfĆ­cie.", - "Saving" : "Guardant", - "Settings" : "ParĆ metres", - "Nextant version:" : "VersiĆ³ Nextant:", - "Address of your Solr servlet:" : "AdreƧa del vostre servlet Solr:", - "Core:" : "Nucli:", - "Timeout (in seconds):" : "Temps d'espera (en segons):", - "Test and Save" : "Proba i desa:", - "Indexing Files" : "Indexant arxius", - "Maximum File Size (Mb):" : "Mida mĆ xima de l'arxiu: (Mb) :", - "Edit your filters" : "Editeu els vostres filtres", - "Index Files Tree:" : "Ć­ndex d'arxius", - "Disable default search from Files" : "Desactiva la cerca predeterminada dels fitxers", - "Index File Trash:" : "Ć­ndex: paperera d'arxiu ", - "Index Public Links:" : "ƍndex EnllaƧos pĆŗblics:", - "Index Federated Shares:" : "ƍndex Accions federades:", - "Index External Storages:" : "ƍndex emmagatzemament extern:", - "Index Encrypted Files:" : "ƍndex d'arxius encryptats:", - "Last index:" : "ƚltim index:", - "Indexing Bookmarks" : "Marcadors d'indexaciĆ³", - "The App Bookmarks is not installed/enabled." : "Els marcadors d'aplicacions no estan instalĀ·lats / habilitats.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "S'han activat \"Marcadors d'aplicacions\", les vostres adreces d'interĆØs s'indicaran.", - "Checking" : "Comprobant", - "Nextant Status" : "Estat Nextant", - "Resource Level:" : "Nivell de recurs:", - "Higher performance" : "Major rendiment", - "High performance" : "Alt rendiment", - "Medium performance" : "Rendiment mitjĆ ", - "Low performance" : "Baix rendiment", - "Lower performance" : "Menor rendiment", - "Live Index:" : "ƍndex en viu:", - "Disabled" : "Deshabilitat", - "Using Semaphore" : "Usant semĆ for", - "Using Database" : "Utilitzant base de dades", - "Minimum Background Index delay:" : "Retorn de l'Ć­ndex de fons mĆ­nim:", - "hours" : "hores", - "Maximum Background Index delay:" : "Retard mĆ xim de l'Ć­ndex de fons:", - "days" : "dies", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Nombre de documents : ", - "Number of segments:" : "Nombre de segments : ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "es recomana fer la primera indexaciĆ³ dels vostres fitxers utilitzant l'ordre ./occ nextant: index.", - "However, you can force it to be started as a background process." : "Tanmateix, podeu obligar-lo a iniciar-se com a procĆ©s en segon pla.", - "Force first index as a cronjob" : "ForƧa el primer Ć­ndex com a cronjob", - "Force index" : "ForƧa index", - "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³ estĆ  programada durant les properes hores (Cron)", - "Indexing in progress" : "IndexaciĆ³ en procĆ©s", - "Type of files to extract" : "Tipus de fitxers per extreure", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fitxer de text (text, HTML, subtĆ­tols, codi font ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documents Office", - "Image (JPEG, TIFF)" : "Imatge (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Fitxer d'Ć udio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions que voleu ignorar (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/ca.json b/l10n/ca.json deleted file mode 100644 index 88d7190..0000000 --- a/l10n/ca.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Anar a la carpeta", - "never" : "mai", - "Nextant is not configured yet" : "Nextant no s'ha configurat encara", - "Ping querying your Solr Server" : "Pink consulteu el servidor", - "Verifying Schema integrity" : "ComprovaciĆ³ de la integritat de l'Esquema", - "Test simple text extract query" : "Prova de consulta simple d'extracte de text", - "Test update document query" : "Consulta de documents d'actualitzaciĆ³ de prova", - "Test search query" : "Proveu la consulta de cerca", - "Removing the test document" : "S'estĆ  eliminant el document de prova", - "All test went fine. Saving your configuration" : "La prova ha anat bĆ©. S'estĆ  desant la configuraciĆ³", - "Address-format incorrect" : "El format de l'adreƧa no Ć©s correcte", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ  activat, executant i responent a la consulta de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no respon a la consulta de ping (Error #%1$s)", - "Schema is fine" : "L'esquema estĆ  bĆ©", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No es pot verificar / reparar la integritat de l'esquema (Error #%1$s)", - "Text extracted" : "Text extret", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "L'extracciĆ³ ha fallat. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Camp d'actualitzaciĆ³ d'errors: no es pot trobar el document original (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error durant el commit (error #%1$s)", - "Error while updating field (Error #%1$s)" : "S'ha produĆÆt un error en actualitzar el camp (error nĆŗmero%1$s)", - "Document updated" : "Document actualitzat", - "Found it" : "Trobat", - "Found something, but not what was expected." : "S'ha trobat alguna cosa, perĆ² no el que s'esperava.", - "Cannot find any document" : "No es pot trobar cap document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ha fallat la cerca. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Test-document deleted" : "S'ha eliminat el document de prova", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No s'ha pogut suprimir el document de prova. Comproveu la configuraciĆ³ del vostre servidor Solr (error #%1$s)", - "Your configuration has been saved" : "La vostra configuraciĆ³ s'ha guardat", - "Configuration could not be saved. Please reload this page." : "No s'ha pogut desar la configuraciĆ³. Torna a carregar aquesta pĆ gina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Especifiqueu l'adreƧa del vostre Solr i el nom del nucli que voleu utilitzar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no teniu un servlet Solr executant, es poden trobar guies d'instalĀ·laciĆ³ a la wiki.", - "You can also find more information there about this interface." : "TambĆ© podeu trobar mĆ©s informaciĆ³ sobre aquesta interfĆ­cie.", - "Saving" : "Guardant", - "Settings" : "ParĆ metres", - "Nextant version:" : "VersiĆ³ Nextant:", - "Address of your Solr servlet:" : "AdreƧa del vostre servlet Solr:", - "Core:" : "Nucli:", - "Timeout (in seconds):" : "Temps d'espera (en segons):", - "Test and Save" : "Proba i desa:", - "Indexing Files" : "Indexant arxius", - "Maximum File Size (Mb):" : "Mida mĆ xima de l'arxiu: (Mb) :", - "Edit your filters" : "Editeu els vostres filtres", - "Index Files Tree:" : "Ć­ndex d'arxius", - "Disable default search from Files" : "Desactiva la cerca predeterminada dels fitxers", - "Index File Trash:" : "Ć­ndex: paperera d'arxiu ", - "Index Public Links:" : "ƍndex EnllaƧos pĆŗblics:", - "Index Federated Shares:" : "ƍndex Accions federades:", - "Index External Storages:" : "ƍndex emmagatzemament extern:", - "Index Encrypted Files:" : "ƍndex d'arxius encryptats:", - "Last index:" : "ƚltim index:", - "Indexing Bookmarks" : "Marcadors d'indexaciĆ³", - "The App Bookmarks is not installed/enabled." : "Els marcadors d'aplicacions no estan instalĀ·lats / habilitats.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "S'han activat \"Marcadors d'aplicacions\", les vostres adreces d'interĆØs s'indicaran.", - "Checking" : "Comprobant", - "Nextant Status" : "Estat Nextant", - "Resource Level:" : "Nivell de recurs:", - "Higher performance" : "Major rendiment", - "High performance" : "Alt rendiment", - "Medium performance" : "Rendiment mitjĆ ", - "Low performance" : "Baix rendiment", - "Lower performance" : "Menor rendiment", - "Live Index:" : "ƍndex en viu:", - "Disabled" : "Deshabilitat", - "Using Semaphore" : "Usant semĆ for", - "Using Database" : "Utilitzant base de dades", - "Minimum Background Index delay:" : "Retorn de l'Ć­ndex de fons mĆ­nim:", - "hours" : "hores", - "Maximum Background Index delay:" : "Retard mĆ xim de l'Ć­ndex de fons:", - "days" : "dies", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Nombre de documents : ", - "Number of segments:" : "Nombre de segments : ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "es recomana fer la primera indexaciĆ³ dels vostres fitxers utilitzant l'ordre ./occ nextant: index.", - "However, you can force it to be started as a background process." : "Tanmateix, podeu obligar-lo a iniciar-se com a procĆ©s en segon pla.", - "Force first index as a cronjob" : "ForƧa el primer Ć­ndex com a cronjob", - "Force index" : "ForƧa index", - "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³ estĆ  programada durant les properes hores (Cron)", - "Indexing in progress" : "IndexaciĆ³ en procĆ©s", - "Type of files to extract" : "Tipus de fitxers per extreure", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fitxer de text (text, HTML, subtĆ­tols, codi font ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documents Office", - "Image (JPEG, TIFF)" : "Imatge (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Fitxer d'Ć udio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions que voleu ignorar (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/cs.js b/l10n/cs.js deleted file mode 100644 index a2183cc..0000000 --- a/l10n/cs.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "JĆ­t do složky", - "never" : "nikdy", - "Nextant is not configured yet" : "Nextant jeÅ”tě nenĆ­ nakonfigurovĆ”n", - "Ping querying your Solr Server" : "DotazovĆ”nĆ­ pingem vaÅ”eho Solr serveru", - "Verifying Schema integrity" : "OvěřovĆ”nĆ­ integrity schĆ©matu", - "Test simple text extract query" : "VyzkouÅ”et jednoduchĆ½ dotaz na extrakci textu", - "Test update document query" : "dotaz zkouÅ”ky aktualizace dokumentu", - "Test search query" : "VyzkouÅ”et vyhledĆ”vacĆ­ dotaz", - "Removing the test document" : "OdstraňovĆ”nĆ­ zkuÅ”ebnĆ­ho dokumentu", - "All test went fine. Saving your configuration" : "VÅ”echny testy proběhly v poÅ™Ć”dku. UklĆ”dĆ”nĆ­ vaÅ”Ć­ konfigurace", - "Address-format incorrect" : "ChybnĆ½ formĆ”t adresy", - "Apache Solr is up, running and responding to ping query" : "Apache Solr bÄ›Å¾Ć­ a odpovĆ­dĆ” na ping dotaz", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr neodpovĆ­dĆ” na na ping dotaz (chyba #%1$s)", - "Schema is fine" : "SchĆ©ma je v poÅ™Ć”dku", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Nepodařilo se ověřit/opravit integritu schĆ©matu (chyba #%1$s)", - "Text extracted" : "Text extrahovĆ”n", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrakce selhala. Zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Chyba aktualizace pole - nelze najĆ­t pÅÆvodnĆ­ dokument - (chyba #%1$s)", - "Error during commit (Error #%1$s)" : "Chyba při commitu (chyba #%1$s", - "Error while updating field (Error #%1$s)" : "Chyba při aktualizaci pole (chyba #%1$s)", - "Document updated" : "Dokument aktualizovĆ”n", - "Found it" : "Nalezeno", - "Found something, but not what was expected." : "Něco bylo nalezeno, ale ne to, co bylo očekĆ”vĆ”no", - "Cannot find any document" : "Nelze najĆ­t Å¾Ć”dnĆ½ dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "VyhledĆ”vĆ”nĆ­ selhalo. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Test-document deleted" : "ZkuÅ”ebnĆ­ dokument smazĆ”n", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nepodařilo se smazat zkuÅ”ebnĆ­ dokument. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Your configuration has been saved" : "VaÅ”e konfigurace byla uložena", - "Configuration could not be saved. Please reload this page." : "Konfiguraci se nepodařilo uložit. ProsĆ­m, obnovte tuto strĆ”nku.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (full-textovĆ© vyhledĆ”vĆ”nĆ­)", - "Specify the address of your Solr, and the name of the core to use." : "Specifikujte adresu vaÅ”eho Solru a jmĆ©no Ć”dra, kterĆ© se mĆ” pouÅ¾Ć­t", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Pokud nemĆ”te bÄ›Å¾Ć­cĆ­ servlet Solr, na wiki najdete prÅÆvodce instalacĆ­.", - "You can also find more information there about this interface." : "TakĆ© zde mÅÆžete nalĆ©zt dalÅ”Ć­ informace o tomto rozhranĆ­", - "Saving" : "UklĆ”dĆ”nĆ­", - "Settings" : "NastavenĆ­", - "Nextant version:" : "Nextant verze:", - "Address of your Solr servlet:" : "Adresa vaÅ”eho Solr servletu :", - "Core:" : "JĆ”dro :", - "Timeout (in seconds):" : "Čas vyprÅ”enĆ­ požadavku (sekundy) :", - "Test and Save" : "VyzkouÅ”et a uložit", - "Indexing Files" : "IndexovĆ”nĆ­ souborÅÆ", - "Maximum File Size (Mb):" : "MaximĆ”lnĆ­ velikost souboru (Mb) :", - "Edit your filters" : "Upravte vaÅ”e filtry", - "Index Files Tree:" : "Indexovat strom souborÅÆ :", - "Disable default search from Files" : "ZakĆ”zat vĆ½chozĆ­ hledĆ”nĆ­ ze souborÅÆ", - "Index File Trash:" : "Odpad indexovĆ©ho souboru:", - "Index Public Links:" : "Index veřejnĆ½ch odkazÅÆ :", - "Index Federated Shares:" : "Indexovat sdruženĆ” sdĆ­lenĆ­ :", - "Index External Storages:" : "ExternĆ­ ĆŗložiÅ”tě indexu :", - "Index Encrypted Files:" : "Indexovat Å”ifrovanĆ© soubory :", - "Last index:" : "PoslednĆ­ index :", - "Indexing Bookmarks" : "IndexovĆ”nĆ­ zĆ”ložek", - "The App Bookmarks is not installed/enabled." : "Aplikace zĆ”ložky nenĆ­ nainstalovĆ”na/povolena", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Aplikace zĆ”ložky\" je povolena, vaÅ”e zĆ”ložky budou indexovĆ”ny", - "Checking" : "Kontrola", - "Nextant Status" : "Stav Nextantu", - "Resource Level:" : "ƚroveň zdroje :", - "Higher performance" : "VyÅ”Å”Ć­ vĆ½kon", - "High performance" : "VysokĆ½ vĆ½kon", - "Medium performance" : "StřednĆ­ vĆ½kon", - "Low performance" : "NĆ­zkĆ½ vĆ½kon", - "Lower performance" : "NiÅ¾Å”Ć­ vĆ½kon", - "Live Index:" : "ŽivĆ½ index :", - "Disabled" : "ZakĆ”zĆ”no", - "Using Semaphore" : "PouÅ¾Ć­vĆ” se semafor", - "Using Database" : "PouÅ¾Ć­vĆ” se databĆ”ze", - "Minimum Background Index delay:" : "NejmenÅ”Ć­ spožděnĆ­ indexu na pozadĆ­ :", - "hours" : "hodiny", - "Maximum Background Index delay:" : "NejvětÅ”Ć­ zpožděnĆ­ indexace na pozadĆ­ :", - "days" : "dny", - "Nextcloud Cron:" : "Cron Nextcloudu :", - "Number of documents:" : "Počet dokumentÅÆ :", - "Number of segments:" : "Počet segmentÅÆ:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "doporučujeme dělat prvnĆ­ indexovĆ”nĆ­ vaÅ”ich souborÅÆ pomocĆ­ pÅ™Ć­kazu ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Ale mÅÆžete vynutit spuÅ”těnĆ­ jako proces na pozadĆ­.", - "Force first index as a cronjob" : "Vynutit prvnĆ­ indexovĆ”nĆ­ jako Cron Ćŗlohu", - "Force index" : "Vynutit index", - "Indexing is scheduled within the next few hours (Cron)" : "IndexovĆ”nĆ­ je naplĆ”novĆ”no v pÅ™Ć­Å”tĆ­ch několika hodinĆ”ch (Cron)", - "Indexing in progress" : "IndexovĆ”nĆ­ probĆ­hĆ”", - "Type of files to extract" : "Typ souborÅÆ k extrakci", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextovĆ½ soubor (text, HTML, titulky, zdrojovĆ½ kĆ³d, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "KancelĆ”Å™skĆ© dokumenty", - "Image (JPEG, TIFF)" : "ObrĆ”zek (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audio soubor (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "PÅ™Ć­pony, kterĆ© si přejete ignorovat (.java .xml)" -}, -"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/l10n/cs.json b/l10n/cs.json deleted file mode 100644 index a91976d..0000000 --- a/l10n/cs.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "JĆ­t do složky", - "never" : "nikdy", - "Nextant is not configured yet" : "Nextant jeÅ”tě nenĆ­ nakonfigurovĆ”n", - "Ping querying your Solr Server" : "DotazovĆ”nĆ­ pingem vaÅ”eho Solr serveru", - "Verifying Schema integrity" : "OvěřovĆ”nĆ­ integrity schĆ©matu", - "Test simple text extract query" : "VyzkouÅ”et jednoduchĆ½ dotaz na extrakci textu", - "Test update document query" : "dotaz zkouÅ”ky aktualizace dokumentu", - "Test search query" : "VyzkouÅ”et vyhledĆ”vacĆ­ dotaz", - "Removing the test document" : "OdstraňovĆ”nĆ­ zkuÅ”ebnĆ­ho dokumentu", - "All test went fine. Saving your configuration" : "VÅ”echny testy proběhly v poÅ™Ć”dku. UklĆ”dĆ”nĆ­ vaÅ”Ć­ konfigurace", - "Address-format incorrect" : "ChybnĆ½ formĆ”t adresy", - "Apache Solr is up, running and responding to ping query" : "Apache Solr bÄ›Å¾Ć­ a odpovĆ­dĆ” na ping dotaz", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr neodpovĆ­dĆ” na na ping dotaz (chyba #%1$s)", - "Schema is fine" : "SchĆ©ma je v poÅ™Ć”dku", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Nepodařilo se ověřit/opravit integritu schĆ©matu (chyba #%1$s)", - "Text extracted" : "Text extrahovĆ”n", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrakce selhala. Zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Chyba aktualizace pole - nelze najĆ­t pÅÆvodnĆ­ dokument - (chyba #%1$s)", - "Error during commit (Error #%1$s)" : "Chyba při commitu (chyba #%1$s", - "Error while updating field (Error #%1$s)" : "Chyba při aktualizaci pole (chyba #%1$s)", - "Document updated" : "Dokument aktualizovĆ”n", - "Found it" : "Nalezeno", - "Found something, but not what was expected." : "Něco bylo nalezeno, ale ne to, co bylo očekĆ”vĆ”no", - "Cannot find any document" : "Nelze najĆ­t Å¾Ć”dnĆ½ dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "VyhledĆ”vĆ”nĆ­ selhalo. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Test-document deleted" : "ZkuÅ”ebnĆ­ dokument smazĆ”n", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nepodařilo se smazat zkuÅ”ebnĆ­ dokument. ProsĆ­m, zkontrolujte konfiguraci vaÅ”eho Solr serveru (chyba #%1$s)", - "Your configuration has been saved" : "VaÅ”e konfigurace byla uložena", - "Configuration could not be saved. Please reload this page." : "Konfiguraci se nepodařilo uložit. ProsĆ­m, obnovte tuto strĆ”nku.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (full-textovĆ© vyhledĆ”vĆ”nĆ­)", - "Specify the address of your Solr, and the name of the core to use." : "Specifikujte adresu vaÅ”eho Solru a jmĆ©no Ć”dra, kterĆ© se mĆ” pouÅ¾Ć­t", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Pokud nemĆ”te bÄ›Å¾Ć­cĆ­ servlet Solr, na wiki najdete prÅÆvodce instalacĆ­.", - "You can also find more information there about this interface." : "TakĆ© zde mÅÆžete nalĆ©zt dalÅ”Ć­ informace o tomto rozhranĆ­", - "Saving" : "UklĆ”dĆ”nĆ­", - "Settings" : "NastavenĆ­", - "Nextant version:" : "Nextant verze:", - "Address of your Solr servlet:" : "Adresa vaÅ”eho Solr servletu :", - "Core:" : "JĆ”dro :", - "Timeout (in seconds):" : "Čas vyprÅ”enĆ­ požadavku (sekundy) :", - "Test and Save" : "VyzkouÅ”et a uložit", - "Indexing Files" : "IndexovĆ”nĆ­ souborÅÆ", - "Maximum File Size (Mb):" : "MaximĆ”lnĆ­ velikost souboru (Mb) :", - "Edit your filters" : "Upravte vaÅ”e filtry", - "Index Files Tree:" : "Indexovat strom souborÅÆ :", - "Disable default search from Files" : "ZakĆ”zat vĆ½chozĆ­ hledĆ”nĆ­ ze souborÅÆ", - "Index File Trash:" : "Odpad indexovĆ©ho souboru:", - "Index Public Links:" : "Index veřejnĆ½ch odkazÅÆ :", - "Index Federated Shares:" : "Indexovat sdruženĆ” sdĆ­lenĆ­ :", - "Index External Storages:" : "ExternĆ­ ĆŗložiÅ”tě indexu :", - "Index Encrypted Files:" : "Indexovat Å”ifrovanĆ© soubory :", - "Last index:" : "PoslednĆ­ index :", - "Indexing Bookmarks" : "IndexovĆ”nĆ­ zĆ”ložek", - "The App Bookmarks is not installed/enabled." : "Aplikace zĆ”ložky nenĆ­ nainstalovĆ”na/povolena", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Aplikace zĆ”ložky\" je povolena, vaÅ”e zĆ”ložky budou indexovĆ”ny", - "Checking" : "Kontrola", - "Nextant Status" : "Stav Nextantu", - "Resource Level:" : "ƚroveň zdroje :", - "Higher performance" : "VyÅ”Å”Ć­ vĆ½kon", - "High performance" : "VysokĆ½ vĆ½kon", - "Medium performance" : "StřednĆ­ vĆ½kon", - "Low performance" : "NĆ­zkĆ½ vĆ½kon", - "Lower performance" : "NiÅ¾Å”Ć­ vĆ½kon", - "Live Index:" : "ŽivĆ½ index :", - "Disabled" : "ZakĆ”zĆ”no", - "Using Semaphore" : "PouÅ¾Ć­vĆ” se semafor", - "Using Database" : "PouÅ¾Ć­vĆ” se databĆ”ze", - "Minimum Background Index delay:" : "NejmenÅ”Ć­ spožděnĆ­ indexu na pozadĆ­ :", - "hours" : "hodiny", - "Maximum Background Index delay:" : "NejvětÅ”Ć­ zpožděnĆ­ indexace na pozadĆ­ :", - "days" : "dny", - "Nextcloud Cron:" : "Cron Nextcloudu :", - "Number of documents:" : "Počet dokumentÅÆ :", - "Number of segments:" : "Počet segmentÅÆ:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "doporučujeme dělat prvnĆ­ indexovĆ”nĆ­ vaÅ”ich souborÅÆ pomocĆ­ pÅ™Ć­kazu ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Ale mÅÆžete vynutit spuÅ”těnĆ­ jako proces na pozadĆ­.", - "Force first index as a cronjob" : "Vynutit prvnĆ­ indexovĆ”nĆ­ jako Cron Ćŗlohu", - "Force index" : "Vynutit index", - "Indexing is scheduled within the next few hours (Cron)" : "IndexovĆ”nĆ­ je naplĆ”novĆ”no v pÅ™Ć­Å”tĆ­ch několika hodinĆ”ch (Cron)", - "Indexing in progress" : "IndexovĆ”nĆ­ probĆ­hĆ”", - "Type of files to extract" : "Typ souborÅÆ k extrakci", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextovĆ½ soubor (text, HTML, titulky, zdrojovĆ½ kĆ³d, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "KancelĆ”Å™skĆ© dokumenty", - "Image (JPEG, TIFF)" : "ObrĆ”zek (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audio soubor (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "PÅ™Ć­pony, kterĆ© si přejete ignorovat (.java .xml)" -},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" -} \ No newline at end of file diff --git a/l10n/de.js b/l10n/de.js deleted file mode 100644 index cedc9b4..0000000 --- a/l10n/de.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Zum Ordner wechseln", - "never" : "Niemals", - "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet", - "Ping querying your Solr Server" : "Ping sucht Deinen Soir Server", - "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt", - "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage", - "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage", - "Test search query" : "Teste Suchanfrage", - "Removing the test document" : "Entferne das Testdokument", - "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert", - "Address-format incorrect" : "Adress-Format falsch", - "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Soir antwortet nicht auf Ping-Anfragen (Fehler #%1$s)", - "Schema is fine" : "Schema ist in Ordnung", - "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariet werden (Fehler #%1$s)", - "Text extracted" : "Text extrahiert", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fe die Kofiguration des Soir-Servers (Fehler #%1$s) ", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ", - "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)", - "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s)", - "Document updated" : "Dokument aktualisiert", - "Found it" : "Gefunden", - "Found something, but not what was expected." : "Etwas wurde gefunden, jedoch nicht das erwartete. ", - "Cannot find any document" : "Kann kein Dokument finden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s)", - "Test-document deleted" : "Test-Dokument gelƶscht", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Testdokument konnte nicht gelƶscht werden. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s) ", - "Your configuration has been saved" : "Deine Konfiguration wurde gespeichert", - "Configuration could not be saved. Please reload this page." : "Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)", - "Specify the address of your Solr, and the name of the core to use." : "Gebe die Adresse Deines Solr sowie den Namen des Kerns der benutzt werden soll an.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : " 99% match\nWenn Du noch kein Soir-Servlet laufen hast, findest Du Installationsanleitungen im Wiki. ", - "You can also find more information there about this interface." : "Dort findest Du weitere Informationen zu diesem Interface.", - "Saving" : "Speichere", - "Settings" : "Einstellungen", - "Nextant version:" : "Nextant-Version : ", - "Address of your Solr servlet:" : "Adresse des Solr-Servlet: ", - "Core:" : "Kern:", - "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ", - "Test and Save" : "Testen und speichern", - "Indexing Files" : "Indexiere Dateien", - "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ", - "Edit your filters" : "Filter bearbeiten", - "Index Files Tree:" : " Index des Verzeichnisbaums: ", - "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien", - "Index File Trash:" : "Index-Datei Abfall:", - "Index Public Links:" : " Index der Ɩffentliche Links: ", - "Index Federated Shares:" : " Index der FederatedShares: ", - "Index External Storages:" : " Index des externen Speichers: ", - "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ", - "Last index:" : " Letzter Index: ", - "Indexing Bookmarks" : "Indexiere Lesezeichen", - "The App Bookmarks is not installed/enabled." : "Die Lesezeichen App ist nicht installiert/aktiviert", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Deine Lesezeichen werden indexiert", - "Checking" : "PrĆ¼fe", - "Nextant Status" : "Nextant Status", - "Resource Level:" : " Ressourcenniveau: ", - "Higher performance" : "Hƶhere Leistung", - "High performance" : "Hohe Leistung", - "Medium performance" : "Mittlere Leistung", - "Low performance" : "Niedrige Leistung", - "Lower performance" : "Sehr niedrige Leistung", - "Live Index:" : " Live-Index: ", - "Disabled" : "Deaktiviert", - "Using Semaphore" : "Verwenden von Semaphore", - "Using Database" : "Nutze Datenbank", - "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ", - "hours" : "Stunden", - "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ", - "days" : "Tage", - "Nextcloud Cron:" : "Nextcloud Cron: ", - "Number of documents:" : " Anzahl Dokumente: ", - "Number of segments:" : " Anzahl der Segmente: ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ", - "However, you can force it to be started as a background process." : "Du kannst jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.", - "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen", - "Force index" : "Index erzwingen", - "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)", - "Indexing in progress" : "Indexierung lƤuft", - "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Wuell-Code, ā€¦) ", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Dokumente", - "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)", - "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ", - "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/de.json b/l10n/de.json deleted file mode 100644 index 6807e2c..0000000 --- a/l10n/de.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Zum Ordner wechseln", - "never" : "Niemals", - "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet", - "Ping querying your Solr Server" : "Ping sucht Deinen Soir Server", - "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt", - "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage", - "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage", - "Test search query" : "Teste Suchanfrage", - "Removing the test document" : "Entferne das Testdokument", - "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert", - "Address-format incorrect" : "Adress-Format falsch", - "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Soir antwortet nicht auf Ping-Anfragen (Fehler #%1$s)", - "Schema is fine" : "Schema ist in Ordnung", - "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariet werden (Fehler #%1$s)", - "Text extracted" : "Text extrahiert", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fe die Kofiguration des Soir-Servers (Fehler #%1$s) ", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ", - "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)", - "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s)", - "Document updated" : "Dokument aktualisiert", - "Found it" : "Gefunden", - "Found something, but not what was expected." : "Etwas wurde gefunden, jedoch nicht das erwartete. ", - "Cannot find any document" : "Kann kein Dokument finden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s)", - "Test-document deleted" : "Test-Dokument gelƶscht", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Testdokument konnte nicht gelƶscht werden. Bitte prĆ¼fe die Konfiguration Deines Soir Servers (Fehler #%1$s) ", - "Your configuration has been saved" : "Deine Konfiguration wurde gespeichert", - "Configuration could not be saved. Please reload this page." : "Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)", - "Specify the address of your Solr, and the name of the core to use." : "Gebe die Adresse Deines Solr sowie den Namen des Kerns der benutzt werden soll an.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : " 99% match\nWenn Du noch kein Soir-Servlet laufen hast, findest Du Installationsanleitungen im Wiki. ", - "You can also find more information there about this interface." : "Dort findest Du weitere Informationen zu diesem Interface.", - "Saving" : "Speichere", - "Settings" : "Einstellungen", - "Nextant version:" : "Nextant-Version : ", - "Address of your Solr servlet:" : "Adresse des Solr-Servlet: ", - "Core:" : "Kern:", - "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ", - "Test and Save" : "Testen und speichern", - "Indexing Files" : "Indexiere Dateien", - "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ", - "Edit your filters" : "Filter bearbeiten", - "Index Files Tree:" : " Index des Verzeichnisbaums: ", - "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien", - "Index File Trash:" : "Index-Datei Abfall:", - "Index Public Links:" : " Index der Ɩffentliche Links: ", - "Index Federated Shares:" : " Index der FederatedShares: ", - "Index External Storages:" : " Index des externen Speichers: ", - "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ", - "Last index:" : " Letzter Index: ", - "Indexing Bookmarks" : "Indexiere Lesezeichen", - "The App Bookmarks is not installed/enabled." : "Die Lesezeichen App ist nicht installiert/aktiviert", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Deine Lesezeichen werden indexiert", - "Checking" : "PrĆ¼fe", - "Nextant Status" : "Nextant Status", - "Resource Level:" : " Ressourcenniveau: ", - "Higher performance" : "Hƶhere Leistung", - "High performance" : "Hohe Leistung", - "Medium performance" : "Mittlere Leistung", - "Low performance" : "Niedrige Leistung", - "Lower performance" : "Sehr niedrige Leistung", - "Live Index:" : " Live-Index: ", - "Disabled" : "Deaktiviert", - "Using Semaphore" : "Verwenden von Semaphore", - "Using Database" : "Nutze Datenbank", - "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ", - "hours" : "Stunden", - "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ", - "days" : "Tage", - "Nextcloud Cron:" : "Nextcloud Cron: ", - "Number of documents:" : " Anzahl Dokumente: ", - "Number of segments:" : " Anzahl der Segmente: ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ", - "However, you can force it to be started as a background process." : "Du kannst jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.", - "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen", - "Force index" : "Index erzwingen", - "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)", - "Indexing in progress" : "Indexierung lƤuft", - "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Wuell-Code, ā€¦) ", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Dokumente", - "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)", - "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ", - "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/de_DE.js b/l10n/de_DE.js deleted file mode 100644 index d4ac25b..0000000 --- a/l10n/de_DE.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Zum Ordner wechseln", - "never" : "Niemals", - "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet", - "Ping querying your Solr Server" : "Ping sucht Ihren Soir Server", - "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt", - "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage", - "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage", - "Test search query" : "Teste Suchanfrage", - "Removing the test document" : "Entferne das Testdokument", - "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert", - "Address-format incorrect" : "Adress-Format falsch", - "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr antwortet nicht auf Ping-Anfragen (Fehler #%1$s)", - "Schema is fine" : "Schema ist in Ordnung", - "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariert werden (Fehler #%1$s)", - "Text extracted" : "Text extrahiert", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fen Sie die Kofiguration Ihres Soir Servers (Fehler #%1$s) ", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ", - "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)", - "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s) ", - "Document updated" : "Dokument aktualisiert", - "Found it" : "Gefunden", - "Found something, but not what was expected." : " Etwas wurde gefunden, jedoch nicht das erwartete. ", - "Cannot find any document" : "Kann kein Dokument finden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s)", - "Test-document deleted" : " Test-Dokument gelƶscht ", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Test-Dokument konnte nicht gelƶscht werden. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s) ", - "Your configuration has been saved" : "Ihre Konfiguration wurde gespeichert", - "Configuration could not be saved. Please reload this page." : " Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)", - "Specify the address of your Solr, and the name of the core to use." : "Gebe Sie die Adresse Ihres Solr sowie den Namen des Kerns der benutzt werden soll an.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Wenn Sie noch kein Soir-Servlet laufen haben, finden Sie Installationsanleitungen im Wiki. ", - "You can also find more information there about this interface." : "Dort finden Sie weitere Informationen zu diesem Interface.", - "Saving" : "Speichere", - "Settings" : "Einstellungen", - "Nextant version:" : "Nextant-Version : ", - "Address of your Solr servlet:" : "Adresse Ihres Solr-Servlet: ", - "Core:" : "Kern:", - "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ", - "Test and Save" : "Testen und speichern", - "Indexing Files" : "Indexiere Dateien", - "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ", - "Edit your filters" : "Filter bearbeiten", - "Index Files Tree:" : " Index des Verzeichnisbaums: ", - "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien", - "Index File Trash:" : "Index-Datei Papierkorb:", - "Index Public Links:" : " Index der Ɩffentliche Links: ", - "Index Federated Shares:" : " Index der FederatedShares: ", - "Index External Storages:" : " Index des externen Speichers: ", - "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ", - "Last index:" : " Letzter Index: ", - "Indexing Bookmarks" : "Indexiere Lesezeichen", - "The App Bookmarks is not installed/enabled." : "Die Lesezeichen-App ist nicht installiert/aktiviert.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Ihre Lesezeichen werden indexiert", - "Checking" : "PrĆ¼fe", - "Nextant Status" : "Nextant Status", - "Resource Level:" : " Ressourcenniveau: ", - "Higher performance" : "Hƶhere Leistung", - "High performance" : "Hohe Leistung", - "Medium performance" : "Mittlere Leistung", - "Low performance" : "Niedrige Leistung", - "Lower performance" : "Sehr niedrige Leistung", - "Live Index:" : " Live-Index: ", - "Disabled" : "Deaktiviert", - "Using Semaphore" : "Verwenden von Semaphore", - "Using Database" : "Nutze Datenbank", - "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ", - "hours" : "Stunden", - "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ", - "days" : "Tage", - "Nextcloud Cron:" : " Nextcloud Cron: ", - "Number of documents:" : " Anzahl Dokumente: ", - "Number of segments:" : " Anzahl der Segmente: ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ", - "However, you can force it to be started as a background process." : "Sie kƶnnen jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.", - "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen", - "Force index" : "Index erzwingen", - "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)", - "Indexing in progress" : "Indexierung lƤuft", - "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Quell-Code, ā€¦) ", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Dokumente", - "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)", - "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ", - "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/de_DE.json b/l10n/de_DE.json deleted file mode 100644 index 08290a7..0000000 --- a/l10n/de_DE.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Zum Ordner wechseln", - "never" : "Niemals", - "Nextant is not configured yet" : "Nextant wurde noch nicht eingerichtet", - "Ping querying your Solr Server" : "Ping sucht Ihren Soir Server", - "Verifying Schema integrity" : "PrĆ¼fe die SchemenintegritƤt", - "Test simple text extract query" : "Teste einfache Text-Extrahierungs-Anfrage", - "Test update document query" : "Teste Dokument-Aktualisierungs-Anfrage", - "Test search query" : "Teste Suchanfrage", - "Removing the test document" : "Entferne das Testdokument", - "All test went fine. Saving your configuration" : "Alle Tests waren erfolgreich. Die Konfiguration wird gespeichert", - "Address-format incorrect" : "Adress-Format falsch", - "Apache Solr is up, running and responding to ping query" : "Apache Soir lƤuft und antwortet auf Ping-Anfragen", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr antwortet nicht auf Ping-Anfragen (Fehler #%1$s)", - "Schema is fine" : "Schema ist in Ordnung", - "Unable to verify/fix schema integrity (Error #%1$s)" : "SchemenintegritƤt konnte nicht Ć¼berprĆ¼ft / repariert werden (Fehler #%1$s)", - "Text extracted" : "Text extrahiert", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahierung fehlgeschlagen. Bitte PrĆ¼fen Sie die Kofiguration Ihres Soir Servers (Fehler #%1$s) ", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes - Original Dokument nicht gefunden - (Fehler #%1$s) ", - "Error during commit (Error #%1$s)" : "Fehler bei der BestƤtigung (Fehler #%1$s)", - "Error while updating field (Error #%1$s)" : "Fehler bei der Aktualisierung des Feldes (Fehler #%1$s) ", - "Document updated" : "Dokument aktualisiert", - "Found it" : "Gefunden", - "Found something, but not what was expected." : " Etwas wurde gefunden, jedoch nicht das erwartete. ", - "Cannot find any document" : "Kann kein Dokument finden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Suche fehlgeschlagen. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s)", - "Test-document deleted" : " Test-Dokument gelƶscht ", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Test-Dokument konnte nicht gelƶscht werden. Bitte prĆ¼fen Sie die Konfiguration Ihres Soir Servers (Fehler #%1$s) ", - "Your configuration has been saved" : "Ihre Konfiguration wurde gespeichert", - "Configuration could not be saved. Please reload this page." : " Konfiguration konnte nicht gesichert werden. Bitte diese Seite erneut laden. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Volltext-Suche)", - "Specify the address of your Solr, and the name of the core to use." : "Gebe Sie die Adresse Ihres Solr sowie den Namen des Kerns der benutzt werden soll an.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Wenn Sie noch kein Soir-Servlet laufen haben, finden Sie Installationsanleitungen im Wiki. ", - "You can also find more information there about this interface." : "Dort finden Sie weitere Informationen zu diesem Interface.", - "Saving" : "Speichere", - "Settings" : "Einstellungen", - "Nextant version:" : "Nextant-Version : ", - "Address of your Solr servlet:" : "Adresse Ihres Solr-Servlet: ", - "Core:" : "Kern:", - "Timeout (in seconds):" : "ZeitĆ¼berschreitung (inSekunden): ", - "Test and Save" : "Testen und speichern", - "Indexing Files" : "Indexiere Dateien", - "Maximum File Size (Mb):" : "Maximale DateigrĆ¶ĆŸe (MB): ", - "Edit your filters" : "Filter bearbeiten", - "Index Files Tree:" : " Index des Verzeichnisbaums: ", - "Disable default search from Files" : "Deaktiviere Standard-Suche von Dateien", - "Index File Trash:" : "Index-Datei Papierkorb:", - "Index Public Links:" : " Index der Ɩffentliche Links: ", - "Index Federated Shares:" : " Index der FederatedShares: ", - "Index External Storages:" : " Index des externen Speichers: ", - "Index Encrypted Files:" : " Index der verschlĆ¼sselten Dateien: ", - "Last index:" : " Letzter Index: ", - "Indexing Bookmarks" : "Indexiere Lesezeichen", - "The App Bookmarks is not installed/enabled." : "Die Lesezeichen-App ist nicht installiert/aktiviert.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Die Lesezeichen App ist aktiviert, Ihre Lesezeichen werden indexiert", - "Checking" : "PrĆ¼fe", - "Nextant Status" : "Nextant Status", - "Resource Level:" : " Ressourcenniveau: ", - "Higher performance" : "Hƶhere Leistung", - "High performance" : "Hohe Leistung", - "Medium performance" : "Mittlere Leistung", - "Low performance" : "Niedrige Leistung", - "Lower performance" : "Sehr niedrige Leistung", - "Live Index:" : " Live-Index: ", - "Disabled" : "Deaktiviert", - "Using Semaphore" : "Verwenden von Semaphore", - "Using Database" : "Nutze Datenbank", - "Minimum Background Index delay:" : "Minimale Hintergrund-Indexierungs-Verzƶgerung: ", - "hours" : "Stunden", - "Maximum Background Index delay:" : "Maximale Hintergrund-Indexierungs-Verzƶgerung: ", - "days" : "Tage", - "Nextcloud Cron:" : " Nextcloud Cron: ", - "Number of documents:" : " Anzahl Dokumente: ", - "Number of segments:" : " Anzahl der Segmente: ", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Es empfiehlt sich die erste Indexierung Deiner Dateien mit dem ./occ nextant:index Befehl zu starten. ", - "However, you can force it to be started as a background process." : "Sie kƶnnen jedoch erzwingen, dass es als Hintergrundprozess gestartet wird.", - "Force first index as a cronjob" : "Ersten Index als Cronjob erzwingen", - "Force index" : "Index erzwingen", - "Indexing is scheduled within the next few hours (Cron)" : "Indexierung ist fĆ¼r die nƤchsten Stunden geplant (Cron)", - "Indexing in progress" : "Indexierung lƤuft", - "Type of files to extract" : "Typ der Dateien die extrahiert werden sollen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : " Text-Datei (Text, Html, Subtitles, Quell-Code, ā€¦) ", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Dokumente", - "Image (JPEG, TIFF)" : "Bild (Jpeg, Tiff)", - "Audio File (MP3, FLAC)" : "Audio Datei (mp3, flac) ", - "Extensions you wish to ignore (.java .xml)" : "Erweiterungen die ignoriert werden sollen (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/el.js b/l10n/el.js deleted file mode 100644 index 478c2b4..0000000 --- a/l10n/el.js +++ /dev/null @@ -1,91 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "ĪœĪµĻ„Ī±ĪŗĪÆĪ½Ī·ĻƒĪ· ĻƒĻ„ĪæĪ½ Ļ†Ī¬ĪŗĪµĪ»Īæ", - "never" : "Ļ€ĪæĻ„Ī­", - "Nextant is not configured yet" : "Ī¤Īæ Nextant Ī“ĪµĪ½ Ī­Ļ‡ĪµĪ¹ ĻĻ…ĪøĪ¼Ī¹ĻƒĻ„ĪµĪÆ Ī±ĪŗĻŒĪ¼Ī·", - "Ping querying your Solr Server" : "Ī•ĻĻŽĻ„Ī·Ī¼Ī± ping ĻƒĻ„ĪæĪ½ SolrĀ Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® ĻƒĪ±Ļ‚", - "Verifying Schema integrity" : "Ī•Ļ€Ī±Ī»Ī®ĪøĪµĻ…ĻƒĪ· Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ī“Ī¹Ī¬Ļ„Ī±Ī¾Ī·Ļ‚", - "Test simple text extract query" : "Ī”ĪæĪŗĪ¹Ī¼Ī¬ĻƒĻ„Īµ Ī­Ī½Ī± Ī±Ļ€Ī»ĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…", - "Test update document query" : "ĪˆĪ»ĪµĪ³Ļ‡ĪæĻ‚ ĪµĻĻ‰Ļ„Ī®Ī¼Ī±Ļ„ĪæĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ… ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚", - "Test search query" : "Ī”ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚", - "Removing the test document" : "Ī‘Ļ†Ī±ĪÆĻĪµĻƒĪ· Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "All test went fine. Saving your configuration" : "ĪŒĪ»ĪæĪ¹ ĪæĪ¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĪ¹ Ļ€Ī®Ī³Ī±Ī½ ĪŗĪ±Ī»Ī¬. Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ļ„Ļ‰Ī½ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĻ‰Ī½", - "Address-format incorrect" : "Ī•ĻƒĻ†Ī±Ī»Ī¼Ī­Ī½Ī· Ī¼ĪæĻĻ†Ī® Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ·Ļ‚", - "Apache Solr is up, running and responding to ping query" : "ĪŸ Apache Solr ĪµĪÆĪ½Ī±Ī¹ ĪµĪ½ĪµĻĪ³ĻŒĻ‚, ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ±Ī¹ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "ĪŸ Apache Solr Ī“ĪµĪ½ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Schema is fine" : "Ī¤Īæ ĻƒĻ‡Ī®Ī¼Ī± ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ±Ī»ĻŒ", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻ€Ī¹ĪŗĻĻĻ‰ĻƒĪ·Ļ‚/ĪµĻ€Ī¹ĻƒĪŗĪµĻ…Ī®Ļ‚ Ļ„Ī·Ļ‚ Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ļ„ĪæĻ… ĻƒĻ‡Ī®Ī¼Ī±Ļ„ĪæĻ‚ (Ī£Ļ†Ī¬Ī»Ī¼Ī± # %1$s)", - "Text extracted" : "Ī•Ī¾Ī±Ī³Ļ‰Ī³Ī® ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚ Ļ€ĪµĪ“ĪÆĪæĻ… - Ī¤Īæ Ļ€ĻĻ‰Ļ„ĻŒĻ„Ļ…Ļ€Īæ Ī­Ī³Ī³ĻĪ±Ļ†Īæ Ī“ĪµĪ½ Ī¼Ļ€ĪæĻĪµĪÆ Ī½Ī± Ī²ĻĪµĪøĪµĪÆ - (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error during commit (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ Ļ…Ļ€ĪæĪ²ĪæĪ»Ī® (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error while updating field (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· Ļ€ĪµĪ“ĪÆĪæĻ… (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Document updated" : "Ī•Ī½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "Found it" : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ", - "Found something, but not what was expected." : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ ĪŗĪ¬Ļ„Ī¹, Ī±Ī»Ī»Ī¬ ĻŒĻ‡Ī¹ Ī±Ļ…Ļ„ĻŒ Ļ€ĪæĻ… Ī±Ī½Ī±Ī¼ĪµĪ½ĻŒĻ„Ī±Ī½.", - "Cannot find any document" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻƒĪ·Ļ‚ ĪæĻ€ĪæĪ¹ĪæĻ…Ī“Ī®Ļ€ĪæĻ„Īµ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī— Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€Ī­Ļ„Ļ…Ļ‡Īµ. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī¹Ļ‚ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ Ļ„ĪæĻ… Solr ĪµĪ¾Ļ…Ļ€Ī·ĻĪµĻ„Ī·Ļ„Ī® ĻƒĪ±Ļ‚. (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Test-document deleted" : "ĪˆĪ³Ī³ĻĪ±Ļ†Īæ Ī“ĪæĪŗĪ¹Ī¼Ī®Ļ‚ Ī“Ī¹Ī±Ī³ĻĪ¬Ļ†Ī·ĪŗĪµ", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± Ī“Ī¹Ī±Ī³ĻĪ±Ļ†Ī®Ļ‚ Ļ„ĪæĻ… Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Your configuration has been saved" : "ĪŸĪ¹ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ ĻƒĪ±Ļ‚ Ī±Ļ€ĪæĪøĪ·ĪŗĪµĻĻ„Ī·ĪŗĪ±Ī½", - "Configuration could not be saved. Please reload this page." : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ·Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĻ€Ī±Ī½Ī±Ļ†ĪæĻĻ„ĻŽĻƒĻ„Īµ Ī±Ļ…Ļ„Ī® Ļ„Ī· ĻƒĪµĪ»ĪÆĪ“Ī±.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ļ€Ī»Ī®ĻĪæĻ…Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…)", - "Specify the address of your Solr, and the name of the core to use." : "Ī ĻĪæĻƒĪ“Ī¹ĪæĻĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚, ĪŗĪ±Ī¹ Ļ„Īæ ĪæĪ½ĪæĪ¼Ī± Ļ„ĪæĻ… Ļ€Ļ…ĻĪ®Ī½Ī± Ļ€ĻĪæĻ‚ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ·. ", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ī‘Ī½ Ī“ĪµĪ½ ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ¬Ļ€ĪæĪ¹Īæ Solr servlet, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ„ĪæĻ…Ļ‚ ĪæĪ“Ī·Ī³ĪæĻĻ‚ ĪµĪ³ĪŗĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ·Ļ‚ ĻƒĻ„Īæ wiki. ", - "You can also find more information there about this interface." : "ĪœĻ€ĪæĻĪµĪÆĻ„Īµ ĪµĻ€ĪÆĻƒĪ·Ļ‚ ĪµĪŗĪµĪÆ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ€ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪµĻ‚ Ļ€Ī»Ī·ĻĪæĻ†ĪæĻĪÆĪµĻ‚ Ī³Ī¹Ī± Ī±Ļ…Ļ„Ī® Ļ„Ī·Ī½ Ī“Ī¹ĪµĻ€Ī±Ļ†Ī®.", - "Saving" : "Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·", - "Settings" : "Ī”Ļ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚", - "Nextant version:" : "ĪˆĪŗĪ“ĪæĻƒĪ· Nextant:", - "Address of your Solr servlet:" : "Ī”Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… servlet Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚:", - "Core:" : "Ī Ļ…ĻĪ®Ī½Ī±Ļ‚:", - "Timeout (in seconds):" : "Ī§ĻĪæĪ½Ī¹ĪŗĻŒ ĻŒĻĪ¹Īæ (Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±):", - "Test and Save" : "Ī”ĪæĪŗĪ¹Ī¼Ī® ĪŗĪ±Ī¹ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·", - "Indexing Files" : "ĪšĪ±Ļ„Ī±Ī»ĪæĪ³ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī±ĻĻ‡ĪµĪÆĻ‰Ī½", - "Maximum File Size (Mb):" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Īæ Ī¼Ī­Ī³ĪµĪøĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĪæĻ… (Mb):", - "Edit your filters" : "Ī•Ļ€ĪµĪ¾ĪµĻĪ³Ī±ĻƒĪÆĪ± Ļ„Ļ‰Ī½ Ļ†ĪÆĪ»Ļ„ĻĻ‰Ī½ ĻƒĪ±Ļ‚", - "Index Files Tree:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī¹ĪµĻĪ±ĻĻ‡ĪÆĪ±Ļ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Disable default search from Files" : "Ī‘Ļ€ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹ĪµĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĪæĪµĻ€Ī¹Ī»ĪµĪ³Ī¼Ī­Ī½Ī· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€ĻŒ Ļ„Ī± Ī‘ĻĻ‡ĪµĪÆĪ±", - "Index File Trash:" : "Ī•Ļ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ī‘ĻĻ‡ĪµĪÆĪæĻ… Ī‘Ļ€ĪæĻĻĪ¹Ī¼Ī¬Ļ„Ļ‰Ī½:", - "Index Public Links:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī“Ī·Ī¼ĪæĻƒĪÆĻ‰Ī½ ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼Ļ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Index Federated Shares:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ„Ļ‰Ī½ federated ĪŗĪæĪ¹Ī½ĪæĻ‡ĻĪ®ĻƒĻ„Ļ‰Ī½:", - "Index External Storages:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪµĪ¾Ļ‰Ļ„ĪµĻĪ¹ĪŗĻŽĪ½ Ļ‡ĻŽĻĻ‰Ī½ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Index Encrypted Files:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪŗĻĻ…Ļ€Ļ„ĪæĪ³ĻĪ±Ļ†Ī·Ī¼Ī­Ī½Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Last index:" : "Ī¤ĪµĪ»ĪµĻ…Ļ„Ī±ĪÆĪæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Indexing Bookmarks" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪ¹ĪŗĻ„ĻŽĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ", - "The App Bookmarks is not installed/enabled." : "Ī— ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks Ī“ĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĪµĪ³ĪŗĪ±Ļ„ĪµĻƒĻ„Ī·Ī¼Ī­Ī½Ī·/ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī·Ī¼Ī­Ī½Ī·.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Ī— \"ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks\" ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī®ĪøĪ·ĪŗĪµ, ĪæĪ¹ ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪÆĪŗĻ„ĪµĻ‚ ĪøĪ± Ļ€ĻĪæĻƒĻ„ĪµĪøĪæĻĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ.", - "Checking" : "Ī“ĪÆĪ½ĪµĻ„Ī±Ī¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĻ‚ ", - "Nextant Status" : "ĪšĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ· Nextant ", - "Resource Level:" : "Ī•Ļ€ĪÆĻ€ĪµĪ“Īæ Ļ€ĻŒĻĻ‰Ī½:", - "Higher performance" : "ĪœĪµĪ³Ī±Ī»ĻĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "High performance" : "ĪœĪµĪ³Ī¬Ī»Ī· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ· ", - "Medium performance" : "ĪœĪµĻƒĪ±ĪÆĪ± Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Low performance" : "Ī§Ī±Ī¼Ī·Ī»Ī® Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Lower performance" : "Ī§Ī±Ī¼Ī·Ī»ĻŒĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Disabled" : "Ī‘Ī½ĪµĪ½ĪµĻĪ³ĻŒ", - "Using Semaphore" : "Ī§ĻĪ®ĻƒĪ·Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī£Ī·Ī¼Ī±Ļ„ĪæĻ†ĻŒĻĻ‰Ī½ ", - "Using Database" : "Ī§ĻĪ®ĻƒĪ· Ī²Ī¬ĻƒĪ·Ļ‚ Ī“ĪµĪ“ĪæĪ¼Ī­Ī½Ļ‰Ī½", - "Minimum Background Index delay:" : "Ī•Ī»Ī¬Ļ‡Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:", - "hours" : "ĻŽĻĪµĻ‚", - "Maximum Background Index delay:" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:", - "days" : "Ī·Ī¼Ī­ĻĪµĻ‚", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†Ļ‰Ī½:", - "Number of segments:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ Ļ„Ī¼Ī·Ī¼Ī¬Ļ„Ļ‰Ī½:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "ĻƒĻ…Ī½ĪÆĻƒĻ„Ī±Ļ„Ī±Ī¹ Ī½Ī± ĪŗĪ¬Ī½ĪµĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĻŽĻ„Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· Ļ„Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĪ±Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪ¹ĻŽĪ½Ļ„Ī±Ļ‚ Ļ„Ī·Ī½ ĪµĪ½Ļ„ĪæĪ»Ī® ./occ nextant:indexĀ ", - "However, you can force it to be started as a background process." : "Ī£Īµ ĪŗĪ¬ĪøĪµ Ļ€ĪµĻĪÆĻ€Ļ„Ļ‰ĻƒĪ·, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ļ„Īæ ĪµĪ¾Ī±Ī½Ī±Ī³ĪŗĪ¬ĻƒĪµĻ„Īµ Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī¬ ĻƒĪ±Ī½ Ī“Ī¹ĪµĻĪ³Ī±ĻƒĪÆĪ± ĻƒĻ„Īæ Ļ€Ī±ĻĪ±ĻƒĪŗĪ®Ī½Ī¹Īæ.", - "Force first index as a cronjob" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼ĻŒĻ‚ Ļ€ĻĻŽĻ„ĪæĻ… ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ‰Ļ‚ cronjob", - "Force index" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼Ī­Ī½Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ", - "Indexing is scheduled within the next few hours (Cron)" : "Ī— Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ ĪµĪÆĪ½Ī±Ī¹ Ļ€ĻĪæĪ³ĻĪ±Ī¼Ī¼Ī±Ļ„Ī¹ĻƒĪ¼Ī­Ī½Ī· Ī³Ī¹Ī± Ļ„Ī¹Ļ‚ ĪµĻ€ĻŒĪ¼ĪµĪ½ĪµĻ‚ Ī»ĪÆĪ³ĪµĻ‚ ĻŽĻĪµĻ‚ (Cron)", - "Indexing in progress" : "Ī•Ļ…ĻĪµĻ„Ī·ĻĪ¹ĪæĻ€ĪæĪÆĪ·ĻƒĪ· ĻƒĪµ ĪµĪ¾Ī­Ī»Ī¹Ī¾Ī·", - "Type of files to extract" : "Ī¤ĻĻ€ĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ Ī³Ī¹Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ī‘ĻĻ‡ĪµĪÆĪæ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ… (ĪŗĪµĪÆĪ¼ĪµĪ½Īæ, html, Ļ…Ļ€ĻŒĻ„Ī¹Ļ„Ī»ĪæĪ¹, Ļ€Ī·Ī³Ī±ĪÆĪæĻ‚ ĪŗĻŽĪ“Ī¹ĪŗĪ±Ļ‚, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "ĪˆĪ³Ī³ĻĪ±Ļ†Ī± Ī³ĻĪ±Ļ†ĪµĪÆĪæĻ…", - "Image (JPEG, TIFF)" : "Ī•Ī¹ĪŗĻŒĪ½Ī± (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ī‘ĻĻ‡ĪµĪÆĪæ Ī®Ļ‡ĪæĻ… (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Ī•Ļ€ĪµĪŗĻ„Ī¬ĻƒĪµĪ¹Ļ‚ Ļ€ĪæĻ… ĪøĪ­Ī»ĪµĻ„Īµ Ī½Ī± Ī±Ī³Ī½ĪæĪæĻĪ½Ļ„Ī±Ī¹ (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/el.json b/l10n/el.json deleted file mode 100644 index 8fddd62..0000000 --- a/l10n/el.json +++ /dev/null @@ -1,89 +0,0 @@ -{ "translations": { - "Go to folder" : "ĪœĪµĻ„Ī±ĪŗĪÆĪ½Ī·ĻƒĪ· ĻƒĻ„ĪæĪ½ Ļ†Ī¬ĪŗĪµĪ»Īæ", - "never" : "Ļ€ĪæĻ„Ī­", - "Nextant is not configured yet" : "Ī¤Īæ Nextant Ī“ĪµĪ½ Ī­Ļ‡ĪµĪ¹ ĻĻ…ĪøĪ¼Ī¹ĻƒĻ„ĪµĪÆ Ī±ĪŗĻŒĪ¼Ī·", - "Ping querying your Solr Server" : "Ī•ĻĻŽĻ„Ī·Ī¼Ī± ping ĻƒĻ„ĪæĪ½ SolrĀ Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® ĻƒĪ±Ļ‚", - "Verifying Schema integrity" : "Ī•Ļ€Ī±Ī»Ī®ĪøĪµĻ…ĻƒĪ· Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ī“Ī¹Ī¬Ļ„Ī±Ī¾Ī·Ļ‚", - "Test simple text extract query" : "Ī”ĪæĪŗĪ¹Ī¼Ī¬ĻƒĻ„Īµ Ī­Ī½Ī± Ī±Ļ€Ī»ĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…", - "Test update document query" : "ĪˆĪ»ĪµĪ³Ļ‡ĪæĻ‚ ĪµĻĻ‰Ļ„Ī®Ī¼Ī±Ļ„ĪæĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ… ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚", - "Test search query" : "Ī”ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĻŒ ĪµĻĻŽĻ„Ī·Ī¼Ī± Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ·Ļ‚", - "Removing the test document" : "Ī‘Ļ†Ī±ĪÆĻĪµĻƒĪ· Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "All test went fine. Saving your configuration" : "ĪŒĪ»ĪæĪ¹ ĪæĪ¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĪ¹ Ļ€Ī®Ī³Ī±Ī½ ĪŗĪ±Ī»Ī¬. Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ· Ļ„Ļ‰Ī½ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĻ‰Ī½", - "Address-format incorrect" : "Ī•ĻƒĻ†Ī±Ī»Ī¼Ī­Ī½Ī· Ī¼ĪæĻĻ†Ī® Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ·Ļ‚", - "Apache Solr is up, running and responding to ping query" : "ĪŸ Apache Solr ĪµĪÆĪ½Ī±Ī¹ ĪµĪ½ĪµĻĪ³ĻŒĻ‚, ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ±Ī¹ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "ĪŸ Apache Solr Ī“ĪµĪ½ Ī±Ļ€Ī±Ī½Ļ„Ī¬ ĻƒĪµ ĪµĻĻŽĻ„Ī·Ī¼Ī± ping (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Schema is fine" : "Ī¤Īæ ĻƒĻ‡Ī®Ī¼Ī± ĪµĪÆĪ½Ī±Ī¹ ĪŗĪ±Ī»ĻŒ", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻ€Ī¹ĪŗĻĻĻ‰ĻƒĪ·Ļ‚/ĪµĻ€Ī¹ĻƒĪŗĪµĻ…Ī®Ļ‚ Ļ„Ī·Ļ‚ Ī±ĪŗĪµĻĪ±Ī¹ĻŒĻ„Ī·Ļ„Ī±Ļ‚ Ļ„ĪæĻ… ĻƒĻ‡Ī®Ī¼Ī±Ļ„ĪæĻ‚ (Ī£Ļ†Ī¬Ī»Ī¼Ī± # %1$s)", - "Text extracted" : "Ī•Ī¾Ī±Ī³Ļ‰Ī³Ī® ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ·Ļ‚ Ļ€ĪµĪ“ĪÆĪæĻ… - Ī¤Īæ Ļ€ĻĻ‰Ļ„ĻŒĻ„Ļ…Ļ€Īæ Ī­Ī³Ī³ĻĪ±Ļ†Īæ Ī“ĪµĪ½ Ī¼Ļ€ĪæĻĪµĪÆ Ī½Ī± Ī²ĻĪµĪøĪµĪÆ - (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error during commit (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ Ļ…Ļ€ĪæĪ²ĪæĪ»Ī® (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Error while updating field (Error #%1$s)" : "Ī£Ļ†Ī¬Ī»Ī¼Ī± ĪŗĪ±Ļ„Ī¬ Ļ„Ī·Ī½ ĪµĪ½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· Ļ€ĪµĪ“ĪÆĪæĻ… (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Document updated" : "Ī•Ī½Ī·Ī¼Ī­ĻĻ‰ĻƒĪ· ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "Found it" : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ", - "Found something, but not what was expected." : "Ī’ĻĪ­ĪøĪ·ĪŗĪµ ĪŗĪ¬Ļ„Ī¹, Ī±Ī»Ī»Ī¬ ĻŒĻ‡Ī¹ Ī±Ļ…Ļ„ĻŒ Ļ€ĪæĻ… Ī±Ī½Ī±Ī¼ĪµĪ½ĻŒĻ„Ī±Ī½.", - "Cannot find any document" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± ĪµĻĻĪµĻƒĪ·Ļ‚ ĪæĻ€ĪæĪ¹ĪæĻ…Ī“Ī®Ļ€ĪæĻ„Īµ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ī— Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€Ī­Ļ„Ļ…Ļ‡Īµ. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī¹Ļ‚ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ Ļ„ĪæĻ… Solr ĪµĪ¾Ļ…Ļ€Ī·ĻĪµĻ„Ī·Ļ„Ī® ĻƒĪ±Ļ‚. (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Test-document deleted" : "ĪˆĪ³Ī³ĻĪ±Ļ†Īæ Ī“ĪæĪŗĪ¹Ī¼Ī®Ļ‚ Ī“Ī¹Ī±Ī³ĻĪ¬Ļ†Ī·ĪŗĪµ", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ī‘Ī“Ļ…Ī½Ī±Ī¼ĪÆĪ± Ī“Ī¹Ī±Ī³ĻĪ±Ļ†Ī®Ļ‚ Ļ„ĪæĻ… Ī“ĪæĪŗĪ¹Ī¼Ī±ĻƒĻ„Ī¹ĪŗĪæĻ ĪµĪ³Ī³ĻĪ¬Ļ†ĪæĻ…. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĪ»Ī­Ī³Ī¾Ļ„Īµ Ļ„Ī· Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ· Ļ„ĪæĻ… Ī“Ī¹Ī±ĪŗĪæĪ¼Ī¹ĻƒĻ„Ī® Solr (Ī£Ļ†Ī¬Ī»Ī¼Ī± #%1$s)", - "Your configuration has been saved" : "ĪŸĪ¹ ĻĻ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚ ĻƒĪ±Ļ‚ Ī±Ļ€ĪæĪøĪ·ĪŗĪµĻĻ„Ī·ĪŗĪ±Ī½", - "Configuration could not be saved. Please reload this page." : "Ī‘Ļ€ĪæĻ„Ļ…Ļ‡ĪÆĪ± Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ Ī“Ī¹Ī±Ī¼ĻŒĻĻ†Ļ‰ĻƒĪ·Ļ‚. Ī Ī±ĻĪ±ĪŗĪ±Ī»ĪæĻĪ¼Īµ ĪµĻ€Ī±Ī½Ī±Ļ†ĪæĻĻ„ĻŽĻƒĻ„Īµ Ī±Ļ…Ļ„Ī® Ļ„Ī· ĻƒĪµĪ»ĪÆĪ“Ī±.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Ī‘Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ļ€Ī»Ī®ĻĪæĻ…Ļ‚ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ…)", - "Specify the address of your Solr, and the name of the core to use." : "Ī ĻĪæĻƒĪ“Ī¹ĪæĻĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ī“Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚, ĪŗĪ±Ī¹ Ļ„Īæ ĪæĪ½ĪæĪ¼Ī± Ļ„ĪæĻ… Ļ€Ļ…ĻĪ®Ī½Ī± Ļ€ĻĪæĻ‚ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ·. ", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ī‘Ī½ Ī“ĪµĪ½ ĪµĪŗĻ„ĪµĪ»ĪµĪÆĻ„Ī±Ī¹ ĪŗĪ¬Ļ€ĪæĪ¹Īæ Solr servlet, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ„ĪæĻ…Ļ‚ ĪæĪ“Ī·Ī³ĪæĻĻ‚ ĪµĪ³ĪŗĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ·Ļ‚ ĻƒĻ„Īæ wiki. ", - "You can also find more information there about this interface." : "ĪœĻ€ĪæĻĪµĪÆĻ„Īµ ĪµĻ€ĪÆĻƒĪ·Ļ‚ ĪµĪŗĪµĪÆ Ī½Ī± Ī²ĻĪµĪÆĻ„Īµ Ļ€ĪµĻĪ¹ĻƒĻƒĻŒĻ„ĪµĻĪµĻ‚ Ļ€Ī»Ī·ĻĪæĻ†ĪæĻĪÆĪµĻ‚ Ī³Ī¹Ī± Ī±Ļ…Ļ„Ī® Ļ„Ī·Ī½ Ī“Ī¹ĪµĻ€Ī±Ļ†Ī®.", - "Saving" : "Ī‘Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·", - "Settings" : "Ī”Ļ…ĪøĪ¼ĪÆĻƒĪµĪ¹Ļ‚", - "Nextant version:" : "ĪˆĪŗĪ“ĪæĻƒĪ· Nextant:", - "Address of your Solr servlet:" : "Ī”Ī¹ĪµĻĪøĻ…Ī½ĻƒĪ· Ļ„ĪæĻ… servlet Ļ„ĪæĻ… Solr ĻƒĪ±Ļ‚:", - "Core:" : "Ī Ļ…ĻĪ®Ī½Ī±Ļ‚:", - "Timeout (in seconds):" : "Ī§ĻĪæĪ½Ī¹ĪŗĻŒ ĻŒĻĪ¹Īæ (Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±):", - "Test and Save" : "Ī”ĪæĪŗĪ¹Ī¼Ī® ĪŗĪ±Ī¹ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·", - "Indexing Files" : "ĪšĪ±Ļ„Ī±Ī»ĪæĪ³ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī±ĻĻ‡ĪµĪÆĻ‰Ī½", - "Maximum File Size (Mb):" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Īæ Ī¼Ī­Ī³ĪµĪøĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĪæĻ… (Mb):", - "Edit your filters" : "Ī•Ļ€ĪµĪ¾ĪµĻĪ³Ī±ĻƒĪÆĪ± Ļ„Ļ‰Ī½ Ļ†ĪÆĪ»Ļ„ĻĻ‰Ī½ ĻƒĪ±Ļ‚", - "Index Files Tree:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī¹ĪµĻĪ±ĻĻ‡ĪÆĪ±Ļ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Disable default search from Files" : "Ī‘Ļ€ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹ĪµĪÆĻƒĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĪæĪµĻ€Ī¹Ī»ĪµĪ³Ī¼Ī­Ī½Ī· Ī±Ī½Ī±Ī¶Ī®Ļ„Ī·ĻƒĪ· Ī±Ļ€ĻŒ Ļ„Ī± Ī‘ĻĻ‡ĪµĪÆĪ±", - "Index File Trash:" : "Ī•Ļ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ī‘ĻĻ‡ĪµĪÆĪæĻ… Ī‘Ļ€ĪæĻĻĪ¹Ī¼Ī¬Ļ„Ļ‰Ī½:", - "Index Public Links:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· Ī“Ī·Ī¼ĪæĻƒĪÆĻ‰Ī½ ĻƒĻ…Ī½Ī“Ī­ĻƒĪ¼Ļ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Index Federated Shares:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ„Ļ‰Ī½ federated ĪŗĪæĪ¹Ī½ĪæĻ‡ĻĪ®ĻƒĻ„Ļ‰Ī½:", - "Index External Storages:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪµĪ¾Ļ‰Ļ„ĪµĻĪ¹ĪŗĻŽĪ½ Ļ‡ĻŽĻĻ‰Ī½ Ī±Ļ€ĪæĪøĪ®ĪŗĪµĻ…ĻƒĪ·Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Index Encrypted Files:" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĪŗĻĻ…Ļ€Ļ„ĪæĪ³ĻĪ±Ļ†Ī·Ī¼Ī­Ī½Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Last index:" : "Ī¤ĪµĪ»ĪµĻ…Ļ„Ī±ĪÆĪæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ:", - "Indexing Bookmarks" : "Ī ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪ¹ĪŗĻ„ĻŽĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ", - "The App Bookmarks is not installed/enabled." : "Ī— ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks Ī“ĪµĪ½ ĪµĪÆĪ½Ī±Ī¹ ĪµĪ³ĪŗĪ±Ļ„ĪµĻƒĻ„Ī·Ī¼Ī­Ī½Ī·/ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī·Ī¼Ī­Ī½Ī·.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Ī— \"ĪµĻ†Ī±ĻĪ¼ĪæĪ³Ī® Bookmarks\" ĪµĪ½ĪµĻĪ³ĪæĻ€ĪæĪ¹Ī®ĪøĪ·ĪŗĪµ, ĪæĪ¹ ĻƒĪµĪ»Ī¹Ī“ĪæĪ“ĪµĪÆĪŗĻ„ĪµĻ‚ ĪøĪ± Ļ€ĻĪæĻƒĻ„ĪµĪøĪæĻĪ½ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ.", - "Checking" : "Ī“ĪÆĪ½ĪµĻ„Ī±Ī¹ Ī­Ī»ĪµĪ³Ļ‡ĪæĻ‚ ", - "Nextant Status" : "ĪšĪ±Ļ„Ī¬ĻƒĻ„Ī±ĻƒĪ· Nextant ", - "Resource Level:" : "Ī•Ļ€ĪÆĻ€ĪµĪ“Īæ Ļ€ĻŒĻĻ‰Ī½:", - "Higher performance" : "ĪœĪµĪ³Ī±Ī»ĻĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "High performance" : "ĪœĪµĪ³Ī¬Ī»Ī· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ· ", - "Medium performance" : "ĪœĪµĻƒĪ±ĪÆĪ± Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Low performance" : "Ī§Ī±Ī¼Ī·Ī»Ī® Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Lower performance" : "Ī§Ī±Ī¼Ī·Ī»ĻŒĻ„ĪµĻĪ· Ī±Ļ€ĻŒĪ“ĪæĻƒĪ·", - "Disabled" : "Ī‘Ī½ĪµĪ½ĪµĻĪ³ĻŒ", - "Using Semaphore" : "Ī§ĻĪ®ĻƒĪ·Ī¼ĪæĻ€ĪæĪÆĪ·ĻƒĪ· Ī£Ī·Ī¼Ī±Ļ„ĪæĻ†ĻŒĻĻ‰Ī½ ", - "Using Database" : "Ī§ĻĪ®ĻƒĪ· Ī²Ī¬ĻƒĪ·Ļ‚ Ī“ĪµĪ“ĪæĪ¼Ī­Ī½Ļ‰Ī½", - "Minimum Background Index delay:" : "Ī•Ī»Ī¬Ļ‡Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:", - "hours" : "ĻŽĻĪµĻ‚", - "Maximum Background Index delay:" : "ĪœĪ­Ī³Ī¹ĻƒĻ„Ī· ĪŗĪ±ĪøĻ…ĻƒĻ„Ī­ĻĪ·ĻƒĪ· ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ€Ī±ĻĪ±ĻƒĪŗĪ·Ī½ĪÆĪæĻ…:", - "days" : "Ī·Ī¼Ī­ĻĪµĻ‚", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ ĪµĪ³Ī³ĻĪ¬Ļ†Ļ‰Ī½:", - "Number of segments:" : "Ī‘ĻĪ¹ĪøĪ¼ĻŒĻ‚ Ļ„Ī¼Ī·Ī¼Ī¬Ļ„Ļ‰Ī½:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "ĻƒĻ…Ī½ĪÆĻƒĻ„Ī±Ļ„Ī±Ī¹ Ī½Ī± ĪŗĪ¬Ī½ĪµĻ„Īµ Ļ„Ī·Ī½ Ļ€ĻĻŽĻ„Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· Ļ„Ļ‰Ī½ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ ĻƒĪ±Ļ‚ ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ Ļ‡ĻĪ·ĻƒĪ¹Ī¼ĪæĻ€ĪæĪ¹ĻŽĪ½Ļ„Ī±Ļ‚ Ļ„Ī·Ī½ ĪµĪ½Ļ„ĪæĪ»Ī® ./occ nextant:indexĀ ", - "However, you can force it to be started as a background process." : "Ī£Īµ ĪŗĪ¬ĪøĪµ Ļ€ĪµĻĪÆĻ€Ļ„Ļ‰ĻƒĪ·, Ī¼Ļ€ĪæĻĪµĪÆĻ„Īµ Ī½Ī± Ļ„Īæ ĪµĪ¾Ī±Ī½Ī±Ī³ĪŗĪ¬ĻƒĪµĻ„Īµ Ī½Ī± Ī¾ĪµĪŗĪ¹Ī½Ī¬ ĻƒĪ±Ī½ Ī“Ī¹ĪµĻĪ³Ī±ĻƒĪÆĪ± ĻƒĻ„Īæ Ļ€Ī±ĻĪ±ĻƒĪŗĪ®Ī½Ī¹Īæ.", - "Force first index as a cronjob" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼ĻŒĻ‚ Ļ€ĻĻŽĻ„ĪæĻ… ĪµĻ…ĻĪµĻ„Ī·ĻĪÆĪæĻ… Ļ‰Ļ‚ cronjob", - "Force index" : "Ī•Ī¾Ī±Ī½Ī±Ī³ĪŗĪ±ĻƒĪ¼Ī­Ī½Ī· Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ", - "Indexing is scheduled within the next few hours (Cron)" : "Ī— Ļ€ĻĪæĻƒĪøĪ®ĪŗĪ· ĻƒĻ„Īæ ĪµĻ…ĻĪµĻ„Ī®ĻĪ¹Īæ ĪµĪÆĪ½Ī±Ī¹ Ļ€ĻĪæĪ³ĻĪ±Ī¼Ī¼Ī±Ļ„Ī¹ĻƒĪ¼Ī­Ī½Ī· Ī³Ī¹Ī± Ļ„Ī¹Ļ‚ ĪµĻ€ĻŒĪ¼ĪµĪ½ĪµĻ‚ Ī»ĪÆĪ³ĪµĻ‚ ĻŽĻĪµĻ‚ (Cron)", - "Indexing in progress" : "Ī•Ļ…ĻĪµĻ„Ī·ĻĪ¹ĪæĻ€ĪæĪÆĪ·ĻƒĪ· ĻƒĪµ ĪµĪ¾Ī­Ī»Ī¹Ī¾Ī·", - "Type of files to extract" : "Ī¤ĻĻ€ĪæĻ‚ Ī±ĻĻ‡ĪµĪÆĻ‰Ī½ Ī³Ī¹Ī± ĪµĪ¾Ī±Ī³Ļ‰Ī³Ī®", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Ī‘ĻĻ‡ĪµĪÆĪæ ĪŗĪµĪ¹Ī¼Ī­Ī½ĪæĻ… (ĪŗĪµĪÆĪ¼ĪµĪ½Īæ, html, Ļ…Ļ€ĻŒĻ„Ī¹Ļ„Ī»ĪæĪ¹, Ļ€Ī·Ī³Ī±ĪÆĪæĻ‚ ĪŗĻŽĪ“Ī¹ĪŗĪ±Ļ‚, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "ĪˆĪ³Ī³ĻĪ±Ļ†Ī± Ī³ĻĪ±Ļ†ĪµĪÆĪæĻ…", - "Image (JPEG, TIFF)" : "Ī•Ī¹ĪŗĻŒĪ½Ī± (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ī‘ĻĻ‡ĪµĪÆĪæ Ī®Ļ‡ĪæĻ… (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Ī•Ļ€ĪµĪŗĻ„Ī¬ĻƒĪµĪ¹Ļ‚ Ļ€ĪæĻ… ĪøĪ­Ī»ĪµĻ„Īµ Ī½Ī± Ī±Ī³Ī½ĪæĪæĻĪ½Ļ„Ī±Ī¹ (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/en_GB.js b/l10n/en_GB.js deleted file mode 100644 index a83a1cb..0000000 --- a/l10n/en_GB.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Go to folder", - "never" : "never", - "Nextant is not configured yet" : "Nextant is not configured yet", - "Ping querying your Solr Server" : "Ping querying your Solr Server", - "Verifying Schema integrity" : "Verifying Schema integrity", - "Test simple text extract query" : "Test simple text extract query", - "Test update document query" : "Test update document query", - "Test search query" : "Test search query", - "Removing the test document" : "Removing the test document", - "All test went fine. Saving your configuration" : "All test went fine. Saving your configuration", - "Address-format incorrect" : "Address-format incorrect", - "Apache Solr is up, running and responding to ping query" : "Apache Solr is up, running and responding to ping query", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr is not responding to ping query (Error #%1$s)", - "Schema is fine" : "Schema is fine", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Unable to verify/fix schema integrity (Error #%1$s)", - "Text extracted" : "Text extracted", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Error updating field - Can't find original document - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error during commit (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Error while updating field (Error #%1$s)", - "Document updated" : "Document updated", - "Found it" : "Found it", - "Found something, but not what was expected." : "Found something, but not what was expected.", - "Cannot find any document" : "Cannot find any document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)", - "Test-document deleted" : "Test-document deleted", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)", - "Your configuration has been saved" : "Your configuration has been saved", - "Configuration could not be saved. Please reload this page." : "Configuration could not be saved. Please reload this page.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Specify the address of your Solr, and the name of the core to use.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "If you do not have a Solr servlet running, installation-guides can be found on the wiki.", - "You can also find more information there about this interface." : "You can also find more information there about this interface.", - "Saving" : "Saving", - "Settings" : "Settings", - "Nextant version:" : "Nextant version:", - "Address of your Solr servlet:" : "Address of your Solr servlet:", - "Core:" : "Core:", - "Timeout (in seconds):" : "Timeout (in seconds):", - "Test and Save" : "Test and Save", - "Indexing Files" : "Indexing Files", - "Maximum File Size (Mb):" : "Maximum File Size (Mb):", - "Edit your filters" : "Edit your filters", - "Index Files Tree:" : "Index Files Tree:", - "Disable default search from Files" : "Disable default search from Files", - "Index File Trash:" : "Index File Trash:", - "Index Public Links:" : "Index Public Links:", - "Index Federated Shares:" : "Index Federated Shares:", - "Index External Storages:" : "Index External Storages:", - "Index Encrypted Files:" : "Index Encrypted Files:", - "Last index:" : "Last index:", - "Indexing Bookmarks" : "Indexing Bookmarks", - "The App Bookmarks is not installed/enabled." : "The App Bookmarks is not installed/enabled.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bookmarks\" enabled, your bookmarks will be indexed.", - "Checking" : "Checking", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Resource Level:", - "Higher performance" : "Higher performance", - "High performance" : "High performance", - "Medium performance" : "Medium performance", - "Low performance" : "Low performance", - "Lower performance" : "Lower performance", - "Live Index:" : "Live Index:", - "Disabled" : "Disabled", - "Using Semaphore" : "Using Semaphore", - "Using Database" : "Using Database", - "Minimum Background Index delay:" : "Minimum Background Index delay:", - "hours" : "hours", - "Maximum Background Index delay:" : "Maximum Background Index delay:", - "days" : "days", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Number of documents:", - "Number of segments:" : "Number of segments:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "it is recommended to do the very first indexing of your files using the ./occ nextant:index command.", - "However, you can force it to be started as a background process." : "However, you can force it to be started as a background process.", - "Force first index as a cronjob" : "Force first index as a cronjob", - "Force index" : "Force index", - "Indexing is scheduled within the next few hours (Cron)" : "Indexing is scheduled within the next few hours (Cron)", - "Indexing in progress" : "Indexing in progress", - "Type of files to extract" : "Type of files to extract", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Text File (Text, HTML, Subtitles, Source Codeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Documents", - "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audio File (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions you wish to ignore (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/en_GB.json b/l10n/en_GB.json deleted file mode 100644 index ae23c54..0000000 --- a/l10n/en_GB.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Go to folder", - "never" : "never", - "Nextant is not configured yet" : "Nextant is not configured yet", - "Ping querying your Solr Server" : "Ping querying your Solr Server", - "Verifying Schema integrity" : "Verifying Schema integrity", - "Test simple text extract query" : "Test simple text extract query", - "Test update document query" : "Test update document query", - "Test search query" : "Test search query", - "Removing the test document" : "Removing the test document", - "All test went fine. Saving your configuration" : "All test went fine. Saving your configuration", - "Address-format incorrect" : "Address-format incorrect", - "Apache Solr is up, running and responding to ping query" : "Apache Solr is up, running and responding to ping query", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr is not responding to ping query (Error #%1$s)", - "Schema is fine" : "Schema is fine", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Unable to verify/fix schema integrity (Error #%1$s)", - "Text extracted" : "Text extracted", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Error updating field - Can't find original document - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error during commit (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Error while updating field (Error #%1$s)", - "Document updated" : "Document updated", - "Found it" : "Found it", - "Found something, but not what was expected." : "Found something, but not what was expected.", - "Cannot find any document" : "Cannot find any document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)", - "Test-document deleted" : "Test-document deleted", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)", - "Your configuration has been saved" : "Your configuration has been saved", - "Configuration could not be saved. Please reload this page." : "Configuration could not be saved. Please reload this page.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Specify the address of your Solr, and the name of the core to use.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "If you do not have a Solr servlet running, installation-guides can be found on the wiki.", - "You can also find more information there about this interface." : "You can also find more information there about this interface.", - "Saving" : "Saving", - "Settings" : "Settings", - "Nextant version:" : "Nextant version:", - "Address of your Solr servlet:" : "Address of your Solr servlet:", - "Core:" : "Core:", - "Timeout (in seconds):" : "Timeout (in seconds):", - "Test and Save" : "Test and Save", - "Indexing Files" : "Indexing Files", - "Maximum File Size (Mb):" : "Maximum File Size (Mb):", - "Edit your filters" : "Edit your filters", - "Index Files Tree:" : "Index Files Tree:", - "Disable default search from Files" : "Disable default search from Files", - "Index File Trash:" : "Index File Trash:", - "Index Public Links:" : "Index Public Links:", - "Index Federated Shares:" : "Index Federated Shares:", - "Index External Storages:" : "Index External Storages:", - "Index Encrypted Files:" : "Index Encrypted Files:", - "Last index:" : "Last index:", - "Indexing Bookmarks" : "Indexing Bookmarks", - "The App Bookmarks is not installed/enabled." : "The App Bookmarks is not installed/enabled.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bookmarks\" enabled, your bookmarks will be indexed.", - "Checking" : "Checking", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Resource Level:", - "Higher performance" : "Higher performance", - "High performance" : "High performance", - "Medium performance" : "Medium performance", - "Low performance" : "Low performance", - "Lower performance" : "Lower performance", - "Live Index:" : "Live Index:", - "Disabled" : "Disabled", - "Using Semaphore" : "Using Semaphore", - "Using Database" : "Using Database", - "Minimum Background Index delay:" : "Minimum Background Index delay:", - "hours" : "hours", - "Maximum Background Index delay:" : "Maximum Background Index delay:", - "days" : "days", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Number of documents:", - "Number of segments:" : "Number of segments:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "it is recommended to do the very first indexing of your files using the ./occ nextant:index command.", - "However, you can force it to be started as a background process." : "However, you can force it to be started as a background process.", - "Force first index as a cronjob" : "Force first index as a cronjob", - "Force index" : "Force index", - "Indexing is scheduled within the next few hours (Cron)" : "Indexing is scheduled within the next few hours (Cron)", - "Indexing in progress" : "Indexing in progress", - "Type of files to extract" : "Type of files to extract", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Text File (Text, HTML, Subtitles, Source Codeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office Documents", - "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audio File (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions you wish to ignore (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/es.js b/l10n/es.js deleted file mode 100644 index 8d96a7f..0000000 --- a/l10n/es.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ir a carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aun no esta configurado", - "Ping querying your Solr Server" : "Consulta ping a su servidor Solr", - "Verifying Schema integrity" : "ComprobaciĆ³n de integridad de esquema", - "Test simple text extract query" : "Probar la consulta de extracciĆ³n de texto simple", - "Test update document query" : "Probar la consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminar el documento de prueba", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron correctas. Guardando configuraciĆ³n", - "Address-format incorrect" : "Formato de direcciĆ³n incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr esta activo, ejecutĆ”ndose y respondiendo a la consulta ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no esta respondiendo a la consulta ping (Error #%1$s)", - "Schema is fine" : "El esquema es correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No se ha podido verificar/arreglar la integridad del esquema (Error nĀŗ %1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la extracciĆ³n. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Error al actualizar el campo. No se pudo encontrar el documento original (Error nĀŗ %1$s)", - "Error during commit (Error #%1$s)" : "Error durante la integraciĆ³n (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Error al actualizar campo (Error nĀŗ %1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontrĆ©", - "Found something, but not what was expected." : "Se encontrĆ³ algo, pero no lo que se esperaba", - "Cannot find any document" : "No se puede encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "La bĆŗsqueda fallĆ³. Por favor revise la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Test-document deleted" : "Documento de prueba borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No se pudo borrar el documento de prueba. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)", - "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No se pudo guardar la configuraciĆ³n. Por favor, vuelve a cargar esta pĆ”gina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Especifique la direcciĆ³n de su servidor Solr, y el nombre del nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr funcionando, se pueden encontrar guĆ­as de instalaciĆ³n en la wiki.", - "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n allĆ­ sobre esta interfaz.", - "Saving" : "Guardando", - "Settings" : "Ajustes", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "DesconexiĆ³n (en segundos):", - "Test and Save" : "Probar y guardar", - "Indexing Files" : "Analizar archivos", - "Maximum File Size (Mb):" : "TamaƱo mĆ”ximo de archivo (Mb):", - "Edit your filters" : "Edite sus filtros", - "Index Files Tree:" : "Ɓrbol de archivos indexados:", - "Disable default search from Files" : "Desactivar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar papelera de archivos:", - "Index Public Links:" : "Enlaces pĆŗblicos indexados:", - "Index Federated Shares:" : "Recursos compartidos federados indexados:", - "Index External Storages:" : "Almacenamientos externos indexados:", - "Index Encrypted Files:" : "Archivos cifrados indexados:", - "Last index:" : "ƚltimo indexado:", - "Indexing Bookmarks" : "Analizar marcadores", - "The App Bookmarks is not installed/enabled." : "La aplicaciĆ³n Bookmarks no esta instalada/disponible.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La app Marcadores estĆ” activada, tus marcadores serĆ”n indexados.", - "Checking" : "Revisando", - "Nextant Status" : "Estado de Nextant", - "Resource Level:" : "Nivel de recurso:", - "Higher performance" : "Rendimiento mĆ”s alto", - "High performance" : "Alto rendimiento", - "Medium performance" : "Rendimiento medio", - "Low performance" : "Rendimiento bajo", - "Lower performance" : "Rendimiento mas bajo", - "Live Index:" : "ƍndice en vivo:", - "Disabled" : "Deshabilitado", - "Using Semaphore" : "Usar Semaphore", - "Using Database" : "Usar base de datos", - "Minimum Background Index delay:" : "Retraso mĆ­nimo de indexado en segundo plano:", - "hours" : "horas", - "Maximum Background Index delay:" : "Retraso mĆ”ximo del indexado en segundo plano:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nextcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Se recomienda realizar el primer indexado de tus arcihvo usando el comando ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Sin emabrgo, puede forzar su inicio como un proceso en segundo plano.", - "Force first index as a cronjob" : "Forzar primer anĆ”lisis como un trabajo cron", - "Force index" : "Forzar anĆ”lisis", - "Indexing is scheduled within the next few hours (Cron)" : "El indexado estĆ” programado dentro de las prĆ³ximas horas (cron)", - "Indexing in progress" : "AnĆ”lisis en proceso", - "Type of files to extract" : "Tipos de archivos para extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de texto (HTML, texto, subtĆ­tulos, cĆ³digo fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos de oficina", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que le gustarĆ­a ignorar (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/es.json b/l10n/es.json deleted file mode 100644 index 6e64226..0000000 --- a/l10n/es.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Ir a carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aun no esta configurado", - "Ping querying your Solr Server" : "Consulta ping a su servidor Solr", - "Verifying Schema integrity" : "ComprobaciĆ³n de integridad de esquema", - "Test simple text extract query" : "Probar la consulta de extracciĆ³n de texto simple", - "Test update document query" : "Probar la consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminar el documento de prueba", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron correctas. Guardando configuraciĆ³n", - "Address-format incorrect" : "Formato de direcciĆ³n incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr esta activo, ejecutĆ”ndose y respondiendo a la consulta ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no esta respondiendo a la consulta ping (Error #%1$s)", - "Schema is fine" : "El esquema es correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No se ha podido verificar/arreglar la integridad del esquema (Error nĀŗ %1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "FallĆ³ la extracciĆ³n. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Error al actualizar el campo. No se pudo encontrar el documento original (Error nĀŗ %1$s)", - "Error during commit (Error #%1$s)" : "Error durante la integraciĆ³n (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Error al actualizar campo (Error nĀŗ %1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontrĆ©", - "Found something, but not what was expected." : "Se encontrĆ³ algo, pero no lo que se esperaba", - "Cannot find any document" : "No se puede encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "La bĆŗsqueda fallĆ³. Por favor revise la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Test-document deleted" : "Documento de prueba borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No se pudo borrar el documento de prueba. Por favor, comprueba la configuraciĆ³n de tu servidor Solr (Error nĀŗ %1$s)", - "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No se pudo guardar la configuraciĆ³n. Por favor, vuelve a cargar esta pĆ”gina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Especifique la direcciĆ³n de su servidor Solr, y el nombre del nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr funcionando, se pueden encontrar guĆ­as de instalaciĆ³n en la wiki.", - "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n allĆ­ sobre esta interfaz.", - "Saving" : "Guardando", - "Settings" : "Ajustes", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "DesconexiĆ³n (en segundos):", - "Test and Save" : "Probar y guardar", - "Indexing Files" : "Analizar archivos", - "Maximum File Size (Mb):" : "TamaƱo mĆ”ximo de archivo (Mb):", - "Edit your filters" : "Edite sus filtros", - "Index Files Tree:" : "Ɓrbol de archivos indexados:", - "Disable default search from Files" : "Desactivar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar papelera de archivos:", - "Index Public Links:" : "Enlaces pĆŗblicos indexados:", - "Index Federated Shares:" : "Recursos compartidos federados indexados:", - "Index External Storages:" : "Almacenamientos externos indexados:", - "Index Encrypted Files:" : "Archivos cifrados indexados:", - "Last index:" : "ƚltimo indexado:", - "Indexing Bookmarks" : "Analizar marcadores", - "The App Bookmarks is not installed/enabled." : "La aplicaciĆ³n Bookmarks no esta instalada/disponible.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La app Marcadores estĆ” activada, tus marcadores serĆ”n indexados.", - "Checking" : "Revisando", - "Nextant Status" : "Estado de Nextant", - "Resource Level:" : "Nivel de recurso:", - "Higher performance" : "Rendimiento mĆ”s alto", - "High performance" : "Alto rendimiento", - "Medium performance" : "Rendimiento medio", - "Low performance" : "Rendimiento bajo", - "Lower performance" : "Rendimiento mas bajo", - "Live Index:" : "ƍndice en vivo:", - "Disabled" : "Deshabilitado", - "Using Semaphore" : "Usar Semaphore", - "Using Database" : "Usar base de datos", - "Minimum Background Index delay:" : "Retraso mĆ­nimo de indexado en segundo plano:", - "hours" : "horas", - "Maximum Background Index delay:" : "Retraso mĆ”ximo del indexado en segundo plano:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nextcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Se recomienda realizar el primer indexado de tus arcihvo usando el comando ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Sin emabrgo, puede forzar su inicio como un proceso en segundo plano.", - "Force first index as a cronjob" : "Forzar primer anĆ”lisis como un trabajo cron", - "Force index" : "Forzar anĆ”lisis", - "Indexing is scheduled within the next few hours (Cron)" : "El indexado estĆ” programado dentro de las prĆ³ximas horas (cron)", - "Indexing in progress" : "AnĆ”lisis en proceso", - "Type of files to extract" : "Tipos de archivos para extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de texto (HTML, texto, subtĆ­tulos, cĆ³digo fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos de oficina", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que le gustarĆ­a ignorar (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/es_AR.js b/l10n/es_AR.js deleted file mode 100644 index 85ccad8..0000000 --- a/l10n/es_AR.js +++ /dev/null @@ -1,89 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ir a la carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aĆŗn no ha sido configurado", - "Ping querying your Solr Server" : "Haciendo una consulta ping a su servidor Solr", - "Verifying Schema integrity" : "Verificando la integidad del esquema", - "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto", - "Test update document query" : "Probar consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminando el documento de pruebas", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando su configuraciĆ³n", - "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consutlas de ping (Error #%1$s)", - "Schema is fine" : "Schema estĆ” correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Favor de verficiar la configuraciĆ³n en su servidor Solr (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede contrar el documento orginal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontramos", - "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ", - "Cannot find any document" : "No se pudo encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Test-document deleted" : "El documento de pruebas fue borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Favor de volver a cargar esta pĆ”gina. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)", - "Specify the address of your Solr, and the name of the core to use." : "Especificar la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.", - "You can also find more information there about this interface." : "TambiĆ©n puede encontrar mĆ”s informaciĆ³n acerca de esta interface. ", - "Saving" : "Guardando", - "Settings" : "Configuraciones ", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de su servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Tiempo de expiraciĆ³n (en segundos):", - "Test and Save" : "Probar y Guardar", - "Indexing Files" : "Indexando Archivos", - "Maximum File Size (Mb):" : "TamaƱo de archivos mĆ”ximo (Mb):", - "Edit your filters" : "Edite sus filtros", - "Index Files Tree:" : "Indexar Ɓrbol de Archivos:", - "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar Archivos de Basura:", - "Index Public Links:" : "Indexar Links PĆŗblicas:", - "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:", - "Index External Storages:" : "Indexar Almacenamiento Externo:", - "Index Encrypted Files:" : "Indexar Archivos Encriptados:", - "Last index:" : "ƚltima Ć­ndexaciĆ³n:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada", - "Checking" : "Verificando", - "Nextant Status" : "Estatus de Nextant", - "Resource Level:" : "Nivel de recursos:", - "Higher performance" : "DesempeƱo muy alto", - "High performance" : "DesempeƱo alto", - "Medium performance" : "DesempeƱo medio", - "Low performance" : "DesempeƱo bajo", - "Lower performance" : "DesempeƱo muy bajo", - "Live Index:" : "ƍndice activo:", - "Disabled" : "Deshabilitar", - "Using Semaphore" : "Usando Semaphore", - "Using Database" : "Usando base de datos", - "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de indexaciĆ³n de fondo:", - "hours" : "horas", - "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de indexaciĆ³n de fondo:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nexcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "le recomendamos hacer la primera indexaciĆ³n de sus archivos usando el comando ./occ nextant:index ", - "However, you can force it to be started as a background process." : "Sin embargo, usted la puede forzar para que inicie como un proceso de segundo plano. ", - "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada", - "Force index" : "Forzar indexaciĆ³n", - "Indexing in progress" : "IndexaciĆ³n en curso", - "Type of files to extract" : "Tipo de archivos a extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos fuera de lĆ­nea", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/es_AR.json b/l10n/es_AR.json deleted file mode 100644 index 2ba0db0..0000000 --- a/l10n/es_AR.json +++ /dev/null @@ -1,87 +0,0 @@ -{ "translations": { - "Go to folder" : "Ir a la carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aĆŗn no ha sido configurado", - "Ping querying your Solr Server" : "Haciendo una consulta ping a su servidor Solr", - "Verifying Schema integrity" : "Verificando la integidad del esquema", - "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto", - "Test update document query" : "Probar consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminando el documento de pruebas", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando su configuraciĆ³n", - "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consutlas de ping (Error #%1$s)", - "Schema is fine" : "Schema estĆ” correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Favor de verficiar la configuraciĆ³n en su servidor Solr (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede contrar el documento orginal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontramos", - "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ", - "Cannot find any document" : "No se pudo encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Test-document deleted" : "El documento de pruebas fue borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Favor de verificar la configuraciĆ³n de su servidor Solr (Error #%1$s)", - "Your configuration has been saved" : "Su configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Favor de volver a cargar esta pĆ”gina. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)", - "Specify the address of your Solr, and the name of the core to use." : "Especificar la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.", - "You can also find more information there about this interface." : "TambiĆ©n puede encontrar mĆ”s informaciĆ³n acerca de esta interface. ", - "Saving" : "Guardando", - "Settings" : "Configuraciones ", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de su servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Tiempo de expiraciĆ³n (en segundos):", - "Test and Save" : "Probar y Guardar", - "Indexing Files" : "Indexando Archivos", - "Maximum File Size (Mb):" : "TamaƱo de archivos mĆ”ximo (Mb):", - "Edit your filters" : "Edite sus filtros", - "Index Files Tree:" : "Indexar Ɓrbol de Archivos:", - "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar Archivos de Basura:", - "Index Public Links:" : "Indexar Links PĆŗblicas:", - "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:", - "Index External Storages:" : "Indexar Almacenamiento Externo:", - "Index Encrypted Files:" : "Indexar Archivos Encriptados:", - "Last index:" : "ƚltima Ć­ndexaciĆ³n:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada", - "Checking" : "Verificando", - "Nextant Status" : "Estatus de Nextant", - "Resource Level:" : "Nivel de recursos:", - "Higher performance" : "DesempeƱo muy alto", - "High performance" : "DesempeƱo alto", - "Medium performance" : "DesempeƱo medio", - "Low performance" : "DesempeƱo bajo", - "Lower performance" : "DesempeƱo muy bajo", - "Live Index:" : "ƍndice activo:", - "Disabled" : "Deshabilitar", - "Using Semaphore" : "Usando Semaphore", - "Using Database" : "Usando base de datos", - "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de indexaciĆ³n de fondo:", - "hours" : "horas", - "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de indexaciĆ³n de fondo:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nexcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "le recomendamos hacer la primera indexaciĆ³n de sus archivos usando el comando ./occ nextant:index ", - "However, you can force it to be started as a background process." : "Sin embargo, usted la puede forzar para que inicie como un proceso de segundo plano. ", - "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada", - "Force index" : "Forzar indexaciĆ³n", - "Indexing in progress" : "IndexaciĆ³n en curso", - "Type of files to extract" : "Tipo de archivos a extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos fuera de lĆ­nea", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/es_MX.js b/l10n/es_MX.js deleted file mode 100644 index 2787264..0000000 --- a/l10n/es_MX.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ir a la carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aĆŗn no estĆ” configurado", - "Ping querying your Solr Server" : "Haciendo una consulta ping a tu servidor Solr", - "Verifying Schema integrity" : "Verificando la integidad del esquema", - "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto", - "Test update document query" : "Probar consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminando el documento de pruebas", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando tu configuraciĆ³n", - "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consultas de ping (Error #%1$s)", - "Schema is fine" : "Schema estĆ” correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Por favor verficia la configuraciĆ³n en tu servidor Solr (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede encontrar el documento orginal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontramos", - "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ", - "Cannot find any document" : "No se pudo encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)", - "Test-document deleted" : "El documento de pruebas fue borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)", - "Your configuration has been saved" : "Tu configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Por favor vuelve a cargar esta pĆ”gina. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)", - "Specify the address of your Solr, and the name of the core to use." : "Especifica la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr corriendo, puedes encontrar las guĆ­as de instalaciĆ³n en el wiki. ", - "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n acerca de esta interface. ", - "Saving" : "Guardando", - "Settings" : "Configuraciones ", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Tiempo de vida (en segundos):", - "Test and Save" : "Probar y Guardar", - "Indexing Files" : "Indexando Archivos", - "Maximum File Size (Mb):" : "TamaƱo de archivos mĆ”ximo (Mb):", - "Edit your filters" : "Edita tus filtros", - "Index Files Tree:" : "Indexar Ɓrbol de Archivos:", - "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar Archivos de Basura:", - "Index Public Links:" : "Indexar Ligas PĆŗblicas:", - "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:", - "Index External Storages:" : "Indexar Almacenamiento Externo:", - "Index Encrypted Files:" : "Indexar Archivos Encriptados:", - "Last index:" : "ƚltima Ć­ndexaciĆ³n:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La \"AplicaciĆ³n de Marcadores\" estĆ” habilitada, tus marcadores serĆ”n indexados. ", - "Checking" : "Verificando", - "Nextant Status" : "Estatus de Nextant", - "Resource Level:" : "Nivel de recursos:", - "Higher performance" : "DesempeƱo muy alto", - "High performance" : "Alto desempeƱo", - "Medium performance" : "DesempeƱo medio", - "Low performance" : "Bajo desempeƱo", - "Lower performance" : "Muy bajo desempeƱo", - "Live Index:" : "ƍndice activo:", - "Disabled" : "Deshabilitado", - "Using Semaphore" : "Usando Semaphore", - "Using Database" : "Usando la base de datos", - "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de IndexaciĆ³n de Fondo:", - "hours" : "horas", - "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de IndexaciĆ³n de Fondo:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nexcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "te recomendamos hacer la primera indexaciĆ³n de tus archivos usando el comando ./occ nextant:index ", - "However, you can force it to be started as a background process." : "Sin embargo, la puedes forzar para que inicie como un proceso de segundo plano. ", - "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada", - "Force index" : "Forzar indexaciĆ³n", - "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³n esta calendarizada para dentro de las prĆ³ximas horas (Cron)", - "Indexing in progress" : "IndexaciĆ³n en curso", - "Type of files to extract" : "Tipo de archivos a extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos de Office", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/es_MX.json b/l10n/es_MX.json deleted file mode 100644 index db12365..0000000 --- a/l10n/es_MX.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Ir a la carpeta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant aĆŗn no estĆ” configurado", - "Ping querying your Solr Server" : "Haciendo una consulta ping a tu servidor Solr", - "Verifying Schema integrity" : "Verificando la integidad del esquema", - "Test simple text extract query" : "Probar consulta de extracciĆ³n de texto", - "Test update document query" : "Probar consulta de actualizaciĆ³n de documento", - "Test search query" : "Probar consulta de bĆŗsqueda", - "Removing the test document" : "Eliminando el documento de pruebas", - "All test went fine. Saving your configuration" : "Todas las pruebas fueron exitosas. Guardando tu configuraciĆ³n", - "Address-format incorrect" : "El formato de direcciĆ³n es incorrecto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” arriba, corriendo y respondiendo a las consultas de ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr no estĆ” respondiendo a las consultas de ping (Error #%1$s)", - "Schema is fine" : "Schema estĆ” correcto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "No fue posible verificar/arreglar la integridad del esquema (Error #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Se presentĆ³ una falla en la extracciĆ³n. Por favor verficia la configuraciĆ³n en tu servidor Solr (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo - No se puede encontrar el documento orginal - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Error al confirmar (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "Se presentĆ³ un error al actualizar el campo (Error #%1$s)", - "Document updated" : "Documento actualizado", - "Found it" : "Lo encontramos", - "Found something, but not what was expected." : "Se econtrĆ³ algo, pero no es lo que se esperaba. ", - "Cannot find any document" : "No se pudo encontrar ningĆŗn documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Falla en la bĆŗsqueda. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)", - "Test-document deleted" : "El documento de pruebas fue borrado", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "No fue posible borrar el documento de prueba. Por favor verifica la configuraciĆ³n de tu servidor Solr (Error #%1$s)", - "Your configuration has been saved" : "Tu configuraciĆ³n ha sido guardada", - "Configuration could not be saved. Please reload this page." : "No fue posible guardar la configuraciĆ³n. Por favor vuelve a cargar esta pĆ”gina. ", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (BĆŗsqueda de texto completa)", - "Specify the address of your Solr, and the name of the core to use." : "Especifica la direcciĆ³n de su Solr, asĆ­ como el nombre del nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si no tienes un servlet Solr corriendo, puedes encontrar las guĆ­as de instalaciĆ³n en el wiki. ", - "You can also find more information there about this interface." : "TambiĆ©n puedes encontrar mĆ”s informaciĆ³n acerca de esta interface. ", - "Saving" : "Guardando", - "Settings" : "Configuraciones ", - "Nextant version:" : "VersiĆ³n de Nextant:", - "Address of your Solr servlet:" : "DirecciĆ³n de tu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Tiempo de vida (en segundos):", - "Test and Save" : "Probar y Guardar", - "Indexing Files" : "Indexando Archivos", - "Maximum File Size (Mb):" : "TamaƱo de archivos mĆ”ximo (Mb):", - "Edit your filters" : "Edita tus filtros", - "Index Files Tree:" : "Indexar Ɓrbol de Archivos:", - "Disable default search from Files" : "Deshabilitar bĆŗsqueda predeterminada de Archivos", - "Index File Trash:" : "Indexar Archivos de Basura:", - "Index Public Links:" : "Indexar Ligas PĆŗblicas:", - "Index Federated Shares:" : "Indexar Elementos Compartidos Federados:", - "Index External Storages:" : "Indexar Almacenamiento Externo:", - "Index Encrypted Files:" : "Indexar Archivos Encriptados:", - "Last index:" : "ƚltima Ć­ndexaciĆ³n:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "La applicaciĆ³n Bookmarks no estĆ” instalada / habilitada", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "La \"AplicaciĆ³n de Marcadores\" estĆ” habilitada, tus marcadores serĆ”n indexados. ", - "Checking" : "Verificando", - "Nextant Status" : "Estatus de Nextant", - "Resource Level:" : "Nivel de recursos:", - "Higher performance" : "DesempeƱo muy alto", - "High performance" : "Alto desempeƱo", - "Medium performance" : "DesempeƱo medio", - "Low performance" : "Bajo desempeƱo", - "Lower performance" : "Muy bajo desempeƱo", - "Live Index:" : "ƍndice activo:", - "Disabled" : "Deshabilitado", - "Using Semaphore" : "Usando Semaphore", - "Using Database" : "Usando la base de datos", - "Minimum Background Index delay:" : "Tiempo de espera mĆ­nimo de IndexaciĆ³n de Fondo:", - "hours" : "horas", - "Maximum Background Index delay:" : "Tiempo de espera mĆ”ximo de IndexaciĆ³n de Fondo:", - "days" : "dĆ­as", - "Nextcloud Cron:" : "Cron de Nexcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "te recomendamos hacer la primera indexaciĆ³n de tus archivos usando el comando ./occ nextant:index ", - "However, you can force it to be started as a background process." : "Sin embargo, la puedes forzar para que inicie como un proceso de segundo plano. ", - "Force first index as a cronjob" : "Forzar la primera indexaciĆ³n como una tarea calendarizada", - "Force index" : "Forzar indexaciĆ³n", - "Indexing is scheduled within the next few hours (Cron)" : "La indexaciĆ³n esta calendarizada para dentro de las prĆ³ximas horas (Cron)", - "Indexing in progress" : "IndexaciĆ³n en curso", - "Type of files to extract" : "Tipo de archivos a extraer", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Archivo de Texto (Texto, HTML, SubtĆ­tulos, CĆ³digo Fuente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos de Office", - "Image (JPEG, TIFF)" : "Imagen (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Archivo de audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensiones que desea ignorar (.java .xm)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/fi.js b/l10n/fi.js deleted file mode 100644 index 0c807ba..0000000 --- a/l10n/fi.js +++ /dev/null @@ -1,42 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Siirry kansioon", - "never" : "ei koskaan", - "Nextant is not configured yet" : "Nextant ei ole vielƤ mƤƤritelty", - "Test simple text extract query" : "Testaa yksinkertaisen tekstin purkamiskysely", - "Test update document query" : "Testsaa dokumentin pƤivityskysely", - "Test search query" : "Testaa hakukysely", - "Removing the test document" : "Poista testidokumentti", - "All test went fine. Saving your configuration" : "Kaikki testit onnistuivat. Tallennetaan mƤƤritykset", - "Apache Solr is up, running and responding to ping query" : "Apache Solr on valmis, kƤynnissƤ ja vastaa ping-kyselyyn", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ei vastaa ping-kyselyyn (Virhe #%1$s)", - "Schema is fine" : "Skeema on kelvollinen", - "Document updated" : "Dokumentti pƤivitetty", - "Cannot find any document" : "YhtƤkƤƤn dokumenttia ei lƶytynyt", - "Your configuration has been saved" : "MƤƤritykset on tallennettu", - "Saving" : "Tallennetaan", - "Settings" : "Asetukset", - "Nextant version:" : "Nextant-versio:", - "Timeout (in seconds):" : "Aikakatkaisu (sekunneissa):", - "Test and Save" : "Testaa ja tallenna", - "Indexing Files" : "Indeksoidaan tiedostoja", - "Maximum File Size (Mb):" : "Tiedoston enimmƤiskoko (Mt):", - "Edit your filters" : "Muokkaa suodattimia", - "Indexing Bookmarks" : "Indeksoidaan kirjanmerkkejƤ", - "Checking" : "Tarkistetaan", - "Nextant Status" : "Nextant-tila", - "Disabled" : "Ei kƤytƶssƤ", - "hours" : "tuntia", - "days" : "pƤivƤƤ", - "Nextcloud Cron:" : "Nextcloud-cron:", - "Indexing in progress" : "Indeksointi kƤynnissƤ", - "Type of files to extract" : "Purettavien tiedostojen tyypit", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstitiedosto (teksti, HTML, tekstitykset, lƤhdekoodi...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office-dokumentit", - "Image (JPEG, TIFF)" : "Kuva (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "ƄƤnitiedosto (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Ohitettavat pƤƤtteet (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/fi.json b/l10n/fi.json deleted file mode 100644 index d861616..0000000 --- a/l10n/fi.json +++ /dev/null @@ -1,40 +0,0 @@ -{ "translations": { - "Go to folder" : "Siirry kansioon", - "never" : "ei koskaan", - "Nextant is not configured yet" : "Nextant ei ole vielƤ mƤƤritelty", - "Test simple text extract query" : "Testaa yksinkertaisen tekstin purkamiskysely", - "Test update document query" : "Testsaa dokumentin pƤivityskysely", - "Test search query" : "Testaa hakukysely", - "Removing the test document" : "Poista testidokumentti", - "All test went fine. Saving your configuration" : "Kaikki testit onnistuivat. Tallennetaan mƤƤritykset", - "Apache Solr is up, running and responding to ping query" : "Apache Solr on valmis, kƤynnissƤ ja vastaa ping-kyselyyn", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ei vastaa ping-kyselyyn (Virhe #%1$s)", - "Schema is fine" : "Skeema on kelvollinen", - "Document updated" : "Dokumentti pƤivitetty", - "Cannot find any document" : "YhtƤkƤƤn dokumenttia ei lƶytynyt", - "Your configuration has been saved" : "MƤƤritykset on tallennettu", - "Saving" : "Tallennetaan", - "Settings" : "Asetukset", - "Nextant version:" : "Nextant-versio:", - "Timeout (in seconds):" : "Aikakatkaisu (sekunneissa):", - "Test and Save" : "Testaa ja tallenna", - "Indexing Files" : "Indeksoidaan tiedostoja", - "Maximum File Size (Mb):" : "Tiedoston enimmƤiskoko (Mt):", - "Edit your filters" : "Muokkaa suodattimia", - "Indexing Bookmarks" : "Indeksoidaan kirjanmerkkejƤ", - "Checking" : "Tarkistetaan", - "Nextant Status" : "Nextant-tila", - "Disabled" : "Ei kƤytƶssƤ", - "hours" : "tuntia", - "days" : "pƤivƤƤ", - "Nextcloud Cron:" : "Nextcloud-cron:", - "Indexing in progress" : "Indeksointi kƤynnissƤ", - "Type of files to extract" : "Purettavien tiedostojen tyypit", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstitiedosto (teksti, HTML, tekstitykset, lƤhdekoodi...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office-dokumentit", - "Image (JPEG, TIFF)" : "Kuva (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "ƄƤnitiedosto (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Ohitettavat pƤƤtteet (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/fr.js b/l10n/fr.js deleted file mode 100644 index 3977483..0000000 --- a/l10n/fr.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ouvrir le dossier", - "never" : "jamais", - "Nextant is not configured yet" : "Nextant n'est pas encore configurĆ©", - "Ping querying your Solr Server" : "Envoi d'une requĆŖte ping au serveur Solr", - "Verifying Schema integrity" : "VĆ©rification de lā€™intĆ©gritĆ© du schĆ©ma", - "Test simple text extract query" : "Test d'une simple requĆŖte d'extraction de texte", - "Test update document query" : "Test de la mise Ć  jour d'un document", - "Test search query" : "Tentative de recherche", - "Removing the test document" : "Suppression du document de test", - "All test went fine. Saving your configuration" : "Tous les tests ont Ć©tĆ© validĆ©s. Sauvegarde de votre configuration.", - "Address-format incorrect" : "Format de l'adresse incorrect", - "Apache Solr is up, running and responding to ping query" : "Apache Solr est actif, en cours et rĆ©pond Ć  la requĆŖte ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ne rĆ©pond pas a la requĆŖte ping (Erreur #%1$s)", - "Schema is fine" : "Le schĆ©ma est valide", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossible de vĆ©rifier/rĆ©parer le schĆ©ma (Erreur #%1$s)", - "Text extracted" : "Texte extrait", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de l'extraction. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Erreur de mise Ć  jour de champ - Impossible de trouver le document d'origine (Erreur #%1$s)", - "Error during commit (Error #%1$s)" : "Erreur lors de l'application des modifications (commit) (Erreur #%1$s)", - "Error while updating field (Error #%1$s)" : "Erreur lors de la mise a jour des champs (Erreur #%1$s)", - "Document updated" : "Document mis a jour", - "Found it" : "TrouvĆ©", - "Found something, but not what was expected." : "Quelque chose a Ć©tĆ© trouvĆ©. Mais rien Ć  voir. Du tout.", - "Cannot find any document" : "Impossible de rĆ©cupĆ©rer un seul document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la recherche. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Test-document deleted" : "Document de test supprimĆ©", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la suppression de notre document de test. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Your configuration has been saved" : "Votre configuration a Ć©tĆ© sauvegardĆ©e", - "Configuration could not be saved. Please reload this page." : "Votre configuration nā€™a pas pu ĆŖtre sauvegardĆ©e. Merci de rafraĆ®chir cette page.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Recherche de texte intĆ©gral)", - "Specify the address of your Solr, and the name of the core to use." : "Renseignez l'adresse du serveur Solr et le nom du noyau (core) a utiliser.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si vous ne disposez pas d'un serveur Solr, des guides d'installation peuvent ĆŖtre trouvĆ©s sur le Wiki.", - "You can also find more information there about this interface." : "Vous pouvez aussi trouver plus d'information ici Ć  propos de cette interface.", - "Saving" : "Sauvegarde", - "Settings" : "Configuration", - "Nextant version:" : "Version de Nextant :", - "Address of your Solr servlet:" : "Adresse de votre Servlet Solr :", - "Core:" : "Noyau (Core) :", - "Timeout (in seconds):" : "DĆ©lai d'expiration (en secondes) :", - "Test and Save" : "Tester et Sauvegarder", - "Indexing Files" : "Indexer les Fichiers", - "Maximum File Size (Mb):" : "Taille max. du fichier (Mo) :", - "Edit your filters" : "Configuration des filtres", - "Index Files Tree:" : "Index de l'arborescence des fichiers : ", - "Disable default search from Files" : "DĆ©sactiver la recherche de base de Files", - "Index File Trash:" : "Index des fichiers de la corbeille :", - "Index Public Links:" : "Index des liens publics :", - "Index Federated Shares:" : "Index des partages fĆ©dĆ©rĆ©s :", - "Index External Storages:" : "Index des stockages externes :", - "Index Encrypted Files:" : "Index des fichiers chiffrĆ©s :", - "Last index:" : "Dernier index :", - "Indexing Bookmarks" : "Indexer les Favoris", - "The App Bookmarks is not installed/enabled." : "Le module Bookmarks n'est pas installĆ©/configurĆ©", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'application \"Bookmarks\" est activĆ©, vos favoris seront indexĆ©s.", - "Checking" : "VĆ©rification", - "Nextant Status" : "Status de Nextant", - "Resource Level:" : "Niveau de ressource :", - "Higher performance" : "Performance maximale", - "High performance" : "Haute performance", - "Medium performance" : "Moyenne performance", - "Low performance" : "Basse performance", - "Lower performance" : "Performance minimale", - "Live Index:" : "Index en direct :", - "Disabled" : "DĆ©sactivĆ©", - "Using Semaphore" : "via Semaphore", - "Using Database" : "via Base de donnĆ©es ", - "Minimum Background Index delay:" : "Intervalle minimal de synchronisation en arriĆØre plan :", - "hours" : "heures", - "Maximum Background Index delay:" : "Intervalle maximal de synchronisation en arriĆØre plan :", - "days" : "jours", - "Nextcloud Cron:" : "Cron Nextcloud :", - "Number of documents:" : "Nombre de documents :", - "Number of segments:" : "Nombre de segments :", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Il est recommandĆ© de lancer la premiĆØre indexation de vos fichiers en utilisant la commande ./occ nextant:index", - "However, you can force it to be started as a background process." : "NĆ©anmoins, vous pouvez forcer son dĆ©marrage en arriĆØre-plan.", - "Force first index as a cronjob" : "Forcer la crĆ©ation du premier index en arriĆØre-plan ", - "Force index" : "Forcer l'indexation", - "Indexing is scheduled within the next few hours (Cron)" : "Une indexation est prĆ©vue dans les prochaines heures (cron)", - "Indexing in progress" : "Indexation en cours", - "Type of files to extract" : "Type de fichiers Ć  extraire ", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fichiers Texte (Texte, HTML, sous-titres, source, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documents Office", - "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Fichiers Audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions Ć  ignorer (.java .xml)" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/l10n/fr.json b/l10n/fr.json deleted file mode 100644 index 5f79054..0000000 --- a/l10n/fr.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Ouvrir le dossier", - "never" : "jamais", - "Nextant is not configured yet" : "Nextant n'est pas encore configurĆ©", - "Ping querying your Solr Server" : "Envoi d'une requĆŖte ping au serveur Solr", - "Verifying Schema integrity" : "VĆ©rification de lā€™intĆ©gritĆ© du schĆ©ma", - "Test simple text extract query" : "Test d'une simple requĆŖte d'extraction de texte", - "Test update document query" : "Test de la mise Ć  jour d'un document", - "Test search query" : "Tentative de recherche", - "Removing the test document" : "Suppression du document de test", - "All test went fine. Saving your configuration" : "Tous les tests ont Ć©tĆ© validĆ©s. Sauvegarde de votre configuration.", - "Address-format incorrect" : "Format de l'adresse incorrect", - "Apache Solr is up, running and responding to ping query" : "Apache Solr est actif, en cours et rĆ©pond Ć  la requĆŖte ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ne rĆ©pond pas a la requĆŖte ping (Erreur #%1$s)", - "Schema is fine" : "Le schĆ©ma est valide", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossible de vĆ©rifier/rĆ©parer le schĆ©ma (Erreur #%1$s)", - "Text extracted" : "Texte extrait", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de l'extraction. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Erreur de mise Ć  jour de champ - Impossible de trouver le document d'origine (Erreur #%1$s)", - "Error during commit (Error #%1$s)" : "Erreur lors de l'application des modifications (commit) (Erreur #%1$s)", - "Error while updating field (Error #%1$s)" : "Erreur lors de la mise a jour des champs (Erreur #%1$s)", - "Document updated" : "Document mis a jour", - "Found it" : "TrouvĆ©", - "Found something, but not what was expected." : "Quelque chose a Ć©tĆ© trouvĆ©. Mais rien Ć  voir. Du tout.", - "Cannot find any document" : "Impossible de rĆ©cupĆ©rer un seul document", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la recherche. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Test-document deleted" : "Document de test supprimĆ©", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Ɖchec de la suppression de notre document de test. Veuillez vĆ©rifier la configuration de votre serveur Solr (Erreur #%1$s)", - "Your configuration has been saved" : "Votre configuration a Ć©tĆ© sauvegardĆ©e", - "Configuration could not be saved. Please reload this page." : "Votre configuration nā€™a pas pu ĆŖtre sauvegardĆ©e. Merci de rafraĆ®chir cette page.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Recherche de texte intĆ©gral)", - "Specify the address of your Solr, and the name of the core to use." : "Renseignez l'adresse du serveur Solr et le nom du noyau (core) a utiliser.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Si vous ne disposez pas d'un serveur Solr, des guides d'installation peuvent ĆŖtre trouvĆ©s sur le Wiki.", - "You can also find more information there about this interface." : "Vous pouvez aussi trouver plus d'information ici Ć  propos de cette interface.", - "Saving" : "Sauvegarde", - "Settings" : "Configuration", - "Nextant version:" : "Version de Nextant :", - "Address of your Solr servlet:" : "Adresse de votre Servlet Solr :", - "Core:" : "Noyau (Core) :", - "Timeout (in seconds):" : "DĆ©lai d'expiration (en secondes) :", - "Test and Save" : "Tester et Sauvegarder", - "Indexing Files" : "Indexer les Fichiers", - "Maximum File Size (Mb):" : "Taille max. du fichier (Mo) :", - "Edit your filters" : "Configuration des filtres", - "Index Files Tree:" : "Index de l'arborescence des fichiers : ", - "Disable default search from Files" : "DĆ©sactiver la recherche de base de Files", - "Index File Trash:" : "Index des fichiers de la corbeille :", - "Index Public Links:" : "Index des liens publics :", - "Index Federated Shares:" : "Index des partages fĆ©dĆ©rĆ©s :", - "Index External Storages:" : "Index des stockages externes :", - "Index Encrypted Files:" : "Index des fichiers chiffrĆ©s :", - "Last index:" : "Dernier index :", - "Indexing Bookmarks" : "Indexer les Favoris", - "The App Bookmarks is not installed/enabled." : "Le module Bookmarks n'est pas installĆ©/configurĆ©", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'application \"Bookmarks\" est activĆ©, vos favoris seront indexĆ©s.", - "Checking" : "VĆ©rification", - "Nextant Status" : "Status de Nextant", - "Resource Level:" : "Niveau de ressource :", - "Higher performance" : "Performance maximale", - "High performance" : "Haute performance", - "Medium performance" : "Moyenne performance", - "Low performance" : "Basse performance", - "Lower performance" : "Performance minimale", - "Live Index:" : "Index en direct :", - "Disabled" : "DĆ©sactivĆ©", - "Using Semaphore" : "via Semaphore", - "Using Database" : "via Base de donnĆ©es ", - "Minimum Background Index delay:" : "Intervalle minimal de synchronisation en arriĆØre plan :", - "hours" : "heures", - "Maximum Background Index delay:" : "Intervalle maximal de synchronisation en arriĆØre plan :", - "days" : "jours", - "Nextcloud Cron:" : "Cron Nextcloud :", - "Number of documents:" : "Nombre de documents :", - "Number of segments:" : "Nombre de segments :", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Il est recommandĆ© de lancer la premiĆØre indexation de vos fichiers en utilisant la commande ./occ nextant:index", - "However, you can force it to be started as a background process." : "NĆ©anmoins, vous pouvez forcer son dĆ©marrage en arriĆØre-plan.", - "Force first index as a cronjob" : "Forcer la crĆ©ation du premier index en arriĆØre-plan ", - "Force index" : "Forcer l'indexation", - "Indexing is scheduled within the next few hours (Cron)" : "Une indexation est prĆ©vue dans les prochaines heures (cron)", - "Indexing in progress" : "Indexation en cours", - "Type of files to extract" : "Type de fichiers Ć  extraire ", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Fichiers Texte (Texte, HTML, sous-titres, source, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documents Office", - "Image (JPEG, TIFF)" : "Image (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Fichiers Audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensions Ć  ignorer (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/l10n/hu.js b/l10n/hu.js deleted file mode 100644 index 146dfb7..0000000 --- a/l10n/hu.js +++ /dev/null @@ -1,56 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "UgrĆ”s a mappĆ”ba", - "never" : "soha", - "Nextant is not configured yet" : "A Nextant mĆ©g nincs beĆ”llĆ­tva", - "Ping querying your Solr Server" : "Solr szerver pingelĆ©se", - "Verifying Schema integrity" : "SĆ©ma integritĆ”s ellenőrzĆ©se", - "Test simple text extract query" : "Egyszerű szƶveg kibontĆ”si kĆ©rĆ©s tesztelĆ©se", - "Test update document query" : "Dokumentum frissĆ­tĆ©si kĆ©rĆ©s tesztelĆ©se", - "Test search query" : "Kereső kifejezĆ©s tesztelĆ©se", - "Removing the test document" : "Teszt dokumentum eltĆ”volĆ­tĆ”sa", - "All test went fine. Saving your configuration" : "Minden teszt rendben. BeĆ”llĆ­tĆ”sok mentĆ©se", - "Apache Solr is up, running and responding to ping query" : "Apache Solr beĆ”llĆ­tva, fut Ć©s vĆ”laszol a ping kĆ©rĆ©sre", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nem vĆ”laszol a ping kĆ©rĆ©sre (Error #%1$s)", - "Schema is fine" : "SĆ©ma rendben", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "KibontĆ”s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "FrissĆ­tĆ©s sikertelen - nem talĆ”lhatĆ³ az eredeti dokumentum (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Hiba a bekĆ¼ldĆ©s kƶzben (Error #%1$s)", - "Document updated" : "Dokumentum frissĆ­tve", - "Cannot find any document" : "Nem talĆ”lhatĆ³ egyetlen dokumentum sem", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KeresĆ©s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)", - "Test-document deleted" : "Teszt dokumentum tƶrƶlve", - "Your configuration has been saved" : "A beĆ”llĆ­tĆ”said el lettek mentve", - "Nextant (Full-Text Search)" : "Nextant (telejes szƶveges keresĆ©s)", - "Specify the address of your Solr, and the name of the core to use." : "Add meg a Solr szervered cĆ­mĆ©t Ć©s a hasznĆ”landĆ³ core nevĆ©t.", - "Saving" : "MentĆ©s", - "Settings" : "BeĆ”llĆ­tĆ”sok", - "Test and Save" : "Teszt Ć©s mentĆ©s", - "Indexing Files" : "FĆ”jlok indexelĆ©se", - "Edit your filters" : "Szűrők szerkesztĆ©se", - "Disable default search from Files" : "FĆ”jlok alapĆ©rtelmezett keresőjĆ©nek letiltĆ”sa", - "Indexing Bookmarks" : "Kƶnyvjelzők indexelĆ©se", - "The App Bookmarks is not installed/enabled." : "Az Kƶnyvjelzők alkalmazĆ”s nincs telepĆ­tve/engedĆ©lyezve.", - "Checking" : "EllenőrzĆ©s", - "Nextant Status" : "Nextant Ć”llapot", - "Resource Level:" : "ErőforrĆ”s szint:", - "Higher performance" : "Legmagasabb teljesĆ­tmĆ©ny", - "High performance" : "Magas teljesĆ­tmĆ©ny", - "Medium performance" : "Kƶzepes teljesĆ­tmĆ©ny", - "Low performance" : "Alacsony teljesĆ­tmĆ©ny", - "Lower performance" : "Legalacsonyabb teljesĆ­tmĆ©ny", - "Disabled" : "Letiltva", - "Using Semaphore" : "Semaphore hasznĆ”lata", - "Using Database" : "AdatbĆ”zis hasznĆ”lata", - "hours" : "Ć³ra", - "days" : "nap", - "However, you can force it to be started as a background process." : "Viszont, hĆ”ttĆ©r folyamatkĆ©nt is kĆ©nyszerĆ­thető az indĆ­tĆ”sa.", - "Force first index as a cronjob" : "Első indexelĆ©s kĆ©nyszerĆ­tĆ©se cronjob-kĆ©nt", - "Force index" : "IndexelĆ©s kĆ©nyszerĆ­tĆ©s", - "Indexing in progress" : "indexelĆ©s folyamatban", - "Type of files to extract" : "KibontandĆ³ fĆ”jlok tĆ­pusa", - "Office Documents" : "Office dokumentumok", - "Extensions you wish to ignore (.java .xml)" : "Figyelmen kĆ­vĆ¼l hagyandĆ³ kiterjesztĆ©sek (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/hu.json b/l10n/hu.json deleted file mode 100644 index 17aa36e..0000000 --- a/l10n/hu.json +++ /dev/null @@ -1,54 +0,0 @@ -{ "translations": { - "Go to folder" : "UgrĆ”s a mappĆ”ba", - "never" : "soha", - "Nextant is not configured yet" : "A Nextant mĆ©g nincs beĆ”llĆ­tva", - "Ping querying your Solr Server" : "Solr szerver pingelĆ©se", - "Verifying Schema integrity" : "SĆ©ma integritĆ”s ellenőrzĆ©se", - "Test simple text extract query" : "Egyszerű szƶveg kibontĆ”si kĆ©rĆ©s tesztelĆ©se", - "Test update document query" : "Dokumentum frissĆ­tĆ©si kĆ©rĆ©s tesztelĆ©se", - "Test search query" : "Kereső kifejezĆ©s tesztelĆ©se", - "Removing the test document" : "Teszt dokumentum eltĆ”volĆ­tĆ”sa", - "All test went fine. Saving your configuration" : "Minden teszt rendben. BeĆ”llĆ­tĆ”sok mentĆ©se", - "Apache Solr is up, running and responding to ping query" : "Apache Solr beĆ”llĆ­tva, fut Ć©s vĆ”laszol a ping kĆ©rĆ©sre", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nem vĆ”laszol a ping kĆ©rĆ©sre (Error #%1$s)", - "Schema is fine" : "SĆ©ma rendben", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "KibontĆ”s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "FrissĆ­tĆ©s sikertelen - nem talĆ”lhatĆ³ az eredeti dokumentum (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Hiba a bekĆ¼ldĆ©s kƶzben (Error #%1$s)", - "Document updated" : "Dokumentum frissĆ­tve", - "Cannot find any document" : "Nem talĆ”lhatĆ³ egyetlen dokumentum sem", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KeresĆ©s sikertelen. KĆ©rlek ellenőrizd a Solr szerver beĆ”llĆ­tĆ”sait (Error #%1$s)", - "Test-document deleted" : "Teszt dokumentum tƶrƶlve", - "Your configuration has been saved" : "A beĆ”llĆ­tĆ”said el lettek mentve", - "Nextant (Full-Text Search)" : "Nextant (telejes szƶveges keresĆ©s)", - "Specify the address of your Solr, and the name of the core to use." : "Add meg a Solr szervered cĆ­mĆ©t Ć©s a hasznĆ”landĆ³ core nevĆ©t.", - "Saving" : "MentĆ©s", - "Settings" : "BeĆ”llĆ­tĆ”sok", - "Test and Save" : "Teszt Ć©s mentĆ©s", - "Indexing Files" : "FĆ”jlok indexelĆ©se", - "Edit your filters" : "Szűrők szerkesztĆ©se", - "Disable default search from Files" : "FĆ”jlok alapĆ©rtelmezett keresőjĆ©nek letiltĆ”sa", - "Indexing Bookmarks" : "Kƶnyvjelzők indexelĆ©se", - "The App Bookmarks is not installed/enabled." : "Az Kƶnyvjelzők alkalmazĆ”s nincs telepĆ­tve/engedĆ©lyezve.", - "Checking" : "EllenőrzĆ©s", - "Nextant Status" : "Nextant Ć”llapot", - "Resource Level:" : "ErőforrĆ”s szint:", - "Higher performance" : "Legmagasabb teljesĆ­tmĆ©ny", - "High performance" : "Magas teljesĆ­tmĆ©ny", - "Medium performance" : "Kƶzepes teljesĆ­tmĆ©ny", - "Low performance" : "Alacsony teljesĆ­tmĆ©ny", - "Lower performance" : "Legalacsonyabb teljesĆ­tmĆ©ny", - "Disabled" : "Letiltva", - "Using Semaphore" : "Semaphore hasznĆ”lata", - "Using Database" : "AdatbĆ”zis hasznĆ”lata", - "hours" : "Ć³ra", - "days" : "nap", - "However, you can force it to be started as a background process." : "Viszont, hĆ”ttĆ©r folyamatkĆ©nt is kĆ©nyszerĆ­thető az indĆ­tĆ”sa.", - "Force first index as a cronjob" : "Első indexelĆ©s kĆ©nyszerĆ­tĆ©se cronjob-kĆ©nt", - "Force index" : "IndexelĆ©s kĆ©nyszerĆ­tĆ©s", - "Indexing in progress" : "indexelĆ©s folyamatban", - "Type of files to extract" : "KibontandĆ³ fĆ”jlok tĆ­pusa", - "Office Documents" : "Office dokumentumok", - "Extensions you wish to ignore (.java .xml)" : "Figyelmen kĆ­vĆ¼l hagyandĆ³ kiterjesztĆ©sek (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/is.js b/l10n/is.js deleted file mode 100644 index 51250ec..0000000 --- a/l10n/is.js +++ /dev/null @@ -1,55 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Fara Ć­ mƶppu", - "never" : "aldrei", - "Nextant is not configured yet" : "Nextant hefur ekki veriĆ° stillt", - "Verifying Schema integrity" : "Athuga Ć”reiĆ°anleika skema", - "Test search query" : "PrĆ³fa leitarskilyrĆ°i", - "Removing the test document" : "FjarlƦgi prĆ³funarskjaliĆ°", - "All test went fine. Saving your configuration" : "Allar prĆ³fanir tĆ³kust. Vista uppsetninguna Ć¾Ć­na", - "Address-format incorrect" : "Rangt sniĆ° Ć” vistfangi", - "Schema is fine" : "Skema er Ć­ lagi", - "Text extracted" : "ƞaĆ° tĆ³kst aĆ° nĆ” Ć­ texta", - "Document updated" : "UppfƦrĆ°i skjal", - "Found it" : "Fann Ć¾aĆ°", - "Found something, but not what was expected." : "Fann eitthvaĆ°, en ekki Ć¾aĆ° sem von var Ć”.", - "Cannot find any document" : "Get ekki fundiĆ° neitt skjal", - "Test-document deleted" : "Eyddi prĆ³funarskjali", - "Your configuration has been saved" : "Stillingarnar Ć¾Ć­nar hafa veriĆ° vistaĆ°ar", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Leit Ć­ ƶllum textanum)", - "Saving" : "Er aĆ° vista ", - "Settings" : "Stillingar", - "Nextant version:" : "ƚtgĆ”fa Nextant:", - "Core:" : "Kjarni:", - "Timeout (in seconds):" : "TĆ­mamƶrk (sekĆŗndur):", - "Test and Save" : "PrĆ³fa og vista", - "Indexing Files" : "Geri yfirlit fyrir skrĆ”r", - "Maximum File Size (Mb):" : "HĆ”marks skrĆ”astƦrĆ° (Mb):", - "Edit your filters" : "SĆ½slaĆ°u meĆ° sĆ­ur", - "Indexing Bookmarks" : "Geri yfirlit fyrir bĆ³kamerki", - "Checking" : "Athugun", - "Nextant Status" : "StaĆ°a Nextant", - "Resource Level:" : "Stig tilfanga:", - "Higher performance" : "Meiri afkƶst", - "High performance" : "Mikil afkƶst", - "Medium performance" : "MeĆ°al afkƶst", - "Low performance" : "LĆ­til afkƶst", - "Lower performance" : "Minni afkƶst", - "Disabled" : "Ɠvirkt", - "Using Database" : "Nota gagnagrunn", - "hours" : "klukkustundir", - "days" : "dagar", - "Nextcloud Cron:" : "Nextcloud-cron:", - "Number of documents:" : "Fjƶldi skjala:", - "Number of segments:" : "Fjƶldi bĆŗta:", - "Type of files to extract" : "SkrĆ”ategundir sem Ć” aĆ° afĆ¾jappa", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextaskrĆ” (texti, HTML, skjĆ”textar, frumkĆ³Ć°i, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Skrifstofuskjƶl", - "Image (JPEG, TIFF)" : "Mynd (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "HljĆ³Ć°skrĆ” (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "SkrĆ”arendingar sem Ć¾Ćŗ vilt sleppa (.java .xml)" -}, -"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/l10n/is.json b/l10n/is.json deleted file mode 100644 index af97d46..0000000 --- a/l10n/is.json +++ /dev/null @@ -1,53 +0,0 @@ -{ "translations": { - "Go to folder" : "Fara Ć­ mƶppu", - "never" : "aldrei", - "Nextant is not configured yet" : "Nextant hefur ekki veriĆ° stillt", - "Verifying Schema integrity" : "Athuga Ć”reiĆ°anleika skema", - "Test search query" : "PrĆ³fa leitarskilyrĆ°i", - "Removing the test document" : "FjarlƦgi prĆ³funarskjaliĆ°", - "All test went fine. Saving your configuration" : "Allar prĆ³fanir tĆ³kust. Vista uppsetninguna Ć¾Ć­na", - "Address-format incorrect" : "Rangt sniĆ° Ć” vistfangi", - "Schema is fine" : "Skema er Ć­ lagi", - "Text extracted" : "ƞaĆ° tĆ³kst aĆ° nĆ” Ć­ texta", - "Document updated" : "UppfƦrĆ°i skjal", - "Found it" : "Fann Ć¾aĆ°", - "Found something, but not what was expected." : "Fann eitthvaĆ°, en ekki Ć¾aĆ° sem von var Ć”.", - "Cannot find any document" : "Get ekki fundiĆ° neitt skjal", - "Test-document deleted" : "Eyddi prĆ³funarskjali", - "Your configuration has been saved" : "Stillingarnar Ć¾Ć­nar hafa veriĆ° vistaĆ°ar", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Leit Ć­ ƶllum textanum)", - "Saving" : "Er aĆ° vista ", - "Settings" : "Stillingar", - "Nextant version:" : "ƚtgĆ”fa Nextant:", - "Core:" : "Kjarni:", - "Timeout (in seconds):" : "TĆ­mamƶrk (sekĆŗndur):", - "Test and Save" : "PrĆ³fa og vista", - "Indexing Files" : "Geri yfirlit fyrir skrĆ”r", - "Maximum File Size (Mb):" : "HĆ”marks skrĆ”astƦrĆ° (Mb):", - "Edit your filters" : "SĆ½slaĆ°u meĆ° sĆ­ur", - "Indexing Bookmarks" : "Geri yfirlit fyrir bĆ³kamerki", - "Checking" : "Athugun", - "Nextant Status" : "StaĆ°a Nextant", - "Resource Level:" : "Stig tilfanga:", - "Higher performance" : "Meiri afkƶst", - "High performance" : "Mikil afkƶst", - "Medium performance" : "MeĆ°al afkƶst", - "Low performance" : "LĆ­til afkƶst", - "Lower performance" : "Minni afkƶst", - "Disabled" : "Ɠvirkt", - "Using Database" : "Nota gagnagrunn", - "hours" : "klukkustundir", - "days" : "dagar", - "Nextcloud Cron:" : "Nextcloud-cron:", - "Number of documents:" : "Fjƶldi skjala:", - "Number of segments:" : "Fjƶldi bĆŗta:", - "Type of files to extract" : "SkrĆ”ategundir sem Ć” aĆ° afĆ¾jappa", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "TextaskrĆ” (texti, HTML, skjĆ”textar, frumkĆ³Ć°i, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Skrifstofuskjƶl", - "Image (JPEG, TIFF)" : "Mynd (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "HljĆ³Ć°skrĆ” (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "SkrĆ”arendingar sem Ć¾Ćŗ vilt sleppa (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" -} \ No newline at end of file diff --git a/l10n/it.js b/l10n/it.js deleted file mode 100644 index 7b9199b..0000000 --- a/l10n/it.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Vai alla cartella", - "never" : "mai", - "Nextant is not configured yet" : "Nextant non ĆØ ancora configurato", - "Ping querying your Solr Server" : "Ping del tuo server Solr", - "Verifying Schema integrity" : "Sto verificando l'integritĆ  di Schema", - "Test simple text extract query" : "Query di estrazione di testo semplice di prova", - "Test update document query" : "Query di aggiornamento documento di prova", - "Test search query" : "Query di ricerca di prova", - "Removing the test document" : "Rimozione del documento di prova", - "All test went fine. Saving your configuration" : "Tutti i test sono a posto. Salvo la tua configurazione", - "Address-format incorrect" : "Formato dell'indirizzo non corretto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr ĆØ attivo, in esecuzione e risponde al ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr non risponde al ping (Errore #%1$s)", - "Schema is fine" : "Lo schema ĆØ corretto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossibile verificare/correggere l'integritĆ  dello schema (Errore #%1$s)", - "Text extracted" : "Testo estratto", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Estrazione non riuscita. Controlla la configurazione del tuo server Solr (Errore #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Errore durante l'aggiornamento del campo - Impossibile trovare il documento originale (Errore #%1$s)", - "Error during commit (Error #%1$s)" : "Errore durante il commit (Errore #%1$s)", - "Error while updating field (Error #%1$s)" : "Errore durante l'aggiornamento del campo (Errore #%1$s)", - "Document updated" : "Documento aggiornato", - "Found it" : "Trovato", - "Found something, but not what was expected." : "Abbiamo trovato qualcosa, ma non ciĆ² che ci aspettavamo.", - "Cannot find any document" : "Impossibile trovare alcun documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ricerca non riuscita. Controlla la configurazione del tuo server Solr (errore #%1$s)", - "Test-document deleted" : "Documento di prova eliminato", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Impossibile eliminare il documento di prova. Controlla la configurazione del tuo server Solr (errore #%1$s)", - "Your configuration has been saved" : "La tua configurazione ĆØ stata salvata", - "Configuration could not be saved. Please reload this page." : "Salvataggio della configurazione non riuscito. Ricarica questa pagina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (ricerca testo integrale)", - "Specify the address of your Solr, and the name of the core to use." : "Specifica l'indirizzo del tuo Solr e il nome del motore da utilizzare.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se la servlet Solr non ĆØ in esecuzione, puoi trovare alcune guide su come installarla sul wiki.", - "You can also find more information there about this interface." : "Puoi inoltre trovarci ulteriori informazioni su questa interfaccia.", - "Saving" : "Salvataggio in corso", - "Settings" : "Impostazioni", - "Nextant version:" : "Versione di Nextant:", - "Address of your Solr servlet:" : "Indirizzo della tua servlet Solr:", - "Core:" : "Motore:", - "Timeout (in seconds):" : "Tempo massimo (in secondi):", - "Test and Save" : "Prova e salva", - "Indexing Files" : "Indicizzazione file", - "Maximum File Size (Mb):" : "Dimensione massima file (Mb):", - "Edit your filters" : "Modifica i tuoi filtri", - "Index Files Tree:" : "Indicizzazione albero dei file:", - "Disable default search from Files" : "Disabilita la ricerca predefinita da File", - "Index File Trash:" : "Indicizzazione cestino:", - "Index Public Links:" : "Indicizzazione collegamenti pubblici:", - "Index Federated Shares:" : "Indicizzazione condivisioni federate:", - "Index External Storages:" : "Indicizzazione archiviazioni esterne:", - "Index Encrypted Files:" : "Indicizzazione file cifrati:", - "Last index:" : "Ultimo indice:", - "Indexing Bookmarks" : "Indicizzazione segnalibri", - "The App Bookmarks is not installed/enabled." : "L'applicazione dei segnalibri non ĆØ installata/abilitata", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'applicazione dei segnalibri ĆØ abilitata, i tuoi segnalibri saranno indicizzati.", - "Checking" : "Controllo in corso", - "Nextant Status" : "Stato di Nextant", - "Resource Level:" : "Livello risorsa:", - "Higher performance" : "Prestazioni piĆ¹ alte", - "High performance" : "Alte prestazioni", - "Medium performance" : "Medie prestazioni", - "Low performance" : "Basse prestazioni", - "Lower performance" : "Prestazioni piĆ¹ basse", - "Live Index:" : "Indicizzazione live:", - "Disabled" : "Disabilitato", - "Using Semaphore" : "Utilizza semaforo", - "Using Database" : "Utilizza database", - "Minimum Background Index delay:" : "Ritardo minimo di indicizzazione in background:", - "hours" : "ore", - "Maximum Background Index delay:" : "Ritardo massimo di indicizzazione in background:", - "days" : "giorni", - "Nextcloud Cron:" : "Cron di Nextcloud:", - "Number of documents:" : "Numero di documenti:", - "Number of segments:" : "Numero di segmenti:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "consigliamo di eseguire la prima indicizzazione dei tuoi file utilizzando il comando ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Tuttavia, puoi forzarne l'avvio come un processo in background.", - "Force first index as a cronjob" : "Forza la prima indicizzazione come un cronjob", - "Force index" : "Forza l'indicizzazione", - "Indexing is scheduled within the next few hours (Cron)" : "L'indicizzazione ĆØ pianificata nelle prossime ore (cron)", - "Indexing in progress" : "Indicizzazione in corso", - "Type of files to extract" : "Tipo di file da estrarre", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "File di testo (testo, HTML, sottotitoli, codice sorgente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documento di Office", - "Image (JPEG, TIFF)" : "Immagine (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "File audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Estensioni che desideri ignorare (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/it.json b/l10n/it.json deleted file mode 100644 index d152c78..0000000 --- a/l10n/it.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Vai alla cartella", - "never" : "mai", - "Nextant is not configured yet" : "Nextant non ĆØ ancora configurato", - "Ping querying your Solr Server" : "Ping del tuo server Solr", - "Verifying Schema integrity" : "Sto verificando l'integritĆ  di Schema", - "Test simple text extract query" : "Query di estrazione di testo semplice di prova", - "Test update document query" : "Query di aggiornamento documento di prova", - "Test search query" : "Query di ricerca di prova", - "Removing the test document" : "Rimozione del documento di prova", - "All test went fine. Saving your configuration" : "Tutti i test sono a posto. Salvo la tua configurazione", - "Address-format incorrect" : "Formato dell'indirizzo non corretto", - "Apache Solr is up, running and responding to ping query" : "Apache Solr ĆØ attivo, in esecuzione e risponde al ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr non risponde al ping (Errore #%1$s)", - "Schema is fine" : "Lo schema ĆØ corretto", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Impossibile verificare/correggere l'integritĆ  dello schema (Errore #%1$s)", - "Text extracted" : "Testo estratto", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Estrazione non riuscita. Controlla la configurazione del tuo server Solr (Errore #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Errore durante l'aggiornamento del campo - Impossibile trovare il documento originale (Errore #%1$s)", - "Error during commit (Error #%1$s)" : "Errore durante il commit (Errore #%1$s)", - "Error while updating field (Error #%1$s)" : "Errore durante l'aggiornamento del campo (Errore #%1$s)", - "Document updated" : "Documento aggiornato", - "Found it" : "Trovato", - "Found something, but not what was expected." : "Abbiamo trovato qualcosa, ma non ciĆ² che ci aspettavamo.", - "Cannot find any document" : "Impossibile trovare alcun documento", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Ricerca non riuscita. Controlla la configurazione del tuo server Solr (errore #%1$s)", - "Test-document deleted" : "Documento di prova eliminato", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Impossibile eliminare il documento di prova. Controlla la configurazione del tuo server Solr (errore #%1$s)", - "Your configuration has been saved" : "La tua configurazione ĆØ stata salvata", - "Configuration could not be saved. Please reload this page." : "Salvataggio della configurazione non riuscito. Ricarica questa pagina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (ricerca testo integrale)", - "Specify the address of your Solr, and the name of the core to use." : "Specifica l'indirizzo del tuo Solr e il nome del motore da utilizzare.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se la servlet Solr non ĆØ in esecuzione, puoi trovare alcune guide su come installarla sul wiki.", - "You can also find more information there about this interface." : "Puoi inoltre trovarci ulteriori informazioni su questa interfaccia.", - "Saving" : "Salvataggio in corso", - "Settings" : "Impostazioni", - "Nextant version:" : "Versione di Nextant:", - "Address of your Solr servlet:" : "Indirizzo della tua servlet Solr:", - "Core:" : "Motore:", - "Timeout (in seconds):" : "Tempo massimo (in secondi):", - "Test and Save" : "Prova e salva", - "Indexing Files" : "Indicizzazione file", - "Maximum File Size (Mb):" : "Dimensione massima file (Mb):", - "Edit your filters" : "Modifica i tuoi filtri", - "Index Files Tree:" : "Indicizzazione albero dei file:", - "Disable default search from Files" : "Disabilita la ricerca predefinita da File", - "Index File Trash:" : "Indicizzazione cestino:", - "Index Public Links:" : "Indicizzazione collegamenti pubblici:", - "Index Federated Shares:" : "Indicizzazione condivisioni federate:", - "Index External Storages:" : "Indicizzazione archiviazioni esterne:", - "Index Encrypted Files:" : "Indicizzazione file cifrati:", - "Last index:" : "Ultimo indice:", - "Indexing Bookmarks" : "Indicizzazione segnalibri", - "The App Bookmarks is not installed/enabled." : "L'applicazione dei segnalibri non ĆØ installata/abilitata", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "L'applicazione dei segnalibri ĆØ abilitata, i tuoi segnalibri saranno indicizzati.", - "Checking" : "Controllo in corso", - "Nextant Status" : "Stato di Nextant", - "Resource Level:" : "Livello risorsa:", - "Higher performance" : "Prestazioni piĆ¹ alte", - "High performance" : "Alte prestazioni", - "Medium performance" : "Medie prestazioni", - "Low performance" : "Basse prestazioni", - "Lower performance" : "Prestazioni piĆ¹ basse", - "Live Index:" : "Indicizzazione live:", - "Disabled" : "Disabilitato", - "Using Semaphore" : "Utilizza semaforo", - "Using Database" : "Utilizza database", - "Minimum Background Index delay:" : "Ritardo minimo di indicizzazione in background:", - "hours" : "ore", - "Maximum Background Index delay:" : "Ritardo massimo di indicizzazione in background:", - "days" : "giorni", - "Nextcloud Cron:" : "Cron di Nextcloud:", - "Number of documents:" : "Numero di documenti:", - "Number of segments:" : "Numero di segmenti:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "consigliamo di eseguire la prima indicizzazione dei tuoi file utilizzando il comando ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Tuttavia, puoi forzarne l'avvio come un processo in background.", - "Force first index as a cronjob" : "Forza la prima indicizzazione come un cronjob", - "Force index" : "Forza l'indicizzazione", - "Indexing is scheduled within the next few hours (Cron)" : "L'indicizzazione ĆØ pianificata nelle prossime ore (cron)", - "Indexing in progress" : "Indicizzazione in corso", - "Type of files to extract" : "Tipo di file da estrarre", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "File di testo (testo, HTML, sottotitoli, codice sorgente...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documento di Office", - "Image (JPEG, TIFF)" : "Immagine (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "File audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Estensioni che desideri ignorare (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/ko.js b/l10n/ko.js deleted file mode 100644 index 21d044e..0000000 --- a/l10n/ko.js +++ /dev/null @@ -1,52 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "ķ“ė”ė”œ ģ“ė™", - "never" : "ķ•˜ģ§€ ģ•ŠģŒ", - "Nextant is not configured yet" : "Nextantź°€ ģ„¤ģ •ė˜ģ§€ ģ•Šģ•˜ģŒ", - "Ping querying your Solr Server" : "Solr ģ„œė²„ģ— Ping ģ§ˆģ˜ ė³“ė‚“ėŠ” ģ¤‘", - "Verifying Schema integrity" : "ģŠ¤ķ‚¤ė§ˆ ė¬“ź²°ģ„± ź²€ģ‚¬ ģ¤‘", - "Test simple text extract query" : "ź°„ė‹Øķ•œ ķ…ģŠ¤ķŠø ģ¶”ģ¶œ ģ§ˆģ˜ ģ‹œķ—˜", - "Test update document query" : "ė¬øģ„œ ģ—…ė°ģ“ķŠø ģ§ˆģ˜ ģ‹œķ—˜", - "Test search query" : "ź²€ģƒ‰ ģ§ˆģ˜ ģ‹œķ—˜", - "Removing the test document" : "ķ…ŒģŠ¤ķŠø ė¬øģ„œ ģ‚­ģ œ ģ¤‘", - "All test went fine. Saving your configuration" : "ėŖØė“  ķ…ŒģŠ¤ķŠøź°€ ģ„±ź³µķ–ˆģŠµė‹ˆė‹¤. ģ„¤ģ •ģ„ ģ €ģž„ķ•˜ėŠ” ģ¤‘", - "Apache Solr is up, running and responding to ping query" : "Apache Solrź°€ ģ‹¤ķ–‰ ģ¤‘ģ“ė©° ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•Ø", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solrź°€ ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•˜ģ§€ ģ•ŠģŒ(ģ˜¤ė„˜ #%1$s)", - "Schema is fine" : "ģŠ¤ķ‚¤ė§ˆź°€ ģ˜¬ė°”ė¦„", - "Error during commit (Error #%1$s)" : "ģ»¤ė°‹ ģ˜¤ė„˜(ģ˜¤ė„˜ #%1$s)", - "Cannot find any document" : "ė¬øģ„œė„¼ ģ°¾ģ„ ģˆ˜ ģ—†ģŒ", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ź²€ģƒ‰ģ“ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤. Solr ģ„œė²„ģ˜ ģ„¤ģ •ģ„ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤(ģ˜¤ė„˜ #%1$s)", - "Your configuration has been saved" : "ģ„¤ģ •ģ„ ģ €ģž„ķ•Ø", - "Nextant (Full-Text Search)" : "Nextant(ģ „ė¬ø ź²€ģƒ‰)", - "Specify the address of your Solr, and the name of the core to use." : "Solr ģ£¼ģ†Œ, ģ‚¬ģš©ķ•  ģ½”ģ–“ģ˜ ģ“ė¦„ģ„ ģ§€ģ •ķ•˜ģ‹­ģ‹œģ˜¤.", - "Saving" : "ģ €ģž„ ģ¤‘", - "Settings" : "ģ„¤ģ •", - "Test and Save" : "ķ…ŒģŠ¤ķŠø ė° ģ €ģž„", - "Indexing Files" : "ķŒŒģ¼ ģƒ‰ģøķ™”", - "Edit your filters" : "ķ•„ķ„° ķŽøģ§‘", - "Disable default search from Files" : "ķŒŒģ¼ źø°ė³ø ź²€ģƒ‰ ė¹„ķ™œģ„±ķ™”", - "Index File Trash:" : "ķŒŒģ¼ ķœ“ģ§€ķ†µ ģƒ‰ģø:", - "Indexing Bookmarks" : "ģ¦ź²Øģ°¾źø° ģƒ‰ģø ģ¤‘", - "The App Bookmarks is not installed/enabled." : "ģ¦ź²Øģ°¾źø° ģ•±ģ“ ģ„¤ģ¹˜/ķ™œģ„±ķ™”ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - "Checking" : "ź²€ģ‚¬ ģ¤‘", - "Nextant Status" : "Nextant ģƒķƒœ", - "Higher performance" : "ė§¤ģš° ė†’ģ€ ģ„±ėŠ„", - "High performance" : "ė†’ģ€ ģ„±ėŠ„", - "Medium performance" : "ģ¤‘ź°„ ģ„±ėŠ„", - "Low performance" : "ė‚®ģ€ ģ„±ėŠ„", - "Lower performance" : "ė§¤ģš° ė‚®ģ€ ģ„±ėŠ„", - "Disabled" : "ė¹„ķ™œģ„±ķ™”ėØ", - "Using Semaphore" : "ģ„øė§ˆķ¬ģ–“ ģ‚¬ģš©", - "Using Database" : "ė°ģ“ķ„°ė² ģ“ģŠ¤ ģ‚¬ģš©", - "hours" : "ģ‹œź°„", - "days" : "ģ¼", - "However, you can force it to be started as a background process." : "ė°±ź·øė¼ģš“ė“œ ķ”„ė”œģ„øģŠ¤ė”œ ģ§„ķ–‰ķ•˜ėŠ” ź²ƒģ„ ź°•ģ œķ•  ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.", - "Force first index as a cronjob" : "ģ²« ģƒ‰ģø ģž‘ģ—…ģ„ cron ģž‘ģ—…ģœ¼ė”œ ź°•ģ œ", - "Force index" : "ź°•ģ œ ģƒ‰ģø ģƒģ„±", - "Indexing in progress" : "ģƒ‰ģø ģ§„ķ–‰ ģ¤‘", - "Type of files to extract" : "ģ¶”ģ¶œķ•  ķŒŒģ¼ ģ¢…ė„˜", - "Office Documents" : "ģ˜¤ķ”¼ģŠ¤ ė¬øģ„œ", - "Extensions you wish to ignore (.java .xml)" : "ė¬“ģ‹œķ•  ķ™•ģž„ģž(.java .xml)" -}, -"nplurals=1; plural=0;"); diff --git a/l10n/ko.json b/l10n/ko.json deleted file mode 100644 index 8aca576..0000000 --- a/l10n/ko.json +++ /dev/null @@ -1,50 +0,0 @@ -{ "translations": { - "Go to folder" : "ķ“ė”ė”œ ģ“ė™", - "never" : "ķ•˜ģ§€ ģ•ŠģŒ", - "Nextant is not configured yet" : "Nextantź°€ ģ„¤ģ •ė˜ģ§€ ģ•Šģ•˜ģŒ", - "Ping querying your Solr Server" : "Solr ģ„œė²„ģ— Ping ģ§ˆģ˜ ė³“ė‚“ėŠ” ģ¤‘", - "Verifying Schema integrity" : "ģŠ¤ķ‚¤ė§ˆ ė¬“ź²°ģ„± ź²€ģ‚¬ ģ¤‘", - "Test simple text extract query" : "ź°„ė‹Øķ•œ ķ…ģŠ¤ķŠø ģ¶”ģ¶œ ģ§ˆģ˜ ģ‹œķ—˜", - "Test update document query" : "ė¬øģ„œ ģ—…ė°ģ“ķŠø ģ§ˆģ˜ ģ‹œķ—˜", - "Test search query" : "ź²€ģƒ‰ ģ§ˆģ˜ ģ‹œķ—˜", - "Removing the test document" : "ķ…ŒģŠ¤ķŠø ė¬øģ„œ ģ‚­ģ œ ģ¤‘", - "All test went fine. Saving your configuration" : "ėŖØė“  ķ…ŒģŠ¤ķŠøź°€ ģ„±ź³µķ–ˆģŠµė‹ˆė‹¤. ģ„¤ģ •ģ„ ģ €ģž„ķ•˜ėŠ” ģ¤‘", - "Apache Solr is up, running and responding to ping query" : "Apache Solrź°€ ģ‹¤ķ–‰ ģ¤‘ģ“ė©° ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•Ø", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solrź°€ ping ģ§ˆģ˜ģ— ģ‘ė‹µķ•˜ģ§€ ģ•ŠģŒ(ģ˜¤ė„˜ #%1$s)", - "Schema is fine" : "ģŠ¤ķ‚¤ė§ˆź°€ ģ˜¬ė°”ė¦„", - "Error during commit (Error #%1$s)" : "ģ»¤ė°‹ ģ˜¤ė„˜(ģ˜¤ė„˜ #%1$s)", - "Cannot find any document" : "ė¬øģ„œė„¼ ģ°¾ģ„ ģˆ˜ ģ—†ģŒ", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ź²€ģƒ‰ģ“ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤. Solr ģ„œė²„ģ˜ ģ„¤ģ •ģ„ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤(ģ˜¤ė„˜ #%1$s)", - "Your configuration has been saved" : "ģ„¤ģ •ģ„ ģ €ģž„ķ•Ø", - "Nextant (Full-Text Search)" : "Nextant(ģ „ė¬ø ź²€ģƒ‰)", - "Specify the address of your Solr, and the name of the core to use." : "Solr ģ£¼ģ†Œ, ģ‚¬ģš©ķ•  ģ½”ģ–“ģ˜ ģ“ė¦„ģ„ ģ§€ģ •ķ•˜ģ‹­ģ‹œģ˜¤.", - "Saving" : "ģ €ģž„ ģ¤‘", - "Settings" : "ģ„¤ģ •", - "Test and Save" : "ķ…ŒģŠ¤ķŠø ė° ģ €ģž„", - "Indexing Files" : "ķŒŒģ¼ ģƒ‰ģøķ™”", - "Edit your filters" : "ķ•„ķ„° ķŽøģ§‘", - "Disable default search from Files" : "ķŒŒģ¼ źø°ė³ø ź²€ģƒ‰ ė¹„ķ™œģ„±ķ™”", - "Index File Trash:" : "ķŒŒģ¼ ķœ“ģ§€ķ†µ ģƒ‰ģø:", - "Indexing Bookmarks" : "ģ¦ź²Øģ°¾źø° ģƒ‰ģø ģ¤‘", - "The App Bookmarks is not installed/enabled." : "ģ¦ź²Øģ°¾źø° ģ•±ģ“ ģ„¤ģ¹˜/ķ™œģ„±ķ™”ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - "Checking" : "ź²€ģ‚¬ ģ¤‘", - "Nextant Status" : "Nextant ģƒķƒœ", - "Higher performance" : "ė§¤ģš° ė†’ģ€ ģ„±ėŠ„", - "High performance" : "ė†’ģ€ ģ„±ėŠ„", - "Medium performance" : "ģ¤‘ź°„ ģ„±ėŠ„", - "Low performance" : "ė‚®ģ€ ģ„±ėŠ„", - "Lower performance" : "ė§¤ģš° ė‚®ģ€ ģ„±ėŠ„", - "Disabled" : "ė¹„ķ™œģ„±ķ™”ėØ", - "Using Semaphore" : "ģ„øė§ˆķ¬ģ–“ ģ‚¬ģš©", - "Using Database" : "ė°ģ“ķ„°ė² ģ“ģŠ¤ ģ‚¬ģš©", - "hours" : "ģ‹œź°„", - "days" : "ģ¼", - "However, you can force it to be started as a background process." : "ė°±ź·øė¼ģš“ė“œ ķ”„ė”œģ„øģŠ¤ė”œ ģ§„ķ–‰ķ•˜ėŠ” ź²ƒģ„ ź°•ģ œķ•  ģˆ˜ė„ ģžˆģŠµė‹ˆė‹¤.", - "Force first index as a cronjob" : "ģ²« ģƒ‰ģø ģž‘ģ—…ģ„ cron ģž‘ģ—…ģœ¼ė”œ ź°•ģ œ", - "Force index" : "ź°•ģ œ ģƒ‰ģø ģƒģ„±", - "Indexing in progress" : "ģƒ‰ģø ģ§„ķ–‰ ģ¤‘", - "Type of files to extract" : "ģ¶”ģ¶œķ•  ķŒŒģ¼ ģ¢…ė„˜", - "Office Documents" : "ģ˜¤ķ”¼ģŠ¤ ė¬øģ„œ", - "Extensions you wish to ignore (.java .xml)" : "ė¬“ģ‹œķ•  ķ™•ģž„ģž(.java .xml)" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/l10n/lv.js b/l10n/lv.js deleted file mode 100644 index bfe4921..0000000 --- a/l10n/lv.js +++ /dev/null @@ -1,31 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Doties uz mapi", - "never" : "nekad", - "Nextant is not configured yet" : "Nextant vēl nav konfigurēta", - "Ping querying your Solr Server" : "Ping pieprasÄ«jumi jÅ«su Solr Serverim", - "Verifying Schema integrity" : "PārbaudÄ«t shēmu integritāti", - "Removing the test document" : "Testa dokumentu izņemÅ”ana", - "All test went fine. Saving your configuration" : "Visi testi veiksmÄ«gi. Saglabā konfigurāciju", - "Schema is fine" : "Shēma ir laba", - "Error during commit (Error #%1$s)" : "Izpildes laikā radās kļūda (Kļūda #%1$s)", - "Cannot find any document" : "Nevar atrast nevienu dokumentu", - "Saving" : "Saglabā", - "Settings" : "IestatÄ«jumi", - "Test and Save" : "PārbaudÄ«t un saglabāt", - "Edit your filters" : "Rediģēt jÅ«su filtrus", - "Checking" : "Pārbaude", - "Nextant Status" : "Nextant statuss", - "Higher performance" : "Augstāka veiktspēja", - "High performance" : "Augsta veiktspēja", - "Medium performance" : "Vidējā veiktspēja", - "Low performance" : "Zema veiktspēja", - "Lower performance" : "Zemāka veiktspēja", - "Disabled" : "Atspējots", - "Using Database" : "Izmantojot datu bāzes", - "hours" : "stundas", - "days" : "dienas", - "Extensions you wish to ignore (.java .xml)" : "PaplaÅ”inājumi, kurus vēlaties ignorēt. (.java .xml)" -}, -"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/l10n/lv.json b/l10n/lv.json deleted file mode 100644 index 784cf9f..0000000 --- a/l10n/lv.json +++ /dev/null @@ -1,29 +0,0 @@ -{ "translations": { - "Go to folder" : "Doties uz mapi", - "never" : "nekad", - "Nextant is not configured yet" : "Nextant vēl nav konfigurēta", - "Ping querying your Solr Server" : "Ping pieprasÄ«jumi jÅ«su Solr Serverim", - "Verifying Schema integrity" : "PārbaudÄ«t shēmu integritāti", - "Removing the test document" : "Testa dokumentu izņemÅ”ana", - "All test went fine. Saving your configuration" : "Visi testi veiksmÄ«gi. Saglabā konfigurāciju", - "Schema is fine" : "Shēma ir laba", - "Error during commit (Error #%1$s)" : "Izpildes laikā radās kļūda (Kļūda #%1$s)", - "Cannot find any document" : "Nevar atrast nevienu dokumentu", - "Saving" : "Saglabā", - "Settings" : "IestatÄ«jumi", - "Test and Save" : "PārbaudÄ«t un saglabāt", - "Edit your filters" : "Rediģēt jÅ«su filtrus", - "Checking" : "Pārbaude", - "Nextant Status" : "Nextant statuss", - "Higher performance" : "Augstāka veiktspēja", - "High performance" : "Augsta veiktspēja", - "Medium performance" : "Vidējā veiktspēja", - "Low performance" : "Zema veiktspēja", - "Lower performance" : "Zemāka veiktspēja", - "Disabled" : "Atspējots", - "Using Database" : "Izmantojot datu bāzes", - "hours" : "stundas", - "days" : "dienas", - "Extensions you wish to ignore (.java .xml)" : "PaplaÅ”inājumi, kurus vēlaties ignorēt. (.java .xml)" -},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" -} \ No newline at end of file diff --git a/l10n/mn.js b/l10n/mn.js deleted file mode 100644 index b2ffc4a..0000000 --- a/l10n/mn.js +++ /dev/null @@ -1,46 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "хŠ°Š²Ń‚Š°Ń руу Š¾Ń‡Šøх", - "Nextant is not configured yet" : "Nextant хŠ°Ń€Š°Š°Ń…Š°Š½ тŠ¾Ń…ŠøрууŠ»Š°Š³Š“Š°Š°Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°", - "Verifying Schema integrity" : "схŠµŠ¼ŠøŠ¹Š½ Š±ŅÆрэŠ½ Š±Š°Š¹Š“Š»Ń‹Š³ шŠ°Š»Š³Š°Ń…", - "Removing the test document" : "туршŠøŠ»Ń‚Ń‹Š½ Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š³ устŠ³Š°Ń…", - "Address-format incorrect" : "Š„Š°ŃŠ³ хэŠ»Š±ŃŃ€ Š½ŃŒ Š±ŃƒŃ€ŃƒŃƒ", - "Schema is fine" : "схŠµŠ¼ Š·ŅÆŠ³ŃŃŃ€", - "Document updated" : "Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ шŠøŠ½ŃŃ‡Š»ŃŠ³Š“сэŠ½", - "Found it" : "Š¾Š»Š“сŠ¾Š½", - "Cannot find any document" : "яŠ¼Š°Ń€ ч Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ Š±Š°Š¹Ń…Š³ŅÆŠ¹", - "Test-document deleted" : "Š¢ŃƒŃ€ŃˆŠøŠ»Ń‚Ń‹Š½-Š±Š°Ń€ŠøŠ¼Ń‚ устŠ³Š°Š³Š“сŠ°Š½", - "Your configuration has been saved" : "тŠ°Š½Ń‹ тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“сŠ°Š½ ", - "Configuration could not be saved. Please reload this page." : "тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹. Š”Š°Ń…ŠøŠ½ Š°Ń‡Š°Š°Š»Š»Š°Š½Š° уу", - "Specify the address of your Solr, and the name of the core to use." : "Š¢Š°Š½Ń‹ Solr хŠ°ŃŠ³ Š·Š°Š°Š¶, Š¼Ó©Š½ Š°ŃˆŠøŠ³Š»Š°Ń… ŅÆŠ½Š“сэŠ½ Š½ŃŃ€.", - "You can also find more information there about this interface." : "Š¢Š° Š¼Ó©Š½ эŠ½Ń ŠøŠ½Ń‚ŠµŃ€Ń„эŠ¹ŃŃŃŃ€ ŠøŠ»ŅÆŅÆ Šøх Š¼ŃŠ“ээŠ»ŃŠ» Š¾Š»Š¶ Š°Š²Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Ń‚Š¾Š¹.", - "Saving" : "хŠ°Š“Š³Š°Š»Š°Š¼Š¶", - "Settings" : "тŠ¾Ń…ŠøрŠ³Š¾Š¾", - "Core:" : "Š³Š¾Š»", - "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ¶ŅÆŅÆŠ»ŃŃ… фŠ°Š¹Š»ŃƒŃƒŠ“", - "Maximum File Size (Mb):" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх фŠ°Š¹Š»Ń‹Š½ хэŠ¼Š¶ŃŃ (MB):", - "Edit your filters" : "тŠ°Š½Ń‹ ŠæŠøŠ»Ń‚ŠµŃ€ŠøŠ¹Š³ Š·Š°ŃŠ²Š°Ń€Š»Š°Ń… ", - "Last index:" : "сŅÆŅÆŠ»ŠøŠ¹Š½ ŠøŠ½Š“ŠµŠŗс", - "Checking" : "хяŠ½Š°Š»Ń‚", - "Resource Level:" : "Š½Ó©Ó©Ń†ŠøŠ¹Š½ тŅÆŠ²ŃˆŠøŠ½", - "Higher performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "High performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Medium performance" : "Š“уŠ½Š“Š°Š¶ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Low performance" : "Š“Š¾Š¾Š“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Lower performance" : "хŠ°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Live Index:" : "Š±Š¾Š“Šøт ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Disabled" : "ŠøŠ“эŠ²Ń…ŠøŠ³ŅÆŠ¹", - "Using Database" : "Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ сŠ°Š½ Š°ŃˆŠøŠ³Š»Š°Ń…", - "Minimum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:", - "hours" : "хуŠ³Š°Ń†Š°Š°", - "Maximum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:", - "days" : "Ó©Š“Ń€Ó©Ó©Ń€", - "Number of documents:" : "Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š½ тŠ¾Š¾", - "Number of segments:" : "сŠµŠ³Š¼ŠµŠ½Ń‚ŠøŠ¹Š½ тŠ¾Š¾:", - "Force index" : "хŅÆчŠ½ŠøŠ¹ ŠøŠ½Š“ŠµŠŗс", - "Type of files to extract" : "фŠ°Š¹Š»ŃƒŃƒŠ“ыŠ½ Ń‚Ó©Ń€Š»ŠøŠ¹Š³ Š³Š°Ń€Š³Š°Š¶ Š°Š²Š°Ń…", - "Office Documents" : "Š¾Ń„Ń„ŠøсŠøŠ¹Š½ Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚", - "Audio File (MP3, FLAC)" : "Š°ŃƒŠ“ŠøŠ¾ фŠ°Š¹Š» (MP3, FLAC)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/mn.json b/l10n/mn.json deleted file mode 100644 index 3b71a1f..0000000 --- a/l10n/mn.json +++ /dev/null @@ -1,44 +0,0 @@ -{ "translations": { - "Go to folder" : "хŠ°Š²Ń‚Š°Ń руу Š¾Ń‡Šøх", - "Nextant is not configured yet" : "Nextant хŠ°Ń€Š°Š°Ń…Š°Š½ тŠ¾Ń…ŠøрууŠ»Š°Š³Š“Š°Š°Š³ŅÆŠ¹ Š±Š°Š¹Š½Š°", - "Verifying Schema integrity" : "схŠµŠ¼ŠøŠ¹Š½ Š±ŅÆрэŠ½ Š±Š°Š¹Š“Š»Ń‹Š³ шŠ°Š»Š³Š°Ń…", - "Removing the test document" : "туршŠøŠ»Ń‚Ń‹Š½ Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š³ устŠ³Š°Ń…", - "Address-format incorrect" : "Š„Š°ŃŠ³ хэŠ»Š±ŃŃ€ Š½ŃŒ Š±ŃƒŃ€ŃƒŃƒ", - "Schema is fine" : "схŠµŠ¼ Š·ŅÆŠ³ŃŃŃ€", - "Document updated" : "Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ шŠøŠ½ŃŃ‡Š»ŃŠ³Š“сэŠ½", - "Found it" : "Š¾Š»Š“сŠ¾Š½", - "Cannot find any document" : "яŠ¼Š°Ń€ ч Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚ Š±Š°Š¹Ń…Š³ŅÆŠ¹", - "Test-document deleted" : "Š¢ŃƒŃ€ŃˆŠøŠ»Ń‚Ń‹Š½-Š±Š°Ń€ŠøŠ¼Ń‚ устŠ³Š°Š³Š“сŠ°Š½", - "Your configuration has been saved" : "тŠ°Š½Ń‹ тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“сŠ°Š½ ", - "Configuration could not be saved. Please reload this page." : "тŠ¾Ń…ŠøрŠ³Š¾Š¾ хŠ°Š“Š³Š°Š»Š°Š³Š“Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Š³ŅÆŠ¹. Š”Š°Ń…ŠøŠ½ Š°Ń‡Š°Š°Š»Š»Š°Š½Š° уу", - "Specify the address of your Solr, and the name of the core to use." : "Š¢Š°Š½Ń‹ Solr хŠ°ŃŠ³ Š·Š°Š°Š¶, Š¼Ó©Š½ Š°ŃˆŠøŠ³Š»Š°Ń… ŅÆŠ½Š“сэŠ½ Š½ŃŃ€.", - "You can also find more information there about this interface." : "Š¢Š° Š¼Ó©Š½ эŠ½Ń ŠøŠ½Ń‚ŠµŃ€Ń„эŠ¹ŃŃŃŃ€ ŠøŠ»ŅÆŅÆ Šøх Š¼ŃŠ“ээŠ»ŃŠ» Š¾Š»Š¶ Š°Š²Š°Ń… Š±Š¾Š»Š¾Š¼Š¶Ń‚Š¾Š¹.", - "Saving" : "хŠ°Š“Š³Š°Š»Š°Š¼Š¶", - "Settings" : "тŠ¾Ń…ŠøрŠ³Š¾Š¾", - "Core:" : "Š³Š¾Š»", - "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ¶ŅÆŅÆŠ»ŃŃ… фŠ°Š¹Š»ŃƒŃƒŠ“", - "Maximum File Size (Mb):" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх фŠ°Š¹Š»Ń‹Š½ хэŠ¼Š¶ŃŃ (MB):", - "Edit your filters" : "тŠ°Š½Ń‹ ŠæŠøŠ»Ń‚ŠµŃ€ŠøŠ¹Š³ Š·Š°ŃŠ²Š°Ń€Š»Š°Ń… ", - "Last index:" : "сŅÆŅÆŠ»ŠøŠ¹Š½ ŠøŠ½Š“ŠµŠŗс", - "Checking" : "хяŠ½Š°Š»Ń‚", - "Resource Level:" : "Š½Ó©Ó©Ń†ŠøŠ¹Š½ тŅÆŠ²ŃˆŠøŠ½", - "Higher performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "High performance" : "Š“ээŠ“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Medium performance" : "Š“уŠ½Š“Š°Š¶ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Low performance" : "Š“Š¾Š¾Š“ ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Lower performance" : "хŠ°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Live Index:" : "Š±Š¾Š“Šøт ŅÆŠ·ŅÆŅÆŠ»ŃŠ»Ń‚", - "Disabled" : "ŠøŠ“эŠ²Ń…ŠøŠ³ŅÆŠ¹", - "Using Database" : "Ó©Š³Ó©Š³Š“Š»ŠøŠ¹Š½ сŠ°Š½ Š°ŃˆŠøŠ³Š»Š°Ń…", - "Minimum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Š±Š°Š³Š° суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:", - "hours" : "хуŠ³Š°Ń†Š°Š°", - "Maximum Background Index delay:" : "Š„Š°Š¼Š³ŠøŠ¹Š½ Šøх суурь ŠøŠ½Š“ŠµŠŗс сŠ°Š°Ń‚Š°Š»:", - "days" : "Ó©Š“Ń€Ó©Ó©Ń€", - "Number of documents:" : "Š±Š°Ń€ŠøŠ¼Ń‚ Š±ŠøчŠ³ŠøŠ¹Š½ тŠ¾Š¾", - "Number of segments:" : "сŠµŠ³Š¼ŠµŠ½Ń‚ŠøŠ¹Š½ тŠ¾Š¾:", - "Force index" : "хŅÆчŠ½ŠøŠ¹ ŠøŠ½Š“ŠµŠŗс", - "Type of files to extract" : "фŠ°Š¹Š»ŃƒŃƒŠ“ыŠ½ Ń‚Ó©Ń€Š»ŠøŠ¹Š³ Š³Š°Ń€Š³Š°Š¶ Š°Š²Š°Ń…", - "Office Documents" : "Š¾Ń„Ń„ŠøсŠøŠ¹Š½ Š±ŠøчŠøŠ³ Š±Š°Ń€ŠøŠ¼Ń‚", - "Audio File (MP3, FLAC)" : "Š°ŃƒŠ“ŠøŠ¾ фŠ°Š¹Š» (MP3, FLAC)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/nb.js b/l10n/nb.js deleted file mode 100644 index 9d9340c..0000000 --- a/l10n/nb.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "GĆ„ til mappe", - "never" : "aldri", - "Nextant is not configured yet" : "Nextant er ikke satt opp enda", - "Ping querying your Solr Server" : "Sender ping-forespĆørsel til din Solr-tjener", - "Verifying Schema integrity" : "Bekrefter Schema-integritet", - "Test simple text extract query" : "Test enkel tekstutpakkingsspĆørring", - "Test update document query" : "Test dokumentoppdateringsspĆørring", - "Test search query" : "Test sĆøkestreng", - "Removing the test document" : "Slett testdokumentet", - "All test went fine. Saving your configuration" : "Alle tester bestĆ„tt. Lagrer oppsettet ditt", - "Address-format incorrect" : "Feil format pĆ„ adresse", - "Apache Solr is up, running and responding to ping query" : "Apache Solr er oppe, kjĆører, og svarer pĆ„ ping-spĆørring", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarer ikke pĆ„ ping-spĆørring (Error #%1$s)", - "Schema is fine" : "Alt vel med Schema", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Klarte ikke Ć„ bekrefte/fikse Schema-integritet (Feil #%1$s)", - "Text extracted" : "Tekst utpakket", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Utpakking mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Feil ved oppdatering av felt - Kan ikke finne originaldokument - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Feil under innsendelse (Feil #%1$s)", - "Error while updating field (Error #%1$s)" : "Feil under oppdatering av feil (Feil #%1$s)", - "Document updated" : "Dokument oppdatert", - "Found it" : "Fant det", - "Found something, but not what was expected." : "Fant noe, men ikke det som var forventet.", - "Cannot find any document" : "Kan ikke finne noe dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "SĆøk mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Test-document deleted" : "Testdokument slettet", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunne ikke slette test-dokument. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Your configuration has been saved" : "Dine innstillinger er lagret", - "Configuration could not be saved. Please reload this page." : "Oppsettet kunne ikke lagres. Last inn denne siden pĆ„ ny.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (FulltekstsĆøk)", - "Specify the address of your Solr, and the name of the core to use." : "Angi adressen for din Solr, og navnet pĆ„ kjernen som skal brukes.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Hvis du ikke har en Solr-servlet kjĆørende, kan du finne installasjonsguider pĆ„ wiki-en.", - "You can also find more information there about this interface." : "Du kan ogsĆ„ finne mer informasjon der om dette grensesnittet.", - "Saving" : "Lagrer", - "Settings" : "Innstillinger", - "Nextant version:" : "Nextant versjon:", - "Address of your Solr servlet:" : "Adresse for din Solr-servlet:", - "Core:" : "Kjerne:", - "Timeout (in seconds):" : "Tidsavbrudd (i sekunder):", - "Test and Save" : "Test og lagre", - "Indexing Files" : "Indekserer filer", - "Maximum File Size (Mb):" : "Maksimal filstĆørrelse (Mb):", - "Edit your filters" : "Rediger dine filtre", - "Index Files Tree:" : "Indekser filtre:", - "Disable default search from Files" : "Skru av forvalgt sĆøk fra filer", - "Index File Trash:" : "Indekser filpapirkurv:", - "Index Public Links:" : "Indekser offentlige lenker:", - "Index Federated Shares:" : "Indekser sammenknyttede delinger:", - "Index External Storages:" : "Indekser eksterne lager:", - "Index Encrypted Files:" : "Indekser krypterte filer:", - "Last index:" : "Siste indeksering:", - "Indexing Bookmarks" : "Indeksere bokmerker", - "The App Bookmarks is not installed/enabled." : "Program-bokmerkene er ikke installert/pĆ„skrudd.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Program-bokmerker\" er pĆ„skrudd, dine bokmerker vil bli indeksert.", - "Checking" : "Kontrollerer", - "Nextant Status" : "Nextant-status", - "Resource Level:" : "RessursnivĆ„:", - "Higher performance" : "HĆøyere ytelse", - "High performance" : "HĆøy ytelse", - "Medium performance" : "Medium ytelse", - "Low performance" : "Lav ytelse", - "Lower performance" : "Lavere ytelse", - "Live Index:" : "Levende indeks:", - "Disabled" : "Inaktiv", - "Using Semaphore" : "Bruker Semaphore", - "Using Database" : "Bruker database", - "Minimum Background Index delay:" : "Minimumsforsinkelse for bakgrunnsindeksering:", - "hours" : "timer", - "Maximum Background Index delay:" : "Maksimumsforsinkelse for bakgrunnsindeksering:", - "days" : "dager", - "Nextcloud Cron:" : "Nextcloud-Cron:", - "Number of documents:" : "Antall dokumenter:", - "Number of segments:" : "Antall segmenter:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "det anbefales Ć„ bruke /occ nextant:index -kommandoen for fĆørste indeksering av filene dine.", - "However, you can force it to be started as a background process." : "Dog kan du tvinge det til Ć„ starte som en bakgrunnsprosess.", - "Force first index as a cronjob" : "Tving fĆørste indeksering som cronjobb", - "Force index" : "Tving indeksering", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksering er planlagt i lĆøpet av de neste timene (Cron)", - "Indexing in progress" : "Indeksering pĆ„gĆ„r", - "Type of files to extract" : "Type filer Ć„ pakke ut", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstfil (Tekst, HTML, Undertekster, Kildekodeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumenter", - "Image (JPEG, TIFF)" : "Bilde (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Lydfil (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Endelser du vil ignorere (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/nb.json b/l10n/nb.json deleted file mode 100644 index 75bbc6a..0000000 --- a/l10n/nb.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "GĆ„ til mappe", - "never" : "aldri", - "Nextant is not configured yet" : "Nextant er ikke satt opp enda", - "Ping querying your Solr Server" : "Sender ping-forespĆørsel til din Solr-tjener", - "Verifying Schema integrity" : "Bekrefter Schema-integritet", - "Test simple text extract query" : "Test enkel tekstutpakkingsspĆørring", - "Test update document query" : "Test dokumentoppdateringsspĆørring", - "Test search query" : "Test sĆøkestreng", - "Removing the test document" : "Slett testdokumentet", - "All test went fine. Saving your configuration" : "Alle tester bestĆ„tt. Lagrer oppsettet ditt", - "Address-format incorrect" : "Feil format pĆ„ adresse", - "Apache Solr is up, running and responding to ping query" : "Apache Solr er oppe, kjĆører, og svarer pĆ„ ping-spĆørring", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarer ikke pĆ„ ping-spĆørring (Error #%1$s)", - "Schema is fine" : "Alt vel med Schema", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Klarte ikke Ć„ bekrefte/fikse Schema-integritet (Feil #%1$s)", - "Text extracted" : "Tekst utpakket", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Utpakking mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Feil ved oppdatering av felt - Kan ikke finne originaldokument - (Error #%1$s)", - "Error during commit (Error #%1$s)" : "Feil under innsendelse (Feil #%1$s)", - "Error while updating field (Error #%1$s)" : "Feil under oppdatering av feil (Feil #%1$s)", - "Document updated" : "Dokument oppdatert", - "Found it" : "Fant det", - "Found something, but not what was expected." : "Fant noe, men ikke det som var forventet.", - "Cannot find any document" : "Kan ikke finne noe dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "SĆøk mislyktes. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Test-document deleted" : "Testdokument slettet", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunne ikke slette test-dokument. Sjekk oppsettet av din Solr-tjener (Feil #%1$s)", - "Your configuration has been saved" : "Dine innstillinger er lagret", - "Configuration could not be saved. Please reload this page." : "Oppsettet kunne ikke lagres. Last inn denne siden pĆ„ ny.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (FulltekstsĆøk)", - "Specify the address of your Solr, and the name of the core to use." : "Angi adressen for din Solr, og navnet pĆ„ kjernen som skal brukes.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Hvis du ikke har en Solr-servlet kjĆørende, kan du finne installasjonsguider pĆ„ wiki-en.", - "You can also find more information there about this interface." : "Du kan ogsĆ„ finne mer informasjon der om dette grensesnittet.", - "Saving" : "Lagrer", - "Settings" : "Innstillinger", - "Nextant version:" : "Nextant versjon:", - "Address of your Solr servlet:" : "Adresse for din Solr-servlet:", - "Core:" : "Kjerne:", - "Timeout (in seconds):" : "Tidsavbrudd (i sekunder):", - "Test and Save" : "Test og lagre", - "Indexing Files" : "Indekserer filer", - "Maximum File Size (Mb):" : "Maksimal filstĆørrelse (Mb):", - "Edit your filters" : "Rediger dine filtre", - "Index Files Tree:" : "Indekser filtre:", - "Disable default search from Files" : "Skru av forvalgt sĆøk fra filer", - "Index File Trash:" : "Indekser filpapirkurv:", - "Index Public Links:" : "Indekser offentlige lenker:", - "Index Federated Shares:" : "Indekser sammenknyttede delinger:", - "Index External Storages:" : "Indekser eksterne lager:", - "Index Encrypted Files:" : "Indekser krypterte filer:", - "Last index:" : "Siste indeksering:", - "Indexing Bookmarks" : "Indeksere bokmerker", - "The App Bookmarks is not installed/enabled." : "Program-bokmerkene er ikke installert/pĆ„skrudd.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Program-bokmerker\" er pĆ„skrudd, dine bokmerker vil bli indeksert.", - "Checking" : "Kontrollerer", - "Nextant Status" : "Nextant-status", - "Resource Level:" : "RessursnivĆ„:", - "Higher performance" : "HĆøyere ytelse", - "High performance" : "HĆøy ytelse", - "Medium performance" : "Medium ytelse", - "Low performance" : "Lav ytelse", - "Lower performance" : "Lavere ytelse", - "Live Index:" : "Levende indeks:", - "Disabled" : "Inaktiv", - "Using Semaphore" : "Bruker Semaphore", - "Using Database" : "Bruker database", - "Minimum Background Index delay:" : "Minimumsforsinkelse for bakgrunnsindeksering:", - "hours" : "timer", - "Maximum Background Index delay:" : "Maksimumsforsinkelse for bakgrunnsindeksering:", - "days" : "dager", - "Nextcloud Cron:" : "Nextcloud-Cron:", - "Number of documents:" : "Antall dokumenter:", - "Number of segments:" : "Antall segmenter:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "det anbefales Ć„ bruke /occ nextant:index -kommandoen for fĆørste indeksering av filene dine.", - "However, you can force it to be started as a background process." : "Dog kan du tvinge det til Ć„ starte som en bakgrunnsprosess.", - "Force first index as a cronjob" : "Tving fĆørste indeksering som cronjobb", - "Force index" : "Tving indeksering", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksering er planlagt i lĆøpet av de neste timene (Cron)", - "Indexing in progress" : "Indeksering pĆ„gĆ„r", - "Type of files to extract" : "Type filer Ć„ pakke ut", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstfil (Tekst, HTML, Undertekster, Kildekodeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumenter", - "Image (JPEG, TIFF)" : "Bilde (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Lydfil (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Endelser du vil ignorere (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/nl.js b/l10n/nl.js deleted file mode 100644 index b0a287a..0000000 --- a/l10n/nl.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ga naar map", - "never" : "nooit", - "Nextant is not configured yet" : "Nextant is nog niet geconfigureerd", - "Ping querying your Solr Server" : "Ping bevraagt je Solr Server", - "Verifying Schema integrity" : "VerifiĆ«ren schema integriteit", - "Test simple text extract query" : "Test enkelvoudige tekst uitvraagopvraag", - "Test update document query" : "test bijwerken dopcumentopvraag", - "Test search query" : "Test zoekopdracht", - "Removing the test document" : "Verwijderen testdocument", - "All test went fine. Saving your configuration" : "Alles ok. Bezig je configuratie op te slaan", - "Address-format incorrect" : "OnjuistĀ adresformaat", - "Apache Solr is up, running and responding to ping query" : "Apache Solr draait en reageert op de ping opvraag", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr reageert niet op de ping opvraag (Fout #%1$s)", - "Schema is fine" : "Schema is goed", - "Unable to verify/fix schema integrity (Error #%1$s)" : " We kunnen het schema integriteit niet verifiĆ«ren/herstellen (Error #%1$s)", - "Text extracted" : "Tekst uitgepakt", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "UitpakkenĀ mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "FoutĀ bij bijwerken veld - kan originele document niet vinden - (Fout #%1$s)", - "Error during commit (Error #%1$s)" : "Fout bij verzenden (Fout #%1$s)", - "Error while updating field (Error #%1$s)" : "Fout bij bijwerken veld (Fout #%1$s)", - "Document updated" : "Document bijgewerkt", - "Found it" : "Gevonden", - "Found something, but not what was expected." : "Iets gevonden, maar niet precies wat we verwachtten.", - "Cannot find any document" : "Kan geen document vinden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zoeken mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Test-document deleted" : "Test document verwijderd", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Konden testdocument niet verwijderen. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Your configuration has been saved" : "Je configuratie is opgeslagen", - "Configuration could not be saved. Please reload this page." : "Configuratie werd niet opgeslagen. Herlaad deze pagina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (volledige tekst zoekfunctie)", - "Specify the address of your Solr, and the name of the core to use." : "Geef het adres van Solr op, alsmede de naam van de te gebruiken kern.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Als je geen Solr servlet draait, vind jeĀ een handleiding voor de installatie in de wiki.", - "You can also find more information there about this interface." : "Je kunt daar ook meer informatie over deze interface krijgen.", - "Saving" : "Opslaan", - "Settings" : "Instellingen", - "Nextant version:" : "Nextant versie:", - "Address of your Solr servlet:" : "Adres van je Solr servlet :", - "Core:" : "Kern:", - "Timeout (in seconds):" : "Time-out (in seconden) :", - "Test and Save" : "Testen en opslaan", - "Indexing Files" : "Indexeren bestanden", - "Maximum File Size (Mb):" : "Maximale bestandsgrootte (Mb):", - "Edit your filters" : "Bewerk je filters", - "Index Files Tree:" : "Index bestandsboom:", - "Disable default search from Files" : "De standaard zoekfunctie voor bestanden uitzetten", - "Index File Trash:" : "Indexbestand Prullenbak:", - "Index Public Links:" : "Index publieke links:", - "Index Federated Shares:" : "Index gefedereerde shares:", - "Index External Storages:" : "Index externe opslag:", - "Index Encrypted Files:" : "Index versleutelde bestanden:", - "Last index:" : "Laatste index:", - "Indexing Bookmarks" : "bladwijzers indexeren", - "The App Bookmarks is not installed/enabled." : "De app bladwijzers is niet ingeschakeld.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bladwijzers\" ingeschakeld,Ā je bladwijzers worden geĆÆndexeerd.", - "Checking" : "Aan het controleren", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Bron niveau:", - "Higher performance" : "Hoogste prestatie", - "High performance" : "Hogere prestatie", - "Medium performance" : "Gemiddelde prestatie", - "Low performance" : "Lage prestatie", - "Lower performance" : "Laagste prestatie", - "Live Index:" : "Huidige index:", - "Disabled" : "Uitgeschakeld", - "Using Semaphore" : "Semaphore wordt gebruikt", - "Using Database" : "Database wordt gebruikt", - "Minimum Background Index delay:" : "Minimale achtergrond indexeringsvertraging:", - "hours" : "uur", - "Maximum Background Index delay:" : "Maximale achtergrond indexeringsvertraging:", - "days" : "dagen", - "Nextcloud Cron:" : "Nextcloud cron:", - "Number of documents:" : "Aantal documenten:", - "Number of segments:" : "Aantal segmenten:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Het wordt aanbevolen om bij de eerste indexering van de bestanden de ./occ nextant:index commando te gebruiken.", - "However, you can force it to be started as a background process." : "Maar, je kunt ook forceren dat het als een achtergrondproces wordt gestart.", - "Force first index as a cronjob" : "Eerste indexering als een cronjob forceren", - "Force index" : "Indexering forceren", - "Indexing is scheduled within the next few hours (Cron)" : "Indexeren is geplandĀ in de komende paar uur (cron)", - "Indexing in progress" : "Indexering is gaande", - "Type of files to extract" : "Bestand voor uittrekken intypen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstbestand (Tekst, HTML, Ondertitels, Broncodeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office documenten", - "Image (JPEG, TIFF)" : "Afbeelding (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audiobestand (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensies die je wilt negeren (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/nl.json b/l10n/nl.json deleted file mode 100644 index 7984a3a..0000000 --- a/l10n/nl.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Ga naar map", - "never" : "nooit", - "Nextant is not configured yet" : "Nextant is nog niet geconfigureerd", - "Ping querying your Solr Server" : "Ping bevraagt je Solr Server", - "Verifying Schema integrity" : "VerifiĆ«ren schema integriteit", - "Test simple text extract query" : "Test enkelvoudige tekst uitvraagopvraag", - "Test update document query" : "test bijwerken dopcumentopvraag", - "Test search query" : "Test zoekopdracht", - "Removing the test document" : "Verwijderen testdocument", - "All test went fine. Saving your configuration" : "Alles ok. Bezig je configuratie op te slaan", - "Address-format incorrect" : "OnjuistĀ adresformaat", - "Apache Solr is up, running and responding to ping query" : "Apache Solr draait en reageert op de ping opvraag", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr reageert niet op de ping opvraag (Fout #%1$s)", - "Schema is fine" : "Schema is goed", - "Unable to verify/fix schema integrity (Error #%1$s)" : " We kunnen het schema integriteit niet verifiĆ«ren/herstellen (Error #%1$s)", - "Text extracted" : "Tekst uitgepakt", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "UitpakkenĀ mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "FoutĀ bij bijwerken veld - kan originele document niet vinden - (Fout #%1$s)", - "Error during commit (Error #%1$s)" : "Fout bij verzenden (Fout #%1$s)", - "Error while updating field (Error #%1$s)" : "Fout bij bijwerken veld (Fout #%1$s)", - "Document updated" : "Document bijgewerkt", - "Found it" : "Gevonden", - "Found something, but not what was expected." : "Iets gevonden, maar niet precies wat we verwachtten.", - "Cannot find any document" : "Kan geen document vinden", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zoeken mislukt. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Test-document deleted" : "Test document verwijderd", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Konden testdocument niet verwijderen. Verifieer de configuratie van je Solr server (fout #%1$s)", - "Your configuration has been saved" : "Je configuratie is opgeslagen", - "Configuration could not be saved. Please reload this page." : "Configuratie werd niet opgeslagen. Herlaad deze pagina.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (volledige tekst zoekfunctie)", - "Specify the address of your Solr, and the name of the core to use." : "Geef het adres van Solr op, alsmede de naam van de te gebruiken kern.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Als je geen Solr servlet draait, vind jeĀ een handleiding voor de installatie in de wiki.", - "You can also find more information there about this interface." : "Je kunt daar ook meer informatie over deze interface krijgen.", - "Saving" : "Opslaan", - "Settings" : "Instellingen", - "Nextant version:" : "Nextant versie:", - "Address of your Solr servlet:" : "Adres van je Solr servlet :", - "Core:" : "Kern:", - "Timeout (in seconds):" : "Time-out (in seconden) :", - "Test and Save" : "Testen en opslaan", - "Indexing Files" : "Indexeren bestanden", - "Maximum File Size (Mb):" : "Maximale bestandsgrootte (Mb):", - "Edit your filters" : "Bewerk je filters", - "Index Files Tree:" : "Index bestandsboom:", - "Disable default search from Files" : "De standaard zoekfunctie voor bestanden uitzetten", - "Index File Trash:" : "Indexbestand Prullenbak:", - "Index Public Links:" : "Index publieke links:", - "Index Federated Shares:" : "Index gefedereerde shares:", - "Index External Storages:" : "Index externe opslag:", - "Index Encrypted Files:" : "Index versleutelde bestanden:", - "Last index:" : "Laatste index:", - "Indexing Bookmarks" : "bladwijzers indexeren", - "The App Bookmarks is not installed/enabled." : "De app bladwijzers is niet ingeschakeld.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App Bladwijzers\" ingeschakeld,Ā je bladwijzers worden geĆÆndexeerd.", - "Checking" : "Aan het controleren", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Bron niveau:", - "Higher performance" : "Hoogste prestatie", - "High performance" : "Hogere prestatie", - "Medium performance" : "Gemiddelde prestatie", - "Low performance" : "Lage prestatie", - "Lower performance" : "Laagste prestatie", - "Live Index:" : "Huidige index:", - "Disabled" : "Uitgeschakeld", - "Using Semaphore" : "Semaphore wordt gebruikt", - "Using Database" : "Database wordt gebruikt", - "Minimum Background Index delay:" : "Minimale achtergrond indexeringsvertraging:", - "hours" : "uur", - "Maximum Background Index delay:" : "Maximale achtergrond indexeringsvertraging:", - "days" : "dagen", - "Nextcloud Cron:" : "Nextcloud cron:", - "Number of documents:" : "Aantal documenten:", - "Number of segments:" : "Aantal segmenten:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Het wordt aanbevolen om bij de eerste indexering van de bestanden de ./occ nextant:index commando te gebruiken.", - "However, you can force it to be started as a background process." : "Maar, je kunt ook forceren dat het als een achtergrondproces wordt gestart.", - "Force first index as a cronjob" : "Eerste indexering als een cronjob forceren", - "Force index" : "Indexering forceren", - "Indexing is scheduled within the next few hours (Cron)" : "Indexeren is geplandĀ in de komende paar uur (cron)", - "Indexing in progress" : "Indexering is gaande", - "Type of files to extract" : "Bestand voor uittrekken intypen", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Tekstbestand (Tekst, HTML, Ondertitels, Broncodeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Office documenten", - "Image (JPEG, TIFF)" : "Afbeelding (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Audiobestand (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Extensies die je wilt negeren (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/pl.js b/l10n/pl.js deleted file mode 100644 index 2993fe0..0000000 --- a/l10n/pl.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "PrzejdÅŗ do folderu", - "never" : "nigdy", - "Nextant is not configured yet" : "Nextant nie jest jeszcze skonfigurowany", - "Ping querying your Solr Server" : "Pinguję twĆ³j serwer Solr", - "Verifying Schema integrity" : "Sprawdzanie integralności Schema", - "Test simple text extract query" : "Test podstawowego zapytania ekstrakcji tekstu", - "Test update document query" : "Test zapytania aktualizacji dokumentu", - "Test search query" : "Test kwerendy wyszukiwania", - "Removing the test document" : "Usuwanie dokumentu testowego", - "All test went fine. Saving your configuration" : "Wszystkie testy wypadły dobrze. Zapisywanie konfiguracji", - "Address-format incorrect" : "Format adresu jest nieprawidłowy", - "Apache Solr is up, running and responding to ping query" : "Apache Solr jest uruchomiony i odpowiada na zapytania ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nie odpowiada na zapytania ping (Error #%1$s)", - "Schema is fine" : "Schema jest poprawny", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Nie można zweryfikować/naprawić integralności struktury (Błąd #%1$s)", - "Text extracted" : "Tekst wyodrębnony", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyodrębnianie nie powiodło się. SprawdÅŗ proszę konfigurację swojego serwera Solr (Błąd #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Błąd aktualizacji pola. Nie odnaleziono oryginalnego dokumentu (Błąd #%1$s)", - "Error during commit (Error #%1$s)" : "Błąd przy zatwierdzaniu (Błąd#%1$s)", - "Error while updating field (Error #%1$s)" : "Błąd w trakcie aktualizacji pola (Błąd #%1$s)", - "Document updated" : "Dokument został zaktualizowany", - "Found it" : "Znaleziono", - "Found something, but not what was expected." : "Znaleziono coś, jednak nie to czego się spodziewano.", - "Cannot find any document" : "Nie można znaleÅŗć żadnego dokumentu", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyszukiwanie nie powiodło się. Proszę sprawdzić konfigurację serwera Solr (Error #%1$s)", - "Test-document deleted" : "Dokument testowy usunięty", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nie można usunąc dokumentu testowego. SprawdÅŗ konfigurację swojego serwera Solr (Błąd #%1$s)", - "Your configuration has been saved" : "Konfiguracja została zapisana", - "Configuration could not be saved. Please reload this page." : "Konfiguracja nie mogła zostać zapisana. Odśwież stronę.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Podaj adres swojego Solr i nazwę core do użycia.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Jeśli nie posiadasz własnego serwletu Solr, na wiki znajdziesz przewodnik jak go zainstalować.", - "You can also find more information there about this interface." : "Znajdziesz tam też więcej informacji na temat tego interfejsu.", - "Saving" : "Zapisuję", - "Settings" : "Ustawienia", - "Nextant version:" : "Wersja Nextant:", - "Address of your Solr servlet:" : "Adres twojego serwletu Solr:", - "Core:" : "Jądro:", - "Timeout (in seconds):" : "Limit czasu (w sekundach):", - "Test and Save" : "SprawdÅŗ i zapisz", - "Indexing Files" : "Indeksowanie plikĆ³w", - "Maximum File Size (Mb):" : "Maksymalny rozmiar pliku (MB):", - "Edit your filters" : "Edytuj filtry", - "Index Files Tree:" : "Indeksuj drzewo plikĆ³w:", - "Disable default search from Files" : "Wyłącz domyślne wyszukiwanie z plikĆ³w", - "Index File Trash:" : "Indeksuj pliki w koszu:", - "Index Public Links:" : "Indeksuj publiczne linki:", - "Index Federated Shares:" : "Indeksuj stowarzyszone udziały:", - "Index External Storages:" : "Indeksuj magazyny zewnętrzne:", - "Index Encrypted Files:" : "Indeksuj zaszyfrowane pliki:", - "Last index:" : "Ostatnio indeksowane:", - "Indexing Bookmarks" : "Indeksowanie zakładek", - "The App Bookmarks is not installed/enabled." : "Aplikacja Zakładki nie jest zainstalowana/włączona.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplikacja Zakładki jest włączona, zakładki będą indeksowane.", - "Checking" : "Sprawdzam", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Poziom zasobĆ³w:", - "Higher performance" : "Wyższa wydajność", - "High performance" : "Wysoka wydajność", - "Medium performance" : "Średnia wydajność", - "Low performance" : "Niska wydajność", - "Lower performance" : "Niższa wydajność", - "Live Index:" : "Aktualnie indeksowane:", - "Disabled" : "Wyłączone", - "Using Semaphore" : "Używam semafora.", - "Using Database" : "Korzystanie z bazy danych", - "Minimum Background Index delay:" : "Minimalne opĆ³Åŗnienie indeksowania w tle:", - "hours" : "godziny", - "Maximum Background Index delay:" : "Maksymalne opĆ³Åŗnienie indeksowania w tle:", - "days" : "dni", - "Nextcloud Cron:" : "Zadania cron Nextcloud:", - "Number of documents:" : "Liczba dokumentĆ³w:", - "Number of segments:" : "Liczba segmentĆ³w:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Zalecamy, aby pierwsze indeksowanie plikĆ³w wykonać poprzez komendę ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Jednakże możesz wymusić, aby startowało jako proces w tle.", - "Force first index as a cronjob" : "Wymuś pierwsze indeksowanie poprzez zadanie crona", - "Force index" : "Wymuś indeksowanie", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksowanie jest zaplanowane w ciągu kilku następnych godzin (cron)", - "Indexing in progress" : "Indeksowanie w toku", - "Type of files to extract" : "Rodzaj plikĆ³w do wyodrębnienia", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Pliki tekstowe (Text, Html, Napisy, Kod ÅŗrĆ³dłowy, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumenty biurowe", - "Image (JPEG, TIFF)" : "Obraz (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Plik audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Rozszerzenia, ktĆ³re chcesz ignorować (.java .xml)" -}, -"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/l10n/pl.json b/l10n/pl.json deleted file mode 100644 index 4a9bea4..0000000 --- a/l10n/pl.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "PrzejdÅŗ do folderu", - "never" : "nigdy", - "Nextant is not configured yet" : "Nextant nie jest jeszcze skonfigurowany", - "Ping querying your Solr Server" : "Pinguję twĆ³j serwer Solr", - "Verifying Schema integrity" : "Sprawdzanie integralności Schema", - "Test simple text extract query" : "Test podstawowego zapytania ekstrakcji tekstu", - "Test update document query" : "Test zapytania aktualizacji dokumentu", - "Test search query" : "Test kwerendy wyszukiwania", - "Removing the test document" : "Usuwanie dokumentu testowego", - "All test went fine. Saving your configuration" : "Wszystkie testy wypadły dobrze. Zapisywanie konfiguracji", - "Address-format incorrect" : "Format adresu jest nieprawidłowy", - "Apache Solr is up, running and responding to ping query" : "Apache Solr jest uruchomiony i odpowiada na zapytania ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nie odpowiada na zapytania ping (Error #%1$s)", - "Schema is fine" : "Schema jest poprawny", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Nie można zweryfikować/naprawić integralności struktury (Błąd #%1$s)", - "Text extracted" : "Tekst wyodrębnony", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyodrębnianie nie powiodło się. SprawdÅŗ proszę konfigurację swojego serwera Solr (Błąd #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Błąd aktualizacji pola. Nie odnaleziono oryginalnego dokumentu (Błąd #%1$s)", - "Error during commit (Error #%1$s)" : "Błąd przy zatwierdzaniu (Błąd#%1$s)", - "Error while updating field (Error #%1$s)" : "Błąd w trakcie aktualizacji pola (Błąd #%1$s)", - "Document updated" : "Dokument został zaktualizowany", - "Found it" : "Znaleziono", - "Found something, but not what was expected." : "Znaleziono coś, jednak nie to czego się spodziewano.", - "Cannot find any document" : "Nie można znaleÅŗć żadnego dokumentu", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Wyszukiwanie nie powiodło się. Proszę sprawdzić konfigurację serwera Solr (Error #%1$s)", - "Test-document deleted" : "Dokument testowy usunięty", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nie można usunąc dokumentu testowego. SprawdÅŗ konfigurację swojego serwera Solr (Błąd #%1$s)", - "Your configuration has been saved" : "Konfiguracja została zapisana", - "Configuration could not be saved. Please reload this page." : "Konfiguracja nie mogła zostać zapisana. Odśwież stronę.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Full-Text Search)", - "Specify the address of your Solr, and the name of the core to use." : "Podaj adres swojego Solr i nazwę core do użycia.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Jeśli nie posiadasz własnego serwletu Solr, na wiki znajdziesz przewodnik jak go zainstalować.", - "You can also find more information there about this interface." : "Znajdziesz tam też więcej informacji na temat tego interfejsu.", - "Saving" : "Zapisuję", - "Settings" : "Ustawienia", - "Nextant version:" : "Wersja Nextant:", - "Address of your Solr servlet:" : "Adres twojego serwletu Solr:", - "Core:" : "Jądro:", - "Timeout (in seconds):" : "Limit czasu (w sekundach):", - "Test and Save" : "SprawdÅŗ i zapisz", - "Indexing Files" : "Indeksowanie plikĆ³w", - "Maximum File Size (Mb):" : "Maksymalny rozmiar pliku (MB):", - "Edit your filters" : "Edytuj filtry", - "Index Files Tree:" : "Indeksuj drzewo plikĆ³w:", - "Disable default search from Files" : "Wyłącz domyślne wyszukiwanie z plikĆ³w", - "Index File Trash:" : "Indeksuj pliki w koszu:", - "Index Public Links:" : "Indeksuj publiczne linki:", - "Index Federated Shares:" : "Indeksuj stowarzyszone udziały:", - "Index External Storages:" : "Indeksuj magazyny zewnętrzne:", - "Index Encrypted Files:" : "Indeksuj zaszyfrowane pliki:", - "Last index:" : "Ostatnio indeksowane:", - "Indexing Bookmarks" : "Indeksowanie zakładek", - "The App Bookmarks is not installed/enabled." : "Aplikacja Zakładki nie jest zainstalowana/włączona.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplikacja Zakładki jest włączona, zakładki będą indeksowane.", - "Checking" : "Sprawdzam", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "Poziom zasobĆ³w:", - "Higher performance" : "Wyższa wydajność", - "High performance" : "Wysoka wydajność", - "Medium performance" : "Średnia wydajność", - "Low performance" : "Niska wydajność", - "Lower performance" : "Niższa wydajność", - "Live Index:" : "Aktualnie indeksowane:", - "Disabled" : "Wyłączone", - "Using Semaphore" : "Używam semafora.", - "Using Database" : "Korzystanie z bazy danych", - "Minimum Background Index delay:" : "Minimalne opĆ³Åŗnienie indeksowania w tle:", - "hours" : "godziny", - "Maximum Background Index delay:" : "Maksymalne opĆ³Åŗnienie indeksowania w tle:", - "days" : "dni", - "Nextcloud Cron:" : "Zadania cron Nextcloud:", - "Number of documents:" : "Liczba dokumentĆ³w:", - "Number of segments:" : "Liczba segmentĆ³w:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Zalecamy, aby pierwsze indeksowanie plikĆ³w wykonać poprzez komendę ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Jednakże możesz wymusić, aby startowało jako proces w tle.", - "Force first index as a cronjob" : "Wymuś pierwsze indeksowanie poprzez zadanie crona", - "Force index" : "Wymuś indeksowanie", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksowanie jest zaplanowane w ciągu kilku następnych godzin (cron)", - "Indexing in progress" : "Indeksowanie w toku", - "Type of files to extract" : "Rodzaj plikĆ³w do wyodrębnienia", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Pliki tekstowe (Text, Html, Napisy, Kod ÅŗrĆ³dłowy, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumenty biurowe", - "Image (JPEG, TIFF)" : "Obraz (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Plik audio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Rozszerzenia, ktĆ³re chcesz ignorować (.java .xml)" -},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" -} \ No newline at end of file diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js deleted file mode 100644 index 5960688..0000000 --- a/l10n/pt_BR.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Ir para a pasta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant nĆ£o estĆ” configurado ainda", - "Ping querying your Solr Server" : "SolicitaĆ§Ć£o ping ao seu servidor Solr", - "Verifying Schema integrity" : "Verificando integridade do Schema", - "Test simple text extract query" : "Testar uma consulta de extraĆ§Ć£o simples de texto", - "Test update document query" : "Testar uma consulta de atualizaĆ§Ć£o de documento", - "Test search query" : "Testar uma consulta de pesquisa", - "Removing the test document" : "Excluindo o documento de teste", - "All test went fine. Saving your configuration" : "Todos os testes funcionaram. Salvando sua configuraĆ§Ć£o", - "Address-format incorrect" : "Formato do endereƧo errado", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” ativo, funcionando e respondendo Ć  solicitaƧƵes", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nĆ£o estĆ” respondendo Ć  solicitaĆ§Ć£o do ping (Erro #%1$s)", - "Schema is fine" : "Schema estĆ” bom", - "Unable to verify/fix schema integrity (Error #%1$s)" : "NĆ£o foi possĆ­vel verificar/reparar a integridade do schema (Erro #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "A extraĆ§Ć£o falhou. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Erro atualizando campo - NĆ£o foi possĆ­vel encontrar o documento original - (Erro #%1$s)", - "Error during commit (Error #%1$s)" : "Erro durante a efetivaĆ§Ć£o (Erro #%1$s)", - "Error while updating field (Error #%1$s)" : "Erro ao atualizar campo (Erro #%1$s)", - "Document updated" : "Documento atualizado", - "Found it" : "Encontrado", - "Found something, but not what was expected." : "Foi encontrado algo mas nĆ£o era o esperado.", - "Cannot find any document" : "Nenhum documento encontrado", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Pesquisa falhou. Por favor, verifique a configuraĆ§Ć£o do seu servidor Solr (Erro #%1$s)", - "Test-document deleted" : "Documento de teste excluĆ­do", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "NĆ£o foi possĆ­vel excluir o documento de teste. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)", - "Your configuration has been saved" : "Sua configuraĆ§Ć£o foi salva", - "Configuration could not be saved. Please reload this page." : "A configuraĆ§Ć£o nĆ£o foi salva. Atualize a pĆ”gina.", - "Nextant" : "PrĆ³xima", - "Nextant (Full-Text Search)" : "Nextant (Pesquisa por texto completo)", - "Specify the address of your Solr, and the name of the core to use." : "Especifique o endereƧo do seu Solr e o nome do nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se vocĆŖ nĆ£o tem um servlet Solr rodando, guias de instalaĆ§Ć£o podem ser encontrados no wiki.", - "You can also find more information there about this interface." : "VocĆŖ tambĆ©m pode encontrar mais informaƧƵes lĆ” sobre essa interface.", - "Saving" : "Salvando", - "Settings" : "ConfiguraƧƵes", - "Nextant version:" : "PrĆ³xima versĆ£o:", - "Address of your Solr servlet:" : "EndereƧo de seu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Timeout (em segundos):", - "Test and Save" : "Testar e Salvar", - "Indexing Files" : "Indexando Arquivos", - "Maximum File Size (Mb):" : "Tamanho MĆ”ximo de um Arquivo (MB):", - "Edit your filters" : "Editar seus filtros", - "Index Files Tree:" : "Ɓrvore de Arquivos de ƍndice:", - "Disable default search from Files" : "Desativar pesquisa padrĆ£o de arquivos", - "Index File Trash:" : "Indexar Lixeira de Arquivos:", - "Index Public Links:" : "Indexar Links PĆŗblicos:", - "Index Federated Shares:" : "Indexar Compartilhamentos Federados:", - "Index External Storages:" : "Indexar Armazenamentos Externos:", - "Index Encrypted Files:" : "Indexar Arquivos Criptografados:", - "Last index:" : "ƚltima IndexaĆ§Ć£o:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "O Aplicativo Marcadores nĆ£o estĆ” instalado/habilitado.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplicativo \"Bookmarks\" habilitado. Seus favoritos serĆ£o indexados.", - "Checking" : "Verificando", - "Nextant Status" : "Estado do Nextant", - "Resource Level:" : "NĆ­vel de Recurso:", - "Higher performance" : "Maior desempenho", - "High performance" : "Alto desempenho", - "Medium performance" : "Desempenho mĆ©dio", - "Low performance" : "Desempenho baixo", - "Lower performance" : "Desempenho mais baixo", - "Live Index:" : "IndexaĆ§Ć£o ao Vivo:", - "Disabled" : "Desabilitado", - "Using Semaphore" : "Utilizando SemĆ”foro", - "Using Database" : "Usando Banco de Dados", - "Minimum Background Index delay:" : "Atraso MĆ­nimo na IndexaĆ§Ć£o em segundo plano:", - "hours" : "horas", - "Maximum Background Index delay:" : "Atraso MĆ”ximo na IndexaĆ§Ć£o em segundo plano:", - "days" : "dias", - "Nextcloud Cron:" : "Cron Nextcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Ɖ recomendĆ”vel fazer a primeira indexaĆ§Ć£o de seus arquivos usando o comando ./occ nextant: index.", - "However, you can force it to be started as a background process." : "No entanto, vocĆŖ pode forƧƔ-lo a iniciar como um processo em segundo plano.", - "Force first index as a cronjob" : "ForƧar 0 primeiro Ć­ndice como cronjob", - "Force index" : "ForƧar indexaĆ§Ć£o", - "Indexing is scheduled within the next few hours (Cron)" : "A indexaĆ§Ć£o estĆ” programada para dentro de algumas horas (Cron)", - "Indexing in progress" : "IndexaĆ§Ć£o em progresso", - "Type of files to extract" : "Tipos de arquivo a extrair", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Arquivo de Texto (Texto, HTML, Legendas, CĆ³digo Fonteā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos do Office", - "Image (JPEG, TIFF)" : "Imagem (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Arquivo de Ɓudio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "ExtensƵes que vocĆŖ deseja ignorar (.java .xml)" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json deleted file mode 100644 index 5c3f4e6..0000000 --- a/l10n/pt_BR.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Ir para a pasta", - "never" : "nunca", - "Nextant is not configured yet" : "Nextant nĆ£o estĆ” configurado ainda", - "Ping querying your Solr Server" : "SolicitaĆ§Ć£o ping ao seu servidor Solr", - "Verifying Schema integrity" : "Verificando integridade do Schema", - "Test simple text extract query" : "Testar uma consulta de extraĆ§Ć£o simples de texto", - "Test update document query" : "Testar uma consulta de atualizaĆ§Ć£o de documento", - "Test search query" : "Testar uma consulta de pesquisa", - "Removing the test document" : "Excluindo o documento de teste", - "All test went fine. Saving your configuration" : "Todos os testes funcionaram. Salvando sua configuraĆ§Ć£o", - "Address-format incorrect" : "Formato do endereƧo errado", - "Apache Solr is up, running and responding to ping query" : "Apache Solr estĆ” ativo, funcionando e respondendo Ć  solicitaƧƵes", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nĆ£o estĆ” respondendo Ć  solicitaĆ§Ć£o do ping (Erro #%1$s)", - "Schema is fine" : "Schema estĆ” bom", - "Unable to verify/fix schema integrity (Error #%1$s)" : "NĆ£o foi possĆ­vel verificar/reparar a integridade do schema (Erro #%1$s)", - "Text extracted" : "Texto extraĆ­do", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "A extraĆ§Ć£o falhou. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Erro atualizando campo - NĆ£o foi possĆ­vel encontrar o documento original - (Erro #%1$s)", - "Error during commit (Error #%1$s)" : "Erro durante a efetivaĆ§Ć£o (Erro #%1$s)", - "Error while updating field (Error #%1$s)" : "Erro ao atualizar campo (Erro #%1$s)", - "Document updated" : "Documento atualizado", - "Found it" : "Encontrado", - "Found something, but not what was expected." : "Foi encontrado algo mas nĆ£o era o esperado.", - "Cannot find any document" : "Nenhum documento encontrado", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Pesquisa falhou. Por favor, verifique a configuraĆ§Ć£o do seu servidor Solr (Erro #%1$s)", - "Test-document deleted" : "Documento de teste excluĆ­do", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "NĆ£o foi possĆ­vel excluir o documento de teste. Verifique a configuraĆ§Ć£o do servidor Solr (Erro #%1$s)", - "Your configuration has been saved" : "Sua configuraĆ§Ć£o foi salva", - "Configuration could not be saved. Please reload this page." : "A configuraĆ§Ć£o nĆ£o foi salva. Atualize a pĆ”gina.", - "Nextant" : "PrĆ³xima", - "Nextant (Full-Text Search)" : "Nextant (Pesquisa por texto completo)", - "Specify the address of your Solr, and the name of the core to use." : "Especifique o endereƧo do seu Solr e o nome do nĆŗcleo a usar.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Se vocĆŖ nĆ£o tem um servlet Solr rodando, guias de instalaĆ§Ć£o podem ser encontrados no wiki.", - "You can also find more information there about this interface." : "VocĆŖ tambĆ©m pode encontrar mais informaƧƵes lĆ” sobre essa interface.", - "Saving" : "Salvando", - "Settings" : "ConfiguraƧƵes", - "Nextant version:" : "PrĆ³xima versĆ£o:", - "Address of your Solr servlet:" : "EndereƧo de seu servlet Solr:", - "Core:" : "NĆŗcleo:", - "Timeout (in seconds):" : "Timeout (em segundos):", - "Test and Save" : "Testar e Salvar", - "Indexing Files" : "Indexando Arquivos", - "Maximum File Size (Mb):" : "Tamanho MĆ”ximo de um Arquivo (MB):", - "Edit your filters" : "Editar seus filtros", - "Index Files Tree:" : "Ɓrvore de Arquivos de ƍndice:", - "Disable default search from Files" : "Desativar pesquisa padrĆ£o de arquivos", - "Index File Trash:" : "Indexar Lixeira de Arquivos:", - "Index Public Links:" : "Indexar Links PĆŗblicos:", - "Index Federated Shares:" : "Indexar Compartilhamentos Federados:", - "Index External Storages:" : "Indexar Armazenamentos Externos:", - "Index Encrypted Files:" : "Indexar Arquivos Criptografados:", - "Last index:" : "ƚltima IndexaĆ§Ć£o:", - "Indexing Bookmarks" : "Indexando Marcadores", - "The App Bookmarks is not installed/enabled." : "O Aplicativo Marcadores nĆ£o estĆ” instalado/habilitado.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "Aplicativo \"Bookmarks\" habilitado. Seus favoritos serĆ£o indexados.", - "Checking" : "Verificando", - "Nextant Status" : "Estado do Nextant", - "Resource Level:" : "NĆ­vel de Recurso:", - "Higher performance" : "Maior desempenho", - "High performance" : "Alto desempenho", - "Medium performance" : "Desempenho mĆ©dio", - "Low performance" : "Desempenho baixo", - "Lower performance" : "Desempenho mais baixo", - "Live Index:" : "IndexaĆ§Ć£o ao Vivo:", - "Disabled" : "Desabilitado", - "Using Semaphore" : "Utilizando SemĆ”foro", - "Using Database" : "Usando Banco de Dados", - "Minimum Background Index delay:" : "Atraso MĆ­nimo na IndexaĆ§Ć£o em segundo plano:", - "hours" : "horas", - "Maximum Background Index delay:" : "Atraso MĆ”ximo na IndexaĆ§Ć£o em segundo plano:", - "days" : "dias", - "Nextcloud Cron:" : "Cron Nextcloud:", - "Number of documents:" : "NĆŗmero de documentos:", - "Number of segments:" : "NĆŗmero de segmentos:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Ɖ recomendĆ”vel fazer a primeira indexaĆ§Ć£o de seus arquivos usando o comando ./occ nextant: index.", - "However, you can force it to be started as a background process." : "No entanto, vocĆŖ pode forƧƔ-lo a iniciar como um processo em segundo plano.", - "Force first index as a cronjob" : "ForƧar 0 primeiro Ć­ndice como cronjob", - "Force index" : "ForƧar indexaĆ§Ć£o", - "Indexing is scheduled within the next few hours (Cron)" : "A indexaĆ§Ć£o estĆ” programada para dentro de algumas horas (Cron)", - "Indexing in progress" : "IndexaĆ§Ć£o em progresso", - "Type of files to extract" : "Tipos de arquivo a extrair", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Arquivo de Texto (Texto, HTML, Legendas, CĆ³digo Fonteā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Documentos do Office", - "Image (JPEG, TIFF)" : "Imagem (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Arquivo de Ɓudio (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "ExtensƵes que vocĆŖ deseja ignorar (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/l10n/ru.js b/l10n/ru.js deleted file mode 100644 index 5c7fee8..0000000 --- a/l10n/ru.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Š² ŠŗŠ°Ń‚Š°Š»Š¾Š³", - "never" : "Š½ŠøŠŗŠ¾Š³Š“Š°", - "Nextant is not configured yet" : "Nextant ŠµŃ‰Ń‘ Š½Šµ Š½Š°ŃŃ‚Ń€Š¾ŠµŠ½", - "Ping querying your Solr Server" : "ŠŸŠøŠ½Š³ŃƒŠµŠ¼ сŠµŃ€Š²ŠµŃ€ Solr", - "Verifying Schema integrity" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚Šø схŠµŠ¼Ń‹", - "Test simple text extract query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя ŠæрŠ¾ŃŃ‚Š¾Š³Š¾ тŠµŠŗстŠ°", - "Test update document query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° Š¾Š±Š½Š¾Š²Š»ŠµŠ½Šøя Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°", - "Test search query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠæŠ¾ŠøсŠŗŠ°", - "Removing the test document" : "Š£Š“Š°Š»ŠµŠ½ŠøŠµ ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Š¾Š³Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°", - "All test went fine. Saving your configuration" : "Š’сŠµ ŠæрŠ¾Š²ŠµŃ€ŠŗŠø ŠæрŠ¾ŃˆŠ»Šø усŠæŠµŃˆŠ½Š¾. Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø", - "Address-format incorrect" : "ŠŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ фŠ¾Ń€Š¼Š°Ń‚ Š°Š“рŠµŃŠ°", - "Apache Solr is up, running and responding to ping query" : "Š”ŠµŃ€Š²Šøс Apache Solr Š·Š°ŠæущŠµŠ½ Šø Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Š”ŠµŃ€Š²Šøс Apache Solr Š½Šµ Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Schema is fine" : "Š”хŠµŠ¼Š° Š² ŠæŠ¾Ń€ŃŠ“ŠŗŠµ", - "Unable to verify/fix schema integrity (Error #%1$s)" : "ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Š²ŠµŃ€Šøть/ŠøсŠæрŠ°Š²Šøть цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚ŃŒ схŠµŠ¼Ń‹ (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Text extracted" : "Š¢ŠµŠŗст ŠøŠ·Š²Š»ŠµŃ‡Ń‘Š½", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½ŠøŠø. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń ā€” ŠŠµ уŠ“Š°Ń‘Ń‚ŃŃ Š½Š°Š¹Ń‚Šø ŠøсхŠ¾Š“Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ ā€” (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Error during commit (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° Š²Š¾ Š²Ń€ŠµŠ¼Ń Š·Š°ŠæŠøсŠø (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Document updated" : "Š”Š¾ŠŗуŠ¼ŠµŠ½Ń‚ Š¾Š±Š½Š¾Š²Š»Ń‘Š½", - "Found it" : "ŠŠ°Š¹Š“ŠµŠ½Š¾", - "Found something, but not what was expected." : "Š§Ń‚Š¾-тŠ¾ Š½Š°Š¹Š“ŠµŠ½Š¾, Š½Š¾ Š½Šµ тŠ¾, чтŠ¾ Š¾Š¶ŠøŠ“Š°Š»Š¾ŃŃŒ.", - "Cannot find any document" : "ŠŠµ уŠ“Š°ŠµŃ‚ся Š½Š°Š¹Ń‚Šø Š½Šø Š¾Š“ŠøŠ½ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Š”Š±Š¾Š¹ ŠæŠ¾ŠøсŠŗŠ°. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø cŠµŃ€Š²Š»ŠµŃ‚Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Test-document deleted" : "ŠŸŃ€Š¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ уŠ“Š°Š»Ń‘Š½", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ŠŠµ уŠ“Š°Š»Š¾ŃŃŒ уŠ“Š°Š»Šøть ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Your configuration has been saved" : "Š’Š°ŃˆŠ° ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя Š±Ń‹Š»Š° сŠ¾Ń…Ń€Š°Š½ŠµŠ½Š°", - "Configuration could not be saved. Please reload this page." : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š·Š°ŠæŠøсŠø ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø. ŠŸŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøтŠµ эту стрŠ°Š½Šøцу.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (ŠŸŠ¾Š»Š½Š¾Ń‚ŠµŠŗстŠ¾Š²Ń‹Š¹ ŠæŠ¾ŠøсŠŗ)", - "Specify the address of your Solr, and the name of the core to use." : "Š£ŠŗŠ°Š¶ŠøтŠµ Š°Š“рŠµŃ Š²Š°ŃˆŠµŠ³Š¾ сŠµŃ€Š²ŠµŃ€Š° Solr Šø ŠøŠ¼Ń яŠ“рŠ° Š“Š»Ń ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½Šøя.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Š•ŃŠ»Šø у Š²Š°Ń Š½Šµ Š·Š°ŠæущŠµŠ½ сŠµŃ€Š²Š»ŠµŃ‚ Solr, Š¼Š¾Š¶ŠµŃ‚Šµ Š¾Š·Š½Š°ŠŗŠ¾Š¼Šøться Š½Š° wiki с руŠŗŠ¾Š²Š¾Š“стŠ²Š°Š¼Šø ŠæŠ¾ ŠµŠ³Š¾ устŠ°Š½Š¾Š²ŠŗŠµ.", - "You can also find more information there about this interface." : "Š¢Š°Š¼ тŠ°Šŗ Š¶Šµ Š²Ń‹ Š½Š°Š¹Š“ётŠµ Š±Š¾Š»ŃŒŃˆŠµ ŠøŠ½Ń„Š¾Ń€Š¼Š°Ń†ŠøŠø Š¾ этŠ¾Š¼ ŠøŠ½Ń‚ŠµŃ€Ń„ŠµŠ¹ŃŠµ.", - "Saving" : "Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ", - "Settings" : "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø", - "Nextant version:" : "Š’ŠµŃ€ŃŠøя Nextant:", - "Address of your Solr servlet:" : "ŠŠ“рŠµŃ сŠµŃ€Š²Š»ŠµŃ‚Š° Solr:", - "Core:" : "ŠÆŠ“рŠ¾:", - "Timeout (in seconds):" : "Š¢Š°Š¹Š¼Š°ŃƒŃ‚ (Š² сŠµŠŗуŠ½Š“Š°Ń…):", - "Test and Save" : "ŠŸŃ€Š¾Š²ŠµŃ€Šøть Šø Š·Š°ŠæŠøсŠ°Ń‚ŃŒ", - "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя фŠ°Š¹Š»Š¾Š²", - "Maximum File Size (Mb):" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ рŠ°Š·Š¼ŠµŃ€ фŠ°Š¹Š»Š° (ŠœŠ±):", - "Edit your filters" : "Š ŠµŠ“Š°ŠŗтŠøрŠ¾Š²Š°Ń‚ŃŒ фŠøŠ»ŃŒŃ‚ры", - "Index Files Tree:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š“ŠµŃ€ŠµŠ²Š¾ фŠ°Š¹Š»Š¾Š²", - "Disable default search from Files" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡Šøть ŠæŠ¾ŠøсŠŗ ŠæŠ¾ уŠ¼Š¾Š»Ń‡Š°Š½Šøю Š¾Ń‚ фŠ°Š¹Š»Š¾Š²", - "Index File Trash:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š² ŠŗŠ¾Ń€Š·ŠøŠ½Šµ:", - "Index Public Links:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š¾Š±Ń‰ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Ń‹Šµ ссыŠ»ŠŗŠø:", - "Index Federated Shares:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ фŠµŠ“ŠµŃ€Š°Ń‚ŠøŠ²Š½Ń‹Šµ Š¾Š±Ń‰ŠøŠµ рŠµŃŃƒŃ€ŃŃ‹:", - "Index External Storages:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š²Š½ŠµŃˆŠ½ŠøŠµ хрŠ°Š½ŠøŠ»ŠøщŠ°:", - "Index Encrypted Files:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°ŃˆŠøфрŠ¾Š²Š°Š½Š½Ń‹Šµ фŠ°Š¹Š»Ń‹:", - "Last index:" : "ŠŸŠ¾ŃŠ»ŠµŠ“Š½ŃŃ ŠøŠ½Š“ŠµŠŗсŠ°Ń†Šøя:", - "Indexing Bookmarks" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя Š·Š°ŠŗŠ»Š°Š“Š¾Šŗ", - "The App Bookmarks is not installed/enabled." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š—Š°ŠŗŠ»Š°Š“ŠŗŠø Š½Šµ устŠ°Š½Š¾Š²Š»ŠµŠ½Š¾/Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Ā«Š—Š°ŠŗŠ»Š°Š“ŠŗŠøĀ» Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾, Š²Š°ŃˆŠø Š·Š°ŠŗŠ»Š°Š“ŠŗŠø Š±ŃƒŠ“ут ŠæрŠ¾ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Ń‹.", - "Checking" : "ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŠ¼", - "Nextant Status" : "Š”Š¾ŃŃ‚Š¾ŃŠ½ŠøŠµ Nexant", - "Resource Level:" : "Š£Ń€Š¾Š²ŠµŠ½ŃŒ рŠµŃŃƒŃ€ŃŠ¾Š²:", - "Higher performance" : "ŠŠ°ŠøŠ²Ń‹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "High performance" : "Š’ысŠ¾ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Medium performance" : "Š”рŠµŠ“Š½ŃŃ ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Low performance" : "ŠŠøŠ·ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Lower performance" : "ŠŠøŠ¶Š°Š¹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Live Index:" : "Š–ŠøŠ²Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ:", - "Disabled" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾", - "Using Semaphore" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ сŠµŠ¼Š°Ń„Š¾Ń€Ń‹", - "Using Database" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ Š±Š°Š·Ńƒ Š“Š°Š½Š½Ń‹Ń…", - "Minimum Background Index delay:" : "ŠœŠøŠ½ŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:", - "hours" : "чŠ°ŃŠ¾Š²", - "Maximum Background Index delay:" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:", - "days" : "Š“Š½ŠµŠ¹", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š¾Š²:", - "Number of segments:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ сŠµŠ³Š¼ŠµŠ½Ń‚Š¾Š²:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Š¼Ń‹ сŠ¾Š²ŠµŃ‚ŃƒŠµŠ¼ ŠæрŠ¾ŠøŠ·Š²ŠµŃŃ‚Šø ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ фŠ°Š¹Š»Š¾Š² ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ ŠŗŠ¾Š¼Š°Š½Š“ы ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Š¢ŠµŠ¼ Š½Šµ Š¼ŠµŠ½ŠµŠµ, Š²Ń‹ Š¼Š¾Š¶ŠµŃ‚Šµ ŠæрŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ Š·Š°ŠæустŠøть ŠµŠ³Š¾ фŠ¾Š½Š¾Š²Ń‹Š¼ ŠæрŠ¾Ń†ŠµŃŃŠ¾Š¼.", - "Force first index as a cronjob" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°Š“Š°Ń‡ŠµŠ¹ ŠæŠ»Š°Š½ŠøрŠ¾Š²Ń‰ŠøŠŗŠ° cron", - "Force index" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ", - "Indexing is scheduled within the next few hours (Cron)" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š·Š°ŠæŠ»Š°Š½ŠøрŠ¾Š²Š°Š½Š¾ Š² тŠµŃ‡ŠµŠ½ŠøŠø Š½ŠµŃŠŗŠ¾Š»ŃŒŠŗŠøх чŠ°ŃŠ¾Š² (Š”ron)", - "Indexing in progress" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š² ŠæрŠ¾Ń†ŠµŃŃŠµ", - "Type of files to extract" : "Š¢ŠøŠæы фŠ°Š¹Š»Š¾Š² Š“Š»Ń ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Š¢ŠµŠŗстŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (Š¢ŠµŠŗст, HTML, суŠ±Ń‚Šøтры, ŠøсхŠ¾Š“Š½Ń‹Šµ ŠŗŠ¾Š“ы...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "ŠžŃ„ŠøсŠ½Ń‹Šµ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Ń‹", - "Image (JPEG, TIFF)" : "Š˜Š·Š¾Š±Ń€Š°Š¶ŠµŠ½Šøя (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Š˜Š³Š½Š¾Ń€ŠøруŠµŠ¼Ń‹Šµ рŠ°ŃŃˆŠøрŠµŠ½Šøя (.java .xml)" -}, -"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/l10n/ru.json b/l10n/ru.json deleted file mode 100644 index b4571b4..0000000 --- a/l10n/ru.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Š² ŠŗŠ°Ń‚Š°Š»Š¾Š³", - "never" : "Š½ŠøŠŗŠ¾Š³Š“Š°", - "Nextant is not configured yet" : "Nextant ŠµŃ‰Ń‘ Š½Šµ Š½Š°ŃŃ‚Ń€Š¾ŠµŠ½", - "Ping querying your Solr Server" : "ŠŸŠøŠ½Š³ŃƒŠµŠ¼ сŠµŃ€Š²ŠµŃ€ Solr", - "Verifying Schema integrity" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚Šø схŠµŠ¼Ń‹", - "Test simple text extract query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя ŠæрŠ¾ŃŃ‚Š¾Š³Š¾ тŠµŠŗстŠ°", - "Test update document query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° Š¾Š±Š½Š¾Š²Š»ŠµŠ½Šøя Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°", - "Test search query" : "ŠŸŃ€Š¾Š²ŠµŃ€ŠŗŠ° Š·Š°ŠæрŠ¾ŃŠ° ŠæŠ¾ŠøсŠŗŠ°", - "Removing the test document" : "Š£Š“Š°Š»ŠµŠ½ŠøŠµ ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Š¾Š³Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š°", - "All test went fine. Saving your configuration" : "Š’сŠµ ŠæрŠ¾Š²ŠµŃ€ŠŗŠø ŠæрŠ¾ŃˆŠ»Šø усŠæŠµŃˆŠ½Š¾. Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø", - "Address-format incorrect" : "ŠŠµŠæрŠ°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ фŠ¾Ń€Š¼Š°Ń‚ Š°Š“рŠµŃŠ°", - "Apache Solr is up, running and responding to ping query" : "Š”ŠµŃ€Š²Šøс Apache Solr Š·Š°ŠæущŠµŠ½ Šø Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Š”ŠµŃ€Š²Šøс Apache Solr Š½Šµ Š¾Ń‚Š²ŠµŃ‡Š°ŠµŃ‚ Š½Š° Š·Š°ŠæрŠ¾Ń ping (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Schema is fine" : "Š”хŠµŠ¼Š° Š² ŠæŠ¾Ń€ŃŠ“ŠŗŠµ", - "Unable to verify/fix schema integrity (Error #%1$s)" : "ŠŠµŠ²Š¾Š·Š¼Š¾Š¶Š½Š¾ ŠæрŠ¾Š²ŠµŃ€Šøть/ŠøсŠæрŠ°Š²Šøть цŠµŠ»Š¾ŃŃ‚Š½Š¾ŃŃ‚ŃŒ схŠµŠ¼Ń‹ (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Text extracted" : "Š¢ŠµŠŗст ŠøŠ·Š²Š»ŠµŃ‡Ń‘Š½", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½ŠøŠø. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń ā€” ŠŠµ уŠ“Š°Ń‘Ń‚ŃŃ Š½Š°Š¹Ń‚Šø ŠøсхŠ¾Š“Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ ā€” (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Error during commit (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° Š²Š¾ Š²Ń€ŠµŠ¼Ń Š·Š°ŠæŠøсŠø (Error #%1$s)", - "Error while updating field (Error #%1$s)" : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š¾Š±Š½Š¾Š²Š»ŠµŠ½ŠøŠø ŠæŠ¾Š»Ń (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Document updated" : "Š”Š¾ŠŗуŠ¼ŠµŠ½Ń‚ Š¾Š±Š½Š¾Š²Š»Ń‘Š½", - "Found it" : "ŠŠ°Š¹Š“ŠµŠ½Š¾", - "Found something, but not what was expected." : "Š§Ń‚Š¾-тŠ¾ Š½Š°Š¹Š“ŠµŠ½Š¾, Š½Š¾ Š½Šµ тŠ¾, чтŠ¾ Š¾Š¶ŠøŠ“Š°Š»Š¾ŃŃŒ.", - "Cannot find any document" : "ŠŠµ уŠ“Š°ŠµŃ‚ся Š½Š°Š¹Ń‚Šø Š½Šø Š¾Š“ŠøŠ½ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Š”Š±Š¾Š¹ ŠæŠ¾ŠøсŠŗŠ°. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø cŠµŃ€Š²Š»ŠµŃ‚Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Test-document deleted" : "ŠŸŃ€Š¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚ уŠ“Š°Š»Ń‘Š½", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ŠŠµ уŠ“Š°Š»Š¾ŃŃŒ уŠ“Š°Š»Šøть ŠæрŠ¾Š²ŠµŃ€Š¾Ń‡Š½Ń‹Š¹ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚. ŠŸŃ€Š¾Š²ŠµŃ€ŃŒŃ‚Šµ Š½Š°ŃŃ‚Ń€Š¾Š¹ŠŗŠø сŠµŃ€Š²ŠµŃ€Š° Solr (ŠžŃˆŠøŠ±ŠŗŠ° #%1$s)", - "Your configuration has been saved" : "Š’Š°ŃˆŠ° ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†Šøя Š±Ń‹Š»Š° сŠ¾Ń…Ń€Š°Š½ŠµŠ½Š°", - "Configuration could not be saved. Please reload this page." : "ŠžŃˆŠøŠ±ŠŗŠ° ŠæрŠø Š·Š°ŠæŠøсŠø ŠŗŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø. ŠŸŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøтŠµ эту стрŠ°Š½Šøцу.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (ŠŸŠ¾Š»Š½Š¾Ń‚ŠµŠŗстŠ¾Š²Ń‹Š¹ ŠæŠ¾ŠøсŠŗ)", - "Specify the address of your Solr, and the name of the core to use." : "Š£ŠŗŠ°Š¶ŠøтŠµ Š°Š“рŠµŃ Š²Š°ŃˆŠµŠ³Š¾ сŠµŃ€Š²ŠµŃ€Š° Solr Šø ŠøŠ¼Ń яŠ“рŠ° Š“Š»Ń ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½Šøя.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Š•ŃŠ»Šø у Š²Š°Ń Š½Šµ Š·Š°ŠæущŠµŠ½ сŠµŃ€Š²Š»ŠµŃ‚ Solr, Š¼Š¾Š¶ŠµŃ‚Šµ Š¾Š·Š½Š°ŠŗŠ¾Š¼Šøться Š½Š° wiki с руŠŗŠ¾Š²Š¾Š“стŠ²Š°Š¼Šø ŠæŠ¾ ŠµŠ³Š¾ устŠ°Š½Š¾Š²ŠŗŠµ.", - "You can also find more information there about this interface." : "Š¢Š°Š¼ тŠ°Šŗ Š¶Šµ Š²Ń‹ Š½Š°Š¹Š“ётŠµ Š±Š¾Š»ŃŒŃˆŠµ ŠøŠ½Ń„Š¾Ń€Š¼Š°Ń†ŠøŠø Š¾ этŠ¾Š¼ ŠøŠ½Ń‚ŠµŃ€Ń„ŠµŠ¹ŃŠµ.", - "Saving" : "Š”Š¾Ń…Ń€Š°Š½ŠµŠ½ŠøŠµ", - "Settings" : "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø", - "Nextant version:" : "Š’ŠµŃ€ŃŠøя Nextant:", - "Address of your Solr servlet:" : "ŠŠ“рŠµŃ сŠµŃ€Š²Š»ŠµŃ‚Š° Solr:", - "Core:" : "ŠÆŠ“рŠ¾:", - "Timeout (in seconds):" : "Š¢Š°Š¹Š¼Š°ŃƒŃ‚ (Š² сŠµŠŗуŠ½Š“Š°Ń…):", - "Test and Save" : "ŠŸŃ€Š¾Š²ŠµŃ€Šøть Šø Š·Š°ŠæŠøсŠ°Ń‚ŃŒ", - "Indexing Files" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя фŠ°Š¹Š»Š¾Š²", - "Maximum File Size (Mb):" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ рŠ°Š·Š¼ŠµŃ€ фŠ°Š¹Š»Š° (ŠœŠ±):", - "Edit your filters" : "Š ŠµŠ“Š°ŠŗтŠøрŠ¾Š²Š°Ń‚ŃŒ фŠøŠ»ŃŒŃ‚ры", - "Index Files Tree:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š“ŠµŃ€ŠµŠ²Š¾ фŠ°Š¹Š»Š¾Š²", - "Disable default search from Files" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡Šøть ŠæŠ¾ŠøсŠŗ ŠæŠ¾ уŠ¼Š¾Š»Ń‡Š°Š½Šøю Š¾Ń‚ фŠ°Š¹Š»Š¾Š²", - "Index File Trash:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š² ŠŗŠ¾Ń€Š·ŠøŠ½Šµ:", - "Index Public Links:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š¾Š±Ń‰ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Ń‹Šµ ссыŠ»ŠŗŠø:", - "Index Federated Shares:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ фŠµŠ“ŠµŃ€Š°Ń‚ŠøŠ²Š½Ń‹Šµ Š¾Š±Ń‰ŠøŠµ рŠµŃŃƒŃ€ŃŃ‹:", - "Index External Storages:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š²Š½ŠµŃˆŠ½ŠøŠµ хрŠ°Š½ŠøŠ»ŠøщŠ°:", - "Index Encrypted Files:" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°ŃˆŠøфрŠ¾Š²Š°Š½Š½Ń‹Šµ фŠ°Š¹Š»Ń‹:", - "Last index:" : "ŠŸŠ¾ŃŠ»ŠµŠ“Š½ŃŃ ŠøŠ½Š“ŠµŠŗсŠ°Ń†Šøя:", - "Indexing Bookmarks" : "Š˜Š½Š“ŠµŠŗсŠ°Ń†Šøя Š·Š°ŠŗŠ»Š°Š“Š¾Šŗ", - "The App Bookmarks is not installed/enabled." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Š—Š°ŠŗŠ»Š°Š“ŠŗŠø Š½Šµ устŠ°Š½Š¾Š²Š»ŠµŠ½Š¾/Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "ŠŸŃ€ŠøŠ»Š¾Š¶ŠµŠ½ŠøŠµ Ā«Š—Š°ŠŗŠ»Š°Š“ŠŗŠøĀ» Š²ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾, Š²Š°ŃˆŠø Š·Š°ŠŗŠ»Š°Š“ŠŗŠø Š±ŃƒŠ“ут ŠæрŠ¾ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Ń‹.", - "Checking" : "ŠŸŃ€Š¾Š²ŠµŃ€ŃŠµŠ¼", - "Nextant Status" : "Š”Š¾ŃŃ‚Š¾ŃŠ½ŠøŠµ Nexant", - "Resource Level:" : "Š£Ń€Š¾Š²ŠµŠ½ŃŒ рŠµŃŃƒŃ€ŃŠ¾Š²:", - "Higher performance" : "ŠŠ°ŠøŠ²Ń‹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "High performance" : "Š’ысŠ¾ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Medium performance" : "Š”рŠµŠ“Š½ŃŃ ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Low performance" : "ŠŠøŠ·ŠŗŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Lower performance" : "ŠŠøŠ¶Š°Š¹ŃˆŠ°Ń ŠæрŠ¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ", - "Live Index:" : "Š–ŠøŠ²Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ:", - "Disabled" : "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Š¾", - "Using Semaphore" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ сŠµŠ¼Š°Ń„Š¾Ń€Ń‹", - "Using Database" : "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŃ Š±Š°Š·Ńƒ Š“Š°Š½Š½Ń‹Ń…", - "Minimum Background Index delay:" : "ŠœŠøŠ½ŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:", - "hours" : "чŠ°ŃŠ¾Š²", - "Maximum Background Index delay:" : "ŠœŠ°ŠŗсŠøŠ¼Š°Š»ŃŒŠ½Š°Ń Š·Š°Š“ŠµŃ€Š¶ŠŗŠ° фŠ¾Š½Š¾Š²Š¾Š³Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½Šøя:", - "days" : "Š“Š½ŠµŠ¹", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Š¾Š²:", - "Number of segments:" : "ŠšŠ¾Š»ŠøчŠµŃŃ‚Š²Š¾ сŠµŠ³Š¼ŠµŠ½Ń‚Š¾Š²:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Š¼Ń‹ сŠ¾Š²ŠµŃ‚ŃƒŠµŠ¼ ŠæрŠ¾ŠøŠ·Š²ŠµŃŃ‚Šø ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾Šµ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ фŠ°Š¹Š»Š¾Š² ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ ŠŗŠ¾Š¼Š°Š½Š“ы ./occ nextant:index.", - "However, you can force it to be started as a background process." : "Š¢ŠµŠ¼ Š½Šµ Š¼ŠµŠ½ŠµŠµ, Š²Ń‹ Š¼Š¾Š¶ŠµŃ‚Šµ ŠæрŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ Š·Š°ŠæустŠøть ŠµŠ³Š¾ фŠ¾Š½Š¾Š²Ń‹Š¼ ŠæрŠ¾Ń†ŠµŃŃŠ¾Š¼.", - "Force first index as a cronjob" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠæŠµŃ€Š²Š¾Š½Š°Ń‡Š°Š»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ Š·Š°Š“Š°Ń‡ŠµŠ¹ ŠæŠ»Š°Š½ŠøрŠ¾Š²Ń‰ŠøŠŗŠ° cron", - "Force index" : "ŠŸŃ€ŠøŠ½ŃƒŠ“ŠøтŠµŠ»ŃŒŠ½Š¾ ŠøŠ½Š“ŠµŠŗсŠøрŠ¾Š²Š°Ń‚ŃŒ", - "Indexing is scheduled within the next few hours (Cron)" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š·Š°ŠæŠ»Š°Š½ŠøрŠ¾Š²Š°Š½Š¾ Š² тŠµŃ‡ŠµŠ½ŠøŠø Š½ŠµŃŠŗŠ¾Š»ŃŒŠŗŠøх чŠ°ŃŠ¾Š² (Š”ron)", - "Indexing in progress" : "Š˜Š½Š“ŠµŠŗсŠøрŠ¾Š²Š°Š½ŠøŠµ Š² ŠæрŠ¾Ń†ŠµŃŃŠµ", - "Type of files to extract" : "Š¢ŠøŠæы фŠ°Š¹Š»Š¾Š² Š“Š»Ń ŠøŠ·Š²Š»ŠµŃ‡ŠµŠ½Šøя", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Š¢ŠµŠŗстŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (Š¢ŠµŠŗст, HTML, суŠ±Ń‚Šøтры, ŠøсхŠ¾Š“Š½Ń‹Šµ ŠŗŠ¾Š“ы...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "ŠžŃ„ŠøсŠ½Ń‹Šµ Š“Š¾ŠŗуŠ¼ŠµŠ½Ń‚Ń‹", - "Image (JPEG, TIFF)" : "Š˜Š·Š¾Š±Ń€Š°Š¶ŠµŠ½Šøя (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Š—Š²ŃƒŠŗŠ¾Š²Ń‹Šµ фŠ°Š¹Š»Ń‹ (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Š˜Š³Š½Š¾Ń€ŠøруŠµŠ¼Ń‹Šµ рŠ°ŃŃˆŠøрŠµŠ½Šøя (.java .xml)" -},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" -} \ No newline at end of file diff --git a/l10n/sq.js b/l10n/sq.js deleted file mode 100644 index 7b9fdd4..0000000 --- a/l10n/sq.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Shko te dosja", - "never" : "kurrĆ«", - "Nextant is not configured yet" : "Nextant nuk Ć«shtĆ« konfiguruar akoma", - "Ping querying your Solr Server" : "Ngacmoni duke pyetur Serverin Solr tuaj", - "Verifying Schema integrity" : "Duke verifikuar integritetin e skemĆ«s", - "Test simple text extract query" : "Testo tekst tĆ« thjeshtĆ« extract query", - "Test update document query" : "KĆ«rkoni testimin e pĆ«rditĆ«simit tĆ« dokumentit", - "Test search query" : "Testo kĆ«rkesĆ«n", - "Removing the test document" : "Duke fshirĆ« dokumentat e testimit", - "All test went fine. Saving your configuration" : "TĆ« gjitha testet ishin nĆ« rregull. Duke ruajtur konfigurimet tuaja", - "Address-format incorrect" : "Formati i adresĆ«s nuk Ć«shtĆ« i saktĆ«", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ć«shtĆ« duke punuar, duke iu pĆ«rgjigjur dhe duke iu pĆ«rgjigjur pyetjes ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nuk po i pĆ«rgjigjet ping query (Gabimi #%1$s)", - "Schema is fine" : "Skema Ć«shtĆ« nĆ« rregull", - "Unable to verify/fix schema integrity (Error #%1$s)" : "E pamundur tĆ« verifikohet/rregullohet integriteti i skemĆ«s (Gabimi #%1$s)", - "Text extracted" : "Teksti u ekstraktua", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zgjerimi dĆ«shtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Gabim duke pĆ«rditĆ«suar fushĆ«n - Nuk mund tĆ« gjendet dokumenti origjinal - (Gabimi #%1$s)", - "Error during commit (Error #%1$s)" : "Gabim gjatĆ« kryerjes (Gabimi #%1$s)", - "Error while updating field (Error #%1$s)" : "Gabim gjatĆ« pĆ«rditĆ«simit tĆ« fushĆ«s (Gabimi #%1$s)", - "Document updated" : "Dokumenti u pĆ«rditesua", - "Found it" : "U gjet", - "Found something, but not what was expected." : "GjetĆ«m dicka, por jo atĆ« qe pritej.", - "Cannot find any document" : "Nuk mund tĆ« gjejĆ« asnjĆ« dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KĆ«rkmi dĆ«shtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Test-document deleted" : "Dokumenti-test u fshi", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nuk mund tĆ« fshihej dokumenti-test. Ju lutem kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Your configuration has been saved" : "Konfigurimi juaj u ruajt", - "Configuration could not be saved. Please reload this page." : "Konfigurimi nuk mundi tĆ« ruhej. Ju lutem ringarkoni kĆ«tĆ« faqe.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant( KĆ«rkim tekst i plotĆ«)", - "Specify the address of your Solr, and the name of the core to use." : "Specifikoni adresĆ«n e Solr-it tuaj dhe emrin e bĆ«rthamĆ«s pĆ«r t'u pĆ«rdorur.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "NĆ«se nuk keni servletĆ« Solr-it qĆ« ekzekutohet, udhĆ«zimet e instalimit mund tĆ« gjenden nĆ« wiki.", - "You can also find more information there about this interface." : "Ju gjithashtu mund tĆ« gjeni mĆ« shumĆ« informacion rreth kĆ«saj ndĆ«rfaqeje.", - "Saving" : "Po ruhet", - "Settings" : "Konfigurimet", - "Nextant version:" : "Versioni Nextant:", - "Address of your Solr servlet:" : "Adresa e servlet-it tuaj Solr:", - "Core:" : "Berthama:", - "Timeout (in seconds):" : "Koha e mbetur(nĆ« sekonda):", - "Test and Save" : "Testo dhe Ruaj", - "Indexing Files" : "Duke indeksuar SkedarĆ«t", - "Maximum File Size (Mb):" : "MadhĆ«sia Maksimale e Skedarit (Mb):", - "Edit your filters" : "Edito filterat e tua", - "Index Files Tree:" : "Index Files Tree:", - "Disable default search from Files" : "Ƈaktivizo kĆ«rkimin e parazgjedhur nga SkedarĆ«t", - "Index File Trash:" : "Plehrat e Skedarit tĆ« Indeksit:", - "Index Public Links:" : "Lidhjet e Indeksit Publik:", - "Index Federated Shares:" : "ShpĆ«rndarjet Index Federated:", - "Index External Storages:" : "Ruajtjet Index External:", - "Index Encrypted Files:" : "SkedarĆ«t Index Encrypted:", - "Last index:" : "Indeksi i fundit:", - "Indexing Bookmarks" : "Duke indeksuar Bookmarks", - "The App Bookmarks is not installed/enabled." : "Aplikacioni Bookmarks nuk Ć«shtĆ« instaluar/aktivizuar.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"FaqeshĆ«nuesi i aplikacioneve\" u aktivizua, faqeshĆ«nuesit tuaj do tĆ« indeksohen.", - "Checking" : "Duke kontrolluar", - "Nextant Status" : "Statusi Nextant", - "Resource Level:" : "Niveli i Burimeve:", - "Higher performance" : "PerformancĆ« mĆ« e lartĆ«", - "High performance" : "PerformancĆ« e lartĆ«", - "Medium performance" : "PerformancĆ« mesatare", - "Low performance" : "PerformancĆ« e ulĆ«t", - "Lower performance" : "PerformancĆ« mĆ« e ulĆ«t", - "Live Index:" : "Indeksi live:", - "Disabled" : "I/E Ƨaktivizuar", - "Using Semaphore" : "Duke pĆ«rdorur Semafor", - "Using Database" : "Duke pĆ«rdorur DatabazĆ«", - "Minimum Background Index delay:" : "Indeksi i Sfondit minimal tĆ« vonesĆ«s:", - "hours" : "orĆ«t", - "Maximum Background Index delay:" : "Indeksi i Sfondit maksimal tĆ« vonesĆ«s:", - "days" : "ditĆ«", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Numri i dokumenteve:", - "Number of segments:" : "Numri i segmenteve:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Rekomandohet tĆ« bĆ«ni indeksimin e parĆ« tĆ« skedarĆ«ve tuaj duke pĆ«rdorur ./occ nextant: command index.", - "However, you can force it to be started as a background process." : "MegjithatĆ«, mund ta detyrosh qĆ« tĆ« fillohet si njĆ« proces sfondi.", - "Force first index as a cronjob" : "Forco indeksin e parĆ« si njĆ« cronjob", - "Force index" : "Sforco indeksin", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksimi Ć«shtĆ« i planifikuar brenda disa orĆ«ve tĆ« ardhshme (Cron)", - "Indexing in progress" : "indeksimi Ć«shtĆ« nĆ« proces", - "Type of files to extract" : "Lloji i dosjeve pĆ«r tu ekstraktuar", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Skedar Teksti (Text, HTML, Subtitles, Source Codeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumentat Office", - "Image (JPEG, TIFF)" : "Imazh (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Skedar Audioje (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Shtesat qĆ« do doje tĆ« injoroje (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/sq.json b/l10n/sq.json deleted file mode 100644 index 2f59d12..0000000 --- a/l10n/sq.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Shko te dosja", - "never" : "kurrĆ«", - "Nextant is not configured yet" : "Nextant nuk Ć«shtĆ« konfiguruar akoma", - "Ping querying your Solr Server" : "Ngacmoni duke pyetur Serverin Solr tuaj", - "Verifying Schema integrity" : "Duke verifikuar integritetin e skemĆ«s", - "Test simple text extract query" : "Testo tekst tĆ« thjeshtĆ« extract query", - "Test update document query" : "KĆ«rkoni testimin e pĆ«rditĆ«simit tĆ« dokumentit", - "Test search query" : "Testo kĆ«rkesĆ«n", - "Removing the test document" : "Duke fshirĆ« dokumentat e testimit", - "All test went fine. Saving your configuration" : "TĆ« gjitha testet ishin nĆ« rregull. Duke ruajtur konfigurimet tuaja", - "Address-format incorrect" : "Formati i adresĆ«s nuk Ć«shtĆ« i saktĆ«", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ć«shtĆ« duke punuar, duke iu pĆ«rgjigjur dhe duke iu pĆ«rgjigjur pyetjes ping", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr nuk po i pĆ«rgjigjet ping query (Gabimi #%1$s)", - "Schema is fine" : "Skema Ć«shtĆ« nĆ« rregull", - "Unable to verify/fix schema integrity (Error #%1$s)" : "E pamundur tĆ« verifikohet/rregullohet integriteti i skemĆ«s (Gabimi #%1$s)", - "Text extracted" : "Teksti u ekstraktua", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Zgjerimi dĆ«shtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Gabim duke pĆ«rditĆ«suar fushĆ«n - Nuk mund tĆ« gjendet dokumenti origjinal - (Gabimi #%1$s)", - "Error during commit (Error #%1$s)" : "Gabim gjatĆ« kryerjes (Gabimi #%1$s)", - "Error while updating field (Error #%1$s)" : "Gabim gjatĆ« pĆ«rditĆ«simit tĆ« fushĆ«s (Gabimi #%1$s)", - "Document updated" : "Dokumenti u pĆ«rditesua", - "Found it" : "U gjet", - "Found something, but not what was expected." : "GjetĆ«m dicka, por jo atĆ« qe pritej.", - "Cannot find any document" : "Nuk mund tĆ« gjejĆ« asnjĆ« dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "KĆ«rkmi dĆ«shtoi. Ju lutemi kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Test-document deleted" : "Dokumenti-test u fshi", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Nuk mund tĆ« fshihej dokumenti-test. Ju lutem kontrolloni konfigurimin e serverit tuaj Solr (Gabimi #%1$s)", - "Your configuration has been saved" : "Konfigurimi juaj u ruajt", - "Configuration could not be saved. Please reload this page." : "Konfigurimi nuk mundi tĆ« ruhej. Ju lutem ringarkoni kĆ«tĆ« faqe.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant( KĆ«rkim tekst i plotĆ«)", - "Specify the address of your Solr, and the name of the core to use." : "Specifikoni adresĆ«n e Solr-it tuaj dhe emrin e bĆ«rthamĆ«s pĆ«r t'u pĆ«rdorur.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "NĆ«se nuk keni servletĆ« Solr-it qĆ« ekzekutohet, udhĆ«zimet e instalimit mund tĆ« gjenden nĆ« wiki.", - "You can also find more information there about this interface." : "Ju gjithashtu mund tĆ« gjeni mĆ« shumĆ« informacion rreth kĆ«saj ndĆ«rfaqeje.", - "Saving" : "Po ruhet", - "Settings" : "Konfigurimet", - "Nextant version:" : "Versioni Nextant:", - "Address of your Solr servlet:" : "Adresa e servlet-it tuaj Solr:", - "Core:" : "Berthama:", - "Timeout (in seconds):" : "Koha e mbetur(nĆ« sekonda):", - "Test and Save" : "Testo dhe Ruaj", - "Indexing Files" : "Duke indeksuar SkedarĆ«t", - "Maximum File Size (Mb):" : "MadhĆ«sia Maksimale e Skedarit (Mb):", - "Edit your filters" : "Edito filterat e tua", - "Index Files Tree:" : "Index Files Tree:", - "Disable default search from Files" : "Ƈaktivizo kĆ«rkimin e parazgjedhur nga SkedarĆ«t", - "Index File Trash:" : "Plehrat e Skedarit tĆ« Indeksit:", - "Index Public Links:" : "Lidhjet e Indeksit Publik:", - "Index Federated Shares:" : "ShpĆ«rndarjet Index Federated:", - "Index External Storages:" : "Ruajtjet Index External:", - "Index Encrypted Files:" : "SkedarĆ«t Index Encrypted:", - "Last index:" : "Indeksi i fundit:", - "Indexing Bookmarks" : "Duke indeksuar Bookmarks", - "The App Bookmarks is not installed/enabled." : "Aplikacioni Bookmarks nuk Ć«shtĆ« instaluar/aktivizuar.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"FaqeshĆ«nuesi i aplikacioneve\" u aktivizua, faqeshĆ«nuesit tuaj do tĆ« indeksohen.", - "Checking" : "Duke kontrolluar", - "Nextant Status" : "Statusi Nextant", - "Resource Level:" : "Niveli i Burimeve:", - "Higher performance" : "PerformancĆ« mĆ« e lartĆ«", - "High performance" : "PerformancĆ« e lartĆ«", - "Medium performance" : "PerformancĆ« mesatare", - "Low performance" : "PerformancĆ« e ulĆ«t", - "Lower performance" : "PerformancĆ« mĆ« e ulĆ«t", - "Live Index:" : "Indeksi live:", - "Disabled" : "I/E Ƨaktivizuar", - "Using Semaphore" : "Duke pĆ«rdorur Semafor", - "Using Database" : "Duke pĆ«rdorur DatabazĆ«", - "Minimum Background Index delay:" : "Indeksi i Sfondit minimal tĆ« vonesĆ«s:", - "hours" : "orĆ«t", - "Maximum Background Index delay:" : "Indeksi i Sfondit maksimal tĆ« vonesĆ«s:", - "days" : "ditĆ«", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Numri i dokumenteve:", - "Number of segments:" : "Numri i segmenteve:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Rekomandohet tĆ« bĆ«ni indeksimin e parĆ« tĆ« skedarĆ«ve tuaj duke pĆ«rdorur ./occ nextant: command index.", - "However, you can force it to be started as a background process." : "MegjithatĆ«, mund ta detyrosh qĆ« tĆ« fillohet si njĆ« proces sfondi.", - "Force first index as a cronjob" : "Forco indeksin e parĆ« si njĆ« cronjob", - "Force index" : "Sforco indeksin", - "Indexing is scheduled within the next few hours (Cron)" : "Indeksimi Ć«shtĆ« i planifikuar brenda disa orĆ«ve tĆ« ardhshme (Cron)", - "Indexing in progress" : "indeksimi Ć«shtĆ« nĆ« proces", - "Type of files to extract" : "Lloji i dosjeve pĆ«r tu ekstraktuar", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Skedar Teksti (Text, HTML, Subtitles, Source Codeā€¦)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Dokumentat Office", - "Image (JPEG, TIFF)" : "Imazh (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Skedar Audioje (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Shtesat qĆ« do doje tĆ« injoroje (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/sv.js b/l10n/sv.js deleted file mode 100644 index efa051b..0000000 --- a/l10n/sv.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "GĆ„ till mapp", - "never" : "aldrig", - "Nextant is not configured yet" : "Nextant Ƥr inte konfigurerad Ƥn", - "Ping querying your Solr Server" : "PingbegƤr din Solr Server", - "Verifying Schema integrity" : "Verifierar Schemaintegritet", - "Test simple text extract query" : "Testa enkel text extraktionsfrĆ„ga", - "Test update document query" : "Testa uppdatera dokumenteringsfrĆ„ga", - "Test search query" : "Testa sƶkfƶrfrĆ„gan", - "Removing the test document" : "Tar bort testdokumentet", - "All test went fine. Saving your configuration" : "Alla test gick bra. Sparar konfigurationen", - "Address-format incorrect" : "Adress-format inkorrekt", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƥr online och svarar pĆ„ ping-fƶrfrĆ„gan", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarar inte pĆ„ ping-fƶrfrĆ„gningar (Fel #%1$s)", - "Schema is fine" : "Schema fungerar", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Ofƶrmƶgen att verifiera/fixa schemaintegritet (Fel #%1$s)", - "Text extracted" : "Text extraherad", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahering misslyckades. Fƶrsƶk kontrollera konfigurationen av din Solr-server (Fel #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fel nƤr fƤlt uppdaterades - Kunde inte hitta originaldokumentet - (Fel #%1$s)", - "Error during commit (Error #%1$s)" : "Fel under ƶverlƤmning (Fel #%1$s)", - "Error while updating field (Error #%1$s)" : "Fel vid fƤltuppdatering (Fel #%1$s)", - "Document updated" : "Dokument uppdaterat", - "Found it" : "Hittades", - "Found something, but not what was expected." : "Hittade nĆ„gonting, men inte vad som fƶrvƤntades.", - "Cannot find any document" : "Kan inte hitta nĆ„gra dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)", - "Test-document deleted" : "Test-dokument borttagen", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunde inte ta bort test-dokument. VƤnligen kolla konfigurationen av din Solr server (Fel #%1$s)", - "Your configuration has been saved" : "Din konfiguration har sparats", - "Configuration could not be saved. Please reload this page." : "Konfiguration kunde inte sparas. Var god ladda om denna sida.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Fulltextsƶkning)", - "Specify the address of your Solr, and the name of the core to use." : "Specificera adressen till din Solr och namnet till kƤrnan som ska anvƤndas", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Om du inte har en Solr servlet, installationsguider kan hittas pĆ„ wikin.", - "You can also find more information there about this interface." : "Du kan ocksĆ„ hitta mer information dƤr om detta grƤnssnitt.", - "Saving" : "Sparar", - "Settings" : "InstƤllningar", - "Nextant version:" : "Nextant-version:", - "Address of your Solr servlet:" : "Adress av din Solr servlet:", - "Core:" : "KƤrna:", - "Timeout (in seconds):" : "Timeout (i sekunder):", - "Test and Save" : "Testa och Spara", - "Indexing Files" : "Indexerar Filer", - "Maximum File Size (Mb):" : "Maximal filstorlek (Mb):", - "Edit your filters" : "Redigera dina filter", - "Index Files Tree:" : "IndexfiltrƤd:", - "Disable default search from Files" : "Avaktivera standardsƶkning frĆ„n Filer", - "Index File Trash:" : "Indexera papperskorg:", - "Index Public Links:" : "Indexera publika lƤnkar:", - "Index Federated Shares:" : "Indexera federerade delningar:", - "Index External Storages:" : "Indexera Externa lagringsenheter:", - "Index Encrypted Files:" : "Indexera krypterade filer:", - "Last index:" : "Sista index:", - "Indexing Bookmarks" : "Indexerar bokmƤrken", - "The App Bookmarks is not installed/enabled." : "Appen bokmƤrken Ƥr inte installerad/aktiverad.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App bokmƤrken\" aktiverad, dina bokmƤrken kommer indexeras.", - "Checking" : "Kontrollerar", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "ResursnivĆ„:", - "Higher performance" : "Hƶgre prestanda", - "High performance" : "Hƶg prestanda", - "Medium performance" : "Medium prestanda", - "Low performance" : "LĆ„g prestanda", - "Lower performance" : "LƤgre prestanda", - "Live Index:" : "Live Index:", - "Disabled" : "Inaktiverad", - "Using Semaphore" : "AnvƤnder semafor", - "Using Database" : "AnvƤnder databas", - "Minimum Background Index delay:" : "Minsta fƶrdrƶjning fƶr bakgrundsindexering:", - "hours" : "timmar", - "Maximum Background Index delay:" : "Max fƶrdrƶjning av bakgrundsindexering:", - "days" : "dagar", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Antal dokument:", - "Number of segments:" : "Antal segment:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Det Ƥr rekommenderat att gƶra den fƶrsta indexeringen av dina filer med kommandot: ./occ nextant:index", - "However, you can force it to be started as a background process." : "Dock, du kan tvinga det att starta som en bakgrundsprocess.", - "Force first index as a cronjob" : "Tvinga fƶrsta index som ett cronjob", - "Force index" : "Tvinga Indexering", - "Indexing is scheduled within the next few hours (Cron)" : "Indexering Ƥr schemalagt inom de nƤrmaste timmarna (Cron)", - "Indexing in progress" : "Indexering pĆ„gĆ„r", - "Type of files to extract" : "Typ av fil att extrahera", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Textfil (Text, HTML, undertexter, KƤllkod...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Officedokument", - "Image (JPEG, TIFF)" : "Bild (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ljudfil (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "FilƤndelser du vill ignorera (.java .xml)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/l10n/sv.json b/l10n/sv.json deleted file mode 100644 index b2293ac..0000000 --- a/l10n/sv.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "GĆ„ till mapp", - "never" : "aldrig", - "Nextant is not configured yet" : "Nextant Ƥr inte konfigurerad Ƥn", - "Ping querying your Solr Server" : "PingbegƤr din Solr Server", - "Verifying Schema integrity" : "Verifierar Schemaintegritet", - "Test simple text extract query" : "Testa enkel text extraktionsfrĆ„ga", - "Test update document query" : "Testa uppdatera dokumenteringsfrĆ„ga", - "Test search query" : "Testa sƶkfƶrfrĆ„gan", - "Removing the test document" : "Tar bort testdokumentet", - "All test went fine. Saving your configuration" : "Alla test gick bra. Sparar konfigurationen", - "Address-format incorrect" : "Adress-format inkorrekt", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƥr online och svarar pĆ„ ping-fƶrfrĆ„gan", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr svarar inte pĆ„ ping-fƶrfrĆ„gningar (Fel #%1$s)", - "Schema is fine" : "Schema fungerar", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Ofƶrmƶgen att verifiera/fixa schemaintegritet (Fel #%1$s)", - "Text extracted" : "Text extraherad", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Extrahering misslyckades. Fƶrsƶk kontrollera konfigurationen av din Solr-server (Fel #%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Fel nƤr fƤlt uppdaterades - Kunde inte hitta originaldokumentet - (Fel #%1$s)", - "Error during commit (Error #%1$s)" : "Fel under ƶverlƤmning (Fel #%1$s)", - "Error while updating field (Error #%1$s)" : "Fel vid fƤltuppdatering (Fel #%1$s)", - "Document updated" : "Dokument uppdaterat", - "Found it" : "Hittades", - "Found something, but not what was expected." : "Hittade nĆ„gonting, men inte vad som fƶrvƤntades.", - "Cannot find any document" : "Kan inte hitta nĆ„gra dokument", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Search failed. Please check the configuration of your Solr server (Error #%1$s)", - "Test-document deleted" : "Test-dokument borttagen", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Kunde inte ta bort test-dokument. VƤnligen kolla konfigurationen av din Solr server (Fel #%1$s)", - "Your configuration has been saved" : "Din konfiguration har sparats", - "Configuration could not be saved. Please reload this page." : "Konfiguration kunde inte sparas. Var god ladda om denna sida.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Fulltextsƶkning)", - "Specify the address of your Solr, and the name of the core to use." : "Specificera adressen till din Solr och namnet till kƤrnan som ska anvƤndas", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Om du inte har en Solr servlet, installationsguider kan hittas pĆ„ wikin.", - "You can also find more information there about this interface." : "Du kan ocksĆ„ hitta mer information dƤr om detta grƤnssnitt.", - "Saving" : "Sparar", - "Settings" : "InstƤllningar", - "Nextant version:" : "Nextant-version:", - "Address of your Solr servlet:" : "Adress av din Solr servlet:", - "Core:" : "KƤrna:", - "Timeout (in seconds):" : "Timeout (i sekunder):", - "Test and Save" : "Testa och Spara", - "Indexing Files" : "Indexerar Filer", - "Maximum File Size (Mb):" : "Maximal filstorlek (Mb):", - "Edit your filters" : "Redigera dina filter", - "Index Files Tree:" : "IndexfiltrƤd:", - "Disable default search from Files" : "Avaktivera standardsƶkning frĆ„n Filer", - "Index File Trash:" : "Indexera papperskorg:", - "Index Public Links:" : "Indexera publika lƤnkar:", - "Index Federated Shares:" : "Indexera federerade delningar:", - "Index External Storages:" : "Indexera Externa lagringsenheter:", - "Index Encrypted Files:" : "Indexera krypterade filer:", - "Last index:" : "Sista index:", - "Indexing Bookmarks" : "Indexerar bokmƤrken", - "The App Bookmarks is not installed/enabled." : "Appen bokmƤrken Ƥr inte installerad/aktiverad.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"App bokmƤrken\" aktiverad, dina bokmƤrken kommer indexeras.", - "Checking" : "Kontrollerar", - "Nextant Status" : "Nextant Status", - "Resource Level:" : "ResursnivĆ„:", - "Higher performance" : "Hƶgre prestanda", - "High performance" : "Hƶg prestanda", - "Medium performance" : "Medium prestanda", - "Low performance" : "LĆ„g prestanda", - "Lower performance" : "LƤgre prestanda", - "Live Index:" : "Live Index:", - "Disabled" : "Inaktiverad", - "Using Semaphore" : "AnvƤnder semafor", - "Using Database" : "AnvƤnder databas", - "Minimum Background Index delay:" : "Minsta fƶrdrƶjning fƶr bakgrundsindexering:", - "hours" : "timmar", - "Maximum Background Index delay:" : "Max fƶrdrƶjning av bakgrundsindexering:", - "days" : "dagar", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "Antal dokument:", - "Number of segments:" : "Antal segment:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Det Ƥr rekommenderat att gƶra den fƶrsta indexeringen av dina filer med kommandot: ./occ nextant:index", - "However, you can force it to be started as a background process." : "Dock, du kan tvinga det att starta som en bakgrundsprocess.", - "Force first index as a cronjob" : "Tvinga fƶrsta index som ett cronjob", - "Force index" : "Tvinga Indexering", - "Indexing is scheduled within the next few hours (Cron)" : "Indexering Ƥr schemalagt inom de nƤrmaste timmarna (Cron)", - "Indexing in progress" : "Indexering pĆ„gĆ„r", - "Type of files to extract" : "Typ av fil att extrahera", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Textfil (Text, HTML, undertexter, KƤllkod...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Officedokument", - "Image (JPEG, TIFF)" : "Bild (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ljudfil (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "FilƤndelser du vill ignorera (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -} \ No newline at end of file diff --git a/l10n/tr.js b/l10n/tr.js deleted file mode 100644 index a2060eb..0000000 --- a/l10n/tr.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "Klasƶre git", - "never" : "asla", - "Nextant is not configured yet" : "Nextant henĆ¼z yapılandırılmamış", - "Ping querying your Solr Server" : "Solr Sunucunuz Yoklanıyor", - "Verifying Schema integrity" : "Şema BĆ¼tĆ¼nlĆ¼ÄŸĆ¼ Doğrulanıyor", - "Test simple text extract query" : "Basit metin ayıklama sorgusu sınanıyor", - "Test update document query" : "Belge gĆ¼ncelleme sorgusu sınanıyor", - "Test search query" : "Arama sorgusu sınanıyor", - "Removing the test document" : "Deneme belgesi siliniyor", - "All test went fine. Saving your configuration" : "TĆ¼m sınamalar sorunsuz tamamlandı. Yapılandırmanız kaydediliyor", - "Address-format incorrect" : "Adres biƧimi yanlış", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƨalışıyor ve yoklama (ping) sorgularını yanıtlıyor", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr yoklama (ping) sorgusuna yanıt vermedi (Hata #%1$s)", - "Schema is fine" : "Şema doğru", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Şema bĆ¼tĆ¼nlĆ¼ÄŸĆ¼ doğrulanamadı ya da dĆ¼zeltilemedi (Hata No%1$s)", - "Text extracted" : "Metin ayıklandı", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Metin ayıklanamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Alan gĆ¼ncellenemedi. ƖzgĆ¼n belge bulunamadı (Hata No%1$s)", - "Error during commit (Error #%1$s)" : "İşlem onayı sırasında sorun Ƨıktı (Hata No%1$s)", - "Error while updating field (Error #%1$s)" : "Alan gĆ¼ncellenirken sorun Ƨıktı (Hata No%1$s)", - "Document updated" : "Belge gĆ¼ncellendi", - "Found it" : "Bulundu", - "Found something, but not what was expected." : "Bir şeyler bulundu, ancak beklediğimiz şey değil.", - "Cannot find any document" : "Herhangi bir belge bulunamadı", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Arama yapılamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Test-document deleted" : "Deneme belgesi silindi", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Deneme belgesi silinemedi. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Your configuration has been saved" : "Yapılandırmanız kaydedildi", - "Configuration could not be saved. Please reload this page." : "Yapılandırma kaydedilemedi. LĆ¼tfen bu sayfayı yeniden yĆ¼kleyin.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Tam Metin Arama)", - "Specify the address of your Solr, and the name of the core to use." : "Solr sunucunuzun adresini ve kullanılacak Ƨekirdeğin adını yazın.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ƈalışan bir Solr sunucu yazılımınız yoksa, wiki Ć¼zerinde nasıl kuracağınız hakkında bazı kurulum rehberleri bulabilirsiniz.", - "You can also find more information there about this interface." : "Ayrıca orada bu arayĆ¼zden hakkında da ayrıntılı bilgi alabilirsiniz.", - "Saving" : "Kaydediliyor", - "Settings" : "Ayarlar", - "Nextant version:" : "Nextant sĆ¼rĆ¼mĆ¼:", - "Address of your Solr servlet:" : "Solr sunucu yazılımınızın adresi:", - "Core:" : "Ƈekirdek:", - "Timeout (in seconds):" : "Zaman aşımı (saniye):", - "Test and Save" : "Sına ve Kaydet", - "Indexing Files" : "Dosyalar Dizine Ekleniyor", - "Maximum File Size (Mb):" : "En BĆ¼yĆ¼k Dosya Boyutu (Mb):", - "Edit your filters" : "SĆ¼zgeƧlerinizi dĆ¼zenleyin", - "Index Files Tree:" : "Dizin Dosyaları Ağacı:", - "Disable default search from Files" : "Varsayılan arama şu dosyalarda devre dışı bırakılsın", - "Index File Trash:" : "Dosya Ƈƶp Kutusu Dizine Eklensin:", - "Index Public Links:" : "Herkese AƧık Bağlantılar Dizine Eklensin:", - "Index Federated Shares:" : "Birleşmiş Paylaşımlar Dizine Eklensin:", - "Index External Storages:" : "Dış Depolama Alanları Dizine Eklensin:", - "Index Encrypted Files:" : "Şifrelenmiş Dosyalar Dizine Eklensin:", - "Last index:" : "Son dizin:", - "Indexing Bookmarks" : "Yer Ä°mleri Dizine Ekleniyor", - "The App Bookmarks is not installed/enabled." : "Yer Ä°mleri uygulaması kurulmamış ya da etkinleştirilmemiş.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Yer Ä°mleri\" uygulaması etkin, yer imleriniz dizine eklenecek.", - "Checking" : "Denetleniyor", - "Nextant Status" : "Nextant Durumu", - "Resource Level:" : "Kaynak DĆ¼zeyi:", - "Higher performance" : "Daha yĆ¼ksek başarım", - "High performance" : "YĆ¼ksek başarım", - "Medium performance" : "Orta başarım", - "Low performance" : "DĆ¼ÅŸĆ¼k başarım", - "Lower performance" : "Daha dĆ¼ÅŸĆ¼k başarım", - "Live Index:" : "Canlı Dizin:", - "Disabled" : "Devre Dışı", - "Using Semaphore" : "İşaretler Kullanılarak", - "Using Database" : "Veritabanı Kullanılarak", - "Minimum Background Index delay:" : "En KĆ¼Ć§Ć¼k Art Alan Dizin Gecikmesi:", - "hours" : "saat", - "Maximum Background Index delay:" : "En BĆ¼yĆ¼k Art Alan Dizin Gecikmesi:", - "days" : "gĆ¼n", - "Nextcloud Cron:" : "Nextcloud Zamanlanmış Gƶrevi:", - "Number of documents:" : "Belge sayısı:", - "Number of segments:" : "ParƧa sayısı:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Dizini ilk kez oluştururken dosyalarınızı ./occ nextant:index komutunu kullanarak dizine eklemeniz ƶnerilir.", - "However, you can force it to be started as a background process." : "Bununla birlikte bir art alan işlemi olarak başlatmayı da dayatabilirsiniz.", - "Force first index as a cronjob" : "Ä°lk dizin oluşturma iƧin zamanlanmış gƶrev dayatılsın", - "Force index" : "Dizin oluşturma dayatılsın", - "Indexing is scheduled within the next few hours (Cron)" : "Dizin oluşturma işlemi bir kaƧ saat iƧinde yapılacak (zamanlanmış gƶrev)", - "Indexing in progress" : "Dizin oluşturma işlemi sĆ¼rĆ¼yor", - "Type of files to extract" : "Ayıklanacak dosya tĆ¼rleri", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Metin Dosyası (Metin, HTML, Altyazı, Kaynak kodu, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Ofis Belgeleri", - "Image (JPEG, TIFF)" : "Gƶrsel (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ses Dosyası (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Yoksayılacak uzantılar (.java .xml)" -}, -"nplurals=2; plural=(n > 1);"); diff --git a/l10n/tr.json b/l10n/tr.json deleted file mode 100644 index 935b138..0000000 --- a/l10n/tr.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "Klasƶre git", - "never" : "asla", - "Nextant is not configured yet" : "Nextant henĆ¼z yapılandırılmamış", - "Ping querying your Solr Server" : "Solr Sunucunuz Yoklanıyor", - "Verifying Schema integrity" : "Şema BĆ¼tĆ¼nlĆ¼ÄŸĆ¼ Doğrulanıyor", - "Test simple text extract query" : "Basit metin ayıklama sorgusu sınanıyor", - "Test update document query" : "Belge gĆ¼ncelleme sorgusu sınanıyor", - "Test search query" : "Arama sorgusu sınanıyor", - "Removing the test document" : "Deneme belgesi siliniyor", - "All test went fine. Saving your configuration" : "TĆ¼m sınamalar sorunsuz tamamlandı. Yapılandırmanız kaydediliyor", - "Address-format incorrect" : "Adres biƧimi yanlış", - "Apache Solr is up, running and responding to ping query" : "Apache Solr Ƨalışıyor ve yoklama (ping) sorgularını yanıtlıyor", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr yoklama (ping) sorgusuna yanıt vermedi (Hata #%1$s)", - "Schema is fine" : "Şema doğru", - "Unable to verify/fix schema integrity (Error #%1$s)" : "Şema bĆ¼tĆ¼nlĆ¼ÄŸĆ¼ doğrulanamadı ya da dĆ¼zeltilemedi (Hata No%1$s)", - "Text extracted" : "Metin ayıklandı", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "Metin ayıklanamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "Alan gĆ¼ncellenemedi. ƖzgĆ¼n belge bulunamadı (Hata No%1$s)", - "Error during commit (Error #%1$s)" : "İşlem onayı sırasında sorun Ƨıktı (Hata No%1$s)", - "Error while updating field (Error #%1$s)" : "Alan gĆ¼ncellenirken sorun Ƨıktı (Hata No%1$s)", - "Document updated" : "Belge gĆ¼ncellendi", - "Found it" : "Bulundu", - "Found something, but not what was expected." : "Bir şeyler bulundu, ancak beklediğimiz şey değil.", - "Cannot find any document" : "Herhangi bir belge bulunamadı", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "Arama yapılamadı. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Test-document deleted" : "Deneme belgesi silindi", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "Deneme belgesi silinemedi. LĆ¼tfen Solr sunucunuzun yapılandırmasını denetleyin (Hata No%1$s)", - "Your configuration has been saved" : "Yapılandırmanız kaydedildi", - "Configuration could not be saved. Please reload this page." : "Yapılandırma kaydedilemedi. LĆ¼tfen bu sayfayı yeniden yĆ¼kleyin.", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (Tam Metin Arama)", - "Specify the address of your Solr, and the name of the core to use." : "Solr sunucunuzun adresini ve kullanılacak Ƨekirdeğin adını yazın.", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "Ƈalışan bir Solr sunucu yazılımınız yoksa, wiki Ć¼zerinde nasıl kuracağınız hakkında bazı kurulum rehberleri bulabilirsiniz.", - "You can also find more information there about this interface." : "Ayrıca orada bu arayĆ¼zden hakkında da ayrıntılı bilgi alabilirsiniz.", - "Saving" : "Kaydediliyor", - "Settings" : "Ayarlar", - "Nextant version:" : "Nextant sĆ¼rĆ¼mĆ¼:", - "Address of your Solr servlet:" : "Solr sunucu yazılımınızın adresi:", - "Core:" : "Ƈekirdek:", - "Timeout (in seconds):" : "Zaman aşımı (saniye):", - "Test and Save" : "Sına ve Kaydet", - "Indexing Files" : "Dosyalar Dizine Ekleniyor", - "Maximum File Size (Mb):" : "En BĆ¼yĆ¼k Dosya Boyutu (Mb):", - "Edit your filters" : "SĆ¼zgeƧlerinizi dĆ¼zenleyin", - "Index Files Tree:" : "Dizin Dosyaları Ağacı:", - "Disable default search from Files" : "Varsayılan arama şu dosyalarda devre dışı bırakılsın", - "Index File Trash:" : "Dosya Ƈƶp Kutusu Dizine Eklensin:", - "Index Public Links:" : "Herkese AƧık Bağlantılar Dizine Eklensin:", - "Index Federated Shares:" : "Birleşmiş Paylaşımlar Dizine Eklensin:", - "Index External Storages:" : "Dış Depolama Alanları Dizine Eklensin:", - "Index Encrypted Files:" : "Şifrelenmiş Dosyalar Dizine Eklensin:", - "Last index:" : "Son dizin:", - "Indexing Bookmarks" : "Yer Ä°mleri Dizine Ekleniyor", - "The App Bookmarks is not installed/enabled." : "Yer Ä°mleri uygulaması kurulmamış ya da etkinleştirilmemiş.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "\"Yer Ä°mleri\" uygulaması etkin, yer imleriniz dizine eklenecek.", - "Checking" : "Denetleniyor", - "Nextant Status" : "Nextant Durumu", - "Resource Level:" : "Kaynak DĆ¼zeyi:", - "Higher performance" : "Daha yĆ¼ksek başarım", - "High performance" : "YĆ¼ksek başarım", - "Medium performance" : "Orta başarım", - "Low performance" : "DĆ¼ÅŸĆ¼k başarım", - "Lower performance" : "Daha dĆ¼ÅŸĆ¼k başarım", - "Live Index:" : "Canlı Dizin:", - "Disabled" : "Devre Dışı", - "Using Semaphore" : "İşaretler Kullanılarak", - "Using Database" : "Veritabanı Kullanılarak", - "Minimum Background Index delay:" : "En KĆ¼Ć§Ć¼k Art Alan Dizin Gecikmesi:", - "hours" : "saat", - "Maximum Background Index delay:" : "En BĆ¼yĆ¼k Art Alan Dizin Gecikmesi:", - "days" : "gĆ¼n", - "Nextcloud Cron:" : "Nextcloud Zamanlanmış Gƶrevi:", - "Number of documents:" : "Belge sayısı:", - "Number of segments:" : "ParƧa sayısı:", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "Dizini ilk kez oluştururken dosyalarınızı ./occ nextant:index komutunu kullanarak dizine eklemeniz ƶnerilir.", - "However, you can force it to be started as a background process." : "Bununla birlikte bir art alan işlemi olarak başlatmayı da dayatabilirsiniz.", - "Force first index as a cronjob" : "Ä°lk dizin oluşturma iƧin zamanlanmış gƶrev dayatılsın", - "Force index" : "Dizin oluşturma dayatılsın", - "Indexing is scheduled within the next few hours (Cron)" : "Dizin oluşturma işlemi bir kaƧ saat iƧinde yapılacak (zamanlanmış gƶrev)", - "Indexing in progress" : "Dizin oluşturma işlemi sĆ¼rĆ¼yor", - "Type of files to extract" : "Ayıklanacak dosya tĆ¼rleri", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "Metin Dosyası (Metin, HTML, Altyazı, Kaynak kodu, ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Ofis Belgeleri", - "Image (JPEG, TIFF)" : "Gƶrsel (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "Ses Dosyası (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "Yoksayılacak uzantılar (.java .xml)" -},"pluralForm" :"nplurals=2; plural=(n > 1);" -} \ No newline at end of file diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js deleted file mode 100644 index 108ae82..0000000 --- a/l10n/zh_CN.js +++ /dev/null @@ -1,92 +0,0 @@ -OC.L10N.register( - "nextant", - { - "Go to folder" : "前往ē›®å½•", - "never" : "从äø", - "Nextant is not configured yet" : "Nextant 尚ęœŖ配ē½®", - "Ping querying your Solr Server" : "Ping ęŸ„čƢ你ēš„ Solr ęœåŠ”å™Ø", - "Verifying Schema integrity" : "ę ”éŖŒē‰‡ę®µå®Œę•“ꀧ", - "Test simple text extract query" : "굋čƕē®€å•ę–‡ęœ¬ęå–ęŸ„čÆ¢", - "Test update document query" : "굋čÆ•ę›“ę–°ę–‡ę”£ęŸ„čÆ¢", - "Test search query" : "굋čÆ•ęœē“¢ęŸ„čÆ¢", - "Removing the test document" : "굋čÆ•ę–‡ę”£ē§»é™¤äø­", - "All test went fine. Saving your configuration" : "굋čƕå…ØéƒØ通čæ‡ļ¼ę­£åœØäæå­˜ä½ ēš„配ē½®", - "Address-format incorrect" : "åœ°å€ę ¼å¼äøę­£ē”®", - "Apache Solr is up, running and responding to ping query" : "Apache Solr åÆåŠØ, čæč”Œå’Œå“åŗ” ping ęŸ„čÆ¢", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ę²”ęœ‰å“åŗ” ping čÆ·ę±‚ (错čÆÆ #%1$s)", - "Schema is fine" : "ē»“ęž„å®Œå„½", - "Unable to verify/fix schema integrity (Error #%1$s)" : "ę— ę³•éŖŒčƁ/äæ®å¤ schema ēš„å®Œę•“ꀧ(错čÆÆļ¼š%1$s)", - "Text extracted" : "ę–‡ä»¶å·²ęå–", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ęå–å¤±č“„ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "ę›“ę–°å­—ę®µå‡ŗ错-ę— ę³•ę‰¾åˆ°ęŗę–‡ę”£-ļ¼ˆé”™čÆÆ#%1$sļ¼‰", - "Error during commit (Error #%1$s)" : "ꏐäŗ¤é”™čÆÆ (错čÆÆ #%1$s)", - "Error while updating field (Error #%1$s)" : "ę›“ę–°å­—ę®µę—¶å‡ŗ错(错čÆÆļ¼ƒ%1$s)", - "Document updated" : "ę–‡ę”£ę›“ę–°", - "Found it" : "ęŸ„ę‰¾", - "Found something, but not what was expected." : "ę‰¾åˆ°äŗ†äø€äŗ›äøœč„æļ¼Œä½†äøę˜Æé¢„ęœŸēš„怂", - "Cannot find any document" : "ę— ę³•ę‰¾åˆ°ä»»ä½•ę–‡ę”£", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ꐜē“¢å¤±č“„怂 čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Test-document deleted" : "굋čÆ•ę–‡ä»¶å·²åˆ é™¤", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ę— ę³•åˆ é™¤ęµ‹čÆ•ę–‡ä»¶ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Your configuration has been saved" : "配ē½®å·²äæå­˜", - "Configuration could not be saved. Please reload this page." : "配ē½®ę— ę³•äæå­˜ć€‚ čÆ·é‡ę–°åŠ č½½ę­¤é”µé¢ć€‚", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (å…Øꖇꐜē“¢)", - "Specify the address of your Solr, and the name of the core to use." : "ęŒ‡å®šSolrēš„åœ°å€ä»„åŠč¦ä½æē”Øēš„ę øåæƒēš„名ē§°ć€‚", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "å¦‚ęžœę‚Øę²”ęœ‰čæč”ŒSolr servletļ¼Œåˆ™åÆ仄åœØwikiäøŠę‰¾åˆ°å®‰č£…ęŒ‡å—ć€‚", - "You can also find more information there about this interface." : "ę‚Øčæ˜åÆ仄åœØę­¤å¤„ę‰¾åˆ°ęœ‰å…³ę­¤ē•Œé¢ēš„ꛓ多äæ”ęÆ怂", - "Saving" : "äæå­˜äø­", - "Settings" : "č®¾ē½®", - "Nextant version:" : "Nextant ē‰ˆęœ¬", - "Address of your Solr servlet:" : "Solr servletēš„地址ļ¼š", - "Core:" : "ę øåæƒļ¼š", - "Timeout (in seconds):" : "超ꗶ (ē§’) :", - "Test and Save" : "굋čƕ并äæå­˜", - "Indexing Files" : "ę­£åœØē“¢å¼•ę–‡ä»¶", - "Maximum File Size (Mb):" : "ęœ€å¤§ę–‡ä»¶å°ŗåÆø (Mb)ļ¼š", - "Edit your filters" : "ē¼–č¾‘čæ‡ę»¤å™Ø", - "Index Files Tree:" : "ē“¢å¼•ę–‡ä»¶ē»“ęž„", - "Disable default search from Files" : "ē¦ē”Øꖇ件äø­ēš„é»˜č®¤ęœē“¢", - "Index File Trash:" : "å›žę”¶ē«™ę–‡ä»¶åˆ—č”Ø", - "Index Public Links:" : "ē“¢å¼•å…¬å…±é“¾ęŽ„", - "Index Federated Shares:" : "ęŒ‡ę•°č”åˆåˆ†äŗ«ļ¼š", - "Index External Storages:" : "ē“¢å¼•å¤–éƒØ存å‚Ø", - "Index Encrypted Files:" : "ē“¢å¼•åŠ åÆ†ę–‡ä»¶", - "Last index:" : "ęœ€åŽē“¢å¼•ļ¼š", - "Indexing Bookmarks" : "书ē­¾ē“¢å¼•äø­", - "The App Bookmarks is not installed/enabled." : "åŗ”ē”Ø书ē­¾ę²”꜉ å®‰č£…/åÆē”Ø.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "åÆē”Øā€œåŗ”ē”Ø书ē­¾ā€ļ¼Œę‚Øēš„书ē­¾å°†č¢«ē¼–å…„ē“¢å¼•ć€‚", - "Checking" : "ę£€ęŸ„äø­", - "Nextant Status" : "Nextant ēŠ¶ę€", - "Resource Level:" : "资ęŗē­‰ēŗ§ļ¼š", - "Higher performance" : "ę›“é«˜ēš„ę€§čƒ½", - "High performance" : "é«˜ę€§čƒ½", - "Medium performance" : "äø­ē­‰ę€§čƒ½", - "Low performance" : "ä½Žę€§čƒ½", - "Lower performance" : "ę›“ä½Žēš„ę€§čƒ½", - "Live Index:" : "ēŽ°åœŗē“¢å¼•ļ¼š", - "Disabled" : "ē¦ē”Ø", - "Using Semaphore" : "ä½æē”Øäæ”号ēÆ", - "Using Database" : "ä½æē”Øę•°ę®åŗ“", - "Minimum Background Index delay:" : "ęœ€å°čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š", - "hours" : "å°ę—¶", - "Maximum Background Index delay:" : "ęœ€å¤§čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š", - "days" : "ę—„", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "ꖇ件ꕰ", - "Number of segments:" : "ꮵꕰļ¼š", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "å»ŗč®®ä½æē”Ø./occ nextantļ¼šindex命令åÆ¹ę–‡ä»¶čæ›č”Œē¬¬äø€ę¬”ē“¢å¼•ć€‚", - "However, you can force it to be started as a background process." : "但ę˜Æļ¼Œę‚ØåÆ仄å¼ŗ制它作äøŗ后台čæ›ē؋åÆåŠØ怂", - "Force first index as a cronjob" : "å¼ŗ制ē¬¬äø€äøŖē“¢å¼•ä½œäøŗäø€äøŖcronjob", - "Force index" : "å¼ŗ制ē“¢å¼•", - "Indexing is scheduled within the next few hours (Cron)" : "ē“¢å¼•č®”划åœØęœŖę„å‡ äøŖå°ę—¶å†…ļ¼ˆCronļ¼‰", - "Indexing in progress" : "ę­£åœØå»ŗē«‹ē“¢å¼•", - "Type of files to extract" : "č¦č§£åŽ‹ēš„ꖇ件ē±»åž‹", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "ę–‡ęœ¬ę–‡ä»¶ (ę–‡ęœ¬ļ¼ŒHTMLļ¼Œå­—幕ļ¼Œęŗä»£ē ļ¼Œ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Officeę–‡ę”£", - "Image (JPEG, TIFF)" : "图ē‰‡ (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "éŸ³é¢‘ę–‡ä»¶ (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "ę‚ØåøŒęœ›åæ½ē•„ēš„ē؋åŗę‹“展名 (.java .xml)" -}, -"nplurals=1; plural=0;"); diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json deleted file mode 100644 index 083e60e..0000000 --- a/l10n/zh_CN.json +++ /dev/null @@ -1,90 +0,0 @@ -{ "translations": { - "Go to folder" : "前往ē›®å½•", - "never" : "从äø", - "Nextant is not configured yet" : "Nextant 尚ęœŖ配ē½®", - "Ping querying your Solr Server" : "Ping ęŸ„čƢ你ēš„ Solr ęœåŠ”å™Ø", - "Verifying Schema integrity" : "ę ”éŖŒē‰‡ę®µå®Œę•“ꀧ", - "Test simple text extract query" : "굋čƕē®€å•ę–‡ęœ¬ęå–ęŸ„čÆ¢", - "Test update document query" : "굋čÆ•ę›“ę–°ę–‡ę”£ęŸ„čÆ¢", - "Test search query" : "굋čÆ•ęœē“¢ęŸ„čÆ¢", - "Removing the test document" : "굋čÆ•ę–‡ę”£ē§»é™¤äø­", - "All test went fine. Saving your configuration" : "굋čƕå…ØéƒØ通čæ‡ļ¼ę­£åœØäæå­˜ä½ ēš„配ē½®", - "Address-format incorrect" : "åœ°å€ę ¼å¼äøę­£ē”®", - "Apache Solr is up, running and responding to ping query" : "Apache Solr åÆåŠØ, čæč”Œå’Œå“åŗ” ping ęŸ„čÆ¢", - "Apache Solr is not responding to ping query (Error #%1$s)" : "Apache Solr ę²”ęœ‰å“åŗ” ping čÆ·ę±‚ (错čÆÆ #%1$s)", - "Schema is fine" : "ē»“ęž„å®Œå„½", - "Unable to verify/fix schema integrity (Error #%1$s)" : "ę— ę³•éŖŒčƁ/äæ®å¤ schema ēš„å®Œę•“ꀧ(错čÆÆļ¼š%1$s)", - "Text extracted" : "ę–‡ä»¶å·²ęå–", - "Extraction failed. Please check the configuration of your Solr server (Error #%1$s)" : "ęå–å¤±č“„ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Error updating field - Can't find original document - (Error #%1$s)" : "ę›“ę–°å­—ę®µå‡ŗ错-ę— ę³•ę‰¾åˆ°ęŗę–‡ę”£-ļ¼ˆé”™čÆÆ#%1$sļ¼‰", - "Error during commit (Error #%1$s)" : "ꏐäŗ¤é”™čÆÆ (错čÆÆ #%1$s)", - "Error while updating field (Error #%1$s)" : "ę›“ę–°å­—ę®µę—¶å‡ŗ错(错čÆÆļ¼ƒ%1$s)", - "Document updated" : "ę–‡ę”£ę›“ę–°", - "Found it" : "ęŸ„ę‰¾", - "Found something, but not what was expected." : "ę‰¾åˆ°äŗ†äø€äŗ›äøœč„æļ¼Œä½†äøę˜Æé¢„ęœŸēš„怂", - "Cannot find any document" : "ę— ę³•ę‰¾åˆ°ä»»ä½•ę–‡ę”£", - "Search failed. Please check the configuration of your Solr server (Error #%1$s)" : "ꐜē“¢å¤±č“„怂 čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Test-document deleted" : "굋čÆ•ę–‡ä»¶å·²åˆ é™¤", - "Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)" : "ę— ę³•åˆ é™¤ęµ‹čÆ•ę–‡ä»¶ć€‚ čÆ·ę£€ęŸ„ę‚Øēš„SolręœåŠ”å™Øēš„配ē½®(错čÆÆļ¼ƒ%1$s)", - "Your configuration has been saved" : "配ē½®å·²äæå­˜", - "Configuration could not be saved. Please reload this page." : "配ē½®ę— ę³•äæå­˜ć€‚ čÆ·é‡ę–°åŠ č½½ę­¤é”µé¢ć€‚", - "Nextant" : "Nextant", - "Nextant (Full-Text Search)" : "Nextant (å…Øꖇꐜē“¢)", - "Specify the address of your Solr, and the name of the core to use." : "ęŒ‡å®šSolrēš„åœ°å€ä»„åŠč¦ä½æē”Øēš„ę øåæƒēš„名ē§°ć€‚", - "If you do not have a Solr servlet running, installation-guides can be found on the wiki." : "å¦‚ęžœę‚Øę²”ęœ‰čæč”ŒSolr servletļ¼Œåˆ™åÆ仄åœØwikiäøŠę‰¾åˆ°å®‰č£…ęŒ‡å—ć€‚", - "You can also find more information there about this interface." : "ę‚Øčæ˜åÆ仄åœØę­¤å¤„ę‰¾åˆ°ęœ‰å…³ę­¤ē•Œé¢ēš„ꛓ多äæ”ęÆ怂", - "Saving" : "äæå­˜äø­", - "Settings" : "č®¾ē½®", - "Nextant version:" : "Nextant ē‰ˆęœ¬", - "Address of your Solr servlet:" : "Solr servletēš„地址ļ¼š", - "Core:" : "ę øåæƒļ¼š", - "Timeout (in seconds):" : "超ꗶ (ē§’) :", - "Test and Save" : "굋čƕ并äæå­˜", - "Indexing Files" : "ę­£åœØē“¢å¼•ę–‡ä»¶", - "Maximum File Size (Mb):" : "ęœ€å¤§ę–‡ä»¶å°ŗåÆø (Mb)ļ¼š", - "Edit your filters" : "ē¼–č¾‘čæ‡ę»¤å™Ø", - "Index Files Tree:" : "ē“¢å¼•ę–‡ä»¶ē»“ęž„", - "Disable default search from Files" : "ē¦ē”Øꖇ件äø­ēš„é»˜č®¤ęœē“¢", - "Index File Trash:" : "å›žę”¶ē«™ę–‡ä»¶åˆ—č”Ø", - "Index Public Links:" : "ē“¢å¼•å…¬å…±é“¾ęŽ„", - "Index Federated Shares:" : "ęŒ‡ę•°č”åˆåˆ†äŗ«ļ¼š", - "Index External Storages:" : "ē“¢å¼•å¤–éƒØ存å‚Ø", - "Index Encrypted Files:" : "ē“¢å¼•åŠ åÆ†ę–‡ä»¶", - "Last index:" : "ęœ€åŽē“¢å¼•ļ¼š", - "Indexing Bookmarks" : "书ē­¾ē“¢å¼•äø­", - "The App Bookmarks is not installed/enabled." : "åŗ”ē”Ø书ē­¾ę²”꜉ å®‰č£…/åÆē”Ø.", - "\"App Bookmarks\" enabled, your bookmarks will be indexed." : "åÆē”Øā€œåŗ”ē”Ø书ē­¾ā€ļ¼Œę‚Øēš„书ē­¾å°†č¢«ē¼–å…„ē“¢å¼•ć€‚", - "Checking" : "ę£€ęŸ„äø­", - "Nextant Status" : "Nextant ēŠ¶ę€", - "Resource Level:" : "资ęŗē­‰ēŗ§ļ¼š", - "Higher performance" : "ę›“é«˜ēš„ę€§čƒ½", - "High performance" : "é«˜ę€§čƒ½", - "Medium performance" : "äø­ē­‰ę€§čƒ½", - "Low performance" : "ä½Žę€§čƒ½", - "Lower performance" : "ę›“ä½Žēš„ę€§čƒ½", - "Live Index:" : "ēŽ°åœŗē“¢å¼•ļ¼š", - "Disabled" : "ē¦ē”Ø", - "Using Semaphore" : "ä½æē”Øäæ”号ēÆ", - "Using Database" : "ä½æē”Øę•°ę®åŗ“", - "Minimum Background Index delay:" : "ęœ€å°čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š", - "hours" : "å°ę—¶", - "Maximum Background Index delay:" : "ęœ€å¤§čƒŒę™ÆęŒ‡ę•°å»¶čæŸļ¼š", - "days" : "ę—„", - "Nextcloud Cron:" : "Nextcloud Cron:", - "Number of documents:" : "ꖇ件ꕰ", - "Number of segments:" : "ꮵꕰļ¼š", - "it is recommended to do the very first indexing of your files using the ./occ nextant:index command." : "å»ŗč®®ä½æē”Ø./occ nextantļ¼šindex命令åÆ¹ę–‡ä»¶čæ›č”Œē¬¬äø€ę¬”ē“¢å¼•ć€‚", - "However, you can force it to be started as a background process." : "但ę˜Æļ¼Œę‚ØåÆ仄å¼ŗ制它作äøŗ后台čæ›ē؋åÆåŠØ怂", - "Force first index as a cronjob" : "å¼ŗ制ē¬¬äø€äøŖē“¢å¼•ä½œäøŗäø€äøŖcronjob", - "Force index" : "å¼ŗ制ē“¢å¼•", - "Indexing is scheduled within the next few hours (Cron)" : "ē“¢å¼•č®”划åœØęœŖę„å‡ äøŖå°ę—¶å†…ļ¼ˆCronļ¼‰", - "Indexing in progress" : "ę­£åœØå»ŗē«‹ē“¢å¼•", - "Type of files to extract" : "č¦č§£åŽ‹ēš„ꖇ件ē±»åž‹", - "Text File (Text, HTML, Subtitles, Source Codeā€¦)" : "ę–‡ęœ¬ę–‡ä»¶ (ę–‡ęœ¬ļ¼ŒHTMLļ¼Œå­—幕ļ¼Œęŗä»£ē ļ¼Œ...)", - "EPUB / PDF / RTF" : "EPUB / PDF / RTF", - "Office Documents" : "Officeę–‡ę”£", - "Image (JPEG, TIFF)" : "图ē‰‡ (JPEG, TIFF)", - "Audio File (MP3, FLAC)" : "éŸ³é¢‘ę–‡ä»¶ (MP3, FLAC)", - "Extensions you wish to ignore (.java .xml)" : "ę‚ØåøŒęœ›åæ½ē•„ēš„ē؋åŗę‹“展名 (.java .xml)" -},"pluralForm" :"nplurals=1; plural=0;" -} \ No newline at end of file diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php deleted file mode 100644 index c06bb15..0000000 --- a/lib/AppInfo/Application.php +++ /dev/null @@ -1,265 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\AppInfo; - -use \OCA\Nextant\Controller\SettingsController; -use \OCA\Nextant\Controller\SearchController; -use \OCA\Nextant\Db\LiveQueueMapper; -use \OCA\Nextant\Events\FilesEvents; -use \OCA\Nextant\Events\BookmarksEvents; -use \OCA\Nextant\Hooks\FilesHooks; -use \OCA\Nextant\Hooks\BookmarksHooks; -use \OCA\Nextant\Provider\SearchProvider; -use \OCA\Nextant\Service\ConfigService; -use \OCA\Nextant\Service\QueueService; -use \OCA\Nextant\Service\MiscService; -use \OCA\Nextant\Service\SourceService; -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\IndexService; -use \OCA\Nextant\Service\BackgroundService; -use \OCA\Nextant\Service\BookmarkService; -use \OCA\Nextant\Service\NewsService; -use \OCA\Nextant\Service\SolrAdminService; -use \OCA\Nextant\Service\SolrToolsService; -use \OCA\Nextant\Migration\NextantUpgrade; -use OCP\AppFramework\App; -use OCP\Util; -use Solarium\Solarium; - -class Application extends App -{ - - private $registeredDatabase = false; - - /** - * - * @param array $params - */ - public function __construct(array $params = array()) - { - parent::__construct('nextant', $params); - $container = $this->getContainer(); - - /** - * Controllers - */ - $container->registerService('MiscService', function ($c) { - return new MiscService($c->query('Logger'), $c->query('AppName')); - }); - - $container->registerService('ConfigService', function ($c) { - return new ConfigService($c->query('AppName'), $c->query('CoreConfig'), $c->query('MiscService')); - }); - - $container->registerService('IndexService', function ($c) { - return new IndexService($c->query('GroupManager'), $c->query('ConfigService'), $c->query('SourceService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('MiscService')); - }); - - $container->registerService('BackgroundService', function ($c) { - return new BackgroundService($c->query('UserManager'), $c->query('RootFolder'), $c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('SourceService'), $c->query('IndexService'), $c->query('QueueService'), $c->query('MiscService')); - }); - - $container->registerService('QueueService', function ($c) { - return new QueueService($c->query('LiveQueueMapper'), $c->query('ConfigService'), $c->query('IndexService'), $c->query('SourceService'), $c->query('MiscService')); - }); - - $container->registerService('SourceService', function ($c) { - return new SourceService($c->query('FileService'), $c->query('BookmarkService'), $c->query('NewsService'), $c->query('MiscService')); - }); - - $container->registerService('FileService', function ($c) { - return new FileService($c->query('ConfigService'), $c->query('RootFolder'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('MiscService')); - }); - - $container->registerService('BookmarkService', function ($c) { - return new BookmarkService($c->query('ConfigService'), $c->query('MiscService')); - }); - - $container->registerService('NewsService', function ($c) { - return new NewsService($c->query('ConfigService'), $c->query('MiscService')); - }); - - $container->registerService('SolrService', function ($c) { - return new SolrService($c->query('SolariumClient'), $c->query('ConfigService'), $c->query('MiscService')); - }); - - $container->registerService('SolrAdminService', function ($c) { - return new SolrAdminService($c->query('SolrService'), $c->query('ConfigService'), $c->query('MiscService')); - }); - - $container->registerService('SolrToolsService', function ($c) { - return new SolrToolsService($c->query('SolrService'), $c->query('ConfigService'), $c->query('MiscService')); - }); - - $container->registerService('LiveQueueMapper', function ($c) { - return new LiveQueueMapper($c->query('ServerContainer') - ->getDatabaseConnection()); - }); - - $container->registerService('FilesEvents', function ($c) { - return new FilesEvents($c->query('UserId'), $c->query('ConfigService'), $c->query('QueueService'), $c->query('MiscService')); - }); - - $container->registerService('BookmarksEvents', function ($c) { - return new BookmarksEvents($c->query('ConfigService'), $c->query('UserId'), $c->query('SolrService'), $c->query('MiscService')); - }); - - $container->registerService('SearchController', function ($c) { - return new SearchController($c->query('AppName'), $c->query('Request'), $c->query('UserId'), $c->query('GroupManager'), $c->query('ConfigService'), $c->query('SolrService'), $c->query('SourceService'), $c->query('MiscService')); - }); - - $container->registerService('SettingsController', function ($c) { - return new SettingsController($c->query('AppName'), $c->query('Request'), $c->query('ConfigService'), $c->query('IndexService'), $c->query('SolrService'), $c->query('SolrToolsService'), $c->query('SolrAdminService'), $c->query('ServerContainer') - ->getL10N('nextant'), $c->query('MiscService')); - }); - - /** - * Providers - */ - // Registering the SearchProvider as a Service seems useless. - // $container->registerService('SearchProvider', function ($c) { - // return new SearchProvider($c->query('MiscService')); - // }); - - /** - * Core - */ - $container->registerService('Logger', function ($c) { - return $c->query('ServerContainer') - ->getLogger(); - }); - $container->registerService('CoreConfig', function ($c) { - return $c->query('ServerContainer') - ->getConfig(); - }); - $container->registerService('UserId', function ($c) { - $user = $c->query('ServerContainer') - ->getUserSession() - ->getUser(); - return is_null($user) ? '' : $user->getUID(); - }); - - $container->registerService('UserManager', function ($c) { - return \OC::$server->getUserManager(); - }); - - $container->registerService('GroupManager', function ($c) { - return \OC::$server->getGroupManager(); - }); - - $container->registerService('UserFolder', function ($c) { - return \OC::$server->getUserFolder(); - }); - - $container->registerService('RootFolder', function ($c) { - return $c->getServer() - ->getRootFolder(); - }); - - // Translates - $container->registerService('L10N', function (IContainer $c) { - return $c->query('ServerContainer') - ->getL10N($c->query('AppName')); - }); - - $container->registerService('SolariumClient', function ($c) { - $toS = $c->query('ConfigService') - ->toSolarium(); - if (! $toS) - return false; - return new \Solarium\Client($toS); - }); - - /** - * Migration scripts - */ - $container->registerService('OCA\Nextant\Migration\NextantUpgrade', function ($c) { - return new NextantUpgrade($c->query('ConfigService'), $c->query('SolrService'), $c->query('SolrAdminService')); - }); - } - - public function registerFilesHooks() - { - Util::connectHook('OC_Filesystem', 'post_create', '\OCA\Nextant\Hooks\FilesHooks', 'fileCreated'); - Util::connectHook('OC_Filesystem', 'post_update', '\OCA\Nextant\Hooks\FilesHooks', 'fileUpdated'); - Util::connectHook('OC_Filesystem', 'post_rename', '\OCA\Nextant\Hooks\FilesHooks', 'fileRenamed'); - Util::connectHook('OC_Filesystem', 'delete', '\OCA\Nextant\Hooks\FilesHooks', 'fileTrashed'); - Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', '\OCA\Nextant\Hooks\FilesHooks', 'fileRestored'); - Util::connectHook('\OCP\Trashbin', 'preDelete', '\OCA\Nextant\Hooks\FilesHooks', 'fileDeleted'); - Util::connectHook('OCP\Share', 'post_shared', '\OCA\Nextant\Hooks\FilesHooks', 'fileShared'); - Util::connectHook('OCP\Share', 'post_unshare', '\OCA\Nextant\Hooks\FilesHooks', 'fileUnshared'); - - // Util::connectHook('\OCA\Bookmarks', 'post_add', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkAdd'); - // Util::connectHook('\OCA\Bookmarks', 'post_edit', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkEdit'); - // Util::connectHook('\OCA\Bookmarks', 'post_delete', '\OCA\Nextant\Hooks\BookmarksHooks', 'bookmarkDelete'); - } - - public function registerSearchProvider() - { - $config = $this->getContainer()->query('ConfigService'); - if ($config->getAppValue('configured') !== '1') - return; - - \OC::$server->getEventDispatcher()->addListener('OCA\Files::loadAdditionalScripts', function () { - \OCP\Util::addScript('nextant', 'navigate'); - \OCP\Util::addStyle('nextant', 'navigate'); - }); - - if ($config->getAppValue('index_files_sharelink') === '1') - \OC::$server->getEventDispatcher()->addListener('OCA\Files_Sharing::loadAdditionalScripts', function () { - \OCP\Util::addScript('nextant', 'navigate'); - \OCP\Util::addStyle('nextant', 'navigate'); - }); - } - - public function registerSettingsAdmin() - { - \OCP\App::registerAdmin($this->getContainer()->query('AppName'), 'lib/admin'); - } - - // public function registerNavigation() - // { - // $appName = $this->getContainer()->getAppName(); - // $server = $this->getContainer()->getServer(); - - // $this->getContainer() - // ->query('MiscService') - // ->log('registerNavigation()', 2); - // $server->getNavigationManager()->add(array( - // 'id' => $appName, - // 'order' => 5, - // 'href' => $server->getURLGenerator() - // ->linkToRoute('nextant.page.index'), - // 'icon' => $server->getURLGenerator() - // ->imagePath($appName, 'app.svg'), - // 'name' => $server->getL10N($appName) - // ->t('Nextant') - // )); - // } -} - diff --git a/lib/Command/Background.php b/lib/Command/Background.php deleted file mode 100644 index 6d9c0d3..0000000 --- a/lib/Command/Background.php +++ /dev/null @@ -1,58 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ConfirmationQuestion; - -class Background extends Base -{ - - public function __construct($backgroundService) - { - parent::__construct(); - $this->backgroundService = $backgroundService; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:background')->setDescription('run the background index'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $this->backgroundService->run(); - } -} - - - diff --git a/lib/Command/Check.php b/lib/Command/Check.php deleted file mode 100644 index d27a586..0000000 --- a/lib/Command/Check.php +++ /dev/null @@ -1,124 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -class Check extends Base -{ - - private $configService; - - private $solrService; - - private $solrTools; - - private $solrAdmin; - - private $settingsController; - - public function __construct($configService, $solrService, $solrTools, $solrAdmin, $settingsController) - { - parent::__construct(); - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->solrAdmin = $solrAdmin; - $this->settingsController = $settingsController; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:check') - ->setDescription('check, fix and optimise your current Solr configuration') - ->addOption('disable', null, InputOption::VALUE_NONE, 'disable Nextant') - ->addOption('info', null, InputOption::VALUE_NONE, 'display some info') - ->addOption('infoall', null, InputOption::VALUE_NONE, 'display some info (also sensitive)') - ->addOption('fix', 'f', InputOption::VALUE_NONE, 'fix'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - if (! $this->solrService->configured(true)) { - $output->writeln('Nextant is not yet configured'); - return; - } - - if ($input->getOption('disable')) { - $this->configService->setAppValue('configured', '2'); - return; - } - - if ($input->getOption('info') || $input->getOption('infoall')) { - $info = $this->settingsController->updateSubOptions(true, 'check'); - $info['cloud_version'] = $this->configService->getCloudVersion(true); - - if (! $input->getOption('infoall')) { - $info['solr_url'] = '**HIDDEN**'; - $info['solr_core'] = '**HIDDEN**'; - - // $qk = $info['index_live_queuekey']; - // $info['index_live_queuekey'] = substr($qk, 0, - 3) . '???'; - } - - $output->writeln(var_export($info, true)); - } - - $this->solrService->setOutput($output); - - $client = $this->solrService->getClientConfig()['endpoint']['localhost']; - $output->write('Pinging ' . $client['host'] . ':' . $client['port'] . $client['path'] . $client['core'] . ' : '); - if ($this->solrAdmin->ping()) - $output->writeln('ok'); - else { - $output->writeln('fail'); - return false; - } - - if (! $this->solrAdmin->checkSchema(($input->getOption('fix')), $ierror)) { - if ($ierror->getCode() > 0) { - $output->writeln('*** Error #' . $ierror->getCode() . ' (' . $ierror->getMessage() . ')'); - return; - } - } - - $output->writeln(''); - $output->writeln('Your solr contains ' . $this->solrTools->count() . ' documents :'); - $output->writeln(' - ' . $this->solrTools->count('files') . ' files'); - $output->writeln(' - ' . $this->solrTools->count('bookmarks') . ' bookmarks'); - - $output->writeln(' - ' . $this->solrTools->getInfoCore()->index->segmentCount . ' segments'); - } -} - - - diff --git a/lib/Command/Clear.php b/lib/Command/Clear.php deleted file mode 100644 index 3bf114f..0000000 --- a/lib/Command/Clear.php +++ /dev/null @@ -1,86 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ConfirmationQuestion; - -class Clear extends Base -{ - - private $configService; - - private $solrService; - - private $solrAdmin; - - public function __construct($configService, $solrService, $solrAdmin) - { - parent::__construct(); - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrAdmin = $solrAdmin; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:clear')->setDescription('destroy all Solr documents'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - if (! $this->solrService->configured(true)) { - $output->writeln('Nextant is not yet configured'); - return; - } - - if (! ($this->solrAdmin->ping())) { - $output->writeln('*** Solr seems down.'); - return false; - } - - $helper = $this->getHelper('question'); - $question = new ConfirmationQuestion('This will remove all indexes on your Solr. Continue with this action? (y/N) ', false); - - if (! $helper->ask($input, $output, $question)) { - return; - } - - if ($this->solrAdmin->clear()) { - $output->writeln('Your Solr core is now empty'); - $this->configService->stopIndex(); - } - } -} - - - diff --git a/lib/Command/Index.php b/lib/Command/Index.php deleted file mode 100644 index 797018b..0000000 --- a/lib/Command/Index.php +++ /dev/null @@ -1,454 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Items\ItemDocument; -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Helper\ProgressBar; -use OCP\IUserManager; -use OC\Files\Filesystem; - -class Index extends Base -{ - - const REFRESH_INFO_SYSTEM = 3; - - private $userManager; - - private $rootFolder; - - private $indexService; - - private $queueService; - - private $solrService; - - private $solrTools; - - private $solrAdmin; - - private $configService; - - private $sourceService; - - private $miscService; - - private $currentIndexStatus = array(); - - public function __construct(IUserManager $userManager, $rootFolder, $indexService, $queueService, $solrService, $solrTools, $solrAdmin, $configService, $sourceService, $miscService) - { - parent::__construct(); - $this->userManager = $userManager; - $this->rootFolder = $rootFolder; - $this->indexService = $indexService; - $this->queueService = $queueService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->solrAdmin = $solrAdmin; - $this->configService = $configService; - $this->sourceService = $sourceService; - $this->miscService = $miscService; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:index') - ->setDescription('scan users\' files, generate and index Solr documents') - ->addOption('debug', null, InputOption::VALUE_NONE, 'display more text') - ->addOption('debugall', null, InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'display a lot more text') - ->addOption('unlock', 'k', InputOption::VALUE_NONE, 'unlock on Solr') - ->addOption('force', 'f', InputOption::VALUE_NONE, 'force extract and update of all your documents') - ->addOption('user', 'u', InputArgument::OPTIONAL | InputArgument::IS_ARRAY, 'indexes file of the given user(s)') - ->addOption('background', 'c', InputOption::VALUE_NONE, 'force index as a background process (cron)') - ->addOption('bookmarks', 'b', InputOption::VALUE_NONE, 'only indexes bookmarks - requiert Bookmarks installed') - ->addOption('files', 'i', InputOption::VALUE_NONE, 'only indexes files') - ->addOption('files_extract', 'x', InputOption::VALUE_NONE, 'only extract files') - ->addOption('files_update', 'r', InputOption::VALUE_NONE, 'only update files share rights'); - } - - public function interrupted() - { - if ($this->hasBeenInterrupted()) { - $this->end(false); - throw new \Exception('ctrl-c'); - } - } - - public function end($exit = true) - { - $this->configService->lockIndex(false); - if (key_exists('files', $this->currentIndexStatus)) - $this->configService->needIndexFiles($this->currentIndexStatus['files']); - if (key_exists('bookmarks', $this->currentIndexStatus)) - $this->configService->needIndexBookmarks($this->currentIndexStatus['bookmarks']); - - if ($exit) - exit(); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $output->writeln('nextant v' . $this->configService->getAppValue('installed_version') . ''); - // $output->writeln('discussion forum: https://help.nextcloud.com/c/apps/nextant'); - // $output->writeln(''); - - if (! $this->solrService->configured(true)) { - $output->writeln('Nextant is not yet configured'); - return; - } - - $debug = 0; - if ($input->getOption('debug')) - $debug = 1; - if ($input->getOption('debugall')) - $debug = $input->getOption('debugall'); - - $this->miscService->setDebug($debug); - $this->sourceService->file()->setDebug($debug); - $this->indexService->setDebug($debug); - $this->indexService->setForcing($input->getOption('force')); - - $this->solrService->setOutput($output); - $this->indexService->setOutput($output); - $this->indexService->setParent($this); - - if ($input->getOption('background')) { - if ($input->getOption('unlock')) { - $this->configService->setAppValue('configured', '1'); - $this->configService->lockIndex(false); - } - $this->configService->needIndexFiles(true); - $this->configService->needIndexBookmarks(true); - $this->configService->setAppValue('index_files_last', '0'); - $this->configService->setAppValue('index_bookmarks_last', '0'); - - $output->writeln('A background indexing process is scheduled'); - return; - } - - if ($input->getOption('unlock')) { - $this->configService->lockIndex(false); - $output->writeln('Nextant is not locked anymore.'); - return; - } - - $delay = 0; - if ($this->configService->isLockedIndex($delay)) { - $output->writeln(''); - $output->writeln('nextant is currently locked by another indexing script (command line or background job)'); - $output->writeln('last tick from this script was ' . $delay . ' second(s) ago'); - $output->writeln(''); - $output->writeln('If you think the other script exited improperly, you can use ./occ nextant:index --unlock to unlock'); - $output->writeln(''); - - return; - } - - if (! ($this->solrAdmin->ping())) { - $output->writeln('*** Solr seems down.'); - return false; - } - - $this->indexService->init(); - $this->indexService->lockActive(true); - $this->configService->lockIndex(true); - - $filtered = false; - if ($input->getOption('bookmarks') || $input->getOption('files') || $input->getOption('files_extract') || $input->getOption('files_update')) - $filtered = true; - else - $this->queueService->emptyQueue(); - - // neededIndex - $this->currentIndexStatus = array( - 'files' => $this->configService->neededIndexFiles(), - 'bookmarks' => $this->configService->neededIndexBookmarks() - ); - - if (! $filtered || $input->getOption('files')) - $this->configService->needIndexFiles(false); - if (! $filtered || $input->getOption('bookmarks')) - $this->configService->needIndexBookmarks(false); - - // indexes - if (! $filtered || $input->getOption('files') || $input->getOption('files_extract')) { - $this->indexesFiles($input, $output); - $this->configService->timeIndex('files'); - } - - if (! $filtered || $input->getOption('files') || $input->getOption('files_update')) { - $this->updateFiles($input, $output); - $this->configService->timeIndex('files'); - } - - if (! $filtered || $input->getOption('bookmarks')) { - $this->indexesBookmarks($input, $output); - $this->configService->timeIndex('bookmarks'); - } - - $this->configService->lockIndex(false); - $this->configService->setAppValue('configured', '1'); - - $output->writeln(''); - $output->writeln('Time spent: ' . $this->indexService->getIndexDuration()); - $output->writeln('Your index now contains ' . $this->solrTools->getInfoCore()->index->segmentCount . ' segments'); - } - - /** - * index Files - * - * @param OutputInterface $output - */ - private function indexesFiles($input, $output) - { - if (! $this->sourceService->file()->configured()) { - if ($input->getOption('files') || $input->getOption('files_extract')) - $output->writeln('Error while indexing Files: Nextant is not configured to extract your files.'); - return; - } - - $output->writeln(''); - $output->writeln('* Extracting files:'); - $output->writeln(''); - $output->writeln(''); - if ($input->getOption('debug')) - $output->writeln(''); - - $users = $this->getUsers($input->getOption('user')); - - $indexed = 0; - $extracted = 0; - $processed = 0; - $removed = 0; - $failed = 0; - foreach ($users as $user) { - - $this->interrupted(); - - if (! $this->userManager->userExists($user)) - continue; - - $this->sourceService->file()->initUser($user, true); - $files = $this->sourceService->file()->getFilesPerUserId('/files', array()); - - if ($this->configService->getAppValue('index_files_trash') === '1') { - $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array( - 'deleted' - )); - $files = array_merge($files, $files_trashbin); - } - - $solrDocs = null; - $this->indexService->extract(ItemDocument::TYPE_FILE, $user, $files, $solrDocs); - $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $user, $files, $solrDocs); - - $this->sourceService->file()->endUser(); - - foreach ($files as $doc) { - if ($doc->isIndexed()) - $indexed ++; - if ($doc->isExtracted()) - $extracted ++; - if ($doc->isProcessed()) - $processed ++; - if ($doc->isFailedExtract() || $doc->isFailedIndex()) - $failed ++; - } - - if (is_array($solrDocs)) { - foreach ($solrDocs as $doc) { - if ($doc->isRemoved()) - $removed ++; - } - } - - $output->writeln(''); - } - - $output->writeln(' ' . $processed . ' file(s) processed ; ' . $removed . ' orphan(s) removed'); - $output->writeln(' ' . $indexed . ' documents indexed ; ' . $extracted . ' fully extracted'); - - if ($failed > 0) - $output->writeln(' ' . $failed . ' file(s) were not processed (failure)'); - } - - /** - * index Files - * - * @param OutputInterface $output - */ - private function updateFiles($input, $output) - { - if (! $this->sourceService->file()->configured()) { - if ($input->getOption('files') || $input->getOption('files_update')) - $output->writeln('Error while indexing Files: Nextant is not configured to update your files.'); - return; - } - - $output->writeln(''); - $output->writeln('* Updating files:'); - $output->writeln(''); - $output->writeln(''); - if ($input->getOption('debug')) - $output->writeln(''); - - $users = $this->getUsers($input->getOption('user')); - - $updated = 0; - $failed = 0; - foreach ($users as $user) { - - $this->interrupted(); - - if (! $this->userManager->userExists($user)) - continue; - - $this->sourceService->file()->initUser($user, true); - $files = $this->sourceService->file()->getFilesPerUserId('/files', array()); - - if ($this->configService->getAppValue('index_files_trash') === '1') { - $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array( - 'deleted' - )); - $files = array_merge($files, $files_trashbin); - } - - $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $user, $files); - - $this->sourceService->file()->endUser(); - - $output->writeln(''); - foreach ($files as $doc) { - if ($doc->isUpdated()) - $updated ++; - if ($doc->isFailedUpdate()) - $failed ++; - } - } - - $output->writeln(' ' . $updated . ' document(s) updated ; ' . $failed . ' failure(s)'); - - return; - } - - /** - * index Bookmarks - * - * @param OutputInterface $output - */ - private function indexesBookmarks($input, OutputInterface $output) - { - if (! $this->sourceService->bookmark()->configured()) { - if ($input->getOption('bookmarks')) - $output->writeln('Error while indexing Bookmarks: Nextant is not configured to extract your bookmarks.'); - return; - } - - $output->writeln(''); - $output->writeln('* Indexing bookmarks:'); - $output->writeln(''); - $output->writeln(''); - if ($input->getOption('debug')) - $output->writeln(''); - - $users = $this->getUsers($input->getOption('user')); - - $indexed = 0; - $extracted = 0; - $processed = 0; - $removed = 0; - $failed = 0; - foreach ($users as $user) { - $this->interrupted(); - - if (! $this->userManager->userExists($user)) - continue; - - $bm = $this->sourceService->bookmark()->getBookmarksPerUserId($user); - - $solrDocs = null; - $this->indexService->extract(ItemDocument::TYPE_BOOKMARK, $user, $bm, $solrDocs); - $this->indexService->removeOrphans(ItemDocument::TYPE_BOOKMARK, $user, $bm, $solrDocs); - - foreach ($bm as $doc) { - if ($doc->isIndexed()) - $indexed ++; - if ($doc->isExtracted()) - $extracted ++; - if ($doc->isProcessed()) - $processed ++; - if ($doc->isFailedExtract() || $doc->isFailedIndex()) - $failed ++; - } - - if (is_array($solrDocs)) { - foreach ($solrDocs as $doc) { - if ($doc->isRemoved()) - $removed ++; - } - } - - $output->writeln(''); - } - - $output->writeln(' ' . $processed . ' bookmark(s) processed ; ' . $removed . ' orphan(s) removed'); - $output->writeln(' ' . $indexed . ' document indexed ; ' . $extracted . ' fully extracted'); - - if ($failed > 0) - $output->writeln(' ' . $failed . ' file(s) were not processed (failure)'); - - return; - } - - private function getUsers($option) - { - if (! $option) { - $users = array(); - $userSearch = $this->userManager->search(''); - foreach ($userSearch as $user) { - $users[] = $user->getUID(); - } - } else { - $users = $option; - if (! is_array($users)) - $users = array( - $users - ); - } - - return $users; - } -} - - - diff --git a/lib/Command/Live.php b/lib/Command/Live.php deleted file mode 100644 index fe2a38d..0000000 --- a/lib/Command/Live.php +++ /dev/null @@ -1,175 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Items\ItemDocument; -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Helper\ProgressBar; -use OCP\IUserManager; -use OC\Files\Filesystem; - -class Live extends Base -{ - - const REFRESH_INFO_SYSTEM = 3; - - private $userManager; - - private $rootFolder; - - private $indexService; - - private $solrService; - - private $solrTools; - - private $configService; - - private $sourceService; - - private $miscService; - - private $currentIndexStatus = array(); - - public function __construct($queueService, $indexService, $solrService, $solrTools, $configService, $sourceService, $miscService) - { - parent::__construct(); - $this->queueService = $queueService; - $this->indexService = $indexService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->configService = $configService; - $this->sourceService = $sourceService; - $this->miscService = $miscService; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:live') - ->setDescription('Instant Index') - ->addOption('instant', 'i', InputOption::VALUE_NONE, 'Instant indexes'); - } - - public function interrupted() - { - if ($this->hasBeenInterrupted()) - throw new \Exception('ctrl-c'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - $output->writeln('nextant v' . $this->configService->getAppValue('installed_version') . ''); - $output->writeln(''); - - if (! $this->solrService->configured(true)) { - $output->writeln('Your nextant is not yet configured'); - return; - } - - if ($this->configService->getAppValue('index_live') === '0') { - $output->writeln('your nextant is not configured for Live Index'); - return; - } - - // $this->miscService->setDebug($input->getOption('debug')); - // $this->sourceService->file()->setDebug($input->getOption('debug')); - // $this->indexService->setDebug($input->getOption('debug')); - - $this->solrService->setOutput($output); - $this->indexService->setOutput($output); - $this->indexService->setParent($this); - $this->queueService->setParent($this); - - $output->writeln(''); - - $stack = array(); - $lasttick = 0; - - $item = null; - while (true) { - $catched = false; - - try { - $this->interrupted(); - - if ($item === null) - $item = $this->queueService->readQueue(true); - - if ($item !== null) { - if ($input->getOption('instant')) - $this->queueService->executeItem($item); - else - $this->queueService->executeItem($item); - } - - if (! $this->configService->isLockedIndex()) - $this->solrTools->commit(false, $ierror); - - $item = null; - } catch (\Doctrine\DBAL\Exception\DriverException $dbde) { - $catched = true; - // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbde->getStatusMessage()); - } catch (\Doctrine\DBAL\Driver\PDOException $dbpdoe2) { - $catched = true; - // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbpdoe->getStatusMessage()); - } catch (\PDOException $dbpdoe2) { - $catched = true; - // $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $dbpdoe2->getStatusMessage()); - } - - if ($catched) { - - $dead = false; - $dbConn = \OC::$server->getDatabaseConnection(); - - try { - $dbConn->close(); - } catch (\Exception $ex) {} - - try { - $dbConn->connect(); - } catch (\Exception $ex) { - $dead = true; - } - - if ($dead) - break; - } else - $output->writeln(''); - - } - } -} - - - diff --git a/lib/Command/Optimize.php b/lib/Command/Optimize.php deleted file mode 100644 index 3ea45d2..0000000 --- a/lib/Command/Optimize.php +++ /dev/null @@ -1,92 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ConfirmationQuestion; - -class Optimize extends Base -{ - - private $configService; - - private $solrService; - - private $solrTools; - - public function __construct($configService, $solrService, $solrTools) - { - parent::__construct(); - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:optimize') - ->setDescription('optimize your Solr core') - ->addOption('commit', 'm', InputOption::VALUE_NONE, 'Commit only ; Do not optimize.'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - if (! $this->solrService->configured(true)) { - $output->writeln('Nextant is not yet configured'); - return; - } - - $this->solrService->setClient(array( - 'timeout' => 36000 - )); - - $infos = $this->solrTools->getInfoCore(); - $output->writeln('Your index contains ' . $infos->index->segmentCount . ' segments.'); - - $helper = $this->getHelper('question'); - if (! $input->getOption('commit')) { - $question = new ConfirmationQuestion('Your core will not be accessible while optimize is running. Continue with this action? (y/N) ', false); - - if (! $helper->ask($input, $output, $question)) { - return; - } - } - - if (! $result = $this->solrTools->commit(! $input->getOption('commit'))) - $output->writeln('Operation failed'); - else - $output->writeln('Operation success (' . gmdate("H:i:s", floor($result->getQueryTime() / 1000)) . ')'); - } -} - - - diff --git a/lib/Command/Pick.php b/lib/Command/Pick.php deleted file mode 100644 index af2c50b..0000000 --- a/lib/Command/Pick.php +++ /dev/null @@ -1,127 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ConfirmationQuestion; - -class Pick extends Base -{ - - private $configService; - - private $solrService; - - private $solrTools; - - public function __construct($configService, $solrService, $solrTools) - { - parent::__construct(); - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - } - - protected function configure() - { - parent::configure(); - $this->setName('nextant:pick') - ->setDescription('pick a result from your index') - ->addArgument('document_id', InputArgument::OPTIONAL, 'id of the document to scan') - ->addOption('type', 't', InputArgument::OPTIONAL, 'type of the document to search (default: files)') - ->addOption('search', 's', InputArgument::OPTIONAL, 'keyword to search in the document'); - } - - protected function execute(InputInterface $input, OutputInterface $output) - { - if (! $this->solrService->configured(true)) { - $output->writeln('Nextant is not yet configured'); - return; - } - - if (! $id = $input->getArgument('document_id')) { - $output->writeln('You need to specify the document id'); - return; - } - - switch ($input->getOption('type')) { - case 'bookmarks': - $type = 'bookmarks'; - break; - - default: - $type = 'files'; - break; - } - - $result = $this->solrTools->pick($type, $id); - if ($result->getNumFound() === 0) { - $output->writeln("Can't find document corresponding that id"); - return; - } - - foreach ($result as $document) { - - foreach ($document as $field => $value) { - - if ($field === 'text_edge') - continue; - - if (is_array($value)) - $value = implode(', ', $value); - - if (is_bool($value)) - $value = ($value) ? 'true' : 'false'; - - $output->writeln($field . ' -> ' . $value); - } - - if ($kw = $input->getOption('search')) { - $search = $this->solrService->search($kw, array( - 'no_owner_check', - 'limit_document_id' => $type . '_' . $id - )); - - $output->writeln(''); - $output->write("* Searching '" . $kw . "' in that document: "); - if (sizeof($search) === 0) - $output->writeln('fail'); - else - $output->writeln('OK'); - } - - $output->writeln(''); - } - } -} - - - diff --git a/lib/Command/Test.php b/lib/Command/Test.php deleted file mode 100644 index ca44d94..0000000 --- a/lib/Command/Test.php +++ /dev/null @@ -1,331 +0,0 @@ - - * @copyright Maxence Lange 2017 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Command; - -use OC\Core\Command\Base; -use \OCA\Nextant\Service\SolrAdminService; -use \OCA\Nextant\Service\SolrToolsService; -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\TestService; -use \OCA\Nextant\Service\IndexService; -use \OCA\Nextant\Service\ConfigService; -use \OCA\Nextant\Controller\SettingsController; -use \OCA\Nextant\Items\ItemDocument; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -class Test extends Base { - - private $configService; - - private $solrService; - - private $solrTools; - - private $solrAdmin; - - private $settingsController; - - public function __construct( - ConfigService $configService, SolrService $solrService, SolrToolsService $solrTools, - SolrAdminService $solrAdmin, IndexService $indexService, - SettingsController $settingsController - ) { - parent::__construct(); - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->solrAdmin = $solrAdmin; - $this->indexService = $indexService; - $this->settingsController = $settingsController; - } - - protected function configure() { - parent::configure(); - $this->setName('nextant:test') - ->setDescription('test your Nextant configuration') - ->addArgument('address', InputArgument::REQUIRED, 'address of the solr to test') - ->addArgument('core', InputArgument::REQUIRED, 'core to test') - ->addOption( - 'save', 's', InputOption::VALUE_NONE, 'Save configuration if test is successful' - ); - } - - protected function execute(InputInterface $input, OutputInterface $output) { - - if (!$address = $input->getArgument('address')) { - $output->writeln('You need to specify the address to test'); - - return; - } - - if (!$core = $input->getArgument('core')) { - $output->writeln('You need to specify the core'); - - return; - } - - $tmpConfig = array( - 'solr_url' => $address, - 'solr_core' => $core, - 'solr_timeout' => 30 - ); - - if (!$this->solrService->setClient($tmpConfig)) { - $output->writeln('Address is invalid'); - - return; - } - - // test ping - if (!$this->test_ping($output)) { - return; - } - - // test schema - if (!$this->test_schema($output)) { - return; - } - - // test extract - if (!$this->test_extract($output)) { - return; - } - - // test update - if (!$this->test_update($output)) { - return; - } - - // test search - if (!$this->test_search($output)) { - return; - } - - // test delete - if (!$this->test_delete($output)) { - return; - } - - $output->writeln(''); - $output->writeln('All test results were fine.'); - - if ($input->getOption("save")) { - $output->writeln('Saving configuration.'); - - $this->configService->setAppValue('solr_url', $address); - $this->configService->setAppValue('solr_core', $core); - $this->configService->setAppValue('solr_timeout', 30); - - if ($this->configService->getAppValue('configured') !== '1') { - $this->configService->setAppValue('configured', '2'); - } - - if ($this->configService->getAppValue('configured') === '2') - { - $output->writeln('You will need a first index to finish installation of Nextant.'); - } - } - } - - private function test_ping($output) { - $output->write(' - Pinging Solr: '); - if (!$this->solrAdmin->ping($ierror)) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - $output->writeln('ok'); - - return true; - } - - private function test_schema($output) { - $output->write(' - Checking Solr schema: '); - $ierror = null; - if (!$this->solrAdmin->checkSchema(true, $ierror)) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - $output->writeln('ok'); - - return true; - } - - private function test_extract($output) { - $ierror = null; - $output->write(' - Extracting test document: '); - $doc = TestService::generateTestDocument( - 1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE' - ); - $data = array( - $doc - ); - $solrDocs = null; - $this->indexService->extract( - ItemDocument::TYPE_TEST, '_nextant_test', $data, $solrDocs, true, $ierror - ); - - if (!$doc->isProcessed()) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - $output->writeln('ok'); - - return true; - } - - private function test_update($output) { - $ierror = null; - $output->write(' - Updating test document: '); - $doc = TestService::generateTestDocument( - 1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE2' - ); - $asource = - $this->indexService->getDocuments(ItemDocument::TYPE_TEST, '_nextant_test', 1, $ierror); - - if ($asource === false || sizeof($asource) != 1 || (!key_exists('test_1', $asource))) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - $source = $asource['test_1']; - - $doc->setPath('/LICENSE2'); - $doc->setShare( - array( - 'nextant_test_share' - ) - ); - $doc->setShareGroup( - array( - 'nextant_test_share_group' - ) - ); - $doc->deleted(false); - - $data = array( - $doc - ); - $this->indexService->updateDocuments( - ItemDocument::TYPE_TEST, '_nextant_test', $data, $asource, $ierror - ); - - if (!$this->solrTools->commit(false, $ierror)) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - if (!$source->isUpdated()) { - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - $output->writeln('ok'); - - return true; - } - - private function test_search($output) { - $output->write(' - Searching test document: '); - $ierror = null; - $keyword = 'LICENSE'; - $this->solrService->setOwner('_nextant_test'); - if ($result = $this->solrService->search($keyword, array(), $ierror)) { - if (sizeof($result) > 0) { - - foreach ($result as $doc) { - if ($doc->getType() === ItemDocument::TYPE_TEST && $doc->getId() === 1) { - $output->writeln('ok'); - - return true; - } - } - - // CHECK ID DOCUMENT - $output->writeln('fail'); - - return false; - } - - $output->writeln('fail'); - - return false; - } - - $output->writeln( - 'fail - ' . (($ierror === null) ? "0" : $ierror->getCode()) - ); - - return false; - } - - private function test_delete($output) { - $ierror = null; - $output->write(' - Deleting test document: '); - - $doc = new ItemDocument(ItemDocument::TYPE_TEST, 1); - $data = array( - $doc - ); - $this->indexService->removeDocuments($data, $ierror); - if ($doc->isRemoved()) { - $output->writeln('ok'); - - return true; - } - - $output->writeln('fail - ' . ($ierror === null) ? "0" : $ierror->getCode()); - - return false; - } -} - - - diff --git a/lib/Controller/SearchController.php b/lib/Controller/SearchController.php deleted file mode 100644 index 7e9e378..0000000 --- a/lib/Controller/SearchController.php +++ /dev/null @@ -1,305 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Controller; - -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Service\BookmarkService; -use \OCA\Nextant\Service\SolrService; -use OCP\AppFramework\Controller; -use OCP\IRequest; -use OC\Files\Filesystem; -use OCP\Files\NotFoundException; -use OC\Files\View; - -class SearchController extends Controller -{ - - private $userId; - - private $groupManager; - - private $configService; - - private $solrService; - - private $sourceService; - - private $miscService; - - public function __construct($appName, IRequest $request, $userId, $groupManager, $configService, $solrService, $sourceService, $miscService) - { - parent::__construct($appName, $request); - - $this->userId = $userId; - $this->groupManager = $groupManager; - $this->configService = $configService; - - $this->solrService = $solrService; - - $this->sourceService = $sourceService; - - $this->miscService = $miscService; - } - - /** - * @NoAdminRequired - */ - public function searchOptions() - { - return array( - 'resource_level' => $this->configService->getAppValue('resource_level'), - 'index_files_nextant_only' => (($this->configService->getAppValue('index_files_nextant_only') === '1' && $this->configService->getAppValue('index_files_tree') === '1') ? 1 : 0) - ); - } - - /** - * @NoAdminRequired - */ - public function searchRequest($query, $current_dir) - { - $return = array( - 'query' => $query, - 'result' => array() - ); - - if (! $this->solrService) - return $return; - - if ($query !== null) { - - // $groups - $groups = array_map(function ($value) { - return (string) $value; - }, array_keys($this->groupManager->getUserIdGroups($this->userId))); - array_push($groups, '__all'); - - $this->solrService->setOwner($this->userId, $groups); - - $solrResult = $this->solrService->search($query, array( - 'current_directory' => $current_dir - )); - - if (! $solrResult) - return $return; - - $results = array(); - foreach ($solrResult as $item) { - - switch ($item->getSource()) { - - case 'files': - $this->sourceService->file()->initUser($this->userId, false); - $this->sourceService->file()->getSearchResult($item); - $this->sourceService->file()->endUser(); - break; - - case 'bookmarks': - $this->sourceService->bookmark()->getSearchResult($item); - break; - - default: - continue; - } - - if (! $item->isValid()) - continue; - - $hl1 = ''; - $hl2 = ''; - if ($item->getHighlighting() !== null && is_array($item->getHighlighting())) { - if (sizeof($item->getHighlighting()) >= 1) - $hl1 = '... ' . str_replace('', '', str_replace('', '', $item->getHighlighting()[0])) . ' ...'; - if (sizeof($item->getHighlighting()) > 1) - $hl2 = '... ' . str_replace('', '', str_replace('', '', $item->getHighlighting()[1])) . ' ...'; - if (sizeof($item->getHighlighting()) > 2) - $hl1 .= '... ' . str_replace('', '', str_replace('', '', $item->getHighlighting()[2])) . ' ...'; - if (sizeof($item->getHighlighting()) > 3) - $hl2 .= '... ' . str_replace('', '', str_replace('', '', $item->getHighlighting()[3])) . ' ...'; - } - - $item->setLine(1, $item->getPath()); - $item->setLine(2, $hl1); - $item->setLine(3, $hl2); - - $results[] = $item->toArray(); - } - - $return['result'] = $results; - } - - return $return; - } - - /** - * @NoAdminRequired - * @NoCSRFRequired - */ - public function suggestRequest($query) - { - $return = array( - 'query' => $query, - 'status' => '', - 'result' => array() - ); - - if (! $this->solrService) - return $return; - - if ($query == null || $query === '') - return $return; - - $ierror = null; - $suggest = $this->solrService->suggest($query, $ierror); - - $err = ($ierror == null) ? 0 : $ierror->getCode(); - - $return['result'] = $suggest; - $return['status'] = $err; - - // $this->miscService->log('>> ' . var_export($return, true)); - - return $return; - } - - /** - * @NoCSRFRequired - * @PublicPage - */ - public function searchRequestPublic($query, $key) - { - $return = array( - 'query' => $query, - 'result' => array() - ); - - if ($this->configService->getAppValue('index_files_sharelink') !== '1') - return $return; - - if (! $this->solrService) - return $return; - - if (strpos($key, '?') > 0) - $key = substr($key, 0, strpos($key, '?')); - if (strpos($key, '#') > 0) - $key = substr($key, 0, strpos($key, '#')); - - $share = \OC\Share\Share::getShareByToken($key); - - if (! $share) - return $return; - - if ($query !== null) { - - $this->solrService->setOwner('__link_' . $share['id']); - $solrResult = $this->solrService->search($query, array()); - - if (! $solrResult) - return $return; - - $results = array(); - foreach ($solrResult as $item) { - - $item->sharedPublic(true); - switch ($item->getSource()) { - - case 'files': - $this->sourceService->file()->initUser($item->getOwner(), false); - $this->sourceService->file()->getSearchResult($item, $share['file_target'], false); - $this->sourceService->file()->endUser(); - break; - - // case 'bookmarks': - // $this->sourceService->bookmark()->getSearchResult($item); - // break; - - default: - continue; - } - - if (! $item->isValid()) - continue; - - $hl1 = ''; - $hl2 = ''; - if ($item->getHighlighting() !== null && is_array($item->getHighlighting())) { - if (sizeof($item->getHighlighting()) >= 1) - $hl1 = '... ' . $item->getHighlighting()[0] . ' ...'; - if (sizeof($item->getHighlighting()) > 1) - $hl2 = '... ' . $item->getHighlighting()[1] . ' ...'; - if (sizeof($item->getHighlighting()) > 2) - $hl1 .= '... ' . $item->getHighlighting()[2] . ' ...'; - if (sizeof($item->getHighlighting()) > 3) - $hl2 .= '... ' . $item->getHighlighting()[3] . ' ...'; - } - - $item->setLine(1, $item->getPath()); - $item->setLine(2, $hl1); - $item->setLine(3, $hl2); - - $results[] = $item->toArray(); - } - - $return['result'] = $results; - } - - // $this->miscService->log('' . var_export($return, true)); - - return $return; - } - - /** - * @NoCSRFRequired - * @PublicPage - */ - public function suggestRequestPublic($query) - { - $return = array( - 'query' => $query, - 'status' => '', - 'result' => array() - ); - - if (! $this->solrService) - return $return; - - if ($this->configService->getAppValue('index_files_sharelink') !== '1') - return $return; - - if ($query == null || $query === '') - return $return; - - $ierror = null; - $suggest = $this->solrService->suggest($query, $ierror); - - $err = ($ierror == null) ? 0 : $ierror->getCode(); - - $return['result'] = $suggest; - $return['status'] = $err; - - return $return; - } -} diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php deleted file mode 100644 index 6132a9a..0000000 --- a/lib/Controller/SettingsController.php +++ /dev/null @@ -1,475 +0,0 @@ - - * @copyright Maxence Lange 2016-2017 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Controller; - -use \OCA\Nextant\Service\ConfigService; -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\TestService; -use \OCA\Nextant\Items\ItemDocument; -use OCP\AppFramework\Controller; -use OCP\AppFramework\Http\TemplateResponse; -use OCP\IRequest; - -class SettingsController extends Controller -{ - - private $configService; - - private $miscService; - - private $indexService; - - private $solrService; - - private $solrTools; - - private $solrAdmin; - - private $solr_url; - - private $solr_core; - - private $solr_timeout; - - private $l10n; - - public function __construct($appName, IRequest $request, ConfigService $configService, $indexService, $solrService, $solrTools, $solrAdmin, $l10n, $miscService) - { - parent::__construct($appName, $request); - $this->configService = $configService; - $this->indexService = $indexService; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->solrAdmin = $solrAdmin; - $this->l10n = $l10n; - $this->miscService = $miscService; - } - - /** - * @NoCSRFRequired - */ - public function index() - { - $params = [ - 'solr_url' => $this->configService->getAppValue('solr_url'), - 'solr_core' => $this->configService->getAppValue('solr_core'), - 'solr_timeout' => $this->configService->getAppValue('solr_timeout') - ]; - - return new TemplateResponse($this->appName, 'settings.admin', $params, 'blank'); - } - - public function forceIndex() - { - $this->configService->needIndexFiles(true); - } - - public function updateSubOptions($instant, $source = '') - { - $response = array( - 'instant' => $instant, - 'configured' => $this->configService->getAppValue('configured'), - 'ping' => $this->solrAdmin->ping(), - 'solr_url' => $this->configService->getAppValue('solr_url'), - 'solr_core' => $this->configService->getAppValue('solr_core'), - 'solr_timeout' => $this->configService->getAppValue('solr_timeout'), - 'nextant_version' => $this->configService->getAppValue('installed_version'), - 'index_files' => $this->configService->getAppValue('index_files'), - 'index_files_needed' => $this->configService->getAppValue('index_files_needed'), - 'index_files_max_size' => $this->configService->getAppValue('index_files_max_size'), - 'index_files_tree' => $this->configService->getAppValue('index_files_tree'), - 'index_files_nextant_only' => $this->configService->getAppValue('index_files_nextant_only'), - 'index_files_trash' => $this->configService->getAppValue('index_files_trash'), - 'index_files_sharelink' => $this->configService->getAppValue('index_files_sharelink'), - 'index_files_federated' => $this->configService->getAppValue('index_files_federated'), - 'index_files_external' => $this->configService->getAppValue('index_files_external'), - 'index_files_encrypted' => $this->configService->getAppValue('index_files_encrypted'), - 'index_files_filters_text' => $this->configService->getAppValue('index_files_filters_text'), - 'index_files_filters_pdf' => $this->configService->getAppValue('index_files_filters_pdf'), - 'index_files_filters_office' => $this->configService->getAppValue('index_files_filters_office'), - 'index_files_filters_image' => $this->configService->getAppValue('index_files_filters_image'), - 'index_files_filters_audio' => $this->configService->getAppValue('index_files_filters_audio'), - 'index_files_filters_extensions' => self::FileFiltersExtensionsAsList($this->configService->getAppValue('index_files_filters_extensions')), - 'current_docs' => $this->solrTools->count('files'), - 'current_segments' => (($this->solrTools->getInfoCore()) ? $this->solrTools->getInfoCore()->index->segmentCount : ''), - 'files_external_app_enabled' => (\OCP\App::isEnabled('files_external')), - 'bookmarks_app_enabled' => (\OCP\App::isEnabled('bookmarks')), - 'index_bookmarks' => $this->configService->getAppValue('index_bookmarks'), - 'index_bookmarks_needed' => $this->configService->getAppValue('index_bookmarks_needed'), - 'resource_level' => $this->configService->getAppValue('resource_level'), - 'index_live' => $this->configService->getAppValue('index_live'), - 'use_cron' => $this->configService->getAppValue('use_cron'), - 'index_delay_min' => $this->configService->getAppValue('index_delay_min'), - 'index_delay_max' => $this->configService->getAppValue('index_delay_max'), - 'index_locked' => $this->configService->getAppValue('index_locked'), - 'index_files_last' => $this->configService->getAppValue('index_files_last'), - 'index_files_last_format' => date('r', $this->configService->getAppValue('index_files_last')), - 'index_bookmarks_last' => $this->configService->getAppValue('index_bookmarks_last'), - 'index_bookmarks_last_format' => date('r', $this->configService->getAppValue('index_bookmarks_last')), - 'ext_sysvmsg_loaded' => extension_loaded('sysvmsg'), - 'source' => $source - ); - // 'index_live_queuekey' => $this->configService->getAppValue('index_live_queuekey'), - - return $response; - } - - public function setOptionsFiles($index_files, $index_files_max_size, $index_files_tree, $index_files_nextant_only, $index_files_trash, $index_files_sharelink, $index_files_federated, $index_files_external, $index_files_encrypted, $index_files_filters) - { - $this->configService->setAppValue('index_files', $index_files); - $this->configService->setAppValue('index_files_tree', $index_files_tree); - $this->configService->setAppValue('index_files_nextant_only', $index_files_nextant_only); - $this->configService->setAppValue('index_files_trash', $index_files_trash); - $this->configService->setAppValue('index_files_sharelink', $index_files_sharelink); - $this->configService->setAppValue('index_files_federated', $index_files_federated); - $this->configService->setAppValue('index_files_external', $index_files_external); - $this->configService->setAppValue('index_files_encrypted', $index_files_encrypted); - $this->configService->setAppValue('index_files_max_size', $index_files_max_size); - $this->configService->setAppValue('index_files_filters', $index_files_filters); - - return $this->updateSubOptions(false, 'files'); - } - - public function setOptionsFilesFilters($index_files_filters_text, $index_files_filters_pdf, $index_files_filters_office, $index_files_filters_image, $index_files_filters_audio, $index_files_filters_extensions) - { - $this->configService->setAppValue('index_files_filters_text', $index_files_filters_text); - $this->configService->setAppValue('index_files_filters_pdf', $index_files_filters_pdf); - $this->configService->setAppValue('index_files_filters_office', $index_files_filters_office); - $this->configService->setAppValue('index_files_filters_image', $index_files_filters_image); - $this->configService->setAppValue('index_files_filters_audio', $index_files_filters_audio); - - $this->configService->setAppValue('index_files_filters_extensions', self::FileFiltersExtensionsAsString($index_files_filters_extensions)); - - return $this->updateSubOptions(false, 'files_filters'); - } - - public function setOptionsBookmarks($index_bookmarks) - { - $this->configService->setAppValue('index_bookmarks', $index_bookmarks); - - return $this->updateSubOptions(false, 'bookmarks'); - } - - public function setOptionsStatus($resource_level, $index_live, $use_cron, $index_delay_min, $index_delay_max, $force_index) - { - $this->configService->setAppValue('resource_level', $resource_level); - - // if ($index_live === '1') { - // if (extension_loaded('sysvmsg')) { - - // if ($this->configService->getAppValue('index_live') !== '1') - // $this->configService->setAppValue('index_live_queuekey', rand(20000, 990000)); - - // $this->configService->setAppValue('index_live', $index_live); - // } - // } else { - $this->configService->setAppValue('index_live', $index_live); - // } - - $this->configService->setAppValue('use_cron', $use_cron); - - $this->configService->setAppValue('index_delay_min', $index_delay_min); - if ($index_delay_max > 0) - $this->configService->setAppValue('index_delay_max', $index_delay_max); - - if ($force_index === '1') { - $this->configService->setAppValue('configured', '1'); - $this->configService->needIndexFiles(true); - } - - return $this->updateSubOptions(false, 'status'); - } - - public function setSettings($solr_url, $solr_core, $solr_timeout, $command) - { - $this->solr_url = $solr_url; - $this->solr_core = $solr_core; - $this->solr_timeout = $solr_timeout; - - $tmpConfig = array( - 'solr_url' => $solr_url, - 'solr_core' => $solr_core, - 'solr_timeout' => $solr_timeout - ); - - // testing with use __nextant_test_owner from the group __nextant_share_group - $this->solrService->setOwner('__nextant_test_owner', array( - '__nextant_share_group' - )); - - $message = ''; - $result = false; - if (! $this->solrService->setClient($tmpConfig)) - $message = $this->l10n->t('Address-format incorrect'); - else { - - switch ($command) { - case 'ping': - $result = $this->test_ping($message); - break; - - case 'schema': - $result = $this->test_schema($message); - break; - - case 'extract': - $result = $this->test_extract($message); - break; - - case 'update': - $result = $this->test_update($message); - break; - - case 'search': - $result = $this->test_search($message); - break; - - case 'delete': - $result = $this->test_delete($message); - break; - - case 'save': - $result = $this->save($message); - break; - } - } - - $response = array( - 'command' => $command, - 'status' => $result ? 'success' : 'failure', - 'message' => $message - ); - - return $response; - } - - // Wiki Error 9 - private function test_ping(&$message) - { - if ($this->solrAdmin->ping($ierror)) { - $message = $this->l10n->t('Apache Solr is up, running and responding to ping query'); - return true; - } - - $message = $this->l10n->t('Apache Solr is not responding to ping query (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - private function test_schema(&$message) - { - if ($this->solrAdmin->checkSchema(true, $ierror)) { - $message = $this->l10n->t('Schema is fine'); - return true; - } - - $message = $this->l10n->t('Unable to verify/fix schema integrity (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - private function test_extract(&$message) - { - $doc = TestService::generateTestDocument(1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE'); - - $data = array( - $doc - ); - $solrDocs = null; - $this->indexService->extract(ItemDocument::TYPE_TEST, '_nextant_test', $data, $solrDocs, true, $ierror); - - if ($doc->isProcessed()) { - $message = $this->l10n->t('Text extracted'); - return true; - } - - $message = $this->l10n->t('Extraction failed. Please check the configuration of your Solr server (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - private function test_update(&$message) - { - $doc = TestService::generateTestDocument(1, '_nextant_test', __DIR__ . '/../../LICENSE', '/LICENSE2'); - $asource = $this->indexService->getDocuments(ItemDocument::TYPE_TEST, '_nextant_test', 1, $ierror); - - if ($asource === false || sizeof($asource) != 1 || (! key_exists('test_1', $asource))) { - $message = $this->l10n->t('Error updating field - Can\'t find original document - (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - $source = $asource['test_1']; - - $doc->setPath('/LICENSE2'); - $doc->setShare(array( - 'nextant_test_share' - )); - $doc->setShareGroup(array( - 'nextant_test_share_group' - )); - $doc->deleted(false); - - $data = array( - $doc - ); - $this->indexService->updateDocuments(ItemDocument::TYPE_TEST, '_nextant_test', $data, $asource, $ierror); - - if (! $this->solrTools->commit(false, $ierror)) { - $message = $this->l10n->t('Error during commit (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - if (! $source->isUpdated()) { - $message = $this->l10n->t('Error while updating field (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - $message = $this->l10n->t('Document updated'); - return true; - } - - private function test_search(&$message) - { - $keyword = 'LICENSE'; - $this->solrService->setOwner('_nextant_test'); - if ($result = $this->solrService->search($keyword, array(), $ierror)) { - if (sizeof($result) > 0) { - - foreach ($result as $doc) { - if ($doc->getType() === ItemDocument::TYPE_TEST && $doc->getId() === 1) { - $message = $this->l10n->t('Found it'); - return true; - } - } - - // CHECK ID DOCUMENT - $message = $this->l10n->t('Found something, but not what was expected.'); - return false; - } - - $message = $this->l10n->t('Cannot find any document'); - return false; - } - - $message = $this->l10n->t('Search failed. Please check the configuration of your Solr server (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - private function test_delete(&$message) - { - $doc = new ItemDocument(ItemDocument::TYPE_TEST, 1); - $data = array( - $doc - ); - $this->indexService->removeDocuments($data, $ierror); - if ($doc->isRemoved()) { - $message = $this->l10n->t('Test-document deleted'); - return true; - } - - $message = $this->l10n->t('Could not delete test-document. Please check the configuration of your Solr server (Error #%1$s)', array( - $ierror->getCode() - )); - return false; - } - - private function save(&$message) - { - if (! is_null($this->solr_url) && ! is_null($this->solr_core) && ! is_null($this->solr_timeout)) { - - if ($this->solr_timeout < 5) - $this->solr_timeout = 5; - - $this->configService->setAppValue('solr_url', $this->solr_url); - $this->configService->setAppValue('solr_core', $this->solr_core); - $this->configService->setAppValue('solr_timeout', $this->solr_timeout); - - if ($this->configService->getAppValue('configured') !== '1') { - $this->configService->setAppValue('configured', '2'); - // if (! extension_loaded('sysvmsg')) - // $this->configService->setAppValue('index_live', '2'); - } - - $message = $this->l10n->t('Your configuration has been saved'); - return true; - } - - $message = $this->l10n->t('Configuration could not be saved. Please reload this page.'); - return false; - } - - - public static function FileFiltersExtensionsAsArray($text) - { - $extensions = array(); - if ($text == '') - return $extensions; - - $lines = explode("\n", $text); - foreach ($lines as $line) { - $exts = explode(' ', $line); - foreach ($exts as $ext) { - $ext = trim($ext); - if (strlen($ext) > 1 && substr($ext, 0, 1) === '.' && ! in_array($ext, $extensions)) - $extensions[] = $ext; - } - } - - return $extensions; - } - - public static function FileFiltersExtensionsAsString($arr) - { - if (! is_array($arr)) - $arr = self::FileFiltersExtensionsAsArray($arr); - return implode(' ', $arr); - } - - public static function FileFiltersExtensionsAsList($text) - { - $a = self::FileFiltersExtensionsAsArray($text); - - $lines = array(); - $chunk = array_chunk($a, 6); - foreach ($chunk as $c) { - $lines[] = self::FileFiltersExtensionsAsString($c); - } - - return implode("\n", $lines); - } -} diff --git a/lib/Cron/BackgroundIndex.php b/lib/Cron/BackgroundIndex.php deleted file mode 100644 index eb60309..0000000 --- a/lib/Cron/BackgroundIndex.php +++ /dev/null @@ -1,60 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Cron; - -use \OCA\Nextant\AppInfo\Application; - -class BackgroundIndex extends \OC\BackgroundJob\TimedJob -{ - - private $configService; - - private $solrAdmin; - - private $miscService; - - private $sourceService; - - public function __construct() - { - $this->setInterval(5); // 2 minutes - } - - protected function run($argument) - { - $app = new Application(); - $c = $app->getContainer(); - - $this->configService = $c->query('ConfigService'); - - if ($this->configService->getAppValue('use_cron') !== '1') - return; - - $backgroundService = $c->query('BackgroundService'); - $backgroundService->run(); - } -} diff --git a/lib/Db/LiveQueue.php b/lib/Db/LiveQueue.php deleted file mode 100644 index c7310ef..0000000 --- a/lib/Db/LiveQueue.php +++ /dev/null @@ -1,44 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Db; - -use \OCA\Nextant\Items\ItemQueue; -use OCP\AppFramework\Db\Entity; - -class LiveQueue extends Entity -{ - - public $id; - - public $item; - - public function __construct($item = null) - { - $this->setItem(ItemQueue::toJson($item)); - } -} - diff --git a/lib/Db/LiveQueueMapper.php b/lib/Db/LiveQueueMapper.php deleted file mode 100644 index 718a4e3..0000000 --- a/lib/Db/LiveQueueMapper.php +++ /dev/null @@ -1,75 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Db; - -use OCA\Nextant\Db\LiveQueue; -use \OCA\Nextant\Items\ItemQueue; -use OCP\IDBConnection; -use OCP\AppFramework\Db\Mapper; - -class LiveQueueMapper extends Mapper -{ - - const TABLENAME = 'nextant_live_queue'; - - public function __construct(IDBConnection $db) - { - parent::__construct($db, self::TABLENAME, 'OCA\Nextant\Db\LiveQueue'); - } - - public function find($id) - { - $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' WHERE id = ?'; - return $this->findEntity($sql, [ - $id - ]); - } - - public function next($keepit = false) - { - try { - // $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' ORDER BY id ASC LIMIT 0, 1'; - $sql = 'SELECT * FROM *PREFIX*' . self::TABLENAME . ' ORDER BY id ASC LIMIT 1'; - $result = $this->findEntity($sql, []); - } catch (\OCP\AppFramework\Db\DoesNotExistException $dnee) { - return false; - } - - if (! $keepit) { - $this->delete($result); - } - - return $result; - } - - public function clear() - { - $sql = 'TRUNCATE *PREFIX*' . self::TABLENAME; - return $this->execute($sql); - } -} - diff --git a/lib/Events/BookmarksEvents.php b/lib/Events/BookmarksEvents.php deleted file mode 100644 index d9c8148..0000000 --- a/lib/Events/BookmarksEvents.php +++ /dev/null @@ -1,85 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Events; - -use \OCA\Nextant\Service\MiscService; - -class BookmarksEvents -{ - - private $configService; - - private $userId; - - private $solrService; - - private $miscService; - - public function __construct($configService, $userId, $solrService, $miscService) - { - $this->userId = $userId; - $this->configService = $configService; - $this->solrService = $solrService; - $this->miscService = $miscService; - - $this->solrService->setOwner($this->userId); - } - - /** - * onBookmarkAdd() - * - * @param number $bookmarkId - */ - public function onBookmarkAdd($bookmarkId) - { - if ($this->configService->getAppValue('index_bookmarks') === '1') - $this->configService->needIndexBookmarks(true); - } - - /** - * onBookmarkEdit() - * - * @param number $bookmarkId - */ - public function onBookmarkEdit($bookmarkId) - { - if ($this->configService->getAppValue('index_bookmarks') === '1') - $this->configService->needIndexBookmarks(true); - } - - /** - * onBookmarkRemove() - * - * @param number $bookmarkId - */ - public function onBookmarkDelete($bookmarkId) - { - if ($this->configService->getAppValue('index_bookmarks') === '1') - $this->configService->needIndexBookmarks(true); - } -} - diff --git a/lib/Events/FilesEvents.php b/lib/Events/FilesEvents.php deleted file mode 100644 index e9c46ae..0000000 --- a/lib/Events/FilesEvents.php +++ /dev/null @@ -1,228 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Events; - -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Service\MiscService; -use \OCA\Nextant\Events\FilesEvents; -use \OCA\Nextant\Items\ItemQueue; -use OC\Files\Filesystem; - -class FilesEvents -{ - - const FILE_CREATE = 'files_file_create'; - - const FILE_UPDATE = 'files_file_update'; - - const FILE_RENAME = 'files_file_rename'; - - const FILE_TRASH = 'files_file_trash'; - - const FILE_DELETE = 'files_file_delete'; - - const FILE_RESTORE = 'files_file_restore'; - - const FILE_SHARE = 'files_file_share'; - - const FILE_UNSHARE = 'files_file_unshare'; - - private $userId; - - private $configService; - - private $queueService; - - private $miscService; - - public function __construct($userId, $configService, $queueService, $miscService) - { - $this->userId = $userId; - $this->configService = $configService; - $this->queueService = $queueService; - $this->miscService = $miscService; - } - - /** - * onFileCreate() - * - * @param string $path - */ - public function onFileCreate($path) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($path, Filesystem::getView()); - if ($file === false) - return; - - if ($file->getId() > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_CREATE, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileUpdate() - * - * @param string $path - */ - public function onFileUpdate($path) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($path, Filesystem::getView()); - if ($file->getId() > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_UPDATE, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileRename() - * - * @param string $target - */ - public function onFileRename($target) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($target, Filesystem::getView()); - if ($file->getId() > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_RENAME, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileTrash() - * - * @param string $path - */ - public function onFileTrash($path) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($path, Filesystem::getView()); - if ($file->getId() > 0) { - if ($this->configService->getAppValue('index_files_trash') === '1' && \OCP\App::isEnabled('files_trashbin')) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_TRASH, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - else - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_DELETE, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - return; - } - } - $this->configService->needIndexFiles(true); - } - - /** - * onFileDelete() - * - * @param string $path - */ - public function onFileDelete($path) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($path, new \OC\Files\View('/' . $this->userId)); - - if (! $file) - return; - - if ($file->getId() > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_DELETE, array( - 'userid' => $this->userId, - 'fileid' => $file->getId(), - 'folder' => ($file->getType() === \OCP\Files\FileInfo::TYPE_FOLDER) - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileRestore - * - * @param string $path - */ - public function onFileRestore($path) - { - if ($this->configService->getAppValue('index_live') !== '0') { - $file = FileService::getFileInfoFromPath($path, Filesystem::getView()); - if ($file->getId() > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_RESTORE, array( - 'userid' => $this->userId, - 'fileid' => $file->getId() - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileShare - * - * @param string $path - */ - public function onFileShare($fileId) - { - if ($this->configService->getAppValue('index_live') !== '0') { - if ($fileId > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_SHARE, array( - 'userid' => $this->userId, - 'fileid' => $fileId - ))); - } else - $this->configService->needIndexFiles(true); - } - - /** - * onFileUnshare - * - * @param string $path - */ - public function onFileUnshare($fileId) - { - if ($this->configService->getAppValue('index_live') !== '0') { - if ($fileId > 0) - $this->queueService->liveIndex(new ItemQueue(FilesEvents::FILE_UNSHARE, array( - 'userid' => $this->userId, - 'fileid' => $fileId - ))); - } else - $this->configService->needIndexFiles(true); - } -} - diff --git a/lib/Hooks/BookmarksHooks.php b/lib/Hooks/BookmarksHooks.php deleted file mode 100644 index cff3498..0000000 --- a/lib/Hooks/BookmarksHooks.php +++ /dev/null @@ -1,79 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Hooks; - -/** - * init Files' Events - */ -class BookmarksHooks -{ - - /** - * retreive the BookmarksEvents' Controller - * - * @return BookmarksHooks - */ - static protected function getController() - { - $app = new \OCA\Nextant\AppInfo\Application(); - return $app->getContainer()->query('BookmarksEvents'); - } - - /** - * hook events: bookmark added - * - * @param array $params - * The hook params - */ - public static function bookmarkAdd($params) - { - self::getController()->onBookmarkAdd($params['id']); - } - - /** - * hook events: bookmark edited - * - * @param array $params - * The hook params - */ - public static function bookmarkEdit($params) - { - self::getController()->onBookmarkEdit($params['id']); - } - - /** - * hook events: bookmark deleted - * - * @param array $params - * The hook params - */ - public static function bookmarkDelete($params) - { - self::getController()->onBookmarkDelete($params['id']); - } -} - diff --git a/lib/Hooks/FilesHooks.php b/lib/Hooks/FilesHooks.php deleted file mode 100644 index cfb91ce..0000000 --- a/lib/Hooks/FilesHooks.php +++ /dev/null @@ -1,128 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Hooks; - -/** - * init Files' Events - */ -class FilesHooks -{ - - /** - * retreive the FilesEvents' Controller - * - * @return FilesHooks - */ - static protected function getController() - { - $app = new \OCA\Nextant\AppInfo\Application(); - return $app->getContainer()->query('FilesEvents'); - } - - /** - * hook events: file is created - * - * @param array $params - * The hook params - */ - public static function fileCreated($params) - { - self::getController()->onFileCreate($params['path']); - } - - /** - * hook events: file is updated - * - * @param array $params - */ - public static function fileUpdated($params) - { - self::getController()->onFileUpdate($params['path']); - } - - /** - * hook events: file is renamed - * - * @param array $params - */ - public static function fileRenamed($params) - { - self::getController()->onFileRename($params['newpath']); - } - - /** - * hook event: file is sent to trashbin - * - * @param array $params - */ - public static function fileTrashed($params) - { - self::getController()->onFileTrash($params['path']); - } - - /** - * hook event: file is deleted - * - * @param array $params - */ - public static function fileDeleted($params) - { - self::getController()->onFileDelete($params['path']); - } - - /** - * hook event: file is restored - * - * @param array $params - */ - public static function fileRestored($params) - { - self::getController()->onFileRestore($params['filePath']); - } - - /** - * hook event: file is shared - * - * @param array $params - */ - public static function fileShared($params) - { - self::getController()->onFileShare($params['itemSource']); - } - - /** - * hook event: file is unshared - * - * @param array $params - */ - public static function fileUnshared($params) - { - if (key_exists('itemSource', $params)) - self::getController()->onFileUnshare($params['itemSource']); - } -} - diff --git a/lib/Items/ItemDocument.php b/lib/Items/ItemDocument.php deleted file mode 100644 index 7fd8890..0000000 --- a/lib/Items/ItemDocument.php +++ /dev/null @@ -1,630 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Items; - -class ItemDocument -{ - - const TYPE_TEST = 'test'; - - const TYPE_FILE = 'files'; - - const TYPE_BOOKMARK = 'bookmarks'; - - private $test = false; - - private $type; - - private $source; - - private $owner; - - private $path; - - private $mimetype; - - private $size; - - private $absolutePath = null; - - private $mtime; - - private $share; - - private $sharegroup; - - private $storage_local; - - private $content_type; - - private $content_type_mime; - - private $content_type_charset; - - private $score; - - private $lines = array(); - - private $highlighting; - - private $needExtract = false; - - private $needUpdate = false; - - private $public = false; - - private $external = false; - - private $federated = false; - - private $shared = false; - - private $sharedpublic = false; - - private $encrypted = false; - - private $extractable = false; - - private $indexed = false; - - private $extracted = false; - - private $processed = false; - - private $deleted = false; - - private $removed = false; - - private $updated = false; - - private $noindex = false; - - private $failedIndex = false; - - private $failedExtract = false; - - private $failedUpdate = false; - - private $entry = null; - - private $temp = false; - - private $valid = false; - - private $synced = false; - - public function __construct($type = '', $id = 0) - { - $this->type = $type; - $this->id = $id; - } - - public function setType($type) - { - $this->type = $type; - } - - public function getType() - { - return $this->type; - } - - public function setId($id) - { - $this->id = $id; - } - - public function getId() - { - return (int) $this->id; - } - - public function test($test) - { - $this->test = $test; - } - - public function isTest() - { - return $this->test; - } - - public function setSource($source) - { - $this->source = $source; - } - - public function getSource() - { - return $this->source; - } - - public function setOwner($owner) - { - $this->owner = $owner; - } - - public function getOwner() - { - return $this->owner; - } - - public function setPath($path) - { - $this->path = $path; - } - - public function getPath() - { - return $this->path; - } - - public function setMimetype($mimetype) - { - $this->mimetype = $mimetype; - } - - public function getMimetype() - { - return $this->mimetype; - } - - public function setSize($size) - { - $this->size = $size; - } - - public function getSize() - { - return $this->size; - } - - public function setEntry($entry) - { - $this->entry = $entry; - } - - public function getEntry() - { - return $this->entry; - } - - public function setAbsolutePath($absolutePath, $temp = false) - { - $this->absolutePath = $absolutePath; - $this->temp = $temp; - } - - public function getAbsolutePath() - { - return $this->absolutePath; - } - - public function setMTime($mtime) - { - $this->mtime = $mtime; - } - - public function getMTime() - { - return (int) $this->mtime; - } - - public function setShare($share = array()) - { - if (! is_array($share)) - $share = array(); - $this->share = $share; - } - - public function getShare() - { - return $this->share; - } - - public function setShareGroup($share = array()) - { - if (! is_array($share)) - $share = array(); - $this->sharegroup = $share; - } - - public function getShareGroup() - { - return $this->sharegroup; - } - - public function setHighlighting($high) - { - $this->highlighting = $high; - } - - public function getHighlighting() - { - return $this->highlighting; - } - - public function setContentType($type) - { - $this->content_type = $type; - - if (strpos($type, ';') === false) { - $this->content_type_mime = $type; - return; - } - - list ($this->content_type_mime, $this->content_type_charset) = explode(';', $type); - } - - public function getContentType() - { - return $this->content_type; - } - - public function getContentMime() - { - return $this->content_type_mime; - } - - public function getContentCharset() - { - return $this->content_type_charset; - } - - public function setScore($score) - { - $this->score = $score; - } - - public function getScore() - { - return $this->score; - } - - public function setLine($nb, $html) - { - $this->lines[$nb] = $html; - } - - public function getLine($nb) - { - if (key_exists($nb, $this->lines)) - return $this->lines[$nb]; - - return ''; - } - - public function storageLocal($local) - { - $this->storage_local = $local; - } - - public function isStorageLocal() - { - return $this->storage_local; - } - - public function federated($fed) - { - $this->federated = $fed; - } - - public function isFederated() - { - return $this->federated; - } - - public function needExtract($need) - { - $this->needExtract = $need; - } - - public function neededExtract() - { - return $this->needExtract; - } - - public function needUpdate($need) - { - $this->needUpdate = $need; - } - - public function neededUpdate() - { - return $this->needUpdate; - } - - public function external($external) - { - $this->external = $external; - } - - public function isExternal() - { - return $this->external; - } - - public function encrypted($encrypted) - { - $this->encrypted = $encrypted; - } - - public function isEncrypted() - { - return $this->encrypted; - } - - public function shared($shared) - { - $this->shared = $shared; - } - - public function isShared() - { - return $this->shared; - } - - public function extractable($extractable) - { - $this->extractable = $extractable; - } - - public function isExtractable() - { - return $this->extractable; - } - - public function indexed($indexed) - { - $this->indexed = $indexed; - } - - public function isIndexed() - { - return $this->indexed; - } - - public function extracted($extracted) - { - $this->extracted = $extracted; - } - - public function isExtracted() - { - return $this->extracted; - } - - public function processed($processed) - { - $this->processed = $processed; - } - - public function isProcessed() - { - return $this->processed; - } - - public function deleted($deleted) - { - $this->deleted = $deleted; - } - - public function isDeleted() - { - return $this->deleted; - } - - public function removed($removed) - { - $this->removed = $removed; - } - - public function isRemoved() - { - return $this->removed; - } - - public function updated($updated) - { - $this->updated = $updated; - } - - public function isUpdated() - { - return $this->updated; - } - - public function noIndex($noindex) - { - $this->noindex = $noindex; - } - - public function isNoIndex() - { - return $this->noindex; - } - - public function failedIndex($index) - { - $this->failedIndex = $index; - } - - public function isFailedIndex() - { - return $this->failedIndex; - } - - public function failedExtract($failed) - { - $this->failedExtract = $failed; - } - - public function isFailedExtract() - { - return $this->failedExtract; - } - - public function failedUpdate($failed) - { - $this->failedUpdate = $failed; - } - - public function isFailedUpdate() - { - return $this->failedUpdate; - } - - public function synced($synced) - { - $this->synced = $synced; - } - - public function isSynced() - { - return $this->synced; - } - - public function isTemp() - { - return $this->temp; - } - - public function sharedPublic($pub) - { - $this->sharedpublic = $pub; - } - - public function isSharedPublic() - { - return $this->sharedpublic; - } - - public function valid($valid) - { - $this->valid = $valid; - } - - public function isValid() - { - return $this->valid; - } - - public static function fromCompleteId($str) - { - list ($type, $id) = explode('_', $str, 2); - return new ItemDocument($type, $id); - } - - public static function fromSolr($document) - { - $item = self::fromCompleteId($document->id); - $item->setPath($document->nextant_path); - $item->setMTime($document->nextant_mtime); - $item->setSource($document->nextant_source); - $item->isDeleted($document->nextant_deleted); - $item->setOwner($document->nextant_owner); - $item->setScore($document->score); - if (is_array($document->nextant_attr_content_type) && sizeof($document->nextant_attr_content_type) > 0) - $item->setContentType($document->nextant_attr_content_type[0]); - - return $item; - } - - public static function fromItemQueue($type, $queue) - { - $item = new ItemDocument($type, $queue->getFileId()); - $item->setOwner($queue->getUserId()); - - return $item; - } - - public static function getItem($list, $item) - { - if ($list == null || $item == null || ! is_array($list)) - return null; - - if (isset($list[$item->getType() . '_' . $item->getId()])) - return $list[$item->getType() . '_' . $item->getId()]; - - return null; - } - - public function toArray($complete = false) - { - $arr = array( - 'entry' => $this->getEntry(), - 'data' => array( - 'id' => $this->getId(), - 'type' => $this->getType(), - 'path' => $this->getPath(), - 'deleted' => $this->isDeleted(), - 'shared' => $this->isShared(), - 'score' => $this->getScore(), - 'lines' => $this->lines - ) - ); - - if ($complete) - $arr['complete'] = $complete = array( - 'type' => $this->getType(), - 'source' => $this->getSource(), - 'owner' => $this->getOwner(), - 'path' => $this->getPath(), - 'mimetype' => $this->getMimetype(), - 'size' => $this->getSize(), - 'absolutepath' => $this->getAbsolutePath(), - 'mtime' => $this->getMTime(), - 'share' => $this->getShare(), - 'sharegroup' => $this->getSharegroup(), - 'storage_local' => (($this->isStorageLocal()) ? 'y' : 'n'), - 'needextract' => $this->neededExtract(), - 'needUpdate' => $this->neededUpdate(), - 'external' => $this->isExternal(), - 'encrypted' => $this->isEncrypted(), - 'extractable' => $this->isExtractable(), - 'indexed' => $this->isIndexed(), - 'extracted' => $this->isExtracted(), - 'processed' => $this->isProcessed(), - 'deleted' => $this->isDeleted(), - 'removed' => $this->isRemoved(), - 'updated' => $this->isUpdated(), - 'failedIndex' => $this->isFailedIndex(), - 'failedExtract' => $this->isFailedExtract(), - 'failedUpdate' => $this->isFailedUpdate(), - 'temp' => $this->isTemp(), - 'valid' => $this->isValid(), - 'synced' => $this->isSynced() - ); - - return $arr; - } - - public function toString($complete = false) - { - return json_encode($this->toArray($complete)); - } -} \ No newline at end of file diff --git a/lib/Items/ItemError.php b/lib/Items/ItemError.php deleted file mode 100644 index 6649c23..0000000 --- a/lib/Items/ItemError.php +++ /dev/null @@ -1,81 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Items; - -class ItemError -{ - - const EXCEPTION_DECRYPTION_FAILED = 1046; - - const EXCEPTION_ENCRYPT_NO_MODULE = 1040; - - const LINK_EXCEPTION_DECRYPTION_FAILED = 'https://help.nextcloud.com/t/nextant-regarding-encrypted-files/5422'; - - const EXCEPTION_DECRYPT_PRIVATEKEY_MISSING = 1050; - - const LINK_EXCEPTION_DECRYPT_PRIVATEKEY_MISSING = 'https://help.nextcloud.com/t/nextant-regarding-encrypted-files/5422'; - - const EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH = 2234; - - const ERROR_MANAGING_FAILURE = 1129; - - const ERROR_SOLR_NOT_FULLY_CONFIGURED = 9938; - - const ERROR_GET_SOLARIUM_CLIENT = 9939; - - private $errorcode; - - private $message; - - private $link = ''; - - public function __construct($code = 0, $msg = '') - { - $this->errorcode = $code; - $this->message = $msg; - } - - public function getCode() - { - return $this->errorcode; - } - - public function getMessage() - { - return $this->message; - } - - public function link($link) - { - $this->link = $link; - } - - public function getLink() - { - return $this->link; - } -} \ No newline at end of file diff --git a/lib/Items/ItemQueue.php b/lib/Items/ItemQueue.php deleted file mode 100644 index 95a046b..0000000 --- a/lib/Items/ItemQueue.php +++ /dev/null @@ -1,145 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Items; - -class ItemQueue -{ - - private $type; - - private $userId; - - private $fileId; - - private $path; - - private $folder = false; - - public function __construct($type = '', $more = array()) - { - $this->type = $type; - - if (is_array($more)) { - if (key_exists('userid', $more)) - $this->setUserId($more['userid']); - if (key_exists('fileid', $more)) - $this->setFileId($more['fileid']); - if (key_exists('path', $more)) - $this->setPath($more['path']); - if (key_exists('folder', $more)) - $this->setFolder($more['folder']); - } - - if (is_object($more)) { - if (isset($more->userid)) - $this->setUserId($more->userid); - if (isset($more->fileid)) - $this->setFileId($more->fileid); - if (isset($more->path)) - $this->setPath($more->path); - if (isset($more->folder)) - $this->setFolder($more->folder); - } - } - - public function setType($type) - { - $this->type = $type; - } - - public function getType() - { - return $this->type; - } - - public function setUserId($userId) - { - $this->userId = $userId; - } - - public function getUserId() - { - return $this->userId; - } - - public function setFileId($fileId) - { - $this->fileId = $fileId; - } - - public function getFileId() - { - return $this->fileId; - } - - public function setPath($path) - { - $this->path = $path; - } - - public function getPath() - { - return $this->path; - } - - public function setFolder($folder) - { - $this->folder = $folder; - } - - public function getFolder() - { - return $this->folder; - } - - public static function toJson($item) - { - if ($item === null) - return null; - - return json_encode(array( - 'type' => $item->getType(), - 'userid' => $item->getUserId(), - 'fileid' => $item->getFileId(), - 'path' => $item->getPath(), - 'folder' => $item->getFolder() - )); - } - - public static function fromJson($json) - { - $data = json_decode($json); - - if ($data == null) - return false; - - $item = new ItemQueue($data->type, $data); - return $item; - } -} - - diff --git a/lib/Migration/NextantUpgrade.php b/lib/Migration/NextantUpgrade.php deleted file mode 100644 index 44bc2e3..0000000 --- a/lib/Migration/NextantUpgrade.php +++ /dev/null @@ -1,69 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Migration; - -use OCP\Migration\IOutput; -use OCP\Migration\IRepairStep; - -class NextantUpgrade implements IRepairStep -{ - - private $solrService; - - private $solrAdmin; - - private $configService; - - public function __construct($configService, $solrService, $solrAdmin) - { - $this->solrService = $solrService; - $this->solrAdmin = $solrAdmin; - $this->configService = $configService; - } - - /** - * Returns the step's name - * - * @return string - * @since 9.1.0 - */ - public function getName() - { - return 'Check and update Solr schema'; - } - - /** - */ - public function run(IOutput $output) - { - $this->solrAdmin->checkSchema(true, $ierror); - $this->solrAdmin->checkSchema(true, $ierror); - $this->solrAdmin->checkSchema(true, $ierror); - $this->configService->removeOldConfig(); - // $this->configService->stopUpdate(); - } -} \ No newline at end of file diff --git a/lib/Service/BackgroundService.php b/lib/Service/BackgroundService.php deleted file mode 100644 index 9110255..0000000 --- a/lib/Service/BackgroundService.php +++ /dev/null @@ -1,186 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Items\ItemDocument; - -class BackgroundService -{ - - private $userManager; - - private $rootFolder; - - private $configService; - - private $solrService; - - private $solrToolsService; - - private $solrAdminService; - - private $sourceService; - - private $indexService; - - private $queueService; - - private $miscService; - - public function __construct($userManager, $rootFolder, $configService, $solrService, $solrToolsService, $solrAdminService, $sourceService, $indexService, $queueService, $miscService) - { - $this->miscService = $miscService; - $this->userManager = $userManager; - $this->configService = $configService; - $this->solrService = $solrService; - $this->solrTools = $solrToolsService; - $this->solrAdmin = $solrAdminService; - $this->sourceService = $sourceService; - $this->indexService = $indexService; - $this->queueService = $queueService; - $this->rootFolder = $rootFolder; - } - - public function run() - { - if (! $this->solrService->configured(false)) - return; - - if (! $this->solrAdmin->ping()) - return; - - if ($this->configService->isLockedIndex()) - return; - - $this->indexService->lockActive(true); - $this->configService->lockIndex(true); - - $this->liveIndex(); - $this->cronIndex(); - - $this->configService->lockIndex(false); - - return; - } - - public function setDebug($debug) - { - $this->miscService->setDebug($debug); - $this->sourceService->file()->setDebug($debug); - } - - private function liveIndex() - { - if ($this->configService->getAppValue('index_live') === '0') - return; - - while (($item = $this->queueService->readQueue()) !== false) { - $this->queueService->executeItem($item); - } - } - - private function cronIndex() - { - if (($this->configService->timeIndexDelay('index_live') !== '1' && $this->configService->timeIndexDelay('files') && $this->configService->neededIndexFiles()) || $this->configService->timeIndexDelay('files', 24 * $this->configService->getAppValue('index_delay_max'))) { - $this->configService->needIndexFiles(false); - $this->cronIndexFiles(); - $this->cronUpdateFiles(); - $this->configService->timeIndex('files'); - } - - if (($this->configService->timeIndexDelay('index_live') !== '1' && $this->configService->timeIndexDelay('bookmarks') && $this->configService->neededIndexBookmarks()) || $this->configService->timeIndexDelay('bookmarks', 24 * $this->configService->getAppValue('index_delay_max'))) { - $this->configService->needIndexBookmarks(false); - $this->cronIndexBookmarks(); - $this->configService->timeIndex('bookmarks'); - } - } - - private function cronIndexFiles() - { - if (! $this->sourceService->file()->configured()) - return; - - $users = $this->userManager->search(''); - - foreach ($users as $user) { - - $this->sourceService->file()->initUser($user->getUID(), true); - $files = $this->sourceService->file()->getFilesPerUserId('/files', array()); - - if ($this->configService->getAppValue('index_files_trash') === '1') { - $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array( - 'deleted' - )); - $files = array_merge($files, $files_trashbin); - } - $solrDocs = null; - $this->indexService->extract(ItemDocument::TYPE_FILE, $user->getUID(), $files, $solrDocs); - $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $user->getUID(), $files, $solrDocs); - - $this->sourceService->file()->endUser(); - } - } - - private function cronUpdateFiles() - { - if (! $this->sourceService->file()->configured()) - return; - - $users = $this->userManager->search(''); - foreach ($users as $user) { - - $this->sourceService->file()->initUser($user->getUID(), true); - $files = $this->sourceService->file()->getFilesPerUserId('/files', array()); - - if ($this->configService->getAppValue('index_files_trash') === '1') { - $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array( - 'deleted' - )); - $files = array_merge($files, $files_trashbin); - } - - $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $user->getUID(), $files); - - $this->sourceService->file()->endUser(); - } - } - - private function cronIndexBookmarks() - { - if (! $this->sourceService->bookmark()->configured()) - return; - - $users = $this->userManager->search(''); - foreach ($users as $user) { - $bm = $this->sourceService->bookmark()->getBookmarksPerUserId($user->getUID()); - - $solrDocs = null; - $this->indexService->extract(ItemDocument::TYPE_BOOKMARK, $user->getUID(), $bm, $solrDocs); - $this->indexService->removeOrphans(ItemDocument::TYPE_BOOKMARK, $user->getUID(), $bm, $solrDocs); - } - } -} \ No newline at end of file diff --git a/lib/Service/BookmarkService.php b/lib/Service/BookmarkService.php deleted file mode 100644 index 7bc4807..0000000 --- a/lib/Service/BookmarkService.php +++ /dev/null @@ -1,121 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Items\ItemDocument; -use OCA\Bookmarks\Controller\Lib\Bookmarks; - -class BookmarkService -{ - - private $configService; - - // private $solrService; - - // private $solrTools; - private $miscService; - - private $libBookmarks = null; - - public function __construct($configService, $miscService) - { - $this->configService = $configService; - $this->miscService = $miscService; - } - - public function configured() - { - if (! \OCP\App::isEnabled('bookmarks')) - return false; - - if ($this->configService->getAppValue('index_bookmarks') === '1') - return true; - - return false; - } - - public function syncDocument(&$item) - { - $item->synced(true); - $item->extractable(true); - $item->valid(true); - - return true; - } - - /** - * get bookmarks from a specific user - * - * @param number $userId - * @return array - */ - public function getBookmarksPerUserId($userId) - { - if (! $this->configured()) - return false; - - // if ($this->configService->getCloudVersion() >= 11) { - if ($this->libBookmarks == null) { - $bookmarkApp = new \OCA\Bookmarks\AppInfo\Application(); - $this->libBookmarks = $bookmarkApp->getContainer()->query(\OCA\Bookmarks\Controller\Lib\Bookmarks::class); - } - - $bookmarks = $this->libBookmarks->findBookmarks($userId, 0, 'id', array(), false, - 1); - // } else { - // $db = \OC::$server->getDb(); - // $bookmarks = Bookmarks::findBookmarks($userId, $db, 0, 'id', array(), false, - 1); - // } - - $data = array(); - foreach ($bookmarks as $bookmark) { - $item = new ItemDocument(ItemDocument::TYPE_BOOKMARK, $bookmark['id']); - $item->setMTime($bookmark['lastmodified']); - $item->setAbsolutePath($bookmark['url']); - $item->setPath($bookmark['url']); - $data[] = $item; - } - - return $data; - } - - public static function getSearchResult(&$data) - { - $entry = array( - 'id' => $data->getId(), - 'mtime' => $data->getMTime() * 1000, - 'name' => $data->getPath(), - 'permissions' => 27, - 'type' => 'bookmark' - ); - // 'mimetype' => 'text/html', - - $data->setEntry($entry); - $data->valid(true); - - return true; - } -} \ No newline at end of file diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php deleted file mode 100644 index 9049088..0000000 --- a/lib/Service/ConfigService.php +++ /dev/null @@ -1,302 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Controller\SettingsController; -use OCP\IConfig; - -class ConfigService -{ - - const SEARCH_DISPLAY_NEXTANT = 1; - - const SEARCH_DISPLAY_FILES = 2; - - const RESOURCE_LEVEL_LOWER = '1'; - - const RESOURCE_LEVEL_LOW = '2'; - - const RESOURCE_LEVEL_MID = '3'; - - const RESOURCE_LEVEL_HIGH = '4'; - - const RESOURCE_LEVEL_HIGHER = '5'; - - private $defaults = [ - 'configured' => '0', - 'solr_url' => 'http://127.0.0.1:8983/solr/', - 'solr_core' => 'nextant', - 'solr_timeout' => '30', - - 'resource_level' => '4', - 'index_live' => '2', - 'index_live_queuekey' => '19375', - 'index_delay' => '2', - 'index_delay_min' => '2', - 'index_delay_max' => '4', - 'use_cron' => '1', - 'index_locked' => '0', - 'index_files_last' => '0', - 'index_bookmarks_last' => '0', - - 'index_files' => '1', - 'index_files_needed' => '1', - 'index_files_update_needed' => '1', - 'index_files_tree' => '0', - 'index_files_nextant_only' => '0', - 'index_files_trash' => '1', - 'index_files_sharelink' => '0', - 'index_files_federated' => '0', - 'index_files_external' => '0', - 'index_files_encrypted' => '0', - 'index_files_max_size' => '40', - 'index_files_filters_text' => '1', - 'index_files_filters_pdf' => '1', - 'index_files_filters_office' => '1', - 'index_files_filters_image' => '0', - 'index_files_filters_audio' => '0', - 'index_files_filters_extensions' => '.csv', - - 'index_bookmarks' => 0, - 'index_bookmarks_needed' => 1 - ]; - - private $appName; - - private $config; - - private $miscService; - - private $fileFilters = null; - - public function __construct($appName, IConfig $config, $miscService) - { - $this->appName = $appName; - $this->config = $config; - $this->miscService = $miscService; - } - - public function reset() - { - foreach ($this->defaults as $k => $v) { - $this->setAppValue($k, $v); - } - } - - public function removeOldConfig() - { - if ($this->getAppValue('index_live') === '1') - $this->setAppValue('index_live', '2'); - // $this->setAppValue('index_delay_min', $this->getAppValue('index_delay')); - } - - public function needIndexFiles($need) - { - if ($need) - $this->setAppValue('index_files_needed', '1'); - else - $this->setAppValue('index_files_needed', '0'); - } - - public function neededIndexFiles() - { - return ($this->getAppValue('index_files_needed') == '1'); - } - - public function needIndexBookmarks($need) - { - if ($need) - $this->setAppValue('index_bookmarks_needed', '1'); - else - $this->setAppValue('index_bookmarks_needed', '0'); - } - - public function neededIndexBookmarks() - { - return ($this->getAppValue('index_bookmarks_needed') == '1'); - } - - public function stopIndex() - { - $this->setAppValue('configured', '2'); - } - - public function timeIndex($type) - { - $this->setAppValue('index_' . $type . '_last', time()); - } - - public function timeIndexDelay($type, $delay = 0) - { - if ($delay == 0) - $delay = $this->getAppValue('index_delay_min'); - - // Uncomment this line to force index each tick of backgroundjob - // $delay = 0; - return ($this->getAppValue('index_' . $type . '_last') < (time() - (3600 * $delay))); - } - - public function lockIndex($lock) - { - if ($lock) - $this->setAppValue('index_locked', time()); - else - $this->setAppValue('index_locked', '0'); - } - - /** - * returns false if index is not locked or number of seconds since last tick - * after 10 minutes, lock is reseted - * - * @return boolean|number - */ - public function isLockedIndex(&$delay = 0) - { - $lock = $this->getAppValue('index_locked'); - if ($lock === '0') - return false; - - $delay = time() - $lock; - if ($delay > 600) - $this->lockIndex(false); - else - return true; - - return false; - } - - /** - * returns the current resource level. - * - * @return number - */ - public function resourceLevel() - { - return $this->getAppValue('resource_level'); - } - - /** - * Get a value by key - * - * @param string $key - * @return string - */ - public function getAppValue($key) - { - $defaultValue = null; - if (array_key_exists($key, $this->defaults)) - $defaultValue = $this->defaults[$key]; - return $this->config->getAppValue($this->appName, $key, $defaultValue); - } - - /** - * Set a value by key - * - * @param string $key - * @param string $value - * @return string - */ - public function setAppValue($key, $value) - { - return $this->config->setAppValue($this->appName, $key, $value); - } - - /** - * remove a key - * - * @param string $key - * @return string - */ - public function deleteAppValue($key) - { - return $this->config->deleteAppValue($this->appName, $key); - } - - public function getFileFilters() - { - if ($this->fileFilters == null) - $this->fileFilters = array( - 'text' => $this->getAppValue('index_files_filters_text'), - 'pdf' => $this->getAppValue('index_files_filters_pdf'), - 'office' => $this->getAppValue('index_files_filters_office'), - 'image' => $this->getAppValue('index_files_filters_image'), - 'audio' => $this->getAppValue('index_files_filters_audio'), - 'extensions' => SettingsController::FileFiltersExtensionsAsArray($this->getAppValue('index_files_filters_extensions')) - ); - - return $this->fileFilters; - } - - public function getCloudVersion($complete = false) - { - $ver = \OCP\Util::getVersion(); - - if ($complete) - return implode('.', $ver); - - return $ver[0]; - } - - /** - * generate an array to pass config to Solarium - * - * @return array - */ - public function toSolarium($config = null) - { - if ($config == null) - $config = array(); - - if (! key_exists('solr_url', $config)) - $config['solr_url'] = $this->getAppValue('solr_url'); - - if (! key_exists('solr_core', $config)) - $config['solr_core'] = $this->getAppValue('solr_core'); - - if (! key_exists('timeout', $config)) - $config['timeout'] = $this->getAppValue('solr_timeout'); - - $url = $config['solr_url']; - $t = parse_url($url); - - if (! key_exists('host', $t) || ! key_exists('port', $t) || ! key_exists('path', $t)) - return false; - - return array( - 'endpoint' => array( - 'localhost' => array( - 'timeout' => ($config['timeout'] < 5) ? 5 : $config['timeout'], - 'scheme' => $t['scheme'], - 'host' => $t['host'], - 'port' => $t['port'], - 'core' => $config['solr_core'], - 'path' => str_replace('//', '/', $t['path']) - ) - ) - ); - } -} diff --git a/lib/Service/FileService.php b/lib/Service/FileService.php deleted file mode 100644 index 25c67ac..0000000 --- a/lib/Service/FileService.php +++ /dev/null @@ -1,728 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\SolrToolsService; -use \OCA\Nextant\Items\ItemError; -use \OCA\Nextant\Items\ItemDocument; -use OC\Files\Filesystem; -use OC\Files\View; -use OC\Share\Share; -use OCP\Files\NotFoundException; -use OCP\Files\StorageNotAvailableException; - -class FileService -{ - - const UPDATE_MAXIMUM_FILES = 1000; - - const NOINDEX_FILE = '.noindex'; - - // private $root; - private $configService; - - private $rootFolder; - - private $solrService; - - private $solrTools; - - private $miscService; - - private $view; - - private $userId; - - private $externalMountPoint; - - public function __construct($configService, $rootFolder, $solrService, $solrTools, $miscService) - { - // $this->root = $root; - $this->configService = $configService; - $this->rootFolder = $rootFolder; - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->miscService = $miscService; - } - - public function setDebug($debug) - { - $this->miscService->setDebug($debug); - $this->solrService->setDebug($debug); - $this->solrTools->setDebug($debug); - } - - public function configured() - { - if (! \OCP\App::isEnabled('files')) - return false; - - if ($this->configService->getAppValue('index_files') == 1) - return true; - - return false; - } - - public static function getId($path) - { - $fileId = 0; - $info = Filesystem::getFileInfo($path); - if ($info !== false) - $fileId = (int) $info['fileid']; - - return $fileId; - } - - public static function getFileInfo($pathorid) - { - try { - $view = Filesystem::getView(); - if (intval($pathorid) != 0) - $path = $view->getPath($pathorid); - else - $path = $pathorid; - - return $view->getFileInfo($path); - } catch (NotFoundException $e) { - return false; - } - } - - public static function getUserFolder($rootFolder, $userId, $path) - { - \OC\Files\Filesystem::initMountPoints($userId); - $dir = '/' . $userId; - $folder = null; - - try { - return $rootFolder->get($dir)->get($path); - } catch (NotFoundException $e) {} - - return false; - } - - public static function getBaseTypeFromMime($mimetype) - { - return substr($mimetype, 0, strpos($mimetype, '/')); - } - - public function initUser($userId, $complete = false) - { - $this->userId = $userId; - Filesystem::init($this->userId, ''); - $this->view = Filesystem::getView(); - - if ($complete) - $this->initUserExternalMountPoints(); - } - - public function endUser() - { - $this->view = null; - $this->userId = ''; - // $this->externalMountPoint = array(); - } - - private function initUserExternalMountPoints() - { - if ($this->configService->getAppValue('index_files_external') !== '1') - return false; - - if (! \OCP\App::isEnabled('files_external')) - return false; - - $data = array(); - $mounts = \OC_Mount_Config::getAbsoluteMountPoints($this->userId); - foreach ($mounts as $mountPoint => $mount) { - $data[] = array( - 'id' => $mount['id'], - 'path' => $mountPoint, - 'shares' => $mount['applicable'], - 'personal' => $mount['personal'] - ); - } - - $this->externalMountPoint = $data; - } - - /** - * add some information to the itemDocument - * - * @param ItemDocument $item - * @return boolean - */ - public function syncDocument(&$item) - { - $item->synced(true); - - // $this->miscService->log('-- local: ' . (($item->istorageLocal() - // ) ? 'y' : 'n') . ' -- external: ' . (($item->isExternal()) ? 'y' : 'n') . ' -- encrypted:' . (($item->isEncrypted()) ? 'y' : 'n') . ' -- test: ' . (($item->isTest()) ? 'y' : 'n') . ' -- ' . $item->getPath()); - - if ($item->isFederated() && $this->configService->getAppValue('index_files_federated') !== '1') - return false; - - if ($item->isExternal() && $this->configService->getAppValue('index_files_external') !== '1') - return false; - - if ($item->isEncrypted() && $this->configService->getAppValue('index_files_encrypted') !== '1') - return false; - - $size = round($item->getSize() / 1024 / 1024, 1); - if ($size > $this->configService->getAppValue('index_files_max_size')) { - $this->miscService->debug('File is too big (' . $size . ' > ' . $this->configService->getAppValue('index_files_max_size') . ')'); - return false; - } - - // $this->miscService->log('__' . $item->getPath() . ' __ ' . $item->getId() . ' ___ ' . $item->getMimeType()); - if (! $this->solrService->extractableFile($item->getMimeType(), $item->getPath())) { - $item->extractable(false); - - if ($this->configService->getAppValue('index_files_tree') === '1') - $item->valid(true); - } else { - $item->valid(true); - $item->extractable(true); - } - - $this->dataRetrievalFromPath($item); - - if ($item->isDeleted()) { - $item->setShare(); - $item->setShareGroup(); - } - - return true; - } - - /** - * generate a local file and set its path in the item/AbsolutePath - * - * @param ItemDocument $item - */ - public function generateAbsolutePath(&$item, &$ierror = '') - { - if ($item->isStorageLocal()) { - $item->setAbsolutePath($this->view->getLocalFile($item->getPath())); - return true; - } - - // not local, not external nor encrypted, we generate temp file - if (! $item->isExternal() && ! $item->isEncrypted()) { - $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true); - return true; - } - - // not local, not external nor encrypted, we generate temp file - if (! $item->isExternal() && ! $item->isEncrypted()) { - try { - $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true); - } catch (StorageNotAvailableException $ex) { - $ierror = new ItemError(ItemError::EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH, $ex->getHint()); - return false; - } - return true; - } - - - // We generate a local tmp file from the remote one - if ($item->isExternal() && $this->configService->getAppValue('index_files_external') === '1') { - try { - $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true); - } catch (\OC\Encryption\Exceptions\DecryptionFailedException $dfe) { - $ierror = new ItemError(ItemError::EXCEPTION_DECRYPTION_FAILED, $dfe->getHint()); - return false; - } catch (\OC\Encryption\Exceptions\ModuleDoesNotExistsException $mod) { - $ierror = new ItemError(ItemError::EXCEPTION_ENCRYPT_NO_MODULE, $mod->getHint()); - return false; - } - - return true; - } - - // We generate a local tmp file from the federated - if ($item->isFederated() && $this->configService->getAppValue('index_files_federated') === '1') { - $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true); - return true; - } - - // encrypted file = local tmp file - if ($item->isEncrypted() && $this->configService->getAppValue('index_files_encrypted') === '1') { - try { - $item->setAbsolutePath($this->view->toTmpFile($item->getPath()), true); - } catch (\OC\Encryption\Exceptions\DecryptionFailedException $dfe) { - $ierror = new ItemError(ItemError::EXCEPTION_DECRYPTION_FAILED, $dfe->getHint()); - $ierror->link(ItemError::LINK_EXCEPTION_DECRYPTION_FAILED); - return false; - } catch (\OCA\Encryption\Exceptions\PrivateKeyMissingException $pkme) { - $ierror = new ItemError(ItemError::EXCEPTION_DECRYPT_PRIVATEKEY_MISSING, $pkme->getHint()); - $ierror->link(ItemError::LINK_EXCEPTION_DECRYPT_PRIVATEKEY_MISSING); - return false; - } - - return true; - } - } - - /** - * destroy local temp file - * - * @param unknown $item - */ - public function destroyTempDocument(&$item) - { - if ($item->getAbsolutePath() != null && $item->isTemp()) - unlink($item->getAbsolutePath()); - } - - /** - * convert FileInfo to ItemDocument - * - * @param FileInfo $file - * @return boolean|\OCA\Nextant\Items\ItemDocument - */ - public function getDocumentFromFile($file) - { - if ($file == null) - return false; - - $item = new ItemDocument(ItemDocument::TYPE_FILE, $file->getId()); - $item->setOwner($this->userId); - $item->setMTime($file->getMTime()); - $item->setMimetype($file->getMimeType()); - $item->setPath(str_replace('//', '/', $file->getPath())); - $item->setSize($file->getSize()); - $item->storageLocal((($file->getStorage() - ->isLocal()) ? true : false)); - - if ($file->isEncrypted()) - $item->encrypted(true); - - if ($file->isMounted()) - $item->external(true); - else { - - // not clean - but only way I found to check if not mounted IS federated ? - if (method_exists($file->getMountPoint(), 'moveMount') && method_exists($file->getMountPoint(), 'removeMount')) - $item->federated(true); - } - - return $item; - } - - /** - * get files from a specific user - * - * @param number $userId - * @return array - */ - public function getFilesPerUserId($dir, $options) - { - if (! $this->configured()) - return false; - - if ($this->userId === '') - return false; - - $data = array(); - - // Filesystem::tearDown(); - - $userFolder = FileService::getUserFolder($this->rootFolder, $this->userId, $dir); - if (! $userFolder || $userFolder == null) - return $data; - - $folder = $userFolder->get('/'); - $files = $folder->search('%'); - - foreach ($files as $file) { - if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER && $this->configService->getAppValue('index_files_tree') !== '1') - continue; - - if ($file->isShared() && $file->getStorage()->isLocal() && ! in_array('forceshared', $options)) - continue; - - $item = $this->getDocumentFromFile($file); - $item->deleted(in_array('deleted', $options)); - - if ($item && $item != false && $item != null) - $data[$item->getType() . '_' . $item->getId()] = $item; - } - - return $data; - } - - /** - * get files from a userid+fileid - * - * @param number $userId - * @param number $fileId - * @param array $options - * @return array - */ - public function getFilesPerFileId($fileId, $options) - { - if (! $this->configured()) - return false; - - if ($this->userId === '') - return false; - - if ($fileId == '') - return false; - - $view = Filesystem::getView(); - - $data = array(); - $file = self::getFileInfoFromFileId($fileId, $view, $this->miscService); - - if ($file == null && $this->configService->getAppValue('index_files_trash') === '1') { - $trashview = new View('/' . $this->userId . '/files_trashbin/files'); - $file = self::getFileInfoFromFileId($fileId, $trashview, $this->miscService); - array_push($options, 'deleted'); - } - - if ($file == null) - return false; - - if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER) { - $result = $this->getFilesPerPath($file->getPath(), $options); - if (is_array($result) && sizeof($result) > 0) - $data = array_merge($data, $result); - - return $data; - } - - if ($file->isShared() && ! in_array('forceshared', $options)) - return $data; - - $item = $this->getDocumentFromFile($file); - $item->deleted(in_array('deleted', $options)); - - $data[$item->getType() . '_' . $item->getId()] = $item; - - return $data; - } - - /** - * get files/subdir from a userid+fileid - * - * @param number $userId - * @param number $fileId - * @param array $options - * @return array - */ - private function getFilesPerPath($path, $options) - { - if (! $this->configured()) - return false; - - if ($this->userId === '') - return false; - - // Filesystem::tearDown(); - $view = Filesystem::getView(); - - $data = array(); - $file = $view->getFileInfo($path); - if ($file == false | $file == null) - return false; - - if ($file->getType() == \OCP\Files\FileInfo::TYPE_FOLDER) { - - $subfiles = $view->getDirectoryContent($file->getPath()); - foreach ($subfiles as $subfile) { - $result = $this->getFilesPerPath($subfile->getPath(), $options); - if (is_array($result) && sizeof($result) > 0) - $data = array_merge($data, $result); - } - return $data; - } - - if ($file->isShared() && ! in_array('forceshared', $options)) - return $data; - - $item = $this->getDocumentFromFile($file); - $item->deleted(in_array('deleted', $options)); - - $data[$item->getType() . '_' . $item->getId()] = $item; - - return $data; - } - - /** - * update ItemDocument based on its filepath (sharing rights, noindex status, ..) - * - * @param ItemDocument $entry - * @return boolean - */ - private function dataRetrievalFromPath(&$entry) - { - $data = array(); - - $subpath = ''; - $subdirs = explode('/', $entry->getPath()); - foreach ($subdirs as $subdir) { - - if ($subdir == '') - continue; - - $subpath .= '/' . $subdir; - if (strlen($subpath) > 0 && $subpath != '/') { - - self::getShareRightsFromExternalMountPoint($this->externalMountPoint, $subpath, $data, $entry); - // self::getIndexStatusFromExternalMountPoint($this->externalMountPoint, $subpath, $data, $entry); - - $subdirInfos = self::getFileInfoFromPath($subpath); - if (! $subdirInfos) - continue; - - self::getShareRightsFromFileId($subdirInfos->getId(), $data); - self::getIndexStatusFromFileInfo($this->view, $subdirInfos, $data); - } - } - - if (key_exists('noindex', $data)) - $entry->noIndex($data['noindex']); - if (key_exists('share_users', $data)) - $entry->setShare($data['share_users']); - if (key_exists('share_groups', $data)) - $entry->setShareGroup($data['share_groups']); - - return true; - } - - private static function getShareRightsFromExternalMountPoint($mountPoints, $path, &$data, &$entry) - { - if (! $entry->isExternal()) - return false; - - if (! key_exists('share_users', $data)) - $data['share_users'] = array(); - if (! key_exists('share_groups', $data)) - $data['share_groups'] = array(); - - $edited = false; - foreach ($mountPoints as $mount) { - if ($mount['path'] !== $path) - continue; - - $edited = true; - if (! $mount['personal']) { - $entry->setOwner('__global'); - if (sizeof($mount['shares']['users']) == 1 && sizeof($mount['shares']['groups']) == 0 && $mount['shares']['users'][0] == 'all' && (! in_array('__all', $data['share_groups']))) { - array_push($data['share_groups'], '__all'); - continue; - } - } - - foreach ($mount['shares']['users'] as $share_user) { - if ($share_user != $entry->getOwner() && ! in_array($share_user, $data['share_users'])) - array_push($data['share_users'], $share_user); - } - - foreach ($mount['shares']['groups'] as $share_group) { - if (! in_array($share_group, $data['share_groups'])) - array_push($data['share_groups'], $share_group); - } - } - - return $edited; - } - - /** - * update ItemDocument share rights from a specific fileid / subfolder - * - * @param number $fileId - * @param ItemDocument $data - * @return boolean - */ - private static function getShareRightsFromFileId($fileId, &$data) - { - if (! key_exists('share_users', $data)) - $data['share_users'] = array(); - if (! key_exists('share_groups', $data)) - $data['share_groups'] = array(); - if (! key_exists('deleted', $data)) - $data['deleted'] = false; - - $OCShares = Share::getAllSharesForFileId($fileId); - foreach ($OCShares as $share) { - if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_USER && ! in_array($share['share_with'], $data['share_users'])) - array_push($data['share_users'], $share['share_with']); - if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_GROUP && ! in_array($share['share_with'], $data['share_groups'])) - array_push($data['share_groups'], $share['share_with']); - if ($share['share_type'] == \OC\Share\Constants::SHARE_TYPE_LINK && ! in_array('__link_' . $share['id'], $data['share_users'])) - array_push($data['share_users'], '__link_' . $share['id']); - } - - return true; - } - - /** - * update ItemDocument index status based on path - * - * @param number $fileId - * @param ItemDocument $data - * @return boolean - */ - private static function getIndexStatusFromFileInfo($view, $fileInfo, &$data) - { - if (! key_exists('noindex', $data)) - $data['noindex'] = false; - - if ($data['noindex'] === true) - return true; - - if ($fileInfo->getType() != \OCP\Files\FileInfo::TYPE_FOLDER) - return false; - - $files = $view->getDirectoryContent($fileInfo->getPath()); - - foreach ($files as $file) { - if ($file->getName() === self::NOINDEX_FILE) { - $data['noindex'] = true; - return true; - } - } - - return false; - } - - /** - * complete data from a search result with more details about the file itself - * - * @param array $data - * @param string $base - * @param boolean $trashbin - * @return array[] - */ - public function getSearchResult(&$item, $base = '', $trashbin = true) - { - if ($this->view === null || $this->userId === '') - return false; - - $path = ''; - $fileData = null; - try { - $path = $this->view->getPath($item->getId()); - $fileData = $this->view->getFileInfo($path); - } catch (NotFoundException $e) { - $fileData = null; - } - - if ($this->configService->getAppValue('index_files_trash') === '1' && $fileData == null && $trashbin) { - try { - $trashview = new View('/' . $this->userId . '/files_trashbin/files'); - $path = $trashview->getPath($item->getId()); - $fileData = $trashview->getFileInfo($path); - $item->deleted(true); - } catch (NotFoundException $e) { - return false; - } - } - - if ($fileData == null || $fileData === false) - return false; - - $pathParts = pathinfo($path); - $basepath = str_replace('//', '/', '/' . $pathParts['dirname'] . '/'); - - if (substr($path, - 1) == '/') - $path = substr($path, 0, - 1); - - $dirpath = $pathParts['dirname']; - - if ($base !== '') { - $path = substr($path, strpos($path, $base) + strlen($base)); - $dirpath = substr($dirpath, strpos($dirpath, $base) + strlen($base)); - } - - if ($dirpath === '') - $dirpath = '/'; - - // fileinfo entry - $entry = \OCA\Files\Helper::formatFileInfo($fileData); - $entry['dirpath'] = $dirpath; - $entry['filename'] = $pathParts['basename']; - $entry['name'] = ((substr($path, 0, 1) === '/') ? substr($path, 1) : $path); - - if ($item->isSharedPublic()) - $entry['permissions'] = \OCP\Constants::PERMISSION_READ; - - $item->setEntry($entry); - - $item->setPath($path); - - $item->valid(true); - - return true; - } - - /** - * returns fileId from a path - * - * @param string $path - * @param View $view - * @return boolean|number - */ - public static function getFileInfoFromPath($path, $view = null) - { - if ($view == null) - $view = Filesystem::getView(); - if ($view == null) - return null; - - try { - return $view->getFileInfo($path); - } catch (NotFoundException $e) { - return false; - } - } - - public static function getFileInfoFromFileId($fileId, $view = null, $misc) - { - try { - if ($view == null) - $view = Filesystem::getView(); - if ($view == null) - return null; - - $path = $view->getPath($fileId); - if ($path == null) - return null; - - $file = $view->getFileInfo($path); - if ($file == null) - return null; - - return $file; - } catch (NotFoundException $e) { - return null; - } - } -} diff --git a/lib/Service/IndexService.php b/lib/Service/IndexService.php deleted file mode 100644 index 5fd9b73..0000000 --- a/lib/Service/IndexService.php +++ /dev/null @@ -1,937 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Bookmarks\Controller\Lib\Bookmarks; -use \OCA\Nextant\Items\ItemDocument; -use \OCA\Nextant\Items\ItemError; -use Symfony\Component\Console\Helper\ProgressBar; - -class IndexService -{ - - const GETALL_ROWS = 100; - - const REFRESH_LOCK = 20; - - const REFRESH_COMMIT = 900; - - const PROGRESS_TEMPLATE = "%job:1s%%message:-40s%%current:6s%/%max:6s% [%bar%] %percent:3s%% \n %duration% %infos:-12s% %jvm:-30s% "; - - const PROGRESS_TEMPLATE_DEBUG = "\n %more%"; - // const PROGRESS_TEMPLATE_DEBUG = ""; - const REFRESH_INFO_SYSTEM = 20; - - private $groupManager; - - private $solrService; - - private $solrTools; - - private $solrAdmin; - - private $configService; - - private $sourceService; - - private $miscService; - - private $parent; - - private $output; - - private $lastProgressTick; - - private $lastCommitTick; - - private $lastAverageTick; - - private $lastAverageTickCount; - - private $lastAverageTickValue; - - private $lastCommitQueryTime = 0; - - private $debug = false; - - private $force = false; - - private $last_lock = 0; - - private $active_lock = false; - - private $initTime = 0; - - public function __construct($groupManager, $configService, $sourceService, $solrService, $solrTools, $solrAdmin, $miscService) - { - $this->groupManager = $groupManager; - - $this->configService = $configService; - $this->sourceService = $sourceService; - - $this->solrService = $solrService; - $this->solrTools = $solrTools; - $this->solrAdmin = $solrAdmin; - - $this->miscService = $miscService; - - $this->parent = null; - $this->output = null; - } - - public function setForcing($force) - { - $this->force = $force; - } - - public function setDebug($debug) - { - $this->debug = $debug; - $this->miscService->setDebug($debug); - } - - public function setParent($parent) - { - $this->parent = $parent; - } - - public function setOutput($output) - { - $this->output = $output; - } - - public function message($line) - { - if ($this->output != null) - $this->output->writeln($line); - } - - public function init() - { - $this->initTime = time(); - } - - public function getIndexDuration() - { - if ($this->initTime == 0) - return - 1; - return gmdate("H:i:s", (time() - $this->initTime)); - } - - public function lockActive($active) - { - $this->active_lock = $active; - } - - public function lockIndex($lock) - { - if (! $this->active_lock) - return; - - if ($lock && $this->last_lock > (time() - self::REFRESH_LOCK)) - return false; - - if ($lock) - $this->last_lock = time(); - else - $this->last_lock = 0; - - $this->configService->lockIndex($lock); - } - - /** - * Extract whatever is sent ($data) - * - * @param string $type - * @param string $userId - * @param array $data - * @return array - */ - public function extract($type, $userId, &$data, &$solrDocs, $extract = true, &$ierror = '') - { - $this->solrService->setOwner($userId); - $ierror = new ItemError(); - - if ($solrDocs === null) - $solrDocs = $this->getDocuments($type, $userId, 0, $ierror); - else - if ($solrDocs === false && reset($data) && $sync = current($data)) - $solrDocs = $this->getDocuments($type, $userId, $sync->getId(), $ierror); - - $progress = null; - if ($this->output !== null) { - $progress = new ProgressBar($this->output, sizeof($data)); - $progress->clear(); - } - - if ($progress != null) { - $progress->setMessage('' . $userId . ''); - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('/', 'job'); - $progress->setMessage('', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - $this->lastCommitTick = time(); - foreach ($data as $entry) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $this->lockIndex(true); - - if ($progress != null) { - $progress->setMessage('' . $userId . '/' . $entry->getType()); - $progress->setMessage('/', 'job'); - $progress->setMessage('[scanning]', 'infos'); - - if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1) - $progress->setMessage('(' . $dura . ')', 'duration'); - - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - $progress->advance(); - } - - if ($entry->getType() == ItemDocument::TYPE_FILE) - $this->sourceService->file()->syncDocument($entry); - if ($entry->getType() == ItemDocument::TYPE_BOOKMARK) - $this->sourceService->bookmark()->syncDocument($entry); - if ($entry->getType() == ItemDocument::TYPE_TEST) { - $entry->synced(true); - $entry->valid(true); - $entry->extractable(true); - } - - if ($this->output != null && $this->debug == 2) { - $this->output->writeln(''); - $this->output->writeln('### FILE ' . $entry->getPath()); - $this->output->writeln('_current: ' . var_export($entry->toArray(true), true)); - $this->output->writeln('_solr: ' . var_export(ItemDocument::getItem($solrDocs, $entry), true)); - } - - if ($entry->isNoIndex()) - continue; - - if (! $entry->isExtractable() && $this->configService->getAppValue('index_files_tree') !== '1') - continue; - - if (! $extract) - continue; - - if (! $entry->isValid()) - continue; - - if (! $this->force && $this->solrTools->isDocumentUpToDate($entry, ItemDocument::getItem($solrDocs, $entry))) - continue; - - if ($this->output != null && $this->debug == 2) - $this->output->writeln('- Extracting!'); - - if ($progress != null) { - $progress->setMessage('+', 'job'); - $progress->setMessage('[extracting]', 'infos'); - $progress->display(); - } - - $atick = $this->generateAverageTick(); - if ($progress != null && $atick > - 1) - $progress->setMessage($atick . ' documents extracted in the last minute. ' . (($this->lastCommitQueryTime > 0) ? 'Last commit took ' . ($this->lastCommitQueryTime) . 'ms' : ''), 'more'); - - if ($entry->getType() == ItemDocument::TYPE_FILE) { - if (! $this->sourceService->file()->generateAbsolutePath($entry, $ierror)) { - $this->manageFailure($ierror, $progress, 'Failed to find a descent path'); - if ($this->configService->getAppValue('index_files_tree') !== '1') - continue; - } - } - - $this->solrService->indexDocument($entry, $ierror); - - if ($this->output != null && $this->debug == 2) { - if ($ierror == null || $ierror === '') - $ierror = new ItemError(); - $this->output->writeln('- Extracted: ' . (($entry->isFailedExtract()) ? 'n' : 'y') . ' ' . $ierror->getCode() . ' ' . $ierror->getMessage()); - } - - if ((time() - self::REFRESH_COMMIT) > $this->lastCommitTick) { - - if ($this->output != null && $this->debug == 2) - $this->output->writeln('- Commiting!'); - - if ($progress != null) { - $progress->setMessage('@', 'job'); - $progress->setMessage('[commiting]', 'infos'); - $progress->display(); - } - - $commit = $this->solrTools->commit(false, $ierror); - if (! $commit) - $this->manageFailure($ierror, $progress, 'Failed to commit'); - else - $this->lastCommitQueryTime = $commit->getQueryTime(); - - $this->lastCommitTick = time(); - } - - // moving to FileService (cf. syncDocument) - // fail at extract, let's try just index - if ($entry->isFailedExtract()) { - if ($this->configService->getAppValue('index_files_tree') === '1') - $entry->valid(true); - - if (! $this->manageFailure($ierror, $progress, 'Failed to extract document #' . $entry->getId() . ' (' . $entry->getPath() . ')')) { - $ierror = new ItemError(ItemError::ERROR_MANAGING_FAILURE, 'server down ?'); - return false; - } - - if ($this->configService->getAppValue('index_files_tree') === '1') { - - $entry->extractable(false); - - if (! $this->force && $this->solrTools->isDocumentUpToDate($entry, ItemDocument::getItem($solrDocs, $entry))) - continue; - - $this->solrService->indexDocument($entry, $ierror); - } - } - - if (! $entry->isFailedIndex()) - $entry->valid(true); - - if ($entry->getType() == ItemDocument::TYPE_FILE) - $this->sourceService->file()->destroyTempDocument($entry); - } - - $this->resetAverageTick(); - - $commit = $this->solrTools->commit(false, $ierror); - if (! $commit) - return false; - else - $this->lastCommitQueryTime = $commit->getQueryTime(); - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - - return true; - } - - /** - * update Documents (sharing rights, trash, ...) - * - * @param string $type - * @param string $userId - * @param ItemDocument[] $data - * @param ItemDocument[] $solrDocs - * @return boolean - */ - public function updateDocuments($type, $userId, &$data, &$solrDocs = null, &$ierror = '') - { - $this->solrService->setOwner($userId); - - if (reset($data) && ($sync = current($data)) && ! $sync->isSynced()) - $this->extract($type, $userId, $data, $solrDocs, false); - - if ($solrDocs === null) - $solrDocs = $this->getDocuments($type, $userId, 0, $ierror); - else - if ($solrDocs === false && reset($data) && $sync = current($data)) - $solrDocs = $this->getDocuments($type, $userId, $sync->getId(), $ierror); - - $progress = null; - if ($this->output !== null) { - $progress = new ProgressBar($this->output, sizeof($data)); - $progress->clear(); - } - - if ($progress !== null) { - $progress->setMessage('' . $userId . ''); - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('/', 'job'); - $progress->setMessage('[comparing]', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - foreach ($data as $entry) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $this->lockIndex(true); - - if ($progress !== null) { - $progress->setMessage('' . $userId . '/' . $entry->getType()); - - if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1) - $progress->setMessage('(' . $dura . ')', 'duration'); - - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - - $progress->advance(); - } - - $current = ItemDocument::getItem($solrDocs, $entry); - if ($current === null) - continue; - - $continue = false; - - $this->solrTools->updateDocument($entry, $current, false, $ierror); - - if ($progress != null) { - if ($entry->neededUpdate()) { - $progress->setMessage('!', 'job'); - $progress->setMessage('[updating]', 'infos'); - } else { - $progress->setMessage('/', 'job'); - $progress->setMessage('[comparing]', 'infos'); - } - $progress->display(); - } - - if ($entry->neededUpdate()) { - - $atick = $this->generateAverageTick(); - if ($progress != null && $atick > - 1) - $progress->setMessage($atick . ' documents extracted in the last minute. ' . (($this->lastCommitQueryTime > 0) ? 'Last commit took ' . $this->lastCommitQueryTime . 'ms' : ''), 'more'); - - $this->solrTools->updateDocument($entry, $current, true, $ierror); - - if ($progress != null && (time() - self::REFRESH_COMMIT) > $this->lastCommitTick) { - $progress->setMessage('@', 'job'); - $progress->setMessage('[commiting]', 'infos'); - $progress->display(); - - $commit = $this->solrTools->commit(false, $ierror); - if (! $commit) - $this->manageFailure($ierror, $progress, 'Failed to commit'); - else - $this->lastCommitQueryTime = $commit->getQueryTime(); - - $this->lastCommitTick = time(); - } - - if ($entry->isFailedUpdate() && ! $this->manageFailure($ierror, $progress, 'Failed to update document #' . $entry->getId() . ' (' . $entry->getPath() . ')')) - return false; - } - } - - $this->resetAverageTick(); - - $commit = $this->solrTools->commit(false, $ierror); - if (! $commit) - return false; - else - $this->lastCommitQueryTime = $commit->getQueryTime(); - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - - return true; - } - - /** - * remove documents - * - * @param string $type - * @param ItemDocument[] $data - * @return boolean - */ - public function removeDocuments(&$data, &$ierror = '') - { - if (sizeof($data) == 0) - return false; - - $progress = null; - if ($this->output != null) { - $progress = new ProgressBar($this->output, sizeof($data)); - $progress->clear(); - } - - if ($progress != null) { - $progress->setMessage('-', 'job'); - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('[removing]', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - $forceExtract = false; - foreach ($data as $doc) { - $this->lockIndex(true); - - if ($progress != null) { - $progress->setMessage('' . $doc->getOwner() . '/' . $doc->getType()); - - if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1) - $progress->setMessage('(' . $dura . ')', 'duration'); - - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - - $progress->advance(); - } - - $this->solrTools->removeDocument($doc); - } - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - - if (! $this->solrTools->commit(false, $ierror)) - return false; - - return true; - } - - /** - * remove documents with no more file associated. - * - * @param string $type - * @param string $userId - * @param ItemDocument[] $data - * @param ItemDocument[] $solrDocs - */ - public function removeOrphans($type, $userId, &$data, &$solrDocs) - { - $this->solrService->setOwner($userId); - if (reset($data) && ($sync = current($data)) && ! $sync->isSynced()) - $this->extract($type, $userId, $data, $solrDocs, false); - - if ($solrDocs == null || $solrDocs == '' || ! is_array($solrDocs)) - $solrDocs = $this->getDocuments($type, $userId, 0, $ierror); - - if (! is_array($solrDocs)) - return false; - - $progress = null; - if ($this->output != null) { - $progress = new ProgressBar($this->output, sizeof($data)); - $progress->clear(); - } - - if ($progress !== null) { - $progress->setMessage('' . $userId . ''); - $progress->setMessage('/', 'job'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('', 'jvm'); - $progress->setMessage('[spoting orphans]', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - $docIds = array(); - foreach ($data as $entry) { - if ($entry->isValid() && ! $entry->isNoIndex()) - array_push($docIds, (int) $entry->getId()); - } - - $deleting = array(); - foreach ($solrDocs as $doc) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $this->lockIndex(true); - - if (! in_array($doc->getId(), $docIds) && (! in_array($doc->getId(), $deleting))) { - array_push($deleting, $doc->getId()); - // $item = ItemDocument::getItem($solrDocs, $doc); - $doc->removed(true); - } - - if ($progress != null) { - $progress->setMessage('' . $userId . '/' . $doc->getType()); - - if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1) - $progress->setMessage('(' . $dura . ')', 'duration'); - - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - - $progress->advance(); - } - } - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - - if (sizeof($deleting) > 0) { - - $progress = null; - if ($this->output != null) { - $progress = new ProgressBar($this->output, sizeof($deleting)); - $progress->clear(); - } - - if ($progress != null) { - $progress->setMessage('' . $userId . '/' . $type); - $progress->setMessage('-', 'job'); - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('[deleting orphans]', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - foreach ($deleting as $docId) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $this->lockIndex(true); - - $del = new ItemDocument($type, $docId); - $this->solrTools->removeDocument($del); - - foreach ($data as $entry) { - if ($entry->getId() == $docId) { - $entry->removed(true); - break; - } - } - - if ($progress != null) { - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - - $progress->advance(); - } - } - } - - $commit = $this->solrTools->commit(false, $ierror); - if (! $commit) - return false; - else - $this->lastCommitQueryTime = $commit->getQueryTime(); - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - } - - /** - * return ids of all documents - * - * @param string $type - * @param string $userId - * @param number $page - * @param boolean $lastpage - * @param ItemDocument $ierror - * @return boolean - */ - public function getDocuments($type = '', $userId = '', $fileId = 0, &$ierror = '') - { - if ($ierror == null || $ierror === '') - $ierror = new ItemError(); - - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - $fileId = (int) $fileId; - $client = $this->solrService->getClient(); - $data = array(); - try { - - $progress = null; - if ($this->output != null) { - if ($fileId > 0) - $progress = new ProgressBar($this->output, 1); - else - $progress = new ProgressBar($this->output, $this->solrTools->count($type, $userId)); - $progress->clear(); - } - - if ($progress != null) { - $progress->setMessage('' . $userId . '/' . $type); - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'duration'); - $progress->setMessage('', 'more'); - $progress->setMessage('%', 'job'); - $progress->setMessage('[preparing]', 'infos'); - $progress->setFormat(self::PROGRESS_TEMPLATE . (($this->debug) ? self::PROGRESS_TEMPLATE_DEBUG : '')); - $progress->start(); - } - - if ($type != '') - $type .= '_'; - - $ownerQuery = ''; - if ($userId != '') { - $query = $client->createSelect(); - $helper = $query->getHelper(); - - $ownerQuery = 'nextant_owner:' . $helper->escapePhrase($userId); - // OR (nextant_owner:__global' - - $groupQuery = ''; - $groups = array_map(function ($value) { - return (string) $value; - }, array_keys($this->groupManager->getUserIdGroups($userId))); - array_push($groups, '__all'); - - $arrgroups = array(); - foreach ($groups as $group) - array_push($arrgroups, ' nextant_sharegroup:' . $helper->escapePhrase($group)); - - if (sizeof($arrgroups) > 0) - $groupQuery = implode(' OR ', $arrgroups); - - if ($groupQuery !== '') - $ownerQuery = '(' . $ownerQuery . ') OR (nextant_owner:"__global" AND (nextant_share:' . $helper->escapePhrase($userId) . ' OR ' . $groupQuery . '))'; - } - - $page = 0; - $docIds = array(); - while (true) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $query = $client->createSelect(); - $helper = $query->getHelper(); - - $query->setQuery('id:' . $type . (($fileId > 0) ? $fileId : '*')); - - if ($ownerQuery !== '') - $query->createFilterQuery('owner')->setQuery($ownerQuery); - - $query->addSort('id', $query::SORT_ASC); - $query->setStart($page * self::GETALL_ROWS); - $query->setRows(self::GETALL_ROWS); - $query->setFields(array( - 'id', - 'nextant_owner', - 'nextant_path', - 'nextant_mtime', - 'nextant_share', - 'nextant_sharegroup', - 'nextant_deleted', - 'nextant_extracted', - 'nextant_source' - )); - - $resultset = $client->execute($query); - - foreach ($resultset as $document) { - - if ($this->parent != null) - $this->parent->interrupted(); - - $this->lockIndex(true); - - $doc = ItemDocument::fromCompleteId($document->id); - $doc->setOwner($document->nextant_owner); - $doc->setPath($document->nextant_path); - $doc->setMTime($document->nextant_mtime); - $doc->setShare($document->nextant_share); - $doc->setShareGroup($document->nextant_sharegroup); - $doc->deleted($document->nextant_deleted); - $doc->setSource($document->nextant_source); - $doc->extracted($document->nextant_extracted); - - $tick = false; - if (! in_array($doc->getId(), $docIds)) { - array_push($docIds, $doc->getId()); - $data[$doc->getType() . '_' . $doc->getId()] = $doc; - $tick = true; - } - - if ($progress != null) { - - if ($this->parent != null && ($dura = $this->getIndexDuration()) != - 1) - $progress->setMessage('(' . $dura . ')', 'duration'); - - if ((time() - self::REFRESH_INFO_SYSTEM) > $this->lastProgressTick) { - if (! $infoSystem = $this->solrTools->getInfoSystem($ierror)) - $this->manageFailure($ierror, $progress, 'Failed to retreive Info System'); - $progress->setMessage('Solr memory: ' . $infoSystem->jvm->memory->used, 'jvm'); - $this->lastProgressTick = time(); - } - if ($tick) - $progress->advance(); - } - } - - if ((($page + 1) * self::GETALL_ROWS) >= $resultset->getNumFound()) - break; - - $page ++; - } - - if ($progress != null) { - $progress->setMessage('', 'jvm'); - $progress->setMessage('', 'infos'); - $progress->setMessage('', 'duration'); - $progress->finish(); - } - - return $data; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - return false; - } - - private function manageFailure($ierror, $progress = null, $message = '') - { - if ($ierror == null || $ierror === '') - $ierror = new ItemError(); - - if ($this->output != null && $this->debug) { - $this->output->writeln(''); - if ($ierror->getCode() > 0) - $this->output->writeln('*** Error #' . $ierror->getCode() . ' (' . $ierror->getMessage() . ')'); - $this->output->writeln('*** ' . $message); - - if ($ierror->getLink() !== '') - $this->output->writeln('> More informations: ' . $ierror->getLink() . ''); - $this->output->writeln(''); - - if ($ierror->getCode() == SolrService::EXCEPTION_HTTPEXCEPTION) - $this->output->writeln('Note: we will wait here for few seconds and check if Solr is still running'); - $this->output->writeln(''); - $this->output->writeln(''); - } - - if ($ierror->getCode() == SolrService::EXCEPTION_HTTPEXCEPTION) { - if ($progress != null) { - $progress->setMessage('|', 'job'); - $progress->setMessage('[standby]', 'infos'); - $progress->display(); - } - sleep(30); - - if (! $this->solrAdmin->ping($ierror)) { - if ($this->output != null) { - $this->output->writeln(''); - $this->output->writeln(''); - $this->output->writeln('Error #' . $ierror->getCode()); - $this->output->writeln('Is Solr Up and Running ?'); - $this->output->writeln(''); - $this->output->writeln(''); - } - - if ($this->parent != null) - $this->parent->end(); - else - exit(); - return false; - } - } - - return true; - } - - private function generateAverageTick() - { - if (! $this->debug) - return - 1; - - if ($this->lastAverageTick == 0) { - $this->resetAverageTick(); - return - 1; - } - - $this->lastAverageTickCount ++; - - if ((time() - $this->lastAverageTick) > 60) { - $this->lastAverageTickValue = $this->lastAverageTickCount; - $this->resetAverageTick(); - return $this->lastAverageTickValue; - } - } - - private function resetAverageTick() - { - $this->lastAverageTick = time(); - $this->lastAverageTickCount = 0; - } -} - - - - - diff --git a/lib/Service/MiscService.php b/lib/Service/MiscService.php deleted file mode 100644 index b18911a..0000000 --- a/lib/Service/MiscService.php +++ /dev/null @@ -1,81 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use OCP\ILogger; - -class MiscService -{ - - private $logger; - - private $appName; - - private $debug; - - public function __construct(ILogger $logger, $appName) - { - $this->logger = $logger; - $this->appName = $appName; - } - - public function setDebug($debug) - { - $this->debug = $debug; - } - - public function debug($msg) - { - if ($this->debug) - $this->log($msg, 1); - } - - public function log($message, $level = 2) - { - $data = array( - 'app' => $this->appName, - 'level' => $level - ); - - $this->logger->log($level, $message, $data); - } - - public static function arraysIdentical($a, $b) - { - if ($a === null || $a === '') - $a = array(); - if ($b === null || $b === '') - $b = array(); - if (! is_array($a) || ! is_array($b)) - return true; - - sort($a); - sort($b); - - return ($a == $b); - } -} \ No newline at end of file diff --git a/lib/Service/NewsService.php b/lib/Service/NewsService.php deleted file mode 100644 index 5728d39..0000000 --- a/lib/Service/NewsService.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Items\ItemDocument; -//use OCA\Bookmarks\Controller\Lib\Bookmarks; - -class NewsService -{ - - private $configService; - - // private $solrService; - - // private $solrTools; - private $miscService; - - private $libBookmarks = null; - - public function __construct($configService, $miscService) - { - $this->configService = $configService; - $this->miscService = $miscService; - } - - public function configured() - { - if (! \OCP\App::isEnabled('news')) - return false; - - if ($this->configService->getAppValue('index_news') == 1) - return true; - - return false; - } - - public function syncDocument(&$item) - { - $item->synced(true); - $item->extractable(true); - - return true; - } - - /** - * get news from a specific user - * - * @param number $userId - * @return array - */ - public function getNewsPerUserId($userId) - { - if (! $this->configured()) - return false; - -// if ($this->libBookmarks == null) { -// $bookmarkApp = new \OCA\Bookmarks\AppInfo\Application(); -// $this->libBookmarks = $bookmarkApp->getContainer()->query(\OCA\Bookmarks\Controller\Lib\Bookmarks::class); -// } - -// $bookmarks = $this->libBookmarks->findBookmarks($userId, 0, 'id', array(), false, - 1); - - - $data = array(); -// foreach ($news as $item) { -// $item = new ItemDocument(ItemDocument::TYPE_NEWS, $item['id']); -// $item->setMTime($item['lastmodified']); -// $item->setAbsolutePath($item['url']); -// $item->setPath($item['url']); -// $data[] = $item; -// } - - return $data; - } - - public static function getSearchResult(&$data) - { - $entry = array( - 'id' => $data->getId(), - 'mtime' => $data->getMTime() * 1000, - 'name' => $data->getPath(), - 'permissions' => 27, - 'type' => 'bookmark' - ); - // 'mimetype' => 'text/html', - - $data->setEntry($entry); - $data->valid(true); - - return true; - } -} - - diff --git a/lib/Service/QueueService.php b/lib/Service/QueueService.php deleted file mode 100644 index f99cce7..0000000 --- a/lib/Service/QueueService.php +++ /dev/null @@ -1,213 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero` General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Events\FilesEvents; -use \OCA\Nextant\Items\ItemQueue; -use \OCA\Nextant\Items\ItemDocument; -use \OCA\Nextant\Db\LiveQueue; - -class QueueService -{ - - private $userId; - - private $configService; - - private $indexService; - - private $sourceService; - - private $miscService; - - private $queue = null; - - private $parent = null; - - public function __construct($liveQueueMapper, $configService, $indexService, $sourceService, $miscService) - { - $this->liveQueueMapper = $liveQueueMapper; - $this->configService = $configService; - $this->indexService = $indexService; - $this->sourceService = $sourceService; - $this->miscService = $miscService; - } - - public function setParent($parent) - { - $this->parent = $parent; - } - - public function liveIndex($item) - { - switch ($this->configService->getAppValue('index_live')) { - case '0': - return; - - // case '1': - // $queue = msg_get_queue($this->configService->getAppValue('index_live_queuekey')); - // if (! msg_send($queue, 1, ItemQueue::toJson($item))) - // $this->miscService->log('can\'t msg_send()'); - // break; - - case '2': - $this->liveQueueMapper->insert(new LiveQueue($item)); - break; - } - } - - public function emptyQueue() - { - switch ($this->configService->getAppValue('index_live')) { - case '0': - return; - - // case '1': - // msg_remove_queue(msg_get_queue($this->configService->getAppValue('index_live_queuekey'))); - // break; - - case '2': - $this->liveQueueMapper->clear(); - break; - } - } - - public function readQueue($standby = false) - { - switch ($this->configService->getAppValue('index_live')) { - case '0': - return; - - // case '1': - // $queue = msg_get_queue($this->configService->getAppValue('index_live_queuekey')); - - // $msg_type = null; - // $msg = null; - // $max_msg_size = 512; - - // $infos = msg_stat_queue($queue); - - // if (! $standby && $infos['msg_qnum'] === 0) - // return false; - - // if (! msg_receive($queue, 1, $msg_type, $max_msg_size, $msg, true, 0, $error)) - // return false; - - // return ItemQueue::fromJson($msg); - - case '2': - $msg = null; - while (true) { - if ($this->parent != null) - $this->parent->interrupted(); - - $queue = $this->liveQueueMapper->next(); - if ($queue) - break; - if (! $standby && ! $queue) - return false; - - sleep(15); - } - - if ($queue) - $msg = $queue->getItem(); - - return ItemQueue::fromJson($msg); - } - } - - public function executeItem($item) - { - if ($item == null) - return false; - - $options = array(); - - if (! $item->getUserId()) - return false; - - switch ($item->getType()) { - - case FilesEvents::FILE_UPDATE: - array_push($options, 'forceshared'); - - case FilesEvents::FILE_CREATE: - $this->sourceService->file()->initUser($item->getUserId(), true); - $files = $this->sourceService->file()->getFilesPerFileId($item->getFileId(), $options); - if ($files != false && sizeof($files) > 0) { - $ispack = (sizeof($files) != 1); - $this->indexService->extract(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $ispack); - } - $this->sourceService->file()->endUser(); - break; - - case FilesEvents::FILE_TRASH: - array_push($options, 'deleted'); - - case FilesEvents::FILE_RENAME: - case FilesEvents::FILE_RESTORE: - case FilesEvents::FILE_SHARE: - case FilesEvents::FILE_UNSHARE: - array_push($options, 'forceshared'); - - $this->sourceService->file()->initUser($item->getUserId(), true); - $files = $this->sourceService->file()->getFilesPerFileId($item->getFileId(), $options); - if (is_array($files) && sizeof($files) > 0) { - $ispack = (sizeof($files) != 1); - $this->indexService->updateDocuments(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $ispack); - } - $this->sourceService->file()->endUser(); - break; - - case FilesEvents::FILE_DELETE: - if ($item->getFolder()) { - - $this->sourceService->file()->initUser($item->getUserId(), true); - $files = $this->sourceService->file()->getFilesPerUserId('/files', array()); - - if ($this->configService->getAppValue('index_files_trash') === '1') { - $files_trashbin = $this->sourceService->file()->getFilesPerUserId('/files_trashbin', array( - 'deleted' - )); - $files = array_merge($files, $files_trashbin); - } - - $solrDocs = null; - - $this->indexService->removeOrphans(ItemDocument::TYPE_FILE, $item->getUserId(), $files, $solrDocs); - - $this->sourceService->file()->endUser(); - } else { - - $doc[] = ItemDocument::fromItemQueue(ItemDocument::TYPE_FILE, $item); - $this->indexService->removeDocuments($doc, $ierror); - } - break; - } - } -} \ No newline at end of file diff --git a/lib/Service/SolrAdminService.php b/lib/Service/SolrAdminService.php deleted file mode 100644 index b599786..0000000 --- a/lib/Service/SolrAdminService.php +++ /dev/null @@ -1,1521 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\ConfigService; -use \OCA\Nextant\Service\MiscService; -use \OCA\Nextant\Items\ItemError; -use Solarium\Core\Client\Request; -use Solarium\Solarium; - -/** - * - * Admin Tools to manage Solr Core - * - * @author Maxence Lange - * - */ -class SolrAdminService { - - private $solrService; - - private $configService; - - private $miscService; - - private $lastMessage; - - /** - * - * @param SolrService $solrService - * @param ConfigService $configService - * @param MiscService $miscService - */ - public function __construct( - SolrService $solrService, ConfigService $configService, MiscService $miscService - ) { - $this->solrService = $solrService; - $this->configService = $configService; - $this->miscService = $miscService; - } - - /** - * Check the Schema of the Solr Core. - * - * @param boolean $fix - * @param ItemError $ierror - * - * @return boolean - */ - public function checkSchema($fix = false, &$ierror = null) { - $ierror = new ItemError(); - - if (!$this->solrService || !$this->solrService->configured() - || !$this->solrService->getClient() - ) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - - return false; - } - - $fields = self::solrSchema(); - $client = $this->solrService->getClient(); - - $this->solrService->message(''); - $this->solrService->message('Checking Solr schema fields'); - - $failed = false; - $changed = false; - while (true) { - foreach ($fields as $field) { - - if ($field['type'] === 'copy-field') { - $this->solrService->message( - ' * Checking ' . $field['type'] . ' \'' . $field['data']['source'] . '/' - . $field['data']['dest'] . '\' : ', false - ); - } else { - $this->solrService->message( - ' * Checking ' . $field['type'] . ' \'' . $field['data']['name'] . '\' : ', - false - ); - } - - if (self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $field, $curr, $ierror - ) - ) { - $this->solrService->message('ok'); - } else { - if ($ierror->getCode() == 0) { - $this->solrService->message('fail'); - } else { - return false; - } - - if ($fix) { - $changed = true; - if ($field['type'] === 'copy-field') { - $this->solrService->message( - ' -> Fixing ' . $field['type'] . ' \'' - . $field['data']['source'] . '/' . $field['data']['dest'] - . '\' ', false - ); - } else { - $this->solrService->message( - ' -> Fixing ' . $field['type'] . ' \'' - . $field['data']['name'] . '\' ', false - ); - } - - if ($curr) { - if (!self::modifyField( - $client, $this->configService->resourceLevel(), $field, $ierror - ) - ) { - $this->solrService->message('fail'); - } else if (!self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $field, $curr, - $ierror - ) - ) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - $failed = true; - } else { - $this->solrService->message('ok'); - } - } else { - if (!self::createField( - $client, $this->configService->resourceLevel(), $field, $ierror - ) - ) { - $this->solrService->message('fail'); - } else if (!self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $field, $curr, - $ierror - ) - ) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - $failed = true; - } else { - $this->solrService->message('ok'); - } - } - } else { - $failed = true; - } - } - } - - break; - } - - $this->solrService->message(''); - $this->solrService->message('Cleaning extra fields'); - $currSchema = self::getCurrentSchema($client, $ierror); - - $currFieldsType = $currSchema['schema']['fieldTypes']; - $currFields = $currSchema['schema']['fields']; - $currDynamicFields = $currSchema['schema']['dynamicFields']; - $currCopyFields = $currSchema['schema']['copyFields']; - - foreach ($currCopyFields as $copyfield) { - if (!self::checkFieldNecessity($client, $fields, 'copy-field', $copyfield, $ierror)) { - $this->solrService->message( - '* Removing copy-field \'' . $copyfield['source'] . '/' . $copyfield['dest'] - . '\' : ', false - ); - if (!$fix) { - $this->solrService->message('please fix this'); - continue; - } - - if (self::deleteField($client, 'copy-field', $copyfield, $ierror)) { - - self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $copyfield, $curr, $ierror - ); - if ($curr) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - } else { - $this->solrService->message('ok'); - } - } else { - if ($ierror->getCode() == 0) { - $this->solrService->message('fail'); - } else { - return false; - } - } - } - } - - foreach ($currFields as $field) { - if (!self::checkFieldNecessity($client, $fields, 'field', $field, $ierror)) { - $this->solrService->message( - '* Removing field \'' . $field['name'] . '\' : ', false - ); - if (!$fix) { - $this->solrService->message('please fix this'); - continue; - } - - if (self::deleteField($client, 'field', $field, $ierror)) { - self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $field, $curr, $ierror - ); - if ($curr) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - } else { - $this->solrService->message('ok'); - } - } else { - if ($ierror->getCode() == 0) { - $this->solrService->message('fail'); - } else { - return false; - } - } - } - } - - foreach ($currFieldsType as $fieldType) { - if (!self::checkFieldNecessity($client, $fields, 'field-type', $fieldType, $ierror)) { - $this->solrService->message( - '* Removing field-type \'' . $fieldType['name'] . '\' : ', false - ); - if (!$fix) { - $this->solrService->message('please fix this'); - continue; - } - - if (self::deleteField($client, 'field-type', $fieldType, $ierror)) { - self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $fieldType, $curr, $ierror - ); - if ($curr) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - } else { - $this->solrService->message('ok'); - } - } else { - if ($ierror->getCode() == 0) { - $this->solrService->message('fail'); - } else { - return false; - } - } - } - } - - foreach ($currDynamicFields as $fielddyn) { - if (!self::checkFieldNecessity($client, $fields, 'dynamic-field', $fielddyn, $ierror)) { - $this->solrService->message( - '* Removing dynamic-field \'' . $fielddyn['name'] . '\' : ', false - ); - if (!$fix) { - $this->solrService->message('please fix this'); - continue; - } - - if (self::deleteField($client, 'dynamic-field', $fielddyn, $ierror)) { - self::checkFieldProperty( - $client, $this->configService->resourceLevel(), $fielddyn, $curr, $ierror - ); - if ($curr) { - $this->solrService->message( - 'fail ' . $ierror->getCode() . ' - ' - . $ierror->getMessage() - ); - } else { - $this->solrService->message('ok'); - } - } else { - if ($ierror->getCode() == 0) { - $this->solrService->message('fail'); - } else { - return false; - } - } - } - } - if ($failed) { - $ierror = new ItemError(SolrService::ERROR_SOLR_CANTFIXFIELD); - - return false; - } - - if ($changed) { - $this->configService->setAppValue('index_files_needed', '1'); - } - - return true; - } - - /** - * Ping and test connection to the Solr Core - * - * @param ItemError $ierror - * - * @return boolean - */ - public function ping(&$ierror = null) { - if (!$this->solrService || !$this->solrService->configured() - || !$this->solrService->getClient() - ) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - - return false; - } - - $client = $this->solrService->getClient(); - $ping = $client->createPing(); - - try { - $result = $client->ping($ping); - - return true; - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') { - $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage()); - } else { - $ierror = - new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - private static function checkFieldNecessity( - \Solarium\Client $client, $fields, $type, $check, $ierror - ) { - foreach ($fields as $field) { - if ($type === 'dynamic-field') { - if ($field['type'] === $type - && substr( - $field['data']['name'], 0, strlen($check['name']) - 1 - ) === substr($check['name'], 0, -1) - ) { - return true; - } - } else if ($type === 'copy-field') { - if ($field['type'] === $type && $field['data']['source'] === $check['source'] - && $field['data']['dest'] === $check['dest'] - ) { - return true; - } - } else { - if (key_exists('type', $field) && $field['type'] === $type - && key_exists( - 'name', $field['data'] - ) - && $field['data']['name'] === $check['name'] - ) { - return true; - } - } - } - - return false; - } - - /** - * Check a field property from a Solr core using Solarium Client - * - * @param \Solarium\Client $client - * @param array $field - * @param array $property - * - * @return boolean - */ - private static function checkFieldProperty( - \Solarium\Client $client, $resources, $field, &$property, &$ierror - ) { - $property = self::getFieldProperty($client, $field, $ierror); - - if (!$property) { - return false; - } - - $data = $field['data']; - switch ($resources) { - case ConfigService::RESOURCE_LEVEL_LOWER: - if (key_exists('lower', $field)) { - $data = array_merge($field['data'], $field['lower']); - } - break; - - case ConfigService::RESOURCE_LEVEL_HIGHER: - if (key_exists('higher', $field)) { - $data = array_merge($field['data'], $field['higher']); - } - break; - } - - return self::checkFieldPropertyRecursive($data, $property); - } - - private static function checkFieldPropertyRecursive($value, $property) { - if (is_array($value)) { - - if (!is_array($property)) { - return false; - } - - if (sizeof($value) != sizeof($property)) { - return false; - } - - $key = array_keys($value); - foreach ($key as $k) { - if (!key_exists($k, $property)) { - return false; - } - - if (!self::checkFieldPropertyRecursive($value[$k], $property[$k])) { - return false; - } - } - } else if ($value != $property) { - return false; - } - - return true; - } - - private static function getCurrentSchema(\Solarium\Client $client, &$ierror = '') { - try { - $query = $client->createSelect(); - $request = $client->createRequest($query); - - $request->setHandler('schema'); - - $response = $client->executeRequest($request); - if ($response->getStatusCode() != 200) { - return false; - } - - $result = json_decode($response->getBody(), true); - - return $result; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * Get properties on a field based on its type and name - * - * @param \Solarium\Client $client - * @param string $fieldType - * @param string $fieldName - * - * @return boolean|mixed - */ - private static function getFieldProperty(\Solarium\Client $client, $field, &$ierror = '') { - if (!key_exists('type', $field)) { - return false; - } - - $url = ''; - if ($field['type'] === 'field') { - $url = 'schema/fields/'; - } - if ($field['type'] === 'dynamic-field') { - $url = 'schema/dynamicfields/'; - } - if ($field['type'] === 'field-type') { - $url = 'schema/fieldtypes/'; - } - if ($field['type'] === 'copy-field') { - return self::getCopyFieldProperty($client, $field, $ierror); - } - - // $url = 'schema/copyfields/'; - if ($url == '') { - return false; - } - - try { - $query = $client->createSelect(); - $request = $client->createRequest($query); - - $request->setHandler($url . $field['data']['name']); - - $response = $client->executeRequest($request); - if ($response->getStatusCode() != 200) { - return false; - } - - $result = json_decode($response->getBody()); - foreach ($result as $data) { - foreach ($data as $k => $v) { - if ($v instanceof stdClass) { - $v = (array)$v; - } - $property[$k] = $v; - } - } - - // lazy one-liner method : convert stdClass -> array() - $property = json_decode(json_encode($property), true); - - return $property; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * Get properties on a field based on its type and name - * - * @param \Solarium\Client $client - * @param string $fieldType - * @param string $fieldName - * - * @return boolean|mixed - */ - private static function getCopyFieldProperty(\Solarium\Client $client, $field, &$ierror = '') { - $url = ''; - if ($field['type'] != 'copy-field') { - return false; - } - - // $url = 'schema/copyfields/'; - - $curr = self::getCurrentSchema($client, $ierror); - if (!key_exists('copyFields', $curr['schema'])) { - return false; - } - - $currCopyFields = $curr['schema']['copyFields']; - - foreach ($currCopyFields as $copyfield) { - if ($copyfield['dest'] === $field['data']['dest']) { - return json_decode(json_encode($copyfield), true); - } - } - - return false; - } - - /** - * create field on the Solr Core - * - * @param \Solarium\Client $client - * @param array $field - */ - private static function createField(\Solarium\Client $client, $resources, $field, &$ierror) { - $data = $field['data']; - switch ($resources) { - case ConfigService::RESOURCE_LEVEL_LOWER: - if (key_exists('lower', $field)) { - $data = array_merge($field['data'], $field['lower']); - } - break; - - case ConfigService::RESOURCE_LEVEL_HIGHER: - if (key_exists('higher', $field)) { - $data = array_merge($field['data'], $field['higher']); - } - break; - } - - $send = array( - 'add-' . $field['type'] => $data - ); - - return self::solariumPostSchemaRequest($client, $send, $ierror); - } - - /** - * modify field on the Solr Core - * - * @param \Solarium\Client $client - * @param array $field - */ - private static function modifyField(\Solarium\Client $client, $resources, $field, &$ierror) { - $data = $field['data']; - switch ($resources) { - case ConfigService::RESOURCE_LEVEL_LOWER: - if (key_exists('lower', $field)) { - $data = array_merge($field['data'], $field['lower']); - } - break; - - case ConfigService::RESOURCE_LEVEL_HIGHER: - if (key_exists('higher', $field)) { - $data = array_merge($field['data'], $field['higher']); - } - break; - } - $send = array( - 'replace-' . $field['type'] => $data - ); - - return self::solariumPostSchemaRequest($client, $send, $ierror); - } - - /** - * delete field on the Solr Core - * - * @param \Solarium\Client $client - * @param array $field - */ - private static function deleteField(\Solarium\Client $client, $type, $field, &$ierror) { - if ($type === 'copy-field') { - $data = array( - 'delete-' . $type => array( - 'source' => $field['source'], - 'dest' => $field['dest'] - ) - ); - } else { - $data = array( - 'delete-' . $type => array( - 'name' => $field['name'] - ) - ); - } - - return self::solariumPostSchemaRequest($client, $data, $ierror); - } - - /** - * send post request to the Solr core - * - * @param \Solarium\Client $client - * @param array $data - * - * @return boolean - */ - private static function solariumPostSchemaRequest(\Solarium\Client $client, $data, &$ierror = '' - ) { - try { - $query = $client->createSelect(); - $request = $client->createRequest($query); - - $request->setHandler('schema'); - $request->setMethod(Request::METHOD_POST); - - $request->setRawData(json_encode($data)); - $response = $client->executeRequest($request); - - if ($response->getStatusCode() != 200) { - $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, 'Status Code != 200'); - - return false; - } - - return true; - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') { - $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage()); - } else { - $ierror = - new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * reset Solr Core - * - * @param ITemError $ierror - * - * @return boolean - */ - public function clear(&$ierror = 0) { - if (!$this->solrService || !$this->solrService->configured() - || !$this->solrService->getClient() - ) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - - return false; - } - - $client = $this->solrService->getClient(); - - try { - $update = $client->createUpdate(); - - $update->addDeleteQuery('*:*'); - $update->addCommit(); - $result = $client->update($update); - - return true; - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') { - $ierror = new ItemError(SolrService::EXCEPTION_SOLRURI, $ehe->getStatusMessage()); - } else { - $ierror = - new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - public static function solrSchema() { - $fields = array(); - - // - // field-types - // - - // boolean - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'boolean', - 'class' => 'solr.BoolField', - 'sortMissingLast' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'booleans', - 'class' => 'solr.BoolField', - 'sortMissingLast' => true, - 'multiValued' => true - ) - ) - ); - - // double - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'double', - 'class' => 'solr.TrieDoubleField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'doubles', - 'class' => 'solr.TrieDoubleField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0', - 'multiValued' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tdouble', - 'class' => 'solr.TrieDoubleField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tdoubles', - 'class' => 'solr.TrieDoubleField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8', - 'multiValued' => true - ) - ) - ); - - // float - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'float', - 'class' => 'solr.TrieFloatField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'floats', - 'class' => 'solr.TrieFloatField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0', - 'multiValued' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tfloat', - 'class' => 'solr.TrieFloatField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tfloats', - 'class' => 'solr.TrieFloatField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8', - 'multiValued' => true - ) - ) - ); - - // int - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'int', - 'class' => 'solr.TrieIntField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'ints', - 'class' => 'solr.TrieIntField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0', - 'multiValued' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tint', - 'class' => 'solr.TrieIntField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tints', - 'class' => 'solr.TrieIntField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8', - 'multiValued' => true - ) - ) - ); - - // long - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'long', - 'class' => 'solr.TrieLongField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'longs', - 'class' => 'solr.TrieLongField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '0', - 'multiValued' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tlong', - 'class' => 'solr.TrieLongField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tlongs', - 'class' => 'solr.TrieLongField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '8', - 'multiValued' => true - ) - ) - ); - // string - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'string', - 'class' => 'solr.StrField', - 'sortMissingLast' => true, - 'docValues' => true - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'strings', - 'class' => 'solr.StrField', - 'sortMissingLast' => true, - 'docValues' => true, - 'multiValued' => true - ) - ) - ); - - // date - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tdate', - 'class' => 'solr.TrieDateField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '6' - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'tdates', - 'class' => 'solr.TrieDateField', - 'positionIncrementGap' => '0', - 'docValues' => true, - 'precisionStep' => '6', - 'multiValued' => true - ) - ) - ); - - // ignored - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'ignored', - 'class' => 'solr.StrField', - 'indexed' => false, - 'stored' => false, - 'docValues' => false, - 'multiValued' => true - ) - ) - ); - - // text - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'text_general', - 'class' => 'solr.TextField', - 'omitNorms' => false, - 'indexAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ), - array( - 'class' => 'solr.NGramFilterFactory', - 'maxGramSize' => '20', - 'minGramSize' => '3' - ) - ) - ), - 'queryAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ) - ) - ) - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'text_general_edge', - 'class' => 'solr.TextField', - 'omitNorms' => false, - 'indexAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ), - array( - 'class' => 'solr.EdgeNGramFilterFactory', - 'maxGramSize' => '20', - 'minGramSize' => '1' - ) - ) - ), - 'queryAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ) - ) - ) - ) - ) - ); - - array_push( - $fields, array( - 'type' => 'field-type', - 'data' => array( - 'name' => 'text_general_word', - 'class' => 'solr.TextField', - 'omitNorms' => false, - 'indexAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ) - ) - ), - 'queryAnalyzer' => array( - 'tokenizer' => array( - 'class' => 'solr.StandardTokenizerFactory' - ), - 'filters' => array( - array( - 'class' => 'solr.StandardFilterFactory' - ), - array( - 'class' => 'solr.LowerCaseFilterFactory' - ), - array( - 'class' => 'solr.ASCIIFoldingFilterFactory' - ) - ) - ) - ) - ) - ); - - // - // fields - // - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => '_version_', - 'type' => 'long', - 'indexed' => true, - 'stored' => false - ) - ) - ); - - // id - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'id', - 'type' => 'string', - 'multiValued' => false, - 'indexed' => true, - 'required' => true, - 'stored' => true - ) - ) - ); - - // text - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'text', - 'type' => 'text_general', - 'indexed' => true, - 'stored' => false, - 'multiValued' => false - ) - ) - ); - - // text_edge - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'text_edge', - 'type' => 'text_general_edge', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ), - 'higher' => array( - 'termVectors' => true, - 'termPositions' => true, - 'termOffsets' => true - ), - 'lower' => array( - 'stored' => false - ) - ) - ); - - // text_word - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'text_word', - 'type' => 'text_general_word', - 'multiValued' => false, - 'indexed' => true, - 'stored' => false, - 'multiValued' => false - ) - ) - ); - - // nextant_path - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_path', - 'type' => 'text_general', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_owner - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_owner', - 'type' => 'string', - 'docValues' => false, - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_mtime - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_mtime', - 'type' => 'int', - 'docValues' => false, - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_share - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_share', - 'type' => 'string', - 'indexed' => true, - 'stored' => true, - 'multiValued' => true - ) - ) - ); - - // nextant_sharegroup - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_sharegroup', - 'type' => 'string', - 'indexed' => true, - 'stored' => true, - 'multiValued' => true - ) - ) - ); - - // nextant_deleted - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_deleted', - 'type' => 'boolean', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_source - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_source', - 'type' => 'string', - 'docValues' => false, - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_tags - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_tags', - 'type' => 'string', - 'indexed' => true, - 'stored' => true, - 'multiValued' => true - ) - ) - ); - - // nextant_extracted - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_extracted', - 'type' => 'boolean', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_ocr - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_ocr', - 'type' => 'int', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // nextant_unmounted - array_push( - $fields, array( - 'type' => 'field', - 'data' => array( - 'name' => 'nextant_unmounted', - 'type' => 'int', - 'indexed' => true, - 'stored' => true, - 'multiValued' => false - ) - ) - ); - - // - // dunamic-fields - // - - // ignored_ - array_push( - $fields, array( - 'type' => 'dynamic-field', - 'data' => array( - 'name' => 'ignored_*', - 'type' => 'ignored', - 'multiValued' => true - ) - ) - ); - - // nextant_attr_ - array_push( - $fields, array( - 'type' => 'dynamic-field', - 'data' => array( - 'name' => 'nextant_attr_*', - 'type' => 'string', - 'indexed' => true, - 'stored' => true, - 'multiValued' => true - ) - ) - ); - - // - // copy-field - // - - // text_edge - array_push( - $fields, array( - 'type' => 'copy-field', - 'data' => array( - 'source' => 'text_edge', - 'dest' => 'text' - ) - ) - ); - - // text_word - array_push( - $fields, array( - 'type' => 'copy-field', - 'data' => array( - 'source' => 'text_edge', - 'dest' => 'text_word' - ) - ) - ); - - return $fields; - } -} - \ No newline at end of file diff --git a/lib/Service/SolrService.php b/lib/Service/SolrService.php deleted file mode 100644 index 6f2a029..0000000 --- a/lib/Service/SolrService.php +++ /dev/null @@ -1,816 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero` General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Items\ItemError; -use \OCA\Nextant\Service\FileService; -use \OCA\Nextant\Service\ConfigService; -use \OCA\Nextant\Items\ItemDocument; - -class SolrService -{ - - const SCORE_TEXT_SIMPLE = 1; - - const SCORE_TEXT_EDGE = 5; - - const SCORE_TEXT_LITTLEWORD = 1; - - const SCORE_SENTENCE_COEF = 1000; - - const SCORE_PATH = 1000; - - // no solr - const ERROR_SOLRSERVICE_DOWN = 2; - - // Owner is not set - mostly a developper mistake - const ERROR_OWNER_NOT_SET = 4; - - // Type of document is not set - const ERROR_TYPE_NOT_SET = 6; - - const ERROR_TOOWIDE_SEARCH = 8; - - // Config is not well formed - const ERROR_SOLR_CONFIG = 19; - - // can't reach http - solr running at the right place ? - const EXCEPTION_HTTPEXCEPTION = 21; - - // issue during runtime - const EXCEPTION_RUNTIME = 22; - - // can't reach solr - check uri - const EXCEPTION_SOLRURI = 24; - - const ERROR_SOLR_CANTFIXFIELD = 26; - - const EXCEPTION_INDEX_FAILED = 31; - - // can't extract - check solr configuration for the solr-cell plugin - const EXCEPTION_EXTRACT_FAILED = 41; - - const ERROR_DOCUMENT_NOT_EXIST = 49; - - const EXCEPTION_UPDATE_FAILED = 51; - - const EXCEPTION_UPDATE_FIELD_FAILED = 61; - - const EXCEPTION_UPDATE_QUERY_FAILED = 71; - - const EXCEPTION_UPDATE_MAXIMUM_REACHED = 63; - - const EXCEPTION_SEARCH_FAILED = 81; - - const EXCEPTION_SUGGEST_FAILED = 85; - - const EXCEPTION_REMOVE_FAILED = 101; - - const EXCEPTION_OPTIMIZE_FAILED = 121; - - // undocumented exception - const EXCEPTION = 9; - - const SEARCH_OWNER = 1; - - const SEARCH_SHARED = 2; - - const SEARCH_SHARED_GROUP = 4; - - const SEARCH_EXTERNAL = 8; - - const SEARCH_ALL = 15; - - private $solariumClient; - - private $configService; - - private $miscService; - - private $owner = ''; - - private $groups = array(); - - private $configured = false; - - private $output = null; - - public function __construct($client, $configService, $miscService) - { - $this->solariumClient = $client; - $this->configService = $configService; - $this->miscService = $miscService; - } - - public function setDebug($debug) - { - $this->miscService->setDebug($debug); - } - - public function setOutput(&$output) - { - $this->output = $output; - } - - public function configured($first = false, &$ierror = '') - { - if (! $this->configured) { - $isIt = $this->configService->getAppValue('configured'); - if ($isIt === '1') - $this->configured = true; - if ($first && $isIt > 0) - $this->configured = true; - } - - if (! $this->configured) - $ierror = new ItemError(ItemError::ERROR_SOLR_NOT_FULLY_CONFIGURED); - - return $this->configured; - } - - // If $config == null, reset config to the one set in the admin - public function setClient($config) - { - $toS = $this->configService->toSolarium($config); - if (! $toS) - return false; - - $this->solariumClient = new \Solarium\Client($toS); - if ($config != null) - $this->configured = true; - else - $this->configured = false; - - return true; - } - - public function getClient(&$ierror = '') - { - if ($this->solariumClient === false) - $ierror = new ItemError(ItemError::ERROR_GET_SOLARIUM_CLIENT); - - return $this->solariumClient; - } - - public function getAdminClient() - { - if (! $this->solariumClient) - return false; - if (! $this->configured) - return false; - - $options = $this->solariumClient->getOptions(); - unset($options['endpoint']['localhost']['core']); - return new \Solarium\Client($options); - } - - public function getClientConfig() - { - return $this->solariumClient->getOptions(); - } - - public function setOwner($owner, $groups = array()) - { - $this->owner = $owner; - $this->groups = $groups; - } - - public function extractableFile($mimetype, $path = '') - { - $filters = $this->configService->getFileFilters(); - - if ($path !== '' && $pinfo = pathinfo($path)) { - if (key_exists('extension', $pinfo) && in_array('.' . $pinfo['extension'], $filters['extensions'])) - return false; - } - - switch (FileService::getBaseTypeFromMime($mimetype)) { - case 'text': - if ($filters['text'] !== '1') - return false; - return true; - } - - switch ($mimetype) { - - case 'application/epub+zip': - if ($filters['pdf'] !== '1') - return false; - return true; - - case 'application/pdf': - if ($filters['pdf'] !== '1') - return false; - return true; - - case 'application/rtf': - if ($filters['pdf'] !== '1') - return false; - return true; - - case 'application/msword': - if ($filters['office'] !== '1') - return false; - return true; - - case 'image/jpeg': - if ($filters['image'] !== '1') - return false; - return true; - - case 'image/tiff': - if ($filters['image'] !== '1') - return false; - return true; - - case 'audio/mpeg': - if ($filters['audio'] !== '1') - return false; - return true; - - case 'audio/flac': - if ($filters['audio'] !== '1') - return false; - return true; - - case 'application/octet-stream': - if ($path === '') - return false; - - $pinfo = pathinfo($path); - - if (key_exists('extension', $pinfo) && substr($pinfo['extension'], 0, 1) === 'd' && ((int) (substr($pinfo['extension'], 1)) > 0)) { - $tmppath = substr($path, 0, strrpos($path, '.')); - $tmpmime = \OC::$server->getMimeTypeDetector()->detectPath($tmppath); - - if ($tmpmime === 'application/octet-stream') - return false; - return $this->extractableFile($tmpmime); - } - - if (key_exists('extension', $pinfo)) - return self::extractableFileExtension($pinfo['extension']); - - return false; - } - - $acceptedMimeType = array( - 'vnd' => array( - 'application/vnd.oasis.opendocument', - 'application/vnd.sun.xml', - 'application/vnd.openxmlformats-officedocument', - 'application/vnd.ms-word', - 'application/vnd.ms-powerpoint', - 'application/vnd.ms-excel' - ) - ); - - foreach ($acceptedMimeType['vnd'] as $mt) { - if (substr($mimetype, 0, strlen($mt)) == $mt) { - if ($filters['office'] !== '1') - return false; - return true; - } - } - - return false; - } - - /** - * - * @param unknown $extension - * @return unknown|boolean - */ - public static function extractableFileExtension($extension) - { - switch ($extension) { - case 'srt': - return true; - - case 'mid': - return true; - - case 'eml': - return true; - } - - return false; - } - - /** - * extract a file. - * - * @param string $path - * @param int $docid - * @param string $mimetype - * @return result - */ - public function indexDocument(&$document, &$ierror = '') - { - if (! $this->configured()) - return false; - - if ($document->getAbsolutePath() == null) { - - if ($document->isExtractable()) - $document->failedExtract(true); - - $document->extractable(false); - if ($this->configService->getAppValue('index_files_tree') !== '1') { - $ierror = new ItemError(ItemError::EXCEPTION_INDEXDOCUMENT_WITHOUT_ABSOLUTEPATH); - return false; - } - } - - if ($document->getType() == null || $document->getType() == '') { - $ierror = new ItemError(self::ERROR_TYPE_NOT_SET); - return false; - } - - if ($this->owner == '') { - $ierror = new ItemError(self::ERROR_OWNER_NOT_SET); - return false; - } - - if (! $this->getClient()) { - $ierror = new ItemError(self::ERROR_SOLR_CONFIG); - return false; - } - - // $document->failedExtract(false); - // $document->failedIndex(false); - - try { - $client = $this->getClient(); - - if ($document->isExtractable()) { - $query = $client->createExtract(); - $query->setUprefix('nextant_attr_'); - // if ($this->configService->resourceLevel() === ConfigService::RESOURCE_LEVEL_LOWER) - // $query->addFieldMapping('content', 'text_light'); - // else - $query->addFieldMapping('content', 'text_edge'); - - $query->addFieldMapping('div', 'ignored_'); - $query->addFieldMapping('html', 'ignored_'); - $query->addFieldMapping('link', 'ignored_'); - $query->addFieldMapping('style', 'ignored_'); - $query->addFieldMapping('script', 'ignored_'); - $query->addFieldMapping('input', 'ignored_'); - $query->addFieldMapping('form', 'ignored_'); - $query->addFieldMapping('img', 'ignored_'); - $query->addFieldMapping('a', 'ignored_'); - $query->addFieldMapping('p', 'ignored_'); - $query->addFieldMapping('span', 'ignored_'); - $query->addFieldMapping('h1', 'ignored_'); - $query->addFieldMapping('h2', 'ignored_'); - $query->addFieldMapping('h3', 'ignored_'); - $query->addFieldMapping('table', 'ignored_'); - $query->addFieldMapping('tr', 'ignored_'); - $query->addFieldMapping('td', 'ignored_'); - $query->addFieldMapping('b', 'ignored_'); - $query->addFieldMapping('i', 'ignored_'); - $query->addFieldMapping('ul', 'ignored_'); - $query->addFieldMapping('li', 'ignored_'); - - $query->addFieldMapping('media_black_point', 'ignored_'); - $query->addFieldMapping('media_white_point', 'ignored_'); - - $query->setFile($document->getAbsolutePath()); - $query->setOmitHeader(true); - } else - $query = $client->createUpdate(); - - // add document - $doc = $query->createDocument(); - $doc->id = $document->getType() . '_' . $document->getId(); - $doc->nextant_source = $document->getType(); - - $doc->nextant_mtime = $document->getMTime(); - $doc->nextant_owner = $document->getOwner(); - $doc->nextant_path = $document->getPath(); - $doc->nextant_share = $document->getShare(); - $doc->nextant_sharegroup = $document->getShareGroup(); - $doc->nextant_deleted = $document->isDeleted(); - - if ($document->isExtractable()) { - $doc->nextant_extracted = true; - - // $query->setCommit(true); - $query->setDocument($doc); - - // custom options - $request = $client->createRequest($query); - $request->addParam('captureAttr', true); - $request->addParam('ignoreTikaException', true); - // $request->addParam('extractInlineImages', true); - // $request->addParam('ocrStrategy', 'ocr_and_text'); - - $response = $client->executeRequest($request); - $ret = $client->createResult($query, $response); - - if ($ret) { - $document->extracted(true); - $document->processed(true); - $document->indexed(true); - return true; - } - } else { - $doc->text = ''; - // $query->addCommit(); - $query->addDocuments(array( - $doc - )); - - $ret = $client->update($query); - - if ($ret) { - $document->processed(true); - $document->indexed(true); - return true; - } - } - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') { - if ($document->isExtractable()) - $ierror = new ItemError(self::EXCEPTION_EXTRACT_FAILED, $ehe->getStatusMessage()); - else - $ierror = new ItemError(self::EXCEPTION_INDEX_FAILED, $ehe->getStatusMessage()); - } else - $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(self::EXCEPTION, $e->getMessage()); - } - - if ($document->isExtractable()) - $document->failedExtract(true); - else - $document->failedIndex(true); - - return false; - } - - public function search($string, $options = array(), &$ierror = null) - { - $ierror = new ItemError(); - - if (! $this->configured(false, $ierror)) - return false; - - if ($this->getClient($ierror) === false) - return false; - - $string = str_replace(' ', ' ', trim($string)); - if (substr_count($string, '"') & 1) - $string = substr_replace($string, '', strrpos($string, '"'), 1); - - $astring = preg_split("/(\ )(?=(?:[^\"]|\"[^\"]*\")*$)/m", $string); - - if ($string === '') - return false; - - if ($options == null) - $options = array(); - - try { - $client = $this->getClient(); - $query = $client->createSelect(); - - $helper = $query->getHelper(); - - if (in_array('no_owner_check', $options)) - $ownerQuery = ''; - - else { - - $ownerQuery = $this->generateOwnerQuery(self::SEARCH_ALL, $helper, $ierror); - - if ($ownerQuery === false) - return false; - - if ($ownerQuery === '') { - $ierror = new ItemError(self::ERROR_TOOWIDE_SEARCH); - return false; - } - } - - // array_push($options, 'complete_words'); - // $query->setQuery('text:' . ((! in_array('complete_words', $options)) ? '*' : '') . $helper->escapePhrase($string)); - - $path = ''; - $special = '+-'; - $docminus = array(); - $islist = array(); - $q = '(text_edge:"' . $helper->escapeTerm(str_replace('"', '', $string)) . '"^150)'; - foreach ($astring as $qstr) { - - $coef = 1; - - $oper = ''; - if (strpos($special, substr($qstr, 0, 1)) !== false) { - $oper = substr($qstr, 0, 1); - $qstr = substr($qstr, 1); - } - - $unqstr = str_replace('"', '', $qstr); - - if (substr($unqstr, 0, 3) === 'is:') { - $islist[] = substr($unqstr, 3); - continue; - } - - if ($oper === '-') { - $docminus[] = $oper . 'text:"' . $helper->escapeTerm($unqstr) . '"'; - $docminus[] = $oper . 'text_edge:"' . $helper->escapeTerm($unqstr) . '"'; - continue; - } - - $path .= $oper . 'nextant_path:"' . $helper->escapeTerm(str_replace('"', '', $qstr)) . '"^' . self::SCORE_PATH . ' ' . "\n"; - - if (substr($qstr, 0, 1) == '"') - $coef = self::SCORE_SENTENCE_COEF; - - // if (strpos($qstr, ' ')) - // $coef = self::SCORE_SENTENCE_COEF; - - if (strlen($unqstr) >= 4) { - $q .= ' OR (' . $oper . 'text:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_SIMPLE * $coef) . ')'; - $q .= ' OR (' . $oper . 'text_edge:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_EDGE * $coef) . ')'; - } else { - $q .= ' OR (' . $oper . 'text_word:"' . $helper->escapeTerm($unqstr) . '"^' . (self::SCORE_TEXT_LITTLEWORD) . ')'; - } - } - - if ($path !== '') - $q = '(' . $q . ")\n OR (" . $path . ')'; - - if (key_exists('limit_document_id', $options)) - $q = '(' . $q . ")\n AND (id:" . $options['limit_document_id'] . ')'; - - foreach ($islist as $is) { - - $addq = ''; - switch ($is) { - case 'deleted': - $addq = 'nextant_deleted:true AND nextant_source:files'; - break; - - case 'files': - $addq = 'nextant_deleted:false AND nextant_source:files'; - break; - - case 'bookmarks': - case 'bookmark': - case 'bm': - $addq = 'nextant_source:bookmarks'; - break; - } - - if ($addq !== '') - $q = "($q)\n AND ($addq)"; - } - - foreach ($docminus as $mdoc) { - $q .= "\n" . $mdoc; - } - - // Uncomment to display the request sent to solr - // $this->miscService->log($q); - - $query->setRows(25); - $query->setQuery($q); - - if ($ownerQuery !== '') - $query->createFilterQuery('owner')->setQuery($ownerQuery); - - $query->setFields(array( - 'id', - 'nextant_deleted', - 'nextant_path', - 'nextant_source', - 'nextant_owner', - 'nextant_mtime', - 'nextant_attr_content_type', - 'score' - )); - - // if (key_exists('current_directory', $options)) - // $query->setQuery('nextant_path:' . $helper->escapePhrase($options['current_directory'])); - - $hl = null; - if ($this->configService->resourceLevel() > ConfigService::RESOURCE_LEVEL_LOWER) { - $hl = $query->getHighlighting(); - // $hl->setAlternateField('text_dense'); - $hl->setFragSize(70); - - if ($this->configService->resourceLevel() === ConfigService::RESOURCE_LEVEL_HIGHER) { - $hl->setUsePhraseHighlighter(true); - $hl->setUseFastVectorHighlighter(true); - $hl->setBoundaryScannerType('SENTENCE'); - - // $hl->setBoundaryScannerMaxScan(); - // $hl->setBoundaryScannerChars(); - // $hl->setBoundaryScannerLanguage(); - // $hl->setBoundaryScannerCountry(); - } - - // $hl->setSimplePrefix(''); - // $hl->setSimplePostfix(''); - - switch ($this->configService->resourceLevel()) { - case ConfigService::RESOURCE_LEVEL_LOW: - case ConfigService::RESOURCE_LEVEL_MID: - $hl->setSnippets(2); - $hl->setFragSize(100); - $hl->setMaxAnalyzedChars(50000); - break; - - case ConfigService::RESOURCE_LEVEL_HIGH: - $hl->setSnippets(4); - $hl->setMaxAnalyzedChars(100000); - break; - - case ConfigService::RESOURCE_LEVEL_HIGHER: - $hl->setSnippets(4); - $hl->setMaxAnalyzedChars(200000); - break; - } - - $hl->setFields(array( - 'text_edge' - )); - } - - $resultset = $client->select($query); - if ($hl !== null) - $highlighting = $resultset->getHighlighting(); - - $return = array(); - foreach ($resultset as $document) { - - $item = ItemDocument::fromSolr($document); - $item->shared(($document->nextant_owner != $this->owner)); - - // highlighting - if ($hl !== null) { - $hlDoc = $highlighting->getResult($document->id); - $item->setHighlighting($hlDoc->getField('text_edge')); - } - - $return[] = $item; - } - - return $return; - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') - $ierror = new ItemError(self::EXCEPTION_SEARCH_FAILED, $ehe->getStatusMessage()); - else - $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(self::EXCEPTION, $e->getMessage()); - } - - return false; - } - - public function suggest($string, &$ierror = '') - { - if (! $this->configured()) - return false; - - if ($this->getClient() == false) - return false; - - try { - $client = $this->getClient(); - $query = $client->createSuggester(); - - $query->setQuery($string); - - $query->setDictionary('suggest'); - $query->setOnlyMorePopular(true); - $query->setCount(5); - $query->setCollate(true); - - $resultset = $client->suggester($query); - - $t = 0; - $suggTotal = sizeof($resultset); - $suggestions = array(); - foreach ($resultset as $term => $termResult) { - - $t ++; - if ($t == $suggTotal) { - foreach ($termResult as $result) { - $suggest = '' . $string . '' . (($termResult->getEndOffset() >= strlen($string)) ? substr($result, strlen($term)) : ''); - - if (! self::suggestionAlreadyKnown($suggestions, $suggest)) - $suggestions[] = array( - 'suggestion' => $suggest - ); - } - } - } - - // $this->miscService->log(var_export($suggestions, true)); - - return $suggestions; - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') - $ierror = new ItemError(self::EXCEPTION_SUGGEST_FAILED, $ehe->getStatusMessage()); - else - $ierror = new ItemError(self::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(self::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(self::EXCEPTION, $e->getMessage()); - } - - return false; - } - - private function generateOwnerQuery($type, $helper, &$ierror) - { - $ownerQuery = ''; - if ($type & self::SEARCH_OWNER) { - if ($this->owner == '') { - $ierror = new ItemError(self::ERROR_OWNER_NOT_SET); - return false; - } - - $ownerQuery .= 'nextant_owner:' . $helper->escapePhrase($this->owner) . ' '; - } - - if ($type & self::SEARCH_SHARED) { - if ($this->owner == '') { - $ierror = new ItemError(self::ERROR_OWNER_NOT_SET); - return false; - } - $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . 'nextant_share:' . $helper->escapePhrase($this->owner) . ' '; - } - - // if ($type & self::SEARCH_EXTERNAL) { - // $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . 'nextant_share:"__all" '; - // } - - if ($type & self::SEARCH_SHARED_GROUP) { - $ownerGroups = ''; - $groups = array(); - foreach ($this->groups as $group) - array_push($groups, ' nextant_sharegroup:' . $helper->escapePhrase($group)); - - if (sizeof($groups) > 0) - $ownerQuery .= (($ownerQuery != '') ? 'OR ' : '') . implode(' OR ', $groups); - } - - return $ownerQuery; - } - - public function message($line, $newline = true) - { - if ($this->output != null) { - if ($newline) - $this->output->writeln($line); - else - $this->output->write($line); - } else - $this->lastMessage = $line; - } - - private static function suggestionAlreadyKnown($list, $suggest) - { - foreach ($list as $item) { - if ($item['suggestion'] === $suggest) - return true; - } - return false; - } -} - diff --git a/lib/Service/SolrToolsService.php b/lib/Service/SolrToolsService.php deleted file mode 100644 index 3360156..0000000 --- a/lib/Service/SolrToolsService.php +++ /dev/null @@ -1,539 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -use \OCA\Nextant\Service\SolrService; -use \OCA\Nextant\Service\MiscService; -use \OCA\Nextant\Items\ItemDocument; -use \OCA\Nextant\Items\ItemError; - -/** - * - * Tools to manage Solr Core - * - * @author Maxence Lange - * - */ -class SolrToolsService -{ - - // const UPDATE_MAXIMUM_QUERYTIME = 2000; - - // const UPDATE_MAXIMUM_FILEPROCESS = 15; - - // const UPDATE_CHUNK_SIZE = 5; - private $solrService; - - private $configService; - - private $miscService; - - private $output; - - /** - * - * @param SolrService $solrService - * @param ConfigService $configService - * @param MiscService $miscService - */ - public function __construct(SolrService $solrService, ConfigService $configService, MiscService $miscService) - { - $this->solrService = $solrService; - $this->configService = $configService; - $this->miscService = $miscService; - $this->output = null; - } - - /** - * Set debug - * - * @param boolean $debug - */ - public function setDebug($debug = false) - { - $this->miscService->setDebug($debug); - } - - /** - * optimize the Solr Core - * - * @param ItemError $ierror - * @return boolean|Solarium\Core\Query\Result - */ - public function optimizeSolrIndex(&$ierror = 0) - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - $client = $this->solrService->getClient(); - - $update = $client->createUpdate(); - $update->addOptimize(true, true, 5); - $result = $client->update($update); - - return $result; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * commit - * - * @param ItemError $ierror - * @return boolean|Solarium\Core\Query\Result - */ - public function commit($optimize = false, &$ierror = null) - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - $client = $this->solrService->getClient(); - - $update = $client->createUpdate(); - $update->addCommit(); - if ($optimize) - $update->addOptimize(true, true, 5); - $result = $client->update($update); - - return $result; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * - * @param ItemDocument $final - * @param ItemDocument $current - * - * @return boolean - */ - public function updateDocument(&$final, &$current, $update = true, &$ierror = '') - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - if ($final == null || $current == null) { - $ierror = new ItemError(SolrService::ERROR_DOCUMENT_NOT_EXIST); - return false; - } - - $modifs = false; - if (! MiscService::arraysIdentical($final->getShare(), $current->getShare())) - $modifs = true; - if (! MiscService::arraysIdentical($final->getShareGroup(), $current->getShareGroup())) - $modifs = true; - if ($final->getPath() !== $current->getPath() && $final->getOwner() !== '__global') - $modifs = true; - if ($final->getOwner() !== $current->getOwner()) - $modifs = true; - if ($final->isDeleted() != $current->isDeleted()) - $modifs = true; - if (! $final->isExtractable() && $current->isExtracted()) - $modifs = true; - - if (! $modifs) - return true; - - $final->needUpdate(true); - - if (! $update) - return true; - - $client = $this->solrService->getClient(); - $query = $client->createUpdate(); - - $doc = $query->createDocument(); - $doc->setKey('id', $final->getType() . '_' . $final->getId()); - - if ($final->getOwner() !== $current->getOwner()) { - $doc->setField('nextant_owner', $final->getOwner()); - $doc->setFieldModifier('nextant_owner', 'set'); - } - - if ($final->getPath() !== $current->getPath()) { - $doc->setField('nextant_path', $final->getPath()); - $doc->setFieldModifier('nextant_path', 'set'); - } - - if (! MiscService::arraysIdentical($final->getShare(), $current->getShare())) { - if (sizeof($final->getShare()) > 0) { - $doc->setField('nextant_share', $final->getShare()); - $doc->setFieldModifier('nextant_share', 'set'); - } else { - $doc->setField('nextant_share', array( - '' - )); - $doc->setFieldModifier('nextant_share', 'set'); - } - } - - if (! MiscService::arraysIdentical($final->getShareGroup(), $current->getShareGroup())) { - if (sizeof($final->getShareGroup()) > 0) { - $doc->setField('nextant_sharegroup', $final->getShareGroup()); - $doc->setFieldModifier('nextant_sharegroup', 'set'); - } else { - $doc->setField('nextant_sharegroup', array( - '' - )); - $doc->setFieldModifier('nextant_sharegroup', 'set'); - } - } - - if ($final->isDeleted() != $current->isDeleted()) { - $doc->setField('nextant_deleted', ($final->isDeleted()) ? 'true' : 'false'); - $doc->setFieldModifier('nextant_deleted', 'set'); - } - - if (! $final->isExtractable() && $current->isExtracted()) { - $doc->setField('text', ''); - $doc->setFieldModifier('text', 'set'); - $doc->setField('nextant_extracted', false); - $doc->setFieldModifier('nextant_extracted', 'set'); - } - - $query->addDocuments(array( - $doc - )); - // $query->addCommit(); - - if ($request = $client->update($query)) { - // fixing solrDocs' data - $current->setShare($final->getShare()); - $current->setShareGroup($final->getShareGroup()); - $current->setPath($final->getPath()); - $current->setOwner($final->getOwner()); - $current->deleted($final->isDeleted()); - $current->updated(true); - - $final->updated(true); - return true; - } else - $ierror = new ItemError(SolrService::EXCEPTION_UPDATE_QUERY_FAILED); - } catch (\Solarium\Exception\HttpException $ehe) { - if ($ehe->getStatusMessage() == 'OK') - $ierror = new ItemError(SolrService::EXCEPTION_UPDATE_FAILED, $ehe->getStatusMessage()); - else - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - $final->failedUpdate(true); - - return false; - } - - /** - * remove document by its id - * - * @param number $docid - * @param ItemError $ierror - * @return boolean - */ - public function removeDocument(&$doc, &$ierror = '') - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - if ($doc == null) - return false; - - try { - $client = $this->solrService->getClient(); - $update = $client->createUpdate(); - - $update->addDeleteById($doc->getType() . '_' . $doc->getId()); - // $update->addCommit(); - - $ret = $client->update($update); - - if ($ret) { - $doc->removed(true); - return true; - } - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * Check the mtime of a file and return if document is up to date - * - * @param ItemDocument $document - * @param ItemDocument $solr - * @param ItemError $ierror - * @return boolean - */ - public function isDocumentUpToDate(&$document, $solr = null, &$ierror = 0) - { - if (intval($document->getId()) == 0) - return false; - - if ($solr != null && $solr != '') { - if ($document->getMTime() === $solr->getMTime()) { - $document->indexed(true); - - if (! $document->isExtractable()) - return true; - - if ($solr->isExtracted()) { - $document->extracted(true); - return true; - } - - return false; - } else - if (! $document->isExtractable() && $this->configService->getAppValue('index_files_tree') === '1') - return true; - } - - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - - $client = $this->solrService->getClient(); - - $query = $client->createSelect(); - $query->setQuery('id:' . $document->getType() . '_' . $document->getId()); - $query->setFields(array( - 'nextant_mtime', - 'nextant_extracted' - )); - - $resultset = $client->select($query); - - if ($resultset->getNumFound() != 1) - return false; - - foreach ($resultset as $doc) { - if ($document->getMTime() == $doc->nextant_mtime) { - if ($doc->nextant_extracted) - $document->extracted(true); - $document->indexed(true); - return true; - } - } - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * return information about the current status of the Solr servlet. - * - * @param ItemError $ierror - * @return boolean|Solarium\Core\Query\Result - */ - public function getInfoSystem(&$ierror = '') - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - $client = $this->solrService->getAdminClient(); - - $query = $client->createSelect(); - $request = $client->createRequest($query); - - $request->setHandler('admin/info/system'); - - $response = $client->executeRequest($request); - if ($response->getStatusCode() != 200) - return false; - - $result = json_decode($response->getBody()); - - return $result; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * return information about the current status of the solr core. - * - * @param ItemError $ierror - * @return boolean|Solarium\Core\Query\Result - */ - public function getInfoCore($complete = false, &$ierror = '') - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - try { - $client = $this->solrService->getClient(); - - $query = $client->createSelect(); - if (! $complete) - $query->setFields(array( - 'index' - )); - - $request = $client->createRequest($query); - $request->setHandler('admin/luke'); - - $response = $client->executeRequest($request); - if ($response->getStatusCode() != 200) - return false; - - $result = json_decode($response->getBody()); - - return $result; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - public function pick($type, $id) - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - $client = $this->solrService->getClient(); - - try { - $query = $client->createSelect(); - $helper = $query->getHelper(); - - $query->setQuery('id:' . $type . '_' . $id); - $resultset = $client->execute($query); - - return $resultset; - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } - - /** - * Count document on Solr Core - * - * @param number $type - * @param number $userId - * @param ItemError $ierror - * @return boolean - */ - public function count($type = '', $userId = '', &$ierror = '') - { - if (! $this->solrService || ! $this->solrService->configured() || ! $this->solrService->getClient()) { - $ierror = new ItemError(SolrService::ERROR_SOLRSERVICE_DOWN); - return false; - } - - $client = $this->solrService->getClient(); - - if ($type != '') - $type .= '_'; - - try { - $query = $client->createSelect(); - $helper = $query->getHelper(); - - $query->setQuery('id:' . $type . '*'); - if ($userId != '') - $query->createFilterQuery('owner')->setQuery('nextant_owner:' . $helper->escapePhrase($userId)); - - $query->setRows(0); - $resultset = $client->execute($query); - - return $resultset->getNumFound(); - } catch (\Solarium\Exception\HttpException $ehe) { - $ierror = new ItemError(SolrService::EXCEPTION_HTTPEXCEPTION, $ehe->getStatusMessage()); - } catch (\Solarium\Exception\RuntimeException $re) { - $ierror = new ItemError(SolrService::EXCEPTION_RUNTIME, $re->getMessage()); - } catch (\Solarium\Exception $e) { - $ierror = new ItemError(SolrService::EXCEPTION, $e->getMessage()); - } - - return false; - } -} - \ No newline at end of file diff --git a/lib/Service/SourceService.php b/lib/Service/SourceService.php deleted file mode 100644 index c73239b..0000000 --- a/lib/Service/SourceService.php +++ /dev/null @@ -1,62 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Service; - -class SourceService -{ - - private $fileService; - - private $bookmarkService; - - private $newsService; - - private $miscService; - - public function __construct($fileService, $bookmarkService, $newsService, $miscService) - { - $this->fileService = $fileService; - $this->bookmarkService = $bookmarkService; - $this->newsService = $newsService; - $this->miscService = $miscService; - } - - public function file() - { - return $this->fileService; - } - - public function bookmark() - { - return $this->bookmarkService; - } - - public function news() - { - return $this->newsService; - } -} \ No newline at end of file diff --git a/lib/Service/TestService.php b/lib/Service/TestService.php deleted file mode 100644 index 4dca632..0000000 --- a/lib/Service/TestService.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -namespace OCA\Nextant\Service; - -use OCA\Nextant\Items\ItemDocument; - -class TestService -{ - - public static function generateTestDocument($docid, $userid, $absolutePath, $path) - { - $doc = new ItemDocument(ItemDocument::TYPE_TEST, $docid); - $doc->setAbsolutePath($absolutePath); - $doc->setOwner($userid); - $doc->setPath($path); - $doc->setMTime(time()); - - return $doc; - } -} - - diff --git a/lib/admin.php b/lib/admin.php deleted file mode 100644 index 2b80245..0000000 --- a/lib/admin.php +++ /dev/null @@ -1,36 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant; - -$app = new \OCA\Nextant\AppInfo\Application(); -$app->registerSettingsAdmin(); - -$response = $app->getContainer() - ->query('SettingsController') - ->index(); - -return $response->render(); diff --git a/lib/search.php b/lib/search.php deleted file mode 100644 index 4a3e98c..0000000 --- a/lib/search.php +++ /dev/null @@ -1,36 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -namespace OCA\Nextant\Settings; - -$app = new \OCA\Nextant\AppInfo\Application(); -$app->registerSettingsAdmin(); - -$response = $app->getContainer() - ->query('SearchController') - ->index(); - -return $response->render(); diff --git a/phpunit.integration.xml b/phpunit.integration.xml deleted file mode 100644 index 32cba8a..0000000 --- a/phpunit.integration.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - ./tests/integration - - - \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100644 index 4eaab43..0000000 --- a/phpunit.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - ./tests/unit - - - \ No newline at end of file diff --git a/screenshots/admin.jpg b/screenshots/admin.jpg deleted file mode 100644 index cf3dd5f..0000000 Binary files a/screenshots/admin.jpg and /dev/null differ diff --git a/screenshots/displayResult.jpg b/screenshots/displayResult.jpg deleted file mode 100644 index 0ed6ed4..0000000 Binary files a/screenshots/displayResult.jpg and /dev/null differ diff --git a/screenshots/displaySuggestions.jpg b/screenshots/displaySuggestions.jpg deleted file mode 100644 index 1a5893c..0000000 Binary files a/screenshots/displaySuggestions.jpg and /dev/null differ diff --git a/screenshots/noindex1.png b/screenshots/noindex1.png deleted file mode 100644 index c7caf47..0000000 Binary files a/screenshots/noindex1.png and /dev/null differ diff --git a/screenshots/noindex2.png b/screenshots/noindex2.png deleted file mode 100644 index 9c6b634..0000000 Binary files a/screenshots/noindex2.png and /dev/null differ diff --git a/templates/settings.admin.php b/templates/settings.admin.php deleted file mode 100644 index 2b5cb9f..0000000 --- a/templates/settings.admin.php +++ /dev/null @@ -1,413 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -script('nextant', 'settings.admin'); -style('nextant', 'admin'); - -?> -
-

t('Nextant (Full-Text Search)')) ?>

- - - - - - - - - - -
t('Specify the address of your Solr, and the name of the core to use.')); ?> -
- t('If you do not have a Solr servlet running, installation-guides can be found on the wiki.')); ?> -
- t('You can also find more information there about this interface.')); ?>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
t('Saving')); ?>
t('Settings')); ?>
- t('Nextant version:')) ?>
- t('Address of your Solr servlet:')) ?>
t('Core:')) ?>
t('Timeout (in seconds):')) ?>
- -
-
- - - - - - - - -
 
t('Saving')); ?>
t('Indexing Files')); ?>
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- t('Maximum File Size (Mb):')) ?>[t('Edit your filters')); ?>] -
- t('Index Files Tree:')) ?> t('Disable default search from Files')); ?> -
- t('Index File Trash:')) ?>
- t('Index Public Links:')) ?>
- t('Index Federated Shares:')) ?>
- t('Index External Storages:')) ?>
- t('Index Encrypted Files:')) ?>
- t('Last index:')) ?>
-
- - - - - - - - - -
 
t('Saving')); ?>
t('Indexing Bookmarks')); ?>
- -
- - - - - - - - - -
-
- t('The App Bookmarks is not installed/enabled.')); ?> -
-
- t('"App Bookmarks" enabled, your bookmarks will be indexed.')); ?> -
-
- t('Last index:')) ?>
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
t('Saving')); ?>
-
t('Checking')); ?>
t('Nextant Status')); ?>
- t('Resource Level:')); ?> -
- t('Live Index:')); ?> -
- t('Minimum Background Index delay:')) ?>t('hours')); ?> -
- t('Maximum Background Index delay:')) ?>t('days')); ?> -
- t('Nextcloud Cron:')); ?> - - -
- t('Number of documents:')) ?>
- t('Number of segments:')) ?>
 
-
- - t('it is recommended to do the very first indexing of your files using the ./occ nextant:index command.')); ?> - t('However, you can force it to be started as a background process.')); ?> -
- -
- -
- t('Indexing is scheduled within the next few hours (Cron)')); ?> -
-
- t('Indexing in progress')); ?> -
-
-
-
-
-
- - -
-
- -
- - -
-
- -
- - -
-
- -
- - -
-
- - - -
- - -
-
- -
- - -
-
- -
- -
- -
t('Saving')); ?>
- -
t('Type of files to extract')); ?>
- -
- t('Text File (Text, HTML, Subtitles, Source Codeā€¦)')); ?> -
-
- t('EPUB / PDF / RTF')); ?> -
-
- t('Office Documents')); ?> -
-
- t('Image (JPEG, TIFF)')); ?> -
-
- t('Audio File (MP3, FLAC)')); ?> -
- -
t('Extensions you wish to ignore (.java .xml)')); ?>
-
- -
- -
- -
- -
- - diff --git a/test.jpg b/test.jpg deleted file mode 100644 index d2b38a1..0000000 Binary files a/test.jpg and /dev/null differ diff --git a/test.pdf b/test.pdf deleted file mode 100644 index 004e288..0000000 Binary files a/test.pdf and /dev/null differ diff --git a/test.tif b/test.tif deleted file mode 100644 index e9ea541..0000000 Binary files a/test.tif and /dev/null differ diff --git a/tests/bootstrap.php b/tests/bootstrap.php deleted file mode 100644 index 573a246..0000000 --- a/tests/bootstrap.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -require_once __DIR__ . '/../../../tests/bootstrap.php'; -require_once __DIR__ . '/../appinfo/autoload.php'; \ No newline at end of file diff --git a/tests/integration/AppTest.php b/tests/integration/AppTest.php deleted file mode 100644 index 3da5488..0000000 --- a/tests/integration/AppTest.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @copyright Maxence Lange 2016 - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -use OCP\AppFramework\App; -use Test\TestCase; - -/** - * This test shows how to make a small Integration Test. - * Query your class - * directly from the container, only pass in mocks if needed and run your tests - * against the database - */ -class AppTest extends TestCase -{ - - private $container; - - public function setUp() - { - parent::setUp(); - $app = new App('nextant'); - $this->container = $app->getContainer(); - } - - public function testAppconfigured() - { - $appManager = $this->container->query('OCP\App\IAppManager'); - $this->assertTrue($appManager->isInstalled('nextant')); - } -} \ No newline at end of file -- cgit v1.2.3