From 67799ce8672a8e7e829c2d47ff7ef1e167364725 Mon Sep 17 00:00:00 2001 From: luccioman Date: Wed, 26 Aug 2015 13:57:00 +0200 Subject: [PATCH 01/11] Updated translation of index.html, yacysearch.html and simpleheader.template, corrected some special characters not written as HTML entities. --- htroot/{env => }/style.java | 0 locales/fr.lng | 190 +++++++++++++++++++----------------- 2 files changed, 100 insertions(+), 90 deletions(-) rename htroot/{env => }/style.java (100%) diff --git a/htroot/env/style.java b/htroot/style.java similarity index 100% rename from htroot/env/style.java rename to htroot/style.java diff --git a/locales/fr.lng b/locales/fr.lng index b20231984..1e2eee7e3 100644 --- a/locales/fr.lng +++ b/locales/fr.lng @@ -25,7 +25,7 @@ #--------------------------- Blacklist Manager==Gestionnaire des listes noire Used Blacklist engine:==Moteur de liste noire utilisé: -This function provides an URL filter to the proxy; any blacklisted URL is blocked from being loaded.==Cette fonction fournis un filtre d'URL sur le serveur Proxy;. Toute URL provenant de la liste noire ne pourra être chargé. +This function provides an URL filter to the proxy; any blacklisted URL is blocked from being loaded.==Cette fonction fournit un filtre d'URL sur le serveur Proxy;. Toute URL provenant de la liste noire ne pourra être chargé. You can define several blacklists and activate them separately.==Vous pouvez définir de nombreuses listes noires et les activer séparément. You may also provide your blacklist to other peers by sharing them.==Vous pouvez aussi partager vos listes noires avec d'autres noeuds du réseau. in return you may collect blacklist entries from other peers.==En retour vous pourrez collectez celles des autres . @@ -181,7 +181,7 @@ Your YaCy Peer needs some basic information to operate properly==Votre noeud YaC Select a language for the interface==Sélectionnez une langue pour l'interface Use Case: what do you want to do with YaCy:==Mode d'utilisation: que voulez-vous faire avec YaCy? Community-based web search==Recherche communautaire sur le Web -Join and support the global network \'freeworld\', search the web with an uncensored user-owned search network==Rejoingnez et soutenez le réseau global \'freeworld\', effectuez des recherches sur le Web à l'aide d'un réseau de recherche non censuré appartenant aux utilisateurs. +Join and support the global network \'freeworld\', search the web with an uncensored user-owned search network==Rejoignez et soutenez le réseau global \'freeworld\', effectuez des recherches sur le Web à l'aide d'un réseau de recherche non censuré appartenant aux utilisateurs. Search portal for your own web pages==Portail de recherche pour vos propres pages web 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.==Votre installation YaCy se comporte indépendemment des autres pairs et vous pouvez définir votre propre index lançant votre propre balayage du Web. Cela peut servir à rechercher vos propres pages web ou à construire un portail de recherche thématique. Files may also be shared with the YaCy server, assign a path here:==Le serveur YaCy peut aussi être utilisé pour le partage de fichiers. Définissez un chemin ici: @@ -393,34 +393,60 @@ YaCy: Help==YaCy: Aide #File: index.html #--------------------------- YaCy \'\#\[clientname\]\#\': Search Page==YaCy \'\#\[clientname\]\#\': Page de recherche -kiosk mode==Mode Kiosque -"Search"=="Chercher" +Search for #[former]#==Recherche pour #[former]# +YaCy Search on '#[clientname]#'==Recherche YaCy sur '#[clientname]#' +Search==Rechercher Text==Texte Images==Images -#Audio==#Audio ->Video==>Vidéo +Audio==Audio +Video==Vidéo Applications==Applications more options...==plus d'options... -Max. number of results:==Nombre maximal de résultats: -order by:==trié par: -YBR-Date-Quality==YBR-Date-Qualité -YBR-Quality-Date==YBR-Qualité-Date -Date-YBR-Quality==Date-YBR-Qualité -Quality-YBR-Date==Qualité-YBR-Date -Date-Quality-YBR==Date-Qualité-YBR -Quality-Date-YBR==Qualité-Date-YBR -Resource:==resource: -global==global -local==local -Max. search time==Durée de recherche Max. -\(seconds\)==\(secondes) -URL mask:==Filtre-URL: -restrict on==limité à +Results per page==Résultats par page +order by:==trier par: +Resource==Origine +the peer-to-peer network==le réseau pair à pair +only the local index==seulement l'index local +Prefer mask==Masque favori show all==tout montrer -#überarbeiten!!! -Prefer mask:==Masque favori: Constraints:==Contraintes: only index pages==Pages d'index seulement +Query Operators==Opérateurs +only urls with the <phrase> in the url==uniquement les urls contenant la <phrase> +only urls with the <phrase> within outbound links of the document==uniquement les urls dont le document a un lien contenant la <phrase> +only urls with extension <ext>==uniquement les urls avec l'extension <ext> +only urls from host <host>==uniquement les urls de l'hôte <host> +only pages with as-author-anotated <author>==uniquement les pages avec l'auteur <author> indiqué +only pages from top-level-domains <tld>==uniquement les pages des domaines de premier niveau <tld> +only resources from http or https servers==uniquement les ressources de serveurs http ou https +only resources from ftp servers==uniquement les ressources de serveurs ftp +they are rare==ils sont rares +crawl them yourself==balayez les vous-même +only resources from smb servers==uniquement les ressources de serveurs samba +Intranet Indexing==Indexage d'intranet +must be selected==doit être sélectionné +only files from a local file system==uniquement les fichiers locaux +ranking modifier==modificateur de classement +sort by date \(latest first\)==trier par date (les plus récents en premier) +multiple words shall appear near==les mots recherchés doivent être dans une même expression +"" \(doublequotes\)=="" (guillemets) +prefer given language \(an ISO639 2-letter code\)==préférer le langage indiqué (code ISO639 à 2 lettres) +heuristics==heuristiques +add search results from external opensearch systems==ajouter les résultats de systèmes opensearch externes +Search Navigation==Navigation dans la recherche +keyboard shotcuts==raccourcis clavier +tab or page-up==Tab ou Début +next result page==page de résultats suivante +page-down==Page bas +previous result page==page de résultats précédente +automatic result retrieval==récupération automatique de résultats +browser integration==intégration navigateur +after searching, click-open on the default search engine in the upper right search field of your browser and select 'Add "YaCy Search\.\."'==après une recherche, cliquer sur le moteur de recherche par défaut dans le champ de recherche en haut à droite de votre navigateur et sélectionner 'Ajouter "YaCy ..."' +search as rss feed==rechercher comme flux RSS +click on the red icon in the upper right after a search\. this works good in combination with the '/date' ranking modifier\. See an ==cliquer sur l'icône rouge dans le coin en haut à droite juste après une recherche. Fonctionne bien en combinaison avec le modificateur de classement '/date'. Voir un +example==exemple +json search results==résultats de recherche json +for ajax developers: get the search rss feed and replace the '\.rss' extension in the search result url with '\.json'==pour les développeurs ajax: rechercher comme flux RSS et dans l'URL de résultat remplacer l'extension '.rss' par '.json' #----------------------------- #File: IndexCleaner_p.html @@ -458,7 +484,7 @@ The local index currently consists of \(at least\) \#\[wcount\]\# reverse word i "Show Details for URL"=="Montrer les détails pour l'URL" #URL-Hash:==URL-Hash: "Show Details for URL-Hash"=="Montrer les détails pour l'URL-hash" -DHT Transmission control:==Contrôle de transmission DHT: +DHT Transmission control:==Contrôle de transmission DHT: The transmission is necessary for the functionality of global search on other peers.==Le partage est nécessaire, pour que la recherche globale fonctionne avec les autres noeuds. If you switch off distribution or receipt of RWIs you will be banned from global search.==Si vous désactivez la transmission ou la reception des RWIs, vous serez bannis de la recherche globale. Index Distribution:==Partage d'index: @@ -547,7 +573,7 @@ From File:==Du fichier: From URL:==De l'URL: Existing start URLs are re-crawled.==Le URLs de départ existantes seront recrawlées. Other already visited URLs are sorted out as \"double\".==Les autres URLs déjà visitées seront classées en doublons. -A complete re-crawl will be available soon.==Un recrawl complet sera bientôt disponible. +A complete re-crawl will be available soon.==Un recrawl complet sera bientôt disponible. "Start New Crawl"=="Démarrer un nouvaux crawl" Distributed Indexing:==Indexation distribuée: Crawling and indexing can be done by remote peers.==Crawl et indexation peuvent être executés par les autres noeuds. @@ -639,7 +665,7 @@ No more that two pages are loaded from the same host in one second \(not more th A second crawl for a different host increases the throughput to a maximum of 240 documents per minute ==Un second balayage sur un hôte différent augmente le débit jusqu'à un maximum de 240 documents par minute, since the crawler balances the load over all hosts.==puisque le balayeur équilibre la charge entre tous les hôtes. >High Speed Crawling<==>Balayage à haute vitesse< -A \'shallow crawl\' which is not limited to a single host \(or site\)==Un "balayage superficiel" non limité à un seul hôte (ou site) +A \'shallow crawl\' which is not limited to a single host \(or site\)==Un "balayage superficiel" non limité à un seul hôte (ou site) can extend the pages per minute \(ppm\) rate to unlimited documents per minute ==peut augmenter le nombre de pages par minutes (ppm) jusqu'à récolter un nombre illimité de documents par minute when the number of target hosts is high.==lorsque le nombre d'hôtes ciblés est élevé. This can be done using the Expert Crawl Start servlet.==Cela peut être effectué au moyen de cette servlet: démarrer un balayage expert. @@ -816,7 +842,7 @@ The index was crawled and contributed by other peers.==Cet index a ét&eac The url fetch was initiated and executed by other peers.==L'indexation d'URL a été initiée et effectuée par d'autres noeuds. These links here have been transmitted to you because your peer is the most appropriate for storage according to==Ces liens vous ont été transmis car votre noeud est le plus approprié pour le stockage selon the logic of the Global Distributed Hash Table.==la logique de la table de hachage distribuée globale -Use Case: This list may fill if you check the 'Index Receive'-flag on the 'Index Control' page==Cas d'utilisation: Cette liste se remplira si l'option 'Reception d'index' de la page 'Contrôle d'index' +Use Case: This list may fill if you check the 'Index Receive'-flag on the 'Index Control' page==Cas d'utilisation: Cette liste se remplira si l'option 'Reception d'index' de la page 'Contrôle d'index' \(4\) Index Monitor for Proxy Indexing==(4) Moniteur d'index pour le proxy d'indexation These web pages had been indexed as result of your proxy usage.==Ces pages web ont été indexées lors de l'utilisation de votre proxy d'indexation. No personal or protected page is indexed==Aucune page personelle ou protégée n'est indexée @@ -1041,7 +1067,7 @@ Outgoing News==Nouvelles sortantes Published News==Nouvelles publiées News Overview==Aperçu des nouvelles This is the YaCyNews system \(currently under testing\).==Voici le système de nouvelles YaCy (actuellement en test). -The news service is controlled by several entry points:==Ce service de nouvelles est contrôlé par plusieurs points d'entrée: +The news service is controlled by several entry points:==Ce service de nouvelles est contrôlé par plusieurs points d'entrée: A crawl start with activated remote indexing will automatically create a news entry.==Un crawl démarré avec la fonction de crawl distant crée automatiquement une entrée de nouvelles. Other peers may use this information to prevent double-crawls from the same start point.==Les autre noeuds peuvent utiliser cette information pour éviter les doublons dans les points de départ de crawl. A table with recently started crawls is presented on the Index Create - page==Une table avec les crawls récemment lancés est visible sur la page de création d'index. @@ -1180,11 +1206,11 @@ This cache is very important for a fast search process.==Ce cache est trè Increasing the cache size will result in more search results and less IO during DHT transfer.==Augmenter la taille du cache augmente le nombre de résultats de recherche et diminue le nombre d'E/S pendant le transfert de DHT. 'noticed' URLs==URLs 'remarquées' A noticed URL is one that was discovered during crawling but was not loaded yet.==Une URL remarquée est celle qui est découverte pendant le crawl et qui n'était pas déjà chargée. -Increasing the cache size will result in faster double-check during URL recognition when doing crawls.==Augmenter la taille du cache accélère le double contrôle pendant la reconnaisance d'URL des crawls. +Increasing the cache size will result in faster double-check during URL recognition when doing crawls.==Augmenter la taille du cache accélère le double contrôle pendant la reconnaisance d'URL des crawls. 'error' URLs==URLs 'en erreur' URLs that cannot be loaded are stored in this database. It is also used for double-checked during crawling.==URLs qui ne peuvent pas être chargés dans la base de données. Increasing the cache size will most probably speed up crawling slightly, but not significantly.==Augmenter ce cache accélère légèrement le crawl, mais pas significativement. -DHT Control==Contrôle DHT +DHT Control==Contrôle DHT This is simply the cache for the seed-dbs==C'est simplement le cache pour le seed-dbs active, passive, potential==actif, passif, potentiel This cache is divided into three equal parts.==Ce cache est divisé en trois parts égales @@ -1246,7 +1272,7 @@ The network picture below shows how the latest search query was solved by asking #File: ProxyIndexingMonitor_p.html #--------------------------- Index Monitor for Proxy Indexing==Moniteur d'index du proxy d'indexation -This is the control page for web pages that your peer has indexed during the current application run-time==C'est la page de contrôle des pages web indexées par votre pair durant l'exécution actuelle de l'application +This is the control page for web pages that your peer has indexed during the current application run-time==C'est la page de contrôle des pages web indexées par votre pair durant l'exécution actuelle de l'application as result of proxy fetch/prefetch.==par visites des pages. No personal or protected page is indexed==Aucune page personnelle ou protégée those pages are detected by properties in the HTTP header \(like Cookie-Use, or HTTP Authorization\)==ces pages sont identifiées par leurs propriétés dans l'entête HTTP (par exemple: Cookies ou autorisations HTTP) @@ -1819,7 +1845,7 @@ Hide surftips==Surftipps cachés #File: Table_API_p.html #--------------------------- -: Peer Steering==: Peer Contrôle +: Peer Steering==: Peer Contrôle #Steering of API Actions<==Steuerung der API Aktionen< #This table shows actions that had been issued on the YaCy interface==Diese Tabelle zeigt Aktionen, die auf dem YaCy Interface ausgelöst wurden, #to change the configuration or to request crawl actions.==um Konfigurationen zu ändern oder Crawl Aktionen anzufordern. @@ -2059,57 +2085,29 @@ kiosk mode==Kiosque Mode #File: yacysearch.html #--------------------------- Search Page==Page de recherche -"Search"=="Rechercher" -"search again - catch up more links"=="Nouvelle recherche - plus de résultats" -more options==Plus d'options -Text==Texte -#Images==Images -#Audio==Audio -Video==Vidéo -Applications==Applications -The following words are stop-words and had been excluded from the search:==Les termes suivant sont des termes d'arrêt et seront exclus de la recherche: -No Results.==Aucun résultat. -length of search words must be at least 3 characters==La longueur des mots recherchés doit être d'au moins trois caractères -If you think this is unsatisfactory then you may consider to support the global index by running your own proxy/peer.==Si vous -trouvez que ce n'est pas satisfaisant, vous pouvez supporter un index global sur votre propre proxy/noeud. -If everybody contributes, the results will get better.==Si tout le monde contribue, le résultat sera meilleur. -Other possible reasons for no result:==Autres raisons possibles de l'absence de résultat: -The search time was too short. Search again with same query to catch up 'late peers'==Le temps de recherche est trop court. Refaite la même requête pour obtenir les résultats attardés. -There is currently no support for german umlaute. Please use ae/oe/ue instead==Actuellement, il n'y a pas de support du Umlaut allemand. Utilisez ae/oe/ue à la place. -Words of length < 3 are not indexed. Please omit such words==Les termes de moins de trois caractères ne seront pas indéxés. S'il vous plait, omettez les. -YaCy tries to index singular instead of plural words. Please use the singular form==YaCy n'indexe que les singuliers, utilisez donc le singulier au lieu du pluriel. -Only complete words are indexed, not parts of words==Seuls les mots complets sont indexés, pas les parties de mots. -Don't use stopwords as search words==N'utilisez pas de mots d'arrêt dans la recherche. -During this test phase the reaction time of remote peers is unknown.==Pendant cette phase de test le temp de réaction des autres noeuds est inconnu. -Please repeat your search to see if there are late-responses from remote peers==Répétez votre recherche, pour voir s'il reste des réponses attardées -If you think the information you searched should exist in the global index,==Si vous pensez que les information que vous cherchez existent dans l'index global, -then please run your own peer and start a crawl of your wanted information to make it==alors démarrez votre noeud et lancez un crawl sur l'information recherchée pour qu'elle -available for everyone. Then stay online to support crawls from other peers. Thank you!==soit disponible pour tous les autres noeuds. Et restez en ligne pour permettre les crawls des autres noeuds. Merci! -results from==Resultats de -ordered links from==lien classés de -filtered links of a total number of==liens filtrés sur un total de -known.==connus. -Refine your search with these topwords==Affinez votre recherche avec ces topwords -You can enrich the search results by using the 'global' option==Vous pouvez augmenter le nombre de résultats obtenus en cochant l'option 'global' -This will search also other YaCy peers==Cela utilisera les autres noeuds YaCy pour la recherche. -You cannot get global search results because you are not connected to another YaCy peer.==Vous ne pouvez pas faire de recherche globale car vous n'êtes pas connecté à un autre noeud YaCy. -To connect you must first use the proxy.==Pour vous connecter, vous devez d'abord utiliser un proxy. -See here for an==Voir ici pour -installation guide==le guide d'installation -Alternatively, you can run the proxy in permanent online mode, which also grants global search.==Autrement, vous pouvez aussi utiliser le proxy en mode connecté permanent. Ce qui autorise aussi les recherches globales. -To do this, press this button:==Pour faire cela, pressez ce bouton: -"go online"=="connectez vous" -you must also switch to online mode==Vous devez d'abord passer en mode connecté -\(by using the proxy\) to contribute to the global index.==(en utilisant le proxy) pour contribuer à l'index global. -"bookmark"=="marque-page" -"recommend"=="recommander" -"delete"=="supprimer" -loading snippet==chargement d'extrait -Pictures==Images -The global search resulted in \#\[globalresults\]\# link contributions from other YaCy peers.==La recherche globale consiste en #[globalresults]#, qui sont fournis par d'autres noeuds. -YaCy is a GPL'ed project==YaCy un projet GPL -with the target of implementing a P2P-based global search engine.==avec l'intention de réaliser un moteur de recherche P2P. -Architecture \(C\) by Michael Peter Christen==Architecture (C) de Michael Peter Christen +Search for==Recherche de +YaCy Search on==Recherche YaCy sur +This search result can also be retrieved as RSS/opensearch output\.==Le résultat de cette recherche peut également être chargé en tant que flux RSS /opensearch. +Click the RSS icon to see this search result as RSS message stream==Cliquer sur l'icône RSS pour voir le flux RSS correspondant à cette recherche +Use the RSS search result format to add static searches to your RSS reader\, if you use one\.==Utilisez les résultats au format RSS pour ajouter des recherches statiques à votre lecteur de flux RSS, si vous en utilisez un. +>search==>rechercher +No Results\.==Pas de résultats. +length of search words must be at least 1 character==les termes recherchés doivent contenir au moins un caractère +> of <==> de < + local, == locaux, + remote\), == distants), +> from <==> de < + remote YaCy peers\.== noeuds YaCy distants. +Searching the web with this peer is disabled for unauthorized users\. Please log in as administrator to use the search function==La recherche avec ce noeud est désactivée pour les utilisateurs non autorisés. Veuillez vous connecter en tant qu'administrateur pour utiliser la fonction de recherche. +Illegal URL mask:==Masque d'URL incorrect : +\(not a valid regular expression\), mask ignored\.==(expression régulière incorrecte), masque ignoré. +Illegal prefer mask:==Masque favori incorrect : +Did you mean:==Vouliez-vous plutôt dire : +"search again"=="nouvelle recherche" +The following words are stop-words and had been excluded from the search:==Les termes suivant sont des termes d'arrêt et ont été exclus de la recherche: +Location -- click on map to enlarge==Lieu -- cliquez sur la carte pour agrandir +Map \(c\) by==Carte (c) fournie par +and contributors, CC-BY-SA==et ses contributeurs, CC-BY-SA #----------------------------- ### Subdirectory env/templates ### @@ -2168,12 +2166,24 @@ Ranking and Heuristics==Classement et heuristique #File: env/templates/simpleheader.template #--------------------------- -Noeud Administration==Administration des noeuds +#File: env/templates/simpleheader.template +#--------------------------- +Toggle navigation==Activer la navigation +Search Interfaces==Interfaces de recherche Web Search==Recherche Web -Noeud Owner Profile==Impressum dieses Noeuds -Help / Wiki==Aide / Wiki -Surftips==Surftips -Project Home==Accueil projet +File Search==Recherche de fichiers +Compare Search==Recherche comparative +Index Browser==Explorateur d'index +URL Viewer==Analyseur d'URL +Example Calls to the Search API:==Exemples d'appels sur l'API : +About This Page==À propos +YaCy Tutorials==Tutoriels YaCy +Download YaCy==Télécharger YaCy +Community \(Web Forums\)==Communauté (Forums) +Project Wiki==Wiki du projet +Git Repository==Dépôt Git +Bugtracker==Suivi des bugs +external==lien externe #----------------------------- #File: env/templates/submenuComputation.template @@ -2227,7 +2237,7 @@ Parser Configuration==Configuration de l'analyseur syntaxique #File: env/templates/submenuIndexControl.template #--------------------------- -Index Control Menu==Menu contrôle d'index +Index Control Menu==Menu contrôle d'index Index Administration==Administration de l'index Index Import==Importer un index Index Transfer==Transferer un index @@ -2236,7 +2246,7 @@ Index Transfer==Transferer un index #File: env/templates/submenuIndexCreate.template #--------------------------- Index Creation Menu==Menu création d'index -Control Queues==Contrôle des queues +Control Queues==Contrôle des queues WWW Crawl Queues==Files d'attente de Crawl WWW Crawl Media Crawl Queues==Files d'attente de Crawl Media Crawl Start==Démarrer le crawl From 5297e80cda0e7bb9f1ed94bb2479a9de21163760 Mon Sep 17 00:00:00 2001 From: reger Date: Thu, 3 Sep 2015 00:59:14 +0200 Subject: [PATCH 02/11] fix missing onclick in ConfigPortal to enable checkbox --- htroot/ConfigPortal.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htroot/ConfigPortal.html b/htroot/ConfigPortal.html index 6e5dda7d1..760d9ad17 100644 --- a/htroot/ConfigPortal.html +++ b/htroot/ConfigPortal.html @@ -53,7 +53,7 @@ ideaSpeed up search results with this option! (use CACHEONLY or FALSE to switch off verification)
NOCACHE: no use of web cache, load all snippets online
IFFRESH: use the cache if the cache exists and is fresh otherwise load online
- IFEXIST: use the cache if the cache exist or load online
+ IFEXIST: use the cache if the cache exist or load online
If verification fails, delete index reference

