From b1380c4a9f479de4fc456b6305bee57bc752ad03 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Sat, 11 Jul 2026 11:11:06 +0200 Subject: cleaned up user authentication this removes the userDB-exception in the normal authentication process which affected mostly wiki and blog which are not required any more. We also cleaned up translation messages as this function was not used at all. This is a required step forward a renovation of the jetty server. --- AGENTS.md | 9 + defaults/yacy.init | 27 +- help/Blog.md | 93 --- help/BlogComments.md | 88 --- help/Bookmarks.md | 9 +- help/ConfigAccountList_p.md | 49 -- help/ConfigAccounts_p.md | 99 ++- help/ConfigLanguage_p.md | 4 - help/ConfigProfile_p.md | 2 +- help/ConfigRobotsTxt_p.md | 4 - help/ConfigUser_p.md | 97 --- help/DictionaryLoader_p.md | 2 +- help/MessageSend_p.md | 4 +- help/Messages_p.md | 2 +- help/Network.md | 2 + help/News.md | 16 +- help/SettingsAck_p.md | 3 +- help/Surftips.md | 2 + help/Tables_p.md | 4 +- help/TransNews_p.md | 74 --- help/Translator_p.md | 85 --- help/User.md | 87 --- help/VFS.md | 4 +- help/ViewProfile.md | 2 +- help/Vocabulary_p.md | 4 +- help/Wiki.md | 94 --- help/WikiCodeHelp.md | 51 ++ help/WikiHelp.md | 49 -- help/index.md | 2 +- help/yacysearch.md | 2 +- help/yacysearchitem.md | 2 +- help/yacysearchtrailer.md | 2 +- htroot/Blog.html | 166 ----- htroot/Blog.rss | 23 - htroot/Blog.xml | 15 - htroot/BlogComments.html | 122 ---- htroot/ConfigAccountList_p.html | 29 - htroot/ConfigAccounts_p.html | 165 ++--- htroot/ConfigLanguage_p.html | 3 +- htroot/ConfigProfile_p.html | 2 +- htroot/ConfigRobotsTxt_p.html | 4 - htroot/ConfigUser_p.html | 67 -- htroot/MessageSend_p.html | 4 +- htroot/Network.html | 4 - htroot/News.html | 4 - htroot/SearchAccessRate_p.html | 13 +- htroot/Settings_ProxyAccess.inc | 20 +- htroot/TransNews_p.html | 63 -- htroot/Translator_p.html | 53 -- htroot/User.html | 73 --- htroot/Wiki.html | 207 ------ htroot/WikiCodeHelp.html | 193 ++++++ htroot/WikiHelp.html | 193 ------ htroot/env/base.css | 13 - htroot/env/grafics/blog.gif | Bin 165 -> 0 bytes htroot/env/grafics/wiki.gif | Bin 943 -> 0 bytes htroot/env/templates/submenuComputation.template | 1 - htroot/env/templates/submenuConfig.template | 3 +- htroot/env/templates/submenuPublication.template | 7 - htroot/mediawiki_p.html | 4 +- htroot/proxymsg/authfail.inc | 12 - htroot/robots.txt | 12 +- locales/de.lng | 252 +------- locales/el.lng | 238 +------ locales/es.lng | 238 +------ locales/fr.lng | 238 +------ locales/hi.lng | 238 +------ locales/it.lng | 238 +------ locales/ja.lng | 238 +------ locales/ko.lng | 238 +------ locales/master.lng.xlf | 684 ++------------------ locales/pl.lng | 238 +------ locales/ru.lng | 232 +------ locales/sk.lng | 238 +------ locales/source-master.lng.xlf | 694 +++------------------ locales/tr.lng | 238 +------ locales/uk.lng | 234 +------ locales/zh.lng | 238 +------ source/net/yacy/cora/protocol/RequestHeader.java | 1 - source/net/yacy/cora/protocol/ResponseHeader.java | 68 -- source/net/yacy/data/BlogBoard.java | 556 ----------------- source/net/yacy/data/BlogBoardComments.java | 363 ----------- source/net/yacy/data/UserDB.java | 656 ------------------- source/net/yacy/data/wiki/WikiBoard.java | 445 ------------- source/net/yacy/data/wiki/WikiCode.java | 18 +- source/net/yacy/htroot/Blog.java | 343 ---------- source/net/yacy/htroot/BlogComments.java | 331 ---------- source/net/yacy/htroot/Bookmarks.java | 22 +- source/net/yacy/htroot/ConfigAccountList_p.java | 106 ---- source/net/yacy/htroot/ConfigAccounts_p.java | 294 ++------- source/net/yacy/htroot/ConfigRobotsTxt_p.java | 4 - source/net/yacy/htroot/ConfigUser_p.java | 175 ------ source/net/yacy/htroot/Network.java | 29 +- source/net/yacy/htroot/News.java | 28 +- source/net/yacy/htroot/SettingsAck_p.java | 25 +- source/net/yacy/htroot/Settings_p.java | 15 - source/net/yacy/htroot/Surftips.java | 36 -- source/net/yacy/htroot/TransNews_p.java | 326 ---------- source/net/yacy/htroot/Translator_p.java | 174 ------ source/net/yacy/htroot/User.java | 177 ------ source/net/yacy/htroot/Wiki.java | 283 --------- source/net/yacy/htroot/WikiCodeHelp.java | 44 ++ source/net/yacy/htroot/WikiHelp.java | 44 -- .../yacy/htroot/api/bookmarks/get_bookmarks.java | 11 +- .../net/yacy/htroot/api/bookmarks/get_folders.java | 19 +- .../net/yacy/htroot/api/bookmarks/posts/add_p.java | 14 +- source/net/yacy/htroot/index.java | 17 +- source/net/yacy/htroot/robots.java | 2 - source/net/yacy/htroot/yacychat.java | 97 +-- source/net/yacy/htroot/yacysearch.java | 22 +- source/net/yacy/htroot/yacysearchitem.java | 40 +- source/net/yacy/htroot/yacysearchlatestinfo.java | 6 +- source/net/yacy/htroot/yacysearchtrailer.java | 5 +- source/net/yacy/http/YaCyHttpServer.java | 10 +- source/net/yacy/http/YaCyLegacyCredential.java | 16 - source/net/yacy/http/YaCyLoginService.java | 34 +- source/net/yacy/http/YaCySecurityHandler.java | 3 +- .../yacy/http/servlets/LLMAdminProxyServlet.java | 3 +- .../net/yacy/http/servlets/SolrSelectServlet.java | 3 +- .../net/yacy/http/servlets/YaCyDefaultServlet.java | 11 +- source/net/yacy/migration.java | 29 +- source/net/yacy/peers/NewsPool.java | 62 +- .../net/yacy/search/SearchAccessRateConstants.java | 33 +- source/net/yacy/search/Switchboard.java | 94 +-- source/net/yacy/search/SwitchboardConstants.java | 4 +- source/net/yacy/server/http/HTTPDemon.java | 13 +- source/net/yacy/server/http/RobotsTxtConfig.java | 24 - source/net/yacy/server/serverObjects.java | 4 +- source/net/yacy/visualization/ImageViewer.java | 16 +- test/java/net/yacy/data/wiki/WikiCodeTest.java | 37 +- test/jetty-smoke-test.sh | 146 +++++ 131 files changed, 981 insertions(+), 11520 deletions(-) delete mode 100644 help/Blog.md delete mode 100644 help/BlogComments.md delete mode 100644 help/ConfigAccountList_p.md delete mode 100644 help/ConfigUser_p.md delete mode 100644 help/TransNews_p.md delete mode 100644 help/Translator_p.md delete mode 100644 help/User.md delete mode 100644 help/Wiki.md create mode 100644 help/WikiCodeHelp.md delete mode 100644 help/WikiHelp.md delete mode 100644 htroot/Blog.html delete mode 100644 htroot/Blog.rss delete mode 100644 htroot/Blog.xml delete mode 100644 htroot/BlogComments.html delete mode 100644 htroot/ConfigAccountList_p.html delete mode 100644 htroot/ConfigUser_p.html delete mode 100644 htroot/TransNews_p.html delete mode 100644 htroot/Translator_p.html delete mode 100644 htroot/User.html delete mode 100644 htroot/Wiki.html create mode 100644 htroot/WikiCodeHelp.html delete mode 100644 htroot/WikiHelp.html delete mode 100644 htroot/env/grafics/blog.gif delete mode 100644 htroot/env/grafics/wiki.gif delete mode 100644 htroot/env/templates/submenuPublication.template delete mode 100644 htroot/proxymsg/authfail.inc delete mode 100644 source/net/yacy/data/BlogBoard.java delete mode 100644 source/net/yacy/data/BlogBoardComments.java delete mode 100644 source/net/yacy/data/UserDB.java delete mode 100644 source/net/yacy/data/wiki/WikiBoard.java delete mode 100644 source/net/yacy/htroot/Blog.java delete mode 100644 source/net/yacy/htroot/BlogComments.java delete mode 100644 source/net/yacy/htroot/ConfigAccountList_p.java delete mode 100644 source/net/yacy/htroot/ConfigUser_p.java delete mode 100644 source/net/yacy/htroot/TransNews_p.java delete mode 100644 source/net/yacy/htroot/Translator_p.java delete mode 100644 source/net/yacy/htroot/User.java delete mode 100644 source/net/yacy/htroot/Wiki.java create mode 100644 source/net/yacy/htroot/WikiCodeHelp.java delete mode 100644 source/net/yacy/htroot/WikiHelp.java create mode 100755 test/jetty-smoke-test.sh diff --git a/AGENTS.md b/AGENTS.md index 180115c43..3329a60a1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,3 +8,12 @@ When changing YaCy web pages or API endpoints, update all matching user-facing a - For `htroot/**/*.html` changes, update the corresponding Markdown help file under `help/`. - For API or servlet behavior changes under `source/net/yacy/htroot/**`, update the related `help/**/*.md` file with changed endpoints, access requirements, parameters, side effects, response fields, and automation guidance. - Treat `locales` and `help` updates as required checklist items for HTML, servlet, and API changes. Do not leave them for a follow-up unless the change is explicitly internal and has no user-visible page, request parameter, response, or behavior impact. + +## Tests During Code Reviews + +Do not treat the repository-wide test backlog as a separate mass-rewrite project unless explicitly requested. Improve tests incrementally in the context of individual code reviews. + +- During each code review, identify the behavior affected by the reviewed code and add, update, or repair focused tests where they provide useful regression coverage. +- Keep test work scoped to the reviewed area and the changes needed to verify it. +- Report unrelated existing test failures, but do not expand the review into a repository-wide test cleanup solely because those failures exist. +- Over time, use successive reviews to bring the test suite up to date alongside the production code. diff --git a/defaults/yacy.init b/defaults/yacy.init index a086c5326..545a51780 100644 --- a/defaults/yacy.init +++ b/defaults/yacy.init @@ -368,7 +368,7 @@ indexArchivePath=DATA/ARCHIVE # the path to the LISTS files. Most lists are used to filter web content listsPath=DATA/LISTS -# path to additional databases, like messages, blog data and bookmarks +# path to additional databases, such as messages and bookmarks workPath=DATA/WORK # the path to the SKINS files. @@ -446,10 +446,6 @@ YaCyHop=true # search services. serverClient=* -# use_proxyAccounts: set to true to restrict proxy-access to some identified users. -#use User_p.html to create some Users. -use_proxyAccounts=true - # adminAccountBase64MD5: a encoded user:password - pair # For the administration of settings through the web interface. # Should be set to a secret. @@ -963,22 +959,22 @@ search.result.show.vocabulary.omit = # when true, display the raw ranking score value search.result.show.ranking = false -# Maximum numbers of accesses within a given time period to the search interface for unauthenticated users and authenticated users with no extended search right +# Maximum numbers of accesses within a given time period to the search interface for unauthenticated users search.public.max.access.3s = 60 search.public.max.access.1mn = 600 search.public.max.access.10mn = 3000 -# Maximum numbers of accesses within a given time period to the search interface in P2P mode for unauthenticated users and authenticated users with no extended search right +# Maximum numbers of accesses within a given time period to the search interface in P2P mode for unauthenticated users search.public.max.p2p.access.3s = 1 search.public.max.p2p.access.1mn = 6 search.public.max.p2p.access.10mn = 60 -# Maximum numbers of accesses within a given time period to the search interface in P2P mode with browser-side JavaScript remote results resorting for unauthenticated users and authenticated users with no extended search right +# Maximum numbers of accesses within a given time period to the search interface in P2P mode with browser-side JavaScript remote results resorting for unauthenticated users search.public.max.p2p.jsresort.access.3s = 1 search.public.max.p2p.jsresort.access.1mn = 1 search.public.max.p2p.jsresort.access.10mn = 10 -# Maximum number of accesses within a given time period to the search interface to support fetching remote results snippets for unauthenticated users and authenticated users with no extended search right +# Maximum number of accesses within a given time period to the search interface to support fetching remote results snippets for unauthenticated users search.public.max.remoteSnippet.access.3s = 1 search.public.max.remoteSnippet.access.1mn = 4 search.public.max.remoteSnippet.access.10mn = 20 @@ -1170,14 +1166,6 @@ publicTopmenu = true # set to true to include a login link/status in the search page public top navigation bar search.publicTopNavBar.login = true -# Wiki access rights -# the built-in wiki system allows by default only that the administrator is allowed to make changes -# this can be changed. There are three options: -# admin - only the admin has write right -# all - everybody has write right -# user - the admin and every user registered in the user db has write right -WikiAccess = admin - # Search Profiles # we will support different search profiles # If this profile setting is empty, a hard-coded profile is used to initialise the values @@ -1226,7 +1214,6 @@ thumbnailProgram = # settings for the peer's local robots.txt # the following restrictions are possible (comma-separated): # - all : entire domain is disallowed -# - blog : the blog-pages # - bookmarks : the bookmark-page # - dirs : all directories in htroot (standard setting, as there is no usable information in) # - fileshare : all files in the peer's file share (DATA/HTDOCS/share) @@ -1236,15 +1223,11 @@ thumbnailProgram = # - network : the network-pages # - status : peer's status page # - surftips : the surftips-page -# - wiki : the wiki-page httpd.robots.txt = locked,dirs,bookmarks,network,news,status,profile # maximum number of robots.txt loading threads robots.txt.MaxActiveThreads = 40 -# class to use for parsing wikicode -wikiParser.class = de.anomic.data.wikiCode - # settings for automatic deletion of old entries in passive and potential seed-db # time means max time (in days) a peer may not have been seen before it is deleted routing.deleteOldSeeds.permission = true diff --git a/help/Blog.md b/help/Blog.md deleted file mode 100644 index 406a01d9a..000000000 --- a/help/Blog.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -page: htroot/Blog.html -help: help/Blog.md -title: Blog -package: content-apps -access: public -kind: ui-page -backend_java: source/net/yacy/htroot/Blog.java ---- - -# Blog - -## Purpose - -Blog provides a local publication area inside YaCy. - -Use it for peer-local announcements or notes when that feature is enabled. - -## What You Can Do Here - -- Blog provides a local publication area inside YaCy. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `author` | Author. | Text value; use the page label and surrounding context to choose the exact content. | -| `subject` | Subject. | Text value; use the page label and surrounding context to choose the exact content. | -| `content` | Text. | Text value; use the page label and surrounding context to choose the exact content. | -| `commentMode` | Comments. Options: `0` = deactivated, `1` = activated, `2` = moderated. | `0` = deactivated, `1` = activated, `2` = moderated | -| `submit` | Submits the form. | `Submit` | -| `preview` | Author. | `Preview` | -| `discard` | Author. | `Discard` | -| `xmlfile` | Author. | Text value; use the page label and surrounding context to choose the exact content. | -| `importxml` | Author. | `Import` | - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -The page is normally public or read-only, unless the peer is configured to require authentication for all pages. - -Backend checks: user authentication. - -## Automation And API - -Page backend: `source/net/yacy/htroot/Blog.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/Blog.html` | `POST` | public or page-dependent | `source/net/yacy/htroot/Blog.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `author` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `subject` | Subject. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `content` | Text. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `commentMode` | Comments. Options: `0` = deactivated, `1` = activated, `2` = moderated. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `submit` | Submit action for the form. Its meaning depends on the surrounding fields. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `preview` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `discard` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `xmlfile` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `importxml` | Author. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `delete` | Deletes the selected URL, path, or index scope. Confirm the scope first. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `page` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: - -```http -POST /Blog.html -Content-Type: application/x-www-form-urlencoded - -author=...&subject=...&content=...&commentMode=...&submit=... -``` - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `BlogComments.html` -- `WikiHelp.html` diff --git a/help/BlogComments.md b/help/BlogComments.md deleted file mode 100644 index 474b03327..000000000 --- a/help/BlogComments.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -page: htroot/BlogComments.html -help: help/BlogComments.md -title: Blog -package: content-apps -access: public -kind: ui-page -backend_java: source/net/yacy/htroot/BlogComments.java ---- - -# Blog - -## Purpose - -Blog Comments stores discussion around local blog posts. - -Use it to review or moderate comments attached to peer-local posts. - -## What You Can Do Here - -- Blog Comments stores discussion around local blog posts. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `author` | Author. | Text value; use the page label and surrounding context to choose the exact content. | -| `subject` | Subject. | Text value; use the page label and surrounding context to choose the exact content. | -| `content` | Text. | Text value; use the page label and surrounding context to choose the exact content. | -| `submit` | Submits the form. | `Submit` | -| `preview` | Author. | `Preview` | -| `view` | Author. | `Discard` | - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -The page is normally public or read-only, unless the peer is configured to require authentication for all pages. - -Backend checks: user authentication. - -## Automation And API - -Page backend: `source/net/yacy/htroot/BlogComments.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/BlogComments.html` | `POST` | public or page-dependent | `source/net/yacy/htroot/BlogComments.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `author` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `subject` | Subject. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `content` | Text. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `submit` | Submit action for the form. Its meaning depends on the surrounding fields. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `preview` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `view` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `allow` | Enables the named feature. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `delete` | Deletes the selected URL, path, or index scope. Confirm the scope first. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `page` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: - -```http -POST /BlogComments.html -Content-Type: application/x-www-form-urlencoded - -author=...&subject=...&content=...&submit=...&preview=... -``` - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `Blog.html` -- `WikiHelp.html` diff --git a/help/Bookmarks.md b/help/Bookmarks.md index d79f6ead6..25ab2818e 100644 --- a/help/Bookmarks.md +++ b/help/Bookmarks.md @@ -12,19 +12,19 @@ backend_java: source/net/yacy/htroot/Bookmarks.java ## Purpose -Bookmarks stores useful URLs known to the peer or user. +Bookmarks stores useful URLs known to the peer. Use it to save, organize, and later re-use important search or crawl targets. ## What You Can Do Here -- Bookmarks stores useful URLs known to the peer or user. +- Bookmarks stores useful URLs known to the peer. - Edit or inspect the specific content object shown on the page. - Check whether the result is local-only, user-visible, or peer-visible before publishing. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | @@ -52,7 +52,7 @@ Edit content deliberately and check the rendered page after saving. For shared o The page is normally public or read-only, unless the peer is configured to require authentication for all pages. -Backend checks: user authentication. +Public bookmarks can be read without authentication. Private bookmarks, imports, edits, and other write actions require built-in administrator authority: HTTP BASIC/DIGEST, or the configured localhost-without-account access. ## Automation And API @@ -85,7 +85,6 @@ The table explains values that an agent or script must set deliberately. Paramet | `startautosearch` | URL. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `agentName` | Crawler user-agent profile used for outgoing HTTP requests. Choose a profile that matches the desired identity and politeness behavior. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `delete` | Deletes the selected URL, path, or index scope. Confirm the scope first. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `user` | User or account value. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | Example request shape: diff --git a/help/ConfigAccountList_p.md b/help/ConfigAccountList_p.md deleted file mode 100644 index 42e309842..000000000 --- a/help/ConfigAccountList_p.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -page: htroot/ConfigAccountList_p.html -help: help/ConfigAccountList_p.md -title: User Accounts -package: configuration-administration -access: admin -kind: admin-page -backend_java: source/net/yacy/htroot/ConfigAccountList_p.java ---- - -# User Accounts - -## Purpose - -User Accounts lists configured accounts and their role-related state. - -Use it to audit who can sign in before changing permissions or exposing the peer. - -## What You Can Do Here - -- User Accounts lists configured accounts and their role-related state. -- Read the current value before changing it. -- Verify the effect on the public page, status page, or related administration page. - -## Page Architecture - -Configuration pages usually contain persistent settings. A visible form writes values into YaCy configuration, while the backend may reload subsystems such as language files, network listeners, cache handling, or search presentation. - -## Correct Use - -Read the current value before changing it. Configuration changes often persist beyond the current request and may affect later crawling, search, network contact, authentication, or resource use. Change one operational idea at a time and verify the result. - -## Access And Safety - -Administrator access is required. YaCy protects `_p` pages as administration pages. - -## Automation And API - -Page backend: `source/net/yacy/htroot/ConfigAccountList_p.java`. - -No request parameters are needed for normal use of this page. - -## What To Expect - -A successful change is visible as a saved value, a confirmation, or changed behavior on a related page. Some settings take effect immediately; others require reconnecting, reloading translations, restarting services, or watching the status page. - -## Related Pages - -- `ConfigUser_p.html` diff --git a/help/ConfigAccounts_p.md b/help/ConfigAccounts_p.md index 8ed1897bc..296af2854 100644 --- a/help/ConfigAccounts_p.md +++ b/help/ConfigAccounts_p.md @@ -1,62 +1,60 @@ --- page: htroot/ConfigAccounts_p.html help: help/ConfigAccounts_p.md -title: User Accounts +title: Admin Account package: configuration-administration access: admin kind: admin-page backend_java: source/net/yacy/htroot/ConfigAccounts_p.java --- -# User Accounts +# Admin Account ## Purpose -User Accounts defines administrator and user credentials. +This page configures YaCy's single built-in administrator account and page-protection policy. Use it early, especially before the peer is reachable from another machine. ## What You Can Do Here -- User Accounts defines administrator and user credentials. +- Configure the built-in administrator username and password used by HTTP BASIC or DIGEST authentication. +- Choose whether trusted localhost requests are granted administrator access without credentials. +- Choose whether authentication protects only `_p` pages or all applicable pages. - Read the current value before changing it. - Verify the effect on the public page, status page, or related administration page. ## Page Architecture -Configuration pages usually contain persistent settings. A visible form writes values into YaCy configuration, while the backend may reload subsystems such as language files, network listeners, cache handling, or search presentation. +The page separates administrator credentials from access rules. The two access-rule switches share one form and are saved automatically whenever either switch changes. Each switch selects its own existing backend action, so changing one rule does not rewrite the other. | Control | Meaning | Values or examples | | --- | --- | --- | -| `access` | Access from localhost without account / Access only with qualified account. Options: `localhost` = Access from localhost without account, `account` = Access only with qualified account. | `localhost` = Access from localhost without account, `account` = Access only with qualified account | -| `adminuser` | Peer User. | Text value; use the page label and surrounding context to choose the exact content. | -| `adminpw1` | New Peer Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `adminpw2` | Repeat Peer Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `setAdmin` | Peer User. | `Define Administrator` | -| `adminAccountAllPages` | Access from localhost without account. | Access from localhost without account | -| `setAccess` | Access from localhost without account. | `Set Access Rules` | -| `user` | Select user. | `newuser` = New user | -| `change_user` | Select user. | `Edit User` | -| `delete_user` | Select user. | `Delete User` | -| `username` | Username. | Checkbox/boolean; present usually means enabled. | -| `password` | Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `password2` | Repeat password. | Text value; use the page label and surrounding context to choose the exact content. | -| `firstname` | First name. | Text value; use the page label and surrounding context to choose the exact content. | -| `lastname` | Last name. | Text value; use the page label and surrounding context to choose the exact content. | -| `address` | Address. | Text value; use the page label and surrounding context to choose the exact content. | -| `#[name]#` | right. | right | -| `timelimit` | Timelimit. | Text value; use the page label and surrounding context to choose the exact content. | -| `timeused` | Time used. | Text value; use the page label and surrounding context to choose the exact content. | -| `change` | Username. | `Save User` | +| `adminuser` | Username of the built-in administrator. | Non-empty text, up to 32 characters. | +| `adminpw1` | New administrator password. | Non-empty password. | +| `adminpw2` | Confirmation of the new administrator password. | Must equal `adminpw1`. | +| `setAdmin` | Saves only the administrator username and password. | Submit action. | +| `adminAccountForLocalhost` | Grants administrator authority to eligible localhost requests without authentication. | Checkbox: present = on, absent = off. Default: on. | +| `setLocalhostAccess` | Saves only the localhost-access policy. | Submitted automatically when `adminAccountForLocalhost` changes. | +| `adminAccountAllPages` | Extends administrator authorization from `_p` administration pages to all applicable pages. | Checkbox: present = on, absent = off. Default: off. | +| `setAccess` | Saves only the page-protection policy. | Submitted automatically when `adminAccountAllPages` changes. | ## Correct Use -Read the current value before changing it. Configuration changes often persist beyond the current request and may affect later crawling, search, network contact, authentication, or resource use. Change one operational idea at a time and verify the result. +Replace the default `admin` / `yacy` credentials even when localhost access remains enabled. The warning is displayed directly above the credential form while the default password hash is active. + +If the administrator password must be reset from the console, run `bin/passwd.sh` from the YaCy installation directory. With no password argument, the script prompts for the new password without echoing it. It supports both a running peer, through the account configuration endpoint, and a stopped peer, through the local configuration file. + +Turning off localhost access means that local browser requests also need the configured administrator credentials. Turning on protection for all pages broadens the authentication requirement. Changing either switch automatically reloads the page after saving that rule; it does not change the other rule or the administrator credentials. ## Access And Safety Administrator access is required. YaCy protects `_p` pages as administration pages. +There are no secondary YaCy users or per-feature roles. Privileged actions use the built-in administrator authority only. When localhost access without an account is enabled, eligible local requests receive that same authority without credentials. + +Legacy `DATA/SETTINGS/user.heap` files are no longer loaded or modified. Keep or remove such a file according to your own backup policy. + Protected related endpoint(s): `/ConfigAccounts_p.html`. Backend checks: transaction token for protected POST, transaction token issued for forms. @@ -75,41 +73,38 @@ The table explains values that an agent or script must set deliberately. Paramet | Parameter | Meaning and valid values | Care | | --- | --- | --- | -| `access` | Access from localhost without account / Access only with qualified account. Options: `localhost` = Access from localhost without account, `account` = Access only with qualified account. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `adminuser` | Peer User. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `adminpw1` | New Peer Password. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `adminpw2` | Repeat Peer Password. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `setAdmin` | Peer User. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `adminAccountAllPages` | Access from localhost without account. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | -| `setAccess` | Access from localhost without account. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `user` | Select user. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `change_user` | Select user. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `delete_user` | Select user. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `username` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `password` | Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `password2` | Repeat password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `firstname` | First name. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `lastname` | Last name. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `address` | Address. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `#[name]#` | right. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `timelimit` | Timelimit. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `timeused` | Time used. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `change` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `current_user` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: +| `adminuser` | Non-empty built-in administrator username. | Send only with `setAdmin`. Changing it invalidates the previous username. | +| `adminpw1` | Non-empty new administrator password. | Send only with `setAdmin`; YaCy stores its DIGEST-compatible hash, not the clear text. | +| `adminpw2` | Repetition of `adminpw1`. | Must match exactly. | +| `setAdmin` | Selects the credential-change action. | Does not change either access-policy switch. | +| `adminAccountForLocalhost` | Enables unauthenticated administrator access for eligible localhost requests when present. | Omit the checkbox to disable it; send only with `setLocalhostAccess`. | +| `setLocalhostAccess` | Selects the localhost-policy action. | Does not change credentials or page-protection scope. | +| `adminAccountAllPages` | Enables protection of all applicable pages when present. | Omit the checkbox to disable it; send only with `setAccess`. `_p` administration pages remain protected in both states. | +| `setAccess` | Selects the page-protection action. | Does not change credentials or localhost policy. | + +Example request shapes (each also requires a valid `transactionToken`): ```http POST /ConfigAccounts_p.html Content-Type: application/x-www-form-urlencoded -access=...&adminuser=...&adminpw1=...&adminpw2=...&setAdmin=... +transactionToken=...&adminuser=admin&adminpw1=new-secret&adminpw2=new-secret&setAdmin= + +POST /ConfigAccounts_p.html +Content-Type: application/x-www-form-urlencoded + +transactionToken=...&adminAccountForLocalhost=on&setLocalhostAccess=1 + +POST /ConfigAccounts_p.html +Content-Type: application/x-www-form-urlencoded + +transactionToken=...&adminAccountAllPages=on&setAccess=1 ``` ## What To Expect -A successful change is visible as a saved value, a confirmation, or changed behavior on a related page. Some settings take effect immediately; others require reconnecting, reloading translations, restarting services, or watching the status page. +Access-rule changes take effect immediately when a switch is changed. After changing the username or password, the HTTP server's cached administrator identity is reset. A browser may continue sending cached BASIC credentials until its authentication cache is cleared or the browser session is closed. ## Related Pages -- `ConfigAccountList_p.html` +- `Status.html` diff --git a/help/ConfigLanguage_p.md b/help/ConfigLanguage_p.md index 21d065e33..89081ad87 100644 --- a/help/ConfigLanguage_p.md +++ b/help/ConfigLanguage_p.md @@ -73,7 +73,3 @@ GET /ConfigLanguage_p.html?language=...&url=...&use_button=...&delete=...&use_la ## What To Expect A successful change is visible as a saved value, a confirmation, or changed behavior on a related page. Some settings take effect immediately; others require reconnecting, reloading translations, restarting services, or watching the status page. - -## Related Pages - -- `Translator_p.html` diff --git a/help/ConfigProfile_p.md b/help/ConfigProfile_p.md index 5a06e1d00..300f7399f 100644 --- a/help/ConfigProfile_p.md +++ b/help/ConfigProfile_p.md @@ -90,4 +90,4 @@ A successful change is visible as a saved value, a confirmation, or changed beha - `ViewProfile.html` - `Supporter.html` -- `WikiHelp.html` +- `WikiCodeHelp.html` diff --git a/help/ConfigRobotsTxt_p.md b/help/ConfigRobotsTxt_p.md index d976fea55..04678f39b 100644 --- a/help/ConfigRobotsTxt_p.md +++ b/help/ConfigRobotsTxt_p.md @@ -33,8 +33,6 @@ Configuration pages usually contain persistent settings. A visible form writes v | `network` | Network pages. | Network pages | | `surftips` | Surftips. | Surftips | | `news` | News pages. | News pages | -| `blog` | Blog. | Blog | -| `wiki` | Wiki. | Wiki | | `bookmarks` | Public bookmarks. | Public bookmarks | | `homepage` | Home Page. | Home Page | | `fileshare` | File Share. | File Share | @@ -70,8 +68,6 @@ The table explains values that an agent or script must set deliberately. Paramet | `network` | Network pages. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `surftips` | Surftips. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `news` | News pages. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `blog` | Blog. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `wiki` | Wiki. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `bookmarks` | Public bookmarks. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `homepage` | Home Page. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `fileshare` | File Share. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | diff --git a/help/ConfigUser_p.md b/help/ConfigUser_p.md deleted file mode 100644 index 877c63d7c..000000000 --- a/help/ConfigUser_p.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -page: htroot/ConfigUser_p.html -help: help/ConfigUser_p.md -title: User Editor -package: configuration-administration -access: admin -kind: admin-page -backend_java: source/net/yacy/htroot/ConfigUser_p.java ---- - -# User Editor - -## Purpose - -User Editor changes one account. - -Use it to create or repair a named user without changing unrelated access settings. - -## What You Can Do Here - -- User Editor changes one account. -- Read the current value before changing it. -- Verify the effect on the public page, status page, or related administration page. - -## Page Architecture - -Configuration pages usually contain persistent settings. A visible form writes values into YaCy configuration, while the backend may reload subsystems such as language files, network listeners, cache handling, or search presentation. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `username` | Username. | Checkbox/boolean; present usually means enabled. | -| `password` | Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `password2` | Repeat password. | Text value; use the page label and surrounding context to choose the exact content. | -| `firstname` | First name. | Text value; use the page label and surrounding context to choose the exact content. | -| `lastname` | Last name. | Text value; use the page label and surrounding context to choose the exact content. | -| `address` | Address. | Text value; use the page label and surrounding context to choose the exact content. | -| `#[name]#` | right. | right | -| `timelimit` | Timelimit. | Text value; use the page label and surrounding context to choose the exact content. | -| `timeused` | Time used. | Text value; use the page label and surrounding context to choose the exact content. | -| `change` | Username. | `Save User` | -| `delete` | Deletes the selected object or scope. Use only with explicit confirmation. | `Delete User` | -| `cancel` | Username. | `ConfigAccountList_p.html` | - -## Correct Use - -Read the current value before changing it. Configuration changes often persist beyond the current request and may affect later crawling, search, network contact, authentication, or resource use. Change one operational idea at a time and verify the result. - -## Access And Safety - -Administrator access is required. YaCy protects `_p` pages as administration pages. - -Protected related endpoint(s): `/ConfigUser_p.html`. - -## Automation And API - -Page backend: `source/net/yacy/htroot/ConfigUser_p.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/ConfigUser_p.html` | `POST` | admin | `source/net/yacy/htroot/ConfigUser_p.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `username` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `password` | Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `password2` | Repeat password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `firstname` | First name. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `lastname` | Last name. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `address` | Address. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `#[name]#` | right. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `timelimit` | Timelimit. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `timeused` | Time used. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `change` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `delete` | Deletes the selected URL, path, or index scope. Confirm the scope first. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `cancel` | Username. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `user` | User or account value. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: - -```http -POST /ConfigUser_p.html -Content-Type: application/x-www-form-urlencoded - -username=...&password=...&password2=...&firstname=...&lastname=... -``` - -## What To Expect - -A successful change is visible as a saved value, a confirmation, or changed behavior on a related page. Some settings take effect immediately; others require reconnecting, reloading translations, restarting services, or watching the status page. - -## Related Pages - -- Related configuration work is usually reached from `ConfigBasic.html`, `Settings_p.html`, or the adjacent configuration page in the administration menu. diff --git a/help/DictionaryLoader_p.md b/help/DictionaryLoader_p.md index c2b6a6a81..a9551dd4d 100644 --- a/help/DictionaryLoader_p.md +++ b/help/DictionaryLoader_p.md @@ -24,7 +24,7 @@ Use it when vocabulary data should support search, classification, or local know ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | diff --git a/help/MessageSend_p.md b/help/MessageSend_p.md index fd15ab6e0..adb3e790f 100644 --- a/help/MessageSend_p.md +++ b/help/MessageSend_p.md @@ -24,7 +24,7 @@ Use it to contact another peer or user when messaging is enabled. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | @@ -80,5 +80,5 @@ Expect stored or rendered content: a message, page, table row, bookmark, profile ## Related Pages -- `WikiHelp.html` +- `WikiCodeHelp.html` - `Network.html` diff --git a/help/Messages_p.md b/help/Messages_p.md index 4f59603d8..f8447137d 100644 --- a/help/Messages_p.md +++ b/help/Messages_p.md @@ -24,7 +24,7 @@ Use it to read, manage, or inspect peer communication. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | diff --git a/help/Network.md b/help/Network.md index 9d70e2498..b52e2c7e1 100644 --- a/help/Network.md +++ b/help/Network.md @@ -14,6 +14,8 @@ backend_java: source/net/yacy/htroot/Network.java YaCy Search Network shows known peers and network state. +Peer rows no longer expose links to the retired peer-local Blog or Wiki applications, and their former update announcements are not displayed. + Use it to understand whether this peer is isolated, connected, senior, junior, or participating normally. ## What You Can Do Here diff --git a/help/News.md b/help/News.md index 9153ae8e3..9d8e63a7d 100644 --- a/help/News.md +++ b/help/News.md @@ -14,17 +14,19 @@ backend_java: source/net/yacy/htroot/News.java News Monitor shows YaCy network news and peer events. +Blog and Wiki categories are retired and no longer rendered as linked news entries. + Use it to understand what other peers announced or what the local peer received. ## What You Can Do Here - News Monitor shows YaCy network news and peer events. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. +- Inspect incoming, processed, outgoing, and published news queues. +- Process received records, delete archived records, or stop selected outgoing publications. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +The page renders records from the four peer-news queues. Each record includes its originator, category, timestamps, distribution count, and attributes. | Control | Meaning | Values or examples | | --- | --- | --- | @@ -33,7 +35,7 @@ Content application pages store and render peer-local objects such as bookmarks, ## Correct Use -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. +Select only the records intended for processing or deletion. Stopping an outgoing publication prevents further distribution but does not retract copies already received by other peers. ## Access And Safety @@ -71,8 +73,4 @@ deletespecific=...&deleteall=...&del_#[id]#=...&page=... ## What To Expect -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `Translator_p.html` +After an action, reload the selected queue and confirm that the intended records moved, disappeared, or stopped publishing. diff --git a/help/SettingsAck_p.md b/help/SettingsAck_p.md index 3b5134447..20d9224fa 100644 --- a/help/SettingsAck_p.md +++ b/help/SettingsAck_p.md @@ -58,7 +58,7 @@ The table explains values that an agent or script must set deliberately. Paramet | `fileHost` | Host or domain scope. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `msgForwardingEnabled` | Enables the named feature. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | | `port` | HTTP port where YaCy listens. Values below 1024 are ignored by this form; changing the port triggers reconnect/redirect behavior. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `proxyaccount` | User or account value. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | +| `proxyaccess` | Saves the proxy client IP-number filter. | Changes proxy access scope; verify the filter before submitting. | | `proxyfilter` | Filter expression. It decides which records are included, excluded, displayed, exported, or processed on this page. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | | `remoteProxyHost` | Host or domain scope. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `remoteProxyUser` | User or account value. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | @@ -68,7 +68,6 @@ The table explains values that an agent or script must set deliberately. Paramet | `urlproxydomains` | Host or domain scope. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | | `urlproxyenabled` | Enables the named feature. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | | `urlproxyfilter` | Filter expression. It decides which records are included, excluded, displayed, exported, or processed on this page. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | -| `use_proxyaccounts` | User or account value. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | Example request shape: diff --git a/help/Surftips.md b/help/Surftips.md index 98e5da4c0..5e7d2cb3d 100644 --- a/help/Surftips.md +++ b/help/Surftips.md @@ -14,6 +14,8 @@ backend_java: source/net/yacy/htroot/Surftips.java Surftips displays shared or suggested links. +Retired Blog and Wiki peer announcements are no longer converted into surftips. + Use it to browse peer-provided recommendations when the feature is enabled. ## What You Can Do Here diff --git a/help/Tables_p.md b/help/Tables_p.md index e3eac4977..8227b4073 100644 --- a/help/Tables_p.md +++ b/help/Tables_p.md @@ -24,7 +24,7 @@ Use it to inspect structured records saved by YaCy features or APIs. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | @@ -76,4 +76,4 @@ Expect stored or rendered content: a message, page, table row, bookmark, profile ## Related Pages -- Related content work usually continues on the matching wiki, blog, bookmark, message, table, translation, vocabulary, or file page. +- Related content work usually continues on the matching bookmark, message, table, translation, vocabulary, or file page. diff --git a/help/TransNews_p.md b/help/TransNews_p.md deleted file mode 100644 index d300415a1..000000000 --- a/help/TransNews_p.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -page: htroot/TransNews_p.html -help: help/TransNews_p.md -title: Translation News -package: content-apps -access: admin -kind: admin-page -backend_java: source/net/yacy/htroot/TransNews_p.java ---- - -# Translation News - -## Purpose - -Translation News shows translation-related changes and notices. - -Use it when maintaining or reviewing interface translations. - -## What You Can Do Here - -- Translation News shows translation-related changes and notices. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -| Control | Meaning | Values or examples | -| --- | --- | --- | - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -Administrator access is required. YaCy protects `_p` pages as administration pages. - -Protected related endpoint(s): `/TransNews_p.html`. - -## Automation And API - -Page backend: `source/net/yacy/htroot/TransNews_p.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/TransNews_p.html` | `POST` | admin | `source/net/yacy/htroot/TransNews_p.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. Low-level generated parameters are omitted when they are only meaningful inside the rendered YaCy form. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | - -Example request shape: - -```http -POST /TransNews_p.html -Content-Type: application/x-www-form-urlencoded - -publishtranslation=...&filename=...&source=...&target=...&voteNegative=... -``` - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `News.html` -- `Translator_p.html` -- `ConfigBasic.html` diff --git a/help/Translator_p.md b/help/Translator_p.md deleted file mode 100644 index b1ca2aa89..000000000 --- a/help/Translator_p.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -page: htroot/Translator_p.html -help: help/Translator_p.md -title: Translation Editor -package: content-apps -access: admin -kind: admin-page -backend_java: source/net/yacy/htroot/Translator_p.java ---- - -# Translation Editor - -## Purpose - -Translation Editor edits YaCy interface translations. - -Use it to improve localized text that users see in the web interface. - -## What You Can Do Here - -- Translation Editor edits YaCy interface translations. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `sourcefile` | UI Translation. | Text value; use the page label and surrounding context to choose the exact content. | -| `filteruntranslated` | filter untranslated. | `true` = filter untranslated | -| `editapproved` | UI Translation. | Text value; use the page label and surrounding context to choose the exact content. | -| `approve` | UI Translation. | Text value; use the page label and surrounding context to choose the exact content. | -| `savetranslationlist` | UI Translation. | `Save translation` | - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -Administrator access is required. YaCy protects `_p` pages as administration pages. - -Protected related endpoint(s): `/Translator_p.html`. - -Backend checks: transaction token for protected POST, transaction token issued for forms. - -## Automation And API - -Page backend: `source/net/yacy/htroot/Translator_p.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/Translator_p.html` | `POST` | admin | `source/net/yacy/htroot/Translator_p.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. Low-level generated parameters are omitted when they are only meaningful inside the rendered YaCy form. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `sourcefile` | UI Translation. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `filteruntranslated` | filter untranslated. | Controls the scope or format of the result. Prefer the narrowest value that answers the request. | -| `editapproved` | UI Translation. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `approve` | UI Translation. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `savetranslationlist` | UI Translation. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | - -Example request shape: - -```http -POST /Translator_p.html -Content-Type: application/x-www-form-urlencoded - -sourcefile=...&filteruntranslated=...&targettxt#[tokenid]#=...&editapproved=...&approve=... -``` - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `ConfigBasic.html` -- `TransNews_p.html` diff --git a/help/User.md b/help/User.md deleted file mode 100644 index d6148d18b..000000000 --- a/help/User.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -page: htroot/User.html -help: help/User.md -title: User Page -package: configuration-administration -access: public -kind: ui-page -backend_java: source/net/yacy/htroot/User.java ---- - -# User Page - -## Purpose - -User Page is the signed-in user's own view of account-related state. - -Use it to inspect the current session and user-facing account information. - -## What You Can Do Here - -- User Page is the signed-in user's own view of account-related state. -- Read the current value before changing it. -- Verify the effect on the public page, status page, or related administration page. - -## Page Architecture - -Configuration pages usually contain persistent settings. A visible form writes values into YaCy configuration, while the backend may reload subsystems such as language files, network listeners, cache handling, or search presentation. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `username` | old Password. | Checkbox/boolean; present usually means enabled. | -| `password` | old Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `logout` | old Password. | `logout` | -| `oldpass` | old Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `newpass` | new Password. | Text value; use the page label and surrounding context to choose the exact content. | -| `newpass2` | new Password(repetition). | Text value; use the page label and surrounding context to choose the exact content. | -| `changepass` | old Password. | `Change` | - -## Correct Use - -Read the current value before changing it. Configuration changes often persist beyond the current request and may affect later crawling, search, network contact, authentication, or resource use. Change one operational idea at a time and verify the result. - -## Access And Safety - -The page is normally public or read-only, unless the peer is configured to require authentication for all pages. - -Backend checks: user authentication. - -## Automation And API - -Page backend: `source/net/yacy/htroot/User.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/User.html` | `POST` | public or page-dependent | `source/net/yacy/htroot/User.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `username` | old Password. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `password` | old Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `logout` | old Password. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `oldpass` | old Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `newpass` | new Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `newpass2` | new Password(repetition). | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `changepass` | old Password. | Can remove data, stop work, expose access, or make a broad operational change. Use only with explicit confirmation and an exact target. | -| `returnto` | old Password. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: - -```http -POST /User.html -Content-Type: application/x-www-form-urlencoded - -username=...&password=...&logout=...&oldpass=...&newpass=... -``` - -## What To Expect - -A successful change is visible as a saved value, a confirmation, or changed behavior on a related page. Some settings take effect immediately; others require reconnecting, reloading translations, restarting services, or watching the status page. - -## Related Pages - -- Related configuration work is usually reached from `ConfigBasic.html`, `Settings_p.html`, or the adjacent configuration page in the administration menu. diff --git a/help/VFS.md b/help/VFS.md index cfab89840..3470018c3 100644 --- a/help/VFS.md +++ b/help/VFS.md @@ -24,7 +24,7 @@ Use it to inspect or manage stored file-like content. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. ## Correct Use @@ -46,4 +46,4 @@ Expect stored or rendered content: a message, page, table row, bookmark, profile ## Related Pages -- Related content work usually continues on the matching wiki, blog, bookmark, message, table, translation, vocabulary, or file page. +- Related content work usually continues on the matching bookmark, message, table, translation, vocabulary, or file page. diff --git a/help/ViewProfile.md b/help/ViewProfile.md index de20e0097..2d30489e8 100644 --- a/help/ViewProfile.md +++ b/help/ViewProfile.md @@ -24,7 +24,7 @@ Use it to understand who operates a peer and what information it publishes. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. ## Correct Use diff --git a/help/Vocabulary_p.md b/help/Vocabulary_p.md index 795253ada..801360856 100644 --- a/help/Vocabulary_p.md +++ b/help/Vocabulary_p.md @@ -24,7 +24,7 @@ Use it to keep controlled terms that can support structured indexing or search. ## Page Architecture -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. +Content application pages store and render peer-local objects such as bookmarks, messages, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. | Control | Meaning | Values or examples | | --- | --- | --- | @@ -124,4 +124,4 @@ Expect stored or rendered content: a message, page, table row, bookmark, profile ## Related Pages -- Related content work usually continues on the matching wiki, blog, bookmark, message, table, translation, vocabulary, or file page. +- Related content work usually continues on the matching bookmark, message, table, translation, vocabulary, or file page. diff --git a/help/Wiki.md b/help/Wiki.md deleted file mode 100644 index 16468bdce..000000000 --- a/help/Wiki.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -page: htroot/Wiki.html -help: help/Wiki.md -title: Wiki -package: content-apps -access: public -kind: ui-page -backend_java: source/net/yacy/htroot/Wiki.java ---- - -# Wiki - -## Purpose - -Wiki provides editable local documentation pages. - -Use it for notes and knowledge that should live inside the YaCy peer. - -## What You Can Do Here - -- Wiki provides editable local documentation pages. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -| Control | Meaning | Values or examples | -| --- | --- | --- | -| `access` | Grant Write Access to. | `all`, `admin` | -| `author` | Author. | Text value; use the page label and surrounding context to choose the exact content. | -| `content` | Text. | Text value; use the page label and surrounding context to choose the exact content. | -| `submit` | Submits the form. | `Submit` | -| `preview` | Author. | `Preview` | -| `view` | Author. | `Discard` | -| `old` | Compare version from. | Text value; use the page label and surrounding context to choose the exact content. | -| `viewold` | Compare version from. | `Show` | -| `new` | with version from. | Text value; use the page label and surrounding context to choose the exact content. | -| `compare` | Compare version from. | `Compare` | - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -The page is normally public or read-only, unless the peer is configured to require authentication for all pages. - -Backend checks: user authentication. - -## Automation And API - -Page backend: `source/net/yacy/htroot/Wiki.java`. - -| Endpoint | Method | Access | Backend | -| --- | --- | --- | --- | -| `/Wiki.html` | `POST` | public or page-dependent | `source/net/yacy/htroot/Wiki.java` | - -### Parameter Guide - -The table explains values that an agent or script must set deliberately. Parameters not relevant to a task should be omitted or left at the page default. - -| Parameter | Meaning and valid values | Care | -| --- | --- | --- | -| `access` | Grant Write Access to. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `author` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `content` | Text. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `submit` | Submit action for the form. Its meaning depends on the surrounding fields. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `preview` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `view` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `old` | Compare version from. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `viewold` | Compare version from. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `new` | with version from. | Changes stored data, configuration, or a running job. Use the authenticated action flow where required and verify the result. | -| `compare` | Compare version from. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `diff` | Compare version from. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | -| `reason` | Author. | Set only when this option is part of the intended request; otherwise omit it and let YaCy use the page default. | - -Example request shape: - -```http -POST /Wiki.html -Content-Type: application/x-www-form-urlencoded - -access=...&author=...&content=...&submit=...&preview=... -``` - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- `WikiHelp.html` diff --git a/help/WikiCodeHelp.md b/help/WikiCodeHelp.md new file mode 100644 index 000000000..c0d3484a5 --- /dev/null +++ b/help/WikiCodeHelp.md @@ -0,0 +1,51 @@ +--- +page: htroot/WikiCodeHelp.html +help: help/WikiCodeHelp.md +title: WikiCode Help +package: content-apps +access: public +kind: ui-page +backend_java: source/net/yacy/htroot/WikiCodeHelp.java +--- + +# WikiCode Help + +## Purpose + +WikiCode Help documents the formatting still used by messages, profiles, and MediaWiki dump imports. + +Use it when composing content in one of those remaining WikiCode-enabled fields. + +## What You Can Do Here + +- WikiCode Help explains the remaining reusable formatting syntax. +- Compare markup examples with their rendered output. +- Return to the message or profile form where the formatted content is edited. + +## Page Architecture + +This is a read-only syntax reference. The local Wiki application and its page store have been retired. + +## Correct Use + +Use this page as a syntax reference. Editing and saving happen in the calling message or profile page, not in this help page. + +## Access And Safety + +The page is normally public or read-only, unless the peer is configured to require authentication for all pages. + +## Automation And API + +Page backend: `source/net/yacy/htroot/WikiCodeHelp.java`. + +No request parameters are needed for normal use of this page. + +## What To Expect + +Expect a static table of supported WikiCode constructs and their rendered forms. No content is stored by this page. + +## Related Pages + +- `MessageSend_p.html` +- `ConfigProfile_p.html` +- `mediawiki_p.html` diff --git a/help/WikiHelp.md b/help/WikiHelp.md deleted file mode 100644 index 46fef7305..000000000 --- a/help/WikiHelp.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -page: htroot/WikiHelp.html -help: help/WikiHelp.md -title: Wiki Help -package: content-apps -access: public -kind: ui-page -backend_java: source/net/yacy/htroot/WikiHelp.java ---- - -# Wiki Help - -## Purpose - -Wiki Help explains the local wiki feature. - -Use it before editing wiki content or explaining wiki syntax to users. - -## What You Can Do Here - -- Wiki Help explains the local wiki feature. -- Edit or inspect the specific content object shown on the page. -- Check whether the result is local-only, user-visible, or peer-visible before publishing. - -## Page Architecture - -Content application pages store and render peer-local objects such as bookmarks, messages, wiki text, tables, profiles, or translations. They combine form editing with a rendered view of the stored object. - -## Correct Use - -Edit content deliberately and check the rendered page after saving. For shared or peer-visible features, assume written content may be read by someone else unless the page clearly says otherwise. - -## Access And Safety - -The page is normally public or read-only, unless the peer is configured to require authentication for all pages. - -## Automation And API - -Page backend: `source/net/yacy/htroot/WikiHelp.java`. - -No request parameters are needed for normal use of this page. - -## What To Expect - -Expect stored or rendered content: a message, page, table row, bookmark, profile, translation, or file view. After changes, reload or revisit the object to confirm what was actually saved. - -## Related Pages - -- Related content work usually continues on the matching wiki, blog, bookmark, message, table, translation, vocabulary, or file page. diff --git a/help/index.md b/help/index.md index 0c9494ace..c56117b8f 100644 --- a/help/index.md +++ b/help/index.md @@ -48,7 +48,7 @@ The page may be visible, but the backend performs authentication checks for prot Protected related endpoint(s): `/yacysearch.html`, `/index.html`. -Backend checks: administrator authentication, user authentication. +Backend checks: built-in administrator authentication for protected search features. ## Automation And API diff --git a/help/yacysearch.md b/help/yacysearch.md index 36181f950..e3cfbf480 100644 --- a/help/yacysearch.md +++ b/help/yacysearch.md @@ -44,7 +44,7 @@ The page may be visible, but the backend performs authentication checks for prot Protected related endpoint(s): `/yacysearch.html`. -Backend checks: administrator authentication, user authentication. +Backend checks: built-in administrator authentication for protected search features and all state-changing result actions. ## Automation And API diff --git a/help/yacysearchitem.md b/help/yacysearchitem.md index ef699641e..3cd4762dd 100644 --- a/help/yacysearchitem.md +++ b/help/yacysearchitem.md @@ -36,7 +36,7 @@ The page may be visible, but the backend performs authentication checks for prot Protected related endpoint(s): `/yacysearchitem.html`. -Backend checks: administrator authentication, user authentication, viewing rights. +Backend checks: built-in administrator authentication for protected actions and full media viewing rights. ## Automation And API diff --git a/help/yacysearchtrailer.md b/help/yacysearchtrailer.md index 0d915e57e..881c1ebe3 100644 --- a/help/yacysearchtrailer.md +++ b/help/yacysearchtrailer.md @@ -42,7 +42,7 @@ The page may be visible, but the backend performs authentication checks for prot Protected related endpoint(s): `/yacysearch.html`, `/yacysearchtrailer.html`. -Backend checks: administrator authentication, user authentication. +Backend checks: built-in administrator authentication for authentication-aware search links. ## Automation And API diff --git a/htroot/Blog.html b/htroot/Blog.html deleted file mode 100644 index baae0ff90..000000000 --- a/htroot/Blog.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - YaCy '#[clientname]#': Blog - #%env/templates/metas.template%# - - - - #(display)# - #%env/templates/simpleheader.template%# - #%env/templates/submenuPublication.template%# - :: - #%env/templates/header.template%# - #%env/templates/submenuPublication.template%# - :: - #%env/templates/embeddedheader.template%# - #(/display)# - #(mode)# - - #{entries}# -
-

#[subject]#

-
#[page]#
- -
- #{/entries}# -
-

- #(preventries)# - << previous entries - :: - << previous entries - #(/preventries)# -              - #(moreentries)# - next entries >> - :: - next entries >> - #(/moreentries)# -

-
- - :: - -

Edit

-
-
-
-
-
- -
-
-
- -
-
-
- -

- You can use Yacy-Wiki Code here. -

-
-
-
- -
-
- - - - -
-
- :: - -

Preview

-

No changes have been submitted so far!

-
-

#[subject]#

-
#[page]#
- -
-
-
-
-
-
- -
-
-
- -
-
- -
-
- -

- You can use Yacy-Wiki Code here. -

-
-
-
- -
-
- - - - -
-
- :: - -

Access denied

-

To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.

- :: - -

Are you sure...

-

... that you want to delete #[subject]# by #[author]#?

-
Confirm deletion -
- - - -
-
- -
-
- :: - -

XML-Import

- #(state)# - :: -

Import was successful!

- :: -

Import failed, maybe the supplied file was no valid blog-backup?

- #(/state)# -

Please select the XML-file you want to import:

-
-
- - -
-
- #(/mode)# - #%env/templates/footer.template%# - - diff --git a/htroot/Blog.rss b/htroot/Blog.rss deleted file mode 100644 index bec8fbc64..000000000 --- a/htroot/Blog.rss +++ /dev/null @@ -1,23 +0,0 @@ - - - - <![CDATA[YaCy '#[clientname]#': Blog]]> - #[context]#/Blog.html - - #[context]#/env/grafics/YaCyLogo_60ppi.png - YaCy - #[context]#/ - - - #(mode)# #{entries}# - - <![CDATA[#[subject]#]]> - #[context]#/Blog.html?page=#[pageid]# - #[rfc822date]# - #[pageid]# - - #(commentsactive)#::#[context]#/BlogComments.html?page=#[pageid]##(/commentsactive)# - #{/entries}# #(/mode)# - - \ No newline at end of file diff --git a/htroot/Blog.xml b/htroot/Blog.xml deleted file mode 100644 index 56d758918..000000000 --- a/htroot/Blog.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - #(mode)# - #{entries}# - - #[pageid]# - #[timestamp]# - #[ip]# - - - - - #{/entries}# - #(/mode)# - \ No newline at end of file diff --git a/htroot/BlogComments.html b/htroot/BlogComments.html deleted file mode 100644 index 42b8d1e4d..000000000 --- a/htroot/BlogComments.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - YaCy '#[clientname]#': Blog - #%env/templates/metas.template%# - - - #%env/templates/header.template%# - #(mode)# - -
-

#[subject]#

-
#[page]#
- -
- -

Comments:

- #{entries}# -
-

#[subject]#

-
#[page]#
- -
- #{/entries}# -
-

- #(preventries)# - << previous entries - :: - << previous entries - #(/preventries)# -              - #(moreentries)# - next entries >> - :: - next entries >> - #(/moreentries)# -

-
- #(allow)# -
-

Comments are not allowed for this posting!

-
- :: -

Comment on this Blog

-
-
-
-
-
- -
-
-
- -
-
-
- -

- You can use Yacy-Wiki Code here. -

-
-
- - - - -
-
- #(/allow)# - :: - -
-

#[subject]#

-
#[page]#
- -
- -
-
-
-
-
- -
-
-
- -
-
-
- -

- You can use Yacy-Wiki Code here. -

-
-
- - - - - -
-
- - #(/mode)# - - #%env/templates/footer.template%# - - diff --git a/htroot/ConfigAccountList_p.html b/htroot/ConfigAccountList_p.html deleted file mode 100644 index 036a56502..000000000 --- a/htroot/ConfigAccountList_p.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - YaCy '#[clientname]#': User Accounts - #%env/templates/metas.template%# - - - - #%env/templates/header.template%# - #%env/templates/submenuUseCaseAccount.template%# -

User List

- -
User Accounts - - - - - #{userlist}# - - - - #{/userlist}# -
UserFirst nameLast nameAddressLast AccessRightsTimeTraffic
#[username]##[firstname]##[lastname]##[address]##[lastaccess]##[rights]##[time]##[traffic]#
- -
- -#%env/templates/footer.template%# - - diff --git a/htroot/ConfigAccounts_p.html b/htroot/ConfigAccounts_p.html index c16e5db50..8b70837f0 100644 --- a/htroot/ConfigAccounts_p.html +++ b/htroot/ConfigAccounts_p.html @@ -1,142 +1,83 @@ - YaCy '#[clientname]#': User Accounts + YaCy '#[clientname]#': Admin Account #%env/templates/metas.template%# #%env/templates/header.template%# #%env/templates/submenuUseCaseAccount.template%# -

User Administration

+

Admin Account

- - #(text)# - :: -

User created: #[username]#

- :: -

User changed: #[username]#

- #(/text)# #(error)# :: -

Generic error.

+

Invalid administrator settings.

::

Passwords do not match.

:: -

Username too short. Username must be >= 4 Characters.

+

Administrator username is required.

:: -

Username already used (not allowed).

+

Administrator password is required.

#(/error)# - #(changedfltpw)#:: - - #(/changedfltpw)#
Admin Account + #(changedfltpw)#:: + + #(/changedfltpw)# +

+ These credentials are used for remote administration and whenever administrative access from localhost without authentication is disabled. +

- -
- - - - - Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account. - -
- -
- - - - - This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer. -
-
-
-
-
-
-
-
-
-
-
+ +
+
+
+
+
+
+
+
+
+
+
+

+ If you need to reset the administrator password from the console, run bin/passwd.sh from the YaCy installation directory. +

+
+
Access Rules
- -
-
Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.
-
- -
-
-
+ + +
+
+
+
+
When enabled, eligible requests from the same computer receive administrator rights without sending credentials.
+
+
+
+
When disabled, administration pages whose names contain "_p" remain protected. When enabled, all applicable pages require administrator authorization.
+
+
-
User Accounts -
- -
Select user -
-
:
-
- or goto user account list -
-
 
-
- - -
-
-
-
- -
- -
Edit current user: #[username]# - - -
-
:
-
-
:
-
-
:
-
-
:
-
-
:
-
-
:
-
-
Rights:
-
#{rights}# -
- #{/rights}#
-
:
-
-
:
-
-
 
-
-
-
-
-
- #%env/templates/footer.template%# diff --git a/htroot/ConfigLanguage_p.html b/htroot/ConfigLanguage_p.html index d0cca65c6..cee5fa2ec 100644 --- a/htroot/ConfigLanguage_p.html +++ b/htroot/ConfigLanguage_p.html @@ -57,8 +57,7 @@

Make sure that you only download data from trustworthy sources. The new language file might overwrite existing data if a file of the same name exists already.

-

Simple Editor to add untranslated text

- + #(status)# ::

Unable to get URL: #[url]#

::

Error saving the language file.

diff --git a/htroot/ConfigProfile_p.html b/htroot/ConfigProfile_p.html index c08bb85f0..416a9edca 100644 --- a/htroot/ConfigProfile_p.html +++ b/htroot/ConfigProfile_p.html @@ -58,7 +58,7 @@
-

You can use Wiki Code here.

+

You can use WikiCode formatting here.

diff --git a/htroot/ConfigRobotsTxt_p.html b/htroot/ConfigRobotsTxt_p.html index 74b5e7775..06dd0d03c 100644 --- a/htroot/ConfigRobotsTxt_p.html +++ b/htroot/ConfigRobotsTxt_p.html @@ -31,10 +31,6 @@
-
-
-
-
diff --git a/htroot/ConfigUser_p.html b/htroot/ConfigUser_p.html deleted file mode 100644 index e284f984f..000000000 --- a/htroot/ConfigUser_p.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - YaCy '#[clientname]#': User Editor - #%env/templates/metas.template%# - - - #%env/templates/header.template%# - #%env/templates/submenuUseCaseAccount.template%# -

User Account Editor

- - - #(text)# - :: -

User created: #[username]#

- :: -

User changed: #[username]#

- #(/text)# - #(error)# - :: -

Generic error.

- :: -

Passwords do not match.

- :: -

Username too short. Username must be >= 4 Characters.

- :: -

Username already used (not allowed).

- #(/error)# - -
-
Edit current user: #[username]# - - -
-
:
-
-
:
-
-
:
-
-
:
-
-
:
-
-
:
-
-
Rights:
-
- #{rights}# -
- #{/rights}# -
-
:
-
-
:
-
-
 
-
- -
-
-
-
- -#%env/templates/footer.template%# - - diff --git a/htroot/MessageSend_p.html b/htroot/MessageSend_p.html index 7334f7ab8..6a8496ff5 100644 --- a/htroot/MessageSend_p.html +++ b/htroot/MessageSend_p.html @@ -38,7 +38,7 @@

- You can use Wiki Code here. + You can use WikiCode formatting here.

@@ -108,7 +108,7 @@

- You can use Wiki Code here. + You can use WikiCode formatting here.

diff --git a/htroot/Network.html b/htroot/Network.html index 1523129cb..f6dff525b 100644 --- a/htroot/Network.html +++ b/htroot/Network.html @@ -157,11 +157,7 @@ document.getElementById("apilink").setAttribute("href", "Network.xml?" + window. m  p  - w  - b  #(updatedProfile)#::Profile updated#(/updatedProfile)# - #(updatedWiki)#::Wiki updated#(/updatedWiki)# - #(updatedBlog)#::Blog updated#(/updatedBlog)# #(isCrawling)#::Crawl#(/isCrawling)# diff --git a/htroot/News.html b/htroot/News.html index d1373e0cf..3f81e278f 100644 --- a/htroot/News.html +++ b/htroot/News.html @@ -43,10 +43,6 @@ A change in the personal profile will create a news entry. You can see recently made changes of profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector. -
  • - Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list. - To publish a translation, use the integrated translation editor to add a translation and publish it afterwards. -
  • More news services will follow. diff --git a/htroot/SearchAccessRate_p.html b/htroot/SearchAccessRate_p.html index d2dff52cc..5186a6505 100644 --- a/htroot/SearchAccessRate_p.html +++ b/htroot/SearchAccessRate_p.html @@ -9,8 +9,7 @@ #%env/templates/submenuAccessTracker.template%#

    Local Search access rate limitations

    - You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right - (see the Accounts configuration page for details on users' rights). + You can configure here limitations on access rate to this peer search interface by unauthenticated users.

    Access rate limitations to this peer search interface. - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked. + When an unauthenticated user exceeds a limit, the search is blocked.

    @@ -59,7 +58,7 @@

    Access rate limitations to the peer-to-peer search mode. - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index. + When an unauthenticated user exceeds a limit, the search scope falls back to only this local peer index.

    @@ -100,7 +99,7 @@

    Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled (check the 'Remote results resorting' section in the Search Portal configuration page). - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side. + When an unauthenticated user exceeds a limit, results resorting becomes only applicable on demand, server-side.

    @@ -140,7 +139,7 @@

    Limitations on snippet loading from remote websites. - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY' + When an unauthenticated user exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'. (check the default Snippet Fetch Strategy on the Search Portal configuration page).

    @@ -195,4 +194,4 @@ #%env/templates/footer.template%# - \ No newline at end of file + diff --git a/htroot/Settings_ProxyAccess.inc b/htroot/Settings_ProxyAccess.inc index 90a630a5a..1b41cd5f9 100644 --- a/htroot/Settings_ProxyAccess.inc +++ b/htroot/Settings_ProxyAccess.inc @@ -61,18 +61,15 @@

    Server Access Restrictions

    - You can restrict the access to this proxy/server using a two-stage security barrier: + You can restrict access to this proxy/server with an IP-number filter:

    • define an access domain with a list of granted client IP-numbers or with wildcards
    • -
    • define an user account with an user:password - pair

    - This is the account that restricts access to the proxy function. - You probably don't want to share the proxy to the internet, so you should set the - IP-Number Access Domain to a pattern that corresponds to you local intranet. - The default setting should be right in most cases. If you want, you can also set a proxy account - so that every proxy user must authenticate first, but this is rather unusual. + You probably don't want to share the proxy to the internet, so you should set the + IP-Number Access Domain to a pattern that corresponds to you local intranet. + The default setting should be right in most cases.

    @@ -82,14 +79,7 @@ - - - - - +
    : - - Use Proxy Accounts -
    diff --git a/htroot/TransNews_p.html b/htroot/TransNews_p.html deleted file mode 100644 index 33531238d..000000000 --- a/htroot/TransNews_p.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - YaCy '#[clientname]#': Translation News - #%env/templates/metas.template%# - - - #%env/templates/header.template%# - #%env/templates/submenuConfig.template%# -

    Translation News for Language #[currentlang]#

    - - -

    - You can share your local addition to translations and distribute it to other peers. - The remote peer can vote on your translation and add it to its own local translation.
    - (#[transsize]# entries available)   -   You can check your outgoing messages here. - To edit or add local translations you can use Translator_p.html. -

    - - #(errmsg)#::

    Please activate a different language here

    #(/errmsg)# - #{results}# - - -
    - - - - - - - - #(existing)#:: - - - - #(/existing)# - - - - - - - -
    File:#[filename]#Originator
    English:#[source]#
    existing#[target]#
    Translation:#[target]##[peername]#
    score #[score]#  - - -    - - -   Vote on this translation. If you vote positive the translation is added to your local translation list. -
    -
    - - - #{/results}# -

    -
    -

    - - #%env/templates/footer.template%# - - diff --git a/htroot/Translator_p.html b/htroot/Translator_p.html deleted file mode 100644 index b8551ba97..000000000 --- a/htroot/Translator_p.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - YaCy '#[clientname]#': Translation Editor - #%env/templates/metas.template%# - - - - - #%env/templates/header.template%# - #%env/templates/submenuConfig.template%# -

    Translation Editor

    - -

    Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.

    -
    - -
    - - - -

    Target Language: #[targetlang]#

    #(errmsg)#::

    activate a different language here

    #(/errmsg)# - - view it - - - - - - #{textlist}# - - - - - #{/textlist}# -
    Source TextTranslated Text ( #[targetlang]# )
    - - - - #(filteruntranslated)#::#(/filteruntranslated)# -
    - - - -
    -
    -

    Check for remote translation proposals and/or share your own added translations Translation News

    - #%env/templates/footer.template%# - - diff --git a/htroot/User.html b/htroot/User.html deleted file mode 100644 index d2a5f689e..000000000 --- a/htroot/User.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - YaCy '#[clientname]#': User Page - #%env/templates/metas.template%# - - - #%env/templates/header.template%# -

    User Page

    - #(logged-in)# -

    - You are not logged in.
    -

    - - Username:
    - Password:
    - -
    -

    - :: -

    - You are currently logged in as #[username]#.
    - (Identified by #(identified-by)#IP::Username/Password::Cookie#(/identified-by)#)
    -

    - -
    - #(limit)#:: - #{percent}#red bar#{/percent}##{percent2}#green bar#{/percent2}# -
    - You have used #[timeused]# minutes of your onlinetime limit of #[timelimit]# minutes per day.
    - #(/limit)# -

    -
    - - - - - - - - - - - - - - - - -
    -
    - :: - You are currently logged in as admin.
    -
    - -
    -
    -

    (after logout you will be prompted for your password again. simply click "cancel")

    - #(/logged-in)# - - #(status)# - :: - #(password)# - Password was changed.:: - Old Password is wrong.:: - New Password and its repetition do not match.:: - New Password is empty. - #(/password)# - #(/status)# - - #%env/templates/footer.template%# - - diff --git a/htroot/Wiki.html b/htroot/Wiki.html deleted file mode 100644 index 36d22099b..000000000 --- a/htroot/Wiki.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - YaCy '#[clientname]#': Wiki - #%env/templates/metas.template%# - - - #(topmenu)# - #%env/templates/embeddedheader.template%# - :: - #%env/templates/simpleheader.template%# - #(/topmenu)# - - #(mode)# - -
    -

    YaCyWiki page: #[pagename]#

    -
    - #[page]# -
    - -
    - -
    - - #(access)#::#(/access)# -
    - :: - -

    Edit

    -
    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -

    - You can use Wiki Code here. -

    - - - - - -
    -
    - :: - -

    Preview

    -

    No changes have been submitted so far!

    -
    -

    YaCyWiki page: #[pagename]#

    -
    - #[page]# -
    - -
    -
    -
    - - -
    - -

    Edit

    - -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -

    - You can use Wiki Code here. -

    - - - - - -
    -
    - :: - -

    Index

    - - - - - - - #{pages}# - - - - - - #{/pages}# -
    SubjectChange DateLast Author
    #[subject]##[date]##[author]#
    - #(error)#::

    IO Error reading wiki database: #[message]#

    #(/error)# - - :: - -

    Versions

    - #(error)# -
    -
    Select versions of page '#[page]#' - - -
    -
    :
    -
    - - -
    -
    :
    -
    - -
    -
    -
    -
    -
    - :: -

    Error

    -

    IO Error reading wiki database: #[message]#

    - :: - #(/error)# - #(versioning)# - :: - #[diff]# - :: -

    Preview

    -

    No changes have been submitted so far!

    -
    -

    YaCyWiki page: #[pagename]#

    -
    - #[page]# -
    - -
    -
    -
    - - -
    -

    Edit

    -
    -
    -
    -
    - -
    -
    -
    - -
    -
    -

    - You can use - Wiki Code here. -

    - - - - - -
    -
    - #(/versioning)# - - #(/mode)# - -

    Changes will be published as announcement on YaCyNews

    - #%env/templates/footer.template%# - - \ No newline at end of file diff --git a/htroot/WikiCodeHelp.html b/htroot/WikiCodeHelp.html new file mode 100644 index 000000000..900491d44 --- /dev/null +++ b/htroot/WikiCodeHelp.html @@ -0,0 +1,193 @@ + + + + YaCy '#[clientname]#': WikiCode Help +#%env/templates/metas.template%# + + +
    +

    Wiki-Code

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + This table describes the WikiCode formatting supported in YaCy messages, + profiles, and MediaWiki dump imports. +
    + Code + + Description +
    + =headline1=
    + ==headline2==
    + ===headline3===
    + ====headline4====
    + =====headline5=====
    + ======headline6======
    +
    + These tags create headlines. If a page has three or more headlines, a table of content will be created automatically. Headlines of level 1 will be ignored in the table of content. +
    + ''text''
    '''text'''
    '''''text''''' +
    + These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics), + the second one emphasizes it more strongly (i.e. bold) and the last tags create a combination of both. +
    + <s>text</s> + + Text will be displayed struck through. +
    + <u>text</u> + + Text will be displayed underlined. +
    + :text
    ::text +
    + Lines will be indented. This tag is supposed to mark citations, but may as well be used for styling purposes. +
    + #point1
    ##point1.1
    ##point1.2
    #point2 +
    + These tags create a numbered list. +
    + *something
    **another thing
    ***and yet another
    *something else +
    + These tags create an unnumbered list. +
    + ;word 1:definition 1
    + ;word 2:definition 2
    + ;;word 3:definition 3
    + ;word 4:definition 4 +
    + These tags create a definition list. +
    + ---- + + This tag creates a horizontal line. +
    + [[pagename]]
    + [[pagename|description]] +
    + Internal-link markup retains its visible label but no longer creates a link, + because the local Wiki application has been retired. +
    + [url]
    + [url description] +
    + This tag creates links to external websites. +
    + [[Image:url]]
    + [[Image:url|alt text]]
    + [[Image:url|align|alt text]] +
    + This tag displays an image, it can be aligned left, right or center. +
    + [[Youtube:id]]
    + [[Vimeo:id]]
    +
    + This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.
    + i.e. use [[Youtube:QZsWG4-7Qfk]] to embed this video: https://www.youtube.com/watch?v=QZsWG4-7Qfk
    + i.e. use [[Vimeo:32200946]] to embed this video: http://vimeo.com/32200946
    +
    + {|
    + |-
    + ||row 1, col 1||row 1, col 2
    + |-
    + ||row 2, col 1||row 2, col 2
    + |} +
    + These tags create a table, whereas the first marks the beginning of the table, the second starts + a new line, the third and fourth each create a new cell in the line. The last displayed tag + closes the table. +
    + <pre> text </pre> + + A text between these tags will keep all the spaces and linebreaks in it. Great for ASCII-art and program code. +
    + text
     text
    text +
    + If a line starts with a space, it will be displayed in a non-proportional font. +
    +
    + + diff --git a/htroot/WikiHelp.html b/htroot/WikiHelp.html deleted file mode 100644 index 809024487..000000000 --- a/htroot/WikiHelp.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - YaCy '#[clientname]#': Wiki Help -#%env/templates/metas.template%# - - -
    -

    Wiki-Code

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - This table contains a short description of the tags that can be used in the Wiki and several other servlets - of YaCy. For a more detailed description visit the - YaCy Wiki. -
    - Code - - Description -
    - =headline1=
    - ==headline2==
    - ===headline3===
    - ====headline4====
    - =====headline5=====
    - ======headline6======
    -
    - These tags create headlines. If a page has three or more headlines, a table of content will be created automatically. Headlines of level 1 will be ignored in the table of content. -
    - ''text''
    '''text'''
    '''''text''''' -
    - These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics), - the second one emphasizes it more strongly (i.e. bold) and the last tags create a combination of both. -
    - <s>text</s> - - Text will be displayed struck through. -
    - <u>text</u> - - Text will be displayed underlined. -
    - :text
    ::text -
    - Lines will be indented. This tag is supposed to mark citations, but may as well be used for styling purposes. -
    - #point1
    ##point1.1
    ##point1.2
    #point2 -
    - These tags create a numbered list. -
    - *something
    **another thing
    ***and yet another
    *something else -
    - These tags create an unnumbered list. -
    - ;word 1:definition 1
    - ;word 2:definition 2
    - ;;word 3:definition 3
    - ;word 4:definition 4 -
    - These tags create a definition list. -
    - ---- - - This tag creates a horizontal line. -
    - [[pagename]]
    - [[pagename|description]] -
    - This tag creates links to other pages of the wiki. -
    - [url]
    - [url description] -
    - This tag creates links to external websites. -
    - [[Image:url]]
    - [[Image:url|alt text]]
    - [[Image:url|align|alt text]] -
    - This tag displays an image, it can be aligned left, right or center. -
    - [[Youtube:id]]
    - [[Vimeo:id]]
    -
    - This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.
    - i.e. use [[Youtube:QZsWG4-7Qfk]] to embed this video: https://www.youtube.com/watch?v=QZsWG4-7Qfk
    - i.e. use [[Vimeo:32200946]] to embed this video: http://vimeo.com/32200946
    -
    - {|
    - |-
    - ||row 1, col 1||row 1, col 2
    - |-
    - ||row 2, col 1||row 2, col 2
    - |} -
    - These tags create a table, whereas the first marks the beginning of the table, the second starts - a new line, the third and fourth each create a new cell in the line. The last displayed tag - closes the table. -
    - <pre> text </pre> - - A text between these tags will keep all the spaces and linebreaks in it. Great for ASCII-art and program code. -
    - text
     text
    text -
    - If a line starts with a space, it will be displayed in a non-proportional font. -
    -
    - - \ No newline at end of file diff --git a/htroot/env/base.css b/htroot/env/base.css index b618d9ab2..77c1a1814 100644 --- a/htroot/env/base.css +++ b/htroot/env/base.css @@ -939,24 +939,11 @@ body#QuickCrawlLink p, body#QuickCrawlLink h4 { padding:0 5%; } -body#Wiki form fieldset p.help{ - clear:both; -} /* Crawler_p.html */ body#watchCrawler table.watchCrawler {float:left; margin: 0px 5px 5px 0px;} body#watchCrawler p.watchCrawler {clear:both;} body#watchCrawler p#crawlingQueues{clear:both; margin: 20px 0px 0px 0px;} -/* BlogComments.html */ -div.BlogCommentPost { -margin: 0px 30px 0px 30px; -background-color:#eeeeee; -} - -div.BlogCommentPrevNext { -text-align: center; -} - /* other ------------------------------------*/ ul#menu { padding:0; diff --git a/htroot/env/grafics/blog.gif b/htroot/env/grafics/blog.gif deleted file mode 100644 index 618347ec9..000000000 Binary files a/htroot/env/grafics/blog.gif and /dev/null differ diff --git a/htroot/env/grafics/wiki.gif b/htroot/env/grafics/wiki.gif deleted file mode 100644 index dd1f1add4..000000000 Binary files a/htroot/env/grafics/wiki.gif and /dev/null differ diff --git a/htroot/env/templates/submenuComputation.template b/htroot/env/templates/submenuComputation.template index 99d1a75de..c0c6b7bd5 100644 --- a/htroot/env/templates/submenuComputation.template +++ b/htroot/env/templates/submenuComputation.template @@ -33,7 +33,6 @@

    Community Data

    diff --git a/htroot/env/templates/submenuConfig.template b/htroot/env/templates/submenuConfig.template index ad5451fc5..c02079f24 100644 --- a/htroot/env/templates/submenuConfig.template +++ b/htroot/env/templates/submenuConfig.template @@ -5,6 +5,5 @@
  • Performance Settings of Busy Queues
  • Viewer and administration for database tables
  • Advanced Properties
  • -
  • UI Translations
  • -
    \ No newline at end of file +
    diff --git a/htroot/env/templates/submenuPublication.template b/htroot/env/templates/submenuPublication.template deleted file mode 100644 index 41a7d5661..000000000 --- a/htroot/env/templates/submenuPublication.template +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/htroot/mediawiki_p.html b/htroot/mediawiki_p.html index 9b323922b..4b642eac6 100644 --- a/htroot/mediawiki_p.html +++ b/htroot/mediawiki_p.html @@ -3,7 +3,7 @@ #[title]# - + #[page]# - \ No newline at end of file + diff --git a/htroot/proxymsg/authfail.inc b/htroot/proxymsg/authfail.inc deleted file mode 100644 index cdf8dca0c..000000000 --- a/htroot/proxymsg/authfail.inc +++ /dev/null @@ -1,12 +0,0 @@ -
    -
    Your Username/Password is wrong. -
    -
    :
    -
    -
    :
    -
    -
    -
    - -
    -
    diff --git a/htroot/robots.txt b/htroot/robots.txt index 709996e48..f75cbc0a7 100644 --- a/htroot/robots.txt +++ b/htroot/robots.txt @@ -23,16 +23,6 @@ Disallow: /#[page]# # bookmarks Disallow: /Bookmarks.html#(/bookmarks)# -#(wiki)#:: -# wiki -Disallow: /Wiki.html#(/wiki)# - -#(blog)#:: -# blog -Disallow: /Blog.html -Disallow: /Blog.rss -Disallow: /Blog.xml#(/blog)# - #(news)#:: # news Disallow: /News.html#(/news)# @@ -68,4 +58,4 @@ Disallow: /ViewProfile.xml#(/profile)# :: # all Disallow: / -#(/all)# \ No newline at end of file +#(/all)# diff --git a/locales/de.lng b/locales/de.lng index cb0461e54..715e2e876 100644 --- a/locales/de.lng +++ b/locales/de.lng @@ -218,54 +218,6 @@ Crawling==Crawling DHT==DHT News==News Proxy==Proxy -#File: Blog.html -#--------------------------- -Blog-Home==Blog-Startseite -Author:==Autor: -Subject:==Titel: -Comments:==Kommentare: -deactivated==deaktiviert -moderated==moderiert -"Submit"=="Absenden" -"Preview"=="Vorschau" -"Discard"=="Verwerfen" -No changes have been submitted so far!==Es wurden noch keine Änderungen übertragen! -Access denied==Zugriff verweigert -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Um Blogeinträge zu verändern oder zu erstellen müssen Sie als Admin oder User mit Blog-Rechten eingeloggt sein. -Confirm deletion==Bestätige Löschung -Import was successful!==Import war erfolgreich! -Import failed, maybe the supplied file was no valid blog-backup?==Import fehlgeschlagen, unter Umständen war die angegebene Datei keine gültige Blog-Sicherung? -Please select the XML-file you want to import:==Bitte wählen Sie die XML-Datei die Sie importieren wollen: -Edit==Bearbeiten -Preview==Vorschau -"RSS"=="RSS" -"No, leave it."=="Nein, behalten." -"Yes, delete it."=="Ja, löschen." -<< previous entries==<< vorherige Einträge -Are you sure...==Sind Sie sicher... -XML-Import==XML-Import -activated==aktiviert -next entries >>==nächste Einträge >> -#----------------------------- - -Text:==Text: -"Import"=="Importieren" -#File: BlogComments.html -#--------------------------- -Blog-Home==Blog-Startseite -Author:==Autor: -Subject:==Titel: -"Submit"=="Absenden" -"Preview"=="Vorschau" -"Discard"=="Verwerfen" -Comments:==Kommentare: -<< previous entries==<< vorherige Einträge -next entries >>==nächste Einträge >> -Comment on this Blog==Kommentar zu diesem Blog -Comments are not allowed for this posting!==Kommentare sind für diesen Beitrag nicht erlaubt! -#----------------------------- - -Text:==Text: #File: Bookmarks.html #--------------------------- @@ -347,44 +299,26 @@ loading....==lade.... #File: ConfigAccounts_p.html #--------------------------- -User Accounts==Benutzerkonten -User Administration==Benutzerverwaltung -Generic error.==Genereller Fehler. +"Change Administrator Credentials"=="Administrator-Zugangsdaten ändern" +Admin Account==Administratorkonto +Invalid administrator settings.==Ungültige Administratoreinstellungen. Passwords do not match.==Passwörter stimmen nicht überein. -Username too short. Username must be >= 4 Characters.==Benutzername zu kurz. Benutzername muss länger als vier Zeichen sein. -Admin Account==Admin Konto -Access from localhost without account==Zugriff von localhost ohne Konto -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Der Zugriff von Ihrem Computer (localhost Zugang) ist garantiert mit Administratorrechten gewährt. Sie brauchen kein Administratorkonto erstellen. -Access only with qualified account==Zugriff nur mit berechtigtem Konto -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Das ist erforderlich, wenn Sie Fernzugriff auf Ihren Peer haben wollen, aber es härtet auch aus die Zugriffskontrolle auf Ihre Peer-Administrations-Operationen. -Peer User:==Peer Benutzer: -New Peer Password:==Neues Peer Passwort: -Repeat Peer Password:==Wiederhole Peer Passwort: -"Define Administrator"=="Administrator festlegen" -Select user==Benutzer wählen -New user==Neuer Benutzer -Repeat password==Passwort wiederholen -First name==Vorname -Last name==Nachname -Address==Adresse -Timelimit==Zeitlimit -Time used==Verbrauchte Zeit -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNUNG Diese YaCy-Instanz kann mit dem Konto "admin" und dem Standardpasswort "yacy" administriert werden. -Password==Passwort -Rights:==Rechte: -Username==Benutzername -"Delete User"=="Benutzer löschen" -"Edit User"=="Benutzer bearbeiten" -"Save User"=="Benutzer speichern" -"Set Access Rules"=="Zugriffsregeln setzen" +Administrator username is required.==Der Administrator-Benutzername ist erforderlich. +Administrator password is required.==Das Administrator-Passwort ist erforderlich. +Default administrator password is active.==Das Standardpasswort des Administrators ist aktiv. +This YaCy instance can still be administered with the username "admin" and the default password "yacy". Replace these credentials using the form directly below.==Diese YaCy-Instanz kann weiterhin mit dem Benutzernamen "admin" und dem Standardpasswort "yacy" administriert werden. Ersetzen Sie diese Zugangsdaten mit dem direkt darunter stehenden Formular. +These credentials are used for remote administration and whenever administrative access from localhost without authentication is disabled.==Diese Zugangsdaten werden für die Fernadministration und immer dann verwendet, wenn der administrative Zugriff von localhost ohne Authentifizierung deaktiviert ist. +If you need to reset the administrator password from the console, run bin/passwd.sh from the YaCy installation directory.==Wenn Sie das Administrator-Passwort über die Konsole zurücksetzen müssen, führen Sie bin/passwd.sh im YaCy-Installationsverzeichnis aus. +Administrator Username:==Administrator-Benutzername: +New Administrator Password:==Neues Administrator-Passwort: +Repeat Administrator Password:==Administrator-Passwort wiederholen: Access Rules==Zugriffsregeln -Change the password as soon as possible!==Ändern Sie das Passwort so bald wie möglich! +Allow administrative access from localhost without authentication==Administrativen Zugriff von localhost ohne Authentifizierung erlauben +When enabled, eligible requests from the same computer receive administrator rights without sending credentials.==Wenn diese Option aktiviert ist, erhalten berechtigte Anfragen vom selben Computer Administratorrechte, ohne Zugangsdaten zu senden. +Require administrator authorization for all applicable pages==Administrator-Autorisierung für alle anwendbaren Seiten verlangen +When disabled, administration pages whose names contain "_p" remain protected. When enabled, all applicable pages require administrator authorization.==Wenn diese Option deaktiviert ist, bleiben Administrationsseiten geschützt, deren Namen "_p" enthalten. Wenn sie aktiviert ist, erfordern alle anwendbaren Seiten eine Administrator-Autorisierung. #----------------------------- -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Bitte mit Vorsicht verwenden, besonders wenn Sie nicht vertrauenswürdige und potenziell bösartige Webseiten besuchen, während Ihr YaCy-Peer auf demselben Computer läuft. -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Schutz aller Seiten: Wenn eingeschaltet, erfordert der Zugriff auf alle Seiten eine Autorisierung; wenn ausgeschaltet, sind nur Seiten mit der Erweiterung "_p" geschützt. -This setting is convenient but less secure than using a qualified admin account.==Diese Einstellung ist bequem, aber weniger sicher als die Verwendung eines qualifizierten Administratorkontos. -Username already used (not allowed).==Benutzername bereits verwendet (nicht erlaubt). #File: ConfigAppearance_p.html #--------------------------- Appearance and Integration==Erscheinungsbild und Integration @@ -757,8 +691,6 @@ Status page==der Statusseite Network pages==der Netzwerkseiten Surftips==der Surftipps News pages==der News-Seiten -Blog==des Blogs -Wiki==des Wikis Public bookmarks==der öffentlichen Lesezeichen Home Page==der Home-Page File Share==des File-Shares @@ -2086,7 +2018,6 @@ The information that is presented on this page can also be retrieved as XML.==Di Click the API icon to see the XML.==Klicken Sie auf das API Symbol, um das XML anzeigen zu lassen. Network Overview==Netzwerkübersicht Manually contacting Peer==Kontaktiere Peer manuell -send Message/
    show Profile/
    edit Wiki/
    browse Blog==Sende Nachricht (m)/
    Zeige Profil (p)/
    Ändere Wiki (w)/
    Durchsuche Blog (b) Search for a peername (RegExp allowed)==Suche nach Peernamen (RegExp erlaubt) "Search"=="Suche" Name==Name @@ -2147,10 +2078,8 @@ green lines==grüne Linien Network History==Netzwerk Historie #----------------------------- -"Blog updated"=="Blog aktualisiert" "Profile updated"=="Profil aktualisiert" "Type: Virgin"=="Typ: Virgin" -"Wiki updated"=="Wiki aktualisiert" "add Peer"=="Peer hinzufügen" Count of Connected Senior Peers in the last two days, scale = 1h==Anzahl verbundener Senior-Peers in den letzten zwei Tagen, Skalierung = 1h Count of all Active Peers Per Day in the last week, scale = 1d==Anzahl aller aktiven Peers pro Tag in der letzten Woche, Skalierung = 1d @@ -2244,7 +2173,6 @@ Attributes==Attribute "Outgoing News"=="Ausgehende Nachrichten" "Processed News"=="Verarbeitete Nachrichten" "Published News"=="Veröffentlichte Nachrichten" -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Veröffentlichung einer hinzugefügten oder geänderten Übersetzung der Benutzeroberfläche. Andere Peers können sie in ihre lokale Übersetzungsliste aufnehmen. #----------------------------- #File: Performance_p.html @@ -2713,14 +2641,9 @@ Proxy Access Settings==Proxyzugangs Einstellungen These settings configure the access method to your own http proxy and server.==Diese Einstellungen beeinflussen den Zugriff auf Ihren HTTP-Proxy und -Server. All traffic is routed through one single port, for both proxy and server.==Alle Verbindungen werden durch einen einzigen Port hergestellt, für beides (Proxy und Server). Server Access Restrictions==Server Zugangsbeschränkungen -You can restrict the access to this proxy/server using a two-stage security barrier:==Sie können den Zugang zu diesem Proxy/Server mit einer 2-stufigen Sicherheitsbarriere einschränken: define an access domain with a list of granted client IP-numbers or with wildcards==geben Sie einen Netzwerkadressraum mithilfe einer Liste zugelassener Client-IP-Adressen oder mit Platzhaltern an -define an user account with an user:password - pair==geben Sie einen Nutzeraccount mit einem nutzer:passwort-Paar an -This is the account that restricts access to the proxy function.==Dies sind die Nutzer denen der Zugriff auf die Proxyfunktion gewährt wird. You probably don't want to share the proxy to the internet, so you should set the==Sie wollen den Proxy vermutlich nicht im Internet zur Verfügung stellen, deshalb sollten Sie IP-Number Access Domain to a pattern that corresponds to you local intranet.==den IP-Adressraum so einstellen, dass er auf Ihr lokales Intranet zutrifft. -The default setting should be right in most cases. If you want, you can also set a proxy account==Die Standardwerte sollten in den meisten Fällen richtig sein. Wenn Sie wollen können Sie auch Proxyaccounts erstellen -so that every proxy user must authenticate first, but this is rather unusual.==, sodass sich jeder Proxynutzer zuerst anmelden muss, aber das ist eher unüblich. IP-Number filter==IP-Adressen Filter #----------------------------- @@ -3237,44 +3160,6 @@ YaCy Debugging: Thread Dump==YaCy Debug: Thread Dump Threaddump==Threaddump #----------------------------- -#File: Translator_p.html -#--------------------------- -Translation Editor==Übersetzungseditor -UI Translation==Übersetzung Benutzeroberfläche -Source File==Quelldatei -view it==Datei anzeigen -filter untranslated==filter unübersetztes -Source Text==Quelltext -"Save translation"=="Übersetzung speichern" -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Unübersetzten Text der Benutzeroberfläche übersetzen (aktuelle Sprache). Die geänderte Übersetzungsdatei wird im Verzeichnis DATA/LOCALE gespeichert. -#----------------------------- - -#File: User.html -#--------------------------- -User Page==Benutzer Seite -Username:==Benutzername: -"login"=="anmelden" -old Password==altes Passwort -new Password(repetition)==neues Passwort (Wiederholung) -"Change"=="Ändern" -You are currently logged in as admin.==Sie sind derzeit als Administrator angemeldet. -(after logout you will be prompted for your password again. simply click "cancel")==(nach dem Abmelden werden Sie erneut nach dem Passwort gefragt. Klicken Sie einfach auf abbrechen) -Password was changed.==Das Passwort wurde gewechselt. -Old Password is wrong.==Das alte Passwort ist falsch. -New Password and its repetition do not match.==Das neue Passwort und die Wiederholung stimmen nicht überein. -New Password is empty.==Das neue Passwort ist leer. -Cookie==Cookie -"green bar"=="grüner Balken" -"logout"=="Abmelden" -"red bar"=="roter Balken" -(Identified by==(Identifiziert durch -IP==IP -Password:==Passwort: -Username/Password==Benutzername/Passwort -You are not logged in.==Sie sind nicht angemeldet. -new Password==neues Passwort -#----------------------------- - #File: ViewFile.html #--------------------------- View URL Content==Zeige URL Inhalte @@ -3463,41 +3348,9 @@ size==Größe time==Zeit #----------------------------- -#File: Wiki.html -#--------------------------- -Grant Write Access to==Erlaube es folgenden Benutzern das Wiki zu bearbeiten -# !!! Do not translate the input buttons because that breaks the function to switch rights !!! -"all"=="Allen" -"admin"=="Administrator" -Start Page==Startseite -Versions==Versionen -Author:==Autor: -You can use==Sie können hier -"Submit"=="Absenden" -"Preview"=="Vorschau" -"Discard"=="Verwerfen" -No changes have been submitted so far!==Es wurden noch keine Änderungen übertragen! -Subject==Titel -Change Date==Änderungsdatum -Last Author==Letzter Autor -Compare version from==Vergleiche Version vom -"Show"=="Anzeigen" -with version from==mit Version vom -"Compare"=="Vergleichen" -Changes will be published as announcement on YaCyNews==Änderungen werden über den YaCy News Service bekannt gegeben. -Edit==Bearbeiten -Preview==Vorschau -(only granted to admin)==(nur für Admin erlaubt) -Error==Fehler -Index -==Index - -#----------------------------- - -Index==Index -Text:==Text: -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-Befehle -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Diese Tabelle enthält eine kurze Beschreibung der Tags, die in diesem Wiki und an anderen Stellen of YaCy. For a more detailed description visit the==in YaCy benutzt werden können. Für eine detailliertere Beschreibung besuchen Sie bitte das Description==Beschreibung These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics),==Diese Tags erzeugen hervorgehobenen Text. Das erste Paar betont den Text (die meisten Browser zeigen die Texte kursiv), @@ -3507,7 +3360,6 @@ These tags create a numbered list.==Diese Tags erstellen eine nummerierte Liste. These tags create an unnumbered list.==Diese Tags erstellen eine unnummerierte Liste. These tags create a definition list.==Diese Tags erstellen eine definierte Liste. This tag creates a horizontal line.==Dieser Tag erzeugt eine horizontale Linie. -This tag creates links to other pages of the wiki.==Dieser Tag erzeugt einen Link zu einer anderen Seite im Wiki. This tag displays an image, it can be aligned left, right or center.==Dieser Tag fügt ein Bild ein, es kann links (left), rechts (right) oder mittig (center) ausgerichtet werden. This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.==Dieser Tag fügt ein Youtube oder Vimeo Video mit der angegeben id und einer fixen Höhe von 425 Pixeln und einer fixen Breite von 350 Pixeln ein. These tags create a table, whereas the first marks the beginning of the table, the second starts==Diese Tags erstellen eine Tabelle, wobei der erste den Anfang der Tabelle markiert, der zweite beginnt @@ -3826,7 +3678,6 @@ Processed News==Verarbeitete Nachrichten Outgoing News==Ausgehende Nachrichten Published News==Veröffentlichte Nachrichten Community Data==Community-Daten -Local Peer Wiki==Lokales Peer-Wiki Processes==Prozesse Messages==Nachrichten Overview==Übersicht @@ -3844,7 +3695,6 @@ Surftips==Surftipps System Administration==System Administration Advanced Settings==Erweiterte Einstellungen Advanced Properties==Erweiterte Konfiguration -UI Translations==UI-Übersetzungen #----------------------------- Performance Settings of Busy Queues==Performance-Einstellungen beschäftigter Queues @@ -3916,13 +3766,6 @@ Crawler/Spider==Crawler/Spider Network Harvesting==Network Harvesting #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Veröffentlichung -#----------------------------- - -Blog==Blog -Wiki==Wiki #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Ranking und Heuristiken @@ -3963,14 +3806,6 @@ Image Collage==Bilder Collage #----------------------------- Index Browser==Index-Browser -#File: proxymsg/authfail.inc -#--------------------------- -Your Username/Password is wrong.==Benutzername/Passwort waren falsch. -"login"=="Anmelden" -Password==Passwort -Username==Benutzername -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Fehlermeldung @@ -4539,42 +4374,6 @@ Thread:==Thread: "Stop"=="Stopp" #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User Accounts==Benutzerkonten -User List==Benutzerliste -#----------------------------- - -Address==Adresse -First name==Vorname -Last Access==Letzter Zugriff -Last name==Nachname -Rights==Rechte -Time==Zeit -Traffic==Traffic -User==Benutzer -#File: ConfigUser_p.html -#--------------------------- -Username too short. Username must be >= 4 Characters.==Benutzername zu kurz. Benutzername muss >= 4 Zeichen lang sein. -Username already used (not allowed).==Benutzername bereits vergeben (nicht erlaubt). -Passwords do not match.==Passwörter stimmen nicht überein. -User Account Editor==Benutzerkonten-Editor -back to user list==zurück zur Benutzerliste -Generic error.==Allgemeiner Fehler. -Rights:==Rechte: -"Delete User"=="Benutzer löschen" -"Save User"=="Benutzer speichern" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -#----------------------------- - -Address==Adresse -First name==Vorname -Last name==Nachname -Password==Passwort -Repeat password==Passwort wiederholen -Time used==Verbrauchte Zeit -Timelimit==Zeitlimit -Username==Benutzername #File: ContentAnalysis_p.html #--------------------------- The quantRate is a measurement for the number of words that take part in a signature computation. The higher the number, the less==Die quantRate ist ein Maß für die Anzahl der Wörter, die an einer Signaturberechnung teilnehmen. Je höher die Zahl, desto weniger @@ -4608,11 +4407,6 @@ Start Time==Startzeit Start URL==Start-URL #File: SearchAccessRate_p.html #--------------------------- -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Wenn ein Benutzer mit eingeschränkten Rechten (nicht authentifiziert oder ohne erweitertes Suchrecht) ein Limit überschreitet, ist die Ergebnis-Neusortierung nur noch auf Anfrage, serverseitig verfügbar. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Wenn ein Benutzer mit eingeschränkten Rechten (nicht authentifiziert oder ohne erweitertes Suchrecht) ein Limit überschreitet, wird der Suchbereich auf nur diesen lokalen Peer-Index zurückgesetzt. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Wenn ein Benutzer mit eingeschränkten Rechten (nicht authentifiziert oder ohne erweitertes Suchrecht) ein Limit überschreitet, wird die Snippet-Abrufstrategie auf 'CACHEONLY' zurückgesetzt -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Hier können Sie Beschränkungen der Zugriffsrate auf die Suchschnittstelle dieses Peers für nicht authentifizierte Benutzer und Benutzer ohne erweitertes Suchrecht konfigurieren -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Wenn ein Benutzer mit eingeschränkten Rechten (nicht authentifiziert oder ohne erweitertes Suchrecht) ein Limit überschreitet, wird die Suche blockiert. Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Zugriffsraten-Beschränkungen für den Peer-to-Peer-Suchmodus mit aktivierter browserseitiger JavaScript-Ergebnis-Neusortierung Changes will take effect immediately.==Änderungen werden sofort wirksam. Access rate limitations to the peer-to-peer search mode.==Zugriffsraten-Beschränkungen für den Peer-to-Peer-Suchmodus. @@ -4639,18 +4433,6 @@ YaCy search==YaCy-Suche CyTag Trails==CyTag-Spuren #----------------------------- -#File: TransNews_p.html -#--------------------------- -You can share your local addition to translations and distribute it to other peers.==Sie können Ihre lokale Ergänzung zu Übersetzungen teilen und an andere Peers verteilen. -Translation:==Übersetzung: -English:==Englisch: -existing==vorhanden -"negative vote"=="Negative Bewertung" -"positive vote"=="Positive Bewertung" -Originator==Initiator -Vote on this translation. If you vote positive the translation is added to your local translation list.==Über diese Übersetzung abstimmen. Wenn Sie positiv abstimmen, wird die Übersetzung zu Ihrer lokalen Übersetzungsliste hinzugefügt. -#----------------------------- - File:==Datei: The remote peer can vote on your translation and add it to its own local translation.==Der Remote-Peer kann über Ihre Übersetzung abstimmen und sie zu seiner eigenen lokalen Übersetzung hinzufügen. "Publish"=="Veröffentlichen" diff --git a/locales/el.lng b/locales/el.lng index 080073df6..036c13b76 100644 --- a/locales/el.lng +++ b/locales/el.lng @@ -337,54 +337,6 @@ An error occurred while editing the following entries. Please check syntax.==Π Activate this list for ...==Ενεργοποιήστε αυτήν τη λίστα για... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="Υποτάσσομαι" -"Preview"=="Πρεμιέρα" -"Discard"=="Απορρίπτω" -"Yes, delete it."=="Ναι, διαγράψτε το." -"No, leave it."=="Όχι, αφήστε το." -"Import"=="Εισαγωγή" -<< previous entries==<< προηγούμενες εγγραφές -next entries >>==επόμενες καταχωρήσεις >> -Blog-Home==Blog-Home -Edit==Τροποποίηση -Author:==Συγγραφέας: -Subject:==Θέμα: -Text:==Κείμενο: -Comments:==Σχόλια: -deactivated==απενεργοποιημένο -activated==ενεργοποιήθηκε -moderated==μετριάζεται -Preview==Πρεμιέρα -No changes have been submitted so far!==Δεν έχουν υποβληθεί αλλαγές μέχρι στιγμής! -Access denied==Δεν επιτρέπεται η πρόσβαση -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Για να επεξεργαστείτε ή να δημιουργήσετε καταχωρήσεις ιστολογίου, πρέπει να είστε συνδεδεμένοι ως Διαχειριστής ή Χρήστης που έχει δικαιώματα ιστολογίου. -Are you sure...==Είσαι σίγουρος... -Confirm deletion==Επιβεβαιώστε τη διαγραφή -XML-Import==XML-Εισαγωγή -Import was successful!==Η εισαγωγή ήταν επιτυχής! -Import failed, maybe the supplied file was no valid blog-backup?==Η εισαγωγή απέτυχε, ίσως το παρεχόμενο αρχείο δεν ήταν έγκυρο αντίγραφο ασφαλείας ιστολογίου; -Please select the XML-file you want to import:==Επιλέξτε το XML-αρχείο που θέλετε να εισαγάγετε: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="Υποτάσσομαι" -"Preview"=="Πρεμιέρα" -"Discard"=="Απορρίπτω" -Blog-Home==Blog-Home -Comments:==Σχόλια: -<< previous entries==<< προηγούμενες εγγραφές -next entries >>==επόμενες καταχωρήσεις >> -Comments are not allowed for this posting!==Δεν επιτρέπονται σχόλια για αυτήν την ανάρτηση! -Comment on this Blog==Σχολιάστε αυτό το ιστολόγιο -Author:==Συγγραφέας: -Subject:==Θέμα: -Text:==Κείμενο: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -452,58 +404,10 @@ Private Queue==Ιδιωτική ουρά Public Queue==Δημόσια ουρά #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==Λίστα χρηστών -User Accounts==Λογαριασμοί χρηστών -User==Μεταχειριζόμενος -First name==Ονομα -Last name==Επώνυμο -Address==Διεύθυνση -Last Access==Τελευταία Πρόσβαση -Rights==Δικαιώματα -Time==Φορά -Traffic==Κυκλοφορία -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="Ορισμός Διαχειριστή" -"Set Access Rules"=="Ορισμός κανόνων πρόσβασης" -"Edit User"=="Επεξεργασία χρήστη" -"Delete User"=="Διαγραφή χρήστη" -"Save User"=="Αποθήκευση χρήστη" -User Administration==Διαχείριση χρήστη -Generic error.==Γενικό σφάλμα. Passwords do not match.==Οι κωδικοί πρόσβασης δεν ταιριάζουν. -Username too short. Username must be >= 4 Characters.==Το όνομα χρήστη είναι πολύ μικρό. Το όνομα χρήστη πρέπει να είναι >= 4 χαρακτήρες. -Username already used (not allowed).==Όνομα χρήστη που χρησιμοποιείται ήδη (δεν επιτρέπεται). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING Αυτή η περίπτωση YaCy μπορεί να διαχειρίζεται με τον λογαριασμό "admin" και τον προεπιλεγμένο κωδικό πρόσβασης "yacy". -Change the password as soon as possible!==Αλλάξτε τον κωδικό πρόσβασης το συντομότερο δυνατό! Admin Account==Λογαριασμός διαχειριστή -Access from localhost without account==Πρόσβαση από localhost χωρίς λογαριασμό -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Η πρόσβαση στο peer σας από τον δικό σας υπολογιστή (πρόσβαση τοπικού κεντρικού υπολογιστή) παρέχεται με δικαιώματα διαχειριστή. Δεν χρειάζεται να διαμορφώσετε έναν λογαριασμό διαχείρισης. -This setting is convenient but less secure than using a qualified admin account.==Αυτή η ρύθμιση είναι βολική, αλλά λιγότερο ασφαλής από τη χρήση ενός αναγνωρισμένου λογαριασμού διαχειριστή. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Χρησιμοποιήστε το με προσοχή, ιδίως όταν περιηγείστε σε μη αξιόπιστους και δυνητικά κακόβουλους ιστότοπους ενώ εκτελείτε το YaCy ομότιμο σας στον ίδιο υπολογιστή. -Access only with qualified account==Πρόσβαση μόνο με πιστοποιημένο λογαριασμό -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Αυτό απαιτείται εάν θέλετε απομακρυσμένη πρόσβαση στον ομότιμο σας, αλλά επίσης σκληραίνει τα στοιχεία ελέγχου πρόσβασης στις λειτουργίες διαχείρισης του ομοτίμου σας. -Peer User:==Ομότιμος χρήστης: -New Peer Password:==Νέος κωδικός πρόσβασης ομοτίμων: -Repeat Peer Password:==Επαναλάβετε τον κωδικό πρόσβασης ομοτίμων: -Access Rules==Κανόνες πρόσβασης -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Προστασία όλων των σελίδων: εάν είναι ενεργοποιημένη, η πρόσβαση σε όλες τις σελίδες χρειάζεται εξουσιοδότηση. Εάν είναι απενεργοποιημένη, προστατεύονται μόνο οι σελίδες με επέκταση "_p". -User Accounts==Λογαριασμοί χρηστών -Select user==Επιλέξτε χρήστη -New user==Νέος χρήστης -Username==Όνομα χρήστη -Password==Σύνθημα -Repeat password==Επαναλάβετε τον κωδικό πρόσβασης -First name==Ονομα -Last name==Επώνυμο -Address==Διεύθυνση -Rights:==Δικαιώματα: -Timelimit==Χρονικό όριο -Time used==Χρόνος που χρησιμοποιείται #----------------------------- #File: ConfigAppearance_p.html @@ -881,8 +785,6 @@ Status page==Σελίδα κατάστασης Network pages==Σελίδες δικτύου Surftips==Surftips News pages==Σελίδες ειδήσεων -Blog==Ιστολόγιο -Wiki==Wiki Public bookmarks==Δημόσιοι σελιδοδείκτες Home Page==Αρχική Σελίδα File Share==Κοινή χρήση αρχείου @@ -1042,28 +944,6 @@ manual update:
    apt-get update && apt-get install yacy==μη αυτό automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==αυτόματη ενημέρωση: προσθέστε την ακόλουθη γραμμή στο /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="Αποθήκευση χρήστη" -"Delete User"=="Διαγραφή χρήστη" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Επεξεργαστής λογαριασμού χρήστη -Generic error.==Γενικό σφάλμα. -Passwords do not match.==Οι κωδικοί πρόσβασης δεν ταιριάζουν. -Username too short. Username must be >= 4 Characters.==Το όνομα χρήστη είναι πολύ μικρό. Το όνομα χρήστη πρέπει να είναι >= 4 χαρακτήρες. -Username already used (not allowed).==Όνομα χρήστη που χρησιμοποιείται ήδη (δεν επιτρέπεται). -Username==Όνομα χρήστη -Password==Σύνθημα -Repeat password==Επαναλάβετε τον κωδικό πρόσβασης -First name==Ονομα -Last name==Επώνυμο -Address==Διεύθυνση -Rights:==Δικαιώματα: -Timelimit==Χρονικό όριο -Time used==Χρόνος που χρησιμοποιείται -back to user list==επιστροφή στη λίστα χρηστών -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==Παρακολούθηση σύνδεσης διακομιστή @@ -2470,8 +2350,6 @@ inbox==inbox "DHT Receive: yes"=="DHT Λήψη: ναι" "DHT receive enabled"=="Η λήψη DHT ενεργοποιήθηκε" "Profile updated"=="Το προφίλ ενημερώθηκε" -"Wiki updated"=="Το Wiki ενημερώθηκε" -"Blog updated"=="Το ιστολόγιο ενημερώθηκε" "Crawl"=="Αργή πορεία" "The YaCy Network"=="Το Δίκτυο YaCy" "Type: Virgin"=="Τύπος: Παρθένος" @@ -2517,7 +2395,6 @@ Received DHT
    Word Chunks==Λήφθηκαν DHT
    Word Chunks Received
    URLs==Λήφθηκαν
    URL Location==Τοποθεσία user agent
    ==πράκτορας χρήστη
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==αποστολή μηνύματος/
    εμφάνιση προφίλ/
    επεξεργασία Wiki/
    περιήγηση ιστολογίου Network==Δίκτυο Online Peers==Online Peers Number of
    Documents==Αριθμός
    Εγγράφων @@ -2588,7 +2465,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==Ένας πίνακας με ανιχνεύσεις που ξεκίνησαν πρόσφατα παρουσιάζεται στη σελίδα Δημιουργία ευρετηρίου A change in the personal profile will create a news entry. You can see recently made changes of==Μια αλλαγή στο προσωπικό προφίλ θα δημιουργήσει μια καταχώριση ειδήσεων. Μπορείτε να δείτε τις πρόσφατες αλλαγές του profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==καταχωρήσεις προφίλ στη σελίδα Δικτύου, όπου αυτή η αλλαγή προφίλ απεικονίζεται με ένα '*' δίπλα στον επιλογέα 'P' (προφίλ). -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Δημοσίευση προστιθέμενης ή τροποποιημένης μετάφρασης για τη διεπαφή χρήστη. Άλλοι συνομήλικοι μπορεί να το συμπεριλάβουν στην τοπική λίστα μεταφράσεων τους. More news services will follow.==Θα ακολουθήσουν περισσότερες υπηρεσίες ειδήσεων. Above you can see four menus:==Παραπάνω μπορείτε να δείτε τέσσερα μενού: Only these news will be used to display specific news services as explained above.==Μόνο αυτές οι ειδήσεις θα χρησιμοποιηθούν για την εμφάνιση συγκεκριμένων υπηρεσιών ειδήσεων όπως εξηγείται παραπάνω. @@ -2994,23 +2870,18 @@ Age==Ηλικία "Reset to defaults settings"=="Επαναφορά στις προεπιλεγμένες ρυθμίσεις" limitations==περιορισμούς Local Search access rate limitations==Περιορισμοί ποσοστού πρόσβασης τοπικής αναζήτησης -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Μπορείτε να διαμορφώσετε εδώ περιορισμούς στο ποσοστό πρόσβασης σε αυτήν τη διεπαφή ομότιμης αναζήτησης από μη πιστοποιημένους χρήστες και χρήστες χωρίς δικαίωμα εκτεταμένης αναζήτησης YaCy search==YaCy αναζήτηση Access rate limitations to this peer search interface.==Περιορισμοί ρυθμού πρόσβασης σε αυτήν τη διεπαφή ομότιμης αναζήτησης. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Όταν ένας χρήστης με περιορισμένα δικαιώματα (χωρίς έλεγχο ταυτότητας ή χωρίς εκτεταμένο δικαίωμα αναζήτησης) υπερβαίνει ένα όριο, η αναζήτηση αποκλείεται. Max searches in 3s==Μέγιστη αναζήτηση σε 3 δευτερόλεπτα Max searches in 1mn==Μέγιστη αναζήτηση σε 1 λεπτό Max searches in 10mn==Μέγιστες αναζητήσεις σε 10 λεπτά Peer-to-peer search==Ομότιμη αναζήτηση Access rate limitations to the peer-to-peer search mode.==Πρόσβαση στους περιορισμούς ποσοστού στη λειτουργία αναζήτησης peer-to-peer. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Όταν ένας χρήστης με περιορισμένα δικαιώματα (χωρίς έλεγχο ταυτότητας ή χωρίς εκτεταμένο δικαίωμα αναζήτησης) υπερβαίνει ένα όριο, το εύρος αναζήτησης επανέρχεται μόνο σε αυτό το τοπικό ευρετήριο ομότιμων. Max searches in 10mn==Μέγιστες αναζητήσεις σε 10 λεπτά Peer-to-peer search with JavaScript results resorting==Ομότιμη αναζήτηση με JavaScript καταφυγή αποτελεσμάτων Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Περιορισμοί ποσοστού πρόσβασης στη λειτουργία αναζήτησης peer-to-peer με ενεργοποιημένη την καταφυγή αποτελεσμάτων JavaScript από την πλευρά του προγράμματος περιήγησης -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Όταν ένας χρήστης με περιορισμένα δικαιώματα (χωρίς έλεγχο ταυτότητας ή εκτεταμένο δικαίωμα αναζήτησης) υπερβαίνει ένα όριο, η καταφυγή αποτελεσμάτων εφαρμόζεται μόνο κατ' απαίτηση, από την πλευρά του διακομιστή. Remote snippet load==Απομακρυσμένη φόρτωση αποσπάσματος Limitations on snippet loading from remote websites.==Περιορισμοί στη φόρτωση αποσπασμάτων από απομακρυσμένους ιστότοπους. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Όταν ένας χρήστης με περιορισμένα δικαιώματα (χωρίς έλεγχο ταυτότητας ή εκτεταμένο δικαίωμα αναζήτησης) υπερβαίνει ένα όριο, η στρατηγική ανάκτησης αποσπασμάτων επιστρέφει στο "CACHEONLY" Max searches in 3s==Μέγιστη αναζήτηση σε 3 δευτερόλεπτα Changes will take effect immediately.==Οι αλλαγές θα τεθούν σε ισχύ αμέσως. #----------------------------- @@ -3235,14 +3106,9 @@ These settings configure the access method to your own http proxy and server.== All traffic is routed through one single port, for both proxy and server.==Όλη η κίνηση δρομολογείται μέσω μιας ενιαίας θύρας, τόσο για διακομιστή μεσολάβησης όσο και για διακομιστή. HTTPS Server Port:==HTTPS Θύρα διακομιστή: Server Access Restrictions==Περιορισμοί πρόσβασης διακομιστή -You can restrict the access to this proxy/server using a two-stage security barrier:==Μπορείτε να περιορίσετε την πρόσβαση σε αυτόν τον διακομιστή μεσολάβησης/server χρησιμοποιώντας ένα φράγμα ασφαλείας δύο σταδίων: define an access domain with a list of granted client IP-numbers or with wildcards==ορίστε έναν τομέα πρόσβασης με μια λίστα παραχωρημένων IP-αριθμών πελάτη ή με χαρακτήρες μπαλαντέρ -define an user account with an user:password - pair==ορίστε έναν λογαριασμό χρήστη με user:password - pair -This is the account that restricts access to the proxy function.==Αυτός είναι ο λογαριασμός που περιορίζει την πρόσβαση στη λειτουργία διακομιστή μεσολάβησης. You probably don't want to share the proxy to the internet, so you should set the==Πιθανότατα δεν θέλετε να κάνετε κοινή χρήση του διακομιστή μεσολάβησης στο Διαδίκτυο, επομένως θα πρέπει να ρυθμίσετε το IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-Αριθμήστε τον τομέα πρόσβασης σε ένα μοτίβο που αντιστοιχεί στο τοπικό σας intranet. -The default setting should be right in most cases. If you want, you can also set a proxy account==Η προεπιλεγμένη ρύθμιση θα πρέπει να είναι σωστή στις περισσότερες περιπτώσεις. Εάν θέλετε, μπορείτε επίσης να ορίσετε έναν λογαριασμό διακομιστή μεσολάβησης -so that every proxy user must authenticate first, but this is rather unusual.==έτσι ώστε κάθε χρήστης μεσολάβησης πρέπει πρώτα να κάνει έλεγχο ταυτότητας, αλλά αυτό είναι μάλλον ασυνήθιστο. IP-Number filter==IP-Φίλτρο αριθμών Accounts==Λογαριασμοί #----------------------------- @@ -3633,59 +3499,6 @@ Save Tools Configuration==Αποθήκευση διαμόρφωσης εργαλ CyTag Trails==Διαδρομές CyTag #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="Δημοσιεύω" -"negative vote"=="αρνητική ψήφο" -"positive vote"=="θετική ψήφο" -You can share your local addition to translations and distribute it to other peers.==Μπορείτε να μοιραστείτε την τοπική σας προσθήκη σε μεταφράσεις και να τη διανείμετε σε άλλους συνομηλίκους. -The remote peer can vote on your translation and add it to its own local translation.==Ο απομακρυσμένος ομότιμος μπορεί να ψηφίσει για τη μετάφρασή σας και να την προσθέσει στη δική του τοπική μετάφραση. -File:==Αρχείο: -Originator==Δημιουργός -English:==Αγγλικός: -existing==υπάρχον -Translation:==Μετάφραση: -Vote on this translation. If you vote positive the translation is added to your local translation list.==Ψηφίστε για αυτήν τη μετάφραση. Εάν ψηφίσετε θετικά, η μετάφραση προστίθεται στην τοπική σας λίστα μεταφράσεων. -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="Αποθήκευση μετάφρασης" -Translation Editor==Επιμελητής μετάφρασης -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Μετάφραση μη μεταφρασμένου κειμένου της διεπαφής χρήστη (τρέχουσα γλώσσα). Το τροποποιημένο αρχείο μετάφρασης αποθηκεύεται στον κατάλογο DATA/LOCALE. -UI Translation==Μετάφραση διεπαφής χρήστη -Source File==Αρχείο πηγής -view it==δείτε το -filter untranslated==φίλτρο αμετάφραστο -Source Text==Πηγαίο Κείμενο -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="σύνδεση" -"logout"=="αποσύνδεση" -"red bar"=="κόκκινη μπάρα" -"green bar"=="πράσινο μπαρ" -"Change"=="Αλλαγή" -User Page==Σελίδα χρήστη -You are not logged in.==Δεν είστε συνδεδεμένοι. -Username:==Όνομα χρήστη: -Password:==Σύνθημα: -(Identified by==(Προσδιορίστηκε από -IP==IP -Username/Password==Όνομα χρήστη/Password -Cookie==Κουλουράκι -old Password==παλιός κωδικός πρόσβασης -new Password==νέος κωδικός πρόσβασης -new Password(repetition)==νέος κωδικός πρόσβασης (επανάληψη) -You are currently logged in as admin.==Αυτήν τη στιγμή είστε συνδεδεμένος ως διαχειριστής. -(after logout you will be prompted for your password again. simply click "cancel")==(μετά την αποσύνδεση θα σας ζητηθεί ξανά ο κωδικός πρόσβασής σας. απλά κάντε κλικ στο "ακύρωση") -Password was changed.==Ο κωδικός πρόσβασης άλλαξε. -Old Password is wrong.==Ο παλιός κωδικός είναι λάθος. -New Password and its repetition do not match.==Ο νέος κωδικός πρόσβασης και η επανάληψή του δεν ταιριάζουν. -New Password is empty.==Ο νέος κωδικός πρόσβασης είναι κενός. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Πρόγραμμα περιήγησης συστήματος αρχείων" @@ -3889,40 +3702,9 @@ Other Dot==Άλλο Dot Dot-end==Τελική άκρη #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="όλοι" -"admin"=="διαχειριστής" -"Submit"=="Υποτάσσομαι" -"Preview"=="Πρεμιέρα" -"Discard"=="Απορρίπτω" -"Show"=="Επίδειξη" -"Compare"=="Συγκρίνω" -(only granted to admin)==(χορηγείται μόνο σε διαχειριστή) -Index -==Ευρετήριο - -Grant Write Access to==Παραχωρήστε πρόσβαση εγγραφής σε -Edit==Τροποποίηση -Author:==Συγγραφέας: -Text:==Κείμενο: -Preview==Πρεμιέρα -No changes have been submitted so far!==Δεν έχουν υποβληθεί αλλαγές μέχρι στιγμής! -Index==Δείκτης -Subject==Θέμα -Change Date==Αλλαγή ημερομηνίας -Last Author==Τελευταίος συγγραφέας -Start Page==Αρχική Σελίδα -Versions==εκδόσεις -Compare version from==Συγκρίνετε την έκδοση από -with version from==με έκδοση από -Error==Σφάλμα -You can use==Μπορείτε να χρησιμοποιήσετε -Changes will be published as announcement on YaCyNews==Οι αλλαγές θα δημοσιευτούν ως ανακοίνωση στο YaCyNews -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-Code -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Αυτός ο πίνακας περιέχει μια σύντομη περιγραφή των ετικετών που μπορούν να χρησιμοποιηθούν στο Wiki και σε πολλούς άλλους servlets of YaCy. For a more detailed description visit the==από YaCy. Για πιο λεπτομερή περιγραφή επισκεφθείτε το Code==Κώδικας Description==Περιγραφή @@ -3947,7 +3729,6 @@ These tags create a definition list.==Αυτές οι ετικέτες δημι This tag creates a horizontal line.==Αυτή η ετικέτα δημιουργεί μια οριζόντια γραμμή. [[pagename]]==[[όνομα σελίδας]] [[pagename|description]]==[[όνομα σελίδας|περιγραφή]] -This tag creates links to other pages of the wiki.==Αυτή η ετικέτα δημιουργεί συνδέσμους προς άλλες σελίδες του wiki. [url]==[url] [url description]==[περιγραφή url] This tag creates links to external websites.==Αυτή η ετικέτα δημιουργεί συνδέσμους προς εξωτερικούς ιστότοπους. @@ -4272,7 +4053,6 @@ Outgoing News==Εξερχόμενες Ειδήσεις Published News==Δημοσιεύτηκαν Ειδήσεις Community Data==Δεδομένα Κοινότητας Surftips==Surftips -Local Peer Wiki==Τοπικό ομότιμο Wiki Bookmarks==Σελιδοδείκτες #----------------------------- @@ -4283,7 +4063,6 @@ Advanced Settings==Προηγμένες ρυθμίσεις Performance Settings of Busy Queues==Ρυθμίσεις απόδοσης των κατειλημμένων ουρών Viewer and administration for database tables==Προβολή και διαχείριση πινάκων βάσεων δεδομένων Advanced Properties==Προηγμένες ιδιότητες -UI Translations==Μεταφράσεις διεπαφής χρήστη #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4391,13 +4170,6 @@ User Profile==Προφίλ χρήστη Local robots.txt==Τοπικά robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Δημοσίευση -Wiki==Wiki -Blog==Ιστολόγιο -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Κατάταξη και Ευρετική @@ -4544,14 +4316,6 @@ Get the latest Java Plug-in here.==Αποκτήστε την πιο πρόσφα Built with Processing==Κατασκευάστηκε με Επεξεργασία #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="σύνδεση" -Your Username/Password is wrong.==Το όνομα χρήστη σας/Password είναι λάθος. -Username==Όνομα χρήστη -Password==Σύνθημα -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Μήνυμα σφάλματος diff --git a/locales/es.lng b/locales/es.lng index 7ac4b3c8b..2f686db25 100644 --- a/locales/es.lng +++ b/locales/es.lng @@ -220,54 +220,6 @@ News==Noticias Proxy==Proxy #----------------------------- -#File: Blog.html -#--------------------------- -Blog-Home==Blog-Home -Author:==Autor: -Subject:==Título: -Comments:==Observaciones: -deactivated==desactivado -moderated==moderado -"Submit"=="Enviar" -"Preview"=="Previsualizar" -"Discard"=="Descartar" -No changes have been submitted so far!==¡Hasta ahora no se han presentado cambios! -Access denied==Acceso denegado -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Para editar o crear entradas de blog es necesario iniciar sesión como administrador o usuario que tiene derechos de Blog. -Confirm deletion==Confirmar la eliminación -Import was successful!==¡La importación tuvo éxito! -Import failed, maybe the supplied file was no valid blog-backup?==Importar falló, tal vez el archivo suministrado no era una copia de seguridad válida del blog? -Please select the XML-file you want to import:==Seleccione el archivo XML que desea importar: -Edit==Editar -Preview==Vista previa -"RSS"=="RSS" -"No, leave it."=="No, conservarlo." -"Yes, delete it."=="Sí, eliminarlo." -<< previous entries==<< entradas anteriores -Are you sure...==¿Estás seguro...? -XML-Import==XML-Import -activated==activado -next entries >>==entradas siguientes>> -Text:==Texto: -"Import"=="Importar" -#----------------------------- - -#File: BlogComments.html -#--------------------------- -Blog-Home==Blog-Home -Author:==Autor: -Subject:==Título: -"Submit"=="Enviar" -"Preview"=="Previsualizar" -"Discard"=="Descartar" -Comments:==Observaciones: -<< previous entries==<< entradas anteriores -next entries >>==entradas siguientes>> -Comment on this Blog==Comentar sobre este Blog -Comments are not allowed for this posting!==Los comentarios no están permitidos para esta publicación! -Text:==Texto: -#----------------------------- - #File: Bookmarks.html #--------------------------- The bookmarks list can also be retrieved as RSS feed. This can also be done when you select a specific tag.==La lista de marcadores también se puede recuperar como fuenteRSS. Esto también se puede hacer cuando se selecciona una etiqueta específica. @@ -347,42 +299,8 @@ loading....==cargando... #File: ConfigAccounts_p.html #--------------------------- -User Accounts==Cuenta de usuario -User Administration==Administración de Usuario -Generic error.==Error generico. Passwords do not match.==Las contraseñas no coinciden. -Username too short. Username must be >= 4 Characters.==Nombre de usuario demasiado corto. El nombre de usuario debe ser>=4Caracteres. Admin Account==Cuenta de administrador -Access from localhost without account==Acceder desde el localhost sin cuenta -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==El acceso a su nodo desde su propia computadora (acceso localhost) se otorga con derechos de administrador. No es necesario configurar una cuenta de administración. -Access only with qualified account==Acceso solo con cuenta calificada -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Esto es necesario si desea un acceso remoto a su nodo, pero también fortalece los controles de acceso en las operaciones de administración de su nodo. -Peer User:==Usuario del Nodo -New Peer Password:==Nueva contraseña del Nodo: -Repeat Peer Password:==Repita la contraseña del Nodo: -"Define Administrator"=="Definir Administrador" -Select user==Seleccionar usuario -New user==Nuevo usuario -Repeat password==Repite la contraseña -First name==Nombre -Last name==Apellido -Address==Dirección -Timelimit==Plazo -Time used==Tiempo utilizado -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==ADVERTENCIAEsta instancia YaCy e puede administrar con la cuenta "admin" y la contraseña predeterminada "yacy". -Password==Contraseña -Rights:==Derechos: -Username==Nombre de Usuario -"Delete User"=="Borrar usuario" -"Edit User"=="Editar usuario" -"Save User"=="Guardar usuario" -"Set Access Rules"=="Establecer reglas de acceso" -Access Rules==Reglas de acceso -Change the password as soon as possible!==¡Cambie la contraseña tan pronto como sea posible! -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Úselo con cuidado, especialmente cuando navega por sitios web no confiables y potencialmente maliciosos mientras ejecuta su nodo YaCy en la misma computadora. -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Protección de todas las páginas: si está activada, el acceso a todas las páginas necesita autorización; Si está desactivado, solo las páginas con extensión "_p" están protegidas. -This setting is convenient but less secure than using a qualified admin account.==Esta configuración es conveniente pero menos segura que usar una cuenta de administrador calificada. -Username already used (not allowed).==Nombre de usuario ya utilizado (no permitido). #----------------------------- #File: ConfigAppearance_p.html @@ -732,8 +650,6 @@ Status page==Situación de la página Network pages==Páginas de red Surftips==Surftips News pages==Páginas de noticias -Blog==Blog -Wiki==Wiki Public bookmarks==Marcadores públicos Home Page==Homepage File Share==Compartir archivo @@ -2031,7 +1947,6 @@ The information that is presented on this page can also be retrieved as XML.==La Click the API icon to see the XML.==Haga clic en el icono APIpara ver el XML. Network Overview==Resumen de la Red Manually contacting Peer==Contacto manual con Peer -send Message/
    show Profile/
    edit Wiki/
    browse Blog==enviar Message/
    show Profile/
    edit Wiki/
    navegar Blog Search for a peername (RegExp allowed)==Buscar un nombre de usuario (RegExp permitido) "Search"=="Buscar" Name==Nombre @@ -2087,10 +2002,8 @@ strong query activity==actividad de consulta fuerte red lines==líneas rojas green lines==líneas verdes Network History==Historial de Red -"Blog updated"=="Blog actualizado" "Profile updated"=="Perfil actualizado" "Type: Virgin"=="Type: Virgin" -"Wiki updated"=="Wiki actualizado" "add Peer"=="agregar a Peer" Count of Connected Senior Peers in the last two days, scale = 1h==Conteode pares mayores conectadosen los últimos dos días, escala = 1h Count of all Active Peers Per Day in the last week, scale = 1d==Conteode todos los pares activos por díaen la última semana, escala = 1d @@ -2185,7 +2098,6 @@ Attributes==Atributos "Outgoing News"=="Noticias salientes" "Processed News"=="Noticias procesadas" "Published News"=="Noticias publicadas" -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Publicación de la traducción añadida o modificada para la interfaz de usuario. Otros pares pueden incluirla en su lista de traducciones locales. #----------------------------- #File: Performance_p.html @@ -2626,14 +2538,9 @@ Proxy Access Settings==Configuración de acceso proxy These settings configure the access method to your own http proxy and server.==Estos ajustes configuran el método de acceso a su propio proxy y servidor http. All traffic is routed through one single port, for both proxy and server.==Todo el tráfico se enruta a través de un solo puerto, tanto para proxy como para servidor. Server Access Restrictions==Restricciones de acceso al servidor -You can restrict the access to this proxy/server using a two-stage security barrier:==Puede restringir el acceso a este proxy/serverusando una barrera de seguridad de dos etapas: define an access domain with a list of granted client IP-numbers or with wildcards==definir un dominio de accesocon una lista de números IP de cliente concedidos o con comodines -define an user account with an user:password - pair==define an user account with an user:password - pair -This is the account that restricts access to the proxy function.==Esta es la cuenta que restringe el acceso a la función proxy. You probably don't want to share the proxy to the internet, so you should set the==Usted probablemente no desea compartir el proxy a Internet, así que usted debe establecer el IP-Number Access Domain to a pattern that corresponds to you local intranet.==Dominio de acceso IP-Number a un patrón que corresponda a su intranet local. -The default setting should be right in most cases. If you want, you can also set a proxy account==La configuración predeterminada debería ser correcta en la mayoría de los casos. Si lo desea, también puede establecer una cuenta proxy -so that every proxy user must authenticate first, but this is rather unusual.==para que cada usuario proxy debe autenticarse primero, pero esto es bastante inusual. IP-Number filter==IP-Number filter Always Fresh==Siempre fresco If unchecked, the proxy will act using Cache Fresh / Cache Stale rules. If checked, the cache is always fresh which means==Si no está marcado, el proxy actuará usando las reglas Cache Fresh / Cache State. Si está marcado, el caché siempre está fresco, lo que significa @@ -3161,44 +3068,6 @@ YaCy Debugging: Thread Dump==YaCy Debugging: Thread Dump Threaddump==Threaddump #----------------------------- -#File: Translator_p.html -#--------------------------- -Translation Editor==Editor de Traducción -UI Translation==Traducción UI -Source File==Archivo Fuente -view it==ver -filter untranslated==filtrar sin traducir -Source Text==Texto Original -"Save translation"=="Guardar traducción" -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Traducir texto no traducido de la interfaz de usuario (idioma actual). El archivo de traducción modificado se almacena en el directorioDATA/LOCALE. -#----------------------------- - -#File: User.html -#--------------------------- -User Page==Página de Usuario -Username:==Nombre de Usuario: -"login"=="Iniciar sesión" -old Password==contraseña anterior -new Password(repetition)==nueva contraseña (confirmar) -"Change"=="Modificar" -You are currently logged in as admin.==Actualmente está conectado como administrador. -(after logout you will be prompted for your password again. simply click "cancel")==(después de la salida se le pedirá para su contraseña de nuevo. simplemente haga clic en "cancelar") -Password was changed.==Se cambió la contraseña. -Old Password is wrong.==La vieja contraseña está mal. -New Password and its repetition do not match.==Nueva contraseña y su repetición no coinciden. -New Password is empty.==La nueva contraseña está vacía. -Cookie==Cookie -"green bar"=="Bar verde" -"logout"=="Logout" -"red bar"=="Bar rojo" -(Identified by==(Identificado por -IP==IP -Password:==Contraseña: -Username/Password==Username/Password -You are not logged in.==No has iniciado sesión. -new Password==nueva contraseña -#----------------------------- - #File: ViewFile.html #--------------------------- View URL Content==View URL Content @@ -3387,40 +3256,9 @@ size==Tamaño time==hora #----------------------------- -#File: Wiki.html -#--------------------------- -Grant Write Access to==Subvención de acceso escrito a -"all"=="todo" -"admin"=="admin" -Start Page==Página de inicio -Versions==Versiones -Author:==Autor: -You can use==Puede utilizar -"Submit"=="Enviar" -"Preview"=="Previsualizar" -"Discard"=="Descartar" -No changes have been submitted so far!==¡Hasta ahora no se han presentado cambios! -Subject==Asunto -Change Date==Cambiar fecha -Last Author==Último Autor -Compare version from==Comparar la versión de -"Show"=="Mostrar" -with version from==con la versión de -"Compare"=="Comparar" -Changes will be published as announcement on YaCyNews==Los cambios se publicarán como anuncio en YaCyNews -Edit==Editar -Preview==Vista previa -(only granted to admin)==(solo concedido al administrador) -Error==Error -Index -==Índice -Index==Indice -Text:==Texto: -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-Code -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Esta tabla contiene una breve descripción de las etiquetas que se pueden utilizar en el Wiki y varios otros servlets of YaCy. For a more detailed description visit the==de YaCy. Para una descripción más detallada visite el Description==Descripción These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics),==Estas etiquetas crean textos estresados. El primer par enfatiza el texto (la mayoría de los navegadores lo mostrarán en cursiva), @@ -3430,7 +3268,6 @@ These tags create a numbered list.==Estas etiquetas crean una lista numerada. These tags create an unnumbered list.==Estas etiquetas crean una lista no numerada. These tags create a definition list.==Estas etiquetas crean una lista de definición. This tag creates a horizontal line.==Esta etiqueta crea una línea horizontal. -This tag creates links to other pages of the wiki.==Esta etiqueta crea enlaces a otras páginas del wiki. This tag displays an image, it can be aligned left, right or center.==Esta etiqueta muestra una imagen, se puede alinear a la izquierda, derecha o centro. This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.==Esta etiqueta muestra un vídeo de Youtube o Vimeo con el id especificado y el ancho fijo425píxeles y la altura350píxeles. These tags create a table, whereas the first marks the beginning of the table, the second starts==Estas etiquetas crean una tabla, mientras que la primera marca el comienzo de la tabla, la segunda comienza @@ -3743,7 +3580,6 @@ Processed News==Noticias de procesadas Outgoing News==Noticias salientes de  Published News==Noticias de publicadas Community Data==Datos comunitarios -Local Peer Wiki==Wiki de pares locales Processes==Procesos Messages==Mensajes Overview==Resumen @@ -3758,7 +3594,6 @@ Surftips==Surftips System Administration==Administración del Sistema Advanced Settings==Configuración Avanzada Advanced Properties==Propiedades Avanzadas -UI Translations==UI Translations Performance Settings of Busy Queues==Ajustes de rendimiento de colas ocupadas Viewer and administration for database tables==Visor y administración para tablas de base de datos #----------------------------- @@ -3830,13 +3665,6 @@ Crawler/Spider==Crawler/Spider Network Harvesting==Cosecha de redes #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Publicación -Blog==Blog -Wiki==Wiki -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Ranking y Heurísticas @@ -3876,14 +3704,6 @@ Image Collage==Collage de imágenes Index Browser==Navegador de índices #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -Your Username/Password is wrong.==Your Username/Password is wrong. -"login"=="Iniciar sesión" -Password==Contraseña -Username==Nombre de Usuario -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Mensaje de Error @@ -4452,42 +4272,6 @@ Thread:==Thread: "Stop"=="Alto" #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User Accounts==Cuenta de usuario -User List==Lista de usuarios -Address==Dirección -First name==Nombre -Last Access==Último acceso -Last name==Apellido -Rights==Derechos -Time==Hora -Traffic==Tráfico -User==Usuario -#----------------------------- - -#File: ConfigUser_p.html -#--------------------------- -Username too short. Username must be >= 4 Characters.==Nombre de usuario demasiado corto. El nombre de usuario debe ser>=4Caracteres. -Username already used (not allowed).==Nombre de usuario ya utilizado (no permitido). -Passwords do not match.==Las contraseñas no coinciden. -User Account Editor==Editor de cuentas de usuario -back to user list==volver a la lista de usuarios -Generic error.==Error generico. -Rights:==Derechos: -"Delete User"=="Borrar usuario" -"Save User"=="Guardar usuario" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -Address==Dirección -First name==Nombre -Last name==Apellido -Password==Contraseña -Repeat password==Repite la contraseña -Time used==Tiempo utilizado -Timelimit==Plazo -Username==Nombre de Usuario -#----------------------------- - #File: ContentAnalysis_p.html #--------------------------- The quantRate is a measurement for the number of words that take part in a signature computation. The higher the number, the less==El quantRate es una medida para el número de palabras que participan en un cálculo de la firma. Cuanto mayor sea el número, menos @@ -4521,11 +4305,6 @@ Start URL==Start URL #File: SearchAccessRate_p.html #--------------------------- -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Cuando un usuario con derechos limitados (inautenticado o sin derecho de búsqueda extendido) excede un límite, el recurso a los resultados sólo se aplica a petición del servidor. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Cuando un usuario con derechos limitados (inautenticado o sin derecho de búsqueda extendido) excede un límite, el alcance de búsqueda se reduce únicamente a este índice de pares local. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Cuando un usuario con derechos limitados (inautenticado o sin derecho de búsqueda extendido) excede un límite, la estrategia de extracción de fragmentos cae de nuevo a 'CACHEONLY' -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Puede configurar aquí las limitaciones de la tasa de acceso a esta interfaz de búsqueda de pares por usuarios y usuarios no autenticados sin la derecha de búsqueda extendida -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Cuando un usuario con derechos limitados (inautenticado o sin derecho de búsqueda extendido) excede un límite, la búsqueda está bloqueada. Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Limitaciones de la tasa de acceso al modo de búsqueda par-to-par con JavaScript del lado del navegador Changes will take effect immediately.==Los cambios tendrán efecto inmediatamente. Access rate limitations to the peer-to-peer search mode.==Limitaciones de la tasa de acceso al modo de búsqueda entre pares. @@ -4552,21 +4331,6 @@ YaCy search==Búsqueda de YaCy CyTag Trails==Senderos de CyTag #----------------------------- -#File: TransNews_p.html -#--------------------------- -You can share your local addition to translations and distribute it to other peers.==Puede compartir su adición local a las traducciones y distribuirla a otros pares. -Translation:==Traducción: -English:==Inglés: -existing==existente -"negative vote"=="voto negativo" -"positive vote"=="voto positivo" -Originator==Creador -Vote on this translation. If you vote positive the translation is added to your local translation list.==Vote esta traducción. Si vota positivo, la traducción se añadirá a su lista local de traducciones. -File:==Archivo: -The remote peer can vote on your translation and add it to its own local translation.==El par remoto puede votar su traducción y añadirla a su propia traducción local. -"Publish"=="Publicar" -#----------------------------- - #File: VFS.html #--------------------------- User storage in the browser cache with file-system-like navigation.==Almacenamiento del usuario en la cache del navegador con navegación similar a un sistema de archivos. diff --git a/locales/fr.lng b/locales/fr.lng index 9fad61f14..3643addf9 100644 --- a/locales/fr.lng +++ b/locales/fr.lng @@ -158,54 +158,6 @@ Autocrawler automatically selects and adds tasks to the local crawl queue. This Deep crawl every Nth document:==Crawl approfondi tous les N documents : #----------------------------- -#File: Blog.html -Edit==éditer -#--------------------------- -Comments:==Commentaires : -deactivated==désactivés -moderated==modérés -Confirm deletion==Confirmation -Blog-Home==Accueil du blog -Author:==Auteur: -Subject:==Titre: -Text:==Texte: -"Submit"=="Envoyer" -"Preview"=="Aperçu" -"Discard"=="Annuler" -No changes have been submitted so far!==Aucun changement n'a été soumis ! -Access denied==Accès refusé -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Pour éditer ou créer des entrées dans ce blog, vous devez être enregistré en tant qu'administrateur ou en tant qu'utilisateur avec des droits d'accès au blog. -Import was successful!==L'importation a réussi ! -Import failed, maybe the supplied file was no valid blog-backup?==L'importation a échoué, peut-être que le fichier importé n'était pas une archive de blog valide? -Please select the XML-file you want to import:==Sélectionnez le fichier XML que vous souhaitez importer : -"Import"=="Importer" -"No, leave it."=="Non, laisse tomber." -"RSS"=="RSS" -"Yes, delete it."=="Oui, effacez-le." -<< previous entries==< < entrées précédentes -Are you sure...==Tu es sûr... -Preview==Aperçu -XML-Import==XML-Import -activated==activé -next entries >>==nouvelles entrées > > -#----------------------------- - -#File: BlogComments.html -Comments:==Commentaires : -Text:==Texte: -#--------------------------- -Blog-Home==Accueil du Blog -Author:==Auteur: -Subject:==Sujet: -"Submit"=="Valider" -"Preview"=="Aperçu" -"Discard"=='Annuler' -<< previous entries==< < entrées précédentes -Comment on this Blog==Commentaire sur ce Blog -Comments are not allowed for this posting!==Les commentaires ne sont pas autorisés pour cette publication! -next entries >>==nouvelles entrées > > -#----------------------------- - #File: BlacklistCleaner_p.html #--------------------------- Blacklist Cleaner==Nettoyage de Liste Noire @@ -307,42 +259,8 @@ start autosearch of new bookmarks==démarrer la recherche automatique de nouveau #File: ConfigAccounts_p.html #--------------------------- -User Accounts==Comptes utilisateurs -User Administration==Gestion des utilisateurs -Generic error.==Erreur générique. Passwords do not match.==Les mots de passe ne correspondent pas. -Username too short. Username must be >= 4 Characters.==Nom d'utilisateur trop court. Un nom d'utilisateur doit comporter plus de 4 caractères. Admin Account==Compte admin -Access from localhost without account==Accès sans compte à partir d'un navigateur local -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==L'accès à votre nœud depuis votre propre ordinateur (accès local) vous est donné avec des droits d'aministrateur. La création d'un compte administrateur n'est pas nécessaire. -This setting is convenient but less secure than using a qualified admin account.==Ce réglage est pratique mais moins sécurisé qu'un accès limité aux comptes autorisés. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Utilisez-le avec précaution, notamment lorsque vous consultez des sites web non fiables et potentiellement malveillants tout en faisant tourner votre nœud YaCy sur le même ordinateur. -Access only with qualified account==Accès avec un compte autorisé uniquement -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Nécessaire si vous désirez disposer d'un accès à distance à votre noeud, mais renforce également les contrôles d'accès aux fonctions d'administration de votre nœud. -Peer User:==Utilisateur du noeud: -New Peer Password:==Nouveau mot de passe du nœud: -Repeat Peer Password:==Entrer à nouveau le mot de passe du nœud: -"Define Administrator"=="Définir l'administrateur" -Select user==Choisir un utilisateur -New user==Nouvel utilisateur -Repeat password==Entrer à nouveau le mot de passe -First name==Prénom -Last name==Nom -Address==Adresse -Timelimit==Limite de temps -Time used==Temps utilisé -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Protection de toutes les pages: lorsqu'activé, l'accès à n'importe quelle page nécessite une authentification; lorsque désactivé, seules les pages avec l'extension "_p" sont protégées. -"Delete User"=="Supprimer l' utilisateur" -"Edit User"=="Modifier l' utilisateur" -"Save User"=="Enregistrer l' utilisateur" -"Set Access Rules"=="Définir les règles d'accès" -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==AVERTISSEMENT Cette instance YaCy peut être administrée avec le compte "admin" et le mot de passe par défaut "yacy". -Access Rules==Règles d'accès -Change the password as soon as possible!==Changez le mot de passe dès que possible ! -Password==Mot de passe -Rights:==Droits : -Username==Nom d'utilisateur -Username already used (not allowed).==Nom d'utilisateur déjà utilisé (non autorisé). #----------------------------- #File: ConfigAppearance_p.html @@ -1177,8 +1095,6 @@ Received
    URLs==URLs
    reçues "Profile updated"=="Profil mis à jour" -"Wiki updated"=="Wiki mis à jour" -"Blog updated"=="Blog mis à jour" "Accept Crawl: no"=="Accepter le crawl : non" "Accept Crawl: yes"=="Accepter le crawl : oui" "DHT Receive: no"=="Réception de la DHT: non" @@ -1293,7 +1209,6 @@ YaCy Network==Réseau YaCy Your Peer:==Votre pair: con/h
    ==pour /h
    ip:port==ip:port -send Message/
    show Profile/
    edit Wiki/
    browse Blog==envoyer Message/
    afficher Profil/
    modifier Wiki/
    parcourir Blog user agent
    ==agent utilisateur
    #----------------------------- @@ -1326,7 +1241,6 @@ Attributes==Attributs "Processed News"=="Nouvelles traitées" "Published News"=="Nouvelles publiées" Overview==Vue d'ensemble -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Publication de traduction ajoutée ou modifiée pour l'interface utilisateur. D'autres pairs peuvent l'inclure dans leur liste de traduction locale. #----------------------------- #File: Performance_p.html @@ -1888,43 +1802,12 @@ pending:==pending: the request.==la demande. #----------------------------- -#File: Wiki.html -Edit==éditer -Text:==Texte: -#--------------------------- -Start Page==Page de départ -Author:==Auteur: -You can use==Vous pouvez utiliser le -"Submit"=="Soumettre" -"Preview"=="Prévisualiser" -"Discard"=="Rejeter" -No changes have been submitted so far!==Aucun changement n'a plus été soumis! -Subject==Titre -Change Date==Date de modification -Last Author==Dernier auteur -Changes will be published as announcement on YaCyNews==Les modifications seront publiés sur YaCyNews. -"Compare"=="Compare" -"Show"=="Afficher" -"admin"=="admin" -"all"=="all" -(only granted to admin)==(uniquement accordé à l'administrateur) -Compare version from==Comparer la version à partir de -Error==Erreur -Grant Write Access to==Accès à l'écriture de la subvention -Index==Index -Index -==Table des matières -Preview==Aperçu -Versions==Versions -with version from==avec version à partir de -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Code==Code Description==Description text==Texte This tag creates a horizontal line.==Ces tags créent une ligne horizontale. -This tag creates links to other pages of the wiki.==Ce tag tire un lien vers une autre page Wiki. This tag creates links to external websites.==Ce tag crée un lien vers une page internet externe. This tag displays an image, it can be aligned left, right or center.==Ce tag affiche une image, elle peut être alignée à gauche, au centre ou à droite. If a line starts with a space, it will be displayed in a non-proportional font.==Si une ligne commence avec un espace, elle apparaîtra avec une fonte non proportionnelle. @@ -1946,7 +1829,6 @@ These tags create a table, whereas the first marks the beginning of the table, t These tags create an unnumbered list.==Ces balises créent une liste non numérotée. These tags create headlines. If a page has three or more headlines, a table of content will be created automatically. Headlines of level 1 will be ignored in the table of content.==Ces balises créent des titres. Si une page a trois titres ou plus, une table de contenu sera créée automatiquement. Les titres du niveau 1 seront ignorés dans la table de contenu. These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics),==Ces balises créent des textes stressés. La première paire met l'accent sur le texte (la plupart des navigateurs l'afficheront en italique), -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Ce tableau contient une brève description des balises qui peuvent être utilisées dans le Wiki et plusieurs autres servlets This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.==Cette balise affiche une vidéo Youtube ou Vimeo avec l'id spécifié et la largeur fixe 425 pixels et la hauteur 350 pixels. Wiki-Code==Wiki-Code [[Image:url]]==[[Image:url]] @@ -2190,7 +2072,6 @@ Processed News==Nouvelles traitées Outgoing News==Nouvelles sortantes Published News==Nouvelles publiées Community Data==Données communes -Local Peer Wiki==Wiki du noeud local Bookmarks==Signets Log Reports==Rapports de journaux Messages==Messages @@ -2206,7 +2087,6 @@ System Administration==Administration du système Advanced Settings==Paramètres avancés Advanced Properties==Configuration avancée Performance Settings of Busy Queues==Paramètres de performance des files d'attente occupées -UI Translations==Traductions de l'assurance-chômage Viewer and administration for database tables==Affichage et administration pour les tables de base de données #----------------------------- @@ -2346,20 +2226,6 @@ run regular==exécuter régulièrement to a scheduler for a periodic execution.==à un échéancier pour une exécution périodique. #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -Address==Adresse -First name==Prénom -Last name==Nom -User Accounts==Comptes utilisateurs -Last Access==Dernier accès -Rights==Droits -Time==Temps -Traffic==Trafic -User==Utilisateur -User List==Liste des utilisateurs -#----------------------------- - #File: ConfigNetwork_p.html #--------------------------- Network Configuration==Configuration réseau @@ -2522,7 +2388,6 @@ or extended to pages including such medias (provide generally more results, but #--------------------------- Surftips==Recommendations "Save restrictions"=="Enregistrer les restrictions" -Blog==Blog Deletion of==Suppression Deny access to==Refuser l'accès à Entire Peer==Tout à fait pair @@ -2537,7 +2402,6 @@ News pages==Pages d'actualité Public bookmarks==Signaux publics Status page==Page d'état Unable to access the local file:==Impossible d'accéder au fichier local: -Wiki==Wiki failed==échec htroot/robots.txt==htroot/robots.txt is a voluntary agreement most search-engines (including YaCy) follow.==est un accord volontaire la plupart des moteurs de recherche (y compris YaCy) suivent. @@ -2559,28 +2423,6 @@ You would need to change the following items:==Vous devez modifier les élément calls the normal YaCy search window.==appelle la fenêtre de recherche normale YaCy. #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -Address==Adresse -First name==Prénom -Generic error.==Erreur générique. -Last name==Nom -Passwords do not match.==Les mots de passe ne correspondent pas. -Repeat password==Entrer à nouveau le mot de passe -Time used==Temps utilisé -Timelimit==Limite de temps -Username too short. Username must be >= 4 Characters.==Nom d'utilisateur trop court. Un nom d'utilisateur doit comporter plus de 4 caractères. -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -"Delete User"=="Supprimer l' utilisateur" -"Save User"=="Enregistrer l' utilisateur" -Password==Mot de passe -Rights:==Droits : -User Account Editor==Éditeur de compte utilisateur -Username==Nom d'utilisateur -Username already used (not allowed).==Nom d'utilisateur déjà utilisé (non autorisé). -back to user list==retour à la liste des utilisateurs -#----------------------------- - #File: ContentAnalysis_p.html #--------------------------- "Set"=="Appliquer" @@ -3337,21 +3179,6 @@ search rows for==les lignes de recherche pour show max.==Afficher max. #----------------------------- -#File: TransNews_p.html -#--------------------------- -File:==Fichier: -Originator==Initiateur -"Publish"=="Publier" -"negative vote"=="vote négatif" -"positive vote"=="vote positif" -English:==Anglais : -The remote peer can vote on your translation and add it to its own local translation.==Le pair distant peut voter sur votre traduction et l'ajouter à sa propre traduction locale. -Translation:==Traduction : -Vote on this translation. If you vote positive the translation is added to your local translation list.==Votez sur cette traduction. Si vous votez positif, la traduction est ajoutée à votre liste de traduction locale. -You can share your local addition to translations and distribute it to other peers.==Vous pouvez partager votre ajout local aux traductions et le distribuer à d'autres pairs. -existing==existant -#----------------------------- - #File: Vocabulary_p.html #--------------------------- Delete==Supprimer @@ -4178,12 +4005,7 @@ Max searches in 3s==Max recherche dans 3s Peer-to-peer search==Recherche de pair à pair Peer-to-peer search with JavaScript results resorting==Recherche Peer-to-peer avec les résultats JavaScript resorting Remote snippet load==Charge à distance de l'extrait de code -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Lorsqu'un utilisateur avec des droits limités (non authentifiés ou sans droit de recherche étendu) dépasse une limite, la stratégie d'extraction des extraits revient à « CACHEONLY » -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Lorsqu'un utilisateur ayant des droits limités (non authentifiés ou sans droit de recherche étendu) dépasse une limite, le recours aux résultats ne devient applicable qu'à la demande, côté serveur. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Lorsqu'un utilisateur ayant des droits limités (non authentifiés ou sans droit de recherche étendu) dépasse une limite, la recherche est bloquée. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Lorsqu'un utilisateur ayant des droits limités (non authentifiés ou sans droit de recherche étendu) dépasse une limite, la portée de la recherche ne revient qu'à cet index local des pairs. YaCy search==Recherche YaCy -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Vous pouvez configurer ici les limitations du taux d'accès à cette interface de recherche par des utilisateurs non authentifiés et des utilisateurs sans droit de recherche étendu limitations==limitations #----------------------------- @@ -4351,17 +4173,12 @@ Send "Via" Header==Envoyer l'en-tête "Via" Send "X-Forwarded-For" Header==Envoyer l'en-tête "X-Forwarded-For" Server Access Restrictions==Restrictions d'accès aux serveurs Specifies if the proxy should send the X-Forwarded-For http header.==Spécifie si le proxy doit envoyer l'en-tête X-Forwarded-For http. -The default setting should be right in most cases. If you want, you can also set a proxy account==Le paramètre par défaut devrait être correct dans la plupart des cas. Si vous le souhaitez, vous pouvez également définir un compte proxy These settings configure the access method to your own http proxy and server.==Ces paramètres configurent la méthode d'accès à votre propre proxy et serveur http. -This is the account that restricts access to the proxy function.==C'est le compte qui limite l'accès à la fonction proxy. Transparent Proxy==Proxy transparent With this you can specify if YaCy can be used as transparent proxy.==Avec cela, vous pouvez spécifier si YaCy peut être utilisé comme proxy transparent. -You can restrict the access to this proxy/server using a two-stage security barrier:==Vous pouvez restreindre l'accès à ce proxy/serveur au moyen d'une barrière de sécurité en deux étapes : You probably don't want to share the proxy to the internet, so you should set the==Vous ne voulez probablement pas partager le proxy à l'Internet, donc vous devriez définir le define an access domain with a list of granted client IP-numbers or with wildcards==définir un domaine d'accèsavec une liste de numéros IP clients accordés ou avec wildcards -define an user account with an user:password - pair==définir un compte utilisateuravec une paire user:password - http header according to RFC 2616 Sect 14.45.==En-tête http selon RFC 2616 Article 14.45. -so that every proxy user must authenticate first, but this is rather unusual.==afin que chaque utilisateur du proxy doive d'abord s'authentifier, mais c'est plutôt inhabituel. that a page is never loaded again if it was already stored in the cache. However, if the page does not exist in the cache, it will be loaded in any case.==qu'une page n'est plus jamais chargée si elle a déjà été stockée dans le cache. Cependant, si la page n'existe pas dans le cache, elle sera en tout cas chargée. #----------------------------- @@ -4447,44 +4264,6 @@ maxCallsPerTurn==maxCallsPerTurn CyTag Trails==Sentiers CyTag #----------------------------- -#File: Translator_p.html -#--------------------------- -"Save translation"=="Enregistrer la traduction" -Source File==Fichier source -Source Text==Texte source -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Traduire le texte non traduit de l'interface utilisateur (langue courante). Le fichier de traduction modifié est stocké dans le répertoire DATA/LOCALE. -Translation Editor==Éditeur de traduction -UI Translation==Traduction de l'interface utilisateur -filter untranslated==filtre non traduit -view it==Regardez-la. -#----------------------------- - -#File: User.html -#--------------------------- -"Change"=="Changer" -"green bar"=="barre verte" -"login"=="connexion" -"logout"=="déconnexion" -"red bar"=="barre rouge" -(Identified by==(Identifié par -(after logout you will be prompted for your password again. simply click "cancel")==(après la déconnexion, votre mot de passe vous sera demandé à nouveau. cliquez simplement sur "annuler") -Cookie==Cookie -IP==IP -New Password and its repetition do not match.==Le nouveau mot de passe et sa répétition ne correspondent pas. -New Password is empty.==Le nouveau mot de passe est vide. -Old Password is wrong.==L'ancien mot de passe est faux. -Password was changed.==Le mot de passe a été modifié. -Password:==Mot de passe : -User Page==Page utilisateur -Username/Password==Username/Password -Username:==Nom d'utilisateur : -You are currently logged in as admin.==Vous êtes actuellement connecté en tant qu'administrateur. -You are not logged in.==Vous n'êtes pas connecté. -new Password==nouveau mot de passe -new Password(repetition)==nouveau mot de passe(répétition) -old Password==ancien mot de passe -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Navigateur du système de fichiers" @@ -4682,13 +4461,6 @@ Search Box Anywhere==Boîte de recherche n'importe où User Profile==Profil de l'utilisateur #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Blog==Blog -Publication==Publication -Wiki==Wiki -#----------------------------- - #File: goto_p.html #--------------------------- forward to remote peer==transmettre à un pair distant @@ -4720,14 +4492,6 @@ This browser does not have a Java Plug-in.==Ce navigateur n'a pas de plug-in Jav domaingraph : Built with Processing==domaine: Construit avec traitement #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="connexion" -Password==Mot de passe -Username==Nom d'utilisateur -Your Username/Password is wrong.==Votre nom d'utilisateur ou mot de passe est incorrect. -#----------------------------- - #File: proxymsg/error.html #--------------------------- Could not load resource. The file is not available.==Impossible de charger la ressource. Le fichier n'est pas disponible. diff --git a/locales/hi.lng b/locales/hi.lng index afc0c1be1..25edb51f7 100644 --- a/locales/hi.lng +++ b/locales/hi.lng @@ -327,54 +327,6 @@ An error occurred while editing the following entries. Please check syntax.==न Activate this list for ...==इस सूची को सक्रिय करें... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="सबमिट " -"Preview"=="प्रीव्यू " -"Discard"=="दिस्कार्द " -"Yes, delete it."=="हाँ, इसे हटा दें." -"No, leave it."=="नहीं, छोड़ो." -"Import"=="आयात" -<< previous entries==<< पिछली प्रविष्टियाँ -next entries >>==अगली प्रविष्टियाँ >> -Blog-Home==ब्लॉग घर -Edit==एडिट -Author:==लेखक: -Subject:==विषय: -Text:==मूलपाठ: -Comments:==टिप्पणी: -deactivated==निष्क्रिय -activated==सक्रिय -moderated==मॉडरेटेड -Preview==पूर्व दर्शन -No changes have been submitted so far!==अभी तक कोई चनगेस सबमिट नहीं हुआ ! -Access denied==ऐक्सेस डिनाइड -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==यदि आप नया ब्लॉग या एडिट करना चाहते है तो आपको एडमिन से लॉग इन होना होगा या यूजर जिसके पास ब्लॉग राईट हो -Are you sure...==क्या आपको यकीन है... -Confirm deletion==हटाने की पुष्टि -XML-Import==XML-आयात -Import was successful!==इम्पोर्ट सफल रहा ! -Import failed, maybe the supplied file was no valid blog-backup?==इम्पोर्ट असफल रहा ! शायद यह फाइल सही नहीं है ? -Please select the XML-file you want to import:==क्स्म्ल फाइल सेलेक्ट करे जो आपको इम्पोर्ट करनी है : -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="सबमिट" -"Preview"=="प्रीव्यू" -"Discard"=="दिस्कार्द" -Blog-Home==ब्लॉग घर -Comments:==टिप्पणी: -<< previous entries==<< पिछली प्रविष्टियाँ -next entries >>==अगली प्रविष्टियाँ >> -Comments are not allowed for this posting!==इस पोस्टिंग के लिए टिप्पणियों की अनुमति नहीं है! -Comment on this Blog==इस ब्लॉग पर टिप्पणी करें -Author:==लेखक: -Subject:==विषय: -Text:==मूलपाठ: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -442,58 +394,10 @@ Private Queue==निजी कतार Public Queue==सार्वजनिक कतार #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==उपयोगकर्ता सूची -User Accounts==उपयोगकर्ता खातों -User==उपयोगकर्ता -First name==पहला नाम -Last name==पिछला नाम -Address==पता -Last Access==अंतिम पहुंच -Rights==अधिकार -Time==समय -Traffic==ट्रैफ़िक -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="एडमिनिस्ट्रेशन को परिभाषित करे" -"Set Access Rules"=="प्रवेश नियम निर्धारित करें" -"Edit User"=="यूजर को संपादित करो" -"Delete User"=="उपयोगकर्ता हटाएँ" -"Save User"=="उपयोगकर्ता सहेजें" -User Administration==उपयोगकर्ता एडमिनिस्ट्रेशन -Generic error.==सामान्य एरर . Passwords do not match.==पासवर्ड मेल नहीं खाते. -Username too short. Username must be >= 4 Characters.==उपयोक्तानाम बहुत छोटा है. उपयोगकर्ता नाम >= 4 अक्षर होना चाहिए। -Username already used (not allowed).==उपयोगकर्ता नाम पहले ही उपयोग किया जा चुका है (अनुमति नहीं है)। -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING इस YaCy उदाहरण को खाता "एडमिन" और डिफ़ॉल्ट पासवर्ड "yacy" के साथ प्रशासित किया जा सकता है। -Change the password as soon as possible!==जितनी जल्दी हो सके पासवर्ड बदलें! Admin Account==एडमिनिस्ट्रेशन खाता -Access from localhost without account==खाते के बिना लोकलहोस्ट से एक्सेस करे. -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==आपके अपने कंप्यूटर से आपके सहकर्मी तक पहुंच (लोकलहोस्ट एक्सेस) प्रशासकीय अधिकारों के साथ प्रदान की जाती है। प्रशासन खाते को कॉन्फ़िगर करने की कोई आवश्यकता नहीं है. -This setting is convenient but less secure than using a qualified admin account.==यह सेटिंग सुविधाजनक है लेकिन किसी योग्य व्यवस्थापक खाते का उपयोग करने की तुलना में कम सुरक्षित है। -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==कृपया सावधानी से उपयोग करें, विशेष रूप से जब आप उसी कंप्यूटर पर अपना YaCy सहकर्मी चलाते समय अविश्वसनीय और संभावित रूप से दुर्भावनापूर्ण वेबसाइट ब्राउज़ करते हैं। -Access only with qualified account==योग्य खाते के साथ ही प्रवेश है . -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==यदि आप अपने सहकर्मी तक दूरस्थ पहुंच चाहते हैं तो यह आवश्यक है, लेकिन यह आपके सहकर्मी के प्रशासन संचालन पर पहुंच नियंत्रण को भी सख्त कर देता है। -Peer User:==पीयर यूज़र: -New Peer Password:==नया पीयर पासवर्ड : -Repeat Peer Password:==पीयर पासवर्ड दोहराएँ : -Access Rules==प्रवेश नियम -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==सभी पृष्ठों की सुरक्षा: यदि चालू पर सेट है, तो सभी पृष्ठों तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है; यदि बंद है, तो केवल "_p" एक्सटेंशन वाले पृष्ठ सुरक्षित हैं। -User Accounts==उपयोगकर्ता खातों -Select user==उपयोगकर्ता का चयन करें -New user==नया उपयोगकर्ता -Username==उपयोगकर्ता नाम -Password==पासवर्ड -Repeat password==पासवर्ड दोहराएँ -First name==पहला नाम -Last name==पिछला नाम -Address==पता -Rights:==अधिकार: -Timelimit==समय सीमा -Time used==समय का इस्तेमाल #----------------------------- #File: ConfigAppearance_p.html @@ -871,8 +775,6 @@ Status page==स्थिति पेज Network pages==नेटवर्क पृष्ठों Surftips==der Surftipps News pages==समाचार पृष्ठों -Blog==ब्लॉग -Wiki==विकि Public bookmarks==ीलोक बुकमार्क्स Home Page==मुख पृष्ठ File Share==फ़ाइल शेयर @@ -1032,28 +934,6 @@ manual update:
    apt-get update && apt-get install yacy==मैन् automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==स्वचालित अद्यतन: निम्न पंक्ति को /etc/crontab
    0 6 * * * रूट apt-get update && apt-get -y --force-yes install yacy में जोड़ें #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="उपयोगकर्ता सहेजें" -"Delete User"=="उपयोगकर्ता हटाएँ" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==उपयोगकर्ता खाता संपादक -Generic error.==सामान्य एरर . -Passwords do not match.==पासवर्ड मेल नहीं खाते. -Username too short. Username must be >= 4 Characters.==उपयोक्तानाम बहुत छोटा है. उपयोगकर्ता नाम >= 4 अक्षर होना चाहिए। -Username already used (not allowed).==उपयोगकर्ता नाम पहले ही उपयोग किया जा चुका है (अनुमति नहीं है)। -Username==उपयोगकर्ता नाम -Password==पासवर्ड -Repeat password==पासवर्ड दोहराएँ -First name==पहला नाम -Last name==पिछला नाम -Address==पता -Rights:==अधिकार: -Timelimit==समय सीमा -Time used==समय का इस्तेमाल -back to user list==उपयोगकर्ता सूची पर वापस जाएँ -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==सर्वर कनेक्शन ट्रैकिंग @@ -2460,8 +2340,6 @@ inbox==इनबॉक्स "DHT Receive: yes"=="DHT प्राप्त करें: हाँ" "DHT receive enabled"=="DHT सक्षम प्राप्त करें" "Profile updated"=="प्रोफाइल अद्यतन किया गया" -"Wiki updated"=="विकी अद्यतन किया गया" -"Blog updated"=="ब्लॉग अपडेट किया गया" "Crawl"=="घुटनों के बल चलना" "The YaCy Network"=="YaCy नेटवर्क" "Type: Virgin"=="प्रकार: वर्जिन" @@ -2507,7 +2385,6 @@ Received DHT
    Word Chunks==DHT
    शब्द खंड प्राप् Received
    URLs==प्राप्त
    URL Location==जगह user agent
    ==उपयोगकर्ता एजेंट
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==भेजें Message/
    show Profile/
    संपादित करें Wiki/
    ब्राउज़ करें Bलॉग Network==नेटवर्क Online Peers==ऑनलाइन सहकर्मी Number of
    Documents==
    दस्तावेज़ों की संख्या @@ -2578,7 +2455,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==हाल ही में शुरू किए गए क्रॉल वाली एक तालिका इंडेक्स क्रिएट - पेज पर प्रस्तुत की गई है A change in the personal profile will create a news entry. You can see recently made changes of==व्यक्तिगत प्रोफ़ाइल में परिवर्तन से एक समाचार प्रविष्टि बनेगी. आप हाल ही में किए गए परिवर्तन देख सकते हैं profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==नेटवर्क पेज पर प्रोफ़ाइल प्रविष्टियाँ, जहाँ उस प्रोफ़ाइल परिवर्तन को 'पी' (प्रोफ़ाइल) - चयनकर्ता के बगल में '*' के साथ देखा जाता है। -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==उपयोगकर्ता इंटरफ़ेस के लिए जोड़े गए या संशोधित अनुवाद का प्रकाशन। अन्य साथी इसे अपनी स्थानीय अनुवाद सूची में शामिल कर सकते हैं। More news services will follow.==अधिक समाचार सेवाएँ अनुसरण करेंगी। Above you can see four menus:==ऊपर आप चार मेनू देख सकते हैं: Only these news will be used to display specific news services as explained above.==जैसा कि ऊपर बताया गया है, केवल इन समाचारों का उपयोग विशिष्ट समाचार सेवाओं को प्रदर्शित करने के लिए किया जाएगा। @@ -2984,23 +2860,18 @@ Age==आयु "Reset to defaults settings"=="डिफ़ॉल्ट सेटिंग्स पर रीसेट करें" limitations==सीमाएँ Local Search access rate limitations==स्थानीय खोज पहुंच दर सीमाएँ -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==आप यहां अप्रमाणित उपयोगकर्ताओं और विस्तारित खोज अधिकार के बिना उपयोगकर्ताओं द्वारा इस सहकर्मी खोज इंटरफ़ेस तक पहुंच दर पर सीमाएं कॉन्फ़िगर कर सकते हैं YaCy search==YaCy खोजें Access rate limitations to this peer search interface.==इस सहकर्मी खोज इंटरफ़ेस तक पहुंच दर की सीमाएं। -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==जब सीमित अधिकारों (अप्रमाणित या विस्तारित खोज अधिकार के बिना) वाला उपयोगकर्ता एक सीमा से अधिक हो जाता है, तो खोज अवरुद्ध हो जाती है। Max searches in 3s==अधिकतम 3s में खोज करता है Max searches in 1mn==अधिकतम 1 मिलियन में खोजें Max searches in 10mn==अधिकतम 10 मिलियन में खोज Peer-to-peer search==सहकर्मी से सहकर्मी खोज Access rate limitations to the peer-to-peer search mode.==पीयर-टू-पीयर खोज मोड तक पहुंच दर सीमाएं। -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==जब सीमित अधिकारों (अप्रमाणित या विस्तारित खोज अधिकार के बिना) वाला कोई उपयोगकर्ता एक सीमा से अधिक हो जाता है, तो खोज का दायरा केवल इस स्थानीय सहकर्मी सूचकांक पर वापस आ जाता है। Max searches in 10mn==अधिकतम 10 मिलियन में खोज Peer-to-peer search with JavaScript results resorting==JavaScript परिणामों के साथ पीयर-टू-पीयर खोज का सहारा लेना Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==ब्राउज़र-साइड JavaScript परिणामों के सक्षम होने के साथ पीयर-टू-पीयर खोज मोड तक पहुंच दर सीमाएं -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==जब सीमित अधिकारों (अप्रमाणित या विस्तारित खोज अधिकार के बिना) वाला कोई उपयोगकर्ता एक सीमा से अधिक हो जाता है, तो सहारा लेने वाले परिणाम केवल मांग, सर्वर-साइड पर लागू होते हैं। Remote snippet load==रिमोट स्निपेट लोड Limitations on snippet loading from remote websites.==दूरस्थ वेबसाइटों से स्निपेट लोड करने की सीमाएँ। -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==जब सीमित अधिकारों (अप्रमाणित या विस्तारित खोज अधिकार के बिना) वाला कोई उपयोगकर्ता एक सीमा से अधिक हो जाता है, तो स्निपेट लाने की रणनीति 'CACHEONLY' पर वापस आ जाती है। Max searches in 3s==अधिकतम 3s में खोज करता है Changes will take effect immediately.==परिवर्तन तुरंत प्रभावी होंगे। #----------------------------- @@ -3225,14 +3096,9 @@ These settings configure the access method to your own http proxy and server.== All traffic is routed through one single port, for both proxy and server.==प्रॉक्सी और सर्वर दोनों के लिए सभी ट्रैफ़िक को एक ही पोर्ट के माध्यम से रूट किया जाता है। HTTPS Server Port:==HTTPS सर्वर पोर्ट: Server Access Restrictions==सर्वर पहुंच प्रतिबंध -You can restrict the access to this proxy/server using a two-stage security barrier:==आप दो-चरणीय सुरक्षा अवरोध का उपयोग करके इस प्रॉक्सी/server तक पहुंच को प्रतिबंधित कर सकते हैं: define an access domain with a list of granted client IP-numbers or with wildcards==एक्सेस डोमेन को स्वीकृत क्लाइंट IP-नंबरों की सूची या वाइल्डकार्ड के साथ परिभाषित करें -define an user account with an user:password - pair==एक उपयोगकर्ता के साथ एक उपयोगकर्ता खाता परिभाषित करें: पासवर्ड - जोड़ी -This is the account that restricts access to the proxy function.==यह वह खाता है जो प्रॉक्सी फ़ंक्शन तक पहुंच को प्रतिबंधित करता है। You probably don't want to share the proxy to the internet, so you should set the==आप शायद प्रॉक्सी को इंटरनेट पर साझा नहीं करना चाहते हैं, इसलिए आपको इसे सेट करना चाहिए IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-नंबर एक्सेस डोमेन एक पैटर्न पर जो आपके स्थानीय इंट्रानेट से मेल खाता है। -The default setting should be right in most cases. If you want, you can also set a proxy account==अधिकांश मामलों में डिफ़ॉल्ट सेटिंग सही होनी चाहिए. आप चाहें तो प्रॉक्सी अकाउंट भी सेट कर सकते हैं -so that every proxy user must authenticate first, but this is rather unusual.==ताकि प्रत्येक प्रॉक्सी उपयोगकर्ता को पहले प्रमाणित करना पड़े, लेकिन यह असामान्य है। IP-Number filter==IP-संख्या फ़िल्टर Accounts==हिसाब किताब #----------------------------- @@ -3623,59 +3489,6 @@ Save Tools Configuration==उपकरण कॉन्फ़िगरेशन CyTag Trails==साइटैग ट्रेल्स #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="प्रकाशित करना" -"negative vote"=="नकारात्मक वोट" -"positive vote"=="सकारात्मक वोट" -You can share your local addition to translations and distribute it to other peers.==आप अनुवादों में अपना स्थानीय जोड़ साझा कर सकते हैं और इसे अन्य साथियों को वितरित कर सकते हैं। -The remote peer can vote on your translation and add it to its own local translation.==दूरस्थ सहकर्मी आपके अनुवाद पर वोट कर सकता है और इसे अपने स्थानीय अनुवाद में जोड़ सकता है। -File:==फाइल : -Originator==लेखक -English:==अंग्रेज़ी: -existing==मौजूदा -Translation:==अनुवाद: -Vote on this translation. If you vote positive the translation is added to your local translation list.==इस अनुवाद पर वोट करें. यदि आप सकारात्मक वोट करते हैं तो अनुवाद आपकी स्थानीय अनुवाद सूची में जोड़ दिया जाता है। -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="अनुवाद सहेजें" -Translation Editor==अनुवाद संपादक -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==उपयोगकर्ता इंटरफ़ेस (वर्तमान भाषा) के अअनुवादित पाठ का अनुवाद करें। संशोधित अनुवाद फ़ाइल DATA/LOCALE निर्देशिका में संग्रहीत है। -UI Translation==यूआई अनुवाद -Source File==स्रोत दस्तावेज -view it==उसे देखें -filter untranslated==अनअनुवादित फ़िल्टर करें -Source Text==स्रोत इबारत -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="लॉग इन करें" -"logout"=="लॉग आउट" -"red bar"=="लाल पट्टी" -"green bar"=="हरी पट्टी" -"Change"=="परिवर्तन" -User Page==उपयोगकर्ता पृष्ठ -You are not logged in.==आपने लॉग - इन नहीं किया। -Username:==उपयोगकर्ता नाम: -Password:==पासवर्ड: -(Identified by==(द्वारा पहचाना गया -IP==IP -Username/Password==उपयोगकर्ता नाम/Password -Cookie==कुकी -old Password==पुराना पासवर्ड -new Password==नया पासवर्ड -new Password(repetition)==नया पासवर्ड (पुनरावृत्ति) -You are currently logged in as admin.==आप वर्तमान में व्यवस्थापक के रूप में लॉग इन हैं। -(after logout you will be prompted for your password again. simply click "cancel")==(लॉगआउट के बाद आपसे दोबारा पासवर्ड मांगा जाएगा। बस "रद्द करें" पर क्लिक करें) -Password was changed.==पासवर्ड बदल दिया गया था. -Old Password is wrong.==पुराना पासवर्ड ग़लत है. -New Password and its repetition do not match.==नया पासवर्ड और उसकी पुनरावृत्ति मेल नहीं खाती. -New Password is empty.==नया पासवर्ड खाली है. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="फ़ाइल सिस्टम ब्राउज़र" @@ -3879,40 +3692,9 @@ Other Dot==अन्य बिंदु Dot-end==बिंदु-अंत #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="सभी" -"admin"=="व्यवस्थापक" -"Submit"=="सबमिट " -"Preview"=="प्रीव्यू " -"Discard"=="दिस्कार्द " -"Show"=="दिखाओ" -"Compare"=="तुलना करें" -(only granted to admin)==(केवल व्यवस्थापक को दिया गया) -Index -==अनुक्रमणिका - -Grant Write Access to==लिखने तक पहुंच प्रदान करें -Edit==एडिट -Author:==लेखक: -Text:==मूलपाठ: -Preview==पूर्व दर्शन -No changes have been submitted so far!==अभी तक कोई चनगेस सबमिट नहीं हुआ ! -Index==अनुक्रमणिका -Subject==विषय -Change Date==बदलाव दिनांक -Last Author==अंतिम लेखक -Start Page==पृष्ठ आरंभ करें -Versions==संस्करणों -Compare version from==से संस्करण की तुलना करें -with version from==से संस्करण के साथ -Error==गलती -You can use==आप उपयोग कर सकते हैं -Changes will be published as announcement on YaCyNews==परिवर्तन YaCyNews पर घोषणा के रूप में प्रकाशित किए जाएंगे -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==विकी-कोड -This table contains a short description of the tags that can be used in the Wiki and several other servlets==इस तालिका में उन टैगों का संक्षिप्त विवरण है जिनका उपयोग विकी और कई अन्य सर्वलेट्स में किया जा सकता है of YaCy. For a more detailed description visit the==YaCy का. अधिक विस्तृत विवरण के लिए यहां जाएं Code==कोड Description==विवरण @@ -3937,7 +3719,6 @@ These tags create a definition list.==ये टैग एक परिभाष This tag creates a horizontal line.==यह टैग एक क्षैतिज रेखा बनाता है. [[pagename]]==[[पेजनाम]] [[pagename|description]]==[[पेजनाम|विवरण]] -This tag creates links to other pages of the wiki.==यह टैग विकी के अन्य पेजों के लिए लिंक बनाता है। [url]==[यूआरएल] [url description]==[यूआरएल विवरण] This tag creates links to external websites.==यह टैग बाहरी वेबसाइटों के लिए लिंक बनाता है। @@ -4262,7 +4043,6 @@ Outgoing News==निवर्तमान समाचार Published News==प्रकाशित समाचार Community Data==सामुदायिक डेटा Surftips==सर्फ टिप्स -Local Peer Wiki==स्थानीय सहकर्मी विकी Bookmarks==बुकमार्क #----------------------------- @@ -4273,7 +4053,6 @@ Advanced Settings==एडवांस सेटिंग Performance Settings of Busy Queues==व्यस्त कतारों की प्रदर्शन सेटिंग्स Viewer and administration for database tables==डेटाबेस तालिकाओं के लिए दर्शक और प्रशासन Advanced Properties==उन्नत गुण -UI Translations==यूआई अनुवाद #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4381,13 +4160,6 @@ User Profile==उपयोगकर्ता रूपरेखा Local robots.txt==स्थानीय robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==प्रकाशन -Wiki==विकि -Blog==ब्लॉग -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==रैंकिंग और अनुमान @@ -4534,14 +4306,6 @@ Get the latest Java Plug-in here.==नवीनतम Java प्लग-इन Built with Processing==प्रसंस्करण के साथ निर्मित #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="लॉग इन करें" -Your Username/Password is wrong.==आपका उपयोक्तानाम/Password ग़लत है. -Username==उपयोगकर्ता नाम -Password==पासवर्ड -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: त्रुटि संदेश diff --git a/locales/it.lng b/locales/it.lng index a3b39da34..43f79b2a0 100644 --- a/locales/it.lng +++ b/locales/it.lng @@ -226,54 +226,6 @@ News==Notizie Proxy==Proxy #----------------------------- -#File: Blog.html -#--------------------------- -Blog-Home==Blog-Home -Author:==Autore: -Subject:==Argomento: -Comments:==Osservazioni: -deactivated==disattivato -moderated==moderata -"Submit"=="Invia" -"Preview"=="Anteprima" -"Discard"=="Scarta" -No changes have been submitted so far!==Finora non sono state presentate modifiche! -Access denied==Accesso negato -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Per modificare o creare blog-enties è necessario essere loggati come amministratore o utente che ha diritti di Blog. -Confirm deletion==Conferma cancellazione -Import was successful!==L'importazione ha avuto successo! -Import failed, maybe the supplied file was no valid blog-backup?==Importazione non riuscita, forse il file fornito non era valido blog-backup? -Please select the XML-file you want to import:==Please select the XML-file you want to import: -Edit==Modifica -Preview==Anteprima -"RSS"=="RSS" -"No, leave it."=="No, lascia stare." -"Yes, delete it."=="Sì, cancellalo." -<< previous entries==<< voci precedenti -Are you sure...==Sei sicuro... -XML-Import==XML-Import -activated==attivato -next entries >>==voci successive>> -Text:==Testo: -"Import"=="Importa" -#----------------------------- - -#File: BlogComments.html -#--------------------------- -Blog-Home==Blog-Home -Author:==Autore: -Subject:==Argomento: -"Submit"=="Invia" -"Preview"=="Anteprima" -"Discard"=="Scarta" -Comments:==Osservazioni: -<< previous entries==<< voci precedenti -next entries >>==voci successive>> -Comment on this Blog==Commenta questo Blog -Comments are not allowed for this posting!==I commenti non sono ammessi per questo invio! -Text:==Testo: -#----------------------------- - #File: Bookmarks.html #--------------------------- The bookmarks list can also be retrieved as RSS feed. This can also be done when you select a specific tag.==L'elenco dei segnalibri puo essere recuperato anche come feed RSS. Questo e possibile anche quando selezioni un tag specifico. @@ -353,42 +305,8 @@ loading....==caricamento... #File: ConfigAccounts_p.html #--------------------------- -User Accounts==Account utenti -User Administration==Amministrazione utenti -Generic error.==Errore generico. Passwords do not match.==Le password non corrispondono. -Username too short. Username must be >= 4 Characters.==Username too short. Username must be >= 4 Characters. Admin Account==Account admin -Access from localhost without account==Accesso da localhost senza account -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==L'accesso al tuo peer dal tuo computer (localhost access) è concesso con diritti di amministratore. Non è necessario configurare un account di amministrazione. -Access only with qualified account==Accesso solo con account qualificato -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Questo è necessario se si desidera un accesso remoto al vostro peer, ma indurisce anche i controlli di accesso sulle operazioni di amministrazione del vostro peer. -Peer User:==Utente peer: -New Peer Password:==Nuova password Peer: -Repeat Peer Password:==Ripeti la password di Peer: -"Define Administrator"=="Imposta amministratore" -Select user==Selezione utente -New user==Nuovo utente -Repeat password==Ripetere la password -First name==Nome di battesimo -Last name==Cognome -Address==Indirizzo -Timelimit==Termine -Time used==Tempo utilizzato -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==ATTENZIONE Questa istanza YaCy può essere amministrata con l'account "admin" e la password predefinita "yacy." -Password==Password -Rights:==Diritti: -Username==Nome utente -"Delete User"=="Elimina utente" -"Edit User"=="Modifica utente" -"Save User"=="Salva utente" -"Set Access Rules"=="Imposta regole di accesso" -Access Rules==Regole di accesso -Change the password as soon as possible!==Cambia la password il prima possibile! -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Si prega di utilizzare con cura, in particolare quando si naviga siti Web non fidati e potenzialmente dannosi durante l'esecuzione di YaCy peer sullo stesso computer. -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Protezione di tutte le pagine: se impostato su, l'accesso a tutte le pagine necessita di autorizzazione; se spento, sono protette solo le pagine con estensione "_p." -This setting is convenient but less secure than using a qualified admin account.==Questa impostazione è comoda ma meno sicura rispetto all'utilizzo di un account amministratore qualificato. -Username already used (not allowed).==Nome utente già utilizzato (non consentito). #----------------------------- #File: ConfigAppearance_p.html @@ -738,8 +656,6 @@ Status page==Pagina di stato Network pages==Pagine di rete Surftips==SurftipsCity name (optional, probably does not need a translation) News pages==Pagine di notizie -Blog==Blog -Wiki==Wiki Public bookmarks==Segnalibri pubblici Home Page==Homepage File Share==Condividi file @@ -2037,7 +1953,6 @@ The information that is presented on this page can also be retrieved as XML.==Le Click the API icon to see the XML.==Click the API icon to see the XML. Network Overview==Panoramica rete Manually contacting Peer==Contattare manualmente Peer -send Message/
    show Profile/
    edit Wiki/
    browse Blog==send  M essage/
    show  P rofile/
    edit  W iki/
    browse  B log Search for a peername (RegExp allowed)==Cerca un nome peer (Permesso RegExp) "Search"=="Cerca" Name==Nome @@ -2093,10 +2008,8 @@ strong query activity==forte attività di query red lines==linee rosse green lines==linee verdi Network History==Storia rete -"Blog updated"=="Blog aggiornato" "Profile updated"=="Profilo aggiornato" "Type: Virgin"=="Type: Virgin" -"Wiki updated"=="Wiki aggiornato" "add Peer"=="add Peer" Count of Connected Senior Peers in the last two days, scale = 1h==Count of Connected Senior Peers in the last two days, scale = 1h Count of all Active Peers Per Day in the last week, scale = 1d==Count of all Active Peers Per Day in the last week, scale = 1d @@ -2191,7 +2104,6 @@ Attributes==Attributi "Outgoing News"=="Notizie in uscita" "Processed News"=="News Processed" "Published News"=="Notizie pubblicate" -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list. #----------------------------- #File: Performance_p.html @@ -2632,14 +2544,9 @@ Proxy Access Settings==Impostazioni di accesso proxy These settings configure the access method to your own http proxy and server.==Queste impostazioni configurano il metodo di accesso al proprio proxy e server http. All traffic is routed through one single port, for both proxy and server.==Tutto il traffico è instradato attraverso una sola porta, sia per proxy che per server. Server Access Restrictions==Restrizioni di accesso al server -You can restrict the access to this proxy/server using a two-stage security barrier:==Puoi limitare l'accesso a questo proxy/server usando una barriera di sicurezza a due livelli: define an access domain with a list of granted client IP-numbers or with wildcards==define an access domain with a list of granted client IP-numbers or with wildcards -define an user account with an user:password - pair==define an user account with an user: password - pair -This is the account that restricts access to the proxy function.==Questo è l'account che limita l'accesso alla funzione proxy. You probably don't want to share the proxy to the internet, so you should set the==Probabilmente non si desidera condividere il proxy a Internet, quindi si dovrebbe impostare il IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-Number Access Domain to a pattern that corresponds to you local intranet. -The default setting should be right in most cases. If you want, you can also set a proxy account==The default setting should be right in most cases. If you want, you can also set a proxy account -so that every proxy user must authenticate first, but this is rather unusual.==in modo che ogni utente proxy deve prima autenticarsi, ma questo è piuttosto insolito. IP-Number filter==IP-Number filter Always Fresh==Sempre fresco If unchecked, the proxy will act using Cache Fresh / Cache Stale rules. If checked, the cache is always fresh which means==If unchecked, the proxy will act using Cache Fresh / Cache Stale rules. If checked, the cache is always fresh which means @@ -3167,44 +3074,6 @@ YaCy Debugging: Thread Dump==YaCy Debugging: Thread Dump Threaddump==Dump dei thread #----------------------------- -#File: Translator_p.html -#--------------------------- -Translation Editor==Editor di traduzione -UI Translation==Traduzione UI -Source File==File sorgente -view it==view it -filter untranslated==filtra stringhe non tradotte -Source Text==Testo originale -"Save translation"=="Salva traduzione" -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Tradurre il testo non tradotto dell'interfaccia utente (lingua corrente). Il file di traduzione modificato è memorizzato nella directoryDATA/LOCALE. -#----------------------------- - -#File: User.html -#--------------------------- -User Page==Pagina utente -Username:==Nome utente: -"login"=="autenticati" -old Password==vecchia password -new Password(repetition)==nuova password (conferma) -"Change"=="Modifica" -You are currently logged in as admin.==Siete attualmente connessi come amministratore. -(after logout you will be prompted for your password again. simply click "cancel")==(dopo il logout ti verrà richiesta nuovamente la tua password. fai semplicemente clic su "cancella") -Password was changed.==La password e' stata cambiata. -Old Password is wrong.==La vecchia password e' sbagliata. -New Password and its repetition do not match.==La nuova password e la sua ripetizione non corrispondono. -New Password is empty.==La nuova password è vuota. -Cookie==Cookie -"green bar"=="bar verde" -"logout"=="Logout" -"red bar"=="barra rossa" -(Identified by==(Identificato da -IP==IP -Password:==Password: -Username/Password==Username/Password -You are not logged in.==Non hai effettuato l'accesso. -new Password==nuova password -#----------------------------- - #File: ViewFile.html #--------------------------- View URL Content==View URL Content @@ -3393,40 +3262,9 @@ size==dimensione time==tempo #----------------------------- -#File: Wiki.html -#--------------------------- -Grant Write Access to==Scrivi accesso a -"all"=="tutti" -"admin"=="admin" -Start Page==Pagina iniziale -Versions==Versioni -Author:==Autore: -You can use==Puoi usare -"Submit"=="Invia" -"Preview"=="Anteprima" -"Discard"=="Scarta" -No changes have been submitted so far!==Finora non sono state presentate modifiche! -Subject==Argomento -Change Date==Cambia data -Last Author==Ultimo autore -Compare version from==Confronta la versione da -"Show"=="Mostra" -with version from==con versione da -"Compare"=="Confronta" -Changes will be published as announcement on YaCyNews==Le modifiche saranno pubblicate come annuncio su YaCy News -Edit==Modifica -Preview==Anteprima -(only granted to admin)==(concesso solo all'amministratore) -Error==Errore -Index -==Indice - -Index==Indice -Text:==Testo: -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Codice Wiki -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Questa tabella contiene una breve descrizione dei tag che possono essere utilizzati in Wiki e diversi altri servlet of YaCy. For a more detailed description visit the==of YaCy. For a more detailed description visit the Description==Descrizione These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics),==Questi tag creano testi stressati. La prima coppia enfatizza il testo (la maggior parte dei browser lo mostrerà in corsivo), @@ -3436,7 +3274,6 @@ These tags create a numbered list.==Queste etichette creano un elenco numerato. These tags create an unnumbered list.==Questi tag creano un elenco non numerato. These tags create a definition list.==Questi tag creano un elenco di definizioni. This tag creates a horizontal line.==Questo tag crea una linea orizzontale. -This tag creates links to other pages of the wiki.==Questo tag crea collegamenti ad altre pagine della wiki. This tag displays an image, it can be aligned left, right or center.==Questo tag mostra un'immagine, può essere allineata a sinistra, a destra o al centro. This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.==Questo tag visualizza un video YouTube o Vimeo con l'ID indicato e dimensioni fisse di 425 pixel di larghezza e 350 pixel di altezza. These tags create a table, whereas the first marks the beginning of the table, the second starts==Questi tag creano una tabella, mentre il primo segna l'inizio della tabella, il secondo inizia @@ -3749,7 +3586,6 @@ Processed News==Notizie processate  Outgoing News==Notizie  in uscita Published News==Pubblicato  News Community Data==Dati comunitari -Local Peer Wiki==Wiki peer locale Processes==Processi Messages==Messaggi Overview==Panoramica @@ -3764,7 +3600,6 @@ Surftips==SurftipsCity name (optional, probably does not need a translation) System Administration==Amministrazione sistema Advanced Settings==Impostazioni avanzate Advanced Properties==Proprietà avanzate -UI Translations==UI Translations Performance Settings of Busy Queues==Impostazioni prestazioni delle code occupate Viewer and administration for database tables==Visualizzatore e amministrazione per tabelle di database #----------------------------- @@ -3836,13 +3671,6 @@ Crawler/Spider==Crawler/Spider Network Harvesting==Raccolta di reti #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Pubblicazione -Blog==Blog -Wiki==Wiki -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Ranking ed euristiche @@ -3882,14 +3710,6 @@ Image Collage==Collage immagine Index Browser==Browser indice #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -Your Username/Password is wrong.==Your Username/Password is wrong. -"login"=="login" -Password==Password -Username==Nome utente -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Messaggio d'errore @@ -4458,42 +4278,6 @@ Thread:==Thread: "Stop"=="Fermati" #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User Accounts==Account utenti -User List==Elenco utenti -Address==Indirizzo -First name==Nome di battesimo -Last Access==Ultimo accesso -Last name==Cognome -Rights==Diritti -Time==Ora -Traffic==Traffico -User==Utente -#----------------------------- - -#File: ConfigUser_p.html -#--------------------------- -Username too short. Username must be >= 4 Characters.==Username too short. Username must be >= 4 Characters. -Username already used (not allowed).==Nome utente già utilizzato (non consentito). -Passwords do not match.==Le password non corrispondono. -User Account Editor==Editor account utente -back to user list==torna all'elenco utenti -Generic error.==Errore generico. -Rights:==Diritti: -"Delete User"=="Elimina utente" -"Save User"=="Salva utente" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -Address==Indirizzo -First name==Nome di battesimo -Last name==Cognome -Password==Password -Repeat password==Ripetere la password -Time used==Tempo utilizzato -Timelimit==Termine -Username==Nome utente -#----------------------------- - #File: ContentAnalysis_p.html #--------------------------- The quantRate is a measurement for the number of words that take part in a signature computation. The higher the number, the less==quantRate e una misura del numero di parole che partecipano al calcolo della firma. Piu alto e il numero, meno @@ -4527,11 +4311,6 @@ Start URL==Start URL #File: SearchAccessRate_p.html #--------------------------- -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Quando un utente con diritti limitati (non autenticato o senza diritto di ricerca esteso) supera un limite, il ricorso ai risultati diventa applicabile solo su richiesta, lato server. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Quando un utente con diritti limitati (non autenticato o senza diritto di ricerca esteso) supera un limite, l'ambito di ricerca rientra solo in questo indice peer locale. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Quando un utente con diritti limitati (non autenticato o senza diritto di ricerca esteso) supera un limite, la strategia di recupero snippet rientra in "CACHEONLY" -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==È possibile configurare qui le limitazioni sulla velocità di accesso a questa interfaccia di ricerca peer da parte di utenti e utenti non autenticati senza il diritto di ricerca estesa -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Quando un utente con diritti limitati (non autenticato o senza diritto di ricerca esteso) supera un limite, la ricerca viene bloccata. Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Limitazioni del tasso di accesso alla modalità di ricerca peer-to-peer con il browser-side JavaScript risultati ricorso abilitato Changes will take effect immediately.== Le modifiche avranno effetto immediatamente. Access rate limitations to the peer-to-peer search mode.==Limitazioni del tasso di accesso alla modalità di ricerca peer-to-peer. @@ -4558,21 +4337,6 @@ YaCy search==Ricerca YaCy CyTag Trails==Sentieri CyTag #----------------------------- -#File: TransNews_p.html -#--------------------------- -You can share your local addition to translations and distribute it to other peers.==Puoi condividere la tua aggiunta locale alle traduzioni e distribuirla ad altri peer. -Translation:==Traduzione: -English:==Inglese: -existing==esistente -"negative vote"=="voto negativo" -"positive vote"=="voto positivo" -Originator==Originario -Vote on this translation. If you vote positive the translation is added to your local translation list.==Vote on this translation. If you vote positive the translation is added to your local translation list. -File:==File: -The remote peer can vote on your translation and add it to its own local translation.==Il remoto peer può votare sulla vostra traduzione e aggiungerla alla propria traduzione locale. -"Publish"=="Pubblica" -#----------------------------- - #File: VFS.html #--------------------------- User storage in the browser cache with file-system-like navigation.==Memorizzazione utente nella cache del browser con navigazione tipo file system. diff --git a/locales/ja.lng b/locales/ja.lng index 018541998..56c076b47 100644 --- a/locales/ja.lng +++ b/locales/ja.lng @@ -332,54 +332,6 @@ An error occurred while editing the following entries. Please check syntax.==次 Activate this list for ...==このリストをアクティブ化すると... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="確定する" -"Preview"=="プレヴュー" -"Discard"=="廃棄する" -"Yes, delete it."=="はい、削除します。" -"No, leave it."=="いや、放っておいてください。" -"Import"=="輸入" -<< previous entries==<< 前のエントリ -next entries >>==次のエントリ >> -Blog-Home==ブログ-ホーム -Edit==編集 -Author:==著者: -Subject:==題名: -Text:==文章: -Comments:==コメント: -deactivated==無効化されたもの -activated==アクティブ化された -moderated==変更されたもの -Preview==プレビュー -No changes have been submitted so far!==まだ変更が確定されていません! -Access denied==アクセスが拒否されました -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==ブログ-エントリーを編集または作成する為にあなたはブログの権利を持つ管理者またはユーザーとしてログインする必要があります. -Are you sure...==本気ですか... -Confirm deletion==削除を確認する -XML-Import==XML-インポート -Import was successful!==取り込みは成功しました! -Import failed, maybe the supplied file was no valid blog-backup?==取り込みは失敗しました。おそらく供給されたファイルは有効なブログ-バックアップではなかったのではないでしょうか? -Please select the XML-file you want to import:==あなたが取り込みたいXML-ファイルを選択して下さい: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="確定する" -"Preview"=="プレヴュー" -"Discard"=="廃棄する" -Blog-Home==ブログ-ホーム -Comments:==コメント: -<< previous entries==<< 前のエントリ -next entries >>==次のエントリ >> -Comments are not allowed for this posting!==この投稿へのコメントは禁止されています。 -Comment on this Blog==このブログにコメントする -Author:==著者: -Subject:==題名: -Text:==文章: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -447,58 +399,10 @@ Private Queue==プライヴェート キュー Public Queue==パブリック キュー #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==ユーザーリスト -User Accounts==ユーザーのアカウント -User==ユーザー -First name==名 -Last name==姓 -Address==住所 -Last Access==最終アクセス -Rights==権利 -Time==時間 -Traffic==渋滞 -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="管理者を定義する" -"Set Access Rules"=="アクセスルールを設定する" -"Edit User"=="ユーザーの編集" -"Delete User"=="ユーザーの削除" -"Save User"=="ユーザーの保存" -User Administration==ユーザーの管理 -Generic error.==一般的なエラー. Passwords do not match.==パスワードが一致しません. -Username too short. Username must be >= 4 Characters.==ユーザー名が短過ぎます. ユーザー名 >= 4文字 でなければなりません. -Username already used (not allowed).==ユーザー名はすでに使用されています (許可されていません)。 -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING この YaCy インスタンスは、アカウント「admin」とデフォルトのパスワード「yacy」を使用して管理できます。 -Change the password as soon as possible!==できるだけ早くパスワードを変更してください。 Admin Account==Admin Konto -Access from localhost without account==アカウント無しでのローカルホストからのアクセス -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==あなたの自分のコンピュータ(ローカルホストアクセス)からピアへのアクセスは管理者権限を付与されています. 管理アカウントを構成する必要はありません. -This setting is convenient but less secure than using a qualified admin account.==この設定は便利ですが、資格のある管理者アカウントを使用する場合よりも安全性が低くなります。 -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==特に、同じコンピュータ上で YaCy ピアを実行しているときに、信頼できない、悪意のある可能性のある Web サイトを閲覧する場合は、注意して使用してください。 -Access only with qualified account==資格のあるアカウントでのみのアクセス -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==これはピアへのリモート アクセスが必要な場合に必要ですが、ピアの管理操作に対するアクセス制御も強化されます。 -Peer User:==ピア ユーザー: -New Peer Password:==新規のピアのパスワード: -Repeat Peer Password:==ピアのパスワードを繰り返して下さい: -Access Rules==アクセスルール -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==すべてのページの保護: オンに設定すると、すべてのページへのアクセスには認証が必要になります。オフの場合、拡張子「_p」を持つページのみが保護されます。 -User Accounts==ユーザーのアカウント -Select user==ユーザーを選択する -New user==新規のユーザー -Username==ユーザー名 -Password==パスワード -Repeat password==パスワードを繰り返して下さい -First name==名 -Last name==姓 -Address==住所 -Rights:==権利: -Timelimit==期限 -Time used==使われた時間 #----------------------------- #File: ConfigAppearance_p.html @@ -876,8 +780,6 @@ Status page==状態のページ Network pages==ネットワーク ページ Surftips==サーフティップス News pages==ニューズ ページ -Blog==ブログ -Wiki==ウィキ Public bookmarks==公開ブックマーク Home Page==ホーム ページ File Share==ファイル共有 @@ -1037,28 +939,6 @@ manual update:
    apt-get update && apt-get install yacy==手動アッ automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==自動更新: 次の行を /etc/crontab
    0 に追加します 6 * * * root apt-get update && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="ユーザーの保存" -"Delete User"=="ユーザーの削除" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==ユーザーアカウント編集者 -Generic error.==一般的なエラー. -Passwords do not match.==パスワードが一致しません. -Username too short. Username must be >= 4 Characters.==ユーザー名が短過ぎます. ユーザー名 >= 4文字 でなければなりません. -Username already used (not allowed).==ユーザー名はすでに使用されています (許可されていません)。 -Username==ユーザー名 -Password==パスワード -Repeat password==パスワードを繰り返して下さい -First name==名 -Last name==姓 -Address==住所 -Rights:==権利: -Timelimit==期限 -Time used==使われた時間 -back to user list==ユーザーリストに戻る -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==サーバー接続の追跡 @@ -2465,8 +2345,6 @@ inbox==受信箱 "DHT Receive: yes"=="DHT 受信: はい" "DHT receive enabled"=="DHT 受信が有効になりました" "Profile updated"=="プロフィールを更新しました" -"Wiki updated"=="ウィキが更新されました" -"Blog updated"=="ブログを更新しました" "Crawl"=="クロール" "The YaCy Network"=="YaCy ネットワーク" "Type: Virgin"=="タイプ: 処女" @@ -2512,7 +2390,6 @@ Received DHT
    Word Chunks==DHT
    ワード チャンクを受信しまし Received
    URLs==受信した
    URL Location==位置 user agent
    ==ユーザーエージェント
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==send Mメッセージ/
    show Profile/
    編集 Wiki/
    閲覧 Bログ Network==ネットワーク Online Peers==オンラインピア Number of
    Documents==
    ドキュメントの数 @@ -2583,7 +2460,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==最近開始されたクロールを含むテーブルが「インデックス作成 -」ページに表示されます。 A change in the personal profile will create a news entry. You can see recently made changes of==個人プロフィールを変更すると、ニュース エントリが作成されます。最近行われた変更を確認できます profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==[ネットワーク] ページのプロファイル エントリ。プロファイルの変更は、「P」 (プロファイル) - セレクターの横にある「*」で視覚化されます。 -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==ユーザー インターフェイスの追加または変更された翻訳の公開。他のピアは、ローカル変換リストにそれを含めることができます。 More news services will follow.==さらに多くのニュースサービスが続きます。 Above you can see four menus:==上には 4 つのメニューが表示されます。 Only these news will be used to display specific news services as explained above.==上で説明したように、これらのニュースのみが特定のニュース サービスの表示に使用されます。 @@ -2989,23 +2865,18 @@ Age==年 "Reset to defaults settings"=="デフォルト設定にリセットする" limitations==制限事項 Local Search access rate limitations==ローカル検索のアクセス速度の制限 -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==ここで、認証されていないユーザーおよび拡張検索権限のないユーザーによるこのピア検索インターフェイスへのアクセス レートの制限を構成できます。 YaCy search==YaCy 検索 Access rate limitations to this peer search interface.==このピア検索インターフェイスへのアクセス レート制限。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==制限された権限を持つユーザー (認証されていない、または拡張検索権限がない) が制限を超えると、検索はブロックされます。 Max searches in 3s==最大検索数は 3 秒以内 Max searches in 1mn==100 万回の最大検索数 Max searches in 10mn==10 分間の最大検索数 Peer-to-peer search==ピアツーピア検索 Access rate limitations to the peer-to-peer search mode.==ピアツーピア検索モードへのアクセス速度制限。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==制限された権限を持つユーザー (認証されていない、または拡張検索権限がない) が制限を超えると、検索範囲はこのローカル ピア インデックスのみに戻ります。 Max searches in 10mn==10 分間の最大検索数 Peer-to-peer search with JavaScript results resorting==JavaScript の結果を並べ替えるピアツーピア検索 Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==ブラウザ側の JavaScript 結果の再ソートが有効になっている場合のピアツーピア検索モードへのアクセス レート制限 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==制限された権限を持つユーザー (認証されていない、または拡張検索権限がない) が制限を超えると、結果の再分類はサーバー側でオンデマンドでのみ適用されます。 Remote snippet load==リモート スニペットのロード Limitations on snippet loading from remote websites.==リモート Web サイトからのスニペットの読み込みに関する制限。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==制限された権限を持つユーザー (認証されていない、または拡張検索権限がない) が制限を超えると、スニペットのフェッチ戦略は「CACHEONLY」に戻ります。 Max searches in 3s==最大検索数は 3 秒以内 Changes will take effect immediately.==変更はすぐに有効になります。 #----------------------------- @@ -3230,14 +3101,9 @@ These settings configure the access method to your own http proxy and server.== All traffic is routed through one single port, for both proxy and server.==すべてのトラフィックは、プロキシとサーバーの両方に対して 1 つのポートを介してルーティングされます。 HTTPS Server Port:==HTTPS サーバーポート: Server Access Restrictions==サーバーアクセス制限 -You can restrict the access to this proxy/server using a two-stage security barrier:==2 段階のセキュリティ バリアを使用して、このプロキシ/server へのアクセスを制限できます。 define an access domain with a list of granted client IP-numbers or with wildcards==許可されたクライアント IP 番号のリストまたはワイルドカードを使用して、アクセス ドメイン を定義します -define an user account with an user:password - pair==ユーザー:パスワードのペアで ユーザー アカウント を定義します -This is the account that restricts access to the proxy function.==プロキシ機能へのアクセスを制限するアカウントです。 You probably don't want to share the proxy to the internet, so you should set the==おそらくプロキシをインターネットに共有したくないので、 IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP - ローカル イントラネットに対応するパターンへのアクセス ドメインの番号。 -The default setting should be right in most cases. If you want, you can also set a proxy account==ほとんどの場合、デフォルト設定が正しいはずです。必要に応じて、プロキシ アカウントを設定することもできます -so that every proxy user must authenticate first, but this is rather unusual.==したがって、すべてのプロキシ ユーザーが最初に認証する必要がありますが、これはかなり珍しいことです。 IP-Number filter==IP - 数値フィルター Accounts==アカウント #----------------------------- @@ -3628,59 +3494,6 @@ Save Tools Configuration==ツール設定の保存 CyTag Trails==CyTag トレイル #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="公開" -"negative vote"=="ネガティヴな票" -"positive vote"=="ポジティヴな票" -You can share your local addition to translations and distribute it to other peers.==ローカルで追加した翻訳を共有し、他のピアに配布できます。 -The remote peer can vote on your translation and add it to its own local translation.==リモート ピアは、翻訳に投票して、それを独自のローカル翻訳に追加できます。 -File:==ファイル: -Originator==発信者 -English:==英語: -existing==既存 -Translation:==翻訳: -Vote on this translation. If you vote positive the translation is added to your local translation list.==この翻訳に投票してください。肯定的に投票すると、その翻訳がローカルの翻訳リストに追加されます。 -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="翻訳を保存する" -Translation Editor==翻訳エディター -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==ユーザー インターフェイス (現在の言語) の未翻訳のテキストを翻訳します。変更された翻訳ファイルは DATA/LOCALE ディレクトリに保存されます。 -UI Translation==UIの翻訳 -Source File==ソースファイル -view it==それを見る -filter untranslated==未翻訳をフィルタリングする -Source Text==ソーステキスト -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="ログイン" -"logout"=="ログアウト" -"red bar"=="赤いバー" -"green bar"=="緑色のバー" -"Change"=="変化" -User Page==ユーザー ページ -You are not logged in.==ログインしていません。 -Username:==ユーザー名: -Password:==パスワード: -(Identified by==(特定者 -IP==IP -Username/Password==ユーザー名/Password -Cookie==クッキー -old Password==以前のパスワード -new Password==新しいパスワード -new Password(repetition)==新しいパスワード(繰り返し) -You are currently logged in as admin.==現在、管理者としてログインしています。 -(after logout you will be prompted for your password again. simply click "cancel")==(ログアウト後、再度パスワードの入力を求められます。単に「キャンセル」をクリックしてください) -Password was changed.==パスワードが変更されました。 -Old Password is wrong.==古いパスワードが間違っています。 -New Password and its repetition do not match.==新しいパスワードとその繰り返しが一致しません。 -New Password is empty.==新しいパスワードが空です。 -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="ファイルシステムブラウザ" @@ -3884,40 +3697,9 @@ Other Dot==その他のドット Dot-end==ドットエンド #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="全て" -"admin"=="管理者" -"Submit"=="確定する" -"Preview"=="プレヴュー" -"Discard"=="廃棄する" -"Show"=="見せる" -"Compare"=="比較" -(only granted to admin)==(管理者にのみ許可されています) -Index -==索引 - -Grant Write Access to==への書き込みアクセスを許可する -Edit==編集 -Author:==著者: -Text:==文章: -Preview==プレビュー -No changes have been submitted so far!==まだ変更が確定されていません! -Index==索引 -Subject==主題 -Change Date==変更日 -Last Author==最終著者 -Start Page==スタートページ -Versions==バージョン -Compare version from==からのバージョンを比較 -with version from==からのバージョン -Error==エラー -You can use==使用できます -Changes will be published as announcement on YaCyNews==変更はYaCyNewsでのお知らせとして公開されます -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-コード -This table contains a short description of the tags that can be used in the Wiki and several other servlets==この表には、Wiki および他のいくつかのサーブレットで使用できるタグの簡単な説明が含まれています of YaCy. For a more detailed description visit the==YaCy の。より詳細な説明については、次のサイトを参照してください。 Code==コード Description==説明 @@ -3942,7 +3724,6 @@ These tags create a definition list.==これらのタグは定義リストを作 This tag creates a horizontal line.==このタグは水平線を作成します。 [[pagename]]==[[ページ名]] [[pagename|description]]==[[ページ名|説明]] -This tag creates links to other pages of the wiki.==このタグは、Wiki の他のページへのリンクを作成します。 [url]==[URL] [url description]==【URL説明】 This tag creates links to external websites.==このタグは外部 Web サイトへのリンクを作成します。 @@ -4267,7 +4048,6 @@ Outgoing News==発信 ニュース Published News==公開 ニュース Community Data==コミュニティデータ Surftips==サーフティップス -Local Peer Wiki==ローカルピアWiki Bookmarks==ブックマーク #----------------------------- @@ -4278,7 +4058,6 @@ Advanced Settings==高度な設定 Performance Settings of Busy Queues==ビジーキューのパフォーマンス設定 Viewer and administration for database tables==データベーステーブルのビューアと管理 Advanced Properties==高度な属性 -UI Translations==UIの翻訳 #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4386,13 +4165,6 @@ User Profile==ユーザープロフィール Local robots.txt==ローカルロボット.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==公開 -Wiki==ウィキ -Blog==ブログ -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==順位付けとヒューリスティクス @@ -4539,14 +4311,6 @@ Get the latest Java Plug-in here.==ここで最新のJavaのプラグ-インを Built with Processing==処理を使用して構築 #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="ログイン" -Your Username/Password is wrong.==あなたの ユーザー名/パスワード は間違っています. -Username==ユーザー名 -Password==パスワード -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: エラー メッセージ diff --git a/locales/ko.lng b/locales/ko.lng index 6eae3e8d8..b95b71cac 100644 --- a/locales/ko.lng +++ b/locales/ko.lng @@ -327,54 +327,6 @@ An error occurred while editing the following entries. Please check syntax.==다 Activate this list for ...==이 목록을 활성화하세요... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="제출하다" -"Preview"=="시사" -"Discard"=="버리다" -"Yes, delete it."=="예, 삭제하세요." -"No, leave it."=="아니, 놔둬." -"Import"=="수입" -<< previous entries==<< 이전 항목 -next entries >>==다음 항목 >> -Blog-Home==블로그 홈 -Edit==편집하다 -Author:==작가: -Subject:==주제: -Text:==텍스트: -Comments:==댓글: -deactivated==비활성화됨 -activated==활성화됨 -moderated==중재된 -Preview==시사 -No changes have been submitted so far!==지금까지 제출된 변경사항이 없습니다. -Access denied==접근 불가 -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==블로그 항목을 편집하거나 생성하려면 블로그 권한이 있는 관리자 또는 사용자로 로그인해야 합니다. -Are you sure...==확실합니까? -Confirm deletion==삭제 확인 -XML-Import==XML-가져오기 -Import was successful!==가져오기에 성공했습니다! -Import failed, maybe the supplied file was no valid blog-backup?==가져오기에 실패했습니다. 제공된 파일이 유효한 블로그 백업이 아니었을까요? -Please select the XML-file you want to import:==가져오려는 XML 파일을 선택하십시오: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="제출하다" -"Preview"=="시사" -"Discard"=="버리다" -Blog-Home==블로그 홈 -Comments:==댓글: -<< previous entries==<< 이전 항목 -next entries >>==다음 항목 >> -Comments are not allowed for this posting!==이 게시물에는 댓글을 달 수 없습니다! -Comment on this Blog==이 블로그에 댓글 달기 -Author:==작가: -Subject:==주제: -Text:==텍스트: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -442,58 +394,10 @@ Private Queue==개인 대기열 Public Queue==공개 대기열 #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==사용자 목록 -User Accounts==사용자 계정 -User==사용자 -First name==이름 -Last name==성 -Address==주소 -Last Access==마지막 액세스 -Rights==진상 -Time==시간 -Traffic==교통 -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="관리자 정의" -"Set Access Rules"=="액세스 규칙 설정" -"Edit User"=="사용자 편집" -"Delete User"=="사용자 삭제" -"Save User"=="사용자 저장" -User Administration==사용자 관리 -Generic error.==일반 오류입니다. Passwords do not match.==비밀번호가 일치하지 않습니다. -Username too short. Username must be >= 4 Characters.==사용자 이름이 너무 짧습니다. 사용자 이름은 >= 4자여야 합니다. -Username already used (not allowed).==사용자 이름이 이미 사용되었습니다(허용되지 않음). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING 이 YaCy 인스턴스는 "admin" 계정과 기본 비밀번호 "yacy"로 관리할 수 있습니다. -Change the password as soon as possible!==최대한 빨리 비밀번호를 변경하세요! Admin Account==관리자 계정 -Access from localhost without account==계정 없이 localhost에서 액세스 -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==자신의 컴퓨터에서 피어에 대한 액세스(localhost 액세스)는 관리자 권한으로 부여됩니다. 관리 계정을 구성할 필요가 없습니다. -This setting is convenient but less secure than using a qualified admin account.==이 설정은 편리하지만 자격을 갖춘 관리자 계정을 사용하는 것보다 보안 수준이 낮습니다. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==특히 동일한 컴퓨터에서 YaCy 피어를 실행하는 동안 신뢰할 수 없고 잠재적으로 악의적인 웹 사이트를 탐색할 때는 주의해서 사용하십시오. -Access only with qualified account==자격을 갖춘 계정으로만 액세스 -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==이는 피어에 대한 원격 액세스를 원하는 경우에 필요하지만 피어의 관리 작업에 대한 액세스 제어도 강화됩니다. -Peer User:==피어 사용자: -New Peer Password:==새 피어 비밀번호: -Repeat Peer Password:==피어 비밀번호 반복: -Access Rules==액세스 규칙 -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==모든 페이지 보호: 켜져 있는 경우 모든 페이지에 액세스하려면 승인이 필요합니다. 끄면 확장자가 "_p"인 페이지만 보호됩니다. -User Accounts==사용자 계정 -Select user==사용자 선택 -New user==신규 사용자 -Username==사용자 이름 -Password==비밀번호 -Repeat password==비밀번호를 반복하세요 -First name==이름 -Last name==성 -Address==주소 -Rights:==진상: -Timelimit==시간 제한 -Time used==사용시간 #----------------------------- #File: ConfigAppearance_p.html @@ -871,8 +775,6 @@ Status page==상태 페이지 Network pages==네트워크 페이지 Surftips==서핑 팁 News pages==뉴스 페이지 -Blog==블로그 -Wiki==위키 Public bookmarks==공개 북마크 Home Page==홈 페이지 File Share==파일 공유 @@ -1032,28 +934,6 @@ manual update:
    apt-get update && apt-get install yacy==수동 업데 automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==자동 업데이트: /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy에 다음 줄을 추가합니다. #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="사용자 저장" -"Delete User"=="사용자 삭제" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==사용자 계정 편집자 -Generic error.==일반 오류입니다. -Passwords do not match.==비밀번호가 일치하지 않습니다. -Username too short. Username must be >= 4 Characters.==사용자 이름이 너무 짧습니다. 사용자 이름은 >= 4자여야 합니다. -Username already used (not allowed).==사용자 이름이 이미 사용되었습니다(허용되지 않음). -Username==사용자 이름 -Password==비밀번호 -Repeat password==비밀번호를 반복하세요 -First name==이름 -Last name==성 -Address==주소 -Rights:==진상: -Timelimit==시간 제한 -Time used==사용시간 -back to user list==사용자 목록으로 돌아가기 -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==서버 연결 추적 @@ -2460,8 +2340,6 @@ inbox==받은편지함 "DHT Receive: yes"=="DHT 수신: 예" "DHT receive enabled"=="DHT 수신 활성화됨" "Profile updated"=="프로필이 업데이트되었습니다." -"Wiki updated"=="위키가 업데이트되었습니다." -"Blog updated"=="블로그가 업데이트되었습니다." "Crawl"=="크롤링" "The YaCy Network"=="YaCy 네트워크" "Type: Virgin"=="유형: 초기" @@ -2507,7 +2385,6 @@ Received DHT
    Word Chunks==DHT
    단어 덩어리를 받았습니다. Received
    URLs==
    URL 수신됨 Location==위치 user agent
    ==사용자 에이전트
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==send Message/
    show Profile/
    edit Wiki/
    browse Blog Network==회로망 Online Peers==온라인 동료 Number of
    Documents==
    문서 수 @@ -2578,7 +2455,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==최근에 시작된 크롤링이 포함된 테이블이 색인 생성 페이지에 표시됩니다. A change in the personal profile will create a news entry. You can see recently made changes of==개인 프로필을 변경하면 뉴스 항목이 생성됩니다. 최근에 변경된 내용을 볼 수 있습니다. profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==네트워크 페이지의 프로필 항목에서 해당 프로필 변경 사항은 'P'(프로필) - 선택기 옆에 '*'로 시각화됩니다. -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==사용자 인터페이스에 대한 추가 또는 수정된 번역을 게시합니다. 다른 동료는 이를 로컬 번역 목록에 포함할 수 있습니다. More news services will follow.==더 많은 뉴스 서비스가 이어질 것입니다. Above you can see four menus:==위에서는 4가지 메뉴를 볼 수 있습니다. Only these news will be used to display specific news services as explained above.==위에서 설명한 대로 특정 뉴스 서비스를 표시하는 데 이러한 뉴스만 사용됩니다. @@ -2984,23 +2860,18 @@ Age==나이 "Reset to defaults settings"=="기본 설정으로 재설정" limitations==한계 Local Search access rate limitations==지역 검색 액세스 속도 제한 -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==인증되지 않은 사용자와 확장 검색 권한이 없는 사용자의 이 피어 검색 인터페이스에 대한 액세스 속도 제한을 여기에서 구성할 수 있습니다. YaCy search==YaCy 검색 Access rate limitations to this peer search interface.==이 피어 검색 인터페이스에 대한 액세스 속도 제한입니다. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==제한된 권한을 가진 사용자(인증되지 않았거나 확장 검색 권한이 없는 사용자)가 한도를 초과하면 검색이 차단됩니다. Max searches in 3s==3초 만에 최대 검색 Max searches in 1mn==최대 100만 검색 Max searches in 10mn==1,000분 만에 최대 검색 Peer-to-peer search==P2P 검색 Access rate limitations to the peer-to-peer search mode.==P2P 검색 모드에 대한 액세스 속도 제한. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==제한된 권한(인증되지 않았거나 확장 검색 권한이 없음)을 가진 사용자가 제한을 초과하면 검색 범위는 이 로컬 피어 인덱스로만 대체됩니다. Max searches in 10mn==1,000분 만에 최대 검색 Peer-to-peer search with JavaScript results resorting==JavaScript 결과를 바탕으로 한 P2P 검색 Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==브라우저 측 JavaScript 결과 재정렬이 활성화된 P2P 검색 모드에 대한 액세스 속도 제한 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==제한된 권한(인증되지 않았거나 확장된 검색 권한이 없음)을 가진 사용자가 한도를 초과하면 결과 정렬은 서버 측 요청 시에만 적용됩니다. Remote snippet load==원격 스니펫 로드 Limitations on snippet loading from remote websites.==원격 웹사이트에서 스니펫 로딩에 대한 제한 사항. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==제한된 권한(인증되지 않았거나 확장 검색 권한이 없음)을 가진 사용자가 한도를 초과하면 스니펫 가져오기 전략이 'CACHEONLY'로 대체됩니다. Max searches in 3s==3초 만에 최대 검색 Changes will take effect immediately.==변경사항은 즉시 적용됩니다. #----------------------------- @@ -3225,14 +3096,9 @@ These settings configure the access method to your own http proxy and server.== All traffic is routed through one single port, for both proxy and server.==모든 트래픽은 프록시와 서버 모두 하나의 단일 포트를 통해 라우팅됩니다. HTTPS Server Port:==HTTPS 서버 포트: Server Access Restrictions==서버 액세스 제한 -You can restrict the access to this proxy/server using a two-stage security barrier:==2단계 보안 장벽을 사용하여 이 프록시/server에 대한 액세스를 제한할 수 있습니다. define an access domain with a list of granted client IP-numbers or with wildcards==부여된 클라이언트 IP 번호 목록 또는 와일드카드를 사용하여 액세스 도메인을 정의합니다. -define an user account with an user:password - pair==사용자:비밀번호 - 쌍으로 사용자 계정을 정의합니다. -This is the account that restricts access to the proxy function.==프록시 기능에 대한 접근을 제한하는 계정입니다. You probably don't want to share the proxy to the internet, so you should set the==프록시를 인터넷에 공유하고 싶지 않을 수도 있으므로 다음을 설정해야 합니다. IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-액세스 도메인 번호를 로컬 인트라넷에 해당하는 패턴으로 지정합니다. -The default setting should be right in most cases. If you want, you can also set a proxy account==대부분의 경우 기본 설정이 정확해야 합니다. 원하는 경우 프록시 계정을 설정할 수도 있습니다. -so that every proxy user must authenticate first, but this is rather unusual.==모든 프록시 사용자가 먼저 인증해야 하지만 이는 다소 드문 일입니다. IP-Number filter==IP-숫자 필터 Accounts==계정 #----------------------------- @@ -3623,59 +3489,6 @@ Save Tools Configuration==도구 구성 저장 CyTag Trails==CyTag 트레일 #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="게시" -"negative vote"=="반대 투표" -"positive vote"=="긍정적인 투표" -You can share your local addition to translations and distribute it to other peers.==번역에 대한 로컬 추가 내용을 공유하고 다른 동료에게 배포할 수 있습니다. -The remote peer can vote on your translation and add it to its own local translation.==원격 피어는 귀하의 번역에 투표하고 이를 자체 로컬 번역에 추가할 수 있습니다. -File:==파일: -Originator==창작자 -English:==영어: -existing==기존의 -Translation:==번역: -Vote on this translation. If you vote positive the translation is added to your local translation list.==이 번역에 투표하세요. 긍정적으로 투표하시면 해당 번역이 로컬 번역 목록에 추가됩니다. -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="번역 저장" -Translation Editor==번역 편집자 -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==사용자 인터페이스(현재 언어)의 번역되지 않은 텍스트를 번역합니다. 수정된 번역 파일은 DATA/LOCALE 디렉터리에 저장됩니다. -UI Translation==UI 번역 -Source File==소스 파일 -view it==보기 -filter untranslated==번역되지 않은 필터 -Source Text==소스 텍스트 -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="로그인" -"logout"=="로그아웃" -"red bar"=="빨간색 막대" -"green bar"=="녹색 바" -"Change"=="변화" -User Page==사용자 페이지 -You are not logged in.==로그인되어 있지 않습니다. -Username:==사용자 이름: -Password:==비밀번호: -(Identified by==(식별자: -IP==IP -Username/Password==사용자 이름/Password -Cookie==매력적인 여자 -old Password==이전 비밀번호 -new Password==새 비밀번호 -new Password(repetition)==새 비밀번호(반복) -You are currently logged in as admin.==현재 관리자로 로그인되어 있습니다. -(after logout you will be prompted for your password again. simply click "cancel")==(로그아웃하면 비밀번호를 다시 입력하라는 메시지가 표시됩니다. 간단히 "취소"를 클릭하세요) -Password was changed.==비밀번호가 변경되었습니다. -Old Password is wrong.==이전 비밀번호가 잘못되었습니다. -New Password and its repetition do not match.==새 비밀번호와 반복된 비밀번호가 일치하지 않습니다. -New Password is empty.==새 비밀번호가 비어 있습니다. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="파일 시스템 브라우저" @@ -3879,40 +3692,9 @@ Other Dot==기타 도트 Dot-end==도트엔드 #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="모두" -"admin"=="관리자" -"Submit"=="제출하다" -"Preview"=="시사" -"Discard"=="버리다" -"Show"=="보여주다" -"Compare"=="비교하다" -(only granted to admin)==(관리자에게만 부여됨) -Index -==색인 - -Grant Write Access to==다음에 대한 쓰기 액세스 권한 부여 -Edit==편집하다 -Author:==작가: -Text:==텍스트: -Preview==시사 -No changes have been submitted so far!==지금까지 제출된 변경사항이 없습니다. -Index==색인 -Subject==주제 -Change Date==날짜 변경 -Last Author==마지막 저자 -Start Page==시작 페이지 -Versions==버전 -Compare version from==버전 비교 -with version from==버전: -Error==오류 -You can use==당신은 사용할 수 있습니다 -Changes will be published as announcement on YaCyNews==변경 사항은 YaCyNews에 공지로 게시됩니다. -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==위키 코드 -This table contains a short description of the tags that can be used in the Wiki and several other servlets==이 표에는 Wiki 및 기타 여러 서블릿에서 사용할 수 있는 태그에 대한 간단한 설명이 포함되어 있습니다. of YaCy. For a more detailed description visit the==YaCy 중. 더 자세한 설명을 보려면 다음을 방문하세요. Code==암호 Description==설명 @@ -3937,7 +3719,6 @@ These tags create a definition list.==이러한 태그는 정의 목록을 생 This tag creates a horizontal line.==이 태그는 수평선을 생성합니다. [[pagename]]==[[페이지 이름]] [[pagename|description]]==[[페이지 이름|설명]] -This tag creates links to other pages of the wiki.==이 태그는 위키의 다른 페이지에 대한 링크를 생성합니다. [url]==[URL] [url description]==[URL 설명] This tag creates links to external websites.==이 태그는 외부 웹사이트에 대한 링크를 생성합니다. @@ -4262,7 +4043,6 @@ Outgoing News==발신 뉴스 Published News==게시됨 뉴스 Community Data==커뮤니티 데이터 Surftips==서핑 팁 -Local Peer Wiki==로컬 피어 위키 Bookmarks==북마크 #----------------------------- @@ -4273,7 +4053,6 @@ Advanced Settings==고급 설정 Performance Settings of Busy Queues==사용 중인 대기열의 성능 설정 Viewer and administration for database tables==데이터베이스 테이블 뷰어 및 관리 Advanced Properties==고급 속성 -UI Translations==UI 번역 #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4381,13 +4160,6 @@ User Profile==사용자 프로필 Local robots.txt==로컬 robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==출판 -Wiki==위키 -Blog==블로그 -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==순위 및 휴리스틱 @@ -4534,14 +4306,6 @@ Get the latest Java Plug-in here.==여기에서 최신 Java 플러그인을 다 Built with Processing==프로세싱으로 구축 #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="로그인" -Your Username/Password is wrong.==귀하의 사용자 이름/Password이(가) 잘못되었습니다. -Username==사용자 이름 -Password==비밀번호 -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: 오류 메시지 diff --git a/locales/master.lng.xlf b/locales/master.lng.xlf index 740cd0b31..f7454aa92 100644 --- a/locales/master.lng.xlf +++ b/locales/master.lng.xlf @@ -902,136 +902,6 @@ - - - - "RSS" - - - "Submit" - - - "Preview" - - - "Discard" - - - "Yes, delete it." - - - "No, leave it." - - - "Import" - - - &lt;&lt; previous entries - - - next entries &gt;&gt; - - - Blog-Home - - - Edit - - - Author: - - - Subject: - - - Text: - - - Comments: - - - deactivated - - - activated - - - moderated - - - Preview - - - No changes have been submitted so far! - - - Access denied - - - To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights. - - - Are you sure... - - - Confirm deletion - - - XML-Import - - - Import was successful! - - - Import failed, maybe the supplied file was no valid blog-backup? - - - Please select the XML-file you want to import: - - - - - - - - "Submit" - - - "Preview" - - - "Discard" - - - Blog-Home - - - Comments: - - - &lt;&lt; previous entries - - - next entries &gt;&gt; - - - Comments are not allowed for this posting! - - - Comment on this Blog - - - Author: - - - Subject: - - - Text: - - - - @@ -1219,150 +1089,61 @@ - - - - User List - - - User Accounts - - - User - - - First name - - - Last name - - - Address - - - Last Access - - - Rights - - - Time - - - Traffic - - - - - - "Define Administrator" + + "Change Administrator Credentials" - - "Set Access Rules" - - - "Edit User" - - - "Delete User" - - - "Save User" - - - User Administration + + Admin Account - - Generic error. + + Invalid administrator settings. Passwords do not match. - - Username too short. Username must be &gt;= 4 Characters. - - - Username already used (not allowed). - - - <b>WARNING</b> This YaCy instance can be administered with the account "admin" and the default password "yacy". - - - Change the password as soon as possible! - - - Admin Account - - - Access from localhost without account + + Administrator username is required. - - Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account. + + Administrator password is required. - - This setting is convenient but less secure than using a qualified admin account. + + Default administrator password is active. - - Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer. + + This YaCy instance can still be administered with the username "admin" and the default password "yacy". Replace these credentials using the form directly below. - - Access only with qualified account + + These credentials are used for remote administration and whenever administrative access from localhost without authentication is disabled. - - This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer. + + Administrator Username: - - Peer User: + + New Administrator Password: - - New Peer Password: + + Repeat Administrator Password: - - Repeat Peer Password: + + If you need to reset the administrator password from the console, run bin/passwd.sh from the YaCy installation directory. Access Rules - - Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected. - - - User Accounts - - - Select user - - - New user - - - Username - - - Password + + Allow administrative access from localhost without authentication - - Repeat password + + When enabled, eligible requests from the same computer receive administrator rights without sending credentials. - - First name + + Require administrator authorization for all applicable pages - - Last name - - - Address - - - Rights: - - - Timelimit - - - Time used + + When disabled, administration pages whose names contain "_p" remain protected. When enabled, all applicable pages require administrator authorization. @@ -1557,18 +1338,18 @@ Community-based web search - - Search portal for your own web pages - - - Intranet Indexing - Join and support the global network 'freeworld', search the web with an uncensored user-owned search network + + Search portal for your own web pages + Your YaCy installation behaves independently from other peers and you define your own web index by starting your own web crawl. This can be used to search your own web pages or to define a topic-oriented search portal. + + Intranet Indexing + Create a search portal for your intranet or web pages or your (shared) file system. URLs may be used with http/https/ftp and a local domain name or IP, or with an URL of the form file:///&lt;path&gt; or smb://&lt;server&gt;/&lt;path&gt; @@ -2418,12 +2199,6 @@ News pages - - Blog - - - Wiki - Public bookmarks @@ -2877,65 +2652,6 @@ - - - - "Save User" - - - "Delete User" - - - "ConfigAccountList_p.html" - - - User Account Editor - - - Generic error. - - - Passwords do not match. - - - Username too short. Username must be &gt;= 4 Characters. - - - Username already used (not allowed). - - - Username - - - Password - - - Repeat password - - - First name - - - Last name - - - Address - - - Rights: - - - Timelimit - - - Time used - - - back to user list - - - - @@ -6842,12 +6558,6 @@ "Profile updated" - - "Wiki updated" - - - "Blog updated" - "Crawl" @@ -7189,9 +6899,6 @@ profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector. - - Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list. - More news services will follow. @@ -8316,8 +8023,8 @@ Local Search access rate limitations - - You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right + + You can configure here limitations on access rate to this peer search interface by unauthenticated users. YaCy search @@ -8325,8 +8032,8 @@ Access rate limitations to this peer search interface. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked. + + When an unauthenticated user exceeds a limit, the search is blocked. Max searches in 3s @@ -8343,8 +8050,8 @@ Access rate limitations to the peer-to-peer search mode. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index. + + When an unauthenticated user exceeds a limit, the search scope falls back to only this local peer index. Max searches in 10mn @@ -8355,8 +8062,8 @@ Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side. + + When an unauthenticated user exceeds a limit, results resorting becomes only applicable on demand, server-side. Remote snippet load @@ -8364,8 +8071,8 @@ Limitations on snippet loading from remote websites. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY' + + When an unauthenticated user exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'. Max searches in 3s @@ -8983,36 +8690,24 @@ Server Access Restrictions - - You can restrict the access to this proxy/server using a two-stage security barrier: + + You can restrict access to this proxy/server with an IP-number filter: define an <em>access domain</em> with a list of granted client IP-numbers or with wildcards - - define an <em>user account</em> with an user:password - pair - - - This is the account that restricts access to the proxy function. - You probably don't want to share the proxy to the internet, so you should set the IP-Number Access Domain to a pattern that corresponds to you local intranet. - - The default setting should be right in most cases. If you want, you can also set a proxy account - - - so that every proxy user must authenticate first, but this is rather unusual. + + The default setting should be right in most cases. IP-Number filter - - Accounts - @@ -10048,144 +9743,6 @@ - - - - "Publish" - - - "negative vote" - - - "positive vote" - - - You can share your local addition to translations and distribute it to other peers. - - - The remote peer can vote on your translation and add it to its own local translation. - - - File: - - - Originator - - - English: - - - existing - - - Translation: - - - Vote on this translation. If you vote positive the translation is added to your local translation list. - - - - - - - - "Save translation" - - - Translation Editor - - - Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory. - - - UI Translation - - - Source File - - - view it - - - filter untranslated - - - Source Text - - - - - - - - "login" - - - "logout" - - - "red bar" - - - "green bar" - - - "Change" - - - User Page - - - You are not logged in. - - - Username: - - - Password: - - - (Identified by - - - IP - - - Username/Password - - - Cookie - - - old Password - - - new Password - - - new Password(repetition) - - - You are currently logged in as admin. - - - (after logout you will be prompted for your password again. simply click "cancel") - - - Password was changed. - - - Old Password is wrong. - - - New Password and its repetition do not match. - - - New Password is empty. - - - - @@ -10753,99 +10310,16 @@ - - - - "all" - - - "admin" - - - "Submit" - - - "Preview" - - - "Discard" - - - "Show" - - - "Compare" - - - (only granted to admin) - - - Index - - - - Grant Write Access to - - - Edit - - - Author: - - - Text: - - - Preview - - - No changes have been submitted so far! - - - Index - - - Subject - - - Change Date - - - Last Author - - - Start Page - - - Versions - - - Compare version from - - - with version from - - - Error - - - You can use - - - Changes will be published as announcement on YaCyNews - - - - - + Wiki-Code - - This table contains a short description of the tags that can be used in the Wiki and several other servlets + + This table describes the WikiCode formatting supported in YaCy messages, - - of YaCy. For a more detailed description visit the + + profiles, and MediaWiki dump imports. Code @@ -10916,8 +10390,11 @@ [[pagename|description]] - - This tag creates links to other pages of the wiki. + + Internal-link markup retains its visible label but no longer creates a link, + + + because the local Wiki application has been retired. [url] @@ -11786,9 +11263,6 @@ Surftips - - Local Peer Wiki - Bookmarks @@ -11812,9 +11286,6 @@ Advanced Properties - - UI Translations - @@ -12077,20 +11548,6 @@ - - - - Publication - - - Wiki - - - Blog - - - - @@ -12459,23 +11916,6 @@ - - - - "login" - - - Your Username/Password is wrong. - - - Username - - - Password - - - - diff --git a/locales/pl.lng b/locales/pl.lng index 167db3c48..28a289a35 100644 --- a/locales/pl.lng +++ b/locales/pl.lng @@ -342,54 +342,6 @@ An error occurred while editing the following entries. Please check syntax.==Pod Activate this list for ...==Aktywuj tę listę dla ... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="Wyślij" -"Preview"=="Podgląd" -"Discard"=="Odrzuć" -"Yes, delete it."=="Tak, usuń." -"No, leave it."=="Nie, zostaw." -"Import"=="Importuj" -<< previous entries==<< poprzednie wpisy -next entries >>==następne wpisy >> -Blog-Home==Strona główna bloga -Edit==Edytuj -Author:==Autor: -Subject:==Temat: -Text:==Tekst: -Comments:==Komentarze: -deactivated==wyłączone -activated==aktywne -moderated==moderowane -Preview==Podgląd -No changes have been submitted so far!==Nie przesłano jeszcze żadnych zmian! -Access denied==Odmowa dostępu -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Aby edytować lub tworzyć wpisy na blogu, musisz być zalogowany jako administrator lub użytkownik z uprawnieniami do bloga. -Are you sure...==Czy na pewno... -Confirm deletion==Potwierdź usunięcie -XML-Import==Import XML -Import was successful!==Import zakończył się powodzeniem! -Import failed, maybe the supplied file was no valid blog-backup?==Import nie powiódł się, być może podany plik nie był prawidłową kopią zapasową bloga? -Please select the XML-file you want to import:==Wybierz plik XML, który chcesz zaimportować: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="Wyślij" -"Preview"=="Podgląd" -"Discard"=="Odrzuć" -Blog-Home==Strona główna bloga -Comments:==Komentarze: -<< previous entries==<< poprzednie wpisy -next entries >>==następne wpisy >> -Comments are not allowed for this posting!==Komentarze do tego wpisu są niedozwolone! -Comment on this Blog==Skomentuj ten blog -Author:==Autor: -Subject:==Temat: -Text:==Tekst: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -457,58 +409,10 @@ Private Queue==Kolejka prywatna Public Queue==Kolejka publiczna #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==Lista użytkowników -User Accounts==Konta użytkowników -User==Użytkownik -First name==Imię -Last name==Nazwisko -Address==Adres -Last Access==Ostatni dostęp -Rights==Uprawnienia -Time==Czas -Traffic==Ruch -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="Zdefiniuj administratora" -"Set Access Rules"=="Ustaw reguły dostępu" -"Edit User"=="Edytuj użytkownika" -"Delete User"=="Usuń użytkownika" -"Save User"=="Zapisz użytkownika" -User Administration==Zarządzanie użytkownikami -Generic error.==Błąd ogólny. Passwords do not match.==Hasła nie są zgodne. -Username too short. Username must be >= 4 Characters.==Nazwa użytkownika jest zbyt krótka. Nazwa użytkownika musi mieć >= 4 znaki. -Username already used (not allowed).==Nazwa użytkownika jest już używana (niedozwolone). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==OSTRZEŻENIE Tą instancją YaCy można administrować za pomocą konta "admin" i domyślnego hasła "yacy". -Change the password as soon as possible!==Zmień hasło jak najszybciej! Admin Account==Konto administratora -Access from localhost without account==Dostęp z localhost bez konta -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Dostęp do Twojego peera z własnego komputera (dostęp localhost) jest przyznawany z uprawnieniami administratora. Nie ma potrzeby konfigurowania konta administracyjnego. -This setting is convenient but less secure than using a qualified admin account.==To ustawienie jest wygodne, ale mniej bezpieczne niż użycie uprawnionego konta administratora. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Używaj ostrożnie, zwłaszcza gdy przeglądasz niezaufane i potencjalnie złośliwe strony, podczas gdy Twój peer YaCy działa na tym samym komputerze. -Access only with qualified account==Dostęp tylko z uprawnionym kontem -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Jest to wymagane, jeśli chcesz mieć zdalny dostęp do swojego peera, ale zwiększa też bezpieczeństwo kontroli dostępu do operacji administracyjnych peera. -Peer User:==Użytkownik peera: -New Peer Password:==Nowe hasło peera: -Repeat Peer Password:==Powtórz hasło peera: -Access Rules==Reguły dostępu -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Ochrona wszystkich stron: jeśli włączona, dostęp do wszystkich stron wymaga autoryzacji; jeśli wyłączona, chronione są tylko strony z rozszerzeniem "_p". -User Accounts==Konta użytkowników -Select user==Wybierz użytkownika -New user==Nowy użytkownik -Username==Nazwa użytkownika -Password==Hasło -Repeat password==Powtórz hasło -First name==Imię -Last name==Nazwisko -Address==Adres -Rights:==Uprawnienia: -Timelimit==Limit czasu -Time used==Zużyty czas #----------------------------- #File: ConfigAppearance_p.html @@ -886,8 +790,6 @@ Status page==strony statusu Network pages==stron sieci Surftips==porad surfowania News pages==stron aktualności -Blog==bloga -Wiki==wiki Public bookmarks==publicznych zakładek Home Page==strony głównej File Share==udziału plików @@ -1047,28 +949,6 @@ manual update:
    apt-get update && apt-get install yacy==ręczna aktua automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==automatyczna aktualizacja: dodaj następujący wiersz do /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="Zapisz użytkownika" -"Delete User"=="Usuń użytkownika" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Edytor konta użytkownika -Generic error.==Błąd ogólny. -Passwords do not match.==Hasła nie są zgodne. -Username too short. Username must be >= 4 Characters.==Nazwa użytkownika jest zbyt krótka. Nazwa użytkownika musi mieć >= 4 znaki. -Username already used (not allowed).==Nazwa użytkownika jest już używana (niedozwolone). -Username==Nazwa użytkownika -Password==Hasło -Repeat password==Powtórz hasło -First name==Imię -Last name==Nazwisko -Address==Adres -Rights:==Uprawnienia: -Timelimit==Limit czasu -Time used==Zużyty czas -back to user list==powrót do listy użytkowników -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==Śledzenie połączeń serwera @@ -2475,8 +2355,6 @@ inbox==skrzynka odbiorcza "DHT Receive: yes"=="Odbiór DHT: tak" "DHT receive enabled"=="Odbiór DHT włączony" "Profile updated"=="Profil zaktualizowany" -"Wiki updated"=="Wiki zaktualizowane" -"Blog updated"=="Blog zaktualizowany" "Crawl"=="Crawl" "The YaCy Network"=="Sieć YaCy" "Type: Virgin"=="Typ: Virgin" @@ -2522,7 +2400,6 @@ Received DHT
    Word Chunks==Odebrane fragmenty
    słów DHT Received
    URLs==Odebrane
    adresy URL Location==Lokalizacja user agent
    ==User-Agent
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==wyślij wiadomość (M)/
    pokaż profil (P)/
    edytuj wiki (W)/
    przeglądaj blog (B) Network==Sieć Online Peers==Peery online Number of
    Documents==Liczba
    dokumentów @@ -2593,7 +2470,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==Tabela z niedawno uruchomionymi crawlami jest wyświetlana na stronie Tworzenie indeksu A change in the personal profile will create a news entry. You can see recently made changes of==Zmiana w profilu osobistym utworzy wpis aktualności. Możesz zobaczyć niedawno wprowadzone zmiany profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==wpisów profilu na stronie Sieć, gdzie ta zmiana profilu jest oznaczona '*' obok selektora 'P' (profil). -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Publikowanie dodanego lub zmodyfikowanego tłumaczenia interfejsu użytkownika. Inne peery mogą uwzględnić je na swojej lokalnej liście tłumaczeń. More news services will follow.==Więcej usług aktualności pojawi się wkrótce. Above you can see four menus:==Powyżej widzisz cztery menu: Only these news will be used to display specific news services as explained above.==Tylko te aktualności będą używane do wyświetlania określonych usług aktualności, jak wyjaśniono powyżej. @@ -2999,23 +2875,18 @@ Age==Wiek "Reset to defaults settings"=="Przywróć ustawienia domyślne" limitations==ograniczenia Local Search access rate limitations==Ograniczenia częstotliwości dostępu do wyszukiwania lokalnego -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Tutaj możesz skonfigurować ograniczenia częstotliwości dostępu do interfejsu wyszukiwania tego peera dla nieuwierzytelnionych użytkowników oraz użytkowników bez rozszerzonego prawa wyszukiwania YaCy search==Wyszukiwanie YaCy Access rate limitations to this peer search interface.==Ograniczenia częstotliwości dostępu do interfejsu wyszukiwania tego peera. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Gdy użytkownik z ograniczonymi uprawnieniami (nieuwierzytelniony lub bez rozszerzonego prawa wyszukiwania) przekroczy limit, wyszukiwanie zostaje zablokowane. Max searches in 3s==Maks. wyszukiwań w 3 s Max searches in 1mn==Maks. wyszukiwań w 1 min Max searches in 10mn==Maks. wyszukiwań w 10 min Peer-to-peer search==Wyszukiwanie peer-to-peer Access rate limitations to the peer-to-peer search mode.==Ograniczenia częstotliwości dostępu do trybu wyszukiwania peer-to-peer. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Gdy użytkownik z ograniczonymi uprawnieniami (nieuwierzytelniony lub bez rozszerzonego prawa wyszukiwania) przekroczy limit, zakres wyszukiwania zostaje ograniczony tylko do indeksu tego lokalnego peera. Max searches in 10mn==Maks. wyszukiwań w 10 min Peer-to-peer search with JavaScript results resorting==Wyszukiwanie peer-to-peer z ponownym sortowaniem wyników przez JavaScript Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Ograniczenia częstotliwości dostępu do trybu wyszukiwania peer-to-peer z włączonym ponownym sortowaniem wyników przez JavaScript po stronie przeglądarki -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Gdy użytkownik z ograniczonymi uprawnieniami (nieuwierzytelniony lub bez rozszerzonego prawa wyszukiwania) przekroczy limit, ponowne sortowanie wyników staje się dostępne tylko na żądanie, po stronie serwera. Remote snippet load==Ładowanie zdalnego podglądu Limitations on snippet loading from remote websites.==Ograniczenia ładowania podglądów ze zdalnych stron internetowych. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Gdy użytkownik z ograniczonymi uprawnieniami (nieuwierzytelniony lub bez rozszerzonego prawa wyszukiwania) przekroczy limit, strategia pobierania podglądów zostaje zmieniona na 'CACHEONLY' Max searches in 3s==Maks. wyszukiwań w 3 s Changes will take effect immediately.==Zmiany zostaną zastosowane natychmiast. #----------------------------- @@ -3240,14 +3111,9 @@ These settings configure the access method to your own http proxy and server.==T All traffic is routed through one single port, for both proxy and server.==Cały ruch jest kierowany przez jeden pojedynczy port, zarówno dla proxy, jak i serwera. HTTPS Server Port:==Port serwera HTTPS: Server Access Restrictions==Ograniczenia dostępu do serwera -You can restrict the access to this proxy/server using a two-stage security barrier:==Możesz ograniczyć dostęp do tego proxy/serwera za pomocą dwuetapowej bariery bezpieczeństwa: define an access domain with a list of granted client IP-numbers or with wildcards==zdefiniuj domenę dostępu z listą dozwolonych adresów IP klientów lub z symbolami wieloznacznymi -define an user account with an user:password - pair==zdefiniuj konto użytkownika za pomocą pary użytkownik:hasło -This is the account that restricts access to the proxy function.==To jest konto, które ogranicza dostęp do funkcji proxy. You probably don't want to share the proxy to the internet, so you should set the==Prawdopodobnie nie chcesz udostępniać proxy w internecie, więc powinieneś ustawić IP-Number Access Domain to a pattern that corresponds to you local intranet.==domenę dostępu adresów IP na wzorzec odpowiadający Twojemu lokalnemu intranetowi. -The default setting should be right in most cases. If you want, you can also set a proxy account==Ustawienie domyślne powinno być odpowiednie w większości przypadków. Jeśli chcesz, możesz również ustawić konto proxy -so that every proxy user must authenticate first, but this is rather unusual.==tak, aby każdy użytkownik proxy musiał najpierw się uwierzytelnić, ale jest to raczej niespotykane. IP-Number filter==Filtr adresów IP Accounts==Konta #----------------------------- @@ -3638,59 +3504,6 @@ Save Tools Configuration==Zapisz konfigurację narzędzi CyTag Trails==Ślady CyTag #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="Opublikuj" -"negative vote"=="Negatywna ocena" -"positive vote"=="Pozytywna ocena" -You can share your local addition to translations and distribute it to other peers.==Możesz udostępnić swoje lokalne uzupełnienie tłumaczeń i rozdystrybuować je do innych peerów. -The remote peer can vote on your translation and add it to its own local translation.==Zdalny peer może zagłosować na Twoje tłumaczenie i dodać je do swojego własnego lokalnego tłumaczenia. -File:==Plik: -Originator==Inicjator -English:==Angielski: -existing==istniejące -Translation:==Tłumaczenie: -Vote on this translation. If you vote positive the translation is added to your local translation list.==Zagłosuj na to tłumaczenie. Jeśli zagłosujesz pozytywnie, tłumaczenie zostanie dodane do Twojej lokalnej listy tłumaczeń. -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="Zapisz tłumaczenie" -Translation Editor==Edytor tłumaczeń -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Przetłumacz nieprzetłumaczony tekst interfejsu użytkownika (bieżący język). Zmodyfikowany plik tłumaczenia jest przechowywany w katalogu DATA/LOCALE. -UI Translation==Tłumaczenie interfejsu użytkownika -Source File==Plik źródłowy -view it==wyświetl plik -filter untranslated==filtruj nieprzetłumaczone -Source Text==Tekst źródłowy -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="zaloguj" -"logout"=="Wyloguj" -"red bar"=="czerwony pasek" -"green bar"=="zielony pasek" -"Change"=="Zmień" -User Page==Strona użytkownika -You are not logged in.==Nie jesteś zalogowany. -Username:==Nazwa użytkownika: -Password:==Hasło: -(Identified by==(Zidentyfikowany przez -IP==IP -Username/Password==Nazwa użytkownika/hasło -Cookie==Cookie -old Password==stare hasło -new Password==nowe hasło -new Password(repetition)==nowe hasło (powtórzenie) -You are currently logged in as admin.==Jesteś obecnie zalogowany jako administrator. -(after logout you will be prompted for your password again. simply click "cancel")==(po wylogowaniu zostaniesz ponownie poproszony o hasło. Po prostu kliknij "anuluj") -Password was changed.==Hasło zostało zmienione. -Old Password is wrong.==Stare hasło jest nieprawidłowe. -New Password and its repetition do not match.==Nowe hasło i jego powtórzenie nie są zgodne. -New Password is empty.==Nowe hasło jest puste. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Przeglądarka systemu plików" @@ -3894,40 +3707,9 @@ Other Dot==Inny punkt Dot-end==Koniec punktu #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="Wszystkim" -"admin"=="Administrator" -"Submit"=="Wyślij" -"Preview"=="Podgląd" -"Discard"=="Odrzuć" -"Show"=="Pokaż" -"Compare"=="Porównaj" -(only granted to admin)==(dozwolone tylko dla administratora) -Index -==Indeks - -Grant Write Access to==Przyznaj dostęp do zapisu -Edit==Edytuj -Author:==Autor: -Text:==Tekst: -Preview==Podgląd -No changes have been submitted so far!==Nie przesłano jeszcze żadnych zmian! -Index==Indeks -Subject==Temat -Change Date==Data zmiany -Last Author==Ostatni autor -Start Page==Strona startowa -Versions==Wersje -Compare version from==Porównaj wersję z -with version from==z wersją z -Error==Błąd -You can use==Możesz tutaj użyć -Changes will be published as announcement on YaCyNews==Zmiany zostaną opublikowane jako ogłoszenie w YaCyNews -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Kod wiki -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Ta tabela zawiera krótki opis tagów, których można używać w wiki oraz w kilku innych serwletach of YaCy. For a more detailed description visit the==YaCy. Aby uzyskać bardziej szczegółowy opis, odwiedź Code==Kod Description==Opis @@ -3952,7 +3734,6 @@ These tags create a definition list.==Te tagi tworzą listę definicji. This tag creates a horizontal line.==Ten tag tworzy poziomą linię. [[pagename]]==[[nazwastrony]] [[pagename|description]]==[[nazwastrony|opis]] -This tag creates links to other pages of the wiki.==Ten tag tworzy linki do innych stron wiki. [url]==[URL] [url description]==[URL opis] This tag creates links to external websites.==Ten tag tworzy linki do zewnętrznych stron internetowych. @@ -4277,7 +4058,6 @@ Outgoing News==Wychodzące aktualności Published News==Opublikowane aktualności Community Data==Dane społeczności Surftips==Porady surfowania -Local Peer Wiki==Lokalne wiki peera Bookmarks==Zakładki #----------------------------- @@ -4288,7 +4068,6 @@ Advanced Settings==Ustawienia zaawansowane Performance Settings of Busy Queues==Ustawienia wydajności zajętych kolejek Viewer and administration for database tables==Przeglądarka i administracja tabelami bazy danych Advanced Properties==Zaawansowana konfiguracja -UI Translations==Tłumaczenia interfejsu #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4396,13 +4175,6 @@ User Profile==Profil użytkownika Local robots.txt==Lokalny robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Publikacja -Wiki==Wiki -Blog==Blog -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Ranking i heurystyki @@ -4549,14 +4321,6 @@ Get the latest Java Plug-in here.==Pobierz najnowszą wtyczkę Java tutaj. Built with Processing==Zbudowany z przetwarzaniem #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="Zaloguj" -Your Username/Password is wrong.==Twoja nazwa użytkownika/hasło są nieprawidłowe. -Username==Nazwa użytkownika -Password==Hasło -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Komunikat o błędzie diff --git a/locales/ru.lng b/locales/ru.lng index 632d999a1..26590f48f 100644 --- a/locales/ru.lng +++ b/locales/ru.lng @@ -186,54 +186,6 @@ DHT==DHT News==Новости Proxy==Прокси The tested URL was not valid.==Протестированный URL недействителен. -#File: Blog.html -Edit==Изменить -Text:==Текст: -#--------------------------- -Blog-Home==Домашняя страница блога -Author:==Автор: -Subject:==Тема: -Comments:==Комментарии: -deactivated==отключить -moderated==проверено -"Submit"=="Отправить" -"Preview"=="Предварительный просмотр" -"Discard"=="Отменить" -No changes have been submitted so far!==Изменения не были произведены! -Access denied==Доступ запрещен -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Чтобы изменить или создать блог, вы должны быть зарегистрированы в качестве администратора или пользователя, который имеет необходимые права. -Confirm deletion==Подтвердить удаление -Import was successful!==Импорт завершен успешно! -Import failed, maybe the supplied file was no valid blog-backup?==Не удалось импортировать, может быть, поставляемый файл не был резервной копией? -Please select the XML-file you want to import:==Пожалуйста, выберите XML-фаил, который вы импортируете: -#----------------------------- - -"RSS"=="RSS" -"Yes, delete it."=="Да, удалите." -"No, leave it."=="Нет, оставить." -"Import"=="Импорт" -<< previous entries==<< предыдущие записи -next entries >>==следующие записи >> -activated==активирован -Preview==Предварительный просмотр -Are you sure...==Вы уверены... -XML-Import==XML-Импорт -#File: BlogComments.html -Comments:==Комментарии: -Text:==Текст: -#--------------------------- -Blog-Home==Домашняя страница блога -Author:==Автор: -Subject:==Тема: -"Submit"=="Отправить" -"Preview"=="Предварительный просмотр" -"Discard"=="Отменить" -#----------------------------- - -<< previous entries==<< предыдущие записи -next entries >>==следующие записи >> -Comments are not allowed for this posting!==Комментарии к этой публикации запрещены! -Comment on this Blog==Комментировать этот блог #File: Bookmarks.html "Save"=="Сохранить" URL:==по ссылке: @@ -314,45 +266,11 @@ Search Result==Результат поиска loading....==загрузка.... #File: ConfigAccounts_p.html -Username==Имя пользователя #--------------------------- -User Accounts==Учётные записи пользователей -User Administration==Учётные записи -Generic error.==Общая ошибка. Passwords do not match.==Пароли не совпадают. -Username too short. Username must be >= 4 Characters.==Имя пользователя слишком короткое. Имя пользователя должно быть не меньше 4 символов. Admin Account==Учётная запись администратора -Access from localhost without account==Доступ со своего компьютера возможен без учётной записи. -Access only with qualified account==Доступ только с квалифицированной учётной записи -Peer User:==Пользователь узла: -New Peer Password:==Новый пароль узла: -Repeat Peer Password:==Повторите пароль узла: -"Define Administrator"=="Назначить администратором" -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Защита всех страниц: если включено, то для доступа ко всем страницам требуется авторизация; если выключено, то защищены только страницы с префиксом "_p". -Select user==Выбрать пользователя -New user==Новый пользователь -Repeat password==Повторите пароль -First name==Имя -Last name==Фамилия -Address==Адрес -Timelimit==Лимит времени -Time used==Время использования #----------------------------- -"Set Access Rules"=="Установить правила доступа" -"Edit User"=="Изменить пользователя" -"Delete User"=="Удалить пользователя" -"Save User"=="Сохранить пользователя" -Username already used (not allowed).==Имя пользователя уже использовано (не разрешено). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING Этот экземпляр YaCy можно администрировать с помощью учетной записи «admin» и пароля по умолчанию «yacy». -Change the password as soon as possible!==Смените пароль как можно скорее! -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Доступ к вашему узлу с вашего собственного компьютера (доступ локального хоста) предоставляется с правами администратора. Нет необходимости настраивать учетную запись администратора. -This setting is convenient but less secure than using a qualified admin account.==Этот параметр удобен, но менее безопасен, чем использование квалифицированной учетной записи администратора. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Используйте его с осторожностью, особенно при просмотре ненадежных и потенциально вредоносных веб-сайтов при запуске узла YaCy на том же компьютере. -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Это необходимо, если вам нужен удаленный доступ к вашему узлу, но это также ужесточает контроль доступа к административным операциям вашего узла. -Access Rules==Правила доступа -Password==Пароль -Rights:==Права: #File: ConfigAppearance_p.html Text==Текст #--------------------------- @@ -798,7 +716,6 @@ Status page==Состоянию страницы Network pages==Страницам сети Surftips==Подсказкам News pages==Страницам новостей -Blog==Блогу Public bookmarks==Публичным закладкам Home Page==Домашней странице File Share==Общим файлам @@ -812,7 +729,6 @@ Unable to access the local file:==Невозможно получить дост Deletion of==Удаление htroot/robots.txt==htroot/robots.txt failed==неуспешный -Wiki==Вики #File: ConfigSearchBox.html #--------------------------- Integration of a Search Box==Интеграция поиска @@ -2042,7 +1958,6 @@ Network History==История сети Count of all Active Peers Per Week in the last 30d, scale = 7d==Число всех активных узлов в неделю за последние 30 дней, масштаб = 7 дней Count of all Active Peers Per Month in the last 365d, scale = 30d==Число всех активных узлов в месяц за последний год, масштаб = 30 дней Manually contacting Peer==Ручное подключение узла -send Message/
    show Profile/
    edit Wiki/
    browse Blog==Отправить сообщение (m)/
    Смотреть профиль (p)/
    Читать Wiki (w)/
    Блог (b) Search for a peername (RegExp allowed)==Поиск узла по имени (разрешены регулярные выражения) "Search"=="Поиск" Name==Имя @@ -2097,8 +2012,6 @@ this peer==Ваш узел "Type: Principal | Contact: offline | Seed download: ?"=="Тип: Директор | Контакт: оффлайн | Загрузка семян: ?" "Principal offline"=="Директор оффлайн" "Profile updated"=="Профиль обновлен" -"Wiki updated"=="Вики обновлена" -"Blog updated"=="Блог обновлен" "Crawl"=="Сканировать" "Type: Virgin"=="Тип: Девственница" "Virgin"=="Девственник" @@ -2191,7 +2104,6 @@ Attributes==Аттрибуты "Processed News"=="Обработанные новости" "Outgoing News"=="Исходящие новости" "Published News"=="Опубликованные новости" -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Публикация добавленного или измененного перевода пользовательского интерфейса. Другие узлы могут включить его в свой локальный список переводов. More news services will follow.==За этим последуют и другие новостные службы. #File: Performance_p.html "Save"=="Сохранить" @@ -2659,14 +2571,9 @@ Proxy Access Settings==Настройки доступа к прокси These settings configure the access method to your own http proxy and server.==Здесь вы можете настроить доступ к вашему http-прокси и серверу. All traffic is routed through one single port, for both proxy and server.==Весь трафик направляется на один порт для прокси и сервера. Server Access Restrictions==Ограничения доступа к серверу -You can restrict the access to this proxy/server using a two-stage security barrier:==Вы можете ограничить доступ к своему прокси/серверу используя двухуровневый барьер: define an access domain with a list of granted client IP-numbers or with wildcards==установить доступ к домену списком предоставленных клиенту IP-адреса или символов -define an user account with an user:password - pair==установить учётную запись пользователя с логином и паролем -This is the account that restricts access to the proxy function.==Такая учётная запись будет иметь ограниченный доступ к функциям прокси. You probably don't want to share the proxy to the internet, so you should set the==Если вы не желаете использовать общий прокси для интернета, вы можете указать IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-адрес вашей локальной сети в фильтре ниже. -The default setting should be right in most cases. If you want, you can also set a proxy account==Настройки по-умолчанию подходят в большинстве случаев. Вы также можете установить учётную запись прокси -so that every proxy user must authenticate first, but this is rather unusual.==, чтобы сначала авторизовывался каждый пользователь прокси. Обычно это не практикуется. IP-Number filter==Фильтр IP-адресов #----------------------------- @@ -3181,32 +3088,6 @@ YaCy Debugging: Thread Dump==Oтладка YaCy: Дамп потока #----------------------------- Threaddump==Треддамп -#File: User.html -#--------------------------- -User Page==Страница пользователя -Username:==Имя пользователя: -"login"=="логин" -old Password==старый пароль -new Password(repetition)==новый пароль повторно -"Change"=="Изменить" -You are currently logged in as admin.==Вы зашли как администратор. -(after logout you will be prompted for your password again. simply click "cancel")==(после выхода необходимо ввести пароль повторно.) -Password was changed.==Пароль был изменен. -Old Password is wrong.==Старый пароль неправильный. -New Password and its repetition do not match.==Новый пароль не совпадает с повтором. -New Password is empty.==Новый пароль пустой. -#----------------------------- - -"logout"=="выход из системы" -"red bar"=="красная полоса" -"green bar"=="зеленая полоса" -You are not logged in.==Вы не вошли в систему. -Password:==Пароль: -(Identified by==(Идентифицировано -IP==IP -Username/Password==Имя пользователя/Password -Cookie==печенье -new Password==Новый пароль #File: ViewFile.html Description:==Описание: URL:==по ссылке: @@ -3454,41 +3335,9 @@ Line==Линия Pivot Dot==Поворотная точка Other Dot==Другая точка Dot-end==точка-конец -#File: Wiki.html -Edit==Изменить -Text:==Текст: -#--------------------------- -Grant Write Access to==Разрешено вести запись -# !!! Do not translate the input buttons because that breaks the function to switch rights !!! -Start Page==Стартовая страница -Index==Индекс -Versions==Версии -Author:==Автор: -You can use==Вы можете использовать -"Submit"=="Сохранить" -"Preview"=="Предпросмотр" -"Discard"=="Отменить" -No changes have been submitted so far!==Изменения не были произведены! -Subject==Тема -Change Date==Дата изменения -Last Author==Последний автор -Compare version from==Сравнить версию из -"Show"=="Показать" -with version from==с версией из -"Compare"=="Сравнить" -Changes will be published as announcement on YaCyNews==Изменения будут опубликованы в виде сообщений YaCy. -#----------------------------- - -"all"=="все" -"admin"=="администратор" -(only granted to admin)==(предоставлено только администратору) -Index -==Индекс - -Preview==Предварительный просмотр -Error==Ошибка -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-код -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Эта таблица содержит короткое описание тэгов, которые могут быть использованы в wiki и в некоторых других сервлетах of YaCy. For a more detailed description visit the==в YaCy. Если вам необходимо более детальное описание тэгов, то посетите Code==Код Description==Описание @@ -3499,7 +3348,6 @@ These tags create a numbered list.==Эти тэги создают пронум These tags create an unnumbered list.==Эти тэги создают ненумерованный список. These tags create a definition list.==Эти тэги создают список определений. This tag creates a horizontal line.==Этот тэг создаёт горизонтальную линию. -This tag creates links to other pages of the wiki.==Этот тэг создаёт ссылки на другие страницы Wiki. This tag displays an image, it can be aligned left, right or center.==Этот тэг служит для показа изображения, которое может быть выровнено по правую сторону, по левую или по центру. This tag displays a Youtube or Vimeo video with the id specified and fixed width 425 pixels and height 350 pixels.==Этот тэг служит для добавления видео с Youtube или Vimeo с заданным идентификатором и заданной шириной 425 пикселей и высотой 350 пикселей. These tags create a table, whereas the first marks the beginning of the table, the second starts==Эти тэги создают таблицу, где первые знаки начинают таблицу, вторые начинают @@ -3788,7 +3636,6 @@ Search Sequence==Последовательность поиска Messages==Сообщения Community Data==Данные сообщества Surftips==Советы -Local Peer Wiki==Локальный пир вики Bookmarks==Закладки #File: env/templates/submenuCrawler.template #----------------------------- @@ -3807,7 +3654,6 @@ Viewer and administration for database tables==Просмотр и управл Performance Settings of Busy Queues==Настройки производительности #----------------------------- -UI Translations==Переводы пользовательского интерфейса #File: env/templates/submenuDesign.template #--------------------------- Search Page Layout==Макет страницы поиска @@ -3915,13 +3761,6 @@ Mass Crawl Check==Массовая проверка индексирования Regex Test==Тест регулярного выражения #----------------------------- -#File: env/templates/submenuPublication.template -Blog==Блогу -#--------------------------- -Publication==Публикации -#----------------------------- - -Wiki==Вики #File: env/templates/submenuWebStructure.template #--------------------------- Web Visualization==Просмотр индекса @@ -3930,14 +3769,6 @@ Image Collage==Коллаж изображений Index Browser==Просмотр хостов #----------------------------- -#File: proxymsg/authfail.inc -Username==Имя пользователя -#--------------------------- -Your Username/Password is wrong.==Логин и/или пароль неверный. -"login"=="логин" -#----------------------------- - -Password==Пароль #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Сообщение об ошибке @@ -3993,42 +3824,6 @@ Shallow crawl depth (0 to 2):==Малая глубина сканировани Deep crawl depth (1 to 5):==Глубина глубокого сканирования (от 1 до 5): Index text:==Индексный текст: Index media:==Индексные СМИ: -#File: ConfigAccountList_p.html -#--------------------------- -Address==Адрес -First name==Имя -Last name==Фамилия -Time==Дата и время -User Accounts==Учётные записи пользователей -#----------------------------- - -User List==Список пользователей -User==Пользователь -Last Access==Последний доступ -Rights==Права -Traffic==Трафик -#File: ConfigUser_p.html -#--------------------------- -Address==Адрес -First name==Имя -Generic error.==Общая ошибка. -Last name==Фамилия -Passwords do not match.==Пароли не совпадают. -Repeat password==Повторите пароль -Time used==Время использования -Timelimit==Лимит времени -Username==Имя пользователя -Username too short. Username must be >= 4 Characters.==Имя пользователя слишком короткое. Имя пользователя должно быть не меньше 4 символов. -#----------------------------- - -"Save User"=="Сохранить пользователя" -"Delete User"=="Удалить пользователя" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Редактор учетных записей пользователей -Username already used (not allowed).==Имя пользователя уже использовано (не разрешено). -Password==Пароль -Rights:==Права: -back to user list==вернуться к списку пользователей #File: CrawlMonitorRemoteStart.html #--------------------------- Depth==Глубина @@ -4127,14 +3922,6 @@ Date:==Дата: Message:==Сообщение: Action:==Действие: inbox==входящие -#File: TransNews_p.html -#--------------------------- -"negative vote"=="Не понравилось" -"positive vote"=="Понравилось" -File:==Файл: -Originator==Инициатор -#----------------------------- - "Publish"=="Публиковать" You can share your local addition to translations and distribute it to other peers.==Вы можете поделиться своим локальным дополнением к переводам и распространить его среди других коллег. The remote peer can vote on your translation and add it to its own local translation.==Удаленный узел может проголосовать за ваш перевод и добавить его к своему локальному переводу. @@ -4530,23 +4317,18 @@ Save RAG Settings==Сохраните настройки RAG "Reset to defaults settings"=="Сброс к настройкам по умолчанию" limitations==ограничения Local Search access rate limitations==Ограничения скорости доступа к локальному поиску -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Здесь вы можете настроить ограничения на скорость доступа к этому интерфейсу однорангового поиска для неаутентифицированных пользователей и пользователей без права расширенного поиска. YaCy search==YaCy поиск Access rate limitations to this peer search interface.==Ограничения скорости доступа к этому интерфейсу поиска одноранговых узлов. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Когда пользователь с ограниченными правами (не прошедший аутентификацию или не имеющий права расширенного поиска) превышает лимит, поиск блокируется. Max searches in 3s==Макс. поиск за 3 с. Max searches in 1mn==Максимальное количество поисков за 1 минуту Max searches in 10mn==Макс. поиск за 10 минут Peer-to-peer search==Одноранговый поиск Access rate limitations to the peer-to-peer search mode.==Ограничения скорости доступа в режиме однорангового поиска. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Когда пользователь с ограниченными правами (не прошедший проверку подлинности или без права расширенного поиска) превышает ограничение, область поиска возвращается только к этому локальному индексу узла. Max searches in 10mn==Макс. поиск за 10 минут Peer-to-peer search with JavaScript results resorting==Одноранговый поиск с сортировкой результатов JavaScript Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Ограничения скорости доступа в режиме однорангового поиска с включенной сортировкой результатов JavaScript на стороне браузера -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Когда пользователь с ограниченными правами (не прошедший аутентификацию или не имеющий права расширенного поиска) превышает лимит, сортировка результатов становится применимой только по запросу на стороне сервера. Remote snippet load==Удаленная загрузка фрагмента Limitations on snippet loading from remote websites.==Ограничения на загрузку фрагментов с удаленных сайтов. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Когда пользователь с ограниченными правами (не прошедший проверку подлинности или без права расширенного поиска) превышает лимит, стратегия выборки фрагментов возвращается к «CACHEONLY». Max searches in 3s==Макс. поиск за 3 с. Changes will take effect immediately.==Изменения вступят в силу немедленно. #----------------------------- @@ -4671,18 +4453,6 @@ Save Tools Configuration==Сохранить конфигурацию инстр CyTag Trails==CyTag Тропы #----------------------------- -#File: Translator_p.html -#--------------------------- -"Save translation"=="Сохранить перевод" -Translation Editor==Редактор перевода -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Перевести непереведенный текст пользовательского интерфейса (текущий язык). Модифицированный файл перевода хранится в каталоге DATA/LOCALE. -UI Translation==Перевод пользовательского интерфейса -Source File==Исходный файл -view it==просмотреть это -filter untranslated==фильтровать непереведенные -Source Text==Исходный текст -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Браузер файловой системы" diff --git a/locales/sk.lng b/locales/sk.lng index 12d13c2e2..175668648 100644 --- a/locales/sk.lng +++ b/locales/sk.lng @@ -336,54 +336,6 @@ An error occurred while editing the following entries. Please check syntax.==Pri Activate this list for ...==Aktivujte tento zoznam pre... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="Odoslať" -"Preview"=="Ukážka" -"Discard"=="Zahodiť" -"Yes, delete it."=="Áno, vymazať." -"No, leave it."=="Nie, nechaj tak." -"Import"=="Importovať" -<< previous entries==<< predchádzajúce položky -next entries >>==ďalšie záznamy >> -Blog-Home==Blog-Domovska stranka -Edit==Edituj -Author:==Autor: -Subject:==Titul: -Text:==Text: -Comments:==Komentáre: -deactivated==deaktivovaný -activated==aktivovaný -moderated==moderované -Preview==Ukážka -No changes have been submitted so far!==Ziadne zmeny este neboli vytvorene! -Access denied==Pristup zakazany -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Na editaciu alebo vytvorenie blogu musite byt prihlaseny ako Admin alebo ako User s blog-pravami. -Are you sure...==Si si istý... -Confirm deletion==Potvrďte vymazanie -XML-Import==XML-Import -Import was successful!==Import bol úspešný! -Import failed, maybe the supplied file was no valid blog-backup?==Import zlyhal. Skutocne je importovany subor block-backup subor? -Please select the XML-file you want to import:==Prosim zvolte XML subor ktory chcete importovat: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="Odoslať" -"Preview"=="Ukážka" -"Discard"=="Zahodiť" -Blog-Home==Blog-Domovska stranka -Comments:==Komentáre: -<< previous entries==<< predchádzajúce položky -next entries >>==ďalšie záznamy >> -Comments are not allowed for this posting!==K tomuto príspevku nie sú povolené komentáre! -Comment on this Blog==Komentujte tento blog -Author:==Autor: -Subject:==Titul: -Text:==Text: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -451,58 +403,10 @@ Private Queue==Súkromný rad Public Queue==Verejná fronta #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==Zoznam používateľov -User Accounts==Používateľské účty -User==Používateľ -First name==Krstné meno -Last name==Priezvisko -Address==Adresa -Last Access==Posledný prístup -Rights==práva -Time==Čas -Traffic==Doprava -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="Definujte správcu" -"Set Access Rules"=="Nastavte pravidlá prístupu" -"Edit User"=="Upraviť používateľa" -"Delete User"=="Odstrániť používateľa" -"Save User"=="Uložiť používateľa" -User Administration==Správa používateľov -Generic error.==Všeobecná chyba. Passwords do not match.==Heslá sa nezhodujú. -Username too short. Username must be >= 4 Characters.==Používateľské meno je príliš krátke. Používateľské meno musí mať >= 4 znaky. -Username already used (not allowed).==Používateľské meno sa už používa (nie je povolené). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING Túto inštanciu YaCy možno spravovať pomocou účtu „admin“ a predvoleného hesla „yacy“. -Change the password as soon as possible!==Zmeňte heslo čo najskôr! Admin Account==Účet správcu -Access from localhost without account==Prístup z localhost bez účtu -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Prístup k vášmu partnerovi z vášho vlastného počítača (lokálny prístup) je udelený s právami správcu. Nie je potrebné konfigurovať správcovský účet. -This setting is convenient but less secure than using a qualified admin account.==Toto nastavenie je pohodlné, ale menej bezpečné ako používanie účtu kvalifikovaného správcu. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Používajte ho opatrne, najmä keď prehliadate nedôveryhodné a potenciálne škodlivé webové stránky a zároveň používate YaCy partnera na rovnakom počítači. -Access only with qualified account==Prístup len s kvalifikovaným účtom -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Vyžaduje sa to, ak chcete vzdialený prístup k svojmu partnerovi, ale zároveň to sprísňuje riadenie prístupu k operáciám správy vášho partnera. -Peer User:==Peer užívateľ: -New Peer Password:==Nové heslo partnera: -Repeat Peer Password:==Opakovať heslo partnera: -Access Rules==Pravidlá prístupu -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Ochrana všetkých stránok: ak je zapnutá, prístup na všetky stránky vyžaduje autorizáciu; ak je vypnuté, chránené sú iba stránky s príponou „_p“. -User Accounts==Používateľské účty -Select user==Vyberte používateľa -New user==Nový používateľ -Username==Používateľské meno -Password==heslo -Repeat password==Zopakujte heslo -First name==Krstné meno -Last name==Priezvisko -Address==Adresa -Rights:==práva: -Timelimit==Časový limit -Time used==Využitý čas #----------------------------- #File: ConfigAppearance_p.html @@ -880,8 +784,6 @@ Status page==Stavová stránka Network pages==Sieťové stránky Surftips==Tipy na surfovanie News pages==Spravodajské stránky -Blog==Blog -Wiki==Wiki Public bookmarks==Verejné záložky Home Page==Domovská stránka File Share==Zdieľanie súborov @@ -1041,28 +943,6 @@ manual update:
    apt-get update && apt-get install yacy==manuálna akt automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==automatická aktualizácia: pridajte nasledujúci riadok do /etc/crontab
    0 6 * * * aktualizácia root apt-get && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="Uložiť používateľa" -"Delete User"=="Odstrániť používateľa" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Editor používateľských účtov -Generic error.==Všeobecná chyba. -Passwords do not match.==Heslá sa nezhodujú. -Username too short. Username must be >= 4 Characters.==Používateľské meno je príliš krátke. Používateľské meno musí mať >= 4 znaky. -Username already used (not allowed).==Používateľské meno sa už používa (nie je povolené). -Username==Používateľské meno -Password==heslo -Repeat password==Zopakujte heslo -First name==Krstné meno -Last name==Priezvisko -Address==Adresa -Rights:==práva: -Timelimit==Časový limit -Time used==Využitý čas -back to user list==späť na zoznam používateľov -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==Sledovanie pripojenia k serveru @@ -2469,8 +2349,6 @@ inbox==doručenej pošty "DHT Receive: yes"=="DHT Príjem: áno" "DHT receive enabled"=="Príjem DHT je povolený" "Profile updated"=="Profil bol aktualizovaný" -"Wiki updated"=="Wiki bola aktualizovaná" -"Blog updated"=="Blog bol aktualizovaný" "Crawl"=="Prehľadávať" "The YaCy Network"=="Sieť YaCy" "Type: Virgin"=="Typ: panenský" @@ -2516,7 +2394,6 @@ Received DHT
    Word Chunks==Prijaté časti DHT
    Word Received
    URLs==Prijaté
    URL adresy Location==Miesto user agent
    ==používateľský agent
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==odoslať správu/
    zobraziť profil/
    upraviť Wiki/
    prehliadať blog Network==sieť Online Peers==Online rovesníci Number of
    Documents==Počet
    dokumentov @@ -2587,7 +2464,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==Tabulka s prave odstartovanymi procesmi preliezania (crawls) je zobrazena na stranke "Vytvor index". A change in the personal profile will create a news entry. You can see recently made changes of==Zmena v profile sposobi vytvorenie zaznamu v spravach. Posledne vykonane zmeny profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==v profiloch mozete vidiet na stranke "Siet" kde su tieto profily oznacene hviezdickou '*' vedla 'P' (profil). -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Publikovanie pridaného alebo upraveného prekladu pre používateľské rozhranie. Ostatní partneri ho môžu zahrnúť do svojho zoznamu miestnych prekladov. More news services will follow.==Dalsie sluzby pre spravy budu nasledovat. Above you can see four menus:==V menu mozete vidiet tieto styri zaznami: Only these news will be used to display specific news services as explained above.==Ako bolo vysvetlene vyzsie na zobrazenie specifickych sluzieb sprav budu pouzite len tieto spravy. @@ -2993,23 +2869,18 @@ Age==Vek "Reset to defaults settings"=="Obnoviť predvolené nastavenia" limitations==obmedzenia Local Search access rate limitations==Obmedzenia rýchlosti prístupu miestneho vyhľadávania -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Tu môžete nakonfigurovať obmedzenia rýchlosti prístupu k tomuto rozhraniu partnerského vyhľadávania pre neoverených používateľov a používateľov bez rozšíreného práva na vyhľadávanie YaCy search==YaCy vyhľadávanie Access rate limitations to this peer search interface.==Obmedzenia rýchlosti prístupu k tomuto rozhraniu partnerského vyhľadávania. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Keď používateľ s obmedzenými právami (neoverený alebo bez práva na rozšírené vyhľadávanie) prekročí limit, vyhľadávanie sa zablokuje. Max searches in 3s==Maximálny počet vyhľadávaní za 3 sekundy Max searches in 1mn==Maximálny počet vyhľadávaní za 1 min Max searches in 10mn==Maximálny počet vyhľadávaní za 10 minút Peer-to-peer search==Peer-to-peer vyhľadávanie Access rate limitations to the peer-to-peer search mode.==Obmedzenia rýchlosti prístupu do režimu vyhľadávania peer-to-peer. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Keď používateľ s obmedzenými právami (neautentizovaný alebo bez práva na rozšírené vyhľadávanie) prekročí limit, rozsah vyhľadávania sa vráti len na tento lokálny partnerský index. Max searches in 10mn==Maximálny počet vyhľadávaní za 10 minút Peer-to-peer search with JavaScript results resorting==Vyhľadávanie typu peer-to-peer s JavaScript výsledkami Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Obmedzenia rýchlosti prístupu k režimu vyhľadávania peer-to-peer s povoleným uchyľovaním výsledkov JavaScript na strane prehliadača -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Keď používateľ s obmedzenými právami (neoverený alebo bez práva na rozšírené vyhľadávanie) prekročí limit, uchyľovanie výsledkov sa stáva použiteľným iba na požiadanie na strane servera. Remote snippet load==Vzdialené načítanie úryvku Limitations on snippet loading from remote websites.==Obmedzenia načítania úryvkov zo vzdialených webových stránok. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Keď používateľ s obmedzenými právami (neoverený alebo bez práva na rozšírené vyhľadávanie) prekročí limit, stratégia načítania úryvkov sa vráti späť na „CACHEONLY“ Max searches in 3s==Maximálny počet vyhľadávaní za 3 sekundy Changes will take effect immediately.==Zmeny sa prejavia okamžite. #----------------------------- @@ -3234,14 +3105,9 @@ These settings configure the access method to your own http proxy and server.==T All traffic is routed through one single port, for both proxy and server.==Všetka prevádzka je smerovaná cez jeden jediný port pre proxy aj server. HTTPS Server Port:==HTTPS Port servera: Server Access Restrictions==Obmedzenia pristupu k serveru -You can restrict the access to this proxy/server using a two-stage security barrier:==Pristup k tomuto proxy resp. HTTP serveru mozete obmedzit pouzitym 2-stupnovej bezpecnostnej bariery: define an access domain with a list of granted client IP-numbers or with wildcards==definujte prístupovú doménu pomocou zoznamu pridelených klientskych IP-čísel alebo pomocou zástupných znakov -define an user account with an user:password - pair==definovať používateľský účet pomocou user:password - pair -This is the account that restricts access to the proxy function.==Toto je účet, ktorý obmedzuje prístup k funkcii proxy. You probably don't want to share the proxy to the internet, so you should set the==Pravdepodobne nechcete zdieľať proxy na internet, takže by ste mali nastaviť IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP-Číslo prístupovej domény k vzoru, ktorý zodpovedá vášmu lokálnemu intranetu. -The default setting should be right in most cases. If you want, you can also set a proxy account==Predvolené nastavenie by malo byť vo väčšine prípadov správne. Ak chcete, môžete si nastaviť aj proxy účet -so that every proxy user must authenticate first, but this is rather unusual.==takže každý používateľ proxy sa musí najprv overiť, ale je to dosť nezvyčajné. IP-Number filter==IP-Filter čísel Accounts==účty #----------------------------- @@ -3632,59 +3498,6 @@ Save Tools Configuration==Uložiť konfiguráciu nástrojov CyTag Trails==CyTag Trails #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="Publikovať" -"negative vote"=="negatívny hlas" -"positive vote"=="kladné hlasovanie" -You can share your local addition to translations and distribute it to other peers.==Svoj miestny doplnok môžete zdieľať s prekladmi a distribuovať ho ďalším kolegom. -The remote peer can vote on your translation and add it to its own local translation.==Vzdialený partner môže hlasovať o vašom preklade a pridať ho do svojho vlastného lokálneho prekladu. -File:==Súbor: -Originator==Autor -English:==angličtina: -existing==existujúce -Translation:==preklad: -Vote on this translation. If you vote positive the translation is added to your local translation list.==Hlasujte za tento preklad. Ak zahlasujete kladne, preklad sa pridá do vášho miestneho zoznamu prekladov. -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="Uložiť preklad" -Translation Editor==Editor prekladov -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Preložiť nepreložený text používateľského rozhrania (aktuálny jazyk). Upravený prekladový súbor je uložený v adresári DATA/LOCALE. -UI Translation==Preklad používateľského rozhrania -Source File==Zdrojový súbor -view it==pozri si to -filter untranslated==filter nepreložený -Source Text==Zdrojový text -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="prihlásenie" -"logout"=="odhlásenie" -"red bar"=="červený pruh" -"green bar"=="zelený pruh" -"Change"=="Zmeniť" -User Page==Používateľská stránka -You are not logged in.==Nie ste prihlásený. -Username:==Používateľské meno: -Password:==heslo: -(Identified by==(Identifikované podľa -IP==IP -Username/Password==Používateľské meno/Password -Cookie==Cookie -old Password==staré heslo -new Password==nové heslo -new Password(repetition)==nové heslo (opakovanie) -You are currently logged in as admin.==Momentálne ste prihlásený ako admin. -(after logout you will be prompted for your password again. simply click "cancel")==(po odhlásení budete opäť vyzvaní na zadanie hesla. jednoducho kliknite na "zrušiť") -Password was changed.==Heslo bolo zmenené. -Old Password is wrong.==Staré heslo je nesprávne. -New Password and its repetition do not match.==Nové heslo a jeho opakovanie sa nezhodujú. -New Password is empty.==Nové heslo je prázdne. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Prehliadač súborového systému" @@ -3888,40 +3701,9 @@ Other Dot==Iná bodka Dot-end==Dot-end #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="všetky" -"admin"=="admin" -"Submit"=="Odoslať" -"Preview"=="Ukážka" -"Discard"=="Zahodiť" -"Show"=="Zobraziť" -"Compare"=="Porovnaj" -(only granted to admin)==(udelené iba správcovi) -Index -==Index - -Grant Write Access to==Udeliť prístup na zápis pre -Edit==Edituj -Author:==Autor: -Text:==Text: -Preview==Ukážka -No changes have been submitted so far!==Ziadne zmeny este neboli vytvorene! -Index==Index -Subject==Predmet -Change Date==Zmeniť dátum -Last Author==Posledný autor -Start Page==Úvodná stránka -Versions==Verzie -Compare version from==Porovnať verziu z -with version from==s verziou od -Error==Chyba -You can use==Môžete použiť -Changes will be published as announcement on YaCyNews==Zmeny budu zverejnene pomocou oznamov na YaCyNews-och -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki-kód -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Táto tabuľka obsahuje krátky popis značiek, ktoré možno použiť vo Wiki a niekoľkých ďalších servletoch of YaCy. For a more detailed description visit the==z YaCy. Pre podrobnejší popis navštívte Code==kód Description==Popis @@ -3946,7 +3728,6 @@ These tags create a definition list.==Tieto značky vytvárajú zoznam definíci This tag creates a horizontal line.==Táto značka vytvára vodorovnú čiaru. [[pagename]]==[[názov stránky]] [[pagename|description]]==[[názov stránky|popis]] -This tag creates links to other pages of the wiki.==Táto značka vytvára odkazy na iné stránky wiki. [url]==[url] [url description]==[popis adresy URL] This tag creates links to external websites.==Táto značka vytvára odkazy na externé webové stránky. @@ -4271,7 +4052,6 @@ Outgoing News==Odchadzajuce spravy Published News==Zverejnene spravy Community Data==údaje komunity Surftips==Tipy na surfovanie -Local Peer Wiki==Miestna rovesnícka Wiki Bookmarks==Záložky #----------------------------- @@ -4282,7 +4062,6 @@ Advanced Settings==Pokrocilé nastavenia Performance Settings of Busy Queues==Nastavenia výkonu zaneprázdnených frontov Viewer and administration for database tables==Prehliadač a správa databázových tabuliek Advanced Properties==Rozšírené vlastnosti -UI Translations==Preklady používateľského rozhrania #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4390,13 +4169,6 @@ User Profile==Používateľský profil Local robots.txt==Miestny súbor robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Publikácia -Wiki==Wiki -Blog==Blog -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Hodnotenie a heuristika @@ -4543,14 +4315,6 @@ Get the latest Java Plug-in here.==Získajte najnovší doplnok Java tu. Built with Processing==Postavené so spracovaním #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="prihlásenie" -Your Username/Password is wrong.==Vaše používateľské meno/Password je nesprávne. -Username==Používateľské meno -Password==heslo -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Chybové hlásenie diff --git a/locales/source-master.lng.xlf b/locales/source-master.lng.xlf index 039b4045c..f7454aa92 100644 --- a/locales/source-master.lng.xlf +++ b/locales/source-master.lng.xlf @@ -902,136 +902,6 @@
    - - - - "RSS" - - - "Submit" - - - "Preview" - - - "Discard" - - - "Yes, delete it." - - - "No, leave it." - - - "Import" - - - &lt;&lt; previous entries - - - next entries &gt;&gt; - - - Blog-Home - - - Edit - - - Author: - - - Subject: - - - Text: - - - Comments: - - - deactivated - - - activated - - - moderated - - - Preview - - - No changes have been submitted so far! - - - Access denied - - - To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights. - - - Are you sure... - - - Confirm deletion - - - XML-Import - - - Import was successful! - - - Import failed, maybe the supplied file was no valid blog-backup? - - - Please select the XML-file you want to import: - - - - - - - - "Submit" - - - "Preview" - - - "Discard" - - - Blog-Home - - - Comments: - - - &lt;&lt; previous entries - - - next entries &gt;&gt; - - - Comments are not allowed for this posting! - - - Comment on this Blog - - - Author: - - - Subject: - - - Text: - - - - @@ -1219,150 +1089,61 @@ - - - - User List - - - User Accounts - - - User - - - First name - - - Last name - - - Address - - - Last Access - - - Rights - - - Time - - - Traffic - - - - - - "Define Administrator" - - - "Set Access Rules" + + "Change Administrator Credentials" - - "Edit User" - - - "Delete User" - - - "Save User" - - - User Administration + + Admin Account - - Generic error. + + Invalid administrator settings. Passwords do not match. - - Username too short. Username must be &gt;= 4 Characters. + + Administrator username is required. - - Username already used (not allowed). + + Administrator password is required. - - <b>WARNING</b> This YaCy instance can be administered with the account "admin" and the default password "yacy". - - - Change the password as soon as possible! - - - Admin Account - - - Access from localhost without account - - - Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account. + + Default administrator password is active. - - This setting is convenient but less secure than using a qualified admin account. + + This YaCy instance can still be administered with the username "admin" and the default password "yacy". Replace these credentials using the form directly below. - - Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer. + + These credentials are used for remote administration and whenever administrative access from localhost without authentication is disabled. - - Access only with qualified account + + Administrator Username: - - This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer. + + New Administrator Password: - - Peer User: + + Repeat Administrator Password: - - New Peer Password: - - - Repeat Peer Password: + + If you need to reset the administrator password from the console, run bin/passwd.sh from the YaCy installation directory. Access Rules - - Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected. + + Allow administrative access from localhost without authentication - - User Accounts + + When enabled, eligible requests from the same computer receive administrator rights without sending credentials. - - Select user + + Require administrator authorization for all applicable pages - - New user - - - Username - - - Password - - - Repeat password - - - First name - - - Last name - - - Address - - - Rights: - - - Timelimit - - - Time used + + When disabled, administration pages whose names contain "_p" remain protected. When enabled, all applicable pages require administrator authorization. @@ -1527,8 +1308,8 @@ Fran&ccedil;ais - - Greek + + Polski Italiano @@ -1536,6 +1317,12 @@ Español + + T&uuml;rk&ccedil;e + + + Sloven&#269;ina + Use Case: what do you want to do with YaCy: @@ -1551,18 +1338,18 @@ Community-based web search - - Search portal for your own web pages - - - Intranet Indexing - Join and support the global network 'freeworld', search the web with an uncensored user-owned search network + + Search portal for your own web pages + Your YaCy installation behaves independently from other peers and you define your own web index by starting your own web crawl. This can be used to search your own web pages or to define a topic-oriented search portal. + + Intranet Indexing + Create a search portal for your intranet or web pages or your (shared) file system. URLs may be used with http/https/ftp and a local domain name or IP, or with an URL of the form file:///&lt;path&gt; or smb://&lt;server&gt;/&lt;path&gt; @@ -2412,12 +2199,6 @@ News pages - - Blog - - - Wiki - Public bookmarks @@ -2871,65 +2652,6 @@ - - - - "Save User" - - - "Delete User" - - - "ConfigAccountList_p.html" - - - User Account Editor - - - Generic error. - - - Passwords do not match. - - - Username too short. Username must be &gt;= 4 Characters. - - - Username already used (not allowed). - - - Username - - - Password - - - Repeat password - - - First name - - - Last name - - - Address - - - Rights: - - - Timelimit - - - Time used - - - back to user list - - - - @@ -6836,12 +6558,6 @@ "Profile updated" - - "Wiki updated" - - - "Blog updated" - "Crawl" @@ -7183,9 +6899,6 @@ profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector. - - Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list. - More news services will follow. @@ -8310,8 +8023,8 @@ Local Search access rate limitations - - You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right + + You can configure here limitations on access rate to this peer search interface by unauthenticated users. YaCy search @@ -8319,8 +8032,8 @@ Access rate limitations to this peer search interface. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked. + + When an unauthenticated user exceeds a limit, the search is blocked. Max searches in 3s @@ -8337,8 +8050,8 @@ Access rate limitations to the peer-to-peer search mode. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index. + + When an unauthenticated user exceeds a limit, the search scope falls back to only this local peer index. Max searches in 10mn @@ -8349,8 +8062,8 @@ Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side. + + When an unauthenticated user exceeds a limit, results resorting becomes only applicable on demand, server-side. Remote snippet load @@ -8358,8 +8071,8 @@ Limitations on snippet loading from remote websites. - - When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY' + + When an unauthenticated user exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'. Max searches in 3s @@ -8977,36 +8690,24 @@ Server Access Restrictions - - You can restrict the access to this proxy/server using a two-stage security barrier: + + You can restrict access to this proxy/server with an IP-number filter: define an <em>access domain</em> with a list of granted client IP-numbers or with wildcards - - define an <em>user account</em> with an user:password - pair - - - This is the account that restricts access to the proxy function. - You probably don't want to share the proxy to the internet, so you should set the IP-Number Access Domain to a pattern that corresponds to you local intranet. - - The default setting should be right in most cases. If you want, you can also set a proxy account - - - so that every proxy user must authenticate first, but this is rather unusual. + + The default setting should be right in most cases. IP-Number filter - - Accounts - @@ -10042,144 +9743,6 @@ - - - - "Publish" - - - "negative vote" - - - "positive vote" - - - You can share your local addition to translations and distribute it to other peers. - - - The remote peer can vote on your translation and add it to its own local translation. - - - File: - - - Originator - - - English: - - - existing - - - Translation: - - - Vote on this translation. If you vote positive the translation is added to your local translation list. - - - - - - - - "Save translation" - - - Translation Editor - - - Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory. - - - UI Translation - - - Source File - - - view it - - - filter untranslated - - - Source Text - - - - - - - - "login" - - - "logout" - - - "red bar" - - - "green bar" - - - "Change" - - - User Page - - - You are not logged in. - - - Username: - - - Password: - - - (Identified by - - - IP - - - Username/Password - - - Cookie - - - old Password - - - new Password - - - new Password(repetition) - - - You are currently logged in as admin. - - - (after logout you will be prompted for your password again. simply click "cancel") - - - Password was changed. - - - Old Password is wrong. - - - New Password and its repetition do not match. - - - New Password is empty. - - - - @@ -10747,99 +10310,16 @@ - - - - "all" - - - "admin" - - - "Submit" - - - "Preview" - - - "Discard" - - - "Show" - - - "Compare" - - - (only granted to admin) - - - Index - - - - Grant Write Access to - - - Edit - - - Author: - - - Text: - - - Preview - - - No changes have been submitted so far! - - - Index - - - Subject - - - Change Date - - - Last Author - - - Start Page - - - Versions - - - Compare version from - - - with version from - - - Error - - - You can use - - - Changes will be published as announcement on YaCyNews - - - - - + Wiki-Code - - This table contains a short description of the tags that can be used in the Wiki and several other servlets + + This table describes the WikiCode formatting supported in YaCy messages, - - of YaCy. For a more detailed description visit the + + profiles, and MediaWiki dump imports. Code @@ -10910,8 +10390,11 @@ [[pagename|description]] - - This tag creates links to other pages of the wiki. + + Internal-link markup retains its visible label but no longer creates a link, + + + because the local Wiki application has been retired. [url] @@ -11780,9 +11263,6 @@ Surftips - - Local Peer Wiki - Bookmarks @@ -11806,9 +11286,6 @@ Advanced Properties - - UI Translations - @@ -12071,20 +11548,6 @@ - - - - Publication - - - Wiki - - - Blog - - - - @@ -12453,23 +11916,6 @@ - - - - "login" - - - Your Username/Password is wrong. - - - Username - - - Password - - - - diff --git a/locales/tr.lng b/locales/tr.lng index 325be245a..28ff24c7b 100644 --- a/locales/tr.lng +++ b/locales/tr.lng @@ -344,54 +344,6 @@ An error occurred while editing the following entries. Please check syntax.==Aş Activate this list for ...==Bu listeyi şunun için etkinleştirin: #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="Gönder" -"Preview"=="Önizleme" -"Discard"=="Reddet" -"Yes, delete it."=="Evet, silin." -"No, leave it."=="Hayır, bırak gitsin." -"Import"=="İçe aktarmak" -<< previous entries==<< önceki girişler -next entries >>==sonraki girişler >> -Blog-Home==Blog Ana Sayfası -Edit==Düzenle -Author:==Yazar: -Subject:==Başlık: -Text:==Metin: -Comments:==Yorumlar: -deactivated==devre dışı -activated==etkinleştirildi -moderated==modere edilmiş -Preview==Önizleme -No changes have been submitted so far!==Şimdiye kadar hiçbir değişiklik gönderilmedi! -Access denied==Erişim reddedildi -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Blog girişlerini düzenlemek veya oluşturmak için Admin veya Blog haklarına sahip bir kullanıcı olarak giriş yapmalısınız. -Are you sure...==Emin misin... -Confirm deletion==Silme işlemini onayla -XML-Import==XML-İçe Aktarma -Import was successful!==İçe aktarma başarılı! -Import failed, maybe the supplied file was no valid blog-backup?==İçe aktarma başarısız, belki sağlanan dosya geçerli bir blog yedekleme dosyası değil? -Please select the XML-file you want to import:==Lütfen içe aktarmak istediğiniz XML dosyasını seçin: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="Gönder" -"Preview"=="Önizleme" -"Discard"=="Reddet" -Blog-Home==Blog Ana Sayfası -Comments:==Yorumlar: -<< previous entries==<< önceki girişler -next entries >>==sonraki girişler >> -Comments are not allowed for this posting!==Bu gönderiye yorum yapılmasına izin verilmiyor! -Comment on this Blog==Bu Bloga yorum yapın -Author:==Yazar: -Subject:==Başlık: -Text:==Metin: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -459,58 +411,10 @@ Private Queue==Özel Sıra Public Queue==Genel Sıra #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==Kullanıcı Listesi -User Accounts==Kullanıcı Hesapları -User==Kullanıcı -First name==Ad -Last name==Soyad -Address==Adres -Last Access==Son Erişim -Rights==Haklar -Time==Zaman -Traffic==Trafik -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="Yönetici Belirle" -"Set Access Rules"=="Erişim Kurallarını Ayarlayın" -"Edit User"=="Kullanıcıyı Düzenle" -"Delete User"=="Kullanıcıyı Sil" -"Save User"=="Kullanıcıyı Kaydet" -User Administration==Kullanıcı Yönetimi -Generic error.==Genel hata. Passwords do not match.==Parolalar uyuşmuyor. -Username too short. Username must be >= 4 Characters.==Kullanıcı adı çok kısa. Kullanıcı adı 4 veya daha fazla karakter olmalı. -Username already used (not allowed).==Kullanıcı adı zaten kullanılıyor (izin verilmiyor). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING Bu YaCy örneği "admin" hesabı ve varsayılan şifre "yacy" ile yönetilebilir. -Change the password as soon as possible!==Şifreyi mümkün olan en kısa sürede değiştirin! Admin Account==Yönetici Hesabı -Access from localhost without account==Hesapsız localhost erişimi -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Kendi bilgisayarınızdan eşinize erişim (localhost erişimi), yönetici hakları ile verilmiştir. Bir yönetici hesabı yapılandırmaya gerek yok. -This setting is convenient but less secure than using a qualified admin account.==Bu ayar kullanışlıdır ancak nitelikli bir yönetici hesabı kullanmaktan daha az güvenlidir. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Lütfen, özellikle güvenilmeyen ve potansiyel olarak kötü amaçlı web sitelerine göz atarken ve aynı bilgisayarda YaCy eşinizi çalıştırırken dikkatli kullanın. -Access only with qualified account==Sadece yetkili hesap ile erişim -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Eşinize uzaktan erişim istiyorsanız bu gereklidir, ancak aynı zamanda eşinizin yönetim işlemlerine ilişkin erişim kontrollerini de güçlendirir. -Peer User:==Eş Kullanıcısı: -New Peer Password:==Yeni Eş Parolası: -Repeat Peer Password:==Eş Parolasını Tekrarla: -Access Rules==Erişim Kuralları -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Tüm sayfaların korunması: Açık olarak ayarlanırsa tüm sayfalara erişim için yetkilendirme gerekir; kapalıysa yalnızca "_p" uzantılı sayfalar korunur. -User Accounts==Kullanıcı Hesapları -Select user==Kullanıcı seç -New user==Yeni kullanıcı -Username==Kullanıcı Adı -Password==Şifre -Repeat password==Parolayı tekrarla -First name==Ad -Last name==Soyad -Address==Adres -Rights:==Haklar: -Timelimit==Zaman sınırı -Time used==Kullanılan zaman #----------------------------- #File: ConfigAppearance_p.html @@ -888,8 +792,6 @@ Status page==Durum sayfası Network pages==Ağ sayfaları Surftips==Surf İpuçları News pages==Haber sayfaları -Blog==Blog -Wiki==Viki Public bookmarks==Genel yer imleri Home Page==Ana Sayfa File Share==Dosya Paylaşımı @@ -1049,28 +951,6 @@ manual update:
    apt-get update && apt-get install yacy==manuel günce automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==otomatik güncelleme: /etc/crontab
    0'a aşağıdaki satırı ekleyin 6 * * * root apt-get update && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="Kullanıcıyı Kaydet" -"Delete User"=="Kullanıcıyı Sil" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Kullanıcı Hesabı Düzenleyicisi -Generic error.==Genel hata. -Passwords do not match.==Parolalar uyuşmuyor. -Username too short. Username must be >= 4 Characters.==Kullanıcı adı çok kısa. Kullanıcı adı 4 veya daha fazla karakter olmalı. -Username already used (not allowed).==Kullanıcı adı zaten kullanılıyor (izin verilmiyor). -Username==Kullanıcı Adı -Password==Şifre -Repeat password==Parolayı tekrarla -First name==Ad -Last name==Soyad -Address==Adres -Rights:==Haklar: -Timelimit==Zaman sınırı -Time used==Kullanılan zaman -back to user list==kullanıcı listesine geri dön -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==Sunucu Bağlantı Takibi @@ -2477,8 +2357,6 @@ inbox==Gelen Kutusu "DHT Receive: yes"=="DHT Alımı: evet" "DHT receive enabled"=="DHT alımı etkin" "Profile updated"=="Profil güncellendi" -"Wiki updated"=="Wiki güncellendi" -"Blog updated"=="Blog güncellendi" "Crawl"=="Sürünmek" "The YaCy Network"=="YaCy Ağı" "Type: Virgin"=="Tür: Bakire" @@ -2524,7 +2402,6 @@ Received DHT
    Word Chunks==DHT
    Kelime Parçaları alındı Received
    URLs==Alınan
    URL'ler Location==Konum user agent
    ==kullanıcı aracısı
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==Mesaj gönder (m)/
    Profil göster (p)/
    Wiki düzenle (w)/
    Blogu gözat (b) Network==Ağ Online Peers==Çevrimiçi Akranlar Number of
    Documents==
    Belge sayısı @@ -2595,7 +2472,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page==Yeni başlatılan taramaların bir tablosu Index Create sayfasında sunulmaktadır. A change in the personal profile will create a news entry. You can see recently made changes of==Kişisel profilde bir değişiklik bir haber girişi oluşturacaktır. Son zamanlarda yapılan değişiklikleri görebilirsiniz. profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==Profil değişikliği 'P' (profil) - seçici yanındaki '*' ile görselleştirilen Ağ sayfasındaki profil girişlerinde görselleştirilir. -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Kullanıcı arayüzü için eklenen veya değiştirilen çevirinin yayınlanması. Diğer meslektaşları bunu kendi yerel çeviri listelerine ekleyebilirler. More news services will follow.==Daha fazla haber servisi izleyecek. Above you can see four menus:==Yukarıda dört menüyü görebilirsiniz: Only these news will be used to display specific news services as explained above.==Yalnızca bu haberler, yukarıda açıklandığı gibi belirli haber servislerini görüntülemek için kullanılacaktır. @@ -3001,23 +2877,18 @@ Age==Yaş "Reset to defaults settings"=="Varsayılan ayarlara sıfırla" limitations==sınırlamalar Local Search access rate limitations==Yerel Arama erişim oranı sınırlamaları -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Kimliği doğrulanmamış kullanıcılar ve genişletilmiş arama hakkı olmayan kullanıcılar tarafından bu eş arama arayüzüne erişim hızına ilişkin sınırlamaları burada yapılandırabilirsiniz. YaCy search==YaCy arama Access rate limitations to this peer search interface.==Bu eş arama arayüzüne erişim hızı sınırlamaları. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Sınırlı haklara sahip bir kullanıcı (kimliği doğrulanmamış veya genişletilmiş arama hakkı olmayan) bir sınırı aştığında arama engellenir. Max searches in 3s==3 saniyede maksimum arama Max searches in 1mn==1 dakikada maksimum arama Max searches in 10mn==10 dakika içinde maksimum arama sayısı Peer-to-peer search==Eşler arası arama Access rate limitations to the peer-to-peer search mode.==Eşler arası arama moduna erişim hızı sınırlamaları. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Sınırlı haklara sahip bir kullanıcı (kimliği doğrulanmamış veya genişletilmiş arama hakkı olmayan) bir sınırı aştığında, arama kapsamı yalnızca bu yerel eş dizinine düşer. Max searches in 10mn==10 dakikada maksimum arama Peer-to-peer search with JavaScript results resorting==JavaScript sonuçlarının kullanıldığı eşler arası arama Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Tarayıcı tarafı JavaScript sonuçlarına başvurmanın etkin olduğu eşler arası arama moduna erişim hızı sınırlamaları -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Sınırlı haklara sahip bir kullanıcı (kimliği doğrulanmamış veya genişletilmiş arama hakkı olmayan) bir sınırı aştığında, sonuçlara başvurulması yalnızca talep üzerine, sunucu tarafında uygulanabilir hale gelir. Remote snippet load==Uzaktan snippet yükleme Limitations on snippet loading from remote websites.==Uzak web sitelerinden snippet yüklemeye ilişkin sınırlamalar. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Sınırlı haklara sahip (kimliği doğrulanmamış veya genişletilmiş arama hakkı olmayan) bir kullanıcı bir sınırı aştığında, snippet'leri getirme stratejisi 'YALNIZCA ÖNBELLEK' durumuna geri döner Max searches in 3s==3 saniyede maksimum arama Changes will take effect immediately.==Değişiklikler hemen geçerli olacaktır. #----------------------------- @@ -3242,14 +3113,9 @@ These settings configure the access method to your own http proxy and server.==B All traffic is routed through one single port, for both proxy and server.==Tüm trafiğin, hem proxy hem de sunucu için tek bir port üzerinden yönlendirildiği. HTTPS Server Port:==HTTPS Sunucu Bağlantı Noktası: Server Access Restrictions==Sunucu Erişim Kısıtlamaları -You can restrict the access to this proxy/server using a two-stage security barrier:==Bu proxy/sunucuya erişimi, iki aşamalı bir güvenlik bariyeri kullanarak sınırlayabilirsiniz: define an access domain with a list of granted client IP-numbers or with wildcards==bir erişim alanı tanımlayın ve onaylanmış istemci IP numaraları listesi veya joker karakterlerle belirtin -define an user account with an user:password - pair==bir kullanıcı hesabı belirtin ve bir kullanıcı:şifre çifti ile eşleştirin -This is the account that restricts access to the proxy function.==Bu, proxy fonksiyonuna erişimi sınırlayan hesaptır. You probably don't want to share the proxy to the internet, so you should set the==Proxy'yi muhtemelen internetle paylaşmak istemezsiniz, bu yüzden IP-Number Access Domain to a pattern that corresponds to you local intranet.==IP Numarası Erişim Alanınızı yerel intranetinize uygun bir desene ayarlamanız gerekir. -The default setting should be right in most cases. If you want, you can also set a proxy account==Varsayılan ayar çoğu durumda doğru olmalıdır. İsterseniz bir proxy hesabı da ayarlayabilirsiniz -so that every proxy user must authenticate first, but this is rather unusual.==böylece her proxy kullanıcısının önce kimlik doğrulaması yapması gerekir, ancak bu pek alışılmış bir durum değildir. IP-Number filter==IP-Numarası Filtresi Accounts==Hesaplar #----------------------------- @@ -3640,59 +3506,6 @@ Save Tools Configuration==Araç Yapılandırmasını Kaydet CyTag Trails==CyTag Parkurları #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="Yayınla" -"negative vote"=="Negatif oy" -"positive vote"=="Pozitif oy" -You can share your local addition to translations and distribute it to other peers.==Yerel eklerinizi çevirilere paylaşabilir ve diğer meslektaşlarınıza dağıtabilirsiniz. -The remote peer can vote on your translation and add it to its own local translation.==Uzaktaki eş, çevirinize oy verebilir ve onu kendi yerel çevirisine ekleyebilir. -File:==Dosya: -Originator==Başlatan -English:==İngilizce: -existing==mevcut -Translation:==Çeviri: -Vote on this translation. If you vote positive the translation is added to your local translation list.==Bu çeviriye oy verin. Olumlu oy verirseniz çeviri yerel çeviri listenize eklenir. -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="Çeviriyi kaydet" -Translation Editor==Çeviri Düzenleyici -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Kullanıcı arayüzünün çevrilmemiş metnini çevirin (geçerli dil). Değiştirilen çeviri dosyası DATA/LOCALE dizininde saklanır. -UI Translation==UI Çevirisi -Source File==Kaynak Dosya -view it==onu görüntüle -filter untranslated==çevrilmemiş olanı filtrele -Source Text==Kaynak Metin -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="giriş" -"logout"=="oturumu kapat" -"red bar"=="kırmızı çubuk" -"green bar"=="yeşil çubuk" -"Change"=="Değiştir" -User Page==Kullanıcı Sayfası -You are not logged in.==Oturum açmadınız. -Username:==Kullanıcı Adı: -Password:==Şifre: -(Identified by==(Tanımlayan -IP==IP -Username/Password==Kullanıcı adı/Password -Cookie==Çerez -old Password==eski Şifre -new Password==Yeni Şifre -new Password(repetition)==yeni Şifre (tekrar) -You are currently logged in as admin.==Şu anda admin olarak giriş yaptınız. -(after logout you will be prompted for your password again. simply click "cancel")==(çıkış yaptıktan sonra şifreniz tekrar istenecek. sadece "iptal"e tıklayın) -Password was changed.==Şifre değiştirildi. -Old Password is wrong.==Eski Şifre yanlış. -New Password and its repetition do not match.==Yeni Şifre ve tekrarı uyuşmuyor. -New Password is empty.==Yeni Şifre boş. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Dosya sistemi tarayıcısı" @@ -3896,40 +3709,9 @@ Other Dot==Diğer Nokta Dot-end==Nokta sonu #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="Tümü" -"admin"=="yönetici" -"Submit"=="Gönder" -"Preview"=="Önizleme" -"Discard"=="Reddet" -"Show"=="Göster" -"Compare"=="Karşılaştır" -(only granted to admin)==(yalnızca yöneticiye verilir) -Index -==Dizin - -Grant Write Access to==Wiki'yi düzenleme izni ver: -Edit==Düzenle -Author:==Yazar: -Text:==Metin: -Preview==Önizleme -No changes have been submitted so far!==Şu ana kadar hiçbir değişiklik gönderilmedi! -Index==Dizin -Subject==Konu -Change Date==Değiştirme Tarihi -Last Author==Son Yazar -Start Page==Başlangıç Sayfası -Versions==Sürümler -Compare version from==Şu sürümüyle karşılaştır -with version from==şu sürümle -Error==Hata -You can use==Şunları kullanabilirsiniz -Changes will be published as announcement on YaCyNews==Değişiklikler, YaCyNews'te bir duyuru olarak yayınlanacaktır. -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki Kodu -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Bu tablo Wiki'de ve diğer bazı sunucu uygulamalarında kullanılabilecek etiketlerin kısa bir açıklamasını içerir. of YaCy. For a more detailed description visit the==YaCy. Daha ayrıntılı bir açıklama için şu adresi ziyaret edin: Code==Kod Description==Açıklama @@ -3954,7 +3736,6 @@ These tags create a definition list.==Bu etiketler bir tanım listesi oluşturur This tag creates a horizontal line.==Bu etiket yatay bir çizgi oluşturur. [[pagename]]==[[sayfa adı]] [[pagename|description]]==[[sayfa adı|açıklama]] -This tag creates links to other pages of the wiki.==Bu etiket, wikinin diğer sayfalarına bağlantılar oluşturur. [url]==[URL'si] [url description]==[url açıklaması] This tag creates links to external websites.==Bu etiket, harici web sitelerine bağlantılar oluşturur. @@ -4279,7 +4060,6 @@ Outgoing News==Giden Haberler Published News==Yayınlanan Haberler Community Data==Topluluk Verileri Surftips==Surf İpuçları -Local Peer Wiki==Yerel Akran Wiki Bookmarks==Yer imleri #----------------------------- @@ -4290,7 +4070,6 @@ Advanced Settings==Gelişmiş Ayarlar Performance Settings of Busy Queues==Meşgul Kuyrukların Performans Ayarları Viewer and administration for database tables==Veritabanı tabloları için görüntüleyici ve yönetim Advanced Properties==Gelişmiş Özellikler -UI Translations==Kullanıcı Arayüzü Çevirileri #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4398,13 +4177,6 @@ User Profile==Kullanıcı Profili Local robots.txt==Yerel robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Yayın -Wiki==Viki -Blog==Blog -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==Sıralama ve Buluşsal Yöntem @@ -4551,14 +4323,6 @@ Get the latest Java Plug-in here.==En son Java Eklentisini buradan alın. Built with Processing==İşlemeyle Oluşturuldu #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="giriş" -Your Username/Password is wrong.==Kullanıcı Adınız/Password yanlış. -Username==Kullanıcı Adı -Password==Şifre -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Hata Mesajı diff --git a/locales/uk.lng b/locales/uk.lng index 462ed9afa..3d958609d 100644 --- a/locales/uk.lng +++ b/locales/uk.lng @@ -143,55 +143,6 @@ DHT==DHT News==Новини Proxy==Проксі The tested URL was not valid.==Перевірений URL недійсний. -#File: Blog.html -Edit==Редагувати -#--------------------------- -Blog-Home==Початкова сторінка блогу -Author:==Автор: -Subject:==Заголовок: -Text:==Текст: -Comments:==Коментарі: -deactivated==вимкнені -moderated==модеровані -"Submit"=="Відправити" -"Preview"=="Попередній перегляд" -"Discard"=="Скасувати" -No changes have been submitted so far!==Ще не було передано жодних змін! -Access denied==В доступі відмовлено -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==Для зміни або створення записів блогу ви повинні ввійти як Admin чи уповноважений користувач. -Confirm deletion==Підтвердити видалення -Import was successful!==Успішно імпортовано! -Import failed, maybe the supplied file was no valid blog-backup?==Імпорт не вдався. Можливо, наданий файл не був правильною резервною копією блогу? -Імпортування закінчилося невдачею, можливо поначений файл не був дійсною резервною копією блогу? -Please select the XML-file you want to import:==Будь-ласка, виберіть XML-файл, який потрібно імпортувати: -"Import"=="Імпорт" -#----------------------------- - -"RSS"=="RSS" -"Yes, delete it."=="Так, видалити." -"No, leave it."=="Ні, залиште." -<< previous entries==<< попередніх записів -next entries >>==наступні записи >> -activated==активовано -Preview==Попередній перегляд -Are you sure...==Ви впевнені... -XML-Import==XML-Імпорт -#File: BlogComments.html -Comments:==Коментарі: -#--------------------------- -Blog-Home==Початкова сторінка блогу -Author:==Автор: -Subject:==Заголовок: -Text:==Текст: -"Submit"=="Відправити" -"Preview"=="Попередній перегляд" -"Discard"=="Скасувати" -#----------------------------- - -<< previous entries==<< попередніх записів -next entries >>==наступні записи >> -Comments are not allowed for this posting!==Коментарі до цієї публікації заборонені! -Comment on this Blog==Прокоментуйте цей блог #File: Bookmarks.html "Save"=="Зберегти" #--------------------------- @@ -274,46 +225,11 @@ Search Result==Результати пошуку loading....==завантаження.... #File: ConfigAccounts_p.html -Username==Користувач #--------------------------- -User Accounts==Облікові записи користувачів -User Administration==Керування користувачами -Generic error.==Загальна помилка. Passwords do not match.==Паролі не збігаються. Admin Account==Обліковий запис адміністратора -Access from localhost without account==Доступ з місцевого хосту без облікового запису -Access only with qualified account==Доступ тільки з відповідного облікового запису -Peer User:==Користувач вузла: -New Peer Password:==Новий пароль: -Repeat Peer Password:==Повтор паролю: -"Define Administrator"=="Визначити адміністратора" -Select user==Вибрати користувача -New user==Новий користувач -Repeat password==Повтор пароля -First name==Ім’я -Last name==Прізвище -Address==Адреса -Timelimit==Часове обмеження -Time used==Часу використано - #----------------------------- -"Set Access Rules"=="Встановити правила доступу" -"Edit User"=="Редагувати користувача" -"Delete User"=="Видалити користувача" -"Save User"=="Зберегти користувача" -Username too short. Username must be >= 4 Characters.==Ім'я користувача занадто коротке. Ім’я користувача має містити >= 4 символи. -Username already used (not allowed).==Ім'я користувача вже використано (не дозволено). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==WARNING Цим екземпляром YaCy можна керувати за допомогою облікового запису «admin» і пароля за умовчанням «yacy». -Change the password as soon as possible!==Змініть пароль якнайшвидше! -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==Доступ до вашого вузла з вашого власного комп’ютера (доступ до локального хосту) надається з правами адміністратора. Не потрібно налаштовувати обліковий запис адміністратора. -This setting is convenient but less secure than using a qualified admin account.==Цей параметр зручний, але менш безпечний, ніж використання кваліфікованого облікового запису адміністратора. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==Будь ласка, використовуйте обережно, особливо коли ви переглядаєте ненадійні та потенційно зловмисні веб-сайти під час роботи вашого однорангового YaCy на тому самому комп’ютері. -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==Це потрібно, якщо вам потрібен віддалений доступ до вашого однорангового вузла, але це також посилює контроль доступу до операцій адміністрування вашого однорангового вузла. -Access Rules==Правила доступу -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==Захист усіх сторінок: якщо ввімкнено, для доступу до всіх сторінок потрібна авторизація; якщо вимкнено, захищені лише сторінки з розширенням "_p". -Password==Пароль -Rights:==права: #File: ConfigAppearance_p.html Text==Текст #--------------------------- @@ -691,7 +607,6 @@ Status page==Сторінки стану Network pages==Сторінки мережі Surftips==Порад по серфінгу News pages==Сторінки новин -Blog==Блогу Public bookmarks==Публічних закладок Home Page==Домашньої сторінки File Share==Обміну файлами @@ -706,7 +621,6 @@ Unable to access the local file:==Неможливо отримати досту Deletion of==Видалення htroot/robots.txt==htroot/robots.txt failed==не вдалося -Wiki==Wiki #File: ConfigSearchBox.html #--------------------------- Integration of a Search Box==Інтегрування рядка пошуку @@ -1689,7 +1603,6 @@ The information that is presented on this page can also be retrieved as XML.==І Click the API icon to see the XML.==Натисніть значок API для відображення XML. Network Overview==Огляд мережі Manually contacting Peer==Ручний зв’язок -send Message/
    show Profile/
    edit Wiki/
    browse Blog==надіслати повідомлення/
    показати профіль/
    редагувати Wiki/
    переглянути блог Search for a peername (RegExp allowed)==Пошук імені вузла (RegExp) "Search"=="Пошук" Last
    Seen==Востаннє
    відомий @@ -1742,8 +1655,6 @@ this peer==ваш вузол "Type: Principal | Contact: offline | Seed download: ?"=="Тип: Головний | Контакт: офлайн | Завантаження початкового матеріалу: ?" "Principal offline"=="Директор офлайн" "Profile updated"=="Профіль оновлено" -"Wiki updated"=="Wiki оновлено" -"Blog updated"=="Блог оновлено" "Crawl"=="Сканувати" "Type: Virgin"=="Тип: Діва" "Virgin"=="Богородиця" @@ -1849,7 +1760,6 @@ Attributes==Властивості "Processed News"=="Оброблені новини" "Outgoing News"=="Вихідні новини" "Published News"=="Опубліковані новини" -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==Публікація доданого або зміненого перекладу для інтерфейсу користувача. Інші однолітки можуть включити його до свого локального списку перекладів. #File: Performance_p.html "Save"=="Зберегти" #--------------------------- @@ -2205,14 +2115,9 @@ Proxy Access Settings==Налаштування доступу до проксі These settings configure the access method to your own http proxy and server.==Ці налаштування визначають спосіб доступу до вашого власного HTTP-проксі та сервера. All traffic is routed through one single port, for both proxy and server.==Увесь трафік проксі й сервера проходить через один порт. Server Access Restrictions==Обмеження доступу до сервера -You can restrict the access to this proxy/server using a two-stage security barrier:==Ви можете обмежити доступ до цього проксі/сервера за допомогою двоступеневого захисту: define an access domain with a list of granted client IP-numbers or with wildcards==визначити домен доступу зі списком дозволених IP-адрес клієнтів або шаблонів -define an user account with an user:password - pair==визначити обліковий запис користувача з парою user:password -This is the account that restricts access to the proxy function.==Цей обліковий запис обмежує доступ до функції проксі. You probably don't want to share the proxy to the internet, so you should set the==Ймовірно, ви не хочете відкривати проксі для інтернету, тому слід встановити IP-Number Access Domain to a pattern that corresponds to you local intranet.==домен доступу IP-номерів на шаблон, що відповідає вашій локальній інтрамережі. -The default setting should be right in most cases. If you want, you can also set a proxy account==Типове налаштування підходить у більшості випадків. За потреби можна також задати обліковий запис проксі, -so that every proxy user must authenticate first, but this is rather unusual.==щоб кожен користувач проксі спочатку проходив автентифікацію, але це досить незвично. IP-Number filter==Фільтр IP-номерів #--------------------------- Transparent Proxy==Прозорий проксі @@ -2756,32 +2661,6 @@ YaCy Debugging: Thread Dump==Відлагодження YaCy: Dump потоку #----------------------------- Threaddump==Дамп потоку -#File: User.html -#--------------------------- -User Page==Сторінка користувача -Username:==Ім’я користувача: -"login"=="ввійти" -old Password==старий пароль -new Password(repetition)==новий пароль (повтор) -"Change"=="Змінити" -You are currently logged in as admin.==В даний момент ви увійшли в систему як адміністратор. -(after logout you will be prompted for your password again. simply click "cancel")==(після виходу вам буде запропоновано ввести пароль ще раз. Просто натисніть на "скасувати") -Password was changed.==Пароль було змінено. -Old Password is wrong.==Старий пароль неправильний. -New Password and its repetition do not match.==Новий пароль і його повторення не збігаються. -New Password is empty.==Новий пароль порожній. -#----------------------------- - -"logout"=="вийти з системи" -"red bar"=="червона смуга" -"green bar"=="зелена смуга" -You are not logged in.==Ви не ввійшли в систему. -Password:==Пароль: -(Identified by==(Ідентифіковано -IP==IP -Username/Password==Ім'я користувача/Password -Cookie==Печиво -new Password==новий пароль #File: ViewFile.html Description:==Опис: no==ні @@ -2967,41 +2846,9 @@ Line==лінія Pivot Dot==Опорна точка Other Dot==Інша точка Dot-end==Крапка -#File: Wiki.html -Edit==Редагувати -#--------------------------- -Grant Write Access to==Дозволити наступним користувачам змінювати Wiki -# !!! Do not translate the input buttons because that breaks the function to switch rights !!! -Start Page==Початкова сторінка -Index==Індекс -Versions==Версії -Author:==Автор: -Text:==Текст: -You can use==Ви можете тут використовувати -"Submit"=="Надіслати" -"Preview"=="Попередній перегляд" -"Discard"=="Відкинути" -No changes have been submitted so far!==Поки-що не надіслано жодних змін! -Subject==Назва -Change Date==Дата зміни -Last Author==Останній автор -Compare version from==Порівняння версії -"Show"=="Показати" -with version from==з версією -"Compare"=="Порівняти" -Changes will be published as announcement on YaCyNews==Зміни будуть опубліковані у службі новин YaCy. -#----------------------------- - -"all"=="все" -"admin"=="адмін" -(only granted to admin)==(надається лише адміністратору) -Index -==Індекс - -Preview==Попередній перегляд -Error==Помилка -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Команди Wiki -This table contains a short description of the tags that can be used in the Wiki and several other servlets==Ця таблиця містить короткий опис кодів, що можуть бути використані у YaCy-Wiki та інших місцях. of YaCy. For a more detailed description visit the==Детальний опис можна знайти на Description==Опис text==текст @@ -3012,7 +2859,6 @@ These tags create a numbered list.==Ці коданди створюють но These tags create an unnumbered list.==Ці коданди створюють неномерований список. These tags create a definition list.==Ці команди створюють список визначень. This tag creates a horizontal line.==Цей код створює горизонтальну лінію. -This tag creates links to other pages of the wiki.==Цей код створює посилання на іншу сторінку у Wiki. This tag displays an image, it can be aligned left, right or center.==Це код вставки зображення, яке може бути залишено (left), вирівняно по правому краю (right) або виставлено посередині (center). These tags create a table, whereas the first marks the beginning of the table, the second starts==Це команди створення таблиці, з яких перша визначає початок таблиці, другий починає a new line, the third and fourth each create a new cell in the line. The last displayed tag==новий рядок, а третя та четверта створюють нову клітинку в рядку. Останній код @@ -3215,7 +3061,6 @@ Advanced Properties==Розширені властивості System Administration==Системне адміністрування Performance Settings of Busy Queues==Параметри продуктивності зайнятих черг Viewer and administration for database tables==Перегляд і адміністрування таблиць бази даних -UI Translations==Переклади інтерфейсу користувача #File: env/templates/submenuCrawlMonitor.template #--------------------------- Web Crawler==Сканер мережі @@ -3254,13 +3099,6 @@ Solr Schema Editor==Solr Редактор схем Field Re-Indexing==Переіндексація полів Reverse Word Index==Зворотний покажчик слів Content Analysis==Аналіз вмісту -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==Публікація -Blog==Блог -#----------------------------- - -Wiki==Wiki #File: env/templates/submenuUseCaseAccount.template #--------------------------- Basic Configuration==Початкове налаштування @@ -3277,14 +3115,6 @@ Web Structure==Структура інтернету Image Collage==Змішана картина #----------------------------- -#File: proxymsg/authfail.inc -Username==Користувач -#--------------------------- -Your Username/Password is wrong.==Ім’я користувача/пароль неправильні. -"login"=="ввійти" -#----------------------------- - -Password==Пароль #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: Повідомлення про помилку @@ -3356,7 +3186,6 @@ Log Reports==Журнал звітів Thread Dump==Дамп потоку Community Data==Дані спільноти Surftips==Поради для серфінгу -Local Peer Wiki==Local Peer Wiki Bookmarks==Закладки #File: IndexFederated_p.html "Set"=="Виставити" @@ -3423,20 +3252,6 @@ Shallow crawl depth (0 to 2):==Мала глибина сканування (в Deep crawl depth (1 to 5):==Глибоке сканування (від 1 до 5): Index text:==Індексний текст: Index media:==Індекс медіа: -#File: ConfigAccountList_p.html -#--------------------------- -Address==Адреса -First name==Ім’я -Last name==Прізвище -User Accounts==Облікові записи користувачів -#----------------------------- - -User List==Список користувачів -User==Користувач -Last Access==Останній доступ -Rights==права -Time==час -Traffic==трафік #File: ConfigSearchPage_p.html #--------------------------- Applications==Додатки @@ -3525,28 +3340,6 @@ Menu: System Administration > Advanced Settings > Debug/Analysis Settings==Ме Add Navigators==Додати навігатори append==додавати max. items==макс. елементи -#File: ConfigUser_p.html -#--------------------------- -Address==Адреса -First name==Ім’я -Generic error.==Загальна помилка. -Last name==Прізвище -Passwords do not match.==Паролі не збігаються. -Repeat password==Повтор пароля -Time used==Часу використано -Timelimit==Часове обмеження -Username==Користувач -#----------------------------- - -"Save User"=="Зберегти користувача" -"Delete User"=="Видалити користувача" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==Редактор облікових записів користувачів -Username too short. Username must be >= 4 Characters.==Ім'я користувача занадто коротке. Ім’я користувача має містити >= 4 символи. -Username already used (not allowed).==Ім'я користувача вже використано (не дозволено). -Password==Пароль -Rights:==права: -back to user list==повернутися до списку користувачів #File: ContentAnalysis_p.html #--------------------------- "Set"=="Виставити" @@ -3821,14 +3614,6 @@ Link:==Посилання: Status:==Статус: URL successfully added to Crawler Queue==URL успішно додано до черги сканера Malformed URL==Неправильний URL -#File: TransNews_p.html -#--------------------------- -"negative vote"=="негативний відгук" -"positive vote"=="позитивний відгук" -File:==Файл: -Originator==Творець -#----------------------------- - "Publish"=="Опублікувати" You can share your local addition to translations and distribute it to other peers.==Ви можете поділитися своїм локальним доповненням до перекладів і розповсюдити його іншим колегам. The remote peer can vote on your translation and add it to its own local translation.==Віддалений партнер може проголосувати за ваш переклад і додати його до свого локального перекладу. @@ -4389,23 +4174,18 @@ match==матч "Reset to defaults settings"=="Відновити налаштування за замовчуванням" limitations==обмеження Local Search access rate limitations==Обмеження швидкості доступу до локального пошуку -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==Тут можна налаштувати обмеження на швидкість доступу до цього інтерфейсу однорангового пошуку для неавтентифікованих користувачів і користувачів без прав розширеного пошуку YaCy search==YaCy пошук Access rate limitations to this peer search interface.==Обмеження швидкості доступу до цього інтерфейсу однорангового пошуку. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==Коли користувач з обмеженими правами (неавтентифікований або без розширеного права пошуку) перевищує обмеження, пошук блокується. Max searches in 3s==Макс. пошук за 3 с Max searches in 1mn==Макс. пошук за 1 хв Max searches in 10mn==Макс шукає за 10 хв Peer-to-peer search==Одноранговий пошук Access rate limitations to the peer-to-peer search mode.==Обмеження швидкості доступу до режиму однорангового пошуку. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==Коли користувач з обмеженими правами (неавтентифікований або без прав розширеного пошуку) перевищує ліміт, область пошуку повертається лише до цього локального однорангового індексу. Max searches in 10mn==Макс шукає за 10 хв Peer-to-peer search with JavaScript results resorting==Рівноправний пошук із JavaScript результатами пошуку Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==Обмеження швидкості доступу до режиму однорангового пошуку з увімкненим переглядом результатів JavaScript на стороні браузера -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==Коли користувач з обмеженими правами (неавтентифікований або без розширеного права пошуку) перевищує обмеження, сортування результатів стає застосовним лише на вимогу на стороні сервера. Remote snippet load==Віддалене завантаження фрагмента Limitations on snippet loading from remote websites.==Обмеження на завантаження фрагментів із віддалених веб-сайтів. -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==Коли користувач з обмеженими правами (неавтентифікований або без прав розширеного пошуку) перевищує ліміт, стратегія отримання фрагментів повертається до «CACHEONLY» Max searches in 3s==Макс. пошук за 3 с Changes will take effect immediately.==Зміни набудуть чинності негайно. #----------------------------- @@ -4550,18 +4330,6 @@ Save Tools Configuration==Зберегти конфігурацію інстру CyTag Trails==Стежки CyTag #----------------------------- -#File: Translator_p.html -#--------------------------- -"Save translation"=="Зберегти переклад" -Translation Editor==Редактор перекладу -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==Перекласти неперекладений текст інтерфейсу користувача (поточна мова). Змінений файл перекладу зберігається в каталозі DATA/LOCALE. -UI Translation==Переклад інтерфейсу користувача -Source File==Вихідний файл -view it==переглянути його -filter untranslated==фільтр неперекладений -Source Text==Вихідний текст -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="Браузер файлової системи" diff --git a/locales/zh.lng b/locales/zh.lng index e80cb2e9d..79c78778b 100644 --- a/locales/zh.lng +++ b/locales/zh.lng @@ -337,54 +337,6 @@ An error occurred while editing the following entries. Please check syntax.==编 Activate this list for ...==激活此列表... #----------------------------- -#File: Blog.html -#--------------------------- -"RSS"=="RSS" -"Submit"=="提交" -"Preview"=="预览" -"Discard"=="取消" -"Yes, delete it."=="是的,删除它。" -"No, leave it."=="不,留下吧。" -"Import"=="进口" -<< previous entries==<< 之前的条目 -next entries >>==下一个条目 >> -Blog-Home==博客主页 -Edit==编辑 -Author:==作者: -Subject:==标题: -Text:==文本: -Comments:==评论: -deactivated==无效 -activated==活性 -moderated==改变 -Preview==预览 -No changes have been submitted so far!==未提交任何改变! -Access denied==拒绝访问 -To edit or create blog-entries you need to be logged in as Admin or User who has Blog rights.==如果编辑或者创建博客内容,你需要登录. -Are you sure...==你确定吗... -Confirm deletion==确定删除 -XML-Import==XML-导入 -Import was successful!==导入成功! -Import failed, maybe the supplied file was no valid blog-backup?==导入失败, 可能提供的文件不是有效的博客备份? -Please select the XML-file you want to import:==请选择你想导入的XML文件: -#----------------------------- - -#File: BlogComments.html -#--------------------------- -"Submit"=="提交" -"Preview"=="预览" -"Discard"=="取消" -Blog-Home==博客主页 -Comments:==评论: -<< previous entries==<< 之前的条目 -next entries >>==下一个条目 >> -Comments are not allowed for this posting!==此帖子不允许发表评论! -Comment on this Blog==对此博客发表评论 -Author:==作者: -Subject:==标题: -Text:==文本: -#----------------------------- - #File: Bookmarks.html #--------------------------- "RSS"=="RSS" @@ -452,58 +404,10 @@ Private Queue==私有 Public Queue==公共 #----------------------------- -#File: ConfigAccountList_p.html -#--------------------------- -User List==用户列表 -User Accounts==用户账户 -User==用户 -First name==名字 -Last name==姓氏 -Address==地址 -Last Access==最近访问 -Rights==权限 -Time==时间 -Traffic==流量 -#----------------------------- - #File: ConfigAccounts_p.html #--------------------------- -"Define Administrator"=="设置管理员账户" -"Set Access Rules"=="设置访问规则" -"Edit User"=="编辑用户" -"Delete User"=="删除用户" -"Save User"=="保存用户" -User Administration==用户管理 -Generic error.==一般性错误。 Passwords do not match.==密码不匹配。 -Username too short. Username must be >= 4 Characters.==用户名太短。 用户名必须>= 4 个字符. -Username already used (not allowed).==用户名已被使用(不允许). -WARNING This YaCy instance can be administered with the account "admin" and the default password "yacy".==警告 此 YaCy 实例可以使用帐户“admin”和默认密码“yacy”进行管理。 -Change the password as soon as possible!==尽快更改密码! Admin Account==管理员 -Access from localhost without account==本地匿名访问 -Access to your peer from your own computer (localhost access) is granted with administrator rights. No need to configure an administration account.==通过管理员权限授予从你自己的计算机访问你的节点(localhost访问权限).无需配置管理帐户. -This setting is convenient but less secure than using a qualified admin account.==此设置很方便,但比使用合格的管理员帐户安全性低. -Please use with care, notably when you browse untrusted and potentially malicious websites while running your YaCy peer on the same computer.==请谨慎使用,尤其是在计算机上运行YaCy节点并浏览不受信任和可能有恶意的网站时. -Access only with qualified account==只允许授权用户访问 -This is required if you want a remote access to your peer, but it also hardens access controls on administration operations of your peer.==如果你希望远端访问你的节点,则这是必需的,但它也会加强节点管理操作的访问控制. -Peer User:==节点用户: -New Peer Password:==新节点密码: -Repeat Peer Password:==重复节点密码: -Access Rules==访问规则 -Protection of all pages: if set to on, access to all pages need authorization; if off, only pages with "_p" extension are protected.==所有页面保护:如果设置为开启,则访问所有页面都需要授权;如果关闭,则仅保护带有“_p”扩展名的页面。 -User Accounts==用户账户 -Select user==选择用户 -New user==新用户 -Username==用户名 -Password==密码 -Repeat password==重复密码 -First name==名 -Last name==姓 -Address==地址 -Rights:==权限: -Timelimit==时限 -Time used==已用时 #----------------------------- #File: ConfigAppearance_p.html @@ -881,8 +785,6 @@ Status page==状态页面 Network pages==网络页面 Surftips==上网技巧 News pages==新页面 -Blog==博客 -Wiki==维基 Public bookmarks==公共书签 Home Page==首页 File Share==文件共享 @@ -1042,28 +944,6 @@ manual update:
    apt-get update && apt-get install yacy==手动更新 automatic update: add the following line to /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy==自动更新:将以下行添加到 /etc/crontab
    0 6 * * * root apt-get update && apt-get -y --force-yes install yacy #----------------------------- -#File: ConfigUser_p.html -#--------------------------- -"Save User"=="保存用户" -"Delete User"=="删除用户" -"ConfigAccountList_p.html"=="ConfigAccountList_p.html" -User Account Editor==用户账户编辑器 -Generic error.==一般性错误。 -Passwords do not match.==密码不匹配。 -Username too short. Username must be >= 4 Characters.==用户名太短。用户名至少 >= 4 字符。 -Username already used (not allowed).==用户名已存在(不允许)。 -Username==用户名 -Password==密码 -Repeat password==重复密码 -First name==名字 -Last name==姓氏 -Address==地址 -Rights:==权限: -Timelimit==时间限制 -Time used==已用时间 -back to user list==返回用户列表 -#----------------------------- - #File: Connections_p.html #--------------------------- Server Connection Tracking==服务器连接跟踪 @@ -2470,8 +2350,6 @@ inbox==收件箱 "DHT Receive: yes"=="接收DHT: 是" "DHT receive enabled"=="打开DHT接收" "Profile updated"=="个人资料已更新" -"Wiki updated"=="维基更新" -"Blog updated"=="博客已更新" "Crawl"=="爬行" "The YaCy Network"=="YaCy网络" "Type: Virgin"=="类型:处女" @@ -2517,7 +2395,6 @@ Received DHT
    Word Chunks==已收到 DHT
    Word 块 Received
    URLs==已接收
    网址 Location==位置 user agent
    ==用户代理
    -send Message/
    show Profile/
    edit Wiki/
    browse Blog==发送消息(m)/
    显示资料(p)/
    编辑百科(w)/
    浏览博客(b) Network==网络 Online Peers==在线节点 Number of
    Documents==
    文件数量 @@ -2588,7 +2465,6 @@ Other peers may use this information to prevent double-crawls from the same star A table with recently started crawls is presented on the Index Create - page=="索引创建"-页面会显示最近启动的爬取. A change in the personal profile will create a news entry. You can see recently made changes of==个人信息的改变会创建一个新闻词条, 可以在网络个人信息页面查看, profile entries on the Network page, where that profile change is visualized with a '*' beside the 'P' (profile) - selector.==以带有 '*' 的 'P' (资料)标记出. -Publishing of added or modified translation for the user interface. Other peers may include it in their local translation list.==发布用户界面添加或修改的翻译。其他同行可能会将其包含在其本地翻译列表中。 More news services will follow.==接下来会有更多的新闻服务. Above you can see four menus:==上面四个菜单选项分别为: Only these news will be used to display specific news services as explained above.==这些消息含有上述的特定新闻服务. @@ -2994,23 +2870,18 @@ Age==年龄 "Reset to defaults settings"=="重置为默认设置" limitations==局限性 Local Search access rate limitations==本地搜索访问率限制 -You can configure here limitations on access rate to this peer search interface by unauthenticated users and users without extended search right==你可以在此处配置未经验证的用户和没有扩展搜索权限的用户对该节点搜索界面的访问速率限制 YaCy search==YaCy搜索 Access rate limitations to this peer search interface.==本节点搜索界面访问率限制。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search is blocked.==当具有有限权限的用户(未经验证或没有扩展搜索权限)超过限制时,搜索阻塞。 Max searches in 3s==3秒内最大搜索次数 Max searches in 1mn==1分钟内最大搜索次数 Max searches in 10mn==10分钟内最大搜索次数 Peer-to-peer search==点对点搜索 Access rate limitations to the peer-to-peer search mode.==P2P搜索模式下访问率限制。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the search scope falls back to only this local peer index.==当具有有限权限的用户(未经验证或没有扩展搜索权限)超过限制时,搜索范围缩小为本地索引。 Max searches in 10mn==10分钟内最大搜索次数 Peer-to-peer search with JavaScript results resorting==带有结果排序的P2P搜索 Access rate limitations to the peer-to-peer search mode with browser-side JavaScript results resorting enabled==对启用了浏览器端JavaScript结果重新排序的P2P搜索模式的访问率限制 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, results resorting becomes only applicable on demand, server-side.==当具有有限权限的用户(未经验证或没有扩展搜索权限)超过限制时,搜索结果重排仅可用于服务器侧搜索。 Remote snippet load==远端摘录加载 Limitations on snippet loading from remote websites.==对从远程网站加载摘录的限制。 -When a user with limited rights (unauthenticated or without extended search right) exceeds a limit, the snippets fetch strategy falls back to 'CACHEONLY'==当具有有限权限的用户(未经验证或没有扩展搜索权限)超过限制时,摘录获取策略缩小为'CACHEONLY'。 Max searches in 3s==3秒内最大搜索次数 Changes will take effect immediately.==更改将立即生效。 #----------------------------- @@ -3235,14 +3106,9 @@ These settings configure the access method to your own http proxy and server.== All traffic is routed through one single port, for both proxy and server.==代理和服务器流量均从同一端口流过. HTTPS Server Port:==HTTPS 服务器端口: Server Access Restrictions==服务器访问限制 -You can restrict the access to this proxy/server using a two-stage security barrier:==使用两层安全屏障限制到此代理/服务器的访问: define an access domain with a list of granted client IP-numbers or with wildcards==定义一个带有授权IP名单或者通配符的访问域 -define an user account with an user:password - pair==创建一个需要密码的用户账户 -This is the account that restricts access to the proxy function.==这是一个限制代理访问功能的账户. You probably don't want to share the proxy to the internet, so you should set the==如果不想在互联网上共享代理, IP-Number Access Domain to a pattern that corresponds to you local intranet.==请定义一个对应本地局域网的IP访问域表达式. -The default setting should be right in most cases. If you want, you can also set a proxy account==默认设置适用于大多数情况. 如果需要共享代理, -so that every proxy user must authenticate first, but this is rather unusual.==请先设置需要授权的代理账户. IP-Number filter==IP地址过滤 Accounts==账户 #----------------------------- @@ -3633,59 +3499,6 @@ Save Tools Configuration==保存工具配置 CyTag Trails==CyTag 轨迹 #----------------------------- -#File: TransNews_p.html -#--------------------------- -"Publish"=="发布" -"negative vote"=="差评" -"positive vote"=="好评" -You can share your local addition to translations and distribute it to other peers.==你可以分享你的本地翻译,并分发给其他节点。 -The remote peer can vote on your translation and add it to its own local translation.==远端节点可以对你的翻译进行投票并将其添加到他们的本地翻译中。 -File:==文件: -Originator==拥有者 -English:==英语: -existing==现存的 -Translation:==翻译: -Vote on this translation. If you vote positive the translation is added to your local translation list.==对此翻译进行投票。如果您投票赞成,翻译将添加到您的本地翻译列表中。 -#----------------------------- - -#File: Translator_p.html -#--------------------------- -"Save translation"=="保存翻译" -Translation Editor==翻译编辑器 -Translate untranslated text of the user interface (current language). The modified translation file is stored in DATA/LOCALE directory.==翻译用户界面的未翻译文本(当前语言)。修改后的翻译文件存储在 DATA/LOCALE 目录中。 -UI Translation==界面翻译 -Source File==源文件 -view it==查看 -filter untranslated==列出未翻译项 -Source Text==源文 -#----------------------------- - -#File: User.html -#--------------------------- -"login"=="登录" -"logout"=="注销" -"red bar"=="红条" -"green bar"=="绿条" -"Change"=="改变" -User Page==用户页面 -You are not logged in.==您尚未登录。 -Username:==用户名: -Password:==密码: -(Identified by==(识别为 -IP==IP -Username/Password==用户名/Password -Cookie==曲奇饼 -old Password==旧密码 -new Password==新密码 -new Password(repetition)==新密码(重复) -You are currently logged in as admin.==当前作为管理员登录. -(after logout you will be prompted for your password again. simply click "cancel")==(注销后需要重新输入密码) -Password was changed.==密码已改变. -Old Password is wrong.==密码输入错误. -New Password and its repetition do not match.==新密码两次输入不匹配. -New Password is empty.==新密码为空. -#----------------------------- - #File: VFS.html #--------------------------- "File system browser"=="文件系统浏览器" @@ -3889,40 +3702,9 @@ Other Dot==其他点 Dot-end==点尾 #----------------------------- -#File: Wiki.html -#--------------------------- -"all"=="全部" -"admin"=="行政" -"Submit"=="提交" -"Preview"=="预览" -"Discard"=="取消" -"Show"=="显示" -"Compare"=="对比" -(only granted to admin)==(仅授予管理员) -Index -==指数 - -Grant Write Access to==授予写权限 -Edit==编辑 -Author:==作者: -Text:==文本: -Preview==预览 -No changes have been submitted so far!==未提交任何改变! -Index==索引 -Subject==主题 -Change Date==改变日期 -Last Author==最后作者 -Start Page==开始页面 -Versions==版本 -Compare version from==原始版本 -with version from==对比版本 -Error==错误 -You can use==你可以在这使用 -Changes will be published as announcement on YaCyNews==改变会被发布在YaCy新闻中. -#----------------------------- - -#File: WikiHelp.html +#File: WikiCodeHelp.html #--------------------------- Wiki-Code==Wiki代码 -This table contains a short description of the tags that can be used in the Wiki and several other servlets==此表列出了用于Wiki和几个插件代码标签简述, of YaCy. For a more detailed description visit the==详情请见 Code==代码 Description==描述 @@ -3947,7 +3729,6 @@ These tags create a definition list.==用于创建定义列表. This tag creates a horizontal line.==创建水平线. [[pagename]]==[[页面名称]] [[pagename|description]]==[[页面名称|描述]] -This tag creates links to other pages of the wiki.==创建到其他wiki页面的链接. [url]==[网址] [url description]==[网址描述] This tag creates links to external websites.==此标记创建外部网站链接. @@ -4272,7 +4053,6 @@ Outgoing News==传出 新闻 Published News==已发布 新闻 Community Data==社区数据 Surftips==建议 -Local Peer Wiki==本地同行维基 Bookmarks==书签 #----------------------------- @@ -4283,7 +4063,6 @@ Advanced Settings==高级设置 Performance Settings of Busy Queues==繁忙队列的性能设置 Viewer and administration for database tables==数据库表的查看与管理 Advanced Properties==高级设置 -UI Translations==用户界面翻译 #----------------------------- #File: env/templates/submenuCrawlMonitor.template @@ -4391,13 +4170,6 @@ User Profile==用户资料 Local robots.txt==本地robots.txt #----------------------------- -#File: env/templates/submenuPublication.template -#--------------------------- -Publication==发布 -Wiki==百科 -Blog==博客 -#----------------------------- - #File: env/templates/submenuRanking.template #--------------------------- Ranking and Heuristics==排名与启发式 @@ -4544,14 +4316,6 @@ Get the latest Java Plug-in here.==在此获取. Built with Processing==通过处理构建 #----------------------------- -#File: proxymsg/authfail.inc -#--------------------------- -"login"=="登录" -Your Username/Password is wrong.==用户名/密码输入错误. -Username==用户名 -Password==密码 -#----------------------------- - #File: proxymsg/error.html #--------------------------- YaCy: Error Message==YaCy: 错误消息 diff --git a/source/net/yacy/cora/protocol/RequestHeader.java b/source/net/yacy/cora/protocol/RequestHeader.java index 5a4494cdf..5c578b1c6 100644 --- a/source/net/yacy/cora/protocol/RequestHeader.java +++ b/source/net/yacy/cora/protocol/RequestHeader.java @@ -471,7 +471,6 @@ public class RequestHeader extends HeaderFramework implements HttpServletRequest } super.remove(AUTHORIZATION); - // TODO: take care of legacy login cookie (and possibly cached UserDB login status) } diff --git a/source/net/yacy/cora/protocol/ResponseHeader.java b/source/net/yacy/cora/protocol/ResponseHeader.java index c7be30fa7..cfcf34f23 100644 --- a/source/net/yacy/cora/protocol/ResponseHeader.java +++ b/source/net/yacy/cora/protocol/ResponseHeader.java @@ -20,11 +20,8 @@ package net.yacy.cora.protocol; -import java.util.ArrayList; import java.util.Date; -import java.util.List; import java.util.Map; -import javax.servlet.http.Cookie; import org.apache.http.Header; @@ -123,69 +120,4 @@ public class ResponseHeader extends HeaderFramework { return x_robots_tag.toLowerCase(); } - /* - * Patch BEGIN: (moved from HeaderFramework here (2016-11-20) - * Name: Header Property Patch - * Date: Fri. 13.01.2006 - * Description: Makes possible to send header properties such as cookies back to the client. - * Part 1 of 5 - * Questions: sergej.z@list.ru - */ - /** - * Holds header properties - */ - //Since properties such as cookies can be multiple, we cannot use HashMap here. We have to use Vector. - private List cookieStore; // init on first access - - /** - * Sets Cookie on the client machine. - * - * @param name Cookie name - * @param value Cookie value - * @param maxage time to live in seconds, none negative number, according to https://tools.ietf.org/html/rfc2109, 0=discard in https://tools.ietf.org/html/rfc2965 - * @param path Path the cookie belongs to. Default - "/". Can be null. - * @param domain Domain this cookie belongs to. Default - domain name. Can be null. - * @param secure If true cookie will be send only over safe connection such as https - * @see further documentation at docs.sun.com - */ - public void setCookie(final String name, final String value, final Integer maxage, final String path, final String domain, final boolean secure) - { - /* - * TODO:Here every value can be validated for correctness if needed - * For example semicolon should be not in any of the values - * However an exception in this case would be an overhead IMHO. - */ - if (!name.isEmpty()) { - if (this.cookieStore == null) this.cookieStore = new ArrayList(); - Cookie c = new Cookie (name, value); - if (maxage != null && maxage >= 0) c.setMaxAge(maxage); - if (path != null) c.setPath(path); - if (domain != null) c.setDomain(domain); - if (secure) c.setSecure(secure); - this.cookieStore.add(c); - } - } - - /** - * Sets Cookie on the client machine. - * - * @param name Cookie name - * @param value Cookie value - * - * Note: this cookie will be sent over each connection independent if it is safe connection or not. This cookie never expires - * @see further documentation: docs.sun.com - */ - public void setCookie(final String name, final String value ) - { - setCookie( name, value, null, null, null, false); - } - - public List getCookiesEntries() { - return this.cookieStore; - } - - /* - * Patch END: - * Name: Header Property Patch - */ } diff --git a/source/net/yacy/data/BlogBoard.java b/source/net/yacy/data/BlogBoard.java deleted file mode 100644 index bb026fea5..000000000 --- a/source/net/yacy/data/BlogBoard.java +++ /dev/null @@ -1,556 +0,0 @@ -// BlogBoard.java -// ------------------------------------- -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// last major change: 20.07.2004 -// -// $LastChangedDate$ -// $LastChangedRevision$ -// $LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// This file is contributed by Jan Sandbrink -// based on the Code of wikiBoard.java - -package net.yacy.data; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import net.yacy.cora.date.GenericFormatter; -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.order.Base64Order; -import net.yacy.cora.order.NaturalOrder; -import net.yacy.cora.protocol.Domains; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.cora.util.SpaceExceededException; -import net.yacy.data.wiki.WikiBoard; -import net.yacy.kelondro.blob.MapHeap; -import net.yacy.kelondro.util.kelondroException; - - -public class BlogBoard { - - private static final int KEY_LENGTH = 64; - - private MapHeap database = null; - - public BlogBoard(final File actpath) throws IOException { - new File(actpath.getParent()).mkdir(); - //database = new MapView(BLOBTree.toHeap(actpath, true, true, keyLength, recordSize, '_', NaturalOrder.naturalOrder, newFile), 500, '_'); - this.database = new MapHeap(actpath, KEY_LENGTH, NaturalOrder.naturalOrder, 1024 * 64, 500, '_'); - } - - public int size() { - return this.database.size(); - } - - /** - * Tells if the database contains an element. - * @param key the ID of the element - * @return true if the database contains the element, else false - */ - public boolean contains(final String key) { - return this.database.containsKey(UTF8.getBytes(key)); - } - - public synchronized void close() { - this.database.close(); - } - - private static String normalize(final String key) { - return (key == null) ? "null" : key.trim().toLowerCase(); - } - - public static String webalize(final String key) { - return (key == null) ? "null": key.trim().toLowerCase().replaceAll(" ", "%20"); - } - - public String guessAuthor(final String ip) { - return WikiBoard.guessAuthor(ip); - } - - /** - * Create a new BlogEntry and return it - * @param key - * @param subject - * @param author - * @param ip - * @param date - * @param page the content of the Blogentry - * @param comments - * @param commentMode possible params are: 0 - no comments allowed, 1 - comments allowed, 2 - comments moderated - * @return BlogEntry - */ - public BlogEntry newEntry(final String key, final byte[] subject, final byte[] author, final String ip, final Date date, final byte[] page, final List comments, final String commentMode) { - return new BlogEntry(normalize(key), subject, author, ip, date, page, comments, commentMode); - } - - /* - * writes a new page and return the key - */ - public String writeBlogEntry(final BlogEntry page) { - String ret = null; - try { - this.database.insert(UTF8.getBytes(page.key), page.record); - ret = page.key; - } catch (final IOException ex) { - ConcurrentLog.logException(ex); - } catch (final SpaceExceededException ex) { - ConcurrentLog.logException(ex); - } - return ret; - } - - public BlogEntry readBlogEntry(final String key) { - return this.readBlogEntry(key, this.database); - } - - private BlogEntry readBlogEntry(final String key, final MapHeap base) { - final String normalized = normalize(key); - Map record; - try { - record = base.get(UTF8.getBytes(normalized.substring(0, Math.min(normalized.length(), KEY_LENGTH)))); - } catch (final IOException e) { - ConcurrentLog.logException(e); - record = null; - } catch (final SpaceExceededException e) { - ConcurrentLog.logException(e); - record = null; - } - return (record == null) ? - this.newEntry(key, new byte[0], UTF8.getBytes("anonymous"), Domains.LOCALHOST, new Date(), new byte[0], null, null) : - new BlogEntry(key, record); - } - - public boolean importXML(final String input) { - if (input != null && !input.isEmpty()) { - final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - try { - final DocumentBuilder builder = factory.newDocumentBuilder(); - return this.parseXMLimport(builder.parse(new ByteArrayInputStream(UTF8.getBytes(input)))); - } catch (final ParserConfigurationException ex) { - ConcurrentLog.logException(ex); - } catch (final SAXException ex) { - ConcurrentLog.logException(ex); - } catch (final IOException ex) { - ConcurrentLog.logException(ex); - } - } - return false; - } - - public boolean importXML(final InputStream is) { - if (is != null) { - final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - try { - final DocumentBuilder builder = factory.newDocumentBuilder(); - return this.parseXMLimport(builder.parse(is)); - } catch (final ParserConfigurationException ex) { - ConcurrentLog.logException(ex); - } catch (final SAXException ex) { - ConcurrentLog.logException(ex); - } catch (final IOException ex) { - ConcurrentLog.logException(ex); - } - } - return false; - } - - private boolean parseXMLimport(final Document doc) { - if(!"blog".equals(doc.getDocumentElement().getTagName())) { - return false; - } - - final NodeList items = doc.getDocumentElement().getElementsByTagName("item"); - if(items.getLength() == 0) { - return false; - } - - for (int i = 0, n = items.getLength(); i < n; ++i) { - String key = null, ip = null, StrSubject = null, StrAuthor = null, StrPage = null, StrDate = null; - Date date = null; - - if(!"item".equals(items.item(i).getNodeName())) continue; - - final NodeList currentNodeChildren = items.item(i).getChildNodes(); - - for (int j = 0, m = currentNodeChildren.getLength(); j < m; ++j) { - final Node currentNode = currentNodeChildren.item(j); - if ("id".equals(currentNode.getNodeName())) { - key = currentNode.getFirstChild().getNodeValue(); - } else if ("ip".equals(currentNode.getNodeName())) { - ip = currentNode.getFirstChild().getNodeValue(); - } else if ("timestamp".equals(currentNode.getNodeName())) { - StrDate = currentNode.getFirstChild().getNodeValue(); - } else if ("subject".equals(currentNode.getNodeName())) { - StrSubject = currentNode.getFirstChild().getNodeValue(); - } else if ("author".equals(currentNode.getNodeName())) { - StrAuthor = currentNode.getFirstChild().getNodeValue(); - } else if ("content".equals(currentNode.getNodeName())) { - StrPage = currentNode.getFirstChild().getNodeValue(); - } - } - - try { - date = GenericFormatter.SHORT_SECOND_FORMATTER.parse(StrDate, 0).getTime(); - } catch (final ParseException e1) { - date = new Date(); - } - - if(key == null || ip == null || StrSubject == null || StrAuthor == null || StrPage == null || date == null) { - return false; - } - - byte[] subject,author,page; - subject = UTF8.getBytes(StrSubject); - author = UTF8.getBytes(StrAuthor); - page = UTF8.getBytes(StrPage); - this.writeBlogEntry (this.newEntry(key, subject, author, ip, date, page, null, null)); - } - return true; - } - - public void deleteBlogEntry(final String key) { - try { - this.database.delete(UTF8.getBytes(normalize(key))); - } catch (final IOException e) { } - } - - public Iterator keys(final boolean up) throws IOException { - return this.database.keys(up, false); - } - - /** - * Comparator to sort objects of type Blog according to their timestamps - */ - public class BlogComparator implements Comparator { - - private final boolean newestFirst; - - /** - * @param newestFirst newest first, or oldest first? - */ - public BlogComparator(final boolean newestFirst){ - this.newestFirst = newestFirst; - } - - @Override - public int compare(final String obj1, final String obj2) { - final BlogEntry blogEntry1 = BlogBoard.this.readBlogEntry(obj1); - final BlogEntry blogEntry2 = BlogBoard.this.readBlogEntry(obj2); - if (blogEntry1 == null || blogEntry2 == null) - return 0; - if (this.newestFirst) { - if (Long.parseLong(blogEntry2.getTimestamp()) - Long.parseLong(blogEntry1.getTimestamp()) > 0) { - return 1; - } - return -1; - } - if (Long.parseLong(blogEntry1.getTimestamp()) - Long.parseLong(blogEntry2.getTimestamp()) > 0) { - return 1; - } - return -1; - } - } - - public Iterator getBlogIterator(final boolean priv){ - final Set set = new TreeSet<>(new BlogComparator(true)); - final Iterator iterator = this.blogIterator(true); - BlogEntry blogEntry; - while (iterator.hasNext()) { - blogEntry = iterator.next(); - if (priv || blogEntry.isPublic()) { - set.add(blogEntry.getKey()); - } - } - return set.iterator(); - } - - public Iterator blogIterator(final boolean up){ - try { - return new BlogIterator(up); - } catch (final IOException e) { - return new HashSet().iterator(); - } - } - - /** - * Subclass of blogBoard, which provides the blogIterator object-type - */ - public class BlogIterator implements Iterator { - Iterator blogIter; - //blogBoard.BlogEntry nextEntry; - public BlogIterator(final boolean up) throws IOException { - this.blogIter = BlogBoard.this.database.keys(up, false); - //this.nextEntry = null; - } - - @Override - public boolean hasNext() { - try { - return this.blogIter.hasNext(); - } catch (final kelondroException e) { - //resetDatabase(); - return false; - } - } - - @Override - public BlogEntry next() { - try { - return BlogBoard.this.readBlogEntry(UTF8.String(this.blogIter.next())); - } catch (final kelondroException e) { - //resetDatabase(); - return null; - } - } - - @Override - public void remove() { -// if (this.nextEntry != null) { -// try { -// final Object blogKey = this.nextEntry.getKey(); -// if (blogKey != null) deleteBlogEntry((String) blogKey); -// } catch (final kelondroException e) { -// //resetDatabase(); -// } -// } - throw new UnsupportedOperationException("Method not implemented yet."); - } - } - - public class BlogEntry { - - String key; - Map record; - - public BlogEntry(final String nkey, final byte[] subject, final byte[] author, final String ip, final Date date, final byte[] page, final List comments, final String commentMode) { - this.record = new HashMap<>(); - this.setKey(nkey); - this.setDate(date); - this.setSubject(subject); - this.setAuthor(author); - this.setIp(ip); - this.setPage(page); - this.setComments(comments); - this.setCommentMode(commentMode); - - // TODO: implement this function - this.record.put("privacy", "public"); - - WikiBoard.setAuthor(ip, UTF8.String(author)); - } - - BlogEntry(final String key, final Map record) { - this.key = key; - this.record = record; - if (this.record.get("comments") == null) { - this.record.put("comments", ListManager.collection2string(new ArrayList<>())); - } - if (this.record.get("commentMode") == null || this.record.get("commentMode").length() < 1) { - this.record.put("commentMode", "2"); - } - } - - private void setKey(final String key) { - this.key = key.substring(0, Math.min(key.length(), KEY_LENGTH)); - } - - public String getKey() { - return this.key; - } - - public byte[] getSubject() { - final String m = this.record.get("subject"); - if (m == null) { - return new byte[0]; - } - final byte[] b = Base64Order.enhancedCoder.decode(m); - return (b == null) ? new byte[0] : b; - } - - private void setSubject(final byte[] subject) { - if (subject == null) { - this.record.put("subject",""); - } else { - this.record.put("subject", Base64Order.enhancedCoder.encode(subject)); - } - } - - public Date getDate() { - try { - final String date = this.record.get("date"); - if (date == null) { - if (ConcurrentLog.isFinest("Blog")) { - ConcurrentLog.finest("Blog", "ERROR: date field missing in blogBoard"); - } - return new Date(); - } - return GenericFormatter.SHORT_SECOND_FORMATTER.parse(date, 0).getTime(); - } catch (final ParseException ex) { - return new Date(); - } - } - - private void setDate(final Date date) { - Date ret = date; - if (ret == null) { - ret = new Date(); - } - this.record.put("date", GenericFormatter.SHORT_SECOND_FORMATTER.format(ret)); - } - - public String getTimestamp() { - final String timestamp = this.record.get("date"); - if (timestamp == null) { - if (ConcurrentLog.isFinest("Blog")) { - ConcurrentLog.finest("Blog", "ERROR: date field missing in blogBoard"); - } - return GenericFormatter.SHORT_SECOND_FORMATTER.format(); - } - return timestamp; - } - - public byte[] getAuthor() { - final String author = this.record.get("author"); - if (author == null) { - return new byte[0]; - } - final byte[] b = Base64Order.enhancedCoder.decode(author); - return (b == null) ? new byte[0] : b; - } - - private void setAuthor(final byte[] author) { - if (author == null) - this.record.put("author",""); - else - this.record.put("author", Base64Order.enhancedCoder.encode(author)); - } - - public int getCommentsSize() { - // This ist a Bugfix for Version older than 4443. - if (this.record.get("comments").startsWith(",")) { - this.record.put("comments", this.record.get("comments").substring(1)); - BlogBoard.this.writeBlogEntry(this); - } - final List commentsize = ListManager.string2arraylist(this.record.get("comments")); - return commentsize.size(); - } - - public List getComments() { - return ListManager.string2arraylist(this.record.get("comments")); - } - - private void setComments(final List comments) { - if (comments == null) { - this.record.put("comments", ListManager.collection2string(new ArrayList<>())); - } else { - this.record.put("comments", ListManager.collection2string(comments)); - } - } - - public String getIp() { - final String ip = this.record.get("ip"); - return (ip == null) ? Domains.LOCALHOST : ip; - } - - private void setIp(final String ip) { - String ret = ip; - if ((ret == null) || (ret.isEmpty())) - ret = ""; - this.record.put("ip", ret); - } - - public byte[] getPage() { - final String page = this.record.get("page"); - if (page == null) { - return new byte[0]; - } - final byte[] page_as_byte = Base64Order.enhancedCoder.decode(page); - return (page_as_byte == null) ? new byte[0] : page_as_byte; - } - - private void setPage(final byte[] page) { - if (page == null) { - this.record.put("page", ""); - } else { - this.record.put("page", Base64Order.enhancedCoder.encode(page)); - } - } - - public void addComment(final String commentID) { - final List comments = ListManager.string2arraylist(this.record.get("comments")); - comments.add(commentID); - this.record.put("comments", ListManager.collection2string(comments)); - } - - public boolean removeComment(final String commentID) { - final List comments = ListManager.string2arraylist(this.record.get("comments")); - final boolean success = comments.remove(commentID); - this.record.put("comments", ListManager.collection2string(comments)); - return success; - } - - /** - * returns the comment mode - * 0 - no comments allowed - * 1 - comments allowed - * 2 - comments moderated - * @return comment mode - */ - public int getCommentMode(){ - return Integer.parseInt(this.record.get("commentMode")); - } - - private void setCommentMode(final String mode) { - if (mode == null) { - this.record.put("commentMode", "2"); - } else { - this.record.put("commentMode", mode); - } - } - - public boolean isPublic() { - final String privacy = this.record.get("privacy"); - return (privacy == null || privacy.equalsIgnoreCase("public")) ? true : false; - } - - } -} diff --git a/source/net/yacy/data/BlogBoardComments.java b/source/net/yacy/data/BlogBoardComments.java deleted file mode 100644 index 9c1e03ba9..000000000 --- a/source/net/yacy/data/BlogBoardComments.java +++ /dev/null @@ -1,363 +0,0 @@ -// BlogBoardComments.java -// ------------------------------------- -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// last major change: 20.07.2004 -// -// $LastChangedDate$ -// $LastChangedRevision$ -// $LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// This file is contributed by Jan Sandbrink -// based on the Code of wikiBoard.java - -package net.yacy.data; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; -import java.util.TimeZone; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.order.Base64Order; -import net.yacy.cora.order.NaturalOrder; -import net.yacy.cora.protocol.Domains; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.cora.util.SpaceExceededException; -import net.yacy.data.wiki.WikiBoard; -import net.yacy.kelondro.blob.MapHeap; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - - -public class BlogBoardComments { - - private final static int KEY_LENGTH = 64; - private final static String DATE_FORMAT = "yyyyMMddHHmmss"; - - private final static SimpleDateFormat SIMPLE_DATE_FORMATTER = new SimpleDateFormat(DATE_FORMAT, Locale.US); - static { - SIMPLE_DATE_FORMATTER.setTimeZone(TimeZone.getTimeZone("GMT")); - } - - private MapHeap database = null; - - public BlogBoardComments(final File actpath) throws IOException { - new File(actpath.getParent()).mkdir(); - //database = new MapView(BLOBTree.toHeap(actpath, true, true, keyLength, recordSize, '_', NaturalOrder.naturalOrder, newFile), 500, '_'); - this.database = new MapHeap(actpath, KEY_LENGTH, NaturalOrder.naturalOrder, 1024 * 64, 500, '_'); - } - - public int size() { - return this.database.size(); - } - - public synchronized void close() { - this.database.close(); - } - - static String dateString(final Date date) { - synchronized (SIMPLE_DATE_FORMATTER) { - return SIMPLE_DATE_FORMATTER.format(date); - } - } - - private static String normalize(final String key) { - return (key == null) ? "null" : key.trim().toLowerCase(); - } - public static String webalize(final String key) { - if (key == null) { - return "null"; - } - String ret = key.trim().toLowerCase(); - int p; - while ((p = ret.indexOf(' ',0)) >= 0) - ret = ret.substring(0, p) + "%20" + key.substring(p +1); - return ret; - } - - public String guessAuthor(final String ip) { - return WikiBoard.guessAuthor(ip); - } - - public CommentEntry newEntry(final String key, final byte[] subject, final byte[] author, final String ip, final Date date, final byte[] page) { - return new CommentEntry(normalize(key), subject, author, ip, date, page); - } - - public String write(final CommentEntry page) { - // writes a new page and returns key - try { - this.database.insert(UTF8.getBytes(page.key), page.record); - return page.key; - } catch (final Exception e) { - ConcurrentLog.logException(e); - return null; - } - } - public CommentEntry read(final String key) { - //System.out.println("DEBUG: read from blogBoardComments"); - return read(key, this.database); - } - - private CommentEntry read(final String key, final MapHeap base) { - String copyOfKey = normalize(key); - copyOfKey = copyOfKey.substring(0, Math.min(copyOfKey.length(), KEY_LENGTH)); - Map record; - try { - record = base.get(UTF8.getBytes(copyOfKey)); - } catch (final IOException e) { - ConcurrentLog.logException(e); - record = null; - } catch (final SpaceExceededException e) { - ConcurrentLog.logException(e); - record = null; - } - return (record == null) ? - newEntry(copyOfKey, new byte[0], UTF8.getBytes("anonymous"), Domains.LOCALHOST, new Date(), new byte[0]) : - new CommentEntry(copyOfKey, record); - } - - public boolean importXML(final String input) { - boolean ret = false; - final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - try { - final DocumentBuilder builder = factory.newDocumentBuilder(); - final Document doc = builder.parse(new ByteArrayInputStream(UTF8.getBytes(input))); - ret = parseXMLimport(doc); - } - catch (final ParserConfigurationException e) {} - catch (final SAXException e) {} - catch (final IOException e) {} - - return ret; - } - - private boolean parseXMLimport(final Document doc) { - if(!"blog".equals(doc.getDocumentElement().getTagName())) { - return false; - } - - final NodeList items = doc.getDocumentElement().getElementsByTagName("item"); - if(items.getLength() == 0) { - return false; - } - - for(int i = 0, n = items.getLength(); i < n; ++i) { - String key = null, ip = null, StrSubject = null, StrAuthor = null, StrPage = null, StrDate = null; - Date date = null; - - if(!"item".equals(items.item(i).getNodeName())) - continue; - - final NodeList currentNodeChildren = items.item(i).getChildNodes(); - - for(int j=0, m = currentNodeChildren.getLength(); j < m; ++j) { - - final Node currentNode = currentNodeChildren.item(j); - if ("id".equals(currentNode.getNodeName())) { - key = currentNode.getFirstChild().getNodeValue(); - } else if("ip".equals(currentNode.getNodeName())) { - ip = currentNode.getFirstChild().getNodeValue(); - } else if("timestamp".equals(currentNode.getNodeName())) { - StrDate = currentNode.getFirstChild().getNodeValue(); - } else if("subject".equals(currentNode.getNodeName())) { - StrSubject = currentNode.getFirstChild().getNodeValue(); - } else if("author".equals(currentNode.getNodeName())) { - StrAuthor = currentNode.getFirstChild().getNodeValue(); - } else if("content".equals(currentNode.getNodeName())) { - StrPage = currentNode.getFirstChild().getNodeValue(); - } - } - - try { - date = SIMPLE_DATE_FORMATTER.parse(StrDate); - } catch (final ParseException ex) { - date = new Date(); - } - - if (key == null || ip == null || StrSubject == null || StrAuthor == null || StrPage == null || date == null) - return false; - - byte[] subject,author,page; - subject = UTF8.getBytes(StrSubject); - author = UTF8.getBytes(StrAuthor); - page = UTF8.getBytes(StrPage); - write (newEntry(key, subject, author, ip, date, page)); - } - - return true; - } - - public void delete(final String key) { - try { - this.database.delete(UTF8.getBytes(normalize(key))); - } - catch (final IOException e) { } - } - - public Iterator keys(final boolean up) throws IOException { - return this.database.keys(up, false); - } - - public static class CommentEntry { - - String key; - Map record; - - public CommentEntry(final String nkey, final byte[] subject, final byte[] author, final String ip, final Date date, final byte[] page) { - this.record = new HashMap(); - - setKey(nkey); - setDate(date); - setSubject(subject); - setAuthor(author); - setIp(ip); - setPage(page); - - WikiBoard.setAuthor(ip, UTF8.String(author)); - } - - CommentEntry(final String key, final Map record) { - this.key = key; - this.record = record; - if (this.record.get("comments") == null) { - this.record.put("comments", ListManager.collection2string(new ArrayList())); - } - } - - public String getKey() { - return this.key; - } - - private void setKey(final String var) { - this.key = var.substring(0, Math.min(var.length(), KEY_LENGTH)); - } - - private void setSubject(final byte[] subject) { - if (subject == null) - this.record.put("subject",""); - else - this.record.put("subject", Base64Order.enhancedCoder.encode(subject)); - } - public byte[] getSubject() { - final String subject = this.record.get("subject"); - if (subject == null) return new byte[0]; - final byte[] subject_bytes = Base64Order.enhancedCoder.decode(subject); - if (subject_bytes == null) return new byte[0]; - return subject_bytes; - } - private void setDate(Date date) { - if(date == null) - date = new Date(); - this.record.put("date", dateString(date)); - } - public Date getDate() { - try { - final String date = this.record.get("date"); - if (date == null) { - if (ConcurrentLog.isFinest("Blog")) ConcurrentLog.finest("Blog", "ERROR: date field missing in blogBoard"); - return new Date(); - } - synchronized (SIMPLE_DATE_FORMATTER) { - return SIMPLE_DATE_FORMATTER.parse(date); - } - } catch (final ParseException e) { - return new Date(); - } - } - - public String getTimestamp() { - final String timestamp = this.record.get("date"); - if (timestamp == null) { - if (ConcurrentLog.isFinest("Blog")) ConcurrentLog.finest("Blog", "ERROR: date field missing in blogBoard"); - return dateString(new Date()); - } - return timestamp; - } - private void setAuthor(final byte[] author) { - if (author == null) - this.record.put("author",""); - else - this.record.put("author", Base64Order.enhancedCoder.encode(author)); - } - public byte[] getAuthor() { - final String author = this.record.get("author"); - if (author == null) - return new byte[0]; - final byte[] author_byte = Base64Order.enhancedCoder.decode(author); - if (author_byte == null) - return new byte[0]; - return author_byte; - } - private void setIp(String ip) { - if ((ip == null) || (ip.isEmpty())) - ip = ""; - this.record.put("ip", ip); - } - public String getIp() { - final String ip = this.record.get("ip"); - if (ip == null) - return Domains.LOCALHOST; - return ip; - } - private void setPage(final byte[] page) { - if (page == null) - this.record.put("page", ""); - else - this.record.put("page", Base64Order.enhancedCoder.encode(page)); - } - public byte[] getPage() { - final String page = this.record.get("page"); - if (page == null) - return new byte[0]; - final byte[] page_byte = Base64Order.enhancedCoder.decode(page); - if (page_byte == null) - return new byte[0]; - return page_byte; - } - /** - * Is the comment allowed? - * this is possible for moderated blog entry only and means - * the administrator has explicit allowed the comment. - * @return - */ - public boolean isAllowed() { - return "true".equals(this.record.get("moderated")); - } - public void allow() { - this.record.put("moderated", "true"); - } - - } - -} diff --git a/source/net/yacy/data/UserDB.java b/source/net/yacy/data/UserDB.java deleted file mode 100644 index ae0f0511c..000000000 --- a/source/net/yacy/data/UserDB.java +++ /dev/null @@ -1,656 +0,0 @@ -//UserDB.java -//------------------------------------- -//part of YACY -// -//(C) 2005, 2006 by Martin Thelian -// Alexander Schier -// -//$LastChangedDate$ -//$LastChangedRevision$ -//$LastChangedBy$ -// -//This program is free software; you can redistribute it and/or modify -//it under the terms of the GNU General Public License as published by -//the Free Software Foundation; either version 2 of the License, or -//(at your option) any later version. -// -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. -// -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package net.yacy.data; - -import java.io.File; -import java.io.IOException; -import java.security.Principal; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; -import java.util.Random; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; - -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.order.Base64Order; -import net.yacy.cora.order.CloneableIterator; -import net.yacy.cora.order.Digest; -import net.yacy.cora.order.NaturalOrder; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.cora.util.SpaceExceededException; -import net.yacy.kelondro.blob.MapHeap; -import net.yacy.kelondro.util.FileUtils; -import net.yacy.kelondro.util.kelondroException; -import net.yacy.search.Switchboard; -import net.yacy.search.SwitchboardConstants; - -/** - * Holds details of users that can login to YaCy, their rights and credentials. - * Caches succesfull login, holding cookie and/or ip information. - * - * In addition a systemadmin (static admin) account is available by default, - * included in the global Switchboard configuration. - * - */ -public final class UserDB { - - private static final int USERNAME_MIN_LENGTH = 4; - - private MapHeap userTable; - private final File userTableFile; - private final Map ipUsers = new HashMap(); - private final Map cookieUsers = new HashMap(); // mapping to identify user by a login cookie "login=" - - public UserDB(final File userTableFile) throws IOException { - this.userTableFile = userTableFile; - userTableFile.getParentFile().mkdirs(); - this.userTable = new MapHeap(userTableFile, 128, NaturalOrder.naturalOrder, 1024 * 64, 10, '_'); - } - - void resetDatabase() { - // deletes the database and creates a new one - if (userTable != null) { - userTable.close(); - } - FileUtils.deletedelete(userTableFile); - userTableFile.getParentFile().mkdirs(); - try { - userTable = new MapHeap(userTableFile, 128, NaturalOrder.naturalOrder, 1024 * 64, 10, '_'); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - } - - public synchronized void close() { - userTable.close(); - } - - public int size() { - return userTable.size(); - } - - public void removeEntry(final String hostName) { - try { - userTable.delete(UTF8.getBytes(hostName)); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - } - - public Entry getEntry(String userName) { - if (userName.length() > 128) { - userName = userName.substring(0, 127); - } - Map record = null; - try { - record = userTable.get(UTF8.getBytes(userName)); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } catch (final SpaceExceededException e) { - ConcurrentLog.logException(e); - } - - return (record != null) ? new Entry(userName, record) : null; - } - - public Entry createEntry(final String userName, final Map userProps) throws IllegalArgumentException{ - final Entry entry = new Entry(userName,userProps); - return entry; - } - - public String addEntry(final Entry entry) { - try { - userTable.insert(UTF8.getBytes(entry.userName), entry.mem); - return entry.userName; - } catch (final Exception e) { - ConcurrentLog.logException(e); - return null; - } - } - - /** - * Use a ProxyAuth Value to authenticate user from HttpHeader.Authentication. - * This supports only Basic authentication - * @param header the current request HTTP headers including 'Authorization' header : - * either "BASIC " followed by base64 Encoded String, which contains "username:pw" for basic authentication, - * or "Digest" followed by valid user name, realm, nonce and other necessary parameters. - * @return the user entry when the authentication header contains valid authentication information or null - */ - public Entry proxyAuth(final RequestHeader header) { - Entry entry = null; - if(header == null) { - return entry; - } - final String authHeader = header.get(RequestHeader.AUTHORIZATION, "").trim(); - if (authHeader.toUpperCase(Locale.ROOT).startsWith(HttpServletRequest.BASIC_AUTH)) { - String auth = authHeader.substring(6); // take out prefix "BASIC" - final String[] tmp = Base64Order.standardCoder.decodeString(auth.trim()).split(":"); - if (tmp.length == 2) { - entry = this.passwordAuth(tmp[0], tmp[1]); - if (entry == null) { - entry = this.md5Auth(tmp[0], tmp[1]); - } - } - } else if (authHeader.toUpperCase(Locale.ROOT).startsWith(HttpServletRequest.DIGEST_AUTH)) { - // handle DIGEST auth by servlet container - final Principal authenticatedUser = header.getUserPrincipal(); - if (authenticatedUser != null && authenticatedUser.getName() != null) { // user is authenticated by Servlet container - entry = getEntry(authenticatedUser.getName()); - } - } - return entry; - } - - /** - * @param header the HTTP request headers - * @return the authenticated user with valid authentication information found in the headers or null - */ - public Entry getUser(final RequestHeader header){ - return getUser(header, header.getCookies()); - } - - /** - * @param header HTTP request headers - * @param cookies eventual client cookies - * @return the authenticated user entry from headers or cookies or null - */ - public Entry getUser(final RequestHeader header, final Cookie[] cookies){ - Entry entry = proxyAuth(header); - if(entry == null && cookies != null) { - entry=cookieAuth(cookies); - } - return entry; - } - - /** - * Determine if a user has admin rights from a 'Authorisation' http header field. - * Tests both userDB and old style adminpw. - * - * @param header http-headerline for authorisation. - * @param cookies - */ - public boolean hasAdminRight(final RequestHeader header, final Cookie[] cookies) { - final Entry entry = getUser(header, cookies); - return (entry != null) ? entry.hasRight(AccessRight.ADMIN_RIGHT) : false; - } - - /** - * Use HTTP headers to authenticate user and save IP/username for ipAuth. - * @param header HTTP request headers including 'Authorization' header with either base64 Encoded String, which contains "username:pw", - * or Digest authentication information including notably user name, realm, and nonce. - * @param ip IP address. - */ - public Entry proxyAuth(final RequestHeader header, final String ip) { - final Entry entry = proxyAuth(header); - if (entry != null) { - entry.updateLastAccess(false); - this.ipUsers.put(ip, entry.getUserName()); - } - return entry; - } - - /** - * Authenticate a user by ip, if he has used proxyAuth in the last 10 minutes. - * @param ip IP address of user. - */ - public Entry ipAuth(final String ip) { - if(this.ipUsers.containsKey(ip)){ - final String user = this.ipUsers.get(ip); - final Entry entry = this.getEntry(user); - final Long entryTimestamp = entry.getLastAccess(); - if (entryTimestamp == null || - (System.currentTimeMillis()-entryTimestamp.longValue()) > (1000*60*10) ){ //no timestamp or older than 10 Minutes - return null; - } - return entry; //All OK - } - return null; - } - - public Entry passwordAuth(final String user, final String password) { - final Entry entry = this.getEntry(user); - final String md5pwd; - if (entry != null && (md5pwd = entry.getMD5EncodedUserPwd()) != null) { - - boolean authok; - if (md5pwd.startsWith("MD5:")) { // DIGEST style - authok = md5pwd.equals("MD5:" + Digest.encodeMD5Hex(user + ":" - + Switchboard.getSwitchboard().getConfig(SwitchboardConstants.ADMIN_REALM, "YaCy") + ":" + password)); - } else { - authok = md5pwd.equals(Digest.encodeMD5Hex(user + ":" + password)); - } - if (authok) { - entry.updateLastAccess(false); - return entry; - } - } - return null; - } - - public Entry passwordAuth(final String user, final String password, final String ip){ - final Entry entry = passwordAuth(user, password); - if (entry != null) { - entry.updateLastAccess(false); - this.ipUsers.put(ip, entry.getUserName()); //XXX: This is insecure. TODO: use cookieauth - } - return entry; - } - - public Entry md5Auth(final String user, final String md5) { - final Entry entry = this.getEntry(user); - if (entry != null && entry.getMD5EncodedUserPwd().endsWith(md5)) { // user pwd migth have prefix "MD5:" - entry.updateLastAccess(false); - return entry; - } - return null; - } - - /** - * Returns the user entry matching the cookie login token created and set - * on login. - * - * @param cookies - * @return user entry or null - */ - public Entry cookieAuth(final Cookie[] cookies){ - final String token = getLoginToken(cookies); - if (cookieUsers.containsKey(token)) { - final Entry entry = cookieUsers.get(token); - return entry; - } - return null; - } - - public String getCookie(final Entry entry){ - final Random r = new Random(); - final String token = Long.toString(Math.abs(r.nextLong()), 36); - cookieUsers.put(token, entry); - return token; - } - - /** - * Extracts the token set as value in a cookie with name "login" - * @param cookies - * @return login token string - */ - public static String getLoginToken(final Cookie[] cookies) { - if (cookies != null) { - for (final Cookie c : cookies) { - if (c.getName().equals("login")) { - return c.getValue().trim(); - } - } - } - return ""; - } - - public enum AccessRight { - - //to create new rights, you just add them here - UPLOAD_RIGHT("uploadRight", "Upload"), - DOWNLOAD_RIGHT("downloadRight", "Download"), - ADMIN_RIGHT("adminRight", "Admin"), - PROXY_RIGHT("proxyRight", "Proxy usage"), - BLOG_RIGHT("blogRight", "Blog"), - WIKIADMIN_RIGHT("wikiAdminRight", "Wiki Admin"), - BOOKMARK_RIGHT("bookmarkRight", "Bookmark"), - EXTENDED_SEARCH_RIGHT("extendedSearchRight", "Extended Search"); - - private String name; - private String friendlyName; - - AccessRight(final String name, final String friendlyName) { - this.friendlyName = friendlyName; - this.name = name; - } - - @Override - public String toString() { - return name; - } - - public String getFriendlyName() { - return friendlyName; - } - - } - - public class Entry { - public static final String MD5ENCODED_USERPWD_STRING = "MD5_user:pwd"; // value = "MD5:" + MD5Hex(username +":"+ realm + ":" pwd) - // oldstyle = MD5Hex(username +":"+ pwd) - public static final String USER_FIRSTNAME = "firstName"; - public static final String USER_LASTNAME = "lastName"; - public static final String USER_ADDRESS = "address"; - public static final String LAST_ACCESS = "lastAccess"; - public static final String TIME_USED = "timeUsed"; - public static final String TIME_LIMIT = "timeLimit"; - public static final String TRAFFIC_SIZE = "trafficSize"; - public static final String TRAFFIC_LIMIT = "trafficLimit"; - - public static final int PROXY_ALLOK = 0; //can Surf - public static final int PROXY_ERROR = 1; //unknown error - public static final int PROXY_NORIGHT = 2; //no proxy right - public static final int PROXY_TIMELIMIT_REACHED = 3; - - // this is a simple record structure that hold all properties of a user - private Map mem; - private String userName; - private final Calendar oldDate, newDate; - - public Entry(final String userName, final Map mem) throws IllegalArgumentException { - if ((userName == null) || (userName.isEmpty())) { - throw new IllegalArgumentException("Username needed."); - } - if (userName.length()>128) { - throw new IllegalArgumentException("Username too long!"); - } - - this.userName = userName.trim(); - if (this.userName.length() < USERNAME_MIN_LENGTH) { - throw new IllegalArgumentException("Username too short. Length should be >= " + USERNAME_MIN_LENGTH); - } - - this.mem = (mem == null) ? new HashMap() : mem; - - this.oldDate=Calendar.getInstance(); - this.newDate=Calendar.getInstance(); - } - - public String getUserName() { - return this.userName; - } - - public String getFirstName() { - return (this.mem.containsKey(USER_FIRSTNAME) ? this.mem.get(USER_FIRSTNAME) : null); - } - - public String getLastName() { - return (this.mem.containsKey(USER_LASTNAME) ? this.mem.get(USER_LASTNAME) : null); - } - - public String getAddress() { - return (this.mem.containsKey(USER_ADDRESS) ? this.mem.get(USER_ADDRESS) : null); - } - - public long getTimeUsed() { - long ret = 0L; - String s = this.mem.get(TIME_USED); - if (s != null && s.length() > 0) { - try{ - ret = Long.parseLong(s); - } catch (final NumberFormatException e){ - ConcurrentLog.logException(e); - } - } else { - try { - this.setProperty(TIME_USED,"0"); - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - } - return ret; - } - - public long getTimeLimit() { - long ret = 0L; - String s = this.mem.get(TIME_LIMIT); - if (s != null && s.length() > 0) { - try { - ret = Long.parseLong(s); - } catch (final NumberFormatException e){ - ConcurrentLog.logException(e); - } - } else { - try { - this.setProperty(TIME_LIMIT, "0"); - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - } - return ret; - } - - public long getTrafficSize() { - long ret = 0L; - String s = this.mem.get(TRAFFIC_SIZE); - if (s != null && s.length() > 0) { - try { - ret = Long.parseLong(s); - } catch (final NumberFormatException e) { - ConcurrentLog.logException(e); - } - } else { - try { - this.setProperty(TRAFFIC_SIZE, "0"); - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - } - return ret; - } - - public Long getTrafficLimit() { - return (this.mem.containsKey(TRAFFIC_LIMIT) ? Long.valueOf(this.mem.get(TRAFFIC_LIMIT)) : null); - } - - public long updateTrafficSize(final long responseSize) { - if (responseSize < 0) { - throw new IllegalArgumentException("responseSize must be greater or equal zero."); - } - - final long currentTrafficSize = getTrafficSize(); - final long newTrafficSize = currentTrafficSize + responseSize; - try { - this.setProperty(TRAFFIC_SIZE,Long.toString(newTrafficSize)); - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - return newTrafficSize; - } - - public Long getLastAccess() { - return (this.mem.containsKey(LAST_ACCESS) ? Long.valueOf(this.mem.get(LAST_ACCESS)) : null); - } - - public int surfRight(){ - final long timeUsed=this.updateLastAccess(true); - final int ret; - - if (!this.hasRight(AccessRight.PROXY_RIGHT)) { - ret = PROXY_NORIGHT; - } else if(! (this.getTimeLimit() <= 0 || (timeUsed < this.getTimeLimit())) ){ //no timelimit or timelimit not reached - ret = PROXY_TIMELIMIT_REACHED; - } else { - ret = PROXY_ALLOK; - } - return ret; - } - - public boolean canSurf(){ - return (this.surfRight() == PROXY_ALLOK); - } - - public long updateLastAccess(final boolean incrementTimeUsed) { - return updateLastAccess(System.currentTimeMillis(), incrementTimeUsed); - } - - public long updateLastAccess(final long timeStamp, final boolean incrementTimeUsed) { - if (timeStamp < 0) { - throw new IllegalArgumentException(); - } - - final Long lastAccess = this.getLastAccess(); - long newTimeUsed = getTimeUsed(); - - if (incrementTimeUsed) { - if ((lastAccess == null) || (timeStamp - lastAccess.longValue() >= 1000*60)) {//1 minute - newTimeUsed++; - if (lastAccess != null) { - this.oldDate.setTime(new Date(lastAccess.longValue())); - this.newDate.setTime(new Date(System.currentTimeMillis())); - if( - this.oldDate.get(Calendar.DAY_OF_MONTH) != this.newDate.get(Calendar.DAY_OF_MONTH) || - this.oldDate.get(Calendar.MONTH) != this.newDate.get(Calendar.MONTH) || - this.oldDate.get(Calendar.YEAR) != this.newDate.get(Calendar.YEAR) - ){ //new Day, reset time - newTimeUsed=0; - } - }else{ //no access so far - newTimeUsed=0; - } - this.mem.put(TIME_USED,Long.toString(newTimeUsed)); - this.mem.put(LAST_ACCESS,Long.toString(timeStamp)); //update Timestamp - } - } else { - this.mem.put(LAST_ACCESS,Long.toString(timeStamp)); //update Timestamp - } - - try { - UserDB.this.userTable.insert(UTF8.getBytes(getUserName()), this.mem); - } catch(final Exception e){ - ConcurrentLog.logException(e); - } - return newTimeUsed; - } - - /** - * @return encode credential = "MD5:" + MD5Hex(username +":"+ realm + ":" pwd) or null. (old style = MD5Hex(username +":"+ pwd) - */ - public String getMD5EncodedUserPwd() { - return (this.mem.containsKey(MD5ENCODED_USERPWD_STRING)) ? this.mem.get(MD5ENCODED_USERPWD_STRING) : null; - } - - public Map getProperties() { - return this.mem; - } - - public void setProperty(final String propName, final String newValue) throws IOException, SpaceExceededException { - this.mem.put(propName, newValue); - UserDB.this.userTable.insert(UTF8.getBytes(getUserName()), this.mem); - } - - public String getProperty(final String propName, final String defaultValue) { - return (this.mem.containsKey(propName) ? this.mem.get(propName) : defaultValue); - } - - public boolean hasRight(final AccessRight accessRight){ - return (this.mem.containsKey(accessRight.toString())) ? this.mem.get(accessRight.toString()).equals("true") : false; - } - - public void logout(final String ip, final String logintoken){ - logout(ip); - if(cookieUsers.containsKey(logintoken)){ - cookieUsers.remove(logintoken); - } - } - - public void logout(final String ip) { - try { - if (ipUsers.containsKey(ip)){ - ipUsers.remove(ip); - } - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - } - - @Override - public String toString() { - final StringBuilder str = new StringBuilder(); - - str.append((this.userName == null) ? "null" : this.userName).append(": "); - - if (this.mem != null) { - str.append(this.mem.toString()); - } - - return str.toString(); - } - - } - - public Iterator iterator(final boolean up) { - // enumerates users - try { - return new userIterator(up); - } catch (final IOException e) { - return new HashSet().iterator(); - } - } - - - public class userIterator implements Iterator { - // the iterator iterates all userNames - CloneableIterator userIter; - //userDB.Entry nextEntry; - - public userIterator(final boolean up) throws IOException { - this.userIter = UserDB.this.userTable.keys(up, false); - //this.nextEntry = null; - } - - @Override - public boolean hasNext() { - try { - return this.userIter.hasNext(); - } catch (final kelondroException e) { - resetDatabase(); - return false; - } - } - - @Override - public Entry next() { - try { - return getEntry(UTF8.String(this.userIter.next())); - } catch (final kelondroException e) { - resetDatabase(); - return null; - } - } - - @Override - public void remove() { -// if (this.nextEntry != null) { -// try { -// final Object userName = this.nextEntry.getUserName(); -// if (userName != null) removeEntry((String) userName); -// } catch (final kelondroException e) { -// resetDatabase(); -// } -// } - throw new UnsupportedOperationException("Method not implemented yet."); - } - } - -} diff --git a/source/net/yacy/data/wiki/WikiBoard.java b/source/net/yacy/data/wiki/WikiBoard.java deleted file mode 100644 index ebd3f4793..000000000 --- a/source/net/yacy/data/wiki/WikiBoard.java +++ /dev/null @@ -1,445 +0,0 @@ -//wikiBoard.java -//------------------------------------- -//(C) by Michael Peter Christen; mc@yacy.net -//first published on http://www.anomic.de -//Frankfurt, Germany, 2004 -// -// $LastChangedDate$ -// $LastChangedRevision$ -// $LastChangedBy$ -// -//This program is free software; you can redistribute it and/or modify -//it under the terms of the GNU General Public License as published by -//the Free Software Foundation; either version 2 of the License, or -//(at your option) any later version. -// -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. -// -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -package net.yacy.data.wiki; - -import java.io.File; -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; -import java.util.TimeZone; - -import net.yacy.cora.document.encoding.ASCII; -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.order.Base64Order; -import net.yacy.cora.order.NaturalOrder; -import net.yacy.cora.protocol.Domains; -import net.yacy.cora.util.CommonPattern; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.cora.util.SpaceExceededException; -import net.yacy.kelondro.blob.MapHeap; - -/** - * - */ -public class WikiBoard { - - public static final int keyLength = 64; - private static final String DATE_FORMAT = "yyyyMMddHHmmss"; - private static final String ANONYMOUS = "anonymous"; - - private static final SimpleDateFormat SimpleFormatter = new SimpleDateFormat(DATE_FORMAT, Locale.US); - - static { - SimpleFormatter.setTimeZone(TimeZone.getTimeZone("GMT")); - } - - private MapHeap datbase = null; - private MapHeap bkpbase = null; - private static final Map AUTHORS = new HashMap(); - - /** - * Constructor. - * @param actpath path of database which contains current wiki data. - * @param bkppath path of backup database. - * @throws IOException if error occurs during HDD access. - */ - public WikiBoard(final File actpath, final File bkppath) throws IOException { - new File(actpath.getParent()).mkdirs(); - if (this.datbase == null) { - //datbase = new MapView(BLOBTree.toHeap(actpath, true, true, keyLength, recordSize, '_', NaturalOrder.naturalOrder, actpathNew), 500, '_'); - this.datbase = new MapHeap(actpath, keyLength, NaturalOrder.naturalOrder, 1024 * 64, 500, '_'); - } - new File(bkppath.getParent()).mkdirs(); - if (this.bkpbase == null) { - //bkpbase = new MapView(BLOBTree.toHeap(bkppath, true, true, keyLength + dateFormat.length(), recordSize, '_', NaturalOrder.naturalOrder, bkppathNew), 500, '_'); - this.bkpbase = new MapHeap(bkppath, keyLength + DATE_FORMAT.length(), NaturalOrder.naturalOrder, 1024 * 64, 500, '_'); - } - } - - /** - * Gets total number of entries of wiki DB and DB which contains backup entries. - * @return number of entries in wiki plus number of old entries. - */ - public int sizeOfTwo() { - return this.datbase.size() + this.bkpbase.size(); - } - - /** - * Gets number of entries of wiki DB. - * @return number of entries in wiki. - */ - public int size() { - return this.datbase.size(); - } - - /** - * Closes database files. - */ - public synchronized void close() { - this.datbase.close(); - this.bkpbase.close(); - } - - /** - * Gets current date. - * @return current date. - */ - static String dateString() { - return dateString(new Date()); - } - - /** - * Gets String representation of a Date. - * @param date the Date. - * @return String representation of Date. - */ - public static String dateString(final Date date) { - synchronized (SimpleFormatter) { - return SimpleFormatter.format(date); - } - } - - /** - * Gets normalized version of a key. - * @param key the key. - * @return normalized version of key. - */ - private static String normalize(final String key) { - return (key != null) ? key.trim().toLowerCase() : "null"; - } - - /** - * Normalizes key and replaces spaces by escape code. - * @param key the key. - * @return normalized and webalized version. - */ - public static String webalize(final String key) { - return (key != null) ? CommonPattern.SPACE.matcher(normalize(key)).replaceAll("%20") : "null"; - } - - /** - * Tries to guess the name of the author by a given IP address. - * @param ip the IP address. - * @return - */ - public static String guessAuthor(final String ip) { - final String author = AUTHORS.get(ip); - //yacyCore.log.logDebug("DEBUG: guessing author for ip = " + ip + " is '" + author + "', authors = " + authors.toString()); - return author; - } - - /** - * Adds an author name and a corresponding IP to internal Map. - * @param ip IP address of the author. - * @param author name of author. - */ - public static void setAuthor(final String ip, final String author) { - AUTHORS.put(ip,author); - } - - /** - * Creates new Entry. - * @param subject subject of entry. - * @param author author of entry. - * @param ip IP address of author. - * @param reason reason for new Entry (for example "edit"). - * @param page content of Entry. - * @return new Entry. - * @throws IOException - */ - public Entry newEntry(final String subject, final String author, final String ip, final String reason, final byte[] page) throws IOException { - return new Entry(normalize(subject), author, ip, reason, page); - } - - /** - * Contains information of wiki page. - */ - public class Entry { - private static final String ANONYMOUS = "anonymous"; - - private final String key; - private final Map record; - - /** - * Constructor which creates new Entry using given information. - * @param subject subject of Entry. - * @param author author of Entry. - * @param ip IP address of author. - * @param reason reason for new Entry (for example "edit"). - * @param page content of Entry. - * @throws IOException - */ - public Entry(final String subject, final String author, final String ip, final String reason, final byte[] page) throws IOException { - this.record = new HashMap(); - this.key = subject.substring(0, Math.min((subject != null) ? subject.length() : 0, keyLength)); - this.record.put("date", dateString()); - this.record.put("author", Base64Order.enhancedCoder.encodeString((author != null && author.length() > 0) ? author : ANONYMOUS)); - this.record.put("ip", (ip != null && ip.length() > 0) ? ip : ""); - this.record.put("reason", Base64Order.enhancedCoder.encodeString((reason != null && reason.length() > 0) ? reason : "")); - this.record.put("page", (page != null) ? Base64Order.enhancedCoder.encode(page) : ""); - AUTHORS.put(ip, author); - } - - /** - * Constructor which creates Entry using key and record. - * @param key key of Entry. - * @param record record which contains data. - */ - Entry(final String key, final Map record) { - this.key = key; - this.record = record; - } - - /** - * Gets subject of Entry. - * @return subject of entry. - */ - public String subject() { - return this.key; - } - - /** - * Gets date of Entry. - * @return date of Entry. - */ - public Date date() { - Date ret; - try { - final String c = this.record.get("date"); - if (c == null) { - System.out.println("DEBUG - ERROR: date field missing in wikiBoard"); - ret = new Date(); - } else { - synchronized (SimpleFormatter) { - ret = SimpleFormatter.parse(c); - } - } - } catch (final ParseException e) { - ret = new Date(); - } - return ret; - } - - /** - * Gets author of Entry. - * @return author of Entry. - */ - public String author() { - final String a = this.record.get("author"); - final byte[] b; - return (a != null && (b = Base64Order.enhancedCoder.decode(a)) != null) ? UTF8.String(b) : ANONYMOUS; - } - - /** - * Gets reason for Entry. - * @return reason for Entry. - */ - public String reason() { - final String ret; - final String r = this.record.get("reason"); - if (r != null) { - final byte[] b; - ret = ((b = Base64Order.enhancedCoder.decode(r)) != null) ? UTF8.String(b) : "unknown"; - } else { - ret = ""; - } - return ret; - } - - /** - * Gets actual content of Entry. - * @return content of Entry. - */ - public byte[] page() { - final String m = this.record.get("page"); - final byte[] b; - return (m != null && (b = Base64Order.enhancedCoder.decode(m)) != null) ? b : new byte[0]; - } - - /** - * Sets date of previous version of Entry. - * @param date date of previous version of Entry. - */ - void setAncestorDate(final Date date) { - this.record.put("bkp", dateString(date)); - } - - /** - * Gets date of previous version of Entry. - * @return date of previous version of Entry. - */ - private Date getAncestorDate() { - Date ret = null; - try { - final String c = this.record.get("date"); - if (c != null) { - synchronized (SimpleFormatter) { - ret = SimpleFormatter.parse(c); - } - } - } catch (final ParseException e) { - ret = null; - } - return ret; - } - - /** - * Gets previous version of Entry. - * @return previous version of Entry. - */ - public Entry getAncestor() { - final Date ancDate = getAncestorDate(); - return (ancDate == null) ? null : read(this.key + dateString(ancDate), WikiBoard.this.bkpbase); - } - - /** - * Adds child of current Entry. - * @param subject subject of child of current Entry. - */ - void setChild(final String subject) { - this.record.put("child", Base64Order.enhancedCoder.encode(UTF8.getBytes(subject))); - } - - /** - * Gets name (= subject) of child of this Entry. - * @return name of child of this Entry. - */ - private String getChildName() { - final String c = this.record.get("child"); - final byte[] subject; - return (c != null && (subject = Base64Order.enhancedCoder.decode(c)) != null) ? ASCII.String(subject) : null; - } - - /** - * Tells if Entry has child. - * @return true if has child, else false. - */ - public boolean hasChild() { - final String c = this.record.get("child"); - return (c != null && Base64Order.enhancedCoder.decode(c) != null) ? true : false; - } - - /** - * Gets child of this Entry. - * @return child of this Entry. - */ - public Entry getChild() { - final String childName = getChildName(); - return (childName == null) ? null : read(childName, WikiBoard.this.datbase); - } - } - - /** - * Writes content of Entry to database and returns key. - * @param entry Entry to be written. - * @return key of Entry. - */ - public String write(final Entry entry) { - // writes a new page and returns key - String key = null; - try { - // first load the old page - final Entry oldEntry = read(entry.key); - // set the bkp date of the new page to the date of the old page - final Date oldDate = oldEntry.date(); - entry.setAncestorDate(oldDate); - oldEntry.setChild(entry.subject()); - // write the backup - this.bkpbase.insert(UTF8.getBytes(entry.key + dateString(oldDate)), oldEntry.record); - // write the new page - this.datbase.insert(UTF8.getBytes(entry.key), entry.record); - key = entry.key; - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - return key; - } - - /** - * Reads content of Entry from database. - * @param key key of Entry. - * @return Entry which contains data. - */ - public Entry read(final String key) { - return read(key, this.datbase); - } - - /** - * Reads content of Entry from database. - * @param key key of Entry. - * @param base database containing data. - * @return Entry which contains data. - */ - Entry read(final String key, final MapHeap base) { - Entry ret = null; - try { - String copyOfKey = normalize(key); - if (copyOfKey.length() > keyLength) { - copyOfKey = copyOfKey.substring(0, keyLength); - } - final Map record = base.get(UTF8.getBytes(copyOfKey)); - ret = (record == null) ? newEntry(copyOfKey, ANONYMOUS, Domains.LOCALHOST, "New Page", UTF8.getBytes("")) : new Entry(copyOfKey, record); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } catch (final SpaceExceededException e) { - ConcurrentLog.logException(e); - } - return ret; - } - - /** - * Reads old Entry from backup database. - * @param key key of Entry. - * @return the Entry. - */ - public Entry readBkp(final String key) { - return read(key, this.bkpbase); - } - - /** - * Gets Iterator of keys in database. - * @param up - * @return keys of Entries in database. - * @throws IOException - */ - public Iterator keys(final boolean up) throws IOException { - return this.datbase.keys(up, false); - } - - /** - * Gets Iterator of keys in backup database. - * @param up - * @return keys of Entries in backup database. - * @throws IOException - */ - public Iterator keysBkp(final boolean up) throws IOException { - return this.bkpbase.keys(up, false); - } -} diff --git a/source/net/yacy/data/wiki/WikiCode.java b/source/net/yacy/data/wiki/WikiCode.java index 2851b31bc..20d87ab81 100644 --- a/source/net/yacy/data/wiki/WikiCode.java +++ b/source/net/yacy/data/wiki/WikiCode.java @@ -37,8 +37,7 @@ import java.util.regex.Pattern; import net.yacy.document.parser.html.CharacterCoding; import net.yacy.server.serverCore; -/** Provides methods to handle texts that have been posted in the yacyWiki or other - * parts of YaCy which use wiki code, like the blog or the profile. +/** Provides methods to render WikiCode used by MediaWiki import, messages and profiles. * * @author Alexander Schier [AS], Franz Brausze [FB], Marc Nause [MN] */ @@ -584,7 +583,7 @@ public class WikiCode extends AbstractWikiParser implements WikiParser { /** * Processes tags which are connected to links and images. * @author [AS], [MN] - * @param hostport (optional) host and port, added when not empty as the base of relative Wiki link URLs. + * @param hostport optional host and port used as the base of relative media URLs. * @param line line of text to be transformed from wiki code to HTML * @return HTML fragment */ @@ -661,17 +660,18 @@ public class WikiCode extends AbstractWikiParser implements WikiParser { line = line.substring(0, positionOfOpeningTag) + "" + ""; break; } - // if it's no image, it might be an internal link - else { + // Internal links used to target the retired local Wiki application. Keep + // their labels as plain rendered text instead of producing dead links. + else { if ((p = kl.indexOf(PIPE_ESCAPED)) > 0) { kv = kl.substring(p + LEN_PIPE_ESCAPED); kl = kl.substring(0, p); } else { kv = kl; - } - line = line.substring(0, positionOfOpeningTag) + "" + kv + "" + line.substring(positionOfClosingTag + LEN_WIKI_CLOSE_LINK); // oob exception in append() ! - fromIndex = positionOfClosingTag + LEN_WIKI_CLOSE_LINK; - } + } + line = line.substring(0, positionOfOpeningTag) + kv + line.substring(positionOfClosingTag + LEN_WIKI_CLOSE_LINK); + fromIndex = positionOfOpeningTag + kv.length(); + } } fromIndex = 0; diff --git a/source/net/yacy/htroot/Blog.java b/source/net/yacy/htroot/Blog.java deleted file mode 100644 index d0067b298..000000000 --- a/source/net/yacy/htroot/Blog.java +++ /dev/null @@ -1,343 +0,0 @@ -// Blog.java -// ----------------------- -// part of YACY -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// -// This File is contributed by Jan Sandbrink -// Contains contributions from Marc Nause [MN] -// -//$LastChangedDate$ -//$LastChangedRevision$ -//$LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// You must compile this file with -// javac -classpath .:../classes Blog.java -// if the shell's current path is HTROOT - -package net.yacy.htroot; - -import java.text.DateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.protocol.HeaderFramework; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.BlogBoard; -import net.yacy.data.UserDB; -import net.yacy.http.servlets.YaCyDefaultServlet; -import net.yacy.peers.NewsPool; -import net.yacy.peers.Seed; -import net.yacy.search.Switchboard; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - -public class Blog { - - private static final String DEFAULT_PAGE = "blog_default"; - - private static DateFormat SimpleFormatter = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT, Locale.getDefault()); - - /** - * print localized date/time "yyyy/mm/dd HH:mm:ss" - * @param date - * @return - */ - public static String dateString(final Date date) { - return SimpleFormatter.format(date); - } - - public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { - final Switchboard sb = (Switchboard) env; - final serverObjects prop = new serverObjects(); - BlogBoard.BlogEntry page = null; - - boolean hasRights = sb.verifyAuthentication(header); - - //final int display = (hasRights || post == null) ? 1 : post.getInt("display", 0); - //prop.put("display", display); - prop.put("display", 1); // Fixed to 1 - - - final boolean xml = header.getPathInfo().endsWith(".xml"); - /* Peer URL base : used to generate absolute URLs in Blog.rss */ - final String context = YaCyDefaultServlet.getContext(header, sb); - - prop.put("mode_admin", hasRights ? "1" : "0"); - - if (post == null) { - prop.putHTML("peername", sb.peers.mySeed().getName()); - prop.put("context", context); - return putBlogDefault(prop, sb, context, 0, 10, hasRights, xml); - } - - final int start = post.getInt("start",0); //indicates from where entries should be shown - final int num = post.getInt("num",10); //indicates how many entries should be shown - - if (!hasRights) { - final UserDB.Entry userentry = sb.userDB.proxyAuth(header); - if (userentry != null && userentry.hasRight(UserDB.AccessRight.BLOG_RIGHT)) { - hasRights=true; - } else if (post.containsKey("login")) { - //opens login window if login link is clicked - prop.authenticationRequired(); - } - } - - String pagename = post.get("page", DEFAULT_PAGE); - final String ip = header.getRemoteAddr(); - - String strAuthor = post.get("author", "anonymous"); - - if ("anonymous".equals(strAuthor)) { - strAuthor = sb.blogDB.guessAuthor(ip); - - if (strAuthor == null || strAuthor.isEmpty()) { - if (sb.peers.mySeed() == null) { - strAuthor = "anonymous"; - } else { - strAuthor = sb.peers.mySeed().get(Seed.NAME, "anonymous"); - } - } - } - - byte[] author; - author = UTF8.getBytes(strAuthor); - - if (hasRights && post.containsKey("delete") && "sure".equals(post.get("delete"))) { - page = sb.blogDB.readBlogEntry(pagename); - for (final String comment : page.getComments()) { - sb.blogCommentDB.delete(comment); - } - sb.blogDB.deleteBlogEntry(pagename); - pagename = DEFAULT_PAGE; - } - - if (post.containsKey("discard")) { - pagename = DEFAULT_PAGE; - } - - if (post.containsKey("submit") && hasRights) { - // store a new/edited blog-entry - byte[] content; - content = UTF8.getBytes(post.get("content", "")); - - final Date date; - List comments = null; - - //set name for new entry or date for old entry - if (DEFAULT_PAGE.equals(pagename)) { - pagename = String.valueOf(System.currentTimeMillis()); - date = null; - } else { - page = sb.blogDB.readBlogEntry(pagename); - comments = page.getComments(); - date = page.getDate(); - } - final String commentMode = post.get("commentMode", "2"); - final String StrSubject = post.get("subject", ""); - byte[] subject; - subject = UTF8.getBytes(StrSubject); - - sb.blogDB.writeBlogEntry(sb.blogDB.newEntry(pagename, subject, author, ip, date, content, comments, commentMode)); - - // create a news message - if (!sb.isRobinsonMode()) { - final Map map = new HashMap<>(); - map.put("page", pagename); - map.put("subject", StrSubject.replace(',', ' ')); - map.put("author", strAuthor.replace(',', ' ')); - sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_BLOG_ADD, map); - } - } - - page = sb.blogDB.readBlogEntry(pagename); //maybe "if(page == null)" - - if (post.containsKey("edit")) { - //edit an entry - if(hasRights) { - prop.put("mode", "1"); //edit - prop.put("mode_commentMode", page.getCommentMode()); - prop.putHTML("mode_author", UTF8.String(page.getAuthor())); - prop.put("mode_pageid", page.getKey()); - prop.putHTML("mode_subject", UTF8.String(page.getSubject())); - prop.put("mode_page-code", UTF8.String(page.getPage())); - } - else { - prop.put("mode", "3"); //access denied (no rights) - } - } else if(post.containsKey("preview")) { - //preview the page - if(hasRights) { - prop.put("mode", "2");//preview - prop.put("mode_commentMode", post.getInt("commentMode", 2)); - prop.putHTML("mode_pageid", pagename); - prop.putHTML("mode_author", UTF8.String(author)); - prop.putHTML("mode_subject", post.get("subject","")); - prop.put("mode_date", dateString(new Date())); - prop.putWiki("mode_page", post.get("content", "")); - prop.putHTML("mode_page-code", post.get("content", "")); - } - else { - prop.put("mode", "3"); //access denied (no rights) - } - } - else if("try".equals(post.get("delete", ""))) { - if(hasRights) { - prop.put("mode", "4"); - prop.putHTML("mode_pageid", pagename); - prop.putHTML("mode_author",UTF8.String(page.getAuthor())); - prop.putHTML("mode_subject",UTF8.String(page.getSubject())); - } - else prop.put("mode", "3"); //access denied (no rights) - } - else if (post.containsKey("import")) { - prop.put("mode", "5"); - prop.put("mode_state", "0"); - } - else if (post.containsKey("xmlfile")) { - prop.put("mode", "5"); - if (sb.blogDB.importXML(post.getInputStream("xmlfile$file"))) { - prop.put("mode_state", "1"); - } - else { - prop.put("mode_state", "2"); - } - } - else { - // show blog-entry/entries - prop.put("mode", "0"); //viewing - if(DEFAULT_PAGE.equals(pagename)) { - // XXX: where are "peername" and "address" used in the template? - // XXX: "clientname" is already set to the peername, no need for a new setting - prop.putHTML("peername", sb.peers.mySeed().getName()); - prop.put("context", context); - //index all entries - putBlogDefault(prop, sb, context, start, num, hasRights, xml); - } - else { - //only show 1 entry - prop.put("mode_entries", "1"); - putBlogEntry(prop, page, context, 0, hasRights, xml); - } - } - - // return rewrite properties - return prop; - } - - private static serverObjects putBlogDefault( - final serverObjects prop, - final Switchboard switchboard, - final String context, - int start, - int num, - final boolean hasRights, - final boolean xml) - { - final Iterator i = switchboard.blogDB.getBlogIterator(false); - - int count = 0; //counts how many entries are shown to the user - if (xml) { - num = 0; - } - final int nextstart = start+num; //indicates the starting offset for next results - int prevstart = start-num; //indicates the starting offset for previous results - - while (i.hasNext() && (num == 0 || num > count)) { - if(0 < start--) continue; - putBlogEntry( - prop, - switchboard.blogDB.readBlogEntry(i.next()), - context, - count++, - hasRights, - xml); - } - prop.put("mode_entries", count); - - if (i.hasNext()) { - prop.put("mode_moreentries", "1"); //more entries are availible - prop.put("mode_moreentries_start", nextstart); - prop.put("mode_moreentries_num", num); - } else { - prop.put("moreentries", "0"); - } - - if (start > 0) { - prop.put("mode_preventries", "1"); - if (prevstart < 0) { - prevstart = 0; - } - prop.put("mode_preventries_start", prevstart); - prop.put("mode_preventries_num", num); - } else prop.put("mode_preventries", "0"); - - return prop; - } - - private static serverObjects putBlogEntry( - final serverObjects prop, - final BlogBoard.BlogEntry entry, - final String context, - final int number, - final boolean hasRights, - final boolean xml) - { - prop.putHTML("mode_entries_" + number + "_subject", UTF8.String(entry.getSubject())); - - prop.putHTML("mode_entries_" + number + "_author", UTF8.String(entry.getAuthor())); - - // comments - if (entry.getCommentMode() == 0) { - prop.put("mode_entries_" + number + "_commentsactive", "0"); - } else { - prop.put("mode_entries_" + number + "_commentsactive", "1"); - prop.put("mode_entries_" + number + "_commentsactive_pageid", entry.getKey()); - prop.put("mode_entries_" + number + "_commentsactive_context", context); - prop.put("mode_entries_" + number + "_commentsactive_comments", entry.getCommentsSize()); - } - - prop.put("mode_entries_" + number + "_date", dateString(entry.getDate())); - prop.put("mode_entries_" + number + "_rfc822date", HeaderFramework.formatRFC1123(entry.getDate())); - prop.put("mode_entries_" + number + "_pageid", entry.getKey()); - prop.put("mode_entries_" + number + "_context", context); - prop.put("mode_entries_" + number + "_ip", entry.getIp()); - - if (xml) { - prop.put("mode_entries_" + number + "_page", entry.getPage()); - prop.put("mode_entries_" + number + "_timestamp", entry.getTimestamp()); - } else { - prop.putWiki("mode_entries_" + number + "_page", entry.getPage()); - } - - if (hasRights) { - prop.put("mode_entries_" + number + "_admin", "1"); - prop.put("mode_entries_" + number + "_admin_pageid",entry.getKey()); - } else { - prop.put("mode_entries_" + number + "_admin", "0"); - } - - return prop; - } -} diff --git a/source/net/yacy/htroot/BlogComments.java b/source/net/yacy/htroot/BlogComments.java deleted file mode 100644 index 8dbb43536..000000000 --- a/source/net/yacy/htroot/BlogComments.java +++ /dev/null @@ -1,331 +0,0 @@ -// BlogComments.java -// ----------------------- -// part of YACY -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// -// This File is contributed by Jan Sandbrink -// -//$LastChangedDate$ -//$LastChangedRevision$ -//$LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// You must compile this file with -// javac -classpath .:../Classes Blacklist_p.java -// if the shell's current path is HTROOT - -package net.yacy.htroot; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Date; -import java.util.Iterator; - -import com.google.common.io.Files; - -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.protocol.Domains; -import net.yacy.cora.protocol.HeaderFramework; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.util.CommonPattern; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.BlogBoard; -import net.yacy.data.BlogBoard.BlogEntry; -import net.yacy.data.BlogBoardComments; -import net.yacy.data.MessageBoard; -import net.yacy.data.UserDB; -import net.yacy.peers.Network; -import net.yacy.peers.Seed; -import net.yacy.search.Switchboard; -import net.yacy.search.SwitchboardConstants; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - - -public class BlogComments { - - private static final String DEFAULT_PAGE = "blog_default"; - - public static String dateString(final Date date) { - return Blog.dateString(date); - } - - public static serverObjects respond(final RequestHeader header, serverObjects post, final serverSwitch env) { - final Switchboard sb = (Switchboard) env; - final serverObjects prop = new serverObjects(); - boolean hasRights = sb.verifyAuthentication(header); - - prop.put("mode_admin", hasRights ? "1" : "0"); - - if (post == null) { - post = new serverObjects(); - post.put("page", "blog_default"); - } - - if (!hasRights) { - final UserDB.Entry userentry = sb.userDB.proxyAuth(header); - if (userentry != null && userentry.hasRight(UserDB.AccessRight.BLOG_RIGHT)) { - hasRights = true; - } else if (post.containsKey("login")) { - //opens login window if login link is clicked - prop.authenticationRequired(); - } - } - - final String pagename = post.get("page", DEFAULT_PAGE); - final String ip = post.get(HeaderFramework.CONNECTION_PROP_CLIENTIP, Domains.LOCALHOST); - - String strAuthor = post.get("author", "anonymous"); - - if ("anonymous".equals(strAuthor)) { - strAuthor = sb.blogDB.guessAuthor(ip); - - if (strAuthor == null || strAuthor.isEmpty()) { - if (sb.peers.mySeed() == null) { - strAuthor = "anonymous"; - } else { - strAuthor = sb.peers.mySeed().get(Seed.NAME, "anonymous"); - } - } - } - - byte[] author; - author = UTF8.getBytes(strAuthor); - - final BlogBoard.BlogEntry page = sb.blogDB.readBlogEntry(pagename); //maybe "if(page == null)" - final boolean pageExists = sb.blogDB.contains(pagename); - - // comments not allowed - prop.put("mode_allow", (page.getCommentMode() == 0) ? 0 : 1); - - if (post.containsKey("submit") && page.getCommentMode() != 0 && pageExists) { - // store a new/edited blog-entry - byte[] content; - if (!"".equals(post.get("content", ""))) { - if ("".equals(post.get("subject", ""))) { - post.putHTML("subject", "no title"); - } - content = UTF8.getBytes(post.get("content", "")); - - final Date date = null; - - //set name for new entry or date for old entry - final String StrSubject = post.get("subject", ""); - byte[] subject; - subject = UTF8.getBytes(StrSubject); - final String commentID = String.valueOf(System.currentTimeMillis()); - final BlogEntry blogEntry = sb.blogDB.readBlogEntry(pagename); - blogEntry.addComment(commentID); - sb.blogDB.writeBlogEntry(blogEntry); - sb.blogCommentDB.write(sb.blogCommentDB.newEntry(commentID, subject, author, ip, date, content)); - prop.putHTML(serverObjects.ACTION_LOCATION,"BlogComments.html?page=" + pagename); - - final MessageBoard.entry msgEntry = sb.messageDB.newEntry( - "blogComment", - strAuthor, - sb.peers.mySeed().hash, - sb.peers.mySeed().getName(), sb.peers.mySeed().hash, - "new blog comment: " + UTF8.String(blogEntry.getSubject()), content); - sb.messageDB.write(msgEntry); - - messageForwardingViaEmail(sb, msgEntry); - - // finally write notification - final File notifierSource = new File(sb.getAppPath(), sb.getConfig(SwitchboardConstants.HTROOT_PATH, SwitchboardConstants.HTROOT_PATH_DEFAULT) + "/env/grafics/message.gif"); - final File notifierDest = new File(sb.getDataPath(SwitchboardConstants.HTDOCS_PATH, SwitchboardConstants.HTDOCS_PATH_DEFAULT), "notifier.gif"); - try { - Files.copy(notifierSource, notifierDest); - } catch (final IOException e) { - ConcurrentLog.severe("MESSAGE", "NEW MESSAGE ARRIVED! (error: " + e.getMessage() + ")"); - - } - } - } - - if (hasRights && post.containsKey("delete") && post.containsKey("page") && - post.containsKey("comment") && page.removeComment(post.get("comment"))) { - sb.blogCommentDB.delete(post.get("comment")); - } - - if (hasRights && post.containsKey("allow") && post.containsKey("page") && post.containsKey("comment")) { - final BlogBoardComments.CommentEntry entry = sb.blogCommentDB.read(post.get("comment")); - entry.allow(); - sb.blogCommentDB.write(entry); - } - - if (post.containsKey("preview") && page.getCommentMode() != 0) { - //preview the page - prop.put("mode", "1");//preview - prop.putHTML("mode_pageid", pagename); - prop.putHTML("mode_allow_pageid", pagename); - prop.putHTML("mode_author", UTF8.String(author)); - prop.putHTML("mode_allow_author", UTF8.String(author)); - prop.putHTML("mode_subject", post.get("subject","")); - prop.put("mode_date", dateString(new Date())); - prop.putWiki("mode_page", post.get("content", "")); - prop.put("mode_page-code", post.get("content", "")); - } else { - // show blog-entry/entries - prop.put("mode", "0"); //viewing - if("blog_default".equals(pagename)) { - prop.put(serverObjects.ACTION_LOCATION,"Blog.html"); - } else { - //show 1 blog entry - prop.put("mode_pageid", page.getKey()); - prop.putHTML("mode_allow_pageid", pagename); - prop.putHTML("mode_subject", UTF8.String(page.getSubject())); - prop.putHTML("mode_author", UTF8.String(page.getAuthor())); - prop.putHTML("mode_allow_author", UTF8.String(author)); - prop.put("mode_comments", page.getCommentsSize()); - prop.put("mode_date", dateString(page.getDate())); - prop.putWiki("mode_page", page.getPage()); - if (hasRights) { - prop.put("mode_admin", "1"); - prop.put("mode_admin_pageid", page.getKey()); - } - final Iterator i = page.getComments().iterator(); - final int commentMode = page.getCommentMode(); - String pageid; - BlogBoardComments.CommentEntry entry; - final boolean xml = post.containsKey("xml"); - int count = 0; //counts how many entries are shown to the user - int start = post.getInt("start",0); //indicates from where entries should be shown - int num = post.getInt("num",10); //indicates how many entries should be shown - - if (xml) { - num = 0; - } - if (start < 0) { - start = 0; - } - - final int nextstart = start + num; //indicates the starting offset for next results - int prevstart = start - num; //indicates the starting offset for previous results - while (i.hasNext() && count < num) { - - pageid = i.next(); - - if(start > 0) { - start--; - continue; - } - - entry = sb.blogCommentDB.read(pageid); - - if (commentMode == 2 && !hasRights && !entry.isAllowed()) { - continue; - } - - prop.put("mode", "0"); - prop.put("mode_entries_"+count+"_pageid", entry.getKey()); - if (!xml) { - prop.putHTML("mode_entries_"+count+"_subject", UTF8.String(entry.getSubject())); - prop.putHTML("mode_entries_"+count+"_author", UTF8.String(entry.getAuthor())); - prop.putWiki("mode_entries_"+count+"_page", entry.getPage()); - } else { - prop.putHTML("mode_entries_"+count+"_subject", UTF8.String(entry.getSubject())); - prop.putHTML("mode_entries_"+count+"_author", UTF8.String(entry.getAuthor())); - prop.put("mode_entries_"+count+"_page", entry.getPage()); - prop.put("mode_entries_"+count+"_timestamp", entry.getTimestamp()); - } - prop.put("mode_entries_"+count+"_date", dateString(entry.getDate())); - prop.put("mode_entries_"+count+"_ip", entry.getIp()); - if(hasRights) { - prop.put("mode_entries_"+count+"_admin", "1"); - prop.put("mode_entries_"+count+"_admin_pageid", page.getKey()); - prop.put("mode_entries_"+count+"_admin_commentid", pageid); - if(page.getCommentMode() == 2 && !entry.isAllowed()) { - prop.put("mode_entries_"+count+"_admin_moderate", "1"); - prop.put("mode_entries_"+count+"_admin_moderate_pageid", page.getKey()); - prop.put("mode_entries_"+count+"_admin_moderate_commentid", pageid); - - } - } - else prop.put("mode_entries_"+count+"_admin", 0); - ++count; - } - prop.put ("mode_entries", count); - if (i.hasNext()) { - prop.put("mode_moreentries", "1"); //more entries are availible - prop.put("mode_moreentries_start", nextstart); - prop.put("mode_moreentries_num", num); - prop.put("mode_moreentries_pageid", page.getKey()); - } - else prop.put("mode_moreentries", "0"); - if (start > 1) { - prop.put("mode_preventries", "1"); - if (prevstart < 0) prevstart = 0; - prop.put("mode_preventries_start", prevstart); - prop.put("mode_preventries_num", num); - prop.put("mode_preventries_pageid", page.getKey()); - } else prop.put("mode_preventries", "0"); - } - } - - // return rewrite properties - return prop; - } - - private static void messageForwardingViaEmail(final Switchboard sb, final MessageBoard.entry msgEntry) { - try { - if (!sb.getConfigBool("msgForwardingEnabled",false)) { - return; - } - - // get the recipient address - final String sendMailTo = sb.getConfig("msgForwardingTo","root@localhost").trim(); - - // get the sendmail configuration - final String sendMailStr = sb.getConfig("msgForwardingCmd","/usr/bin/sendmail")+" "+sendMailTo; - final String[] sendMail = CommonPattern.SPACE.split(sendMailStr.trim()); - - // build the message text - final StringBuilder emailTxt = new StringBuilder(); - emailTxt.append("To: ") - .append(sendMailTo) - .append("\nFrom: ") - .append("yacy@") - .append(sb.peers.mySeed().getName()) - .append("\nSubject: [YaCy] ") - .append(msgEntry.subject().replace('\n', ' ')) - .append("\nDate: ") - .append(msgEntry.date()) - .append("\n") - .append("\nMessage from: ") - .append(msgEntry.author()) - .append("/") - .append(msgEntry.authorHash()) - .append("\nMessage to: ") - .append(msgEntry.recipient()) - .append("/") - .append(msgEntry.recipientHash()) - .append("\nCategory: ") - .append(msgEntry.category()) - .append("\n===================================================================\n") - .append(UTF8.String(msgEntry.message())); - - final Process process=Runtime.getRuntime().exec(sendMail); - final PrintWriter email = new PrintWriter(process.getOutputStream()); - email.print(new String(emailTxt)); - email.close(); - } catch (final Exception e) { - Network.log.warn("message: message forwarding via email failed. ",e); - } - } -} diff --git a/source/net/yacy/htroot/Bookmarks.java b/source/net/yacy/htroot/Bookmarks.java index 9ac240260..28a6ea053 100644 --- a/source/net/yacy/htroot/Bookmarks.java +++ b/source/net/yacy/htroot/Bookmarks.java @@ -53,7 +53,6 @@ import net.yacy.data.BookmarksDB; import net.yacy.data.BookmarksDB.Bookmark; import net.yacy.data.BookmarksDB.Tag; import net.yacy.data.ListManager; -import net.yacy.data.UserDB; import net.yacy.document.Document; import net.yacy.document.Parser; import net.yacy.http.servlets.YaCyDefaultServlet; @@ -62,6 +61,7 @@ import net.yacy.kelondro.workflow.BusyThread; import net.yacy.peers.NewsPool; import net.yacy.search.AutoSearch; import net.yacy.search.Switchboard; +import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverObjects; import net.yacy.server.serverSwitch; @@ -70,7 +70,6 @@ public class Bookmarks { private static final serverObjects prop = new serverObjects(); private static Switchboard sb = null; - private static UserDB.Entry user = null; private static boolean isAdmin = false; final static int SORT_ALPHA = 1; @@ -88,18 +87,15 @@ public class Bookmarks { int start=0; int display = 0; String tagName = ""; - String username=""; + String username=""; prop.clear(); sb = (Switchboard) env; - user = sb.userDB.getUser(header); - isAdmin = (sb.verifyAuthentication(header) || user!= null && user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT)); - - // set user name - if (user != null) { - username=user.getUserName(); - } else if(isAdmin) { - username="admin"; + isAdmin = sb.verifyAuthentication(header); + + // set user name + if(isAdmin) { + username=sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); } prop.putHTML("user", username); @@ -164,10 +160,6 @@ public class Bookmarks { bookmark.setProperty(BookmarksDB.Bookmark.BOOKMARK_TITLE, title); bookmark.setProperty(BookmarksDB.Bookmark.BOOKMARK_DESCRIPTION, description); - if (user!=null) { - bookmark.setOwner(user.getUserName()); - } - if ("public".equals(post.get("public"))) { bookmark.setPublic(true); publishNews(url, title, description, tagsString); diff --git a/source/net/yacy/htroot/ConfigAccountList_p.java b/source/net/yacy/htroot/ConfigAccountList_p.java deleted file mode 100644 index 7a3dff960..000000000 --- a/source/net/yacy/htroot/ConfigAccountList_p.java +++ /dev/null @@ -1,106 +0,0 @@ -// ConfigAccountList_p.java -// ------------------------- -// (c) 2017 by reger24; https://github.com/reger24 -// -// This is a part of YaCy, a peer-to-peer based web search engine -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -package net.yacy.htroot; - -import java.util.Iterator; - -import net.yacy.cora.date.GenericFormatter; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.UserDB; -import net.yacy.data.UserDB.AccessRight; -import net.yacy.search.Switchboard; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - -public class ConfigAccountList_p { - - public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, @SuppressWarnings("unused") final serverObjects post, final serverSwitch env) { - - final serverObjects prop = new serverObjects(); - final Switchboard sb = (Switchboard) env; - UserDB.Entry entry; - - if (sb.userDB == null) { - prop.put("userlist", 0); - return prop; - } - - //Generate Userlist - final Iterator it = sb.userDB.iterator(true); - int numUsers = 0; - while (it.hasNext()) { - entry = it.next(); - if (entry == null) { - continue; - } - prop.putHTML("userlist_" + numUsers + "_username", entry.getUserName()); - prop.putHTML("userlist_" + numUsers + "_lastname", entry.getLastName()); - prop.putHTML("userlist_" + numUsers + "_firstname", entry.getFirstName()); - prop.putHTML("userlist_" + numUsers + "_address", entry.getAddress()); - if (entry.getLastAccess() != null) { - prop.put("userlist_" + numUsers + "_lastaccess", - GenericFormatter.formatSafely(entry.getLastAccess(), GenericFormatter.FORMAT_SIMPLE)); - } else { - prop.put("userlist_" + numUsers + "_lastaccess", "never"); - } - - final AccessRight[] rights = AccessRight.values(); - String rightStr = ""; - for (final AccessRight right : rights) { - if (entry.hasRight(right)) { - if (rightStr.isEmpty()) { - rightStr = right.getFriendlyName(); - } else { - rightStr += ", " + right.getFriendlyName(); - } - } - } - prop.putHTML("userlist_" + numUsers + "_rights", rightStr); - - long percent; - if (entry.getTrafficLimit() != null) { - final long limit = entry.getTrafficLimit(); - final long used = entry.getTrafficSize(); - percent = used * 100 / limit; - prop.put("userlist_" + numUsers + "_time", percent); - } else { - prop.put("userlist_" + numUsers + "_time", ""); - } - - percent = -1; - if (entry.getTimeLimit() > 0) { - final long limit = entry.getTimeLimit(); - final long used = entry.getTimeUsed(); - percent = used * 100 / limit; - prop.put("userlist_" + numUsers + "_traffic", percent); - } else { - prop.put("userlist_" + numUsers + "_traffic", ""); - } - - - numUsers++; - } - prop.put("userlist", numUsers); - - // return rewrite properties - return prop; - } -} diff --git a/source/net/yacy/htroot/ConfigAccounts_p.java b/source/net/yacy/htroot/ConfigAccounts_p.java index c2c75b394..4ca771794 100644 --- a/source/net/yacy/htroot/ConfigAccounts_p.java +++ b/source/net/yacy/htroot/ConfigAccounts_p.java @@ -31,16 +31,8 @@ package net.yacy.htroot; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.TransactionManager; -import net.yacy.data.UserDB; -import net.yacy.data.UserDB.AccessRight; +import net.yacy.cora.protocol.RequestHeader; +import net.yacy.data.TransactionManager; import net.yacy.http.YaCyHttpServer; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; @@ -60,245 +52,53 @@ public class ConfigAccounts_p { } catch (IllegalArgumentException e) { sb.log.fine("access by unauthorized or unknown user: no transaction token delivered"); } - UserDB.Entry entry = null; - - // admin password - boolean localhostAccess = sb.getConfigBool(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, false); - - if (post != null && post.containsKey("setAccess")) { - TransactionManager.checkPostTransaction(header, post); - sb.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES, post.getBoolean(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES)); - } - - if (post != null && post.containsKey("setAdmin")) { - TransactionManager.checkPostTransaction(header, post); - localhostAccess = post.get("access", "").equals("localhost"); - final String user = post.get("adminuser", ""); - final String pw1 = post.get("adminpw1", ""); - final String pw2 = post.get("adminpw2", ""); - int inputerror=0; - // may be overwritten if new password is given - if (user.length() > 0 && pw1.equals(pw2)) { - final String oldusername = env.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME,user); - // check passed. set account: - // old: // env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, Digest.encodeMD5Hex(Base64Order.standardCoder.encodeString(user + ":" + pw1))); - env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, sb.encodeDigestAuth(user, pw1)); - env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME,user); - // make sure server accepts new credentials - final YaCyHttpServer jhttpserver = sb.getHttpServer(); - if (!user.equals(oldusername)) jhttpserver.removeUser(oldusername); - jhttpserver.resetUser(user); - } else { - if (!localhostAccess) { - if (user.isEmpty()) { - inputerror = 3; - } else { - inputerror = 2; // password match error - } - prop.put("error", inputerror); - } - } - - if (inputerror == 0) { - if (localhostAccess) { - sb.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, true); - } else { - sb.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, false); - if (env.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, "").startsWith("0000")) { - // make shure that the user can still use the interface after a random password was set - env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, ""); - } - } - } - } + // Page protection policy + if (post != null && post.containsKey("setAccess")) { + TransactionManager.checkPostTransaction(header, post); + sb.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES, post.getBoolean(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES)); + } + + // Unauthenticated administrator access for eligible localhost requests + if (post != null && post.containsKey("setLocalhostAccess")) { + TransactionManager.checkPostTransaction(header, post); + sb.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, post.getBoolean(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST)); + } + + // Built-in administrator credentials + if (post != null && post.containsKey("setAdmin")) { + TransactionManager.checkPostTransaction(header, post); + final String user = post.get("adminuser", ""); + final String pw1 = post.get("adminpw1", ""); + final String pw2 = post.get("adminpw2", ""); + int inputerror = 0; + if (user.isEmpty()) { + inputerror = 3; + } else if (pw1.isEmpty()) { + inputerror = 4; + } else if (!pw1.equals(pw2)) { + inputerror = 2; + } else { + final String oldusername = env.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, user); + env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, sb.encodeDigestAuth(user, pw1)); + env.setConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, user); + // make sure server accepts new credentials + final YaCyHttpServer jhttpserver = sb.getHttpServer(); + if (!user.equals(oldusername)) jhttpserver.removeUser(oldusername); + jhttpserver.resetUser(user); + } + prop.put("error", inputerror); + } // set a warning in case that the default password was not changed - String currpw = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, ""); - String dfltpw = SwitchboardConstants.ADMIN_ACCOUNT_B64MD5_DEFAULT; - prop.put("changedfltpw", currpw.equals(dfltpw) ? "1" : "0"); - - prop.put(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES + ".checked", sb.getConfigBool(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES, false) ? 1 : 0); - prop.put("localhost.checked", (localhostAccess) ? 1 : 0); - prop.put("account.checked", (localhostAccess) ? 0 : 1); - prop.put("statusPassword", localhostAccess ? "0" : "1"); - prop.put("defaultUser", env.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin")); - - //default values - prop.put("current_user", "newuser"); - prop.put("username", ""); - prop.put("firstname", ""); - prop.put("lastname", ""); - prop.put("address", ""); - prop.put("timelimit", ""); - prop.put("timeused", ""); - - final AccessRight[] rights = AccessRight.values(); - int c = 0; - for (final AccessRight right : rights) { - prop.put("rights_" + c + "_name", right.toString()); - prop.put("rights_" + c +"_friendlyName", right.getFriendlyName()); - prop.put("rights_" + c + "_set", "0"); - c++; - } - prop.put("rights", c); - - prop.put("users", "0"); - - if (sb.userDB == null) { - return prop; - } - - if (post == null) { - //do nothing - - //user != current_user - //user=from userlist - //current_user = edited user - } else if (post.containsKey("user") && !"newuser".equals(post.get("user"))) { - TransactionManager.checkPostTransaction(header, post); - if (post.containsKey("change_user")) { - //defaults for newuser are set above - entry = sb.userDB.getEntry(post.get("user")); - // program crashes if a submit with empty username was made on previous mask and the user clicked on the - // link: "If you want to manage more Users, return to the user page." (parameter "user" is empty) - if (entry != null) { - //TODO: set username read-only in html - prop.putHTML("current_user", post.get("user")); - prop.putHTML("username", post.get("user")); - prop.putHTML("firstname", entry.getFirstName()); - prop.putHTML("lastname", entry.getLastName()); - prop.putHTML("address", entry.getAddress()); - prop.put("timelimit", entry.getTimeLimit()); - prop.put("timeused", entry.getTimeUsed()); - int count = 0; - for (final AccessRight right : rights){ - prop.put("rights_" + count + "_set", entry.hasRight(right) ? "1" : "0"); - count++; - } - prop.put("rights", count); - } - } else if (post.containsKey("delete_user") && !"newuser".equals(post.get("user"))){ - sb.userDB.removeEntry(post.get("user")); - } - } else if (post.containsKey("change")) { //New User / edit User - TransactionManager.checkPostTransaction(header, post); - prop.put("text", "0"); - prop.put("error", "0"); - - final String username = post.get("username"); - final String pw1 = post.get("password"); - final String pw2 = post.get("password2"); - - if (pw1 == null || !pw1.equals(pw2)) { - prop.put("error", "2"); //PW does not match - return prop; - } - // do not allow same username as staticadmin - if (username.equalsIgnoreCase(sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME,"admin"))) { - prop.put("error", "4"); - return prop; - } - final String firstName = post.get("firstname"); - final String lastName = post.get("lastname"); - final String address = post.get("address"); - final String timeLimit = post.get("timelimit"); - final String timeUsed = post.get("timeused"); - final Map rightsSet = new EnumMap(AccessRight.class); - - for(final AccessRight right : rights) { - rightsSet.put(right, post.containsKey(right.toString()) && "on".equals(post.get(right.toString())) ? "true" : "false"); - } - - final Map mem = new HashMap(); - if( "newuser".equals(post.get("current_user"))){ //new user - - if (!"".equals(pw1)) { //change only if set - // MD5 according to HTTP Digest RFC 2617 (3.2.2) name:realm:pwd (use seed.hash as realm) - // with prefix of encoding method (supported MD5: ) - mem.put(UserDB.Entry.MD5ENCODED_USERPWD_STRING, sb.encodeDigestAuth(username, pw1)); - } - - mem.put(UserDB.Entry.USER_FIRSTNAME, firstName); - mem.put(UserDB.Entry.USER_LASTNAME, lastName); - mem.put(UserDB.Entry.USER_ADDRESS, address); - mem.put(UserDB.Entry.TIME_LIMIT, timeLimit); - mem.put(UserDB.Entry.TIME_USED, timeUsed); - - for (final AccessRight right : rights) { - mem.put(right.toString(), rightsSet.get(right)); - } - - try { - entry = sb.userDB.createEntry(username, mem); - sb.userDB.addEntry(entry); - prop.putHTML("text_username", username); - prop.put("text", "1"); - } catch (final IllegalArgumentException e) { - prop.put("error", "3"); - } - - } else { //edit user - - entry = sb.userDB.getEntry(username); - - if (entry != null) { - try{ - // with prefix of encoding method (supported MD5: ) - entry.setProperty(UserDB.Entry.MD5ENCODED_USERPWD_STRING, sb.encodeDigestAuth(username, pw1)); - entry.setProperty(UserDB.Entry.USER_FIRSTNAME, firstName); - entry.setProperty(UserDB.Entry.USER_LASTNAME, lastName); - entry.setProperty(UserDB.Entry.USER_ADDRESS, address); - entry.setProperty(UserDB.Entry.TIME_LIMIT, timeLimit); - entry.setProperty(UserDB.Entry.TIME_USED, timeUsed); - - for(final AccessRight right : rights) { - entry.setProperty(right.toString(), rightsSet.get(right)); - } - - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - - } else { - prop.put("error", "1"); - } - prop.putHTML("text_username", username); - prop.put("text", "2"); - }//edit user - - prop.putHTML("username", username); - if (entry != null) { - //TODO: set username read-only in html - prop.putHTML("current_user", entry.getUserName()); - prop.putHTML("username", entry.getUserName()); - prop.putHTML("firstname", entry.getFirstName()); - prop.putHTML("lastname", entry.getLastName()); - prop.putHTML("address", entry.getAddress()); - prop.put("timelimit", entry.getTimeLimit()); - prop.put("timeused", entry.getTimeUsed()); - int count = 0; - for (final AccessRight right : rights) { - prop.put("rights_" + count + "_set", entry.hasRight(right) ? "1" : "0"); - count++; - } - prop.put("rights", count); - } - } - - //Generate Userlist - final Iterator it = sb.userDB.iterator(true); - int numUsers=0; - while (it.hasNext()) { - entry = it.next(); - if (entry == null) { - continue; - } - prop.putHTML("users_"+numUsers+"_user", entry.getUserName()); - numUsers++; - } - prop.put("users", numUsers); - - // return rewrite properties + final String currpw = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, ""); + final String dfltpw = SwitchboardConstants.ADMIN_ACCOUNT_B64MD5_DEFAULT; + prop.put("changedfltpw", currpw.equals(dfltpw) ? "1" : "0"); + + prop.put(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES + ".checked", sb.getConfigBool(SwitchboardConstants.ADMIN_ACCOUNT_All_PAGES, false) ? 1 : 0); + prop.put(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST + ".checked", sb.getConfigBool(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, false) ? 1 : 0); + prop.putHTML("defaultUser", env.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin")); + + // return rewrite properties return prop; } } diff --git a/source/net/yacy/htroot/ConfigRobotsTxt_p.java b/source/net/yacy/htroot/ConfigRobotsTxt_p.java index eb559f6fd..62c871bb5 100644 --- a/source/net/yacy/htroot/ConfigRobotsTxt_p.java +++ b/source/net/yacy/htroot/ConfigRobotsTxt_p.java @@ -52,7 +52,6 @@ public class ConfigRobotsTxt_p { if (post != null) { if (post.containsKey("save")) { rbc.setAllDisallowed(post.containsKey(RobotsTxtConfig.ALL)); - rbc.setBlogDisallowed(post.containsKey(RobotsTxtConfig.BLOG)); rbc.setBookmarksDisallowed(post.containsKey(RobotsTxtConfig.BOOKMARKS)); rbc.setDirsDisallowed(post.containsKey(RobotsTxtConfig.DIRS)); rbc.setFileshareDisallowed(post.containsKey(RobotsTxtConfig.FILESHARE)); @@ -62,14 +61,12 @@ public class ConfigRobotsTxt_p { rbc.setNewsDisallowed(post.containsKey(RobotsTxtConfig.NEWS)); rbc.setStatusDisallowed(post.containsKey(RobotsTxtConfig.STATUS)); rbc.setSurftipsDisallowed(post.containsKey(RobotsTxtConfig.SURFTIPS)); - rbc.setWikiDisallowed(post.containsKey(RobotsTxtConfig.WIKI)); rbc.setProfileDisallowed(post.containsKey(RobotsTxtConfig.PROFILE)); env.setConfig(SwitchboardConstants.ROBOTS_TXT, rbc.toString()); } } prop.put(RobotsTxtConfig.ALL + ".checked", (rbc.isAllDisallowed()) ? "1" : "0"); - prop.put(RobotsTxtConfig.BLOG + ".checked", (rbc.isBlogDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.BOOKMARKS + ".checked", (rbc.isBookmarksDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.DIRS + ".checked", (rbc.isDirsDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.FILESHARE + ".checked", (rbc.isFileshareDisallowed()) ? "1" : "0"); @@ -79,7 +76,6 @@ public class ConfigRobotsTxt_p { prop.put(RobotsTxtConfig.NEWS + ".checked", (rbc.isNewsDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.STATUS + ".checked", (rbc.isStatusDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.SURFTIPS + ".checked", (rbc.isSurftipsDisallowed()) ? "1" : "0"); - prop.put(RobotsTxtConfig.WIKI + ".checked", (rbc.isWikiDisallowed()) ? "1" : "0"); prop.put(RobotsTxtConfig.PROFILE + ".checked", (rbc.isProfileDisallowed()) ? "1" : "0"); return prop; } diff --git a/source/net/yacy/htroot/ConfigUser_p.java b/source/net/yacy/htroot/ConfigUser_p.java deleted file mode 100644 index 9a5360662..000000000 --- a/source/net/yacy/htroot/ConfigUser_p.java +++ /dev/null @@ -1,175 +0,0 @@ -// ConfigUser_p.java -// ----------------------- -// (c) 2017 by reger24; https://github.com/reger24 -// -// This is a part of YaCy, a peer-to-peer based web search engine -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -package net.yacy.htroot; - -import java.util.EnumMap; -import java.util.Map; - -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.UserDB; -import net.yacy.data.UserDB.AccessRight; -import net.yacy.http.YaCyHttpServer; -import net.yacy.search.Switchboard; -import net.yacy.search.SwitchboardConstants; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - -public class ConfigUser_p { - - public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, final serverObjects post, final serverSwitch env) { - - final serverObjects prop = new serverObjects(); - final Switchboard sb = (Switchboard) env; - - if (post != null && post.containsKey("cancel")) { - prop.put(serverObjects.ACTION_LOCATION, "ConfigAccountList_p.html"); - return prop; - } - - //default values - prop.put("current_user", "newuser"); - prop.put("username", ""); - prop.put("firstname", ""); - prop.put("lastname", ""); - prop.put("address", ""); - prop.put("timelimit", ""); - prop.put("timeused", ""); - - final AccessRight[] rights = AccessRight.values(); - int c = 0; - for (final AccessRight right : rights) { - prop.put("rights_" + c + "_name", right.toString()); - prop.put("rights_" + c + "_friendlyName", right.getFriendlyName()); - prop.put("rights_" + c + "_set", "0"); - c++; - } - prop.put("rights", c); - - prop.put("users", "0"); - - if (sb.userDB == null) { - return prop; - } - - if (post == null) { - //do nothing - } else if (post.containsKey("user") && !"newuser".equals(post.get("user"))) { - - final UserDB.Entry entry = sb.userDB.getEntry(post.get("user")); - if (entry != null) { - //TODO: set username read-only in html - prop.putHTML("current_user", entry.getUserName()); - prop.putHTML("username", entry.getUserName()); - prop.putHTML("firstname", entry.getFirstName()); - prop.putHTML("lastname", entry.getLastName()); - prop.putHTML("address", entry.getAddress()); - prop.put("timelimit", entry.getTimeLimit()); - prop.put("timeused", entry.getTimeUsed()); - int count = 0; - for (final AccessRight right : rights) { - prop.put("rights_" + count + "_set", entry.hasRight(right) ? "1" : "0"); - count++; - } - prop.put("rights", count); - } - } else if (post.containsKey("change")) { // edit User - prop.put("text", "0"); - prop.put("error", "0"); - - final String username = post.get("username"); - final String pw1 = post.get("password"); - final String pw2 = post.get("password2"); - - if (pw1 == null || !pw1.equals(pw2)) { - prop.put("error", "2"); //PW does not match - return prop; - } - // do not allow same username as staticadmin - if (username.equalsIgnoreCase(sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"))) { - prop.put("error", "4"); - return prop; - } - final String firstName = post.get("firstname"); - final String lastName = post.get("lastname"); - final String address = post.get("address"); - final String timeLimit = post.get("timelimit"); - final String timeUsed = post.get("timeused"); - final Map rightsSet = new EnumMap(AccessRight.class); - - for (final AccessRight right : rights) { - rightsSet.put(right, post.containsKey(right.toString()) && "on".equals(post.get(right.toString())) ? "true" : "false"); - } - - final UserDB.Entry entry = sb.userDB.getEntry(username); - - if (entry != null) { - try { - // with prefix of encoding method (supported MD5: ) - entry.setProperty(UserDB.Entry.MD5ENCODED_USERPWD_STRING, sb.encodeDigestAuth(username, pw1)); - entry.setProperty(UserDB.Entry.USER_FIRSTNAME, firstName); - entry.setProperty(UserDB.Entry.USER_LASTNAME, lastName); - entry.setProperty(UserDB.Entry.USER_ADDRESS, address); - entry.setProperty(UserDB.Entry.TIME_LIMIT, timeLimit); - entry.setProperty(UserDB.Entry.TIME_USED, timeUsed); - - for (final AccessRight right : rights) { - entry.setProperty(right.toString(), rightsSet.get(right)); - } - - //TODO: set username read-only in html - prop.putHTML("current_user", entry.getUserName()); - prop.putHTML("username", entry.getUserName()); - prop.putHTML("firstname", entry.getFirstName()); - prop.putHTML("lastname", entry.getLastName()); - prop.putHTML("address", entry.getAddress()); - prop.put("timelimit", entry.getTimeLimit()); - prop.put("timeused", entry.getTimeUsed()); - int count = 0; - for (final AccessRight right : rights) { - prop.put("rights_" + count + "_set", entry.hasRight(right) ? "1" : "0"); - count++; - } - prop.put("rights", count); - - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - final YaCyHttpServer jhttpserver = sb.getHttpServer(); - jhttpserver.resetUser(entry.getUserName()); - } else { - prop.put("error", "1"); - } - prop.putHTML("text_username", username); - prop.put("text", "2"); - - prop.putHTML("username", username); - } else if (post.containsKey("delete")) { - sb.userDB.removeEntry(post.get("username")); - final YaCyHttpServer jhttpserver = sb.getHttpServer(); - jhttpserver.removeUser(post.get("username")); - prop.put(serverObjects.ACTION_LOCATION, "ConfigAccountList_p.html"); // jump back to user list - } - - // return rewrite properties - return prop; - } -} diff --git a/source/net/yacy/htroot/Network.java b/source/net/yacy/htroot/Network.java index a2cb5af59..f98f9cf14 100644 --- a/source/net/yacy/htroot/Network.java +++ b/source/net/yacy/htroot/Network.java @@ -303,8 +303,6 @@ public class Network { // find updated Information using YaCyNews final HashSet updatedProfile = new HashSet<>(); - final HashMap> updatedWiki = new HashMap<>(); - final HashMap> updatedBlog = new HashMap<>(); final HashMap isCrawling = new HashMap<>(); NewsDB.Record record; final Iterator recordIterator = sb.peers.newsPool.recordIterator(NewsPool.INCOMING_DB); @@ -314,11 +312,7 @@ public class Network { continue; } else if (record.category().equals(NewsPool.CATEGORY_PROFILE_UPDATE)) { updatedProfile.add(record.originator()); - } else if (record.category().equals(NewsPool.CATEGORY_WIKI_UPDATE)) { - updatedWiki.put(record.originator(), record.attributes()); - } else if (record.category().equals(NewsPool.CATEGORY_BLOG_ADD)) { - updatedBlog.put(record.originator(), record.attributes()); - } else if (record.category().equals(NewsPool.CATEGORY_CRAWL_START)) { + } else if (record.category().equals(NewsPool.CATEGORY_CRAWL_START)) { isCrawling.put(record.originator(), record.attributes().get("startURL")); } } @@ -340,8 +334,6 @@ public class Network { default: break; } String startURL; - Map wikiMap; - Map blogMap; String userAgent, location; int PPM; double QPM; @@ -382,8 +374,6 @@ public class Network { continue; } prop.put(STR_TABLE_LIST + conCount + "_updatedProfile", 0); - prop.put(STR_TABLE_LIST + conCount + "_updatedWikiPage", 0); - prop.put(STR_TABLE_LIST + conCount + "_updatedBlog", 0); prop.put(STR_TABLE_LIST + conCount + "_isCrawling", 0); final String ip = ips.iterator().next(); if (conCount >= maxCount) { break; } @@ -396,21 +386,6 @@ public class Network { prop.put(STR_TABLE_LIST + conCount + "_updatedProfile", 1); prop.put(STR_TABLE_LIST + conCount + "_updatedProfile_hash", seed.hash); } - if ((wikiMap = updatedWiki.get(seed.hash)) == null) { - prop.put(STR_TABLE_LIST + conCount + "_updatedWiki", 0); - } else { - prop.put(STR_TABLE_LIST + conCount + "_updatedWiki", 1); - prop.putHTML(STR_TABLE_LIST + conCount + "_updatedWiki_page", wikiMap.get("page")); - prop.put(STR_TABLE_LIST + conCount + "_updatedWiki_address", seed.getPublicAddress(ip)); - } - if ((blogMap = updatedBlog.get(seed.hash)) == null) { - prop.put(STR_TABLE_LIST + conCount + "_updatedBlog", 0); - } else { - prop.put(STR_TABLE_LIST + conCount + "_updatedBlog", 1); - prop.putHTML(STR_TABLE_LIST + conCount + "_updatedBlog_page", blogMap.get("page")); - prop.putHTML(STR_TABLE_LIST + conCount + "_updatedBlog_subject", blogMap.get("subject")); - prop.put(STR_TABLE_LIST + conCount + "_updatedBlog_address", seed.getPublicAddress(ip)); - } PPM = seed.getPPM(); QPM = seed.getQPM(); if (((startURL = isCrawling.get(seed.hash)) != null) && (PPM >= 4)) { @@ -559,4 +534,4 @@ public class Network { return prop; } -} \ No newline at end of file +} diff --git a/source/net/yacy/htroot/News.java b/source/net/yacy/htroot/News.java index 296e75cb0..90cc624b7 100644 --- a/source/net/yacy/htroot/News.java +++ b/source/net/yacy/htroot/News.java @@ -160,33 +160,7 @@ public class News { link = record.attribute("url", ""); title = record.attribute("title", ""); description = record.attribute("url", ""); - } else if (category.equals(NewsPool.CATEGORY_WIKI_UPDATE)) { - if(seed == null) { - link = ""; - } else { - final Set ips = seed.getIPs(); - if(!ips.isEmpty()) { - link = "http://" + seed.getPublicAddress(ips.iterator().next()) + "/Wiki.html?page=" + record.attribute("page", ""); - } else { - link = ""; - } - } - title = record.attribute("author", "Anonymous") + ": " + record.attribute("page", ""); - description = "Wiki Update: " + record.attribute("description", ""); - } else if (category.equals(NewsPool.CATEGORY_BLOG_ADD)) { - if(seed == null) { - link = ""; - } else { - final Set ips = seed.getIPs(); - if(!ips.isEmpty()) { - link = "http://" + seed.getPublicAddress(ips.iterator().next()) + "/Blog.html?page=" + record.attribute("page", ""); - } else { - link = ""; - } - } - title = record.attribute("author", "Anonymous") + ": " + record.attribute("page", ""); - description = "Blog Entry: " + record.attribute("subject", ""); - } else { + } else { link = ""; title = ""; description = ""; diff --git a/source/net/yacy/htroot/SettingsAck_p.java b/source/net/yacy/htroot/SettingsAck_p.java index 735372552..e53d833d5 100644 --- a/source/net/yacy/htroot/SettingsAck_p.java +++ b/source/net/yacy/htroot/SettingsAck_p.java @@ -100,8 +100,8 @@ public class SettingsAck_p { } - // proxy password - if (post.containsKey("proxyaccount")) { + // proxy client access filter + if (post.containsKey("proxyaccess")) { // set backlink prop.put("needsRestart_referer", "Settings_p.html?page=ProxyAccess"); @@ -112,14 +112,8 @@ public class SettingsAck_p { prop.put("info_restart", "0"); // read and process data - String filter = (post.get("proxyfilter")).trim(); - final boolean useProxyAccounts = post.containsKey("use_proxyaccounts") && post.get("use_proxyaccounts").equals("on"); + String filter = post.get("proxyfilter", "").trim(); // do checks - if (filter == null) { - prop.put("info", "1");//error with submitted information - return prop; - } - if (filter.isEmpty()) filter = "*"; else if (!filter.equals("*")){ // testing proxy filter @@ -142,17 +136,10 @@ public class SettingsAck_p { } } - // check passed. set account: + // check passed: store the allowed proxy clients env.setConfig("proxyClient", filter); - env.setConfig("use_proxyAccounts", useProxyAccounts); - if (!useProxyAccounts){ - prop.put("info", "6");//proxy account has changed(no pw) - prop.putHTML("info_filter", filter); - } else { - prop.put("info", "7");//proxy account has changed - //prop.put("info_user", user); - prop.putHTML("info_filter", filter); - } + prop.put("info", "6"); + prop.putHTML("info_filter", filter); return prop; } diff --git a/source/net/yacy/htroot/Settings_p.java b/source/net/yacy/htroot/Settings_p.java index fc08514e6..f5afd08e2 100644 --- a/source/net/yacy/htroot/Settings_p.java +++ b/source/net/yacy/htroot/Settings_p.java @@ -122,21 +122,6 @@ public final class Settings_p { // proxy access filter prop.putHTML("proxyfilter", env.getConfig("proxyClient", "*")); - // proxy password - if (!env.getConfigBool("use_proxyAccounts", false)) { - // no password has been specified - prop.put("use_proxyAccounts", "0"); //unchecked - } else { - prop.put("use_proxyAccounts", "1"); //checked - /*s = env.getConfig("proxyAccount", "proxy:void"); - pos = s.indexOf(':'); - if (pos < 0) { - prop.put("proxyuser","proxy"); - } else { - prop.put("proxyuser",s.substring(0, pos)); - }*/ - } - // Url proxy settings prop.putHTML("urlproxyfilter", env.getConfig("proxyURL.access", "127.0.0.1,0:0:0:0:0:0:0:1")); prop.putHTML("urlproxydomains", env.getConfig("proxyURL.rewriteURLs", "domainlist")); diff --git a/source/net/yacy/htroot/Surftips.java b/source/net/yacy/htroot/Surftips.java index 0f21dcd93..de31b8a3f 100644 --- a/source/net/yacy/htroot/Surftips.java +++ b/source/net/yacy/htroot/Surftips.java @@ -277,42 +277,6 @@ public class Surftips { score = 5 + timeFactor(record.created()); } - if (record.category().equals(NewsPool.CATEGORY_WIKI_UPDATE)) { - Seed seed = sb.peers.getConnected(record.originator()); - if (seed == null) seed = sb.peers.getDisconnected(record.originator()); - if (seed != null) { - final Set ips = seed.getIPs(); - if(!ips.isEmpty()) { - url = seed.getPublicURL(ips.iterator().next(), false) + "/Wiki.html?page=" + record.attribute("page", ""); - entry = rowdef.newEntry(new byte[][]{ - UTF8.getBytes(url), - UTF8.getBytes(record.attribute("author", "Anonymous") + ": " + record.attribute("page", "")), - UTF8.getBytes("Wiki Update: " + record.attribute("description", "")), - UTF8.getBytes(record.id()) - }); - score = 4 + timeFactor(record.created()); - } - } - } - - if (record.category().equals(NewsPool.CATEGORY_BLOG_ADD)) { - Seed seed = sb.peers.getConnected(record.originator()); - if (seed == null) seed = sb.peers.getDisconnected(record.originator()); - if (seed != null) { - final Set ips = seed.getIPs(); - if(!ips.isEmpty()) { - url = seed.getPublicURL(ips.iterator().next(), false) + "/Blog.html?page=" + record.attribute("page", ""); - entry = rowdef.newEntry(new byte[][]{ - UTF8.getBytes(url), - UTF8.getBytes(record.attribute("author", "Anonymous") + ": " + record.attribute("page", "")), - UTF8.getBytes("Blog Entry: " + record.attribute("subject", "")), - UTF8.getBytes(record.id()) - }); - score = 4 + timeFactor(record.created()); - } - } - } - // add/subtract votes and write record if (entry != null) { try { diff --git a/source/net/yacy/htroot/TransNews_p.java b/source/net/yacy/htroot/TransNews_p.java deleted file mode 100644 index 5883bec07..000000000 --- a/source/net/yacy/htroot/TransNews_p.java +++ /dev/null @@ -1,326 +0,0 @@ -// TransNews_p.java -// -// This is a part of YaCy, a peer-to-peer based web search engine -// published on http://yacy.net -// -// This file is contributed by Burkhard Buelte -// -// $LastChangedDate$ -// $LastChangedRevision$ -// $LastChangedBy$ -// -// LICENSE -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -package net.yacy.htroot; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.sorting.ConcurrentScoreMap; -import net.yacy.cora.sorting.ScoreMap; -import net.yacy.cora.util.SpaceExceededException; -import net.yacy.peers.NewsDB; -import net.yacy.peers.NewsPool; -import net.yacy.search.Switchboard; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; -import net.yacy.utils.crypt; -import net.yacy.utils.translation.TranslationManager; - -public class TransNews_p { - - public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, final serverObjects post, final serverSwitch env) { - final Switchboard sb = (Switchboard) env; - final serverObjects prop = new serverObjects(); - - final String currentlang = sb.getConfig("locale.language", "default"); - prop.put("currentlang", currentlang); - - if ("default".equals(currentlang) || "browser".equals(currentlang)) { - prop.put("errmsg", 1); // msg: activate diff lng - prop.put("transsize", 0); - return prop; - } - prop.put("errmsg", 0); - - TranslationManager transMgr = new TranslationManager(); - final File locallangFile = transMgr.getScratchFile(new File(currentlang + ".lng")); - final Map> localTrans = transMgr.loadTranslationsLists(locallangFile); - // calculate size of local translations list - int size = 0; - for (final Map lst : localTrans.values()) { - size += lst.size(); - } - prop.put("transsize", size); - - - // read voting - if ((post != null) && post.containsKey("publishtranslation")) { - final Iterator filenameit = localTrans.keySet().iterator(); - int msgcounter = 0; - while (filenameit.hasNext()) { - final String file = filenameit.next(); - final Map tmptrans = localTrans.get(file); - for (final String sourcetxt : tmptrans.keySet()) { - final String targettxt = tmptrans.get(sourcetxt); - if (targettxt != null && !targettxt.isEmpty()) { - boolean sendit = true; - // check if already published (in newsPool) - final Iterator it = sb.peers.newsPool.recordIterator(NewsPool.INCOMING_DB); - while (it.hasNext()) { - final NewsDB.Record rtmp = it.next(); - if (rtmp == null) { - continue; - } - if (NewsPool.CATEGORY_TRANSLATION_ADD.equals(rtmp.category())) { - final String tmplng = rtmp.attribute("language", null); - final String tmpfile = rtmp.attribute("file", null); - final String tmpsource = rtmp.attribute("source", null); - //String tmptarget = rtmp.attribute("target", null); - - // if news with file and source exist (maybe from other peer) - skip sending another msg (to avoid confusion) - if ((tmplng != null && tmplng.equals(currentlang)) && (tmpfile != null && tmpfile.equals(file)) - && (tmpsource != null && tmpsource.equals(sourcetxt))) { - sendit = false; - break; - } - - } - } - if (sendit) { - final HashMap map = new HashMap<>(); - map.put("language", currentlang); - map.put("file", file); - map.put("source", sourcetxt); - map.put("target", targettxt); - map.put("#", Integer.toString(msgcounter++)); - sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_TRANSLATION_ADD, map); - } - } - } - } - } - String refid; - if ((post != null) && ((refid = post.get("voteNegative", "")).length() > 0)) { - - // make new news message with voting - if (!sb.isRobinsonMode()) { - final HashMap map = new HashMap<>(); - map.put("language", currentlang); - map.put("file", crypt.simpleDecode(post.get("filename", ""))); - map.put("source", crypt.simpleDecode(post.get("source", ""))); - map.put("target", crypt.simpleDecode(post.get("target", ""))); - map.put("vote", "negative"); - map.put("refid", refid); - sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_TRANSLATION_VOTE_ADD, map); - try { - sb.peers.newsPool.moveOff(NewsPool.INCOMING_DB, refid); - } catch (IOException | SpaceExceededException ex) { - } - } - } - - if ((post != null) && ((refid = post.get("votePositive", "")).length() > 0)) { - - final String filename = post.get("filename"); - - final File lngfile = new File(sb.getAppPath("locale.source", "locales"), currentlang + ".lng"); - transMgr = new TranslationManager(lngfile); // load full language for check if entry is new (globally) - if (transMgr.addTranslation(filename, post.get("source"), post.get("target"))) { - // add to local translation extension - transMgr.addTranslation(localTrans, filename, post.get("source"), post.get("target")); - transMgr.saveAsLngFile(currentlang, locallangFile, localTrans); // save local-trans to local-file - transMgr.translateFile(filename); // ad-hoc translate file with new/added text - } // TODO: shall we post voting if translation is not new ? - - // make new news message with voting - final HashMap map = new HashMap<>(); - map.put("language", currentlang); - map.put("file", crypt.simpleDecode(filename)); - map.put("source", crypt.simpleDecode(post.get("source", ""))); - map.put("target", crypt.simpleDecode(post.get("target", ""))); - map.put("vote", "positive"); - map.put("refid", refid); - sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_TRANSLATION_VOTE_ADD, map); - try { - sb.peers.newsPool.moveOff(NewsPool.INCOMING_DB, refid); - } catch (IOException | SpaceExceededException ex) { - } - - } - - // create Translation voting list - final HashMap negativeHashes = new HashMap<>(); // a mapping from an url hash to Integer (count of votes) - final HashMap positiveHashes = new HashMap<>(); // a mapping from an url hash to Integer (count of votes) - accumulateVotes(sb, negativeHashes, positiveHashes, NewsPool.INCOMING_DB); - final ScoreMap ranking = new ConcurrentScoreMap<>(); // score cluster for url hashes - final HashMap translation = new HashMap<>(); // a mapping from an url hash to a kelondroRow.Entry with display properties - accumulateTranslations(sb, translation, ranking, negativeHashes, positiveHashes, NewsPool.INCOMING_DB); - - // read out translation-news array and create property entries - final Iterator k = ranking.keys(false); - int i = 0; - NewsDB.Record row; - String filename; - String source; - String target; - - while (k.hasNext()) { - - refid = k.next(); - if (refid == null) { - continue; - } - - row = translation.get(refid); - if (row == null) { - continue; - } - - final String lang = row.attribute("language", null); - filename = row.attribute("file", null); - source = row.attribute("source", null); - target = row.attribute("target", null); - if ((lang == null) || (filename == null) || (source == null) || (target == null)) { - continue; - } - - if (!lang.equals(currentlang)) continue; - - String existingtarget = null; //transMgr.getTranslation(filename, source); - final Map tmpMap = localTrans.get(filename); - if (tmpMap != null) { - existingtarget = tmpMap.get(source); - } - - final boolean altexist = existingtarget != null && !target.isEmpty() && !existingtarget.isEmpty() && !existingtarget.equals(target); - - prop.put("results_" + i + "_refid", refid); - prop.put("results_" + i + "_url", filename); // url to local file - prop.put("results_" + i + "_targetlanguage", lang); - prop.put("results_" + i + "_filename", filename); - prop.putHTML("results_" + i + "_source", source); - prop.putHTML("results_" + i + "_target", target); - prop.put("results_" + i + "_existing", altexist); - prop.putHTML("results_" + i + "_existing_target", existingtarget); - prop.put("results_" + i + "_score", ranking.get(refid)); - prop.put("results_" + i + "_peername", sb.peers.get(row.originator()).getName()); - i++; - - if (i >= 50) { - break; - } - } - prop.put("results", i); - - return prop; - } - - private static void accumulateVotes(final Switchboard sb, final HashMap negativeHashes, final HashMap positiveHashes, final int dbtype) { - final int maxCount = Math.min(1000, sb.peers.newsPool.size(dbtype)); - NewsDB.Record newsrecord; - final Iterator recordIterator = sb.peers.newsPool.recordIterator(dbtype); - int j = 0; - while ((recordIterator.hasNext()) && (j++ < maxCount)) { - newsrecord = recordIterator.next(); - if (newsrecord == null) { - continue; - } - - if (newsrecord.category().equals(NewsPool.CATEGORY_TRANSLATION_VOTE_ADD)) { - final String refid = newsrecord.attribute("refid", ""); - final String vote = newsrecord.attribute("vote", ""); - final int factor = ((dbtype == NewsPool.OUTGOING_DB) || (dbtype == NewsPool.PUBLISHED_DB)) ? 2 : 1; - if (vote.equals("negative")) { - final Integer i = negativeHashes.get(refid); - if (i == null) { - negativeHashes.put(refid, Integer.valueOf(factor)); - } else { - negativeHashes.put(refid, Integer.valueOf(i.intValue() + factor)); - } - } - if (vote.equals("positive")) { - final Integer i = positiveHashes.get(refid); - if (i == null) { - positiveHashes.put(refid, Integer.valueOf(factor)); - } else { - positiveHashes.put(refid, Integer.valueOf(i.intValue() + factor)); - } - } - } - } - } - - private static void accumulateTranslations( - final Switchboard sb, - final HashMap translationmsg, final ScoreMap ranking, - final HashMap negativeHashes, final HashMap positiveHashes, final int dbtype) { - final int maxCount = Math.min(1000, sb.peers.newsPool.size(dbtype)); - NewsDB.Record newsrecord; - final Iterator recordIterator = sb.peers.newsPool.recordIterator(dbtype); - int j = 0; - String refid = ""; - String targetlanguage =""; - String filename=""; - String source=""; - String target=""; - - int score = 0; - Integer vote; - - while ((recordIterator.hasNext()) && (j++ < maxCount)) { - newsrecord = recordIterator.next(); - if (newsrecord == null) { - continue; - } - - if ((newsrecord.category().equals(NewsPool.CATEGORY_TRANSLATION_ADD)) - && ((sb.peers.get(newsrecord.originator())) != null)) { - refid = newsrecord.id(); - targetlanguage = newsrecord.attribute("language", ""); - filename = newsrecord.attribute("file", ""); - source = newsrecord.attribute("source", ""); - target = newsrecord.attribute("target", ""); - if (refid.isEmpty() || targetlanguage.isEmpty() || filename.isEmpty() || source.isEmpty() || target.isEmpty()) { - continue; - } - score = 0; - } - - // add/subtract votes and write record - - if ((vote = negativeHashes.get(refid)) != null) { - score -= vote.intValue(); - } - if ((vote = positiveHashes.get(refid)) != null) { - score += vote.intValue(); - } - // consider double-entries - if (translationmsg.containsKey(refid)) { - ranking.inc(refid, score); - } else { - ranking.set(refid, score); - translationmsg.put(refid, newsrecord); - } - - } - } -} diff --git a/source/net/yacy/htroot/Translator_p.java b/source/net/yacy/htroot/Translator_p.java deleted file mode 100644 index 872dddd15..000000000 --- a/source/net/yacy/htroot/Translator_p.java +++ /dev/null @@ -1,174 +0,0 @@ - -/** - * Translator_p - * Copyright 2012 by Michael Peter Christen, mc@yacy.net, Frankfurt am Main, Germany - * First released 14.09.2011 at https://yacy.net - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program in the file lgpl21.txt - * If not, see . - */ -package net.yacy.htroot; - -import java.io.File; -import java.io.IOException; -import java.util.Iterator; -import java.util.Map; - -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.TransactionManager; -import net.yacy.search.Switchboard; -import net.yacy.search.SwitchboardConstants; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; -import net.yacy.server.servletProperties; -import net.yacy.utils.translation.TranslationManager; - -public class Translator_p { - - public static servletProperties respond(final RequestHeader requestHeader, final serverObjects post, final serverSwitch env) { - try { - final servletProperties prop = new servletProperties(); - final Switchboard sb = (Switchboard) env; - - final String langcfg = sb.getConfig("locale.language", "default"); - prop.put("targetlang", langcfg); - if ("default".equals(langcfg) || "browser".equals(langcfg)) { - prop.put("errmsg", 1); // msg: activate diff lng - return prop; - } - prop.put("errmsg", 0); - - final File localesFolder = sb.getAppPath("locale.source", "locales"); - final File lngfile = new File(localesFolder, langcfg + ".lng"); - final TranslationManager localTransMgr = new TranslationManager(/*new File ("locales","master.lng.xlf")*/); - - final File masterxlf = new File(localesFolder, "master.lng.xlf"); - if (!masterxlf.exists()) localTransMgr.createMasterTranslationLists(localesFolder, masterxlf); - final Map> origTrans = localTransMgr.joinMasterTranslationLists(masterxlf, lngfile); - final File locallngfile = localTransMgr.getScratchFile(lngfile); - final Map> localTrans = localTransMgr.loadTranslationsLists(locallngfile); // TODO: this will read file twice - int i = 0; - if (origTrans.size() > 0) { - String filename = origTrans.keySet().iterator().next(); - if (post != null && post.containsKey("sourcefile")) { - filename = post.get("sourcefile", filename); - } - - // prepare filename list for drop-down list - final Iterator filenameit = origTrans.keySet().iterator(); - final boolean filteruntranslated = post == null ? false : post.getBoolean("filteruntranslated"); - while (filenameit.hasNext()) { - final String tmp = filenameit.next(); - if (filteruntranslated) { // filter filenames with untranslated entries - final Map tmptrans = origTrans.get(tmp); - boolean hasuntrans = false; - for (final String x : tmptrans.values()) { - if (x == null || x.isEmpty()) { - hasuntrans = true; - break; - } - } - if (!hasuntrans) continue; - } - prop.put("filelist_" + i + "_filename", tmp); - prop.put("filelist_" + i + "_selected", tmp.equals(filename)); - i++; - } - prop.put("filelist", i); - - prop.add("sourcefile", filename); - final Map origTextList = origTrans.get(filename); - - i = 0; - boolean editapproved = false; // to switch already approved translation in edit mode - int textlistid = -1; - if (post != null) { - prop.put("filter.checked", filteruntranslated); // remember filter setting - textlistid = post.getInt("approve", -1); - if (post.containsKey("editapproved")) { - textlistid = post.getInt("editapproved", -1); - editapproved = true; - } - } - boolean changed = false; - for (final String sourcetext : origTextList.keySet()) { - String targettxt = origTextList.get(sourcetext); - boolean existinlocalTrans = localTrans.containsKey(filename) && localTrans.get(filename).containsKey(sourcetext); - - if (editapproved) existinlocalTrans |= (i == textlistid); // if edit of approved requested handle as/like existing in local to allow edit - - if (targettxt == null || targettxt.isEmpty() || existinlocalTrans) { - prop.put("textlist_" + i + "_filteruntranslated", true); - } else if (filteruntranslated) { - continue; - } - // handle (modified) input text - if (i == textlistid && post != null) { - /* Check this is a valid transaction */ - TransactionManager.checkPostTransaction(requestHeader, post); - - if (editapproved) { // switch already translated in edit mode by copying to local translation - // not saved here as not yet modified/approved - localTransMgr.addTranslation(localTrans, filename, sourcetext, targettxt); - } else { - String t = post.get("targettxt" + Integer.toString(textlistid)); - // correct common partial html markup (part of text identification for words also used as html parameter) - if (!t.isEmpty()) { - if (sourcetext.startsWith(">") && !t.startsWith(">")) t=">"+t; - if (sourcetext.endsWith("<") && !t.endsWith("<")) t=t+"<"; - } - targettxt = t; - // add changes to original (for display) and local (for save) - origTextList.put(sourcetext, targettxt); - changed = localTransMgr.addTranslation(localTrans, filename, sourcetext, targettxt); - } - } - prop.putHTML("textlist_" + i + "_sourcetxt", sourcetext); - prop.putHTML("textlist_" + i + "_targettxt", targettxt); - prop.put("textlist_" + i + "_tokenid", Integer.toString(i)); - prop.put("textlist_" + i + "_filteruntranslated_tokenid", Integer.toString(i)); - i++; - } - if (post != null && post.containsKey("savetranslationlist")) { - changed = true; - } - if (changed) { - /* Check this is a valid transaction */ - TransactionManager.checkPostTransaction(requestHeader, post); - - localTransMgr.saveAsLngFile(langcfg, locallngfile, localTrans); - // adhoc translate this file - // 1. get/calc the path - final String htRootPath = env.getConfig(SwitchboardConstants.HTROOT_PATH, SwitchboardConstants.HTROOT_PATH_DEFAULT); - final File sourceDir = new File(env.getAppPath(), htRootPath); - final File destDir = new File(env.getDataPath("locale.translated_html", "DATA/LOCALE/htroot"), locallngfile.getName().substring(0, locallngfile.getName().length() - 4));// cut .lng - // get absolute file by adding relative filename from translationlist - final File sourceFile = new File(sourceDir, filename); - final File destFile = new File(destDir, filename); - localTransMgr.translateFile(sourceFile, destFile, origTextList); // do the translation - } - } - - /* Acquire a transaction token for the next POST form submission */ - prop.put(TransactionManager.TRANSACTION_TOKEN_PARAM, TransactionManager.getTransactionToken(requestHeader)); - - prop.put("textlist", i); - return prop; - } catch (final IOException ex) { - ConcurrentLog.logException(ex); - } - return null; - } -} diff --git a/source/net/yacy/htroot/User.java b/source/net/yacy/htroot/User.java deleted file mode 100644 index 5c8e3f130..000000000 --- a/source/net/yacy/htroot/User.java +++ /dev/null @@ -1,177 +0,0 @@ -//User.java -//----------------------- -//part of the AnomicHTTPD caching proxy -//(C) by Michael Peter Christen; mc@yacy.net -//first published on http://www.anomic.de -//Frankfurt, Germany, 2004 -// -//This File is contributed by Alexander Schier -//last major change: 12.11.2005 -// -//This program is free software; you can redistribute it and/or modify -//it under the terms of the GNU General Public License as published by -//the Free Software Foundation; either version 2 of the License, or -//(at your option) any later version. -// -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU General Public License for more details. -// -//You should have received a copy of the GNU General Public License -//along with this program; if not, write to the Free Software -//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -//You must compile this file with -//javac -classpath .:../Classes Message.java -//if the shell's current path is HTROOT - -package net.yacy.htroot; - -import javax.servlet.ServletException; - -import net.yacy.cora.order.Base64Order; -import net.yacy.cora.order.Digest; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.cora.protocol.ResponseHeader; -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.UserDB; -import net.yacy.search.Switchboard; -import net.yacy.search.SwitchboardConstants; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; -import net.yacy.server.servletProperties; - -public class User{ - - public static servletProperties respond(final RequestHeader requestHeader, final serverObjects post, @SuppressWarnings("unused") final serverSwitch env) { - final servletProperties prop = new servletProperties(); - final Switchboard sb = Switchboard.getSwitchboard(); - UserDB.Entry entry=null; - - //default values - prop.put("logged_in", "0"); - prop.put("logged-in_limit", "0"); - prop.put("status", "0"); - prop.put("logged-in_username", ""); - prop.put("logged-in_returnto", ""); - //identified via HTTPPassword - entry=sb.userDB.proxyAuth(requestHeader); - if(entry != null){ - prop.put("logged-in_identified-by", "1"); - //try via cookie - }else{ - entry=sb.userDB.cookieAuth(requestHeader.getCookies()); - prop.put("logged-in_identified-by", "2"); - //try via ip - if(entry == null){ - final String ip = requestHeader.getRemoteAddr(); - entry = sb.userDB.ipAuth((ip != null ? ip : "xxxxxx")); - if(entry != null){ - prop.put("logged-in_identified-by", "0"); - } - } - } - - //identified via userDB - if(entry != null){ - prop.put("logged-in", "1"); - prop.put("logged-in_username", entry.getUserName()); - if(entry.getTimeLimit() > 0){ - prop.put("logged-in_limit", "1"); - final long limit=entry.getTimeLimit(); - final long used=entry.getTimeUsed(); - prop.put("logged-in_limit_timelimit", limit); - prop.put("logged-in_limit_timeused", used); - int percent=0; - if(limit!=0 && used != 0) - percent=(int)((float)used/(float)limit*100); - prop.put("logged-in_limit_percent", percent/3); - prop.put("logged-in_limit_percent2", (100-percent)/3); - } - //logged in via static Password - }else if(sb.verifyAuthentication(requestHeader)){ - prop.put("logged-in", "2"); - //identified via form-login - } else if (post != null && post.containsKey("username") && post.containsKey("password")) { - if (post.containsKey("returnto")) - prop.putHTML("logged-in_returnto", post.get("returnto")); - final String username=post.get("username"); - final String password=post.get("password"); - prop.putHTML("logged-in_username", username); - - entry = sb.userDB.passwordAuth(username, password); - boolean staticAdmin = false; - if (entry == null) { - // check for old style admin account - staticAdmin = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, "").equals( - Digest.encodeMD5Hex(Base64Order.standardCoder.encodeString(username + ":" + password))); - if (!staticAdmin) { - // check for DIGEST authentication admin account - final String realm = sb.getConfig(SwitchboardConstants.ADMIN_REALM, "YaCy"); - staticAdmin = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_B64MD5, "").equals( - "MD5:" + Digest.encodeMD5Hex(username + ":" + realm + ":" + password)); - } - } - - String cookie=""; - if(entry != null) { - //set a random token in a cookie - cookie=sb.userDB.getCookie(entry); - final ResponseHeader outgoingHeader=new ResponseHeader(200); - outgoingHeader.setCookie("login", cookie); - prop.setOutgoingHeader(outgoingHeader); - - prop.put("logged-in", "1"); - prop.put("logged-in_identified-by", "1"); - prop.putHTML("logged-in_username", username); - if(post.containsKey("returnto")){ - prop.put(serverObjects.ACTION_LOCATION, post.get("returnto")); - } - } - } - - if (post != null && entry != null) { - if (post.containsKey("changepass")) { - prop.put("status", "1"); //password - - if (entry.getMD5EncodedUserPwd().startsWith("MD5:") ? - entry.getMD5EncodedUserPwd().equals(sb.encodeDigestAuth(entry.getUserName(), post.get("oldpass", ""))) : - entry.getMD5EncodedUserPwd().equals(sb.encodeBasicAuth(entry.getUserName() , post.get("oldpass", "")))) { - if (post.get("newpass").equals(post.get("newpass2"))) { - if (!post.get("newpass", "").equals("")) { - try { - entry.setProperty(UserDB.Entry.MD5ENCODED_USERPWD_STRING, sb.encodeDigestAuth(entry.getUserName(), post.get("newpass", ""))); - prop.put("status_password", "0"); //changes - } catch (final Exception e) { - ConcurrentLog.logException(e); - } - } else { - prop.put("status_password", "3"); //empty - } - } else { - prop.put("status_password", "2"); //pws do not match - } - } else { - prop.put("status_password", "1"); //old pw wrong - } - } - } - if(post!=null && post.containsKey("logout")){ - prop.put("logged-in", "0"); - if(entry != null){ - final String ip = requestHeader.getRemoteAddr(); - entry.logout((ip != null ? ip : "xxxxxx"), UserDB.getLoginToken(requestHeader.getCookies())); - } - try { - requestHeader.logout(); // servlet container session logout - } catch (final ServletException ex) {} - if(post.containsKey("returnto")){ - prop.putHTML(serverObjects.ACTION_LOCATION, post.get("returnto")); - } - } - // return rewrite properties - return prop; - } -} diff --git a/source/net/yacy/htroot/Wiki.java b/source/net/yacy/htroot/Wiki.java deleted file mode 100644 index 22d01e274..000000000 --- a/source/net/yacy/htroot/Wiki.java +++ /dev/null @@ -1,283 +0,0 @@ -// Wiki.java -// ----------------------- -// part of the AnomicHTTPD caching proxy -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// -//$LastChangedDate$ -//$LastChangedRevision$ -//$LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -// Contains contributions from Alexander Schier [AS] -// and Marc Nause [MN] - -// You must compile this file with -// javac -classpath .:../classes Wiki.java -// if the shell's current path is HTROOT - -package net.yacy.htroot; - -import java.io.IOException; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import net.yacy.cora.date.GenericFormatter; -import net.yacy.cora.document.encoding.UTF8; -import net.yacy.cora.protocol.Domains; -import net.yacy.cora.protocol.HeaderFramework; -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.Diff; -import net.yacy.data.wiki.WikiBoard; -import net.yacy.peers.NewsPool; -import net.yacy.peers.Seed; -import net.yacy.search.Switchboard; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - -public class Wiki { - private static final String ANONYMOUS = "anonymous"; - - //private static String ListLevel = ""; - //private static String numListLevel = ""; - - public static String dateString(final Date date) { - return GenericFormatter.SIMPLE_FORMATTER.format(date); - } - - - public static serverObjects respond(final RequestHeader header, serverObjects post, final serverSwitch env) throws IOException { - final Switchboard sb = (Switchboard) env; - final serverObjects prop = new serverObjects(); - if (post == null) { - post = new serverObjects(); - post.put("page", "start"); - } - - prop.put("topmenu", sb.getConfigBool("publicTopmenu", true) ? 1 : 0); - - String access = sb.getConfig("WikiAccess", "admin"); - final String pagename = get(post, "page", "start"); - final String ip = get(post, HeaderFramework.CONNECTION_PROP_CLIENTIP, Domains.LOCALHOST); - String author = get(post, "author", ANONYMOUS); - if (author.equals(ANONYMOUS)) { - author = WikiBoard.guessAuthor(ip); - if (author == null) { - author = (sb.peers.mySeed() == null) ? ANONYMOUS : sb.peers.mySeed().get(Seed.NAME, ANONYMOUS); - } - } - - if (post != null && post.containsKey("access")) { - // only the administrator may change the access right - if (!sb.verifyAuthentication(header)) { - // check access right for admin - prop.authenticationRequired(); - return prop; - } - - access = post.get("access", "admin"); - sb.setConfig("WikiAccess", access); - } - if (access.equals("admin")) { - prop.put("mode_access", "0"); - } else if (access.equals("all")) { - prop.put("mode_access", "1"); - } - - WikiBoard.Entry page = sb.wikiDB.read(pagename); - - if (post != null && post.containsKey("submit")) { - - if ((access.equals("admin") && (!sb.verifyAuthentication(header)))) { - // check access right for admin - prop.authenticationRequired(); - return prop; - } - - // store a new page - byte[] content; - content = UTF8.getBytes(post.get("content", "")); - final WikiBoard.Entry newEntry = sb.wikiDB.newEntry(pagename, author, ip, post.get("reason", "edit"), content); - sb.wikiDB.write(newEntry); - // create a news message - final Map map = new HashMap<>(); - map.put("page", pagename); - map.put("author", author.replace(',', ' ')); - if (!sb.isRobinsonMode() && post.get("content", "").trim().length() > 0 && !Arrays.equals(page.page(), content)) { - sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_WIKI_UPDATE, map); - } - page = newEntry; - prop.putHTML(serverObjects.ACTION_LOCATION, "Wiki.html?page=" + pagename); - prop.put(serverObjects.ACTION_LOCATION, prop.get(serverObjects.ACTION_LOCATION)); - } - - if (post != null && post.containsKey("edit")) { - if ((access.equals("admin") && (!sb.verifyAuthentication(header)))) { - // check access right for admin - prop.authenticationRequired(); - return prop; - } - - prop.put("mode", "1"); //edit - prop.putHTML("mode_author", author); - prop.putHTML("mode_page-code", UTF8.String(page.page())); - prop.putHTML("mode_pagename", pagename); } - - //contributed by [MN] - else if (post != null && post.containsKey("preview")) { - // preview the page - prop.put("mode", "2");//preview - prop.putHTML("mode_pagename", pagename); - prop.putHTML("mode_author", author); - prop.put("mode_date", dateString(new Date())); - /* We do not fill hostport parameter : relative links should stay relative as it is more reliable - * when the peer is behind any kind of reverse Proxy */ - prop.putWiki("mode_page", post.get("content", "")); - prop.putHTML("mode_page-code", post.get("content", "")); - } - //end contrib of [MN] - - else if (post != null && post.containsKey("index")) { - // view an index - prop.put("mode", "3"); //Index - try { - final Iterator i = sb.wikiDB.keys(true); - int count=0; - while (i.hasNext()) { - final String subject = UTF8.String(i.next()); - final WikiBoard.Entry entry = sb.wikiDB.read(subject); - prop.putHTML("mode_pages_" + count + "_name",WikiBoard.webalize(subject)); - prop.putHTML("mode_pages_" + count + "_subject", subject); - prop.put("mode_pages_" + count + "_date", dateString(entry.date())); - prop.putHTML("mode_pages_" + count + "_author", entry.author()); - count++; - } - prop.put("mode_pages", count); - } catch (final IOException e) { - prop.put("mode_error", "1"); //IO Error reading Wiki - prop.putHTML("mode_error_message", e.getMessage()); - } - prop.putHTML("mode_pagename", pagename); - } else if (post != null && post.containsKey("diff")) { - // Diff - prop.put("mode", "4"); - prop.putHTML("mode_page", pagename); - prop.putHTML("mode_error_page", pagename); - - try { - final Iterator it = sb.wikiDB.keysBkp(true); - WikiBoard.Entry entry; - WikiBoard.Entry oentry = null; - WikiBoard.Entry nentry = null; - int count = 0; - boolean oldselected = false, newselected = false; - while (it.hasNext()) { - entry = sb.wikiDB.readBkp(UTF8.String(it.next())); - prop.put("mode_error_versions_" + count + "_date", WikiBoard.dateString(entry.date())); - prop.put("mode_error_versions_" + count + "_fdate", dateString(entry.date())); - if (WikiBoard.dateString(entry.date()).equals(post.get("old", ""))) { - prop.put("mode_error_versions_" + count + "_oldselected", "1"); - oentry = entry; - oldselected = true; - } else if (WikiBoard.dateString(entry.date()).equals(post.get("new", ""))) { - prop.put("mode_error_versions_" + count + "_newselected", "1"); - nentry = entry; - newselected = true; - } - count++; - } - count--; // don't show current version - - if (!oldselected) { // select latest old entry - prop.put("mode_error_versions_" + (count - 1) + "_oldselected", "1"); - } - if (!newselected) { // select latest new entry (== current) - prop.put("mode_error_curselected", "1"); - } - - if (count == 0) { - prop.put("mode_error", "2"); // no entries found - } else { - prop.put("mode_error_versions", count); - } - - entry = sb.wikiDB.read(pagename); - if (entry != null) { - prop.put("mode_error_curdate", WikiBoard.dateString(entry.date())); - prop.put("mode_error_curfdate", dateString(entry.date())); - } - - if (nentry == null) { - nentry = entry; - } - if (post.containsKey("compare") && oentry != null && nentry != null) { - // TODO: split into paragraphs and compare them with the same diff-algo - final Diff diff = new Diff( - UTF8.String(oentry.page()), - UTF8.String(nentry.page()), 3); - prop.put("mode_versioning_diff", net.yacy.data.Diff.toHTML(new Diff[] { diff })); - prop.put("mode_versioning", "1"); - } else if (post.containsKey("viewold") && oentry != null) { - prop.put("mode_versioning", "2"); - prop.putHTML("mode_versioning_pagename", pagename); - prop.putHTML("mode_versioning_author", oentry.author()); - prop.put("mode_versioning_date", dateString(oentry.date())); - /* We do not fill hostport parameter : relative links should stay relative as it is more reliable - * when the peer is behind any kind of reverse Proxy */ - prop.putWiki("mode_versioning_page", oentry.page()); - prop.putHTML("mode_versioning_page-code", UTF8.String(oentry.page())); - } - } catch (final IOException e) { - prop.put("mode_error", "1"); //IO Error reading Wiki - prop.putHTML("mode_error_message", e.getMessage()); - } - } - - else { - // show page - prop.put("mode", "0"); //viewing - prop.putHTML("mode_pagename", pagename); - prop.putHTML("mode_author", page.author()); - prop.put("mode_date", dateString(page.date())); - /* We do not fill hostport parameter : relative links should stay relative as it is more reliable - * when the peer is behind any kind of reverse Proxy */ - prop.putWiki("mode_page", page.page()); - - prop.put("controls", "0"); - prop.putHTML("controls_pagename", pagename); - } - - // return rewrite properties - return prop; - } - - - /** - * get key from post, use dflt if (not present or post == null) - * - * @param post - * @param string - * @param string2 - * @return - */ - private static String get(final serverObjects post, final String key, final String dflt) { - return (post == null ? dflt : post.get(key, dflt)); - } -} diff --git a/source/net/yacy/htroot/WikiCodeHelp.java b/source/net/yacy/htroot/WikiCodeHelp.java new file mode 100644 index 000000000..1ff85c139 --- /dev/null +++ b/source/net/yacy/htroot/WikiCodeHelp.java @@ -0,0 +1,44 @@ +// WikiCodeHelp.java +// ----------------------- +// part of the AnomicHTTPD caching proxy +// (C) by Michael Peter Christen; mc@yacy.net +// first published on http://www.anomic.de +// Frankfurt, Germany, 2004 +// +// $LastChangedDate$ +// $LastChangedRevision$ +// $LastChangedBy$ +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// You must compile this file with +// javac -classpath .:../classes WikiCodeHelp.java +// if the shell's current path is HTROOT + +package net.yacy.htroot; + +import net.yacy.cora.protocol.RequestHeader; +import net.yacy.server.serverObjects; +import net.yacy.server.serverSwitch; + +public class WikiCodeHelp { + + public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, @SuppressWarnings("unused") final serverObjects post, @SuppressWarnings("unused") final serverSwitch env) { + //final plasmaSwitchboard sb = (plasmaSwitchboard) env; + final serverObjects prop = new serverObjects(); + return prop; + } + +} diff --git a/source/net/yacy/htroot/WikiHelp.java b/source/net/yacy/htroot/WikiHelp.java deleted file mode 100644 index f22e4afa0..000000000 --- a/source/net/yacy/htroot/WikiHelp.java +++ /dev/null @@ -1,44 +0,0 @@ -// WikiHelp.java -// ----------------------- -// part of the AnomicHTTPD caching proxy -// (C) by Michael Peter Christen; mc@yacy.net -// first published on http://www.anomic.de -// Frankfurt, Germany, 2004 -// -// $LastChangedDate$ -// $LastChangedRevision$ -// $LastChangedBy$ -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// You must compile this file with -// javac -classpath .:../classes WikiHelp.java -// if the shell's current path is HTROOT - -package net.yacy.htroot; - -import net.yacy.cora.protocol.RequestHeader; -import net.yacy.server.serverObjects; -import net.yacy.server.serverSwitch; - -public class WikiHelp { - - public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, @SuppressWarnings("unused") final serverObjects post, @SuppressWarnings("unused") final serverSwitch env) { - //final plasmaSwitchboard sb = (plasmaSwitchboard) env; - final serverObjects prop = new serverObjects(); - return prop; - } - -} diff --git a/source/net/yacy/htroot/api/bookmarks/get_bookmarks.java b/source/net/yacy/htroot/api/bookmarks/get_bookmarks.java index 0ee2a9799..ba2c05c8b 100644 --- a/source/net/yacy/htroot/api/bookmarks/get_bookmarks.java +++ b/source/net/yacy/htroot/api/bookmarks/get_bookmarks.java @@ -10,10 +10,10 @@ import net.yacy.cora.protocol.HeaderFramework; import net.yacy.cora.protocol.RequestHeader; import net.yacy.data.BookmarkHelper; import net.yacy.data.BookmarksDB; -import net.yacy.data.UserDB; import net.yacy.document.parser.html.CharacterCoding; import net.yacy.http.servlets.YaCyDefaultServlet; import net.yacy.search.Switchboard; +import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverObjects; import net.yacy.server.serverSwitch; @@ -21,7 +21,6 @@ public class get_bookmarks { private static final serverObjects prop = new serverObjects(); private static Switchboard sb = null; - private static UserDB.Entry user = null; private static boolean isAdmin = false; private static int R = 1; // TODO: solve the recursion problem an remove global variable @@ -59,13 +58,11 @@ public class get_bookmarks { prop.clear(); sb = (Switchboard) env; - user = sb.userDB.getUser(header); - isAdmin = (sb.verifyAuthentication(header) || user != null && user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT)); + isAdmin = sb.verifyAuthentication(header); // set user name final String username; - if(user != null) username=user.getUserName(); - else if(isAdmin) username="admin"; + if(isAdmin) username=sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); else username = "unknown"; prop.putHTML("display_user", username); @@ -290,4 +287,4 @@ public class get_bookmarks { } return count; } -} \ No newline at end of file +} diff --git a/source/net/yacy/htroot/api/bookmarks/get_folders.java b/source/net/yacy/htroot/api/bookmarks/get_folders.java index 706a095bd..e03f9df09 100644 --- a/source/net/yacy/htroot/api/bookmarks/get_folders.java +++ b/source/net/yacy/htroot/api/bookmarks/get_folders.java @@ -8,9 +8,9 @@ import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.util.CommonPattern; import net.yacy.data.BookmarkHelper; import net.yacy.data.BookmarksDB; -import net.yacy.data.UserDB; import net.yacy.http.servlets.YaCyDefaultServlet; import net.yacy.search.Switchboard; +import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverObjects; import net.yacy.server.serverSwitch; @@ -18,21 +18,18 @@ public class get_folders { private static final serverObjects prop = new serverObjects(); private static Switchboard sb = null; - private static UserDB.Entry user = null; private static boolean isAdmin = false; public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { prop.clear(); sb = (Switchboard) env; - user = sb.userDB.getUser(header); - isAdmin = (sb.verifyAuthentication(header) || user != null && user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT)); - - // set user name - final String username; - if(user != null) username=user.getUserName(); - else if(isAdmin) username="admin"; - else username = "unknown"; + isAdmin = sb.verifyAuthentication(header); + + // set user name + final String username; + if(isAdmin) username=sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); + else username = "unknown"; prop.putHTML("display_user", username); // set peer address base : used in get_bookmarks.xml to render the absolute API link URL @@ -106,4 +103,4 @@ public class get_folders { // return rewrite properties return prop; } -} \ No newline at end of file +} diff --git a/source/net/yacy/htroot/api/bookmarks/posts/add_p.java b/source/net/yacy/htroot/api/bookmarks/posts/add_p.java index 755cf4953..fed4e77b7 100644 --- a/source/net/yacy/htroot/api/bookmarks/posts/add_p.java +++ b/source/net/yacy/htroot/api/bookmarks/posts/add_p.java @@ -9,9 +9,9 @@ import net.yacy.cora.protocol.RequestHeader; import net.yacy.data.BookmarkHelper; import net.yacy.data.BookmarksDB; import net.yacy.data.ListManager; -import net.yacy.data.UserDB; import net.yacy.peers.NewsPool; import net.yacy.search.Switchboard; +import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverObjects; import net.yacy.server.serverSwitch; @@ -20,19 +20,16 @@ public class add_p { private static final serverObjects prop = new serverObjects(); private static Switchboard sb = null; - private static UserDB.Entry user = null; private static boolean isAdmin = false; public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { sb = (Switchboard) env; isAdmin=sb.verifyAuthentication(header); - user = sb.userDB.getUser(header); // set user name - String username=""; - if(user != null) username=user.getUserName(); - else if(isAdmin) username="admin"; + final String username = isAdmin + ? sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin") : ""; if (post != null) { if (!isAdmin) { @@ -53,9 +50,6 @@ public class add_p { if(bookmark != null){ bookmark.setProperty(BookmarksDB.Bookmark.BOOKMARK_TITLE, title); bookmark.setProperty(BookmarksDB.Bookmark.BOOKMARK_DESCRIPTION, description); - if(user!=null){ - bookmark.setOwner(user.getUserName()); - } if("public".equals(post.get("public"))){ bookmark.setPublic(true); publishNews(url, title, description, tagsString); @@ -88,4 +82,4 @@ public class add_p { map.put("tags", tagsString.replace(',', ' ')); sb.peers.newsPool.publishMyNews(sb.peers.mySeed(), NewsPool.CATEGORY_BOOKMARK_ADD, map); } -} \ No newline at end of file +} diff --git a/source/net/yacy/htroot/index.java b/source/net/yacy/htroot/index.java index 61e4acd97..3b8ee35a4 100644 --- a/source/net/yacy/htroot/index.java +++ b/source/net/yacy/htroot/index.java @@ -33,7 +33,6 @@ package net.yacy.htroot; import net.yacy.cora.document.analysis.Classification; import net.yacy.cora.document.analysis.Classification.ContentDomain; import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.UserDB; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; import net.yacy.search.schema.CollectionSchema; @@ -55,18 +54,10 @@ public class index { } // access control - String authenticatedUserName = null; - final boolean adminAuthenticated = sb.verifyAuthentication(header); - - if(adminAuthenticated) { - authenticatedUserName = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); - } else { - final UserDB.Entry user = sb.userDB != null ? sb.userDB.getUser(header) : null; - if(user != null) { - authenticatedUserName = user.getUserName(); - } - } - final boolean authenticated = adminAuthenticated || authenticatedUserName != null; + final boolean adminAuthenticated = sb.verifyAuthentication(header); + final String authenticatedUserName = adminAuthenticated + ? sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin") : null; + final boolean authenticated = adminAuthenticated; if (post != null) { if (post.containsKey("publicPage") && !adminAuthenticated) { // Old style parameter : still in use ? prop.authenticationRequired(); diff --git a/source/net/yacy/htroot/robots.java b/source/net/yacy/htroot/robots.java index 06b82ffd3..4b477b529 100644 --- a/source/net/yacy/htroot/robots.java +++ b/source/net/yacy/htroot/robots.java @@ -27,7 +27,6 @@ public class robots { if (rbc.isAllDisallowed()) { prop.put(RobotsTxtConfig.ALL, 1); } else { - if (rbc.isBlogDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.BLOG, "1"); if (rbc.isBookmarksDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.BOOKMARKS, "1"); if (rbc.isFileshareDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.FILESHARE, "1"); if (rbc.isHomepageDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.HOMEPAGE, "1"); @@ -35,7 +34,6 @@ public class robots { if (rbc.isNewsDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.NEWS, "1"); if (rbc.isStatusDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.STATUS, "1"); if (rbc.isSurftipsDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.SURFTIPS, "1"); - if (rbc.isWikiDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.WIKI, "1"); if (rbc.isProfileDisallowed()) prop.put(RobotsTxtConfig.ALL + "_" + RobotsTxtConfig.PROFILE, "1"); if (rbc.isLockedDisallowed() || rbc.isDirsDisallowed()) { diff --git a/source/net/yacy/htroot/yacychat.java b/source/net/yacy/htroot/yacychat.java index 74c081dac..c9e7dfce4 100644 --- a/source/net/yacy/htroot/yacychat.java +++ b/source/net/yacy/htroot/yacychat.java @@ -1,8 +1,24 @@ -package net.yacy.htroot; +/** + * yacychat + * Copyright 2025 by Michael Peter Christen + * First released 23.11.2025 at https://yacy.net + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program in the file lgpl21.txt + * If not, see . + */ -import org.json.JSONException; -import org.json.JSONObject; -import org.json.JSONTokener; +package net.yacy.htroot; import net.yacy.cora.protocol.RequestHeader; import net.yacy.search.Switchboard; @@ -12,53 +28,38 @@ import net.yacy.server.serverSwitch; public class yacychat { - public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, final serverObjects post, final serverSwitch env) { - // return variable that accumulates replacements - final Switchboard sb = (Switchboard) env; - - final serverObjects prop = new serverObjects(); - String body = post == null ? "" : post.get("BODY", ""); - JSONObject bodyj = new JSONObject(); - if (body.length() > 0) { - try { - bodyj = new JSONObject(new JSONTokener(body)); - } catch (JSONException e) { - // silently catch this - } - } + public static serverObjects respond(@SuppressWarnings("unused") final RequestHeader header, final serverObjects post, final serverSwitch env) { + // return variable that accumulates replacements + final serverObjects prop = new serverObjects(); - // system prompt comes from configuration; default is empty - final String systemPrompt = sb.getConfig("ai.system-prompt", net.yacy.http.servlets.RAGProxyServlet.LLM_SYSTEM_PROMPT_DEFAULT); - // escape for safe embedding in a JS single-quoted string literal - final String systemPromptJs = systemPrompt - .replace("\\", "\\\\") - .replace("'", "\\'") - .replace("\r\n", "\\n") - .replace("\n", "\\n") - .replace("\r", "\\n"); - prop.put("system_prompt", systemPromptJs); - prop.put("topmenu", sb.getConfigBool("ai.shield.show-chat-link", false) ? (sb.getConfigBool("publicTopmenu", true) ? 1 : 0) : 2); + // system prompt comes from configuration; default is empty + final Switchboard sb = (Switchboard) env; + final String systemPrompt = sb.getConfig("ai.system-prompt", net.yacy.http.servlets.RAGProxyServlet.LLM_SYSTEM_PROMPT_DEFAULT); + // escape for safe embedding in a JS single-quoted string literal + final String systemPromptJs = systemPrompt.replace("\\", "\\\\").replace("'", "\\'").replace("\r\n", "\\n").replace("\n", "\\n").replace("\r", "\\n"); + prop.put("system_prompt", systemPromptJs); + prop.put("topmenu",sb.getConfigBool("ai.shield.show-chat-link", false) ? (sb.getConfigBool("publicTopmenu", true) ? 1 : 0) : 2); - String promoteChatPageGreeting = env.getConfig("promoteChatPageGreeting", ""); - if (env.getConfigBool(SwitchboardConstants.GREETING_NETWORK_NAME, false)) { - promoteChatPageGreeting = env.getConfig("network.unit.description", ""); - } - prop.put("promoteChatPageGreeting", promoteChatPageGreeting); - prop.put("topmenu_promoteChatPageGreeting", promoteChatPageGreeting); - prop.put(SwitchboardConstants.GREETING_HOMEPAGE, sb.getConfig(SwitchboardConstants.GREETING_HOMEPAGE, "")); - prop.put("topmenu_" + SwitchboardConstants.GREETING_HOMEPAGE, sb.getConfig(SwitchboardConstants.GREETING_HOMEPAGE, "")); - prop.put(SwitchboardConstants.GREETING_LARGE_IMAGE, sb.getConfig(SwitchboardConstants.GREETING_LARGE_IMAGE, "")); - prop.put("topmenu_" + SwitchboardConstants.GREETING_LARGE_IMAGE, sb.getConfig(SwitchboardConstants.GREETING_LARGE_IMAGE, "")); - prop.put(SwitchboardConstants.GREETING_IMAGE_ALT, sb.getConfig(SwitchboardConstants.GREETING_IMAGE_ALT, "")); - prop.put("topmenu_" + SwitchboardConstants.GREETING_IMAGE_ALT, sb.getConfig(SwitchboardConstants.GREETING_IMAGE_ALT, "")); + String promoteChatPageGreeting = env.getConfig("promoteChatPageGreeting", ""); + if (env.getConfigBool(SwitchboardConstants.GREETING_NETWORK_NAME, false)) promoteChatPageGreeting = env.getConfig("network.unit.description", ""); + + prop.put("promoteChatPageGreeting", promoteChatPageGreeting); + prop.put("topmenu_promoteChatPageGreeting", promoteChatPageGreeting); + prop.put(SwitchboardConstants.GREETING_HOMEPAGE, sb.getConfig(SwitchboardConstants.GREETING_HOMEPAGE, "")); + prop.put("topmenu_" + SwitchboardConstants.GREETING_HOMEPAGE, sb.getConfig(SwitchboardConstants.GREETING_HOMEPAGE, "")); + prop.put(SwitchboardConstants.GREETING_LARGE_IMAGE, sb.getConfig(SwitchboardConstants.GREETING_LARGE_IMAGE, "")); + prop.put("topmenu_" + SwitchboardConstants.GREETING_LARGE_IMAGE, sb.getConfig(SwitchboardConstants.GREETING_LARGE_IMAGE, "")); + prop.put(SwitchboardConstants.GREETING_IMAGE_ALT, sb.getConfig(SwitchboardConstants.GREETING_IMAGE_ALT, "")); + prop.put("topmenu_" + SwitchboardConstants.GREETING_IMAGE_ALT, sb.getConfig(SwitchboardConstants.GREETING_IMAGE_ALT, "")); - // determine if P2P mode is active (global search available) - final boolean indexReceiveGranted = sb.getConfigBool(net.yacy.search.SwitchboardConstants.INDEX_RECEIVE_ALLOW_SEARCH, true) || (sb.isRobinsonMode() && sb.getConfig(net.yacy.search.SwitchboardConstants.CLUSTER_MODE, "").equals(net.yacy.search.SwitchboardConstants.CLUSTER_MODE_PUBLIC_CLUSTER)); - final boolean p2pmode = indexReceiveGranted; - prop.put("p2p_mode", p2pmode ? 1 : 0); + // determine if P2P mode is active (global search available) + final boolean indexReceiveGranted = + sb.getConfigBool(net.yacy.search.SwitchboardConstants.INDEX_RECEIVE_ALLOW_SEARCH, true) || + (sb.isRobinsonMode() && sb.getConfig(net.yacy.search.SwitchboardConstants.CLUSTER_MODE, "").equals(net.yacy.search.SwitchboardConstants.CLUSTER_MODE_PUBLIC_CLUSTER)); + prop.put("p2p_mode", indexReceiveGranted ? 1 : 0); - // return rewrite properties - return prop; - } + // return rewrite properties + return prop; + } } diff --git a/source/net/yacy/htroot/yacysearch.java b/source/net/yacy/htroot/yacysearch.java index 05647672d..4709d4ce3 100644 --- a/source/net/yacy/htroot/yacysearch.java +++ b/source/net/yacy/htroot/yacysearch.java @@ -69,7 +69,6 @@ import net.yacy.cora.protocol.ResponseHeader; import net.yacy.cora.util.ConcurrentLog; import net.yacy.data.BookmarksDB.Bookmark; import net.yacy.data.DidYouMean; -import net.yacy.data.UserDB; import net.yacy.document.LibraryProvider; import net.yacy.document.Tokenizer; import net.yacy.http.servlets.TemplateProcessingException; @@ -111,22 +110,11 @@ public class yacysearch { final Switchboard sb = (Switchboard) env; sb.localSearchLastAccess = System.currentTimeMillis(); - String authenticatedUserName = null; final boolean adminAuthenticated = sb.verifyAuthentication(header); final boolean searchAllowed = sb.getConfigBool(SwitchboardConstants.PUBLIC_SEARCHPAGE, true) || adminAuthenticated; - - boolean extendedSearchRights = adminAuthenticated; - boolean bookmarkRights = false; - if (adminAuthenticated) { - authenticatedUserName = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); - } else { - final UserDB.Entry user = sb.userDB != null ? sb.userDB.getUser(header) : null; - if (user != null) { - extendedSearchRights = user.hasRight(UserDB.AccessRight.EXTENDED_SEARCH_RIGHT); - authenticatedUserName = user.getUserName(); - bookmarkRights = user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT); - } - } + final boolean extendedSearchRights = adminAuthenticated; + final String authenticatedUserName = adminAuthenticated + ? sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin") : null; final boolean localhostAccess = header.accessFromLocalhost(); final String promoteSearchPageGreeting = @@ -712,14 +700,14 @@ public class yacysearch { // if a bookmarks-button was hit, create new bookmark entry if (post != null && post.containsKey("bookmarkref")) { - if (!sb.verifyAuthentication(header) && !bookmarkRights) { + if (!adminAuthenticated) { prop.authenticationRequired(); return prop; } //final String bookmarkHash = post.get("bookmarkref", ""); // urlhash final String urlstr = crypt.simpleDecode(post.get("bookmarkurl")); if (urlstr != null) { - final Bookmark bmk = sb.bookmarksDB.createorgetBookmark(urlstr, "admin"); + final Bookmark bmk = sb.bookmarksDB.createorgetBookmark(urlstr, authenticatedUserName); if (bmk != null) { bmk.setProperty(Bookmark.BOOKMARK_QUERY, querystring); bmk.addTag("/search"); // add to bookmark folder diff --git a/source/net/yacy/htroot/yacysearchitem.java b/source/net/yacy/htroot/yacysearchitem.java index a85679f0a..42cbe9ede 100644 --- a/source/net/yacy/htroot/yacysearchitem.java +++ b/source/net/yacy/htroot/yacysearchitem.java @@ -55,7 +55,6 @@ import net.yacy.cora.util.Memory; import net.yacy.crawler.data.Cache; import net.yacy.crawler.retrieval.Response; import net.yacy.data.URLLicense; -import net.yacy.data.UserDB; import net.yacy.document.parser.html.IconEntry; import net.yacy.http.servlets.TemplateMissingParameterException; import net.yacy.kelondro.data.meta.URIMetadataNode; @@ -103,16 +102,13 @@ public class yacysearchitem { final String eventID = post.get("eventID", ""); final boolean adminAuthenticated = sb.verifyAuthentication(header); - final UserDB.Entry user = sb.userDB != null ? sb.userDB.getUser(header) : null; - final boolean authenticated = adminAuthenticated || user != null; - - final boolean extendedSearchRights = adminAuthenticated || (user != null && user.hasRight(UserDB.AccessRight.EXTENDED_SEARCH_RIGHT)); - //final boolean bookmarkRights = adminAuthenticated || (user != null && user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT)); + final boolean authenticated = adminAuthenticated; + final boolean extendedSearchRights = adminAuthenticated; final int item = post.getInt("item", -1); final RequestHeader.FileType fileType = header.fileType(); - if (post.containsKey("auth") && !adminAuthenticated && user == null) { + if (post.containsKey("auth") && !adminAuthenticated) { /* * Access to authentication protected features is explicitely requested here * but no authentication is provided : ask now for authentication. @@ -188,20 +184,9 @@ public class yacysearchitem { prop.put("content", 1); // switch on specific content final String urlhash = ASCII.String(result.hash()); if (adminAuthenticated) { // only needed if authorized - addAuthorizedActions(sb, prop, theSearch, resultUrlstring, resource, origQ, urlhash, null); - } else if (authenticated && user != null) { - addAuthorizedActions(sb, prop, theSearch, resultUrlstring, resource, origQ, urlhash, user); + addAuthorizedActions(sb, prop, theSearch, resultUrlstring, resource, origQ, urlhash); } else prop.put("content_authorized", "0"); // disable for not authorized user -// for testing only -// result -// if local Admin - no admin_right -// if admin authent -> admin_right = true, bookmark_right = false - if (header.isUserInRole(UserDB.AccessRight.ADMIN_RIGHT.toString())) { - if (header.isUserInRole(UserDB.AccessRight.BOOKMARK_RIGHT.toString())) { - System.out.println("booki"); - } - } prop.putHTML("content_title", result.title()); prop.putXML("content_title-xml", result.title()); prop.putJSON("content_title-json", result.title()); @@ -677,17 +662,13 @@ public class yacysearchitem { * @param resource resource scope ("local" or "global") * @param origQ origin query terms * @param urlhash URL hash of the result item - * @param user current user or null if current user is admin */ private static void addAuthorizedActions(final Switchboard sb, final serverObjects prop, final SearchEvent theSearch, final String resultUrlstring, final String resource, final String origQ, - final String urlhash, final UserDB.Entry user) { + final String urlhash) { // check if url exists in bookmarks final boolean bookmarkexists = sb.bookmarksDB.getBookmark(urlhash) != null; - if (user == null || user.hasRight(UserDB.AccessRight.BOOKMARK_RIGHT)) { - prop.put("content_authorized_bookmark", !bookmarkexists); - } else - prop.put("content_authorized_bookmark", "0"); + prop.put("content_authorized_bookmark", !bookmarkexists); /* boolean blacklistislisted = false; try { DigestURL durl = new DigestURL(resultUrlstring); @@ -722,13 +703,8 @@ public class yacysearchitem { prop.put("content_authorized_recommend_deletelink", deleteLink); prop.put("content_authorized_recommend_recommendlink", recommendLink); - if (user == null || user.hasRight(UserDB.AccessRight.ADMIN_RIGHT)) { - prop.put("content_authorized_recommend", (sb.peers.newsPool.getSpecific(NewsPool.OUTGOING_DB, NewsPool.CATEGORY_SURFTIPP_ADD, "url", resultUrlstring) == null) ? "1" : "0"); - prop.put("content_authorized_blacklist", "1"); - } else { - prop.put("content_authorized_recommend", "0"); - prop.put("content_authorized_blacklist", "0"); - } + prop.put("content_authorized_recommend", (sb.peers.newsPool.getSpecific(NewsPool.OUTGOING_DB, NewsPool.CATEGORY_SURFTIPP_ADD, "url", resultUrlstring) == null) ? "1" : "0"); + prop.put("content_authorized_blacklist", "1"); // prop.put("content_authorized_urlhash", urlhash); // not used 2022-02-09 prop.put("content_authorized", "1"); // enable authorized icons/content } diff --git a/source/net/yacy/htroot/yacysearchlatestinfo.java b/source/net/yacy/htroot/yacysearchlatestinfo.java index c62239155..04d9ef601 100644 --- a/source/net/yacy/htroot/yacysearchlatestinfo.java +++ b/source/net/yacy/htroot/yacysearchlatestinfo.java @@ -1,7 +1,6 @@ package net.yacy.htroot; import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.UserDB; import net.yacy.http.servlets.TemplateMissingParameterException; import net.yacy.cora.util.ConcurrentLog; import net.yacy.kelondro.util.Formatter; @@ -23,10 +22,7 @@ public class yacysearchlatestinfo { final serverObjects prop = new serverObjects(); final Switchboard sb = (Switchboard) env; - final boolean adminAuthenticated = sb.verifyAuthentication(header); - final UserDB.Entry user = sb.userDB != null ? sb.userDB.getUser(header) : null; - final boolean userAuthenticated = (user != null && user.hasRight(UserDB.AccessRight.EXTENDED_SEARCH_RIGHT)); - final boolean authenticated = adminAuthenticated || userAuthenticated; + final boolean authenticated = sb.verifyAuthentication(header); // find search event final String eventID = post.get("eventID", ""); diff --git a/source/net/yacy/htroot/yacysearchtrailer.java b/source/net/yacy/htroot/yacysearchtrailer.java index c3d7e67ea..5f6fe8e30 100644 --- a/source/net/yacy/htroot/yacysearchtrailer.java +++ b/source/net/yacy/htroot/yacysearchtrailer.java @@ -38,7 +38,6 @@ import net.yacy.cora.federate.yacy.CacheStrategy; import net.yacy.cora.lod.vocabulary.Tagging; import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.sorting.ScoreMap; -import net.yacy.data.UserDB; import net.yacy.document.DateDetection; import net.yacy.document.LibraryProvider; import net.yacy.http.servlets.TemplateMissingParameterException; @@ -75,9 +74,7 @@ public class yacysearchtrailer { final String eventID = post.get("eventID", ""); final boolean adminAuthenticated = sb.verifyAuthentication(header); - - final UserDB.Entry user = sb.userDB != null ? sb.userDB.getUser(header) : null; - final boolean authenticated = adminAuthenticated || user != null; + final boolean authenticated = adminAuthenticated; if (post.containsKey("auth") && !authenticated) { /* diff --git a/source/net/yacy/http/YaCyHttpServer.java b/source/net/yacy/http/YaCyHttpServer.java index 55ac5476e..f53eb7f68 100644 --- a/source/net/yacy/http/YaCyHttpServer.java +++ b/source/net/yacy/http/YaCyHttpServer.java @@ -220,8 +220,8 @@ public class YaCyHttpServer { allrequesthandlers.addHandler(new DefaultHandler()); // if not handled by other handler final YaCyLoginService loginService = new YaCyLoginService(); - // this is very important (as it is part of the user password hash) - // changes will ivalidate all current existing user-password-hashes (from userDB) + // This is part of the built-in administrator's DIGEST password hash. + // Changing it invalidates the configured administrator password hash. loginService.setName(sb.getConfig(SwitchboardConstants.ADMIN_REALM,"YaCy")); final YaCySecurityHandler securityHandler = new YaCySecurityHandler(); @@ -375,8 +375,8 @@ public class YaCyHttpServer { } /** - * forces loginservice to reload user credentials - * (used after setting new pwd in cfg file/db) + * Forces the login service to reload the built-in administrator credentials + * after they were changed in the configuration. * @param username */ public void resetUser(final String username) { @@ -390,7 +390,7 @@ public class YaCyHttpServer { } /** - * removes user from knowuser cache of loginservice + * Removes the built-in administrator from the login service cache. * @param username */ public void removeUser(final String username) { diff --git a/source/net/yacy/http/YaCyLegacyCredential.java b/source/net/yacy/http/YaCyLegacyCredential.java index 840c10630..961e5c529 100644 --- a/source/net/yacy/http/YaCyLegacyCredential.java +++ b/source/net/yacy/http/YaCyLegacyCredential.java @@ -125,20 +125,4 @@ public class YaCyLegacyCredential extends Credential { return yc; } - /** - * create Credential object from password - * - * @param username - * @param configHash encodeMD5Hex("user:realm:pwd") as stored in UserDB - * @return - */ - public static Credential getCredentialForUserDB(String username, String configHash) { - YaCyLegacyCredential yc = new YaCyLegacyCredential(); - yc.c = Credential.getCredential(configHash); // creates a MD5 hash credential - yc.foruser = username; - yc.isBase64enc = false; - yc.hash = configHash; - return yc; - } - } diff --git a/source/net/yacy/http/YaCyLoginService.java b/source/net/yacy/http/YaCyLoginService.java index 78b1e1ee9..abc5ec2c7 100644 --- a/source/net/yacy/http/YaCyLoginService.java +++ b/source/net/yacy/http/YaCyLoginService.java @@ -24,9 +24,6 @@ package net.yacy.http; -import java.util.ArrayList; -import net.yacy.data.UserDB.AccessRight; -import net.yacy.data.UserDB.Entry; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; import org.eclipse.jetty.security.AbstractLoginService; @@ -37,8 +34,8 @@ import org.eclipse.jetty.server.UserIdentity; import org.eclipse.jetty.util.security.Credential; /** - * jetty login service, provides admin and YaCy.UserDB users with role - * assignment with DIGEST auth by default Jetty uses the name of the loginSevice + * Jetty login service for YaCy's built-in administrator account. + * With DIGEST auth Jetty uses the name of the login service * as realmname (which is part of all password hashes) */ public class YaCyLoginService extends HashLoginService implements LoginService { @@ -70,7 +67,7 @@ public class YaCyLoginService extends HashLoginService implements LoginService { } /** - * Load the user from cache (of authenticated users) or from the YaCy user db + * Load the built-in administrator from the authenticated-user cache or configuration. * @param username * @return known user or null */ @@ -83,7 +80,7 @@ public class YaCyLoginService extends HashLoginService implements LoginService { AbstractLoginService.UserPrincipal theUser = super.loadUserInfo(username); // load from cache (the internal _userStore) if (theUser == null) { final Switchboard sb = Switchboard.getSwitchboard(); - String adminuser = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); + final String adminuser = sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"); Credential credential = null; String[] roles = null; if (username.equals(adminuser)) { @@ -94,22 +91,7 @@ public class YaCyLoginService extends HashLoginService implements LoginService { credential = YaCyLegacyCredential.getCredentialForAdmin(username, adminAccountBase64MD5); // TODO: YaCy user:pwd hashes should longterm likely be switched to separable username + pwd-hash entries // and/or the standard admin account username should be fix = "admin" - roles = new String[]{AccessRight.ADMIN_RIGHT.toString()}; - } else { - Entry user = sb.userDB.getEntry(username); - if (user != null && user.getMD5EncodedUserPwd() != null) { - // assigning roles from userDB - ArrayList roletmp = new ArrayList(); - for (final AccessRight right : AccessRight.values()) { - if (user.hasRight(right)) { - roletmp.add(right.toString()); - } - } - if (roletmp.size() > 0) { - roles = roletmp.toArray(new String[roletmp.size()]); - } - credential = YaCyLegacyCredential.getCredentialForUserDB(username, user.getMD5EncodedUserPwd()); - } + roles = new String[]{SwitchboardConstants.ADMIN_ACCOUNT_ROLE}; } if (credential != null) { // if credential exist, user is known, create or get info @@ -123,8 +105,8 @@ public class YaCyLoginService extends HashLoginService implements LoginService { } /** - * Delete a user from the internal cache. If user found in cache user is - * loged out before delete. + * Delete the administrator identity from the internal cache. When present, + * the identity is logged out before removal. * @param username * @return true if user deleted, if not found in user cache false */ @@ -138,4 +120,4 @@ public class YaCyLoginService extends HashLoginService implements LoginService { return false; } -} \ No newline at end of file +} diff --git a/source/net/yacy/http/YaCySecurityHandler.java b/source/net/yacy/http/YaCySecurityHandler.java index 68948a081..675b02b35 100644 --- a/source/net/yacy/http/YaCySecurityHandler.java +++ b/source/net/yacy/http/YaCySecurityHandler.java @@ -30,7 +30,6 @@ import net.yacy.cora.document.id.MultiProtocolURL; import net.yacy.cora.order.Base64Order; import net.yacy.cora.protocol.Domains; import net.yacy.cora.protocol.RequestHeader; -import net.yacy.data.UserDB.AccessRight; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverAccessTracker; @@ -104,7 +103,7 @@ public class YaCySecurityHandler extends ConstraintSecurityHandler { } RoleInfo roleinfo = new RoleInfo(); roleinfo.setChecked(true); // RoleInfo.setChecked() : in Jetty this means - marked to have any security constraint - roleinfo.addRole(AccessRight.ADMIN_RIGHT.toString()); // use AccessRights as role + roleinfo.addRole(SwitchboardConstants.ADMIN_ACCOUNT_ROLE); return roleinfo; } return super.prepareConstraintInfo(pathInContext, request); diff --git a/source/net/yacy/http/servlets/LLMAdminProxyServlet.java b/source/net/yacy/http/servlets/LLMAdminProxyServlet.java index ff4ccd0d3..1f8ffd810 100644 --- a/source/net/yacy/http/servlets/LLMAdminProxyServlet.java +++ b/source/net/yacy/http/servlets/LLMAdminProxyServlet.java @@ -47,7 +47,6 @@ import org.json.JSONTokener; import net.yacy.cora.protocol.Domains; import net.yacy.cora.util.ConcurrentLog; import net.yacy.cora.util.LogRedaction; -import net.yacy.data.UserDB; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; @@ -227,7 +226,7 @@ public class LLMAdminProxyServlet extends HttpServlet { */ private static boolean requireAdmin(final HttpServletRequest hrequest, final HttpServletResponse hresponse) throws IOException { final Switchboard sb = Switchboard.getSwitchboard(); - final String adminRole = UserDB.AccessRight.ADMIN_RIGHT.toString(); + final String adminRole = SwitchboardConstants.ADMIN_ACCOUNT_ROLE; if (sb.getConfigBool(SwitchboardConstants.ADMIN_ACCOUNT_FOR_LOCALHOST, false) && Domains.isLocalhost(hrequest.getRemoteAddr())) return true; if (hrequest.isUserInRole(adminRole)) return true; diff --git a/source/net/yacy/http/servlets/SolrSelectServlet.java b/source/net/yacy/http/servlets/SolrSelectServlet.java index 5b29b9adc..fa4e54d65 100644 --- a/source/net/yacy/http/servlets/SolrSelectServlet.java +++ b/source/net/yacy/http/servlets/SolrSelectServlet.java @@ -49,7 +49,6 @@ import net.yacy.cora.federate.solr.responsewriter.SolrjResponseWriter; import net.yacy.cora.federate.solr.responsewriter.YJsonResponseWriter; import net.yacy.cora.protocol.RequestHeader; import net.yacy.cora.util.ConcurrentLog; -import net.yacy.data.UserDB; import net.yacy.search.Switchboard; import net.yacy.search.SwitchboardConstants; import net.yacy.search.query.AccessTracker; @@ -130,7 +129,7 @@ public class SolrSelectServlet extends HttpServlet { Switchboard sb = Switchboard.getSwitchboard(); // TODO: isUserInRole needs a login to jetty container (not done automatically on admin from localhost) - boolean authenticated = hrequest.isUserInRole(UserDB.AccessRight.ADMIN_RIGHT.toString()); + boolean authenticated = hrequest.isUserInRole(SwitchboardConstants.ADMIN_ACCOUNT_ROLE); // count remote searches if this was part of a p2p search if (mmsp.getMap().containsKey("partitions")) { diff --git a/source/net/yacy/http/servlets/YaCyDefaultServlet.java b/source/net/yacy/http/servlets/YaCyDefaultServlet.java index c52cb828c..54cb227a0 100644 --- a/source/net/yacy/http/servlets/YaCyDefaultServlet.java +++ b/source/net/yacy/http/servlets/YaCyDefaultServlet.java @@ -48,8 +48,7 @@ import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.UnavailableException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; @@ -1072,13 +1071,7 @@ public class YaCyDefaultServlet extends HttpServlet { } } } - // handle login cookie - if (tmpouthdr.getCookiesEntries() != null) { - for (final Cookie c : tmpouthdr.getCookiesEntries()) { - response.addCookie(c); - } - } - } + } } else { templatePatterns = new servletProperties((serverObjects) tmp); } diff --git a/source/net/yacy/migration.java b/source/net/yacy/migration.java index 7a6207003..fef897f33 100644 --- a/source/net/yacy/migration.java +++ b/source/net/yacy/migration.java @@ -206,35 +206,8 @@ public class migration { ConcurrentLog.warn("MIGRATION", "could not delete "+ filename); } public static void migrateWorkFiles(final Switchboard sb){ - File file=new File(sb.getDataPath(), "DATA/SETTINGS/wiki.db"); + File file; File file2; - if (file.exists()) { - ConcurrentLog.info("MIGRATION", "Migrating wiki.db to "+ sb.workPath); - sb.wikiDB.close(); - file2 = new File(sb.workPath, "wiki.db"); - try { - Files.copy(file, file2); - file.delete(); - } catch (final IOException e) { - } - - file = new File(sb.getDataPath(), "DATA/SETTINGS/wiki-bkp.db"); - if (file.exists()) { - ConcurrentLog.info("MIGRATION", "Migrating wiki-bkp.db to "+ sb.workPath); - file2 = new File(sb.workPath, "wiki-bkp.db"); - try { - Files.copy(file, file2); - file.delete(); - } catch (final IOException e) {} - } - try { - sb.initWiki(); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - } - - file=new File(sb.getDataPath(), "DATA/SETTINGS/message.db"); if(file.exists()){ ConcurrentLog.info("MIGRATION", "Migrating message.db to "+ sb.workPath); diff --git a/source/net/yacy/peers/NewsPool.java b/source/net/yacy/peers/NewsPool.java index 9fdfdb8cc..4eaa947ed 100644 --- a/source/net/yacy/peers/NewsPool.java +++ b/source/net/yacy/peers/NewsPool.java @@ -182,42 +182,6 @@ public class NewsPool { */ public static final String CATEGORY_SURFTIPP_VOTE_ADD = "stippavt"; - /* ------------------------------------------------------------------------ - * WIKI related CATEGORIES - * ------------------------------------------------------------------------ */ - /** - * a wiki page was updated - */ - public static final String CATEGORY_WIKI_UPDATE = "wiki_upd"; - /** - * a wiki page das deleted - */ - private static final String CATEGORY_WIKI_DEL = "wiki_del"; - - /* ------------------------------------------------------------------------ - * BLOG related CATEGORIES - * ------------------------------------------------------------------------ */ - /** - * a blog entry was added - */ - public static final String CATEGORY_BLOG_ADD = "blog_add"; - /** - * a blog page das deleted - */ - private static final String CATEGORY_BLOG_DEL = "blog_del"; - - /* ------------------------------------------------------------------------ - * TRANSLATION related CATEGORIES - * ------------------------------------------------------------------------ */ - /** - * a translation was added - */ - public static final String CATEGORY_TRANSLATION_ADD = "transadd"; - /** - * a vote on a translation - */ - public static final String CATEGORY_TRANSLATION_VOTE_ADD = "transavt"; - /* ======================================================================== * ARRAY of valid CATEGORIES * ======================================================================== */ @@ -253,20 +217,8 @@ public class NewsPool { CATEGORY_BOOKMARK_VOTE_DEL, // SURFTIPP related CATEGORIES - CATEGORY_SURFTIPP_ADD, - CATEGORY_SURFTIPP_VOTE_ADD, - - // WIKI related CATEGORIE - CATEGORY_WIKI_UPDATE, - CATEGORY_WIKI_DEL, - - // BLOG related CATEGORIES - CATEGORY_BLOG_ADD, - CATEGORY_BLOG_DEL, - - // TRANSLATION related CATEGORIES - CATEGORY_TRANSLATION_ADD, - CATEGORY_TRANSLATION_VOTE_ADD + CATEGORY_SURFTIPP_ADD, + CATEGORY_SURFTIPP_VOTE_ADD }; private static final Set categories = new HashSet(); static { @@ -447,9 +399,7 @@ public class NewsPool { String cat = record.category(); switch (cat) { - case CATEGORY_WIKI_UPDATE: - case CATEGORY_BLOG_ADD: - case CATEGORY_PROFILE_UPDATE: + case CATEGORY_PROFILE_UPDATE: if (duration > (3L * MILLISECONDS_PER_DAY)) { return true; } @@ -465,12 +415,6 @@ public class NewsPool { } } break; - case CATEGORY_TRANSLATION_ADD: - case CATEGORY_TRANSLATION_VOTE_ADD: - if (duration > (7L * MILLISECONDS_PER_DAY)) { - return true; - } - break; default: if (duration > MILLISECONDS_PER_DAY) { // remove everything else after 1 day diff --git a/source/net/yacy/search/SearchAccessRateConstants.java b/source/net/yacy/search/SearchAccessRateConstants.java index 7b55a54dd..91e825bc6 100644 --- a/source/net/yacy/search/SearchAccessRateConstants.java +++ b/source/net/yacy/search/SearchAccessRateConstants.java @@ -31,88 +31,79 @@ public enum SearchAccessRateConstants { /** * Configuration for the maximum number of accesses within three seconds to the - * search interface for unauthenticated users and authenticated users with no - * extended search right + * search interface for unauthenticated users */ PUBLIC_MAX_ACCESS_3S("search.public.max.access.3s", 60), /** * Configuration for the maximum number of accesses within one minute to the - * search interface for unauthenticated users and authenticated users with no - * extended search right + * search interface for unauthenticated users */ PUBLIC_MAX_ACCESS_1MN("search.public.max.access.1mn", 600), /** * Configuration for the maximum number of accesses within ten minutes to the - * search interface for unauthenticated users and authenticated users with no - * extended search right + * search interface for unauthenticated users */ PUBLIC_MAX_ACCESS_10MN("search.public.max.access.10mn", 3000), /** * Configuration for the maximum number of accesses within three seconds to the - * search interface in P2P mode for unauthenticated users and authenticated - * users with no extended search right + * search interface in P2P mode for unauthenticated users */ PUBLIC_MAX_P2P_ACCESS_3S("search.public.max.p2p.access.3s", 1), /** * Configuration for the maximum number of accesses within one minute to the - * search interface in P2P mode for unauthenticated users and authenticated - * users with no extended search right + * search interface in P2P mode for unauthenticated users */ PUBLIC_MAX_P2P_ACCESS_1MN("search.public.max.p2p.access.1mn", 6), /** * Configuration for the maximum number of accesses within ten minutes to the - * search interface in P2P mode for unauthenticated users and authenticated - * users with no extended search right + * search interface in P2P mode for unauthenticated users */ PUBLIC_MAX_P2P_ACCESS_10MN("search.public.max.p2p.access.10mn", 60), /** * Configuration for the maximum number of accesses within three seconds to the * search interface in P2P mode with browser-side JavaScript results resorting - * enabled for unauthenticated users and authenticated users with no extended - * search right + * enabled for unauthenticated users */ PUBLIC_MAX_P2P_JSRESORT_ACCESS_3S("search.public.max.p2p.jsresort.access.3s", 1), /** * Configuration for the maximum number of accesses within one minute to the * search interface in P2P mode with browser-side JavaScript results resorting - * enabled for unauthenticated users and authenticated users with no extended - * search right + * enabled for unauthenticated users */ PUBLIC_MAX_P2P_JSRESORT_ACCESS_1MN("search.public.max.p2p.jsresort.access.1mn", 1), /** * Configuration for the maximum number of accesses within ten minutes to the * search interface in P2P mode with browser-side JavaScript results resorting - * enabled for unauthenticated users and authenticated users with no extended - * search right + * enabled for unauthenticated users */ PUBLIC_MAX_P2P_JSRESORT_ACCESS_10MN("search.public.max.p2p.jsresort.access.10mn", 10), /** * Configuration for the maximum number of accesses within three seconds to the * search interface to support fetching remote results snippets for - * unauthenticated users and authenticated users with no extended search right + * unauthenticated users */ PUBLIC_MAX_REMOTE_SNIPPET_ACCESS_3S("search.public.max.remoteSnippet.access.3s", 1), /** * Configuration for the maximum number of accesses within one minute to the * search interface to support fetching remote results snippets for - * unauthenticated users and authenticated users with no extended search right + * unauthenticated users */ PUBLIC_MAX_REMOTE_SNIPPET_ACCESS_1MN("search.public.max.remoteSnippet.access.1mn", 4), /** * Configuration for the maximum number of accesses within ten minutes to the * search interface to support fetching remote results snippets mode for - * unauthenticated users and authenticated users with no extended search right + * unauthenticated users */ PUBLIC_MAX_REMOTE_SNIPPET_ACCESS_10MN("search.public.max.remoteSnippet.access.10mn", 20); diff --git a/source/net/yacy/search/Switchboard.java b/source/net/yacy/search/Switchboard.java index fb19d2a99..13fee0653 100644 --- a/source/net/yacy/search/Switchboard.java +++ b/source/net/yacy/search/Switchboard.java @@ -151,16 +151,11 @@ import net.yacy.crawler.data.ResultURLs.EventOrigin; import net.yacy.crawler.retrieval.Request; import net.yacy.crawler.retrieval.Response; import net.yacy.crawler.robots.RobotsTxt; -import net.yacy.data.BlogBoard; -import net.yacy.data.BlogBoardComments; import net.yacy.data.BookmarkHelper; import net.yacy.data.BookmarksDB; import net.yacy.data.ListManager; import net.yacy.data.MessageBoard; -import net.yacy.data.UserDB; -import net.yacy.data.UserDB.AccessRight; import net.yacy.data.WorkTables; -import net.yacy.data.wiki.WikiBoard; import net.yacy.data.wiki.WikiCode; import net.yacy.data.wiki.WikiParser; import net.yacy.document.Condenser; @@ -278,15 +273,11 @@ public final class Switchboard extends serverSwitch { public CrawlQueues crawlQueues; public CrawlStacker crawlStacker; public MessageBoard messageDB; - public WikiBoard wikiDB; - public BlogBoard blogDB; - public BlogBoardComments blogCommentDB; public RobotsTxt robots; public Map outgoingCookies, incomingCookies; public volatile long proxyLastAccess, localSearchLastAccess, remoteSearchLastAccess, adminAuthenticationLastAccess, optimizeLastRun; public Network yc; public ResourceObserver observer; - public UserDB userDB; public BookmarksDB bookmarksDB; public WebStructureGraph webStructure; public ConcurrentHashMap> localSearchTracker, remoteSearchTracker; // mappings from requesting host to a TreeSet of Long(access time) @@ -830,36 +821,6 @@ public final class Switchboard extends serverSwitch { ConcurrentLog.logException(e); } - // starting wiki - try { - this.initWiki(); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - - //starting blog - try { - this.initBlog(); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - - // init User DB - this.log.config("Loading User DB"); - final File userDbFile = new File(this.getDataPath(), "DATA/SETTINGS/user.heap"); - try { - this.userDB = new UserDB(userDbFile); - this.log.config("Loaded User DB from file " - + userDbFile.getName() - + ", " - + this.userDB.size() - + " entries" - + ", " - + ppRamString(userDbFile.length() / 1024)); - } catch (final IOException e) { - ConcurrentLog.logException(e); - } - // init html parser evaluation scheme File parserPropertiesPath = new File(appPath, "defaults/"); String[] settingsList = parserPropertiesPath.list(); @@ -996,7 +957,7 @@ public final class Switchboard extends serverSwitch { TextSnippet.statistics.setEnabled(this.getConfigBool(SwitchboardConstants.DEBUG_SNIPPETS_STATISTICS_ENABLED, SwitchboardConstants.DEBUG_SNIPPETS_STATISTICS_ENABLED_DEFAULT)); - // init the wiki + // Initialize the reusable WikiCode formatter used outside the retired local Wiki application. wikiParser = new WikiCode(); // initializing the resourceObserver @@ -1724,42 +1685,6 @@ public final class Switchboard extends serverSwitch { + ppRamString(messageDbFile.length() / 1024)); } - public void initWiki() throws IOException { - this.log.config("Starting Wiki Board"); - final File wikiDbFile = new File(this.workPath, "wiki.heap"); - this.wikiDB = new WikiBoard(wikiDbFile, new File(this.workPath, "wiki-bkp.heap")); - this.log.config("Loaded Wiki Board DB from file " - + wikiDbFile.getName() - + ", " - + this.wikiDB.size() - + " entries" - + ", " - + ppRamString(wikiDbFile.length() / 1024)); - } - - public void initBlog() throws IOException { - this.log.config("Starting Blog"); - final File blogDbFile = new File(this.workPath, "blog.heap"); - this.blogDB = new BlogBoard(blogDbFile); - this.log.config("Loaded Blog DB from file " - + blogDbFile.getName() - + ", " - + this.blogDB.size() - + " entries" - + ", " - + ppRamString(blogDbFile.length() / 1024)); - - final File blogCommentDbFile = new File(this.workPath, "blogComment.heap"); - this.blogCommentDB = new BlogBoardComments(blogCommentDbFile); - this.log.config("Loaded Blog-Comment DB from file " - + blogCommentDbFile.getName() - + ", " - + this.blogCommentDB.size() - + " entries" - + ", " - + ppRamString(blogCommentDbFile.length() / 1024)); - } - public void initBookmarks() throws IOException { this.log.config("Loading Bookmarks DB"); final File bookmarksFile = new File(this.workPath, "bookmarks.heap"); @@ -2014,10 +1939,6 @@ public final class Switchboard extends serverSwitch { this.dhtDispatcher.close(); } // de.anomic.http.client.Client.closeAllConnections(); - this.wikiDB.close(); - this.blogDB.close(); - this.blogCommentDB.close(); - this.userDB.close(); if ( this.bookmarksDB != null ) { this.bookmarksDB.close(); // may null if concurrent initialization was not finished } @@ -3978,7 +3899,7 @@ public final class Switchboard extends serverSwitch { // authorization (earlier) by servlet container with username/password // as this stays true as long as authenticated browser is open (even after restart of YaCy) add a timeout check to look at credentials again // TODO: same is true for credential checks below (at least with BASIC auth -> login should expire at least on restart - if (requestHeader.isUserInRole(UserDB.AccessRight.ADMIN_RIGHT.toString())) { + if (requestHeader.isUserInRole(SwitchboardConstants.ADMIN_ACCOUNT_ROLE)) { if (this.adminAuthenticationLastAccess + 60000 > System.currentTimeMillis()) // 1 minute return 4; // hard-authenticated, quick return } @@ -4007,11 +3928,8 @@ public final class Switchboard extends serverSwitch { } else { // handle DIGEST auth by servlet container if (requestHeader.getUserPrincipal() != null) { // user is authenticated (by Servlet container) - if (requestHeader.isUserInRole(AccessRight.ADMIN_RIGHT.toString())) { + if (requestHeader.isUserInRole(SwitchboardConstants.ADMIN_ACCOUNT_ROLE)) { // we could double check admin right (but we trust embedded container) - // String username = requestHeader.getUserPrincipal().getName(); - // if ((username.equalsIgnoreCase(sb.getConfig(SwitchboardConstants.ADMIN_ACCOUNT_USER_NAME, "admin"))) - // || (sb.userDB.getEntry(username).hasRight(AccessRight.ADMIN_RIGHT))) this.adminAuthenticationLastAccess = System.currentTimeMillis(); return 4; // has admin right } @@ -4027,12 +3945,6 @@ public final class Switchboard extends serverSwitch { return 3; // soft-authenticated for localhost } - // authorization by hit in userDB (authtype username:encodedpassword - handed over by DefaultServlet) - if ( this.userDB.hasAdminRight(requestHeader, requestHeader.getCookies()) ) { - this.adminAuthenticationLastAccess = System.currentTimeMillis(); - return 4; //return, because 4=max - } - // athorization by BASIC auth (realmValue = "adminname:password") if (adminAccountBase64MD5.startsWith("MD5:")) { // handle new option adminAccountBase64MD5="MD5:xxxxxxx" = encodeMD5Hex ("adminname:peername:password") diff --git a/source/net/yacy/search/SwitchboardConstants.java b/source/net/yacy/search/SwitchboardConstants.java index c846d88ec..8692c2759 100644 --- a/source/net/yacy/search/SwitchboardConstants.java +++ b/source/net/yacy/search/SwitchboardConstants.java @@ -56,6 +56,8 @@ public final class SwitchboardConstants { public static final String ADMIN_ACCOUNT_FOR_LOCALHOST = "adminAccountForLocalhost"; public static final String ADMIN_ACCOUNT_All_PAGES = "adminAccountAllPages"; public static final String ADMIN_REALM = "adminRealm"; + /** Servlet-container role assigned exclusively to the built-in administrator account. */ + public static final String ADMIN_ACCOUNT_ROLE = "adminRight"; // server settings public static final String SERVER_PORT = "port"; // port for the http server @@ -488,7 +490,7 @@ public final class SwitchboardConstants { /** *

    public static final String WORK_PATH = "wordPath"

    *

    Name of the setting specifying the folder beginning from the YaCy-installation's top-folder, where all - * DBs containing "work" of the user are saved. Such include bookmarks, messages, wiki, blog

    + * DBs containing "work" of the user are saved. Such include bookmarks and messages.

    * */ public static final String WORK_PATH = "workPath"; diff --git a/source/net/yacy/server/http/HTTPDemon.java b/source/net/yacy/server/http/HTTPDemon.java index 72631100a..c9d6e4738 100644 --- a/source/net/yacy/server/http/HTTPDemon.java +++ b/source/net/yacy/server/http/HTTPDemon.java @@ -34,8 +34,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequest; import net.yacy.cora.document.encoding.UTF8; import net.yacy.cora.document.id.DigestURL; import net.yacy.cora.protocol.HeaderFramework; @@ -262,15 +261,7 @@ public final class HTTPDemon { !responseHeader.containsKey(HeaderFramework.CONTENT_LENGTH)) responseHeader.put(HeaderFramework.CONTENT_LENGTH, "0"); - //read custom headers - if (responseHeader.getCookiesEntries() != null) { - for (Cookie c : responseHeader.getCookiesEntries()) { - //Append user properties to the main String - //TODO: Should we check for user properites. What if they intersect properties that are already in header? - header.append(HeaderFramework.SET_COOKIE+": "+c.getName()).append("=").append(c.getValue()).append(";\r\n"); - } - } - // write header + // write header final Iterator i = responseHeader.keySet().iterator(); String key; char tag; diff --git a/source/net/yacy/server/http/RobotsTxtConfig.java b/source/net/yacy/server/http/RobotsTxtConfig.java index e2958b3f1..214ea5d0e 100644 --- a/source/net/yacy/server/http/RobotsTxtConfig.java +++ b/source/net/yacy/server/http/RobotsTxtConfig.java @@ -34,8 +34,6 @@ import net.yacy.server.serverSwitch; public final class RobotsTxtConfig { - public static final String WIKI = "wiki"; - public static final String BLOG = "blog"; public static final String BOOKMARKS = "bookmarks"; public static final String HOMEPAGE = "homepage"; public static final String FILESHARE = "fileshare"; @@ -51,8 +49,6 @@ public final class RobotsTxtConfig { private boolean allDisallowed = false; private boolean lockedDisallowed = true; private boolean dirsDisallowed = true; - private boolean wikiDisallowed = false; - private boolean blogDisallowed = false; private boolean fileshareDisallowed = false; private boolean homepageDisallowed = false; private boolean newsDisallowed = false; @@ -68,8 +64,6 @@ public final class RobotsTxtConfig { if (active == null) return; for (int i=0; irenamed article<")); - - /* Multiple links on the same line */ - result = wc.transform("http://wiki:8080", "[[article1]] [[article2]]"); - assertTrue(result.contains("/dev/null 2>&1; then + echo "curl is required to run the Jetty smoke test." >&2 + exit 2 +fi + +default_port=8090 +if [ -f DATA/SETTINGS/yacy.conf ]; then + configured_port=$(sed -n 's/^port=//p' DATA/SETTINGS/yacy.conf | head -n 1) + if [ -n "$configured_port" ]; then + default_port=$configured_port + fi +fi + +base_url=${1:-"http://127.0.0.1:$default_port"} +base_url=${base_url%/} +curl_timeout=${YACY_SMOKE_TIMEOUT:-30} + +work_dir=$(mktemp -d "${TMPDIR:-/tmp}/yacy-jetty-smoke.XXXXXX") +trap 'rm -rf "$work_dir"' EXIT HUP INT TERM + +response_headers=$work_dir/headers +response_body=$work_dir/body +checks=0 + +fail() { + echo "FAIL: $*" >&2 + if [ -s "$response_headers" ]; then + echo "Response headers:" >&2 + sed 's/^/ /' "$response_headers" >&2 + fi + if [ -s "$response_body" ]; then + echo "Response body (first 20 lines):" >&2 + sed -n '1,20{s/^/ /;p;}' "$response_body" >&2 + fi + exit 1 +} + +request() { + method=$1 + path=$2 + shift 2 + + : > "$response_headers" + : > "$response_body" + + status=$(curl --silent --show-error \ + --max-time "$curl_timeout" \ + --request "$method" \ + --dump-header "$response_headers" \ + --output "$response_body" \ + --write-out '%{http_code}' \ + "$@" \ + "$base_url$path") || fail "$method $path could not be requested" + + [ "$status" = "200" ] || fail "$method $path returned HTTP $status" +} + +assert_header_contains() { + header_name=$1 + expected=$2 + actual=$(tr -d '\r' < "$response_headers" | awk -F ': *' -v name="$header_name" ' + tolower($1) == tolower(name) { + value = $0 + sub(/^[^:]*:[[:space:]]*/, "", value) + print value + } + ' | tail -n 1) + + printf '%s' "$actual" | grep -F "$expected" >/dev/null 2>&1 || \ + fail "header $header_name does not contain '$expected' (actual: '$actual')" +} + +assert_body_contains() { + expected=$1 + grep -F "$expected" "$response_body" >/dev/null 2>&1 || \ + fail "response body does not contain '$expected'" +} + +pass() { + checks=$((checks + 1)) + echo "ok $checks - $1" +} + +echo "YaCy embedded-server smoke test: $base_url" + +# Wait briefly for a peer that has just been started by an external harness. +attempt=0 +while [ "$attempt" -lt 30 ]; do + if curl --silent --fail --max-time 2 "$base_url/api/version.xml" >/dev/null 2>&1; then + break + fi + attempt=$((attempt + 1)) + sleep 1 +done +[ "$attempt" -lt 30 ] || fail "YaCy did not become ready within 30 seconds" + +request GET /api/version.xml +assert_header_contains Content-Type text/xml +assert_body_contains '' +assert_body_contains '' +pass "reflection-backed XML endpoint" + +request GET /env/grafics/YaCyLogo2012.svg +assert_header_contains Content-Type image/svg+xml +assert_body_contains '' +assert_body_contains '' +pass "URL-encoded POST dispatch" + +request OPTIONS /api/version.xml +assert_header_contains Allow 'GET,HEAD,POST,OPTIONS' +pass "OPTIONS method contract" + +echo "PASS: $checks embedded-server checks succeeded." -- cgit v1.2.3