Révision 3659
TXM/trunk/bundles/org.txm.searchengine.core/.project (revision 3659) | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<projectDescription> |
|
3 |
<name>org.txm.searchengine.core</name> |
|
4 |
<comment></comment> |
|
5 |
<projects> |
|
6 |
</projects> |
|
7 |
<buildSpec> |
|
8 |
<buildCommand> |
|
9 |
<name>org.eclipse.jdt.core.javabuilder</name> |
|
10 |
<arguments> |
|
11 |
</arguments> |
|
12 |
</buildCommand> |
|
13 |
<buildCommand> |
|
14 |
<name>org.eclipse.pde.ManifestBuilder</name> |
|
15 |
<arguments> |
|
16 |
</arguments> |
|
17 |
</buildCommand> |
|
18 |
<buildCommand> |
|
19 |
<name>org.eclipse.pde.SchemaBuilder</name> |
|
20 |
<arguments> |
|
21 |
</arguments> |
|
22 |
</buildCommand> |
|
23 |
</buildSpec> |
|
24 |
<natures> |
|
25 |
<nature>org.eclipse.pde.PluginNature</nature> |
|
26 |
<nature>org.eclipse.jdt.core.javanature</nature> |
|
27 |
</natures> |
|
28 |
</projectDescription> |
|
0 | 29 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngineProperty.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
/** |
|
4 |
* A SearchEngine queryable property for match positions |
|
5 |
* |
|
6 |
* @author mdecorde |
|
7 |
* |
|
8 |
*/ |
|
9 |
public interface SearchEngineProperty { |
|
10 |
|
|
11 |
/** |
|
12 |
* |
|
13 |
* @return the property uniq name in the queried corpus |
|
14 |
*/ |
|
15 |
public String getName(); |
|
16 |
|
|
17 |
/** |
|
18 |
* |
|
19 |
* @return the property uniq name in the queried corpus |
|
20 |
*/ |
|
21 |
public String getFullName(); |
|
22 |
|
|
23 |
} |
|
0 | 24 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/EmptySelection.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
|
|
6 |
import org.txm.objects.Match; |
|
7 |
|
|
8 |
public class EmptySelection extends Selection { |
|
9 |
|
|
10 |
private static final List<? extends Match> EMPTY = new ArrayList<Match>(); |
|
11 |
protected IQuery query; |
|
12 |
|
|
13 |
public EmptySelection(IQuery query) { |
|
14 |
this.query = query; |
|
15 |
} |
|
16 |
|
|
17 |
public List<? extends Match> getMatches() { |
|
18 |
return EMPTY; |
|
19 |
} |
|
20 |
|
|
21 |
public List<? extends Match> getMatches(int from, int to) { |
|
22 |
return EMPTY; |
|
23 |
} |
|
24 |
|
|
25 |
public int getNMatch() { |
|
26 |
return 0; |
|
27 |
} |
|
28 |
|
|
29 |
public IQuery getQuery() { |
|
30 |
return query; |
|
31 |
} |
|
32 |
|
|
33 |
@Override |
|
34 |
public boolean isTargetUsed() { |
|
35 |
return false; |
|
36 |
} |
|
37 |
|
|
38 |
@Override |
|
39 |
public void drop() throws Exception { |
|
40 |
} |
|
41 |
|
|
42 |
@Override |
|
43 |
public boolean delete(int iMatch) { |
|
44 |
// nothing to do |
|
45 |
return false; |
|
46 |
} |
|
47 |
|
|
48 |
@Override |
|
49 |
public boolean delete(Match match) { |
|
50 |
// nothing to do |
|
51 |
return false; |
|
52 |
} |
|
53 |
|
|
54 |
@Override |
|
55 |
public boolean delete(ArrayList<Match> matchesToRemove) { |
|
56 |
return false; |
|
57 |
} |
|
58 |
} |
|
0 | 59 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/ISearchEngine.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import org.txm.core.engines.Engine; |
|
4 |
import org.txm.objects.CorpusBuild; |
|
5 |
|
|
6 |
public interface ISearchEngine extends Engine { |
|
7 |
|
|
8 |
public Selection query(CorpusBuild corpus, IQuery query, String name, boolean saveQuery) throws Exception; |
|
9 |
|
|
10 |
/** |
|
11 |
* |
|
12 |
* @return an empty Query for the engine implementation |
|
13 |
*/ |
|
14 |
public IQuery newQuery(); |
|
15 |
|
|
16 |
/** |
|
17 |
* |
|
18 |
* @param corpus |
|
19 |
* @return true if the Engine can query the corpus |
|
20 |
*/ |
|
21 |
public abstract boolean hasIndexes(CorpusBuild corpus); |
|
22 |
|
|
23 |
public String getDetails(); |
|
24 |
} |
|
0 | 25 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/Property.java (revision 3659) | ||
---|---|---|
1 |
// Copyright © 2010-2020 ENS de Lyon., University of Franche-Comté |
|
2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
4 |
// Sophia Antipolis, University of Paris 3. |
|
5 |
// |
|
6 |
// The TXM platform is free software: you can redistribute it |
|
7 |
// and/or modify it under the terms of the GNU General Public |
|
8 |
// License as published by the Free Software Foundation, |
|
9 |
// either version 2 of the License, or (at your option) any |
|
10 |
// later version. |
|
11 |
// |
|
12 |
// The TXM platform is distributed in the hope that it will be |
|
13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
15 |
// PURPOSE. See the GNU General Public License for more |
|
16 |
// details. |
|
17 |
// |
|
18 |
// You should have received a copy of the GNU General |
|
19 |
// Public License along with the TXM platform. If not, see |
|
20 |
// http://www.gnu.org/licenses. |
|
21 |
// |
|
22 |
// |
|
23 |
// |
|
24 |
// $LastChangedDate: 2013-05-06 17:38:43 +0200 (lun., 06 mai 2013) $ |
|
25 |
// $LastChangedRevision: 2386 $ |
|
26 |
// $LastChangedBy: mdecorde $ |
|
27 |
// |
|
28 |
package org.txm.searchengine.core; |
|
29 |
|
|
30 |
// TODO: Auto-generated Javadoc |
|
31 |
/** |
|
32 |
* The Class Property. |
|
33 |
*/ |
|
34 |
public abstract class Property { |
|
35 |
|
|
36 |
protected String name; |
|
37 |
|
|
38 |
public Property(String name) { |
|
39 |
this.name = name; |
|
40 |
} |
|
41 |
|
|
42 |
/* (non-Javadoc) |
|
43 |
* @see java.lang.Object#toString() |
|
44 |
*/ |
|
45 |
@Override |
|
46 |
public String toString() { |
|
47 |
return name; |
|
48 |
} |
|
49 |
|
|
50 |
public String getName() { |
|
51 |
return name; |
|
52 |
} |
|
53 |
|
|
54 |
public abstract SearchEngine getSearchEngine(); |
|
55 |
|
|
56 |
public abstract int[] cpos2Id(int[] positions) throws Exception; |
|
57 |
|
|
58 |
public abstract String[] id2Str(int[] positions) throws Exception; |
|
59 |
} |
|
0 | 60 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/Query.java (revision 3659) | ||
---|---|---|
1 |
// Copyright © 2010-2020 ENS de Lyon., University of Franche-Comté |
|
2 |
// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of |
|
3 |
// Lyon 2, University of Franche-Comté, University of Nice |
|
4 |
// Sophia Antipolis, University of Paris 3. |
|
5 |
// |
|
6 |
// The TXM platform is free software: you can redistribute it |
|
7 |
// and/or modify it under the terms of the GNU General Public |
|
8 |
// License as published by the Free Software Foundation, |
|
9 |
// either version 2 of the License, or (at your option) any |
|
10 |
// later version. |
|
11 |
// |
|
12 |
// The TXM platform is distributed in the hope that it will be |
|
13 |
// useful, but WITHOUT ANY WARRANTY; without even the implied |
|
14 |
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
15 |
// PURPOSE. See the GNU General Public License for more |
|
16 |
// details. |
|
17 |
// |
|
18 |
// You should have received a copy of the GNU General |
|
19 |
// Public License along with the TXM platform. If not, see |
|
20 |
// http://www.gnu.org/licenses. |
|
21 |
// |
|
22 |
// |
|
23 |
// |
|
24 |
// $LastChangedDate: 2015-05-13 09:46:56 +0200 (Wed, 13 May 2015) $ |
|
25 |
// $LastChangedRevision: 2967 $ |
|
26 |
// $LastChangedBy: mdecorde $ |
|
27 |
// |
|
28 |
package org.txm.searchengine.core; |
|
29 |
|
|
30 |
import java.util.ArrayList; |
|
31 |
import java.util.List; |
|
32 |
|
|
33 |
import org.txm.core.preferences.TXMPreferences; |
|
34 |
import org.txm.utils.logger.Log; |
|
35 |
|
|
36 |
/** |
|
37 |
* Implements a SearchEngine generic query with a query and a search engine. |
|
38 |
* |
|
39 |
* TODO stop using CQLQuery and TIGERQuery with this class |
|
40 |
*/ |
|
41 |
|
|
42 |
public class Query implements IQuery { |
|
43 |
|
|
44 |
public Query() { |
|
45 |
|
|
46 |
} |
|
47 |
|
|
48 |
/** |
|
49 |
* Converts the specified list of Query to a string. |
|
50 |
* Queries strings are separated by a tabulation. |
|
51 |
* |
|
52 |
* @param queries |
|
53 |
* @return |
|
54 |
*/ |
|
55 |
public static String queriesToString(List<Query> queries) { |
|
56 |
if (queries == null) return ""; |
|
57 |
StringBuilder str = new StringBuilder(); |
|
58 |
for (int i = 0; i < queries.size(); i++) { |
|
59 |
if (i > 0) { |
|
60 |
str.append(TXMPreferences.LIST_SEPARATOR); |
|
61 |
} |
|
62 |
Query q = queries.get(i); |
|
63 |
str.append(q.getQueryString()); |
|
64 |
str.append(TXMPreferences.LIST_SEPARATOR + q.getSearchEngine().getName()); |
|
65 |
} |
|
66 |
return str.toString(); |
|
67 |
} |
|
68 |
|
|
69 |
public boolean canBeMultiLine() { |
|
70 |
return false; |
|
71 |
} |
|
72 |
|
|
73 |
/** |
|
74 |
* Converts the specified string to a list of Query. |
|
75 |
* Input string must contains queries separated by a tabulation. |
|
76 |
* |
|
77 |
* A query is composed of a engine name + tabulation + query |
|
78 |
* |
|
79 |
* if the String list is odd, the |
|
80 |
* |
|
81 |
* @param str |
|
82 |
* @return |
|
83 |
*/ |
|
84 |
public static List<Query> stringToQueries(String str) { |
|
85 |
|
|
86 |
ArrayList<Query> queries = new ArrayList<>(); |
|
87 |
if (str == null || str.length() == 0) { |
|
88 |
return queries; |
|
89 |
} |
|
90 |
String[] split = str.split(TXMPreferences.LIST_SEPARATOR); |
|
91 |
|
|
92 |
for (int i = 0; i + 1 < split.length; i = i + 2) { |
|
93 |
String s = split[i]; |
|
94 |
String eName = split[i+1]; |
|
95 |
SearchEngine e = SearchEnginesManager.getSearchEngine(eName); |
|
96 |
if (e == null) { |
|
97 |
Log.warning("Error: unknown search engine: "+eName); |
|
98 |
continue; |
|
99 |
} |
|
100 |
|
|
101 |
Query q = e.newQuery(); |
|
102 |
q.setQuery(s); |
|
103 |
queries.add(q); |
|
104 |
} |
|
105 |
return queries; |
|
106 |
} |
|
107 |
|
|
108 |
/** |
|
109 |
* Converts the specified string to a Query. |
|
110 |
* Input string must contains queries separated by a tabulation. |
|
111 |
* |
|
112 |
* @param str |
|
113 |
* @return |
|
114 |
*/ |
|
115 |
public static Query stringToQuery(String str) { |
|
116 |
|
|
117 |
String[] split = str.split(TXMPreferences.LIST_SEPARATOR, 2); |
|
118 |
String eName = "CQP"; |
|
119 |
if (split[1] != null) { |
|
120 |
eName = split[1]; |
|
121 |
} |
|
122 |
|
|
123 |
SearchEngine e = SearchEnginesManager.getSearchEngine(eName); |
|
124 |
return new Query(split[0], e); |
|
125 |
} |
|
126 |
|
|
127 |
|
|
128 |
/** |
|
129 |
* The query string. |
|
130 |
*/ |
|
131 |
protected SearchEngine engine = null; |
|
132 |
|
|
133 |
/** |
|
134 |
* The query string. |
|
135 |
*/ |
|
136 |
protected String queryString = ""; |
|
137 |
|
|
138 |
/** |
|
139 |
* The query friendly name. |
|
140 |
*/ |
|
141 |
protected String friendlyName = ""; |
|
142 |
|
|
143 |
/** |
|
144 |
* Instantiates a new query. |
|
145 |
* |
|
146 |
* @param queryString |
|
147 |
* the query string |
|
148 |
* |
|
149 |
* public Query(String queryString){ |
|
150 |
* this.queryString=queryString.trim(); } |
|
151 |
*/ |
|
152 |
public Query(String queryString, SearchEngine engine) { |
|
153 |
if (queryString != null) { |
|
154 |
this.queryString = queryString.trim(); |
|
155 |
} |
|
156 |
else { |
|
157 |
this.queryString = ""; |
|
158 |
} |
|
159 |
|
|
160 |
this.engine = engine; |
|
161 |
} |
|
162 |
|
|
163 |
@Override |
|
164 |
public Query setName(String name) { |
|
165 |
this.friendlyName = name; |
|
166 |
return this; |
|
167 |
} |
|
168 |
|
|
169 |
@Override |
|
170 |
public String getName() { |
|
171 |
if (friendlyName == null || friendlyName.length() == 0) return queryString; |
|
172 |
|
|
173 |
return friendlyName; |
|
174 |
} |
|
175 |
|
|
176 |
@Override |
|
177 |
public boolean equals(IQuery q) { |
|
178 |
return this.engine.equals(q.getSearchEngine()) && this.getQueryString().equals(q.getQueryString()); |
|
179 |
} |
|
180 |
|
|
181 |
@Override |
|
182 |
public boolean equals(Object obj) { |
|
183 |
|
|
184 |
if (obj == null) return false; |
|
185 |
|
|
186 |
if (!(obj instanceof Query)) { |
|
187 |
return false; |
|
188 |
} |
|
189 |
if (this.queryString == null) return false; |
|
190 |
if (this.engine == null) return false; |
|
191 |
|
|
192 |
return this.queryString.equals(((Query) obj).queryString) && this.engine.equals(((Query) obj).engine); |
|
193 |
} |
|
194 |
|
|
195 |
@Override |
|
196 |
public IQuery fixQuery(String lang) { |
|
197 |
return new Query(queryString, this.engine); |
|
198 |
} |
|
199 |
|
|
200 |
|
|
201 |
/** |
|
202 |
* Gets the query string. |
|
203 |
* |
|
204 |
* @return the query string |
|
205 |
*/ |
|
206 |
@Override |
|
207 |
public final String getQueryString() { |
|
208 |
return queryString; |
|
209 |
} |
|
210 |
|
|
211 |
@Override |
|
212 |
public SearchEngine getSearchEngine() { |
|
213 |
return engine; |
|
214 |
} |
|
215 |
|
|
216 |
/** |
|
217 |
* Checks whatever the query is empty (null, empty or contains only double quotes) or not. |
|
218 |
* |
|
219 |
* @return true if empty otherwise false |
|
220 |
*/ |
|
221 |
@Override |
|
222 |
public boolean isEmpty() { |
|
223 |
return queryString == null || queryString.length() == 0 || "\"\"".equals(queryString); |
|
224 |
} |
|
225 |
|
|
226 |
@Override |
|
227 |
public IQuery setQuery(String rawQuery) { |
|
228 |
queryString = rawQuery; |
|
229 |
return this; |
|
230 |
} |
|
231 |
|
|
232 |
/** |
|
233 |
* Creates a readable formated string from the query. |
|
234 |
* |
|
235 |
* @return |
|
236 |
*/ |
|
237 |
@Override |
|
238 |
public String asString() { |
|
239 |
return (friendlyName != null?friendlyName:"")+"<" + this.queryString + ">"; //$NON-NLS-1$ //$NON-NLS-2$ |
|
240 |
} |
|
241 |
|
|
242 |
|
|
243 |
/* |
|
244 |
* (non-Javadoc) |
|
245 |
* @see java.lang.Object#toString() |
|
246 |
*/ |
|
247 |
@Override |
|
248 |
public String toString() { |
|
249 |
return queryString; |
|
250 |
} |
|
251 |
|
|
252 |
public static Object toPrettyString(List<Query> queries) { |
|
253 |
|
|
254 |
if (queries == null) return ""; |
|
255 |
StringBuilder str = new StringBuilder(); |
|
256 |
for (int i = 0; i < queries.size(); i++) { |
|
257 |
if (i > 0) { |
|
258 |
str.append(TXMPreferences.LIST_SEPARATOR); |
|
259 |
} |
|
260 |
Query q = queries.get(i); |
|
261 |
str.append(q.getQueryString()); |
|
262 |
//str.append(TXMPreferences.LIST_SEPARATOR + q.getSearchEngine().getName()); |
|
263 |
} |
|
264 |
return str.toString(); |
|
265 |
} |
|
266 |
} |
|
0 | 267 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/Selection.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
|
|
6 |
import org.txm.objects.Match; |
|
7 |
|
|
8 |
public abstract class Selection { |
|
9 |
|
|
10 |
public abstract List<? extends Match> getMatches() throws Exception; |
|
11 |
|
|
12 |
public abstract List<? extends Match> getMatches(int from, int to) throws Exception; |
|
13 |
|
|
14 |
public abstract int getNMatch() throws Exception; |
|
15 |
|
|
16 |
public abstract IQuery getQuery(); |
|
17 |
|
|
18 |
public abstract boolean isTargetUsed() throws Exception; |
|
19 |
|
|
20 |
public abstract void drop() throws Exception; |
|
21 |
|
|
22 |
public abstract boolean delete(int iMatch); |
|
23 |
|
|
24 |
public abstract boolean delete(Match match); |
|
25 |
|
|
26 |
public abstract boolean delete(ArrayList<Match> matchesToRemove); |
|
27 |
} |
|
0 | 28 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/messages/messages.properties (revision 3659) | ||
---|---|---|
1 |
#TXM messages generated by the PluginMessagesManager class |
|
2 |
#Fri Jun 10 16:36:03 CEST 2022 |
|
3 |
deletingQueryResultP0=Deleting query result {0}… |
|
4 |
deletingSubcorpusP0=Deleting sub-corpus {0}… |
|
5 |
info_computingCorpusP0=Computing corpus {0}... |
|
6 |
info_computingPartXWithQueryZ=Computing the part {0} with query {1}... |
|
7 |
info_computingTheP0PartitionOfTheP1Corpus=Partition {0} of {1} corpus... |
|
8 |
info_computingTheP0SubCorpusOfP1CommaQueryP2=Sub-corpus {0} of {1} {2}... |
|
9 |
info_computingTheP0SubCorpusOfP1CommaStructureP2CommaPropertyP3ColonP4=Sub-corpus {0} of {1}, structure {2}, property {3}\: {4}... |
|
10 |
info_creatingNewPartition=Creating partition {1} of corpus {0}… |
|
11 |
info_creatingSubcorpusXFromCorpusYWithTheQueryZ=Creating sub-corpus {0} of corpus {1} with the query {2}… |
|
12 |
info_deletingPartition=Deleting partition {0}… |
|
13 |
info_doneP0Parts={0} parts. |
|
14 |
info_partCreatedInXMs=Part {0} created in {1} ms. |
|
15 |
info_partitionCreatedInXMs=Partition {0} created in {1} ms. |
|
16 |
info_searchEngineStopped=Search engine stopped. |
|
17 |
info_stoppingSearchEngine=Stopping the search engine… |
|
18 |
sizeOfSubcorpusP0P1ComputedInP2Ms=Size of subcorpus {0} ({1}) computed in {2} ms. |
|
19 |
subcorpusP0CreatedInP1Ms=Sub-corpus {0} created in {1} ms. |
|
0 | 20 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/messages/messages_fr.properties (revision 3659) | ||
---|---|---|
1 |
#TXM messages generated by the PluginMessagesManager class |
|
2 |
#Fri Jun 10 16:36:03 CEST 2022 |
|
3 |
deletingQueryResultP0=Suppression du résultat de requête {0}… |
|
4 |
deletingSubcorpusP0=Suppression du sous-corpus {0}… |
|
5 |
info_computingCorpusP0=Calcul du corpus {0}... |
|
6 |
info_computingPartXWithQueryZ=Création de la partie {0} avec la requête {1}... |
|
7 |
info_computingTheP0PartitionOfTheP1Corpus=Partition {0} du corpus {1}... |
|
8 |
info_computingTheP0SubCorpusOfP1CommaQueryP2=Sous-corpus {0} de {1} {2}... |
|
9 |
info_computingTheP0SubCorpusOfP1CommaStructureP2CommaPropertyP3ColonP4=Sous-corpus {0} de {1}, structure {2}, propriété {3} \: {4}... |
|
10 |
info_creatingNewPartition=Création de la partition {1} du corpus {0}… |
|
11 |
info_creatingSubcorpusXFromCorpusYWithTheQueryZ=Création du sous-corpus {0} du corpus {1} avec la requête {2}… |
|
12 |
info_deletingPartition=Suppression de la partition {0}… |
|
13 |
info_doneP0Parts={0} parties. |
|
14 |
info_partCreatedInXMs=Partie {0} créée en {1} ms. |
|
15 |
info_partitionCreatedInXMs=Partition {0} créée en {1} ms. |
|
16 |
info_searchEngineStopped=Moteur de recherche arrêté. |
|
17 |
info_stoppingSearchEngine=Arrêt du moteur de recherche… |
|
18 |
sizeOfSubcorpusP0P1ComputedInP2Ms=Taille du sous-corpus {0} ({1}) calculée en {2} ms. |
|
19 |
subcorpusP0CreatedInP1Ms=Sous-corpus {0} créé en {1} ms. |
|
0 | 20 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/messages/SearchEngineCoreMessages.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core.messages; |
|
2 |
|
|
3 |
import org.eclipse.osgi.util.NLS; |
|
4 |
import org.txm.utils.messages.Utf8NLS; |
|
5 |
|
|
6 |
|
|
7 |
/** |
|
8 |
* Search engine core messages. |
|
9 |
* |
|
10 |
* @author mdecorde |
|
11 |
* @author sjacquot |
|
12 |
* |
|
13 |
*/ |
|
14 |
public class SearchEngineCoreMessages extends NLS { |
|
15 |
|
|
16 |
private static final String BUNDLE_NAME = "org.txm.searchengine.core.messages.messages"; //$NON-NLS-1$ |
|
17 |
|
|
18 |
public static String info_creatingNewPartition; |
|
19 |
|
|
20 |
public static String info_deletingPartition; |
|
21 |
|
|
22 |
public static String info_partCreatedInXMs; |
|
23 |
|
|
24 |
public static String info_partitionCreatedInXMs; |
|
25 |
|
|
26 |
public static String deletingQueryResultP0; |
|
27 |
|
|
28 |
public static String info_computingPartXWithQueryZ; |
|
29 |
|
|
30 |
public static String info_creatingSubcorpusXFromCorpusYWithTheQueryZ; |
|
31 |
|
|
32 |
public static String info_computingTheP0SubCorpusOfP1CommaStructureP2CommaPropertyP3ColonP4; |
|
33 |
|
|
34 |
public static String info_computingTheP0SubCorpusOfP1CommaQueryP2; |
|
35 |
|
|
36 |
public static String deletingSubcorpusP0; |
|
37 |
|
|
38 |
public static String sizeOfSubcorpusP0P1ComputedInP2Ms; |
|
39 |
|
|
40 |
public static String info_searchEngineStopped; |
|
41 |
|
|
42 |
public static String info_stoppingSearchEngine; |
|
43 |
|
|
44 |
public static String subcorpusP0CreatedInP1Ms; |
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
public static String info_computingTheP0PartitionOfTheP1Corpus; |
|
49 |
|
|
50 |
public static String info_computingCorpusP0; |
|
51 |
|
|
52 |
public static String info_doneP0Parts; |
|
53 |
|
|
54 |
|
|
55 |
|
|
56 |
|
|
57 |
static { |
|
58 |
// initialize resource bundle |
|
59 |
Utf8NLS.initializeMessages(BUNDLE_NAME, SearchEngineCoreMessages.class); |
|
60 |
} |
|
61 |
|
|
62 |
private SearchEngineCoreMessages() {} |
|
63 |
|
|
64 |
} |
|
0 | 65 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEnginesManager.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.List; |
|
5 |
|
|
6 |
import org.txm.Toolbox; |
|
7 |
import org.txm.core.engines.EngineType; |
|
8 |
import org.txm.core.engines.EnginesManager; |
|
9 |
import org.txm.objects.CorpusBuild; |
|
10 |
|
|
11 |
/** |
|
12 |
* Search engines manager. |
|
13 |
* |
|
14 |
* @author mdecorde |
|
15 |
* |
|
16 |
*/ |
|
17 |
// FIXME: useless class, the type and priority/order should be defined in org.txm.core.engines.EnginesManager extension point |
|
18 |
public class SearchEnginesManager extends EnginesManager<SearchEngine> { |
|
19 |
|
|
20 |
private static final long serialVersionUID = 8476457980915443357L; |
|
21 |
|
|
22 |
/** |
|
23 |
* |
|
24 |
* @return |
|
25 |
*/ |
|
26 |
public static SearchEngine getCQPSearchEngine() { |
|
27 |
return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("CQP"); //$NON-NLS-1$ |
|
28 |
} |
|
29 |
|
|
30 |
/** |
|
31 |
* |
|
32 |
* @return |
|
33 |
*/ |
|
34 |
public static SearchEngine getTIGERSearchEngine() { |
|
35 |
return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine("TIGER"); //$NON-NLS-1$ |
|
36 |
} |
|
37 |
|
|
38 |
/** |
|
39 |
* |
|
40 |
* @return |
|
41 |
*/ |
|
42 |
public static SearchEngine getSearchEngine(String name) { |
|
43 |
return (SearchEngine) Toolbox.getEngineManager(EngineType.SEARCH).getEngine(name); |
|
44 |
} |
|
45 |
|
|
46 |
@Override |
|
47 |
public boolean fetchEngines() { |
|
48 |
return this.fetchEngines(SearchEngine.EXTENSION_POINT_ID); |
|
49 |
} |
|
50 |
|
|
51 |
@Override |
|
52 |
public EngineType getEnginesType() { |
|
53 |
return EngineType.SEARCH; |
|
54 |
} |
|
55 |
|
|
56 |
public static List<SearchEngine> getAvailableEngines(CorpusBuild corpus) { |
|
57 |
List<SearchEngine> availables = new ArrayList<>(); |
|
58 |
SearchEnginesManager em = (SearchEnginesManager) Toolbox.getEngineManager(EngineType.SEARCH); |
|
59 |
for (String name : em.getEngines().keySet()) { |
|
60 |
SearchEngine engine = em.getEngine(name); |
|
61 |
if (engine.hasIndexes(corpus)) { |
|
62 |
availables.add(engine); |
|
63 |
} |
|
64 |
} |
|
65 |
return availables; |
|
66 |
} |
|
67 |
} |
|
0 | 68 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEngine.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
|
|
5 |
import org.txm.core.engines.Engine; |
|
6 |
import org.txm.objects.CorpusBuild; |
|
7 |
import org.txm.objects.Match; |
|
8 |
import org.txm.utils.LogMonitor; |
|
9 |
|
|
10 |
// FIXME: useless class |
|
11 |
public abstract class SearchEngine implements ISearchEngine { |
|
12 |
|
|
13 |
public static final String EXTENSION_POINT_ID = SearchEngine.class.getCanonicalName(); |
|
14 |
|
|
15 |
@Override |
|
16 |
public abstract String getName(); |
|
17 |
|
|
18 |
public boolean start() throws Exception { |
|
19 |
return start(new LogMonitor("Starting "+getName())); |
|
20 |
} |
|
21 |
|
|
22 |
public abstract Selection query(CorpusBuild corpus, IQuery query, String name, boolean saveQuery) throws Exception; |
|
23 |
|
|
24 |
public abstract Query newQuery(); |
|
25 |
|
|
26 |
/** |
|
27 |
* |
|
28 |
* @param corpus |
|
29 |
* @return true if the Engine can query the corpus |
|
30 |
*/ |
|
31 |
public abstract boolean hasIndexes(CorpusBuild corpus); |
|
32 |
|
|
33 |
public String getDetails() { |
|
34 |
return this.getClass()+ " "+this.toString(); |
|
35 |
} |
|
36 |
|
|
37 |
public boolean equals(SearchEngine e) { |
|
38 |
|
|
39 |
if (e == null) return false; |
|
40 |
if (this.getName() == null) return false; |
|
41 |
|
|
42 |
return this.getName().equals(e.getName()); |
|
43 |
} |
|
44 |
|
|
45 |
/** |
|
46 |
* |
|
47 |
* @param match |
|
48 |
* @param property |
|
49 |
* @return the first position property value |
|
50 |
*/ |
|
51 |
public abstract String getValueForProperty(Match match, SearchEngineProperty property); |
|
52 |
|
|
53 |
/** |
|
54 |
* |
|
55 |
* @param match |
|
56 |
* @param property |
|
57 |
* @return the positions property value |
|
58 |
*/ |
|
59 |
public abstract List<String> getValuesForProperty(Match match, SearchEngineProperty property); |
|
60 |
|
|
61 |
/** |
|
62 |
* |
|
63 |
* @return indicates if the SearchEngine queries need mumltiple lines to be written |
|
64 |
*/ |
|
65 |
public boolean hasMultiLineQueries() { |
|
66 |
return false; |
|
67 |
} |
|
68 |
} |
|
0 | 69 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/corpus/CorpusSearchException.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core.corpus; |
|
2 |
|
|
3 |
public class CorpusSearchException extends Exception { |
|
4 |
|
|
5 |
/** |
|
6 |
* |
|
7 |
*/ |
|
8 |
private static final long serialVersionUID = 3518861723206508596L; |
|
9 |
|
|
10 |
public CorpusSearchException(String message) { |
|
11 |
super(message); |
|
12 |
} |
|
13 |
|
|
14 |
public CorpusSearchException(String message, Throwable cause) { |
|
15 |
super(message, cause); |
|
16 |
} |
|
17 |
} |
|
0 | 18 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/QueryBasedTXMResult.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import org.txm.core.results.TXMResult; |
|
4 |
|
|
5 |
/** |
|
6 |
* abstract class of result built on query |
|
7 |
* |
|
8 |
* @author mdecorde |
|
9 |
* |
|
10 |
*/ |
|
11 |
public abstract class QueryBasedTXMResult extends TXMResult { |
|
12 |
|
|
13 |
|
|
14 |
public QueryBasedTXMResult(String parametersNodePath) { |
|
15 |
|
|
16 |
super(parametersNodePath); |
|
17 |
} |
|
18 |
|
|
19 |
public QueryBasedTXMResult(String parametersNodePath, TXMResult parent) { |
|
20 |
|
|
21 |
super(parametersNodePath, parent); |
|
22 |
} |
|
23 |
|
|
24 |
public QueryBasedTXMResult(TXMResult parent) { |
|
25 |
|
|
26 |
super(parent); |
|
27 |
} |
|
28 |
|
|
29 |
/** |
|
30 |
* |
|
31 |
* @return a query based on the result parameters |
|
32 |
*/ |
|
33 |
public abstract IQuery getQuery(); |
|
34 |
} |
|
0 | 35 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/SearchEnginePreferences.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import org.osgi.service.prefs.Preferences; |
|
4 |
import org.txm.core.preferences.TXMPreferences; |
|
5 |
|
|
6 |
|
|
7 |
public class SearchEnginePreferences extends TXMPreferences { |
|
8 |
|
|
9 |
/** |
|
10 |
* contains the last bundle version setting the TreeTagger models directory |
|
11 |
*/ |
|
12 |
public static final String DEFAULT_SEARCH_ENGINE = "default_search_engine"; //$NON-NLS-1$ |
|
13 |
|
|
14 |
/** |
|
15 |
* if set, the available search engines are shown in TXM interfaces |
|
16 |
*/ |
|
17 |
public static final String SHOW_SEARCH_ENGINES = "show_search_engines"; //$NON-NLS-1$ |
|
18 |
|
|
19 |
/** |
|
20 |
* Gets the instance. |
|
21 |
* |
|
22 |
* @return the instance |
|
23 |
*/ |
|
24 |
public static TXMPreferences getInstance() { |
|
25 |
if (!TXMPreferences.instances.containsKey(SearchEnginePreferences.class)) { |
|
26 |
new SearchEnginePreferences(); |
|
27 |
} |
|
28 |
return TXMPreferences.instances.get(SearchEnginePreferences.class); |
|
29 |
} |
|
30 |
|
|
31 |
@Override |
|
32 |
public void initializeDefaultPreferences() { |
|
33 |
super.initializeDefaultPreferences(); |
|
34 |
|
|
35 |
// Default preferences if no org.txm.udpipe.core fragment is found |
|
36 |
Preferences preferences = this.getDefaultPreferencesNode(); |
|
37 |
|
|
38 |
preferences.put(DEFAULT_SEARCH_ENGINE, "CQP"); |
|
39 |
preferences.putBoolean(SHOW_SEARCH_ENGINES, true); |
|
40 |
} |
|
41 |
} |
|
0 | 42 |
TXM/trunk/bundles/org.txm.searchengine.core/src/org/txm/searchengine/core/IQuery.java (revision 3659) | ||
---|---|---|
1 |
package org.txm.searchengine.core; |
|
2 |
|
|
3 |
import org.eclipse.osgi.util.NLS; |
|
4 |
|
|
5 |
/** |
|
6 |
* Represent a search engine query |
|
7 |
* |
|
8 |
* @author mdecorde |
|
9 |
* |
|
10 |
*/ |
|
11 |
public interface IQuery { |
|
12 |
|
|
13 |
public String getQueryString(); |
|
14 |
|
|
15 |
public boolean isEmpty(); |
|
16 |
|
|
17 |
/** |
|
18 |
* |
|
19 |
* @return the Query SearchEngine that can resolve the query |
|
20 |
*/ |
|
21 |
public SearchEngine getSearchEngine(); |
|
22 |
|
|
23 |
/** |
|
24 |
* update the query |
|
25 |
* |
|
26 |
* @param rawQuery |
|
27 |
* @return this |
|
28 |
*/ |
|
29 |
public IQuery setQuery(String rawQuery); |
|
30 |
|
|
31 |
/** |
|
32 |
* update the query name |
|
33 |
* |
|
34 |
* @param rawQuery |
|
35 |
* @return this |
|
36 |
*/ |
|
37 |
public String getName(); |
|
38 |
|
|
39 |
/** |
|
40 |
* update the query name for frienddier access |
|
41 |
* |
|
42 |
* @param name |
|
43 |
* @return this |
|
44 |
*/ |
|
45 |
public IQuery setName(String name); |
|
46 |
|
|
47 |
/** |
|
48 |
* fix the query using sugar syntax rules |
|
49 |
* |
|
50 |
* @return this |
|
51 |
*/ |
|
52 |
public IQuery fixQuery(String lang); |
|
53 |
|
|
54 |
public boolean equals(IQuery q); |
|
55 |
|
|
56 |
public String asString(); |
|
57 |
|
|
58 |
public boolean canBeMultiLine(); |
|
59 |
|
|
60 |
public static String toPrefString(IQuery query) { |
|
61 |
return query.getSearchEngine().getName()+"\t"+query.getQueryString(); |
|
62 |
} |
|
63 |
|
|
64 |
public static IQuery fromPrefString(String prefString) { |
|
65 |
|
|
66 |
String[] split = prefString.split("\t", 2); |
|
67 |
|
|
68 |
String engineName = null; |
|
69 |
String queryString = null; |
|
70 |
|
|
71 |
|
|
72 |
if (split.length == 2) { |
|
73 |
engineName = split[0]; |
|
74 |
queryString = split[1]; |
|
75 |
} else { |
|
76 |
engineName = "CQP"; |
|
77 |
queryString = split[0]; |
|
78 |
} |
|
79 |
|
|
80 |
SearchEngine se = SearchEnginesManager.getSearchEngine(engineName); |
|
81 |
if (se == null) { |
|
82 |
throw new IllegalArgumentException(NLS.bind("No SearchEngine {0} found.", engineName)); |
|
83 |
} |
|
84 |
IQuery query = se.newQuery(); |
|
85 |
query.setQuery(queryString); |
|
86 |
return query; |
|
87 |
} |
|
88 |
} |
|
0 | 89 |
TXM/trunk/bundles/org.txm.searchengine.core/build.properties (revision 3659) | ||
---|---|---|
1 |
#Fri Jul 06 10:25:16 CEST 2018 |
|
2 |
output..=bin/ |
|
3 |
bin.includes = META-INF/,\ |
|
4 |
.,\ |
|
5 |
plugin.xml,\ |
|
6 |
OSGI-INF/ |
|
7 |
source..=src/ |
|
8 |
#qualifier=svn |
|
0 | 9 |
TXM/trunk/bundles/org.txm.searchengine.core/OSGI-INF/l10n/bundle.properties (revision 3659) | ||
---|---|---|
1 |
#TXM OSGI messages generated by the PluginMessagesManager class |
|
2 |
#Fri Jun 10 16:36:03 CEST 2022 |
|
3 |
Bundle-Name=Searchengine core |
|
4 |
EngineManager.description=Manage the search engines |
|
5 |
extension-point.name=Search Engine |
|
0 | 6 |
TXM/trunk/bundles/org.txm.searchengine.core/plugin.xml (revision 3659) | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<?eclipse version="3.4"?> |
|
3 |
<plugin> |
|
4 |
<extension-point id="org.txm.searchengine.core.SearchEngine" name="Search Engine" schema="schema/org.txm.searchengine.exsd"/> |
|
5 |
<extension |
|
6 |
point="org.txm.core.engines.EnginesManager"> |
|
7 |
<EngineManager |
|
8 |
class="org.txm.searchengine.core.SearchEnginesManager" |
|
9 |
description="Manage the search engines" |
|
10 |
name="org.txm.searchengine.core.SearchEngines"> |
|
11 |
</EngineManager> |
|
12 |
</extension> |
|
13 |
<extension |
|
14 |
point="org.eclipse.core.runtime.preferences"> |
|
15 |
<initializer |
|
16 |
class="org.txm.searchengine.core.SearchEnginePreferences"> |
|
17 |
</initializer> |
|
18 |
</extension> |
|
19 |
|
|
20 |
</plugin> |
|
0 | 21 |
TXM/trunk/bundles/org.txm.searchengine.core/.settings/org.eclipse.core.resources.prefs (revision 3659) | ||
---|---|---|
1 |
eclipse.preferences.version=1 |
|
2 |
encoding//src/org/txm/searchengine/core/messages/messages_fr.properties=UTF-8 |
|
0 | 3 |
TXM/trunk/bundles/org.txm.searchengine.core/.classpath (revision 3659) | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<classpath> |
|
3 |
<classpathentry kind="con" |
|
4 |
path="org.eclipse.jdt.launching.JRE_CONTAINER" /> |
|
5 |
<classpathentry kind="con" |
|
6 |
path="org.eclipse.pde.core.requiredPlugins"> |
|
7 |
<accessrules> |
|
8 |
<accessrule kind="accessible" pattern="**" /> |
|
9 |
</accessrules> |
|
10 |
</classpathentry> |
|
11 |
<classpathentry kind="src" path="src" /> |
|
12 |
<classpathentry kind="output" path="bin" /> |
|
13 |
</classpath> |
|
0 | 14 |
TXM/trunk/bundles/org.txm.searchengine.core/META-INF/MANIFEST.MF (revision 3659) | ||
---|---|---|
1 |
Manifest-Version: 1.0 |
|
2 |
Export-Package: org.txm.searchengine.core,org.txm.searchengine.core.co |
|
3 |
rpus,org.txm.searchengine.core.messages |
|
4 |
Bundle-SymbolicName: org.txm.searchengine.core;singleton:=true |
|
5 |
Bundle-Version: 1.0.0.qualifier |
|
6 |
Bundle-Name: Searchengine core |
|
7 |
Require-Bundle: org.txm.core;bundle-version="0.7.0";visibility:=reexpo |
|
8 |
rt |
|
9 |
Bundle-ActivationPolicy: lazy |
|
10 |
Bundle-ManifestVersion: 2 |
|
11 |
Bundle-RequiredExecutionEnvironment: JavaSE-16 |
|
12 |
Bundle-Vendor: Textometrie.org |
|
13 |
Automatic-Module-Name: org.txm.searchengine.core |
|
14 |
|
|
0 | 15 |
TXM/trunk/bundles/org.txm.searchengine.core/schema/org.txm.searchengine.exsd (revision 3659) | ||
---|---|---|
1 |
<?xml version='1.0' encoding='UTF-8'?> |
|
2 |
<!-- Schema file written by PDE --> |
|
3 |
<schema targetNamespace="org.txm.searchengine.core" xmlns="http://www.w3.org/2001/XMLSchema"> |
|
4 |
<annotation> |
|
5 |
<appinfo> |
|
6 |
<meta.schema plugin="org.txm.searchengine.core" id="org.txm.searchengine.core.SearchEngine" name="Search Engine"/> |
|
7 |
</appinfo> |
|
8 |
<documentation> |
|
9 |
[Enter description of this extension point.] |
|
10 |
</documentation> |
|
11 |
</annotation> |
|
12 |
|
|
13 |
<element name="extension"> |
|
14 |
<annotation> |
|
15 |
<appinfo> |
|
16 |
<meta.element /> |
|
17 |
</appinfo> |
|
18 |
</annotation> |
|
19 |
<complexType> |
|
20 |
<choice minOccurs="1" maxOccurs="unbounded"> |
|
21 |
<element ref="SearchEngine"/> |
|
22 |
</choice> |
|
23 |
<attribute name="point" type="string" use="required"> |
|
24 |
<annotation> |
|
25 |
<documentation> |
|
26 |
|
|
27 |
</documentation> |
|
28 |
</annotation> |
|
29 |
</attribute> |
|
30 |
<attribute name="id" type="string"> |
|
31 |
<annotation> |
|
32 |
<documentation> |
|
33 |
|
|
34 |
</documentation> |
|
35 |
</annotation> |
|
36 |
</attribute> |
|
37 |
<attribute name="name" type="string"> |
|
38 |
<annotation> |
|
39 |
<documentation> |
|
40 |
|
|
41 |
</documentation> |
|
42 |
<appinfo> |
|
43 |
<meta.attribute translatable="true"/> |
|
44 |
</appinfo> |
|
45 |
</annotation> |
|
46 |
</attribute> |
|
47 |
</complexType> |
|
48 |
</element> |
|
49 |
|
|
50 |
<element name="SearchEngine"> |
|
51 |
<complexType> |
|
52 |
<attribute name="class" type="string"> |
|
53 |
<annotation> |
|
54 |
<documentation> |
|
55 |
|
|
56 |
</documentation> |
|
57 |
<appinfo> |
|
58 |
<meta.attribute kind="java" basedOn="org.txm.searchengine.core.SearchEngine:"/> |
|
59 |
</appinfo> |
|
60 |
</annotation> |
|
61 |
</attribute> |
|
62 |
</complexType> |
|
63 |
</element> |
|
64 |
|
|
65 |
<annotation> |
|
66 |
<appinfo> |
|
67 |
<meta.section type="since"/> |
|
68 |
</appinfo> |
|
69 |
<documentation> |
|
70 |
[Enter the first release in which this extension point appears.] |
|
71 |
</documentation> |
|
72 |
</annotation> |
|
73 |
|
|
74 |
<annotation> |
|
75 |
<appinfo> |
|
76 |
<meta.section type="examples"/> |
|
77 |
</appinfo> |
|
78 |
<documentation> |
|
79 |
[Enter extension point usage example here.] |
|
80 |
</documentation> |
|
81 |
</annotation> |
|
82 |
|
|
83 |
<annotation> |
|
84 |
<appinfo> |
|
85 |
<meta.section type="apiinfo"/> |
|
86 |
</appinfo> |
|
87 |
<documentation> |
|
88 |
[Enter API information here.] |
|
89 |
</documentation> |
|
90 |
</annotation> |
|
91 |
|
|
92 |
<annotation> |
|
93 |
<appinfo> |
|
94 |
<meta.section type="implementation"/> |
|
95 |
</appinfo> |
|
96 |
<documentation> |
|
97 |
[Enter information about supplied implementation of this extension point.] |
|
98 |
</documentation> |
|
99 |
</annotation> |
|
100 |
|
|
101 |
|
|
102 |
</schema> |
|
0 | 103 |
TXM/trunk/bundles/org.txm.rcp.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages_fr.properties (revision 3659) | ||
---|---|---|
1 |
#/home/mdecorde/workspace047/org.eclipse.equinox.p2.ui.nl_fr/org/eclipse/equinox/internal/p2/ui/messages_fr.properties + /home/mdecorde/workspace047/org.txm.rcp.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages_fr.properties |
|
2 |
#Tue Apr 15 11:45:28 CEST 2014 |
|
3 |
QueryableMetadataRepositoryManager_LoadRepositoryProgress=Prise de contact avec {0} |
|
4 |
RevertIUCommandTooltip=Revenir ? une pr?c?dente configuration install?e |
|
5 |
RepositoryManipulationPage_Edit=&Editer |
|
6 |
UpdateIUCommandTooltip=Voir si des mises ? jour sont disponibles pour les ?l?ments s?lectionn?s |
|
7 |
IUGeneralInfoPropertyPage_IdentifierLabel=Identificateur \: |
|
8 |
UninstallIUOperationLabel=D?sinstaller |
|
9 |
RevertDialog_ConfigsLabel=Configurations &pr?c?dentes\: |
|
10 |
RepositoryManipulationPage_RefreshConnection=&Recharger |
|
11 |
QueryableUpdates_UpdateListProgress=Assembling list of updates |
|
12 |
RemedyElementInstalledVersion=Version install?e \: |
|
13 |
RepositorySelectionGroup_PrefPageName=Sites de logiciels |
|
14 |
TrustCertificateDialog_Title=Faites-vous confiance ? ces certificats?? |
|
15 |
RevertProfilePage_ProfileTagColumn=Balise |
|
16 |
UpdateManagerCompatibility_InvalidSitesTitle=Invalid Sites File |
|
17 |
RepositoryManipulationPage_Add=&Ajouter... |
|
18 |
RepositoryNameAndLocationDialog_Title=Modifier le site |
|
19 |
UpdateIUProgress=Mise ? jour... |
|
20 |
RepositoryManipulationPage_LocationColumnTitle=Emplacement |
|
21 |
UpdateManagerCompatibility_InvalidSiteFileMessage=L''emplacement s?lectionn? ne contient pas de site de mise ? jour. Veuillez choisir un autre dossier. |
|
22 |
AvailableIUsPage_RepoFilterInstructions=Vous pouvez entrer l''emplacement du site de mise ? jour. En appuyant sur "Entr?e" le contenu du site est affich?. |
|
23 |
UpdateIUOperationTask=Mise ? jour logicielle en cours |
|
24 |
RepositoryGroup_SelectRepositoryDirectory=S?lectionnez un dossier racine de r?f?rentiel?\: |
|
25 |
AvailableIUsPage_SingleSelectionCount={0} objet s?lectionn? |
|
26 |
ResolutionWizardPage_Canceled=L''op?ration a ?t? annul?e. |
|
27 |
AvailableIUsPage_SelectASite=S?lectionnez un site ou entrez l''adresse d''un site |
|
28 |
AddRepositoryDialog_LocationLabel=Emp&lacement \: |
|
29 |
UpdateRemediationPage_Description=La mise ? jour n''a pas pu se finir. |
|
30 |
ProvUI_IdColumnTitle=ID |
|
31 |
RemediationPage_SubDescription= Veuillez choisir une de ces solution alternative. |
|
32 |
RevertProfilePage_ProfileTimestampColumn=Date |
|
33 |
RepositoryManipulationPage_Description=Les sites activ?s seront utilis?s pour trouver les logiciels disponibles. Les sites d?sactiv?s sont ignor?s. |
|
34 |
RepositoryManipulatorDropTarget_DragAndDropJobLabel=Op?ration de glisser-d?poser |
|
35 |
ColocatedRepositoryTracker_PromptForSiteLocationEdit=Pas de site de mise ? jour trouv? ? l''emplacement {0}. Voulez-vous modifier l''emplacement ? |
|
36 |
QueriedElementWrapper_NoItemsExplanation=Pas de mise ? jour disponible |
|
37 |
AvailableIUsPage_LocalSites=--Sites de mise ? jour locaux-- |
|
38 |
InstallIUOperationLabel=Installer |
|
39 |
IUGeneralInfoPropertyPage_DescriptionLabel=Description |
|
40 |
RemediationPage_SolutionDetails=D?tails de la solution |
|
41 |
ProvisioningOperationRunner_CannotApplyChanges=Les changements ne peuvent pas ?tre appliqu?s pendant que l''application est en cours d''ex?cution. Vous devez red?marrer l''application pour que les changements prennent effet. |
|
42 |
InstallIUCommandLabel=&Installer |
|
43 |
RepositoryManipulationPage_RefreshOperationCanceled=Op?ration annul?e. |
|
44 |
RemedyElementRequestedVersion=Version demand?e \: |
|
45 |
RevertProfilePage_CompareTooltip=Comparer les configurations d''installation s?lectionn?es |
|
46 |
RevertProfilePage_RevertLabel=R?&tablir |
|
47 |
RepositoryManipulationPage_Export=E&xporter... |
|
48 |
RevertProfilePage_DeleteMultipleConfigurationsTitle=Supprimer les configurations |
|
49 |
UpdateWizardPage_Description=V?rifier les mises ? jour. |
|
50 |
Label_Repositories=Sites connus |
|
51 |
RepositoryGroup_ArchivedRepoBrowseButton=&Archive |
|
52 |
UpdateIUOperationLabel=Mettre ? jour |
|
53 |
ResolutionWizardPage_ErrorStatus=L''op?ration ne peut pas ?tre termin?e. Voir les d?tails. |
|
54 |
Label_Profiles=All Software Profiles |
|
55 |
ProvUIMessages_SavedNotAccepted_EnterFor_0=Saved login details were not accepted. Please provide login details for {0} |
|
56 |
RemedyCategoryChanged=Sera mis ? jour |
|
57 |
ResolutionWizardPage_RelaxedConstraints=Install software with with relaxed constraints. |
|
58 |
UninstallIUCommandLabel=&D?sinstaller |
|
59 |
ResolutionWizardPage_RelaxedConstraintsTip=Instructs p2 to install the selected software with with relaxed constraints. |
|
60 |
AddRepositoryDialog_NameLabel=&Nom \: |
|
61 |
AddRepositoryDialog_Title=Ajouter un repository |
|
62 |
RepositorySelectionGroup_NameAndLocationSeparator=\ - |
|
63 |
MetadataRepositoryElement_RepositoryLoadError=Erreur lors du chargement du site {0} |
|
64 |
ProvUIMessages_NotAccepted_EnterFor_0=Login details were not accepted. Please provide login details for {0} |
|
65 |
RepositoryManipulationPage_NameColumnTitle=Nom |
|
66 |
IULicensePropertyPage_NoLicense=Aucune information de licence n''a ?t? fournie. |
|
67 |
AvailableIUGroup_LoadingRepository=Chargement {0} |
|
68 |
IUGeneralInfoPropertyPage_ProviderLabel=Fournisseur \: |
|
69 |
RepositorySelectionGroup_GenericSiteLinkTitle=<a>Modifier la liste des sites logiciels</a> |
|
70 |
RemoveColocatedRepositoryAction_Label=&Retirer des sites |
|
71 |
IUGeneralInfoPropertyPage_CouldNotOpenBrowser=Impossible d''ouvrir le navigateur. |
|
72 |
RemediationPage_NoSolutionFound=Pas de solution trouv?e. |
|
73 |
ApplyProfileChangesDialog_Restart=&Red?marrer maintenant |
|
74 |
AcceptLicensesWizardPage_LicenseTextLabel=&Texte de la licence \: |
|
75 |
RepositoryDetailsLabelProvider_Disabled=D?sactiv? |
|
76 |
AcceptLicensesWizardPage_AcceptMultiple=J''&accepte les termes des licences |
|
77 |
ApplyProfileChangesDialog_NotYet=&Pas maintenant |
|
78 |
AvailableIUsPage_GotoProperties=<a>Plus...</a> |
|
79 |
RepositoryManipulationPage_Import=&Importer... |
|
80 |
IUDetailsLabelProvider_ComputingSize=Calcul de la taille |
|
81 |
RemedyCategoryNotAdded=Ne sera pas install? |
|
82 |
RepositoryManipulationPage_DefaultFilterString=entrer le texte du filtre |
|
83 |
RevertIUCommandLabel=&Revenir |
|
84 |
RemedyCategoryRemoved=Sera desinstall? |
|
85 |
AvailableIUsPage_AllSites=--Sites de mise ? jour-- |
|
86 |
UpdateManagerCompatibility_ExportSitesTitle=Exporter les sites |
|
87 |
UpdateSingleIUPage_SingleUpdateDescription=Une mise ? jour a ?t? trouv?e pour {0}. |
|
88 |
IUGeneralInfoPropertyPage_VersionLabel=Version \: |
|
89 |
UpdateActionRemediationJobTask=La mise ? jour n''a pas pu ?tre compl?t?e. Recherche de solution alternative... |
|
90 |
UserValidationDialog_SavePasswordButton=Sauve&garder le mot de passe |
|
91 |
QueriedElementWrapper_NoCategorizedItemsExplanation=Il n''y a pas d''item cat?goris?. |
|
92 |
LoadMetadataRepositoryJob_ContactSitesProgress=Contact du site de mise ? jour... |
|
93 |
AvailableIUWrapper_AllAreInstalled=tous les items sont install?s. |
|
94 |
UserValidationDialog_UsernameLabel=&Username\: |
|
95 |
PreselectedIUInstallWizard_Title=Installer |
|
96 |
UninstallWizardPage_Title=D?tails de d?sinstallation |
|
97 |
UpdateManagerCompatibility_ImportSitesTitle=Importer des sites |
|
98 |
AcceptLicensesWizardPage_ReviewLicensesDescription=Les licences doivent ?tre accept?es avant que l''installation puisse commencer. |
|
99 |
OptionalPlatformRestartMessage=Vous aurez besoin de red?marrer {0} pour que les effets de la mise ? jour prennent effet. |
|
100 |
RefreshAction_Label=&Actualiser |
|
101 |
PlatformRestartMessage=Vous aurez besoin de red?marrer {0} pour que les effets de la mise ? jour prennent effet. Voulez-vous red?marrer maintenant ? |
|
102 |
AvailableIUGroup_NoSitesConfiguredExplanation=Il n''y a pas de site de mise ? jour disponible |
|
103 |
QueryableProfileRegistry_QueryProfileProgress=R?cup?ration des profils |
|
104 |
ColocatedRepositoryTracker_SiteNotFoundTitle=Erreur lors du contact du site de mise ? jour |
|
105 |
RevertProfilePage_ConfirmDeleteSingleConfig=Deleting the configuration from the installation history will free up the disk space used to store it. However, you will no longer be able to revert your installation to this configuration. Are you sure you want to delete it? |
|
106 |
ResolutionWizardPage_WarningInfoStatus=Your original request has been modified. See the details. |
|
107 |
PreselectedIUInstallWizard_Description=S?lectionner les items ? installer. |
|
108 |
RevertProfilePage_NoProfile=This installation has not been configured properly for accessing the installation history. See the error log for details. |
|
109 |
RemediationPage_InstalledSection_AllowInstalledUpdate=Update items already installed |
|
110 |
RepositorySelectionGroup_PrefPageLink=Trouvez plus de logiciels en modifiant les pr?f?rences de <a>"{0}"</a>. |
|
111 |
RemediationPage_BestSolutionBeingInstalledRelaxed=Keep my installation the same and modify the items being installed to be compatible |
|
112 |
ProvDropAdapter_UnsupportedDropOperation=Op?ration de d?pose non support?e |
|
113 |
RemediationPage_InstalledSection=How do you want to alter the current installation? |
|
114 |
IUCopyrightPropertyPage_ViewLinkLabel=Voir les mentions compl?tes de droit d''auteur?\: |
|
115 |
IUViewQueryContext_NoCategorizedItemsDescription=You can uncheck the ''Group items by category'' check box to see items without categories. |
|
116 |
ProvUI_NameColumnTitle=Nom |
|
117 |
UpdateIUCommandLabel=&Mise ? jour |
|
118 |
RemediationPage_InstalledSection_AllowInstalledRemoval=Remove items already installed |
|
119 |
RepositoryTracker_DuplicateLocation=Emplacement en double |
|
120 |
UpdateManagerCompatibility_UnableToOpenManageConfiguration=Unable to open the Classic Update Manager ''Manage Configuration'' dialog. |
|
121 |
ProvElementContentProvider_FetchJobTitle=R?cup?ration des ?l?ments |
|
122 |
ProvUI_ErrorDuringApplyConfig=Error while attempting to apply changes. You must restart the application for changes to take effect. |
|
123 |
Policy_RequiresUpdateManagerTitle=Installation non support?e |
|
124 |
AcceptLicensesWizardPage_ItemsLabel=&Licences\: |
|
125 |
AvailableIUsPage_ResolveAllCheckbox=&Contact all update sites during install to find required software |
|
126 |
RepositoryManipulationPage_DisableButton=&D?sactiver |
|
127 |
RepositoryGroup_URLRequired=Vous devez indiquer un emplacement |
|
128 |
IUDetailsLabelProvider_Bytes={0} octets |
|
129 |
QueriedElementWrapper_SiteNotFound=N''a pas pu trouver {0} |
|
130 |
UpdateManagerCompatibility_UnableToOpenFindAndInstall=Unable to open the Classic Update Manager ''Find and Install'' wizard. |
|
131 |
RepositoryManipulationPage_EnabledColumnTitle=Activ? |
|
132 |
RemedyElementBeingInstalledVersion=Version en cours d''installation \: |
|
133 |
RepositoryManipulationPage_Title=Sites de logiciels disponibles |
|
134 |
ApplyProfileChangesDialog_ApplyChanges=&Appliquer les changements tout de suite |
|
135 |
ResolutionWizardPage_NoSelections=There were no installable units selected when the plan was computed. |
|
136 |
IUCopyrightPropertyPage_NoCopyright=Aucune information de droits d''auteur n''a ?t? fournie. |
|
137 |
ProvUI_InformationTitle=Information |
|
138 |
Policy_RequiresUpdateManagerMessage=A feature that you have selected uses install procedures that are not compatible with the current installation support. This feature can only be installed by the older Update Manager. Do you want to launch the older Update Manager? |
|
139 |
AvailableIUsPage_FilterOnEnvCheckBox=Show only software applicable to target environment |
|
140 |
ServiceUI_unsigned_message=Avertissement \: Vous installez un logiciel qui contient du contenu non sign?. L''authenticit? ou la validit? de ce logiciel ne peut ?tre ?tablie. Voulez-vous continuer l''installation ? |
|
141 |
InstallIUOperationTask=Installation de logiciel en cours |
|
142 |
ProvisioningOperationWizard_Remediation_Operation=Compute remediation operation |
|
143 |
UpdateActionRemediationJobName=Recherche de solution alternatives... |
|
144 |
AcceptLicensesWizardPage_RejectSingle=J&e n''accepte pas les termes du contrat de licence |
|
145 |
IUDetailsLabelProvider_KB={0} Ko |
|
146 |
ProfileSnapshots_Label=Historique d''installation |
|
147 |
ProvUI_ProviderColumnTitle=Fournisseur |
|
148 |
RevertDialog_RevertOperationLabel=Revenir ? une configuration ant?rieure |
|
149 |
UninstallDialog_UninstallMessage=V?rifiez les ?l?ments que vous souhaitez d?sinstaller. |
|
150 |
RevertProfilePage_ConfirmDeleteMultipleConfigs=Deleting the selected configurations from the installation history will free up the disk space used to store the configurations. However, you will no longer be able to revert your installation to these configurations. Are you sure you want to delete the configurations? |
|
151 |
ProvUI_InstallDialogError=Erreur lors de l''ouverture des informations d''installation. |
|
152 |
ServiceUI_warning_title=Avertissement de s?curit? |
|
153 |
RevertDialog_ConfirmRestartMessage=Cette op?ration requiert la relance du programme. Voulez-vous continuer ? |
|
154 |
AcceptLicensesWizardPage_SingleLicenseTextLabel=&Texte de la licence (pour {0})\: |
|
155 |
AcceptLicensesWizardPage_Title=Valider les licenses |
|
156 |
RevertProfilePage_CompareLabel=Co&mparer |
|
157 |
RemediationPage_BeingInstalledSection=How do you want to change the software being installed? |
|
158 |
InstallWizardPage_Title=D?tails de l''installation |
|
159 |
IULicensePropertyPage_ViewLicenseLabel=Voir la licence compl?te?\: |
|
160 |
RepositoryManipulationPage_TestConnectionSuccess=Information for "{0}" has been reloaded from the server. |
|
161 |
RemedyElementNotHighestVersion=This is not the highest version |
|
162 |
AvailableIUsPage_GotoInstallInfo=Voir ce qui est <a>d?j? install?</a>? |
|
163 |
AvailableIUsPage_Title=Mise ? jour disponible |
|
164 |
ProvisioningOperationWizard_UnexpectedFailureToResolve=Erreur inattendue |
|
165 |
IUGeneralInfoPropertyPage_DocumentationLink=La documentation est disponible \: |
|
166 |
RepositoryManipulationPage_RemoveConfirmTitle=Supprimer les sites |
|
167 |
ProfileModificationAction_InvalidSelections=Problem determining user request. Profile id\: {0}, Selection count\: {1} |
Formats disponibles : Unified diff