CACHEONLY: never go online, use all content from cache. If no cache entry exist, consider content nevertheless as available and show result without snippet
FALSE: no link verification and not snippet generation: all search results are valid without verification From f88bb2277ea7c151df895de1eee735383b56ec40 Mon Sep 17 00:00:00 2001 From: luccioman Date: Thu, 3 Sep 2015 08:58:14 +0200 Subject: [PATCH 03/11] Corrected bookmark link title --- htroot/yacysearchitem.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htroot/yacysearchitem.html b/htroot/yacysearchitem.html index afa3f3abf..21cc9b4a2 100644 --- a/htroot/yacysearchitem.html +++ b/htroot/yacysearchitem.html @@ -10,7 +10,7 @@ #(/heuristic)# #(authorized)#:: #(bookmark)#:: - bookmark + bookmark #(/bookmark)# #(recommend)# recommend From 918ef72bbe3dba911a4af1f758419a7dcfe38dd5 Mon Sep 17 00:00:00 2001 From: luccioman Date: Thu, 3 Sep 2015 08:59:17 +0200 Subject: [PATCH 04/11] Corrected br markup --- htroot/Steering.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htroot/Steering.html b/htroot/Steering.html index c66fcbc65..dec27e8a6 100644 --- a/htroot/Steering.html +++ b/htroot/Steering.html @@ -174,7 +174,7 @@ XDtoU7vQ/wIAAP//AwBb7ktEXQ4nqQAAAABJRU5ErkJggg==" width="128" height="64" alt="K Therefore we like to ask you: do you like YaCy? Will you use it again... if not, why? Is is possible that we change a bit to suit your needs?

Please send us feed-back about your experience with an
anonymous message
- or a
+ or a
posting to our web forums
or a
bug report!

From f17863588f466aa83097f9dc800ab6b5807a6656 Mon Sep 17 00:00:00 2001 From: luccioman Date: Thu, 3 Sep 2015 09:02:03 +0200 Subject: [PATCH 05/11] Updated french translations for yacysearhitem.html, yacysearchtrailer.html and Steering.html files. Corrected various labels. --- locales/fr.lng | 64 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/locales/fr.lng b/locales/fr.lng index 1922d1f14..af36087e2 100644 --- a/locales/fr.lng +++ b/locales/fr.lng @@ -463,7 +463,7 @@ RWIs at Start:==RWIs au départ: RWIs now:==RWIs maintenant: wordHash in Progress:==Mots-Hash en cours: last wordHash with deleted URLs:==dernier mot-hash avec URLs supprimées: -Number of deleted URLs in on this Hash:==Nombre d'URLs supprimés sur ce hâchage: +Number of deleted URLs in on this Hash:==Nombre d'URLs supprimés sur ce hachage: UrldbCleaner - Clean up the database by deletion of blacklisted urls:==UrlDBCleaner - Nettoie la base de données en supprimant les URLs en liste noire: Start/Resume==Départ/Reprise Stop==Arrêt @@ -509,7 +509,7 @@ Word-Hash:==Mot-Hash: #File: CrawlStartExpert.html #--------------------------- Index Creation==Créer un index -Start Crawling Job:==Tâche de démarrage du crawl: +Start Crawling Job:==Tâche de démarrage du crawl: You can define URLs as start points for Web page crawling and start crawling here. \"Crawling\" means that YaCy will download the given website, extract all links in it and then download the content behind these links. This is repeated as long as specified under \"Crawling Depth\".==Vous pouvez définir les URLs de départ et démarrer le crawl ici. Crawler signifie que YaCy téléchargera les sites de départ et extraira tous leurs liens ainsi que leur contenu. Cela sera répété jusqu'a ce que la \"profondeur de crawl\" soit atteinte. #Attribut==Attribut Value==Valeur @@ -764,8 +764,8 @@ Import Path:==Import-Pfad: "Start Import"=="Demarrer l'importation" Attention:==Attention: Always do a backup of your source and destination database before starting to use this import function.==Toujours faire une sauvegarde de vos bases source et destination avant de lancer cette fonction d'importation. -Currently running jobs==Tâches actuellement en cours -Job Type==Type de tâche +Currently running jobs==Tâches actuellement en cours +Job Type==Type de tâche >Path==>Chemin Status==Etat Elapsed
Time==Temps
écoulé @@ -852,7 +852,7 @@ and automatically excluded from indexing.==et exclus automatiquement de l'indexa Set the proxy settings of your browser to the same port as given==Configurez les paramètres de proxy de votre brower avec le même port que celui on the 'Settings'-page in the 'Proxy and Administration Port' field.==du champ 'Port de proxy et d'administration' de la page de 'Configuration'. \(5\) Index Monitor for Local Crawling.==(5) Moniteur d'index pour le crawl local -These web pages had been crawled by your own crawl task.==Cette page web a été crawlée par votre propre tâche de crawl. +These web pages had been crawled by your own crawl task.==Cette page web a été crawlée par votre propre tâche de crawl. Use Case: start a crawl by setting a crawl start point on the 'Index Create' page.==Cas d'utilisation: Lancer un crawl en paramètrant un point de départ sur la page 'Création d'index'. \(6\) Index Monitor for Global Crawling==(6) Moniteur d'index pour le crawl global These pages had been indexed by your peer, but the crawl was initiated by a remote peer.==Ces pages ont été indexées par votre noeud, mais le crawl était initié par un noeud distant. @@ -1095,7 +1095,7 @@ Attributes==Attributs #File: PerformanceQueues_p.html #--------------------------- Performance Settings of Queues and Processes==Paramètres de performance des files et des processus -Scheduled tasks overview and waiting time settings:==Aperçu des tâches programmées et paramètres d'attente: +Scheduled tasks overview and waiting time settings:==Aperçu des tâches programmées et paramètres d'attente: Queue Size==Taille de file >Total==>Totale Block Time==Temps de blocage @@ -1133,8 +1133,8 @@ Maximum number of Word Caches, high limit:==Nombre maximal de mots dans le cache This is is the number of word indexes that shall be held in the==C'est le nombre d'index de mots qui doivent être gardés dans le ram cache during indexing. When YaCy is shut down, this cache must be==cache mémoire pendant l'indexation. Quand YaCy est stoppé, ce cache doit flushed to disc; this may last some minutes.==être transféré sur disque; cela peut durer quelques minutes. -The low limit is valid for crawling tasks, the high limit is valid==La limite basse est valide pour les tâches de crawl, la limite haute est valide -for search and DHT transmission tasks.==pour les tâches de recherche et de transmission de DHT. +The low limit is valid for crawling tasks, the high limit is valid==La limite basse est valide pour les tâches de crawl, la limite haute est valide +for search and DHT transmission tasks.==pour les tâches de recherche et de transmission de DHT. Enter New Cache Size==Entrer une nouvelle taille de cache Thread pool settings:==Paramètres du pool de threads: maximum Active==max. actif @@ -1201,7 +1201,7 @@ The Response Header database stores the HTTP heades that other servers send when during proxy mode, when performing crawls or if it fetches pages for snippet generation.==durant le mode proxy en exécutant des crawl ou en parcourant les pages pour la génération d'extraits. Increasing this cache will be most important for a fast proxy mode.==Augmenter ce cache est important pour avoir un mode proxy rapide. 'loaded' URLs==URLs chargées -This is the database that holds the hash/url - relation and properties regarding the url like load date and server date.==C'est la base de données qui maintient la relation hâchage/url et les propriétés concernant l'URL comme la date de chargement et la date du serveur. +This is the database that holds the hash/url - relation and properties regarding the url like load date and server date.==C'est la base de données qui maintient la relation hachage/url et les propriétés concernant l'URL comme la date de chargement et la date du serveur. This cache is very important for a fast search process.==Ce cache est très important pour un processus de recherche rapide. Increasing the cache size will result in more search results and less IO during DHT transfer.==Augmenter la taille du cache augmente le nombre de résultats de recherche et diminue le nombre d'E/S pendant le transfert de DHT. 'noticed' URLs==URLs 'remarquées' @@ -1672,7 +1672,7 @@ For community support, please visit our Settings page if you want to make more changes.==Vous pouvez maintenant retourner sur la page des paramètres si vous voulez effectuer d'autres modifications. See you soon!==À bientôt! -Application will terminate after working off all scheduled tasks.=L'application se terminera après avoir achevé toutes les taches programmées. +Application will terminate after working off all scheduled tasks\.==L'application se terminera après avoir achevé toutes les tâches planifiées. Please send us feed-back!==Envoyez-nous vos commentaires! We don't track YaCy users, YaCy does not send 'home-pings', we do not even know how many people use YaCy as their private search engine.==Nous ne traçons pas les utilisateurs de YaCy, YaCy n'envoie pas de "home-pings", nous ne savons même pas combien de gens utilisent YaCy comme moteur de recherche. -Therefore we like to ask you: do you like YaCy? Will you use it again... if not, why? Is is possible that we change a bit to suit your needs?==C'est pourquoi nous apprécierions beaucoup que vous nous disiez ce que vous pensez de YaCy. Appréciez-vous YaCy? Allez-vous l'utiliser à nouveau... si non, pourquoi? Nous pouvons peut-être modifier YaCy pour qu'il réponde à vos besoins. +Therefore we like to ask you: do you like YaCy\? Will you use it again\.\.\. if not, why\? Is is possible that we change a bit to suit your needs\?==C'est pourquoi nous aimerions beaucoup que vous nous disiez ce que vous pensez de YaCy. Appréciez-vous YaCy? Allez-vous l'utiliser à nouveau... si non, pourquoi? Nous pouvons peut-être modifier YaCy pour qu'il réponde à vos besoins. Please send us feed-back about your experience with an==Vous pouvez nous faire parvenir vos commentaires avec un -anonymous message==message anonynme -or a
==ou un
+anonymous message==message anonyme +or a
==ou un
posting to our web forums
==message sur nos forums
-bug report!==rapport de bogue! +bug report==rapport de bogue

Professional Support

==

Support professionnel

If you are a professional user and you would like to use YaCy in your company in combination with consulting services by YaCy specialists, please see==Si vous souhaitez utiliser YaCy dans votre entreprise en association avec un service de consultations d'expertise par des spécialistes de YaCy, veuillez consulter Just a moment, please!==Juste un instant, s'il vous plaît! @@ -2078,7 +2078,7 @@ YaCy Interactive Search==YaCy Recherche interactive >Name==>Nom >Size==>Taille >Date==>Date -kiosk mode==Kiosque Mode +kiosk mode==Mode Kiosque >Link==>Lien #----------------------------- @@ -2110,6 +2110,38 @@ Map \(c\) by==Carte (c) fournie par and contributors, CC-BY-SA==et ses contributeurs, CC-BY-SA #----------------------------- +#File: yacysearchitem.html +#--------------------------- +"recommend"=="recommander" +"bookmark"=="ajouter aux favoris" +"delete"=="supprimer" +#----------------------------- + +#File: yacysearchtrailer.html +#--------------------------- +Your search is done using peers in the YaCy P2P network\.==Recherche effectuée grâce aux noeuds du réseau P2P YaCy. +You can switch to 'Stealth Mode' which will switch off P2P\, giving you full privacy\. Expect less results then, because then only your own search index is used\.==Vous pouvez passer en 'Mode furtif' ce qui désactivera le réseau pair à pair et vous offrira une privatisation complète. Cependant vous obtiendrez probablement moins de résultats car la recherche sera alors basée uniquement sur votre propre index. +"Privacy"=="Privé" + Peer-to-Peer == Pair à pair  +Stealth Mode==Mode furtif +Your search is done using only your own peer, locally\.==La recherche est réalisée uniquement sur les données locales de votre noeud. +You can switch to 'Peer-to-Peer Mode' which will cause that your search is done using the other peers in the YaCy network\.==Vous pouvez passer en mode 'Pair à pair' dans lequel votre recherche sera basée sur les autres noeuds du réseau YaCy. +"Peer-to-Peer"==Pair à pair +Context Ranking==Classement contextuel +Sort by Date==Trier par date +Video==Vidéo +>Apps==>Applications +

Location

==

Lieu

+show search results for "#\[query\]#" on map==Montrer sur la carte les résultats pour "#[query]#" +click to expand facet==cliquer pour révéler cet aspect +>Provider==>Site +>Filetype==>Type de fichier +>Language==>Langue +>Name Space==>Espace de noms +>Author==>Auteur +>Collection==>Collection +#----------------------------- + ### Subdirectory env/templates ### #File: env/templates/header.template #--------------------------- From 7c1da173e0d9a502581db24fd1a752d98b274a0a Mon Sep 17 00:00:00 2001 From: reger Date: Thu, 3 Sep 2015 23:36:57 +0200 Subject: [PATCH 06/11] fix missing license in image search see http://mantis.tokeek.de/view.php?id=522 --- htroot/yacysearchitem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htroot/yacysearchitem.java b/htroot/yacysearchitem.java index c8a7521c8..7e2aaa8c5 100644 --- a/htroot/yacysearchitem.java +++ b/htroot/yacysearchitem.java @@ -317,7 +317,7 @@ public class yacysearchitem { final String license = URLLicense.aquireLicense(image.imageUrl); // this is just the license key to get the image forwarded through the YaCy thumbnail viewer, not an actual lawful license //sb.loader.loadIfNotExistBackground(image.imageUrl, 1024 * 1024 * 10, null, ClientIdentification.yacyIntranetCrawlerAgent); - prop.putHTML("content_item_hrefCache", "/ViewImage." + ("gif".equals(imageUrlExt) ? "gif" : "png") + "?maxwidth=128&maxheight=128&isStatic=true&quadratic=&url=" + imageUrlstring); + prop.putHTML("content_item_hrefCache", "/ViewImage." + ("gif".equals(imageUrlExt) ? "gif" : "png") + "?maxwidth=128&maxheight=128&code="+license+"&isStatic=true&quadratic=&url=" + imageUrlstring); prop.putHTML("content_item_href", imageUrlstring); prop.putHTML("content_item_target", target); prop.put("content_item_code", license); From 7e4c1d2282c3ff57fb53a11f9a2744cd540790e6 Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 4 Sep 2015 13:42:10 +0200 Subject: [PATCH 07/11] Translator refactoring : - deleted useless new StringBuilder allocation - use of a new reusable FileNameFilter - added javadoc --- source/net/yacy/data/Translator.java | 58 +++++++------ .../utils/translation/SourceFileFilter.java | 83 +++++++++++++++++++ 2 files changed, 111 insertions(+), 30 deletions(-) create mode 100755 source/net/yacy/utils/translation/SourceFileFilter.java diff --git a/source/net/yacy/data/Translator.java b/source/net/yacy/data/Translator.java index 884029bdf..11d34351d 100644 --- a/source/net/yacy/data/Translator.java +++ b/source/net/yacy/data/Translator.java @@ -52,6 +52,7 @@ import net.yacy.kelondro.util.FileUtils; import net.yacy.kelondro.util.Formatter; import net.yacy.search.SwitchboardConstants; import net.yacy.server.serverSwitch; +import net.yacy.utils.translation.SourceFileFilter; import java.util.*; @@ -126,6 +127,13 @@ public class Translator { return translateFile(sourceFile, destFile, loadTranslationsLists(translationFile).get(sourceFile.getName())); } + /** + * Translate sourceFile to destFile using translationList. + * @param sourceFile file to translate + * @param destFile file to write + * @param translationList map of translations + * @return true when destFile was sucessfully written, false otherwise + */ public static boolean translateFile(final File sourceFile, final File destFile, final Map translationList){ StringBuilder content = new StringBuilder(); @@ -147,11 +155,11 @@ public class Translator { } } - content = new StringBuilder(translate(content.toString(), translationList)); + String processedContent = translate(content.toString(), translationList); BufferedWriter bw = null; try{ bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile),"UTF-8")); - bw.write(content.toString()); + bw.write(processedContent); bw.close(); }catch(final IOException e){ return false; @@ -172,38 +180,28 @@ public class Translator { public static boolean translateFiles(final File sourceDir, final File destDir, final File baseDir, final Map> translationLists, final String extensions){ destDir.mkdirs(); - final File[] sourceFiles = sourceDir.listFiles(); final List exts = ListManager.string2vector(extensions); - boolean rightExtension; + final File[] sourceFiles = sourceDir.listFiles(new SourceFileFilter(exts)); String relativePath; for (final File sourceFile : sourceFiles) { - rightExtension=false; - for (final String ext : exts) { - if (sourceFile.getName().endsWith(ext)) { - rightExtension=true; - break; - } - } - if (rightExtension) { - try { - relativePath=sourceFile.getAbsolutePath().substring(baseDir.getAbsolutePath().length()+1); //+1 to get the "/" - relativePath = relativePath.replace(File.separatorChar, '/'); - } catch (final IndexOutOfBoundsException e) { - ConcurrentLog.severe("TRANSLATOR", "Error creating relative Path for "+sourceFile.getAbsolutePath()); - relativePath = "wrong path"; //not in translationLists - } - if (translationLists.containsKey(relativePath)) { - ConcurrentLog.info("TRANSLATOR", "Translating file: "+ relativePath); - if(!translateFile( - sourceFile, - new File(destDir, sourceFile.getName().replace('/', File.separatorChar)), - translationLists.get(relativePath))) - { - ConcurrentLog.severe("TRANSLATOR", "File error while translating file "+relativePath); - } - //}else{ - //serverLog.logInfo("TRANSLATOR", "No translation for file: "+relativePath); + try { + relativePath=sourceFile.getAbsolutePath().substring(baseDir.getAbsolutePath().length()+1); //+1 to get the "/" + relativePath = relativePath.replace(File.separatorChar, '/'); + } catch (final IndexOutOfBoundsException e) { + ConcurrentLog.severe("TRANSLATOR", "Error creating relative Path for "+sourceFile.getAbsolutePath()); + relativePath = "wrong path"; //not in translationLists + } + if (translationLists.containsKey(relativePath)) { + ConcurrentLog.info("TRANSLATOR", "Translating file: "+ relativePath); + if(!translateFile( + sourceFile, + new File(destDir, sourceFile.getName().replace('/', File.separatorChar)), + translationLists.get(relativePath))) + { + ConcurrentLog.severe("TRANSLATOR", "File error while translating file "+relativePath); } + //}else{ + //serverLog.logInfo("TRANSLATOR", "No translation for file: "+relativePath); } } return true; diff --git a/source/net/yacy/utils/translation/SourceFileFilter.java b/source/net/yacy/utils/translation/SourceFileFilter.java new file mode 100755 index 000000000..4c82459aa --- /dev/null +++ b/source/net/yacy/utils/translation/SourceFileFilter.java @@ -0,0 +1,83 @@ +// SourceFileFilter.java +// ------------------------------------- +// part of YACY +// (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.utils.translation; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.ArrayList; +import java.util.List; + +/** + * File filter for source files to translate + * + * @author luc + * + */ +public class SourceFileFilter implements FilenameFilter { + + /** Extensions required to pass filter */ + private List extensions; + + /** + * Contructor with extensions + * + * @param extensions + * extensions required. When this list is null or empty, filter + * let pass all files. + */ + public SourceFileFilter(List extensions) { + if (extensions == null) { + this.extensions = new ArrayList<>(); + } else { + this.extensions = new ArrayList<>(extensions); + } + } + + /** + * @param file + * file to check + * @return true when file name ends with one of the extensions list or + * extensions list is empty + */ + @Override + public boolean accept(File dir, String name) { + boolean accepted = false; + if (name != null) { + if (extensions.size() == 0) { + accepted = true; + } else { + for (String ext : extensions) { + if (name.endsWith(ext)) { + accepted = true; + break; + } + } + } + } + return accepted; + } + +} From 2f0f0180e2352dd501eacd5e050db7f3ddc8190f Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 4 Sep 2015 13:42:57 +0200 Subject: [PATCH 08/11] Added a function to list files recursively. --- source/net/yacy/kelondro/util/FileUtils.java | 25 +++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/source/net/yacy/kelondro/util/FileUtils.java b/source/net/yacy/kelondro/util/FileUtils.java index 34b05b815..4c0b44523 100644 --- a/source/net/yacy/kelondro/util/FileUtils.java +++ b/source/net/yacy/kelondro/util/FileUtils.java @@ -34,6 +34,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; +import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -44,6 +45,7 @@ import java.io.UnsupportedEncodingException; import java.io.Writer; import java.nio.charset.Charset; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -55,13 +57,13 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; -import org.mozilla.intl.chardet.nsDetector; -import org.mozilla.intl.chardet.nsPSMDetector; - import net.yacy.cora.document.encoding.UTF8; import net.yacy.cora.storage.Files; import net.yacy.cora.util.ConcurrentLog; +import org.mozilla.intl.chardet.nsDetector; +import org.mozilla.intl.chardet.nsPSMDetector; + public final class FileUtils { private static final int DEFAULT_BUFFER_SIZE = 1024; // this is also the maximum chunk size @@ -668,6 +670,23 @@ public final class FileUtils { public static ArrayList getDirsRecursive(final File dir, final String notdir) { return getDirsRecursive(dir, notdir, true); } + + /** + * @param sourceDir source directory. Must be not null. + * @param notdir name of dir to exlcude. Can be null + * @param fileNameFilter filter to apply on file names. Can be null. + * @return list of all files passing fileFilter under sourceDir including sub directories + */ + public static List getFilesRecursive(final File sourceDir, final String notdir, final FilenameFilter fileNameFilter) { + List dirList = getDirsRecursive(sourceDir, + notdir); + dirList.add(sourceDir); + List files = new ArrayList<>(); + for (final File dir : dirList) { + Collections.addAll(files, dir.listFiles(fileNameFilter)); + } + return files; + } /** * Returns a List of all dirs and subdirs as File Objects Warning: untested From 9752bd5f880dcb0797c5858ede64c4f7ee94170c Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 4 Sep 2015 13:44:44 +0200 Subject: [PATCH 09/11] Added utils to help translation without launching full YaCy application : - translate all source files with a locale - list all non translated files with a locale --- .../translation/ListNonTranslatedFiles.java | 111 +++++++++++++++++ .../yacy/utils/translation/TranslateAll.java | 100 +++++++++++++++ .../utils/translation/TranslatorUtil.java | 116 ++++++++++++++++++ 3 files changed, 327 insertions(+) create mode 100755 source/net/yacy/utils/translation/ListNonTranslatedFiles.java create mode 100755 source/net/yacy/utils/translation/TranslateAll.java create mode 100755 source/net/yacy/utils/translation/TranslatorUtil.java diff --git a/source/net/yacy/utils/translation/ListNonTranslatedFiles.java b/source/net/yacy/utils/translation/ListNonTranslatedFiles.java new file mode 100755 index 000000000..fe50749e9 --- /dev/null +++ b/source/net/yacy/utils/translation/ListNonTranslatedFiles.java @@ -0,0 +1,111 @@ +// ListNonTranslatedFiles.java +// ------------------------------------- +// part of YACY +// (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.utils.translation; + +import java.io.File; +import java.io.FilenameFilter; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import net.yacy.cora.util.ConcurrentLog; +import net.yacy.data.ListManager; +import net.yacy.data.Translator; +import net.yacy.kelondro.util.FileUtils; + +/** + * Util to help identifying non translated files. + * + * @author luc + * + */ +public class ListNonTranslatedFiles extends TranslatorUtil { + + /** + * Print on standard output result of search + * @param nonTranslatedFiles list of non translated files + */ + private static void printResults(List nonTranslatedFiles) { + System.out.println(nonTranslatedFiles.size() + " files are not translated."); + for(File file : nonTranslatedFiles) { + System.out.println(file); + } + } + + /** + * List all files from srcDir directory which are not translated using + * specified locale file with specified extensions. If no argument is set, + * default values are used. + * + * @param args + * runtime arguments
+ *
    + *
  • args[0] : source dir path
  • + *
  • args[1] : translation file path
  • + *
  • args[2] : extensions (separated by commas)
  • + *
+ */ + public static void main(String args[]) { + File sourceDir = getSourceDir(args); + Path sourcePath = sourceDir.toPath(); + + File translationFile = getTranslationFile(args); + + List extensions = ListManager + .string2vector(getExtensions(args)); + + FilenameFilter fileFilter = new SourceFileFilter(extensions); + + String excludedDir = "locale"; + + ConcurrentLog.info("ListNonTranslatedFiles", "Listing non translated " + + extensions + " files from " + sourceDir + " using " + + translationFile); + + try { + Set translatedRelativePaths = Translator.loadTranslationsLists(translationFile).keySet(); + + List srcFiles = FileUtils.getFilesRecursive(sourceDir, excludedDir, fileFilter); + + List nonTranslatedFiles = new ArrayList<>(); + for(File srcFile : srcFiles) { + Path relativeSrcFile = sourcePath.relativize(srcFile.toPath()); + if(!translatedRelativePaths.contains(relativeSrcFile.toString())) { + nonTranslatedFiles.add(srcFile); + } + } + + printResults(nonTranslatedFiles); + + + } finally { + ConcurrentLog.shutdown(); + } + + } + +} diff --git a/source/net/yacy/utils/translation/TranslateAll.java b/source/net/yacy/utils/translation/TranslateAll.java new file mode 100755 index 000000000..de1f699c2 --- /dev/null +++ b/source/net/yacy/utils/translation/TranslateAll.java @@ -0,0 +1,100 @@ +// TranslateAll.java +// ------------------------------------- +// part of YACY +// (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.utils.translation; + +import java.io.File; + +import net.yacy.cora.util.ConcurrentLog; +import net.yacy.data.Translator; + +/** + * Util to translate all files without launching full YaCy application. + * + * @author luc + * + */ +public class TranslateAll extends TranslatorUtil { + + /** + * Translate all files from srcDir directory into dstDir directory using + * specified locale file with specified extensions. If no argument is set, + * default values are used. + * + * @param args + * runtime arguments
+ *
    + *
  • args[0] : source dir path
  • + *
  • args[1] : destination dir path
  • + *
  • args[2] : translation file path
  • + *
  • args[3] : extensions (separated by commas)
  • + *
+ */ + public static void main(String args[]) { + File sourceDir = getSourceDir(args); + + File destDir = getDestDir(args); + + File translationFile = getTranslationFile(args); + + String extensions = getExtensions(args); + + ConcurrentLog.info("TranslateAll", "Translating " + extensions + + " files from " + sourceDir + " to " + destDir + " using " + + translationFile); + + try { + Translator.translateFilesRecursive(sourceDir, destDir, + translationFile, extensions, "locale"); + } finally { + ConcurrentLog.shutdown(); + } + + } + + /** + * @param args + * main parameters + * @return translation source dir from parameters or default + * @throws IllegalArgumentException + * when no parameters is set and default is not found + */ + protected static File getDestDir(String[] args) { + File destDir; + if (args.length > 1) { + destDir = new File(args[1]); + } else { + String tmpDir = System.getProperty("java.io.tmpdir"); + if (tmpDir == null) { + throw new IllegalArgumentException( + "No destination dir specified, and default not found"); + } + destDir = new File(tmpDir + File.separator + + TranslateAll.class.getCanonicalName()); + } + return destDir; + } + +} diff --git a/source/net/yacy/utils/translation/TranslatorUtil.java b/source/net/yacy/utils/translation/TranslatorUtil.java new file mode 100755 index 000000000..a88cd3f28 --- /dev/null +++ b/source/net/yacy/utils/translation/TranslatorUtil.java @@ -0,0 +1,116 @@ +// TranslateAll.java +// ------------------------------------- +// part of YACY +// (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.utils.translation; + +import java.io.File; +import java.util.Locale; + +import net.yacy.yacy; +import net.yacy.data.Translator; + +/** + * Base class for launching a {@link Translator} method without full YaCy + * application started. + * + * @author luc + * + */ +public abstract class TranslatorUtil { + + /** + * @param args + * main parameters + * @return translation source dir from parameters or default + * (workingDir/htroot) + * @throws IllegalArgumentException + * when no parameters is set and default is not found + */ + protected static File getSourceDir(String[] args) { + File sourceDir; + if (args.length > 0) { + sourceDir = new File(args[0]); + } else { + String workingDir = System.getProperty("user.dir"); + if (workingDir == null) { + throw new IllegalArgumentException( + "No translation file specified, and default not found"); + } + sourceDir = new File(workingDir, "htroot"); + if (!sourceDir.exists() && !sourceDir.isDirectory()) { + throw new IllegalArgumentException( + "No translation file specified, and default not found : " + + sourceDir.getPath()); + } + } + return sourceDir; + } + + /** + * @param args + * main parameters + * @return translation file from parameters or default (base on current + * Locale) + * @throws IllegalArgumentException + * when no parameters is set and default is not found + */ + protected static File getTranslationFile(String[] args) { + File translationFile; + if (args.length > 2) { + translationFile = new File(args[2]); + } else { + String workingDir = System.getProperty("user.dir"); + if (workingDir == null) { + throw new IllegalArgumentException( + "No translation file specified, and default not found"); + } + translationFile = new File(workingDir, "locales" + File.separator + + Locale.getDefault().getLanguage() + ".lng"); + if (!translationFile.exists()) { + throw new IllegalArgumentException( + "No translation file specified, and default not found : " + + translationFile.getPath()); + } + } + return translationFile; + } + + /** + * @param args + * main parameters + * @return extensions list from parameters or default (same as used in + * {@link yacy}) + */ + protected static String getExtensions(String[] args) { + String extensions; + if (args.length > 3) { + extensions = args[3]; + } else { + extensions = "html,template,inc"; + } + return extensions; + } + +} From 9df249296af61d591b5ee90b17a3b157b3143ea8 Mon Sep 17 00:00:00 2001 From: luccioman Date: Fri, 4 Sep 2015 13:52:03 +0200 Subject: [PATCH 10/11] Return to mai repository version --- htroot/{ => env}/style.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename htroot/{ => env}/style.java (100%) diff --git a/htroot/style.java b/htroot/env/style.java similarity index 100% rename from htroot/style.java rename to htroot/env/style.java From 367fe388b93c7f9489b35bb3fc40abfdbafbc4cb Mon Sep 17 00:00:00 2001 From: reger Date: Sat, 5 Sep 2015 01:57:30 +0200 Subject: [PATCH 11/11] fix exception throw after sendError in DefaultServlet - reduce debug exception logs in crawler --- source/net/yacy/crawler/data/CrawlQueues.java | 2 -- source/net/yacy/http/servlets/YaCyDefaultServlet.java | 7 ++++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/source/net/yacy/crawler/data/CrawlQueues.java b/source/net/yacy/crawler/data/CrawlQueues.java index 454ba15db..e7bcd5e3b 100644 --- a/source/net/yacy/crawler/data/CrawlQueues.java +++ b/source/net/yacy/crawler/data/CrawlQueues.java @@ -674,7 +674,6 @@ public class CrawlQueues { if (CrawlQueues.log.isFine()) { CrawlQueues.log.fine("problem loading " + request.url().toString() + ": " + e.getMessage()); } - e.printStackTrace(); error = "load error - " + e.getMessage(); } @@ -693,7 +692,6 @@ public class CrawlQueues { } } catch (final Exception e) { CrawlQueues.this.errorURL.push(request.url(), request.depth(), profile, FailCategory.TEMPORARY_NETWORK_FAILURE, e.getMessage() + " - in worker", -1); - ConcurrentLog.logException(e); request.setStatus("worker-exception", WorkflowJob.STATUS_FINISHED); } finally { request = null; diff --git a/source/net/yacy/http/servlets/YaCyDefaultServlet.java b/source/net/yacy/http/servlets/YaCyDefaultServlet.java index 824d5dfa4..af07f20df 100644 --- a/source/net/yacy/http/servlets/YaCyDefaultServlet.java +++ b/source/net/yacy/http/servlets/YaCyDefaultServlet.java @@ -460,6 +460,7 @@ public class YaCyDefaultServlet extends HttpServlet { } catch (IllegalArgumentException iae) { if (!response.isCommitted()) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, iae.getMessage()); + return false; } throw iae; } @@ -1075,9 +1076,9 @@ public class YaCyDefaultServlet extends HttpServlet { filecontent = item.getInputStream(); files.put(new AbstractMap.SimpleEntry(item.getFieldName(), FileUtils.read(filecontent))); } catch (IOException e) { - ConcurrentLog.logException(e); + ConcurrentLog.info("FILEHANDLER", e.getMessage()); } finally { - if (filecontent != null) try {filecontent.close();} catch (IOException e) {ConcurrentLog.logException(e);} + if (filecontent != null) try {filecontent.close();} catch (IOException e) {ConcurrentLog.info("FILEHANDLER", e.getMessage());} } } } @@ -1108,7 +1109,7 @@ public class YaCyDefaultServlet extends HttpServlet { for (int j = 0; j < t; j++) p[j].join(); } } catch (Exception ex) { - ConcurrentLog.logException(ex); + ConcurrentLog.info("FILEHANDLER", ex.getMessage()); } }