Merge pull request #1906 from OpenRefine/issue1893

Make clustering extensible
This commit is contained in:
Antonin Delpeuch 2018-12-31 14:13:46 +01:00 committed by GitHub
commit ddd9bf9aa8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 562 additions and 145 deletions

View File

@ -81,7 +81,7 @@ public class BinningClusterer extends Clusterer {
@JsonProperty("function") @JsonProperty("function")
public void setKeyer(String keyerName) { public void setKeyer(String keyerName) {
_keyerName = keyerName; _keyerName = keyerName;
_keyer = _keyers.get(_keyerName.toLowerCase()); _keyer = KeyerFactory.get(_keyerName.toLowerCase());
} }
@JsonProperty("function") @JsonProperty("function")
@ -123,21 +123,9 @@ public class BinningClusterer extends Clusterer {
protected Keyer _keyer; protected Keyer _keyer;
protected BinningParameters _parameters; protected BinningParameters _parameters;
static final protected Map<String, Keyer> _keyers = new HashMap<String, Keyer>();
final static Logger logger = LoggerFactory.getLogger("binning_clusterer"); final static Logger logger = LoggerFactory.getLogger("binning_clusterer");
List<Map<String,Integer>> _clusters; List<Map<String,Integer>> _clusters;
static {
_keyers.put("fingerprint", new FingerprintKeyer());
_keyers.put("ngram-fingerprint", new NGramFingerprintKeyer());
_keyers.put("metaphone", new MetaphoneKeyer());
_keyers.put("double-metaphone", new DoubleMetaphoneKeyer());
_keyers.put("metaphone3", new Metaphone3Keyer());
_keyers.put("soundex", new SoundexKeyer());
_keyers.put("cologne-phonetic", new ColognePhoneticKeyer());
}
class BinningRowVisitor implements RowVisitor { class BinningRowVisitor implements RowVisitor {

View File

@ -0,0 +1,83 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.clustering.binning;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* Registry of keyers for clustering.
*
* @author Antonin Delpeuch
*
*/
public class KeyerFactory {
static final private Map<String, Keyer> _keyers = new HashMap<String, Keyer>();
// We cannot derive this from the hashmap as the order matters
static final private List<String> _keyerNames = new LinkedList<>();
static {
// Some keyers are disabled as they are super-seeded by others
// See https://github.com/OpenRefine/OpenRefine/pull/1906
put("fingerprint", new FingerprintKeyer());
put("ngram-fingerprint", new NGramFingerprintKeyer());
// put("metaphone", new MetaphoneKeyer());
// put("double-metaphone", new DoubleMetaphoneKeyer());
put("metaphone3", new Metaphone3Keyer());
// put("soundex", new SoundexKeyer());
put("cologne-phonetic", new ColognePhoneticKeyer());
}
/**
* Returns the keyer registered under a given name, or null if it does not exist.
*/
public static Keyer get(String name) {
return _keyers.get(name);
}
/**
* Registers a keyer under a code name.
*/
public static void put(String name, Keyer keyer) {
_keyers.put(name, keyer);
_keyerNames.add(name);
}
/**
* Set of available keyer, by names.
* The first keyer is considered the default one.
*/
public static List<String> getKeyerNames() {
return Collections.unmodifiableList(_keyerNames);
}
}

View File

@ -0,0 +1,93 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.clustering.knn;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import edu.mit.simile.vicino.distances.BZip2Distance;
import edu.mit.simile.vicino.distances.GZipDistance;
import edu.mit.simile.vicino.distances.JaccardDistance;
import edu.mit.simile.vicino.distances.JaroDistance;
import edu.mit.simile.vicino.distances.JaroWinklerDistance;
import edu.mit.simile.vicino.distances.JaroWinklerTFIDFDistance;
import edu.mit.simile.vicino.distances.LevenshteinDistance;
import edu.mit.simile.vicino.distances.PPMDistance;
/**
* Registry of distances for kNN clustering.
*
* @author Antonin Delpeuch
*/
public class DistanceFactory {
static final protected Map<String, SimilarityDistance> _distances = new HashMap<>();
// We cannot derive this from the hashmap as the order matters
private static List<String> _distanceNames = new LinkedList<>();
static {
put("levenshtein", new VicinoDistance(new LevenshteinDistance()));
put("ppm", new VicinoDistance(new PPMDistance()));
// Distances not activated as they are not very useful:
// See https://github.com/OpenRefine/OpenRefine/pull/1906
/*
put("jaccard", new VicinoDistance(new JaccardDistance()));
put("jaro", new VicinoDistance(new JaroDistance()));
put("jaro-winkler", new VicinoDistance(new JaroWinklerDistance()));
put("jaro-winkler-tfidf", new VicinoDistance(new JaroWinklerTFIDFDistance()));
put("gzip", new VicinoDistance(new GZipDistance()));
put("bzip2", new VicinoDistance(new BZip2Distance()));
*/
}
/**
* Returns the distance registered under this name, or null if it does not exist.
*/
public static SimilarityDistance get(String name) {
return _distances.get(name);
}
/**
* Registers a new distance under a name.
*/
public static void put(String name, SimilarityDistance distance) {
_distances.put(name, distance);
_distanceNames.add(name);
}
/**
* Lists the available distances, by name.
*/
public static List<String> getDistanceNames() {
return Collections.unmodifiableList(_distanceNames);
}
}

View File

@ -0,0 +1,44 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.clustering.knn;
/**
* A function that computes a similarity distance between
* two strings.
*
* This is introduced to provide a clean interface for extensions, independent
* of the library currently used (Simile Vicino, unmaintained since 2010 as of
* December 2018).
*/
public interface SimilarityDistance {
/**
* Compute the distance between two strings. This should return 0 when the
* two arguments are equal, and rise as their differences increase.
*/
public double compute(String a, String b);
}

View File

@ -0,0 +1,50 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.clustering.knn;
import edu.mit.simile.vicino.distances.Distance;
/**
* Wrapper to expose a similarity function from the Vicino
* library.
*
* @author Antonin Delpeuch
*
*/
public class VicinoDistance implements SimilarityDistance {
private final Distance _d;
public VicinoDistance(Distance d) {
_d = d;
}
@Override
public double compute(String a, String b) {
return _d.d(a, b);
}
}

View File

@ -61,15 +61,7 @@ import com.google.refine.model.Row;
import edu.mit.simile.vicino.clustering.NGramClusterer; import edu.mit.simile.vicino.clustering.NGramClusterer;
import edu.mit.simile.vicino.clustering.VPTreeClusterer; import edu.mit.simile.vicino.clustering.VPTreeClusterer;
import edu.mit.simile.vicino.distances.BZip2Distance;
import edu.mit.simile.vicino.distances.Distance; import edu.mit.simile.vicino.distances.Distance;
import edu.mit.simile.vicino.distances.GZipDistance;
import edu.mit.simile.vicino.distances.JaccardDistance;
import edu.mit.simile.vicino.distances.JaroDistance;
import edu.mit.simile.vicino.distances.JaroWinklerDistance;
import edu.mit.simile.vicino.distances.JaroWinklerTFIDFDistance;
import edu.mit.simile.vicino.distances.LevenshteinDistance;
import edu.mit.simile.vicino.distances.PPMDistance;
public class kNNClusterer extends Clusterer { public class kNNClusterer extends Clusterer {
@ -77,19 +69,19 @@ public class kNNClusterer extends Clusterer {
@JsonIgnore @JsonIgnore
private String _distanceStr; private String _distanceStr;
@JsonIgnore @JsonIgnore
private Distance _distance; private SimilarityDistance _distance;
@JsonIgnore @JsonIgnore
private kNNClustererConfigParameters _parameters = null; private kNNClustererConfigParameters _parameters = null;
@JsonIgnore @JsonIgnore
public Distance getDistance() { public SimilarityDistance getDistance() {
return _distance; return _distance;
} }
@JsonProperty("function") @JsonProperty("function")
public void setDistance(String distanceStr) { public void setDistance(String distanceStr) {
_distanceStr = distanceStr; _distanceStr = distanceStr;
_distance = _distances.get(_distanceStr.toLowerCase()); _distance = DistanceFactory.get(_distanceStr.toLowerCase());
} }
@JsonProperty("function") @JsonProperty("function")
@ -130,27 +122,14 @@ public class kNNClusterer extends Clusterer {
public int blockingNgramSize = defaultBlockingNgramSize; public int blockingNgramSize = defaultBlockingNgramSize;
} }
private Distance _distance; private SimilarityDistance _distance;
private kNNClustererConfigParameters _params; private kNNClustererConfigParameters _params;
static final protected Map<String, Distance> _distances = new HashMap<String, Distance>();
List<Set<Serializable>> _clusters; List<Set<Serializable>> _clusters;
Map<Serializable, Integer> _counts = new HashMap<Serializable, Integer>(); Map<Serializable, Integer> _counts = new HashMap<Serializable, Integer>();
final static Logger logger = LoggerFactory.getLogger("kNN_clusterer"); final static Logger logger = LoggerFactory.getLogger("kNN_clusterer");
static {
_distances.put("levenshtein", new LevenshteinDistance());
_distances.put("jaccard", new JaccardDistance());
_distances.put("jaro", new JaroDistance());
_distances.put("jaro-winkler", new JaroWinklerDistance());
_distances.put("jaro-winkler-tfidf", new JaroWinklerTFIDFDistance());
_distances.put("gzip", new GZipDistance());
_distances.put("bzip2", new BZip2Distance());
_distances.put("ppm", new PPMDistance());
}
class VPTreeClusteringRowVisitor implements RowVisitor { class VPTreeClusteringRowVisitor implements RowVisitor {
@ -193,18 +172,31 @@ public class kNNClusterer extends Clusterer {
class BlockingClusteringRowVisitor implements RowVisitor { class BlockingClusteringRowVisitor implements RowVisitor {
Distance _distance; SimilarityDistance _distance;
double _radius = 1.0d; double _radius = 1.0d;
int _blockingNgramSize = 6; int _blockingNgramSize = 6;
HashSet<String> _data; HashSet<String> _data;
NGramClusterer _clusterer; NGramClusterer _clusterer;
public BlockingClusteringRowVisitor(Distance d, kNNClustererConfigParameters params) { private class DistanceWrapper extends Distance {
_distance = d; private final SimilarityDistance _d;
protected DistanceWrapper(SimilarityDistance d) {
_d = d;
}
@Override
public double d(String arg0, String arg1) {
return _d.compute(arg0, arg1);
}
}
public BlockingClusteringRowVisitor(SimilarityDistance _distance2, kNNClustererConfigParameters params) {
_distance = _distance2;
_data = new HashSet<String>(); _data = new HashSet<String>();
_blockingNgramSize = params.blockingNgramSize; _blockingNgramSize = params.blockingNgramSize;
_radius = params.radius; _radius = params.radius;
_clusterer = new NGramClusterer(_distance, _blockingNgramSize); _clusterer = new NGramClusterer(new DistanceWrapper(_distance), _blockingNgramSize);
} }
@Override @Override

View File

@ -0,0 +1,62 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.commands.browsing;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.refine.clustering.binning.KeyerFactory;
import com.google.refine.clustering.knn.DistanceFactory;
import com.google.refine.commands.Command;
public class GetClusteringFunctionsAndDistancesCommand extends Command {
final static Logger logger = LoggerFactory.getLogger("get-clustering-functions-and-distances_command");
private static class FunctionsAndDistancesResponse {
@JsonProperty("distances")
public List<String> distances = DistanceFactory.getDistanceNames();
@JsonProperty("keyers")
public List<String> keyers = KeyerFactory.getKeyerNames();
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
respondJSON(response, new FunctionsAndDistancesResponse());
}
}

View File

@ -0,0 +1,80 @@
/*******************************************************************************
* Copyright (C) 2018, Antonin Delpeuch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package com.google.refine.tests.commands.browsing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertTrue;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.refine.commands.Command;
import com.google.refine.commands.browsing.GetClusteringFunctionsAndDistancesCommand;
import com.google.refine.util.JSONUtilities;
import com.google.refine.util.ParsingUtilities;
public class GetClusteringFunctionsAndDistancesCommandTest {
protected HttpServletRequest request = null;
protected HttpServletResponse response = null;
protected StringWriter writer = null;
protected Command command = null;
@BeforeMethod
public void setUp() {
request = mock(HttpServletRequest.class);
response = mock(HttpServletResponse.class);
command = new GetClusteringFunctionsAndDistancesCommand();
writer = new StringWriter();
try {
when(response.getWriter()).thenReturn(new PrintWriter(writer));
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testGetFunctionsAndKeyers() throws ServletException, IOException {
command.doGet(request, response);
ObjectNode result = ParsingUtilities.mapper.readValue(writer.toString(), ObjectNode.class);
assertTrue(Arrays.asList(JSONUtilities.getStringArray(result, "keyers")).contains("metaphone3"));
assertTrue(Arrays.asList(JSONUtilities.getStringArray(result, "distances")).contains("levenshtein"));
}
}

View File

@ -90,6 +90,7 @@ function registerCommands() {
RS.registerCommand(module, "compute-facets", new Packages.com.google.refine.commands.browsing.ComputeFacetsCommand()); RS.registerCommand(module, "compute-facets", new Packages.com.google.refine.commands.browsing.ComputeFacetsCommand());
RS.registerCommand(module, "compute-clusters", new Packages.com.google.refine.commands.browsing.ComputeClustersCommand()); RS.registerCommand(module, "compute-clusters", new Packages.com.google.refine.commands.browsing.ComputeClustersCommand());
RS.registerCommand(module, "get-clustering-functions-and-distances", new Packages.com.google.refine.commands.browsing.GetClusteringFunctionsAndDistancesCommand());
RS.registerCommand(module, "edit-one-cell", new Packages.com.google.refine.commands.cell.EditOneCellCommand()); RS.registerCommand(module, "edit-one-cell", new Packages.com.google.refine.commands.cell.EditOneCellCommand());
RS.registerCommand(module, "text-transform", new Packages.com.google.refine.commands.cell.TextTransformCommand()); RS.registerCommand(module, "text-transform", new Packages.com.google.refine.commands.cell.TextTransformCommand());

View File

@ -157,17 +157,17 @@
"core-dialogs/reuse": "Ginamit", "core-dialogs/reuse": "Ginamit",
"core-dialogs/date-format": "Para sa petsa/orad bili, gamita ni nga pormat", "core-dialogs/date-format": "Para sa petsa/orad bili, gamita ni nga pormat",
"core-dialogs/focusing-on": "Pagpukos sa", "core-dialogs/focusing-on": "Pagpukos sa",
"core-dialogs/fingerprint": "Mga tudlo", "clustering-keyers/fingerprint": "Mga tudlo",
"core-dialogs/block-chars": "Block&nbsp; Chars&nbsp;", "core-dialogs/block-chars": "Block&nbsp; Chars&nbsp;",
"core-dialogs/long-format": "Taas nga pormat sa locale", "core-dialogs/long-format": "Taas nga pormat sa locale",
"core-dialogs/short-format": "Maba ang pormat sa locale", "core-dialogs/short-format": "Maba ang pormat sa locale",
"core-dialogs/leven": "levenstin", "clustering-distances/levenshtein": "levenstin",
"core-dialogs/rotated-clock": "Gituyok sa 45° sa hustong oras", "core-dialogs/rotated-clock": "Gituyok sa 45° sa hustong oras",
"core-dialogs/upload": "Upload", "core-dialogs/upload": "Upload",
"core-dialogs/remove": "Tangtanga", "core-dialogs/remove": "Tangtanga",
"core-dialogs/merge": "Iusa?", "core-dialogs/merge": "Iusa?",
"core-dialogs/cluster-descr": "Kani nga kalidad tabangan mutabang sa pagpangita sa grupo sa ngkadaiyang balyo sa mga cells para aduna kay kapiliannga ikapakita sa pareho nga butang. Pananglitan, duha ka strings \"New York\" ug \"new york\" nga hapit magkapreha kung ireper nmu sa pareho nga konsepto ug nagkalahi lang sa gidak on, ug \"Gödel\" ug \"Godel\" nga kani nag reper ra sa usa ka tawo.", "core-dialogs/cluster-descr": "Kani nga kalidad tabangan mutabang sa pagpangita sa grupo sa ngkadaiyang balyo sa mga cells para aduna kay kapiliannga ikapakita sa pareho nga butang. Pananglitan, duha ka strings \"New York\" ug \"new york\" nga hapit magkapreha kung ireper nmu sa pareho nga konsepto ug nagkalahi lang sa gidak on, ug \"Gödel\" ug \"Godel\" nga kani nag reper ra sa usa ka tawo.",
"core-dialogs/phonetic": "Kolon-ponetik", "clustering-keyers/cologne-phonetic": "Kolon-ponetik",
"core-dialogs/found": "nakit an", "core-dialogs/found": "nakit an",
"core-dialogs/starred": "Bida", "core-dialogs/starred": "Bida",
"core-dialogs/find-more": "Pagtan aw ug lain …", "core-dialogs/find-more": "Pagtan aw ug lain …",
@ -200,7 +200,7 @@
"core-dialogs/sel-and-ord": "Pagpili ug order kolum para iangkat", "core-dialogs/sel-and-ord": "Pagpili ug order kolum para iangkat",
"core-dialogs/choice-avg-length": "Kasagarang Gitas on sa mga Pilianan", "core-dialogs/choice-avg-length": "Kasagarang Gitas on sa mga Pilianan",
"core-dialogs/json-text": "Ang musunod JSON text nag enkod ug mga kapilian nga imung ibutang sa uban nga tab. Makakopya ka ug isave unya, ug itapot ug balik unya iklik Iapply ang ginamit nga parehang mga pinilian.", "core-dialogs/json-text": "Ang musunod JSON text nag enkod ug mga kapilian nga imung ibutang sa uban nga tab. Makakopya ka ug isave unya, ug itapot ug balik unya iklik Iapply ang ginamit nga parehang mga pinilian.",
"core-dialogs/ngram": "ngram-nga tudlo", "clustering-keyers/ngram-fingerprint": "ngram-nga tudlo",
"core-dialogs/reorder-column": "Order ug balik / Tangtanga ang mga kolum", "core-dialogs/reorder-column": "Order ug balik / Tangtanga ang mga kolum",
"core-dialogs/char-enc": "Pag enkod sa karakter", "core-dialogs/char-enc": "Pag enkod sa karakter",
"core-dialogs/browse-this-cluster": "Pangitaa ni nga kluster", "core-dialogs/browse-this-cluster": "Pangitaa ni nga kluster",
@ -208,7 +208,7 @@
"core-dialogs/no-rotation": "Ayaw ituyok", "core-dialogs/no-rotation": "Ayaw ituyok",
"core-dialogs/regular-dot": "Regular ang gidak on sa dot", "core-dialogs/regular-dot": "Regular ang gidak on sa dot",
"core-dialogs/for-recon-cell": "Para sa inuli nga cells, resulta", "core-dialogs/for-recon-cell": "Para sa inuli nga cells, resulta",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "Ang kasamtangan nga bili sa mga cell. Mao kini ang shortcut para 'cell.value'.", "core-dialogs/cell-value": "Ang kasamtangan nga bili sa mga cell. Mao kini ang shortcut para 'cell.value'.",
"core-dialogs/cluster-values": "Mga bili sa kluster", "core-dialogs/cluster-values": "Mga bili sa kluster",
"core-dialogs/clustering": "Clustering… ", "core-dialogs/clustering": "Clustering… ",
@ -260,7 +260,7 @@
"core-dialogs/error": "Sayup", "core-dialogs/error": "Sayup",
"core-dialogs/filtered-from": "sinala gikan <b>", "core-dialogs/filtered-from": "sinala gikan <b>",
"core-dialogs/big-dot": "Dagko ang gidak on sa dot", "core-dialogs/big-dot": "Dagko ang gidak on sa dot",
"core-dialogs/metaphone": "metapon3", "clustering-keyers/metaphone3": "metapon3",
"core-facets/regular-dot": "Regular nga sukod sa dot", "core-facets/regular-dot": "Regular nga sukod sa dot",
"core-facets/current-exp": "Kasamtangang Ekspresyon", "core-facets/current-exp": "Kasamtangang Ekspresyon",
"core-facets/set-choice-count": "Pagbutang ug pinili nga nglimit sa pag ihap", "core-facets/set-choice-count": "Pagbutang ug pinili nga nglimit sa pag ihap",

View File

@ -160,11 +160,11 @@
"core-dialogs/reuse": "Wiederverwendung", "core-dialogs/reuse": "Wiederverwendung",
"core-dialogs/date-format": "Für Datums-/Zeitwerte verwenden Sie das Format", "core-dialogs/date-format": "Für Datums-/Zeitwerte verwenden Sie das Format",
"core-dialogs/focusing-on": "mit Schwerpunkt auf", "core-dialogs/focusing-on": "mit Schwerpunkt auf",
"core-dialogs/fingerprint": "Fingerabdruck", "clustering-keyers/fingerprint": "Fingerabdruck",
"core-dialogs/block-chars": "Block&nbsp;Zeichen&nbsp;", "core-dialogs/block-chars": "Block&nbsp;Zeichen&nbsp;",
"core-dialogs/long-format": "Langes Gebietsschema", "core-dialogs/long-format": "Langes Gebietsschema",
"core-dialogs/short-format": "Kurzes Gebietsschema", "core-dialogs/short-format": "Kurzes Gebietsschema",
"core-dialogs/leven": "Levenshtein", "clustering-distances/levenshtein": "Levenshtein",
"core-dialogs/sqlExporterIgnoreFacets": "Facetten und Filter ignorieren und alle Zeilen exportieren", "core-dialogs/sqlExporterIgnoreFacets": "Facetten und Filter ignorieren und alle Zeilen exportieren",
"core-dialogs/rotated-clock": "45° im Uhrzeigersinn gedreht", "core-dialogs/rotated-clock": "45° im Uhrzeigersinn gedreht",
"core-dialogs/upload": "hochladen", "core-dialogs/upload": "hochladen",
@ -172,7 +172,7 @@
"core-dialogs/method": "Methode&nbsp;", "core-dialogs/method": "Methode&nbsp;",
"core-dialogs/merge": "Verbinden?", "core-dialogs/merge": "Verbinden?",
"core-dialogs/cluster-descr": "Diese Funktion hilft Ihnen, Gruppen von verschiedenen Zellwerten zu finden, die alternative Darstellungen derselben Sache sein könnten. Beispielsweise beziehen sich die beiden Zeichenketten \"New York\" und \"new york\" sehr wahrscheinlich auf dasselbe Konzept und haben nur Unterschiede in der Großschreibung, und \"Gödel\" und \"Godel\" beziehen sich wahrscheinlich auf dieselbe Person.", "core-dialogs/cluster-descr": "Diese Funktion hilft Ihnen, Gruppen von verschiedenen Zellwerten zu finden, die alternative Darstellungen derselben Sache sein könnten. Beispielsweise beziehen sich die beiden Zeichenketten \"New York\" und \"new york\" sehr wahrscheinlich auf dasselbe Konzept und haben nur Unterschiede in der Großschreibung, und \"Gödel\" und \"Godel\" beziehen sich wahrscheinlich auf dieselbe Person.",
"core-dialogs/phonetic": "kölsch-phonetisch", "clustering-keyers/cologne-phonetic": "kölsch-phonetisch",
"core-dialogs/found": "gefunden", "core-dialogs/found": "gefunden",
"core-dialogs/starred": "Mit Stern versehen", "core-dialogs/starred": "Mit Stern versehen",
"core-dialogs/find-more": "Mehr herausfinden ...", "core-dialogs/find-more": "Mehr herausfinden ...",
@ -206,7 +206,7 @@
"core-dialogs/sel-and-ord": "Auswählen und Ordnen von Spalten für den Export", "core-dialogs/sel-and-ord": "Auswählen und Ordnen von Spalten für den Export",
"core-dialogs/choice-avg-length": "Durchschnittliche Länge der Auswahl", "core-dialogs/choice-avg-length": "Durchschnittliche Länge der Auswahl",
"core-dialogs/json-text": "Der folgende JSON-Text kodiert die Optionen, die Sie in den anderen Registerkarten eingestellt haben. Sie können es herauskopieren und für später speichern, wieder einfügen und auf Übernehmen klicken, um die gleichen Optionen wiederzuverwenden.", "core-dialogs/json-text": "Der folgende JSON-Text kodiert die Optionen, die Sie in den anderen Registerkarten eingestellt haben. Sie können es herauskopieren und für später speichern, wieder einfügen und auf Übernehmen klicken, um die gleichen Optionen wiederzuverwenden.",
"core-dialogs/ngram": "ngram-Fingerabdruck", "clustering-keyers/ngram-fingerprint": "ngram-Fingerabdruck",
"core-dialogs/reorder-column": "Spalten neu ordnen / entfernen", "core-dialogs/reorder-column": "Spalten neu ordnen / entfernen",
"core-dialogs/char-enc": "Zeichenkodierung", "core-dialogs/char-enc": "Zeichenkodierung",
"core-dialogs/browse-this-cluster": "Dieses Cluster durchsuchen", "core-dialogs/browse-this-cluster": "Dieses Cluster durchsuchen",
@ -214,7 +214,7 @@
"core-dialogs/no-rotation": "Keine Drehung", "core-dialogs/no-rotation": "Keine Drehung",
"core-dialogs/regular-dot": "Normale Punktgröße", "core-dialogs/regular-dot": "Normale Punktgröße",
"core-dialogs/for-recon-cell": "Ausgabe für abgestimmte Zellen", "core-dialogs/for-recon-cell": "Ausgabe für abgestimmte Zellen",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "Der aktuelle Wert der Zelle. Dies ist eine Abkürzung für 'cell.value'.", "core-dialogs/cell-value": "Der aktuelle Wert der Zelle. Dies ist eine Abkürzung für 'cell.value'.",
"core-dialogs/cluster-values": "Werte im Cluster", "core-dialogs/cluster-values": "Werte im Cluster",
"core-dialogs/clustering": "Clustere... ", "core-dialogs/clustering": "Clustere... ",
@ -275,7 +275,7 @@
"core-dialogs/error": "Fehler", "core-dialogs/error": "Fehler",
"core-dialogs/filtered-from": "gefiltert aus <b>", "core-dialogs/filtered-from": "gefiltert aus <b>",
"core-dialogs/big-dot": "Große Punktgröße", "core-dialogs/big-dot": "Große Punktgröße",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/sql-exporter": "SQL-Exporteur", "core-dialogs/sql-exporter": "SQL-Exporteur",
"core-dialogs/select-columns-dialog": "Spalten auswählen", "core-dialogs/select-columns-dialog": "Spalten auswählen",
"core-buttons/unselect-all": "Auswahl aufheben", "core-buttons/unselect-all": "Auswahl aufheben",

View File

@ -147,6 +147,7 @@
"core-index-parser/click-xml": "Click on the first XML element corresponding to the first record to load.", "core-index-parser/click-xml": "Click on the first XML element corresponding to the first record to load.",
"core-index-parser/column-names-label": "Column names (comma separated)", "core-index-parser/column-names-label": "Column names (comma separated)",
"core-index-parser/column-names-optional": "comma separated", "core-index-parser/column-names-optional": "comma separated",
"core-dialogs/no-clustering-functions-and-distances": "The clustering functions and distances could not be loaded.",
"core-dialogs/cluster-edit": "Cluster & Edit column", "core-dialogs/cluster-edit": "Cluster & Edit column",
"core-dialogs/cluster-size": "Cluster Size", "core-dialogs/cluster-size": "Cluster Size",
"core-dialogs/row-count": "Row Count", "core-dialogs/row-count": "Row Count",
@ -173,13 +174,13 @@
"core-dialogs/key-collision": "key collision", "core-dialogs/key-collision": "key collision",
"core-dialogs/nearest-neighbor": "nearest neighbor", "core-dialogs/nearest-neighbor": "nearest neighbor",
"core-dialogs/keying-function": "Keying&nbsp;Function&nbsp;", "core-dialogs/keying-function": "Keying&nbsp;Function&nbsp;",
"core-dialogs/fingerprint": "fingerprint", "clustering-keyers/fingerprint": "fingerprint",
"core-dialogs/ngram": "ngram-fingerprint", "clustering-keyers/ngram-fingerprint": "ngram-fingerprint",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/distance-fun": "Distance&nbsp;Function&nbsp;", "core-dialogs/distance-fun": "Distance&nbsp;Function&nbsp;",
"core-dialogs/leven": "levenshtein", "clustering-distances/levenshtein": "levenshtein",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/ngram-size": "Ngram&nbsp;Size&nbsp;", "core-dialogs/ngram-size": "Ngram&nbsp;Size&nbsp;",
"core-dialogs/ngram-radius": "Radius&nbsp;", "core-dialogs/ngram-radius": "Radius&nbsp;",
"core-dialogs/block-chars": "Block&nbsp;Chars&nbsp;", "core-dialogs/block-chars": "Block&nbsp;Chars&nbsp;",

View File

@ -160,18 +160,18 @@
"core-dialogs/reuse": "Reusar", "core-dialogs/reuse": "Reusar",
"core-dialogs/date-format": "Para valores de hora/fecha, usar el formato", "core-dialogs/date-format": "Para valores de hora/fecha, usar el formato",
"core-dialogs/focusing-on": "enfocada en", "core-dialogs/focusing-on": "enfocada en",
"core-dialogs/fingerprint": "Huella", "clustering-keyers/fingerprint": "Huella",
"core-dialogs/block-chars": "Caracteres&nbsp;del&nbsp;bloque&nbsp;", "core-dialogs/block-chars": "Caracteres&nbsp;del&nbsp;bloque&nbsp;",
"core-dialogs/long-format": "Formato largo local", "core-dialogs/long-format": "Formato largo local",
"core-dialogs/short-format": "Formato corto local", "core-dialogs/short-format": "Formato corto local",
"core-dialogs/leven": "levenshtein", "clustering-distances/levenshtein": "levenshtein",
"core-dialogs/rotated-clock": "Girar 45° en dirección de las manecillas de reloj", "core-dialogs/rotated-clock": "Girar 45° en dirección de las manecillas de reloj",
"core-dialogs/upload": "Cargar", "core-dialogs/upload": "Cargar",
"core-dialogs/remove": "Eliminar", "core-dialogs/remove": "Eliminar",
"core-dialogs/merge": "¿Unir?", "core-dialogs/merge": "¿Unir?",
"core-dialogs/custom-separator": "Otro delimitador", "core-dialogs/custom-separator": "Otro delimitador",
"core-dialogs/cluster-descr": "Esta función le permite encontrar agrupaciones de diferentes valores que pueden ser representaciones alternativas de la misma cosa. Por ejemplo, \"New York\" y \"new york\" probablemente se refieren al mismo concepto, solo se presenta diferencia en la capitalización. De la misma manera \"Gödel\" y \"Godel\" probablemente se refieren a la misma persona.", "core-dialogs/cluster-descr": "Esta función le permite encontrar agrupaciones de diferentes valores que pueden ser representaciones alternativas de la misma cosa. Por ejemplo, \"New York\" y \"new york\" probablemente se refieren al mismo concepto, solo se presenta diferencia en la capitalización. De la misma manera \"Gödel\" y \"Godel\" probablemente se refieren a la misma persona.",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/found": "Encontrado", "core-dialogs/found": "Encontrado",
"core-dialogs/starred": "Con estrella", "core-dialogs/starred": "Con estrella",
"core-dialogs/find-more": "Más información ...", "core-dialogs/find-more": "Más información ...",
@ -196,7 +196,7 @@
"core-dialogs/cluster-edit": "Agrupar y editar valores en la columna", "core-dialogs/cluster-edit": "Agrupar y editar valores en la columna",
"core-dialogs/out-not-unmatch": "Descargar nada para celdas sin correspondencia", "core-dialogs/out-not-unmatch": "Descargar nada para celdas sin correspondencia",
"core-dialogs/date-iso": "ISO 8601, p. ej., 2011-08-24T18:36:10+08:00", "core-dialogs/date-iso": "ISO 8601, p. ej., 2011-08-24T18:36:10+08:00",
"core-dialogs/ngram": "Huella del n-grama", "clustering-keyers/ngram-fingerprint": "Huella del n-grama",
"core-dialogs/for-recon-cell": "Para celdas cotejadas, descargar", "core-dialogs/for-recon-cell": "Para celdas cotejadas, descargar",
"core-dialogs/no-syntax-err": "No hay error de sintaxis", "core-dialogs/no-syntax-err": "No hay error de sintaxis",
"core-dialogs/opt-for": "Optciones para", "core-dialogs/opt-for": "Optciones para",
@ -212,7 +212,7 @@
"core-dialogs/no-rotation": "Sin giro", "core-dialogs/no-rotation": "Sin giro",
"core-dialogs/regular-dot": "Puntos regulares", "core-dialogs/regular-dot": "Puntos regulares",
"core-dialogs/line-based": "Formatos de texto", "core-dialogs/line-based": "Formatos de texto",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "El valor de la celda actual. Es una abreviación para 'cell.value'.", "core-dialogs/cell-value": "El valor de la celda actual. Es una abreviación para 'cell.value'.",
"core-dialogs/custom": "Personalizado", "core-dialogs/custom": "Personalizado",
"core-dialogs/clustering": "Agrupando... ", "core-dialogs/clustering": "Agrupando... ",
@ -258,7 +258,7 @@
"core-dialogs/cell-fields": "La celda actual. Tiene pocos campos: 'value' y 'recon'.", "core-dialogs/cell-fields": "La celda actual. Tiene pocos campos: 'value' y 'recon'.",
"core-dialogs/idling": "Idling ...", "core-dialogs/idling": "Idling ...",
"core-dialogs/local-time": "Usar zona horaria local", "core-dialogs/local-time": "Usar zona horaria local",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/key-collision": "Colisión de llaves", "core-dialogs/key-collision": "Colisión de llaves",
"core-dialogs/choices-in-cluster": "# Valores en la agrupación", "core-dialogs/choices-in-cluster": "# Valores en la agrupación",
"core-dialogs/filtered-from": "filtrado de <b>", "core-dialogs/filtered-from": "filtrado de <b>",

View File

@ -157,17 +157,17 @@
"core-dialogs/reuse": "Gamitin ulit", "core-dialogs/reuse": "Gamitin ulit",
"core-dialogs/date-format": "Para sa mga halaga ng petsa / oras, gamitin ang format", "core-dialogs/date-format": "Para sa mga halaga ng petsa / oras, gamitin ang format",
"core-dialogs/focusing-on": "na tumutuon sa", "core-dialogs/focusing-on": "na tumutuon sa",
"core-dialogs/fingerprint": "fingerprint", "clustering-keyers/fingerprint": "fingerprint",
"core-dialogs/block-chars": "I-block&nbsp; 1;Chars&nbsp; 2;", "core-dialogs/block-chars": "I-block&nbsp; 1;Chars&nbsp; 2;",
"core-dialogs/long-format": "Mahabang format ng lokal", "core-dialogs/long-format": "Mahabang format ng lokal",
"core-dialogs/short-format": "Maikling format ng locale", "core-dialogs/short-format": "Maikling format ng locale",
"core-dialogs/leven": "levenshten", "clustering-distances/levenshtein": "levenshten",
"core-dialogs/rotated-clock": "Naka-rotate 45 ° Clockwise", "core-dialogs/rotated-clock": "Naka-rotate 45 ° Clockwise",
"core-dialogs/upload": "Mag-upload", "core-dialogs/upload": "Mag-upload",
"core-dialogs/remove": "Tanggalin", "core-dialogs/remove": "Tanggalin",
"core-dialogs/merge": "Pagsamahin?", "core-dialogs/merge": "Pagsamahin?",
"core-dialogs/cluster-descr": "Ang tampok na ito ay tumutulong sa iyo na makahanap ng mga grupo ng iba't ibang mga halaga ng cell na maaaring alternatibong mga representasyon ng parehong bagay. Halimbawa, ang dalawang string na \"New York\" at \"new york\" ay malamang na tumutukoy sa parehong konsepto at mayroon lamang mga pagkakaiba sa kapitalismo, at ang \"Gödel\" at \"Godel\" marahil ay tumutukoy sa parehong tao.", "core-dialogs/cluster-descr": "Ang tampok na ito ay tumutulong sa iyo na makahanap ng mga grupo ng iba't ibang mga halaga ng cell na maaaring alternatibong mga representasyon ng parehong bagay. Halimbawa, ang dalawang string na \"New York\" at \"new york\" ay malamang na tumutukoy sa parehong konsepto at mayroon lamang mga pagkakaiba sa kapitalismo, at ang \"Gödel\" at \"Godel\" marahil ay tumutukoy sa parehong tao.",
"core-dialogs/phonetic": "cologne-ponetic", "clustering-keyers/cologne-phonetic": "cologne-ponetic",
"core-dialogs/found": "nahanap", "core-dialogs/found": "nahanap",
"core-dialogs/starred": "Naka-star", "core-dialogs/starred": "Naka-star",
"core-dialogs/find-more": "Alamin ang higit pa ...", "core-dialogs/find-more": "Alamin ang higit pa ...",
@ -200,7 +200,7 @@
"core-dialogs/sel-and-ord": "Piliin at Mag-order ng Mga Hanay sa I-export", "core-dialogs/sel-and-ord": "Piliin at Mag-order ng Mga Hanay sa I-export",
"core-dialogs/choice-avg-length": "Average na taas ng Pagpipilian", "core-dialogs/choice-avg-length": "Average na taas ng Pagpipilian",
"core-dialogs/json-text": "Ang mga sumusunod na teksto ng JSON ay naka-encode ng mga pagpipilian na iyong itinakda sa iba pang mga tab. Maaari mong kopyahin ito at i-save ito para sa ibang pagkakataon, at idikit muli ito at i-click ang Ilapat upang muling gamitin ang parehong mga opsyon.", "core-dialogs/json-text": "Ang mga sumusunod na teksto ng JSON ay naka-encode ng mga pagpipilian na iyong itinakda sa iba pang mga tab. Maaari mong kopyahin ito at i-save ito para sa ibang pagkakataon, at idikit muli ito at i-click ang Ilapat upang muling gamitin ang parehong mga opsyon.",
"core-dialogs/ngram": "ngram- fingerprint", "clustering-keyers/ngram-fingerprint": "ngram- fingerprint",
"core-dialogs/reorder-column": "Muling-order / Alisin ang Mga Haligi", "core-dialogs/reorder-column": "Muling-order / Alisin ang Mga Haligi",
"core-dialogs/char-enc": "karacter i-encoding", "core-dialogs/char-enc": "karacter i-encoding",
"core-dialogs/browse-this-cluster": "I-browse ang cluster na ito", "core-dialogs/browse-this-cluster": "I-browse ang cluster na ito",
@ -208,7 +208,7 @@
"core-dialogs/no-rotation": "Walang pag-ikot", "core-dialogs/no-rotation": "Walang pag-ikot",
"core-dialogs/regular-dot": "Regular na Dot Size", "core-dialogs/regular-dot": "Regular na Dot Size",
"core-dialogs/for-recon-cell": "Para sa mga nakipagkasundo na mga cell, output", "core-dialogs/for-recon-cell": "Para sa mga nakipagkasundo na mga cell, output",
"core-dialogs/ppm": "P P M", "clustering-distances/PPM": "P P M",
"core-dialogs/cell-value": "Ang halaga ng kasalukuyang cell. Ito ay isang shortcut para sa 'cell.value'.", "core-dialogs/cell-value": "Ang halaga ng kasalukuyang cell. Ito ay isang shortcut para sa 'cell.value'.",
"core-dialogs/cluster-values": "Mga Halaga sa klaster", "core-dialogs/cluster-values": "Mga Halaga sa klaster",
"core-dialogs/clustering": "Klastering... ", "core-dialogs/clustering": "Klastering... ",
@ -260,7 +260,7 @@
"core-dialogs/error": "Eror", "core-dialogs/error": "Eror",
"core-dialogs/filtered-from": "na-filter mula sa <b>", "core-dialogs/filtered-from": "na-filter mula sa <b>",
"core-dialogs/big-dot": "Malaking sukat ng tuldok", "core-dialogs/big-dot": "Malaking sukat ng tuldok",
"core-dialogs/metaphone": "meta-fone3", "clustering-keyers/metaphone3": "meta-fone3",
"core-facets/regular-dot": "Regular na sukat ng tuldok", "core-facets/regular-dot": "Regular na sukat ng tuldok",
"core-facets/current-exp": "Kasalukuyang Ekspresyun", "core-facets/current-exp": "Kasalukuyang Ekspresyun",
"core-facets/set-choice-count": "Itakda ang limitasyon sa bilang ng pagpipilian", "core-facets/set-choice-count": "Itakda ang limitasyon sa bilang ng pagpipilian",

View File

@ -161,11 +161,11 @@
"core-dialogs/reuse": "Réutiliser", "core-dialogs/reuse": "Réutiliser",
"core-dialogs/date-format": "Pour la date/heure, utiliser le format", "core-dialogs/date-format": "Pour la date/heure, utiliser le format",
"core-dialogs/focusing-on": "centrer sur", "core-dialogs/focusing-on": "centrer sur",
"core-dialogs/fingerprint": "empreinte", "clustering-keyers/fingerprint": "empreinte",
"core-dialogs/block-chars": "Bloc de caractères", "core-dialogs/block-chars": "Bloc de caractères",
"core-dialogs/long-format": "Format long", "core-dialogs/long-format": "Format long",
"core-dialogs/short-format": "Format court", "core-dialogs/short-format": "Format court",
"core-dialogs/leven": "Levenshtein", "clustering-distances/levenshtein": "Levenshtein",
"core-dialogs/sqlExporterIgnoreFacets": "Ignorer les facettes, les filtres et exporter toutes les lignes", "core-dialogs/sqlExporterIgnoreFacets": "Ignorer les facettes, les filtres et exporter toutes les lignes",
"core-dialogs/rotated-clock": "Tourné de 45°", "core-dialogs/rotated-clock": "Tourné de 45°",
"core-dialogs/upload": "Téléverser", "core-dialogs/upload": "Téléverser",
@ -173,7 +173,7 @@
"core-dialogs/method": "Méthode&nbsp;", "core-dialogs/method": "Méthode&nbsp;",
"core-dialogs/merge": "Fusionner ?", "core-dialogs/merge": "Fusionner ?",
"core-dialogs/cluster-descr": "Cet outil vous aide à identifier des groupes de cellules ayant des valeurs différentes mais qui peuvent correspondre à des représentations alternatives de la même valeur. Par exemple, les deux chaînes \"New York\" et \"new york\" nont quune différence de casse et font très certainement référence à la même ville. \"Gödel\" et \"Godel\" se réfèrent probablement à la même personne.", "core-dialogs/cluster-descr": "Cet outil vous aide à identifier des groupes de cellules ayant des valeurs différentes mais qui peuvent correspondre à des représentations alternatives de la même valeur. Par exemple, les deux chaînes \"New York\" et \"new york\" nont quune différence de casse et font très certainement référence à la même ville. \"Gödel\" et \"Godel\" se réfèrent probablement à la même personne.",
"core-dialogs/phonetic": "phonétique de Cologne", "clustering-keyers/cologne-phonetic": "phonétique de Cologne",
"core-dialogs/found": "trouvé", "core-dialogs/found": "trouvé",
"core-dialogs/starred": "Étoilée", "core-dialogs/starred": "Étoilée",
"core-dialogs/find-more": "En trouver davantage...", "core-dialogs/find-more": "En trouver davantage...",
@ -206,7 +206,7 @@
"core-dialogs/sel-and-ord": "Choisir et trier les colonnes à exporter", "core-dialogs/sel-and-ord": "Choisir et trier les colonnes à exporter",
"core-dialogs/choice-avg-length": "Longueur moyenne des choix", "core-dialogs/choice-avg-length": "Longueur moyenne des choix",
"core-dialogs/json-text": "Le texte en JSON contient les options que vous avez définies dans les autres onglets. Vous pouvez copier et sauver ce texte pour un usage ultérieur. Il suffira de le coller et de cliquer 'Appliquer' pour réutiliser les mêmes options.", "core-dialogs/json-text": "Le texte en JSON contient les options que vous avez définies dans les autres onglets. Vous pouvez copier et sauver ce texte pour un usage ultérieur. Il suffira de le coller et de cliquer 'Appliquer' pour réutiliser les mêmes options.",
"core-dialogs/ngram": "empreinte N-grammes", "clustering-keyers/ngram-fingerprint": "empreinte N-grammes",
"core-dialogs/reorder-column": "Trier / Supprimer des colonnes", "core-dialogs/reorder-column": "Trier / Supprimer des colonnes",
"core-dialogs/char-enc": "Encodage des caractères", "core-dialogs/char-enc": "Encodage des caractères",
"core-dialogs/browse-this-cluster": "Voir ce groupe", "core-dialogs/browse-this-cluster": "Voir ce groupe",
@ -214,7 +214,7 @@
"core-dialogs/no-rotation": "Sans rotation", "core-dialogs/no-rotation": "Sans rotation",
"core-dialogs/regular-dot": "Point de taille normale", "core-dialogs/regular-dot": "Point de taille normale",
"core-dialogs/for-recon-cell": "pour réconcilier les cellules, sortie", "core-dialogs/for-recon-cell": "pour réconcilier les cellules, sortie",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "La valeur de la cellule en cours. Cest un alias de 'cell.value'.", "core-dialogs/cell-value": "La valeur de la cellule en cours. Cest un alias de 'cell.value'.",
"core-dialogs/cluster-values": "Valeurs dans le groupe", "core-dialogs/cluster-values": "Valeurs dans le groupe",
"core-dialogs/clustering": "Groupage... ", "core-dialogs/clustering": "Groupage... ",
@ -276,7 +276,7 @@
"core-dialogs/error": "Erreur", "core-dialogs/error": "Erreur",
"core-dialogs/filtered-from": "filtré à partir de <b>", "core-dialogs/filtered-from": "filtré à partir de <b>",
"core-dialogs/big-dot": "Point de grande taille", "core-dialogs/big-dot": "Point de grande taille",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/custom-tab-exp": "Exporteur tabulaire personnalisé", "core-dialogs/custom-tab-exp": "Exporteur tabulaire personnalisé",
"core-dialogs/select-columns-dialog": "Sélectionner les colonnes", "core-dialogs/select-columns-dialog": "Sélectionner les colonnes",
"core-facets/regular-dot": "Point de taille normale", "core-facets/regular-dot": "Point de taille normale",

View File

@ -141,13 +141,13 @@
"core-dialogs/key-collision": "התנגשות מפתח", "core-dialogs/key-collision": "התנגשות מפתח",
"core-dialogs/nearest-neighbor": "השכן הקרוב ביותר", "core-dialogs/nearest-neighbor": "השכן הקרוב ביותר",
"core-dialogs/keying-function": "מפתוח&nbsp;פונקציה&nbsp;", "core-dialogs/keying-function": "מפתוח&nbsp;פונקציה&nbsp;",
"core-dialogs/fingerprint": "טביעת אצבע", "clustering-keyers/fingerprint": "טביעת אצבע",
"core-dialogs/ngram": "ngram-טביעת אצבע", "clustering-keyers/ngram-fingerprint": "ngram-טביעת אצבע",
"core-dialogs/metaphone": טהפון3", "clustering-keyers/metaphone3": טהפון3",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/distance-fun": "מרחק&nbsp;פונקציית&nbsp;", "core-dialogs/distance-fun": "מרחק&nbsp;פונקציית&nbsp;",
"core-dialogs/leven": "levenshtein", "clustering-distances/levenshtein": "levenshtein",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/ngram-size": "Ngram&nbsp;גודל&nbsp;", "core-dialogs/ngram-size": "Ngram&nbsp;גודל&nbsp;",
"core-dialogs/ngram-radius": "רדיוס&nbsp;", "core-dialogs/ngram-radius": "רדיוס&nbsp;",
"core-dialogs/block-chars": "חסימת&nbsp;תווים&nbsp;", "core-dialogs/block-chars": "חסימת&nbsp;תווים&nbsp;",

View File

@ -156,7 +156,7 @@
"core-dialogs/reuse": "Újrafelhasználás", "core-dialogs/reuse": "Újrafelhasználás",
"core-dialogs/date-format": "Dátum/idő formátum", "core-dialogs/date-format": "Dátum/idő formátum",
"core-dialogs/focusing-on": "erre összpontosítva", "core-dialogs/focusing-on": "erre összpontosítva",
"core-dialogs/fingerprint": "ujjlenyomat", "clustering-keyers/fingerprint": "ujjlenyomat",
"core-dialogs/block-chars": "Blokk-karakter", "core-dialogs/block-chars": "Blokk-karakter",
"core-dialogs/long-format": "Hosszú helyi formátum", "core-dialogs/long-format": "Hosszú helyi formátum",
"core-dialogs/short-format": "Rövid helyi formátum", "core-dialogs/short-format": "Rövid helyi formátum",
@ -198,7 +198,7 @@
"core-dialogs/sel-and-ord": "Exportálandó oszlopok kiválasztása és átrendezése", "core-dialogs/sel-and-ord": "Exportálandó oszlopok kiválasztása és átrendezése",
"core-dialogs/choice-avg-length": "Elemek átlagos hossza", "core-dialogs/choice-avg-length": "Elemek átlagos hossza",
"core-dialogs/json-text": "A következő JSON szöveg a korábbi füleken megadott beállításokat tartalmazza. Lehetőség van kimásolni, elmenteni és később újra beszúrni a jelenlegi beállítások ismételt használatához.", "core-dialogs/json-text": "A következő JSON szöveg a korábbi füleken megadott beállításokat tartalmazza. Lehetőség van kimásolni, elmenteni és később újra beszúrni a jelenlegi beállítások ismételt használatához.",
"core-dialogs/ngram": "ngram-ujjlenyomat", "clustering-keyers/ngram-fingerprint": "ngram-ujjlenyomat",
"core-dialogs/reorder-column": "Oszlopok átrendezése / eltávolítása", "core-dialogs/reorder-column": "Oszlopok átrendezése / eltávolítása",
"core-dialogs/char-enc": "Karakterkódolás", "core-dialogs/char-enc": "Karakterkódolás",
"core-dialogs/browse-this-cluster": "Ezen csoport böngészése", "core-dialogs/browse-this-cluster": "Ezen csoport böngészése",
@ -253,7 +253,7 @@
"core-dialogs/choices-in-cluster": "Elemek száma a csoportban", "core-dialogs/choices-in-cluster": "Elemek száma a csoportban",
"core-dialogs/filtered-from": "összesen <b>", "core-dialogs/filtered-from": "összesen <b>",
"core-dialogs/big-dot": "Nagy pontméret", "core-dialogs/big-dot": "Nagy pontméret",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-views/all": "Összes", "core-views/all": "Összes",
"core-views/custom-facet": "Egyéni facetta az oszlopon", "core-views/custom-facet": "Egyéni facetta az oszlopon",
"core-views/copy-recon-judg": "Oszlop összeegyeztetési döntéseinek másolása", "core-views/copy-recon-judg": "Oszlop összeegyeztetési döntéseinek másolása",

View File

@ -159,11 +159,11 @@
"core-dialogs/reuse": "Riusa", "core-dialogs/reuse": "Riusa",
"core-dialogs/date-format": "Per valori data/ora, usa il formato", "core-dialogs/date-format": "Per valori data/ora, usa il formato",
"core-dialogs/focusing-on": "incentrato su", "core-dialogs/focusing-on": "incentrato su",
"core-dialogs/fingerprint": "fingerprint", "clustering-keyers/fingerprint": "fingerprint",
"core-dialogs/block-chars": "Block&nbsp;Chars&nbsp;", "core-dialogs/block-chars": "Block&nbsp;Chars&nbsp;",
"core-dialogs/long-format": "Formato lungo", "core-dialogs/long-format": "Formato lungo",
"core-dialogs/short-format": "Formato breve", "core-dialogs/short-format": "Formato breve",
"core-dialogs/leven": "levenshtein", "clustering-distances/levenshtein": "levenshtein",
"core-dialogs/sqlExporterIgnoreFacets": "Ignora faccette e filtri ed esporta tutte le righe", "core-dialogs/sqlExporterIgnoreFacets": "Ignora faccette e filtri ed esporta tutte le righe",
"core-dialogs/rotated-clock": "Ruotato di 45° senso Orario", "core-dialogs/rotated-clock": "Ruotato di 45° senso Orario",
"core-dialogs/upload": "Carica", "core-dialogs/upload": "Carica",
@ -171,7 +171,7 @@
"core-dialogs/for-include-drop-statement-checkbox": "Includi direttive di DROP", "core-dialogs/for-include-drop-statement-checkbox": "Includi direttive di DROP",
"core-dialogs/merge": "Unire?", "core-dialogs/merge": "Unire?",
"core-dialogs/cluster-descr": "Questa feature aiuta a trovare gruppi di valori che portrebbero essere rappresentazioni alternative di uno stesso dato. Ad esemmpio, le due stringhe \"New York\" e \"new york\" probabilmente si riferiscono allo stesso concetto e differisocno solo per le maiuscole, come \"Gödel\" e \"Godel\" probabilmente si riferiscono alla stessa persona.", "core-dialogs/cluster-descr": "Questa feature aiuta a trovare gruppi di valori che portrebbero essere rappresentazioni alternative di uno stesso dato. Ad esemmpio, le due stringhe \"New York\" e \"new york\" probabilmente si riferiscono allo stesso concetto e differisocno solo per le maiuscole, come \"Gödel\" e \"Godel\" probabilmente si riferiscono alla stessa persona.",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/found": "trovati", "core-dialogs/found": "trovati",
"core-dialogs/starred": "Preferiti", "core-dialogs/starred": "Preferiti",
"core-dialogs/find-more": "Per saperne di più ...", "core-dialogs/find-more": "Per saperne di più ...",
@ -204,7 +204,7 @@
"core-dialogs/sel-and-ord": "Seleziona ed ordina le colonne da esportare", "core-dialogs/sel-and-ord": "Seleziona ed ordina le colonne da esportare",
"core-dialogs/choice-avg-length": "Lunghezza media delle alternative", "core-dialogs/choice-avg-length": "Lunghezza media delle alternative",
"core-dialogs/json-text": "Il seguente JSON codifica le opzioni impostate nelle altre schede. Puoi copiarlo e salvarlo per riutilizzarlo, incollandolo qui e cliccando Applica.", "core-dialogs/json-text": "Il seguente JSON codifica le opzioni impostate nelle altre schede. Puoi copiarlo e salvarlo per riutilizzarlo, incollandolo qui e cliccando Applica.",
"core-dialogs/ngram": "ngram-fingerprint", "clustering-keyers/ngram-fingerprint": "ngram-fingerprint",
"core-dialogs/reorder-column": "Riordina / Rimuovi Colonne", "core-dialogs/reorder-column": "Riordina / Rimuovi Colonne",
"core-dialogs/char-enc": "Codifica caratteri", "core-dialogs/char-enc": "Codifica caratteri",
"core-dialogs/browse-this-cluster": "Naviga questo cluster", "core-dialogs/browse-this-cluster": "Naviga questo cluster",
@ -212,7 +212,7 @@
"core-dialogs/no-rotation": "Nessuna Rotazione", "core-dialogs/no-rotation": "Nessuna Rotazione",
"core-dialogs/regular-dot": "Dimensione Punto: Normale", "core-dialogs/regular-dot": "Dimensione Punto: Normale",
"core-dialogs/for-recon-cell": "Per celle riconciliate, esporta", "core-dialogs/for-recon-cell": "Per celle riconciliate, esporta",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "Il valore della cella corrente. Questa è una scorcatoia per 'cell.value'.", "core-dialogs/cell-value": "Il valore della cella corrente. Questa è una scorcatoia per 'cell.value'.",
"core-dialogs/cluster-values": "valori nei Cluster", "core-dialogs/cluster-values": "valori nei Cluster",
"core-dialogs/clustering": "Clustering... ", "core-dialogs/clustering": "Clustering... ",
@ -274,7 +274,7 @@
"core-dialogs/error": "Errore", "core-dialogs/error": "Errore",
"core-dialogs/filtered-from": "filtrati da <b>", "core-dialogs/filtered-from": "filtrati da <b>",
"core-dialogs/big-dot": "Dimensione Punto: Grande", "core-dialogs/big-dot": "Dimensione Punto: Grande",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-facets/regular-dot": "Dimensione Punto: Normale", "core-facets/regular-dot": "Dimensione Punto: Normale",
"core-facets/current-exp": "Espressione corrente", "core-facets/current-exp": "Espressione corrente",
"core-facets/set-choice-count": "Imposta limite alla quantità di alternative", "core-facets/set-choice-count": "Imposta limite alla quantità di alternative",

View File

@ -161,11 +161,11 @@
"core-dialogs/reuse": "再利用", "core-dialogs/reuse": "再利用",
"core-dialogs/date-format": "日付時刻の値には、ISO 8601形式を使ってください", "core-dialogs/date-format": "日付時刻の値には、ISO 8601形式を使ってください",
"core-dialogs/focusing-on": "フォーカス対象", "core-dialogs/focusing-on": "フォーカス対象",
"core-dialogs/fingerprint": "fingerprint", "clustering-keyers/fingerprint": "fingerprint",
"core-dialogs/block-chars": "文字ブロック", "core-dialogs/block-chars": "文字ブロック",
"core-dialogs/long-format": "長いロケール形式", "core-dialogs/long-format": "長いロケール形式",
"core-dialogs/short-format": "短いロケール形式", "core-dialogs/short-format": "短いロケール形式",
"core-dialogs/leven": "レーベンシュタイン距離法", "clustering-distances/levenshtein": "レーベンシュタイン距離法",
"core-dialogs/sqlExporterIgnoreFacets": "ファセット、フィルターを無視し、全行を出力", "core-dialogs/sqlExporterIgnoreFacets": "ファセット、フィルターを無視し、全行を出力",
"core-dialogs/rotated-clock": "時計回りに45度回転する", "core-dialogs/rotated-clock": "時計回りに45度回転する",
"core-dialogs/upload": "アップロード", "core-dialogs/upload": "アップロード",
@ -173,7 +173,7 @@
"core-dialogs/method": "方法&nbsp;", "core-dialogs/method": "方法&nbsp;",
"core-dialogs/merge": "マージしますか?", "core-dialogs/merge": "マージしますか?",
"core-dialogs/cluster-descr": "この機能は、同じものの別の名前かもしれないセルのグループを探すのに役立ちます。たとえば、\"New York\" と \"new york\" は非常に似た概念ですが表記の違いがあります。また、 \"Gödel\" と \"Godel\" は多分同じ人を示します。", "core-dialogs/cluster-descr": "この機能は、同じものの別の名前かもしれないセルのグループを探すのに役立ちます。たとえば、\"New York\" と \"new york\" は非常に似た概念ですが表記の違いがあります。また、 \"Gödel\" と \"Godel\" は多分同じ人を示します。",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/found": "結果", "core-dialogs/found": "結果",
"core-dialogs/starred": "星付き", "core-dialogs/starred": "星付き",
"core-dialogs/find-more": "詳細はこちら ...", "core-dialogs/find-more": "詳細はこちら ...",
@ -206,7 +206,7 @@
"core-dialogs/sel-and-ord": "出力するカラムを選択してください", "core-dialogs/sel-and-ord": "出力するカラムを選択してください",
"core-dialogs/choice-avg-length": "選択肢の長さの平均", "core-dialogs/choice-avg-length": "選択肢の長さの平均",
"core-dialogs/json-text": "次のJSONは、あなたが設定したオプションをコード化しています。コピーして保存したり、貼り付けて再利用することができます。", "core-dialogs/json-text": "次のJSONは、あなたが設定したオプションをコード化しています。コピーして保存したり、貼り付けて再利用することができます。",
"core-dialogs/ngram": "ngram-fingerprint", "clustering-keyers/ngram-fingerprint": "ngram-fingerprint",
"core-dialogs/reorder-column": "カラムの並べ替え/削除", "core-dialogs/reorder-column": "カラムの並べ替え/削除",
"core-dialogs/char-enc": "文字エンコード", "core-dialogs/char-enc": "文字エンコード",
"core-dialogs/browse-this-cluster": "このクラスタを閲覧", "core-dialogs/browse-this-cluster": "このクラスタを閲覧",
@ -214,7 +214,7 @@
"core-dialogs/no-rotation": "回転なし", "core-dialogs/no-rotation": "回転なし",
"core-dialogs/regular-dot": "標準的なドット", "core-dialogs/regular-dot": "標準的なドット",
"core-dialogs/for-recon-cell": "照合したセルを出力", "core-dialogs/for-recon-cell": "照合したセルを出力",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "現在のセルのvalue: cell.valueの別名です.", "core-dialogs/cell-value": "現在のセルのvalue: cell.valueの別名です.",
"core-dialogs/cluster-values": "クラスタの値", "core-dialogs/cluster-values": "クラスタの値",
"core-dialogs/clustering": "クラスタリング中... ", "core-dialogs/clustering": "クラスタリング中... ",
@ -276,7 +276,7 @@
"core-dialogs/error": "エラー", "core-dialogs/error": "エラー",
"core-dialogs/filtered-from": "対象<b>", "core-dialogs/filtered-from": "対象<b>",
"core-dialogs/big-dot": "大きいドット", "core-dialogs/big-dot": "大きいドット",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/sql-exporter": "SQLエクスポート", "core-dialogs/sql-exporter": "SQLエクスポート",
"core-dialogs/select-columns-dialog": "カラムを選択", "core-dialogs/select-columns-dialog": "カラムを選択",
"core-facets/regular-dot": "標準的なドット", "core-facets/regular-dot": "標準的なドット",

View File

@ -169,11 +169,11 @@
"core-dialogs/method": "Metode&nbsp;", "core-dialogs/method": "Metode&nbsp;",
"core-dialogs/key-collision": "nøkkelkollisjon", "core-dialogs/key-collision": "nøkkelkollisjon",
"core-dialogs/nearest-neighbor": "nærmeste nabo", "core-dialogs/nearest-neighbor": "nærmeste nabo",
"core-dialogs/fingerprint": "fingeravtrykk", "clustering-keyers/fingerprint": "fingeravtrykk",
"core-dialogs/ngram": "n-gram-fingeravtrykk", "clustering-keyers/ngram-fingerprint": "n-gram-fingeravtrykk",
"core-dialogs/metaphone": "Metaphone3", "clustering-keyers/metaphone3": "Metaphone3",
"core-dialogs/distance-fun": "Distanse&nbsp;funksjon&nbsp;", "core-dialogs/distance-fun": "Distanse&nbsp;funksjon&nbsp;",
"core-dialogs/ppm": "DPM", "clustering-distances/PPM": "DPM",
"core-dialogs/ngram-size": "N-gram&nbsp;størrelse&nbsp;", "core-dialogs/ngram-size": "N-gram&nbsp;størrelse&nbsp;",
"core-dialogs/ngram-radius": "Radius&nbsp;", "core-dialogs/ngram-radius": "Radius&nbsp;",
"core-dialogs/block-chars": "Blogg&nbsp;tegn&nbsp;", "core-dialogs/block-chars": "Blogg&nbsp;tegn&nbsp;",

View File

@ -159,17 +159,17 @@
"core-dialogs/reuse": "Reusar", "core-dialogs/reuse": "Reusar",
"core-dialogs/date-format": "Para valores de data/hora use o formato", "core-dialogs/date-format": "Para valores de data/hora use o formato",
"core-dialogs/focusing-on": "foco em", "core-dialogs/focusing-on": "foco em",
"core-dialogs/fingerprint": "fingerprint", "clustering-keyers/fingerprint": "fingerprint",
"core-dialogs/block-chars": "Caracteres&nbsp;do&nbsp;bloco&nbsp;", "core-dialogs/block-chars": "Caracteres&nbsp;do&nbsp;bloco&nbsp;",
"core-dialogs/long-format": "Formato local longo", "core-dialogs/long-format": "Formato local longo",
"core-dialogs/short-format": "Formato local curto", "core-dialogs/short-format": "Formato local curto",
"core-dialogs/leven": "levenshtein", "clustering-distances/levenshtein": "levenshtein",
"core-dialogs/rotated-clock": "Rotacionar 45° no sentido horário", "core-dialogs/rotated-clock": "Rotacionar 45° no sentido horário",
"core-dialogs/upload": "Carregar", "core-dialogs/upload": "Carregar",
"core-dialogs/remove": "Excluir", "core-dialogs/remove": "Excluir",
"core-dialogs/merge": "Unir?", "core-dialogs/merge": "Unir?",
"core-dialogs/cluster-descr": "Esta funcionalidade ajuda você a encontrar grupos em diferentes células que podem representar a mesma coisa. Por exemplo, \"New York\" e \"new york\" provavelmente se referem a mesma coisa diferenciando somente pelas letras maiúsculas. Da mesma maneira, \"Gödel\" e \"Godel\" provavelmente representam a mesma pessoa.", "core-dialogs/cluster-descr": "Esta funcionalidade ajuda você a encontrar grupos em diferentes células que podem representar a mesma coisa. Por exemplo, \"New York\" e \"new york\" provavelmente se referem a mesma coisa diferenciando somente pelas letras maiúsculas. Da mesma maneira, \"Gödel\" e \"Godel\" provavelmente representam a mesma pessoa.",
"core-dialogs/phonetic": "cologne-phonetic", "clustering-keyers/cologne-phonetic": "cologne-phonetic",
"core-dialogs/found": "encontrado", "core-dialogs/found": "encontrado",
"core-dialogs/starred": "Com estrela", "core-dialogs/starred": "Com estrela",
"core-dialogs/find-more": "Mais informações...", "core-dialogs/find-more": "Mais informações...",
@ -194,7 +194,7 @@
"core-dialogs/cluster-edit": "Agrupar e editar coluna", "core-dialogs/cluster-edit": "Agrupar e editar coluna",
"core-dialogs/out-not-unmatch": "Nenhuma saída para células sem correspondência", "core-dialogs/out-not-unmatch": "Nenhuma saída para células sem correspondência",
"core-dialogs/date-iso": "ISO 8601, ex., 2011-08-24T18:36:10+08:00", "core-dialogs/date-iso": "ISO 8601, ex., 2011-08-24T18:36:10+08:00",
"core-dialogs/ngram": "ngram-fingerprint", "clustering-keyers/ngram-fingerprint": "ngram-fingerprint",
"core-dialogs/for-recon-cell": "Para células reconciliadas, saída", "core-dialogs/for-recon-cell": "Para células reconciliadas, saída",
"core-dialogs/no-syntax-err": "Não há erro de sintaxe", "core-dialogs/no-syntax-err": "Não há erro de sintaxe",
"core-dialogs/opt-for": "Opções para", "core-dialogs/opt-for": "Opções para",
@ -210,7 +210,7 @@
"core-dialogs/no-rotation": "Não rotacionar", "core-dialogs/no-rotation": "Não rotacionar",
"core-dialogs/regular-dot": "Pontos normais", "core-dialogs/regular-dot": "Pontos normais",
"core-dialogs/line-based": "Formatos de texto", "core-dialogs/line-based": "Formatos de texto",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "O valor atual da célula. É um atalho para 'cell.value'.", "core-dialogs/cell-value": "O valor atual da célula. É um atalho para 'cell.value'.",
"core-dialogs/custom": "Personalizado", "core-dialogs/custom": "Personalizado",
"core-dialogs/clustering": "Agrupando... ", "core-dialogs/clustering": "Agrupando... ",
@ -258,7 +258,7 @@
"core-dialogs/cell-fields": "A célula atual. Ela tem alguns campos: 'valor' e 'reconhecer'.", "core-dialogs/cell-fields": "A célula atual. Ela tem alguns campos: 'valor' e 'reconhecer'.",
"core-dialogs/idling": "Aguarde...", "core-dialogs/idling": "Aguarde...",
"core-dialogs/local-time": "Usar fuso horário local", "core-dialogs/local-time": "Usar fuso horário local",
"core-dialogs/metaphone": "metaphone3", "clustering-keyers/metaphone3": "metaphone3",
"core-dialogs/key-collision": "colisão de chaves", "core-dialogs/key-collision": "colisão de chaves",
"core-dialogs/choices-in-cluster": "# Escolhas no cluster", "core-dialogs/choices-in-cluster": "# Escolhas no cluster",
"core-dialogs/error": "Erro", "core-dialogs/error": "Erro",

View File

@ -196,17 +196,17 @@
"core-dialogs/reuse": "Применить", "core-dialogs/reuse": "Применить",
"core-dialogs/date-format": "Для времени и даты использовать формат", "core-dialogs/date-format": "Для времени и даты использовать формат",
"core-dialogs/focusing-on": "фокус на", "core-dialogs/focusing-on": "фокус на",
"core-dialogs/fingerprint": "Fingerprint", "clustering-keyers/fingerprint": "Fingerprint",
"core-dialogs/block-chars": "Размер&nbsp;блока&nbsp;", "core-dialogs/block-chars": "Размер&nbsp;блока&nbsp;",
"core-dialogs/long-format": "Длинный региональный", "core-dialogs/long-format": "Длинный региональный",
"core-dialogs/short-format": "Короткий региональный", "core-dialogs/short-format": "Короткий региональный",
"core-dialogs/leven": "Левенштейна", "clustering-distances/levenshtein": "Левенштейна",
"core-dialogs/rotated-clock": "Повернуть на 45° по часовой", "core-dialogs/rotated-clock": "Повернуть на 45° по часовой",
"core-dialogs/upload": "Выгрузить", "core-dialogs/upload": "Выгрузить",
"core-dialogs/remove": "Удалить", "core-dialogs/remove": "Удалить",
"core-dialogs/merge": "Слить?", "core-dialogs/merge": "Слить?",
"core-dialogs/cluster-descr": "Этот функционал помогает находить группы ячеек с различными значениями, являющимися альтернативным представлением одной и той же сущности. Например, строки \"New York\" и \"new york\" вероятно представляют одно и то же понятие и различаются размером первой буквы, а \"Gödel\" и \"Godel\" возможно указывают на одного и того же человека.", "core-dialogs/cluster-descr": "Этот функционал помогает находить группы ячеек с различными значениями, являющимися альтернативным представлением одной и той же сущности. Например, строки \"New York\" и \"new york\" вероятно представляют одно и то же понятие и различаются размером первой буквы, а \"Gödel\" и \"Godel\" возможно указывают на одного и того же человека.",
"core-dialogs/phonetic": "ColognePhonetic", "clustering-keyers/cologne-phonetic": "ColognePhonetic",
"core-dialogs/found": "найдено", "core-dialogs/found": "найдено",
"core-dialogs/starred": "Избранное", "core-dialogs/starred": "Избранное",
"core-dialogs/find-more": "Узнать больше ...", "core-dialogs/find-more": "Узнать больше ...",
@ -239,7 +239,7 @@
"core-dialogs/sel-and-ord": "Укажите колонки и их порядок для экспорта", "core-dialogs/sel-and-ord": "Укажите колонки и их порядок для экспорта",
"core-dialogs/choice-avg-length": "Средняя длина вариантов", "core-dialogs/choice-avg-length": "Средняя длина вариантов",
"core-dialogs/json-text": "Этот JSON-текст содержит настройки сделанные вами на других закладках. Вы можете скопировать его и сохранить для последующего использования, а также вставить его и нажать Применить чтобы воспользоваться сохраненными ранее настройками.", "core-dialogs/json-text": "Этот JSON-текст содержит настройки сделанные вами на других закладках. Вы можете скопировать его и сохранить для последующего использования, а также вставить его и нажать Применить чтобы воспользоваться сохраненными ранее настройками.",
"core-dialogs/ngram": "Fingerprint(NGram)", "clustering-keyers/ngram-fingerprint": "Fingerprint(NGram)",
"core-dialogs/reorder-column": "Переупорядочить / Удалить колонки", "core-dialogs/reorder-column": "Переупорядочить / Удалить колонки",
"core-dialogs/char-enc": "Кодировка символов", "core-dialogs/char-enc": "Кодировка символов",
"core-dialogs/browse-this-cluster": "Показать этот кластер", "core-dialogs/browse-this-cluster": "Показать этот кластер",
@ -247,7 +247,7 @@
"core-dialogs/no-rotation": "Не поворачивать", "core-dialogs/no-rotation": "Не поворачивать",
"core-dialogs/regular-dot": "Стандартный размер точки", "core-dialogs/regular-dot": "Стандартный размер точки",
"core-dialogs/for-recon-cell": "Вывод ячеек прошедших сверку", "core-dialogs/for-recon-cell": "Вывод ячеек прошедших сверку",
"core-dialogs/ppm": "РРМ", "clustering-distances/PPM": "РРМ",
"core-dialogs/cell-value": "Значение текущей ячейки. Сокращённое наименование для 'cell.value'.", "core-dialogs/cell-value": "Значение текущей ячейки. Сокращённое наименование для 'cell.value'.",
"core-dialogs/cluster-values": "Значения в кластере", "core-dialogs/cluster-values": "Значения в кластере",
"core-dialogs/clustering": "Кластеризация... ", "core-dialogs/clustering": "Кластеризация... ",
@ -299,7 +299,7 @@
"core-dialogs/error": "Ошибка", "core-dialogs/error": "Ошибка",
"core-dialogs/filtered-from": "отфильтровано из <b>", "core-dialogs/filtered-from": "отфильтровано из <b>",
"core-dialogs/big-dot": "Большой размер точки", "core-dialogs/big-dot": "Большой размер точки",
"core-dialogs/metaphone": "Metaphone3", "clustering-keyers/metaphone3": "Metaphone3",
"core-facets/regular-dot": "Стандартный размер точки", "core-facets/regular-dot": "Стандартный размер точки",
"core-facets/current-exp": "Текущее выражение", "core-facets/current-exp": "Текущее выражение",
"core-facets/set-choice-count": "Установить ограничение на число вариантов", "core-facets/set-choice-count": "Установить ограничение на число вариантов",

View File

@ -157,17 +157,17 @@
"core-dialogs/reuse": "Gamiting muli", "core-dialogs/reuse": "Gamiting muli",
"core-dialogs/date-format": "Para sa balyu ng petsa/oras, gitin ang pormat", "core-dialogs/date-format": "Para sa balyu ng petsa/oras, gitin ang pormat",
"core-dialogs/focusing-on": "nakapokus sa", "core-dialogs/focusing-on": "nakapokus sa",
"core-dialogs/fingerprint": "tatak ng daliri", "clustering-keyers/fingerprint": "tatak ng daliri",
"core-dialogs/block-chars": "Magharang&nbsp;Karakter&nbsp;", "core-dialogs/block-chars": "Magharang&nbsp;Karakter&nbsp;",
"core-dialogs/long-format": "Mahabang lokal na pormat", "core-dialogs/long-format": "Mahabang lokal na pormat",
"core-dialogs/short-format": "Maikling lokal na pormat", "core-dialogs/short-format": "Maikling lokal na pormat",
"core-dialogs/leven": "ang levenshtein", "clustering-distances/levenshtein": "ang levenshtein",
"core-dialogs/rotated-clock": "Umiikot ng 45° Clockwise", "core-dialogs/rotated-clock": "Umiikot ng 45° Clockwise",
"core-dialogs/upload": "I-upload", "core-dialogs/upload": "I-upload",
"core-dialogs/remove": "Tanggalin", "core-dialogs/remove": "Tanggalin",
"core-dialogs/merge": "Pagsamahin?", "core-dialogs/merge": "Pagsamahin?",
"core-dialogs/cluster-descr": "Ang katagiang ito ay makakatulong sa iyong paghahanap ng ibat-ibang mga balyu ng cell na maaaring maging alternatibong pagpresenta sa magkaparehong bagay. Halimbawa, ang dalawang strings na \"New York\" at \"new york\" ay malamang na tumutukoy sa parehong konsepto at mayroong pagkakaiba sa kapitalisasyon, at ahhhh \"Gödel\" and \"Godel\" na maaaring nag reper sa parehong tao.", "core-dialogs/cluster-descr": "Ang katagiang ito ay makakatulong sa iyong paghahanap ng ibat-ibang mga balyu ng cell na maaaring maging alternatibong pagpresenta sa magkaparehong bagay. Halimbawa, ang dalawang strings na \"New York\" at \"new york\" ay malamang na tumutukoy sa parehong konsepto at mayroong pagkakaiba sa kapitalisasyon, at ahhhh \"Gödel\" and \"Godel\" na maaaring nag reper sa parehong tao.",
"core-dialogs/phonetic": "ang cologne-phonetic", "clustering-keyers/cologne-phonetic": "ang cologne-phonetic",
"core-dialogs/found": "Nakita na", "core-dialogs/found": "Nakita na",
"core-dialogs/starred": "Naka-starred", "core-dialogs/starred": "Naka-starred",
"core-dialogs/find-more": "Maghanap pa ng marami ...", "core-dialogs/find-more": "Maghanap pa ng marami ...",
@ -200,7 +200,7 @@
"core-dialogs/sel-and-ord": "Pumili at Maghanay ng mga Kulom sa Pag-eksport", "core-dialogs/sel-and-ord": "Pumili at Maghanay ng mga Kulom sa Pag-eksport",
"core-dialogs/choice-avg-length": "Ang Average na Haba ng mga Pagpipilian", "core-dialogs/choice-avg-length": "Ang Average na Haba ng mga Pagpipilian",
"core-dialogs/json-text": "Ang sumusunod na teksto ng JSON ay mag-encode ng mga opsiyon na iyong itinakda sa ibang mga tabs. Pwede mo itong kopyahin at i-save para sa ibang pagkakataon, at muling i-paste at i-klik ang Apply para muling gamiting ang parihong mga opsiyon.", "core-dialogs/json-text": "Ang sumusunod na teksto ng JSON ay mag-encode ng mga opsiyon na iyong itinakda sa ibang mga tabs. Pwede mo itong kopyahin at i-save para sa ibang pagkakataon, at muling i-paste at i-klik ang Apply para muling gamiting ang parihong mga opsiyon.",
"core-dialogs/ngram": "ang ngram-fingerprint", "clustering-keyers/ngram-fingerprint": "ang ngram-fingerprint",
"core-dialogs/reorder-column": "Muling pagkasunod-sunod / Tanggalin ang mga kolum", "core-dialogs/reorder-column": "Muling pagkasunod-sunod / Tanggalin ang mga kolum",
"core-dialogs/char-enc": "Ang pag-encode ng mga karakter", "core-dialogs/char-enc": "Ang pag-encode ng mga karakter",
"core-dialogs/browse-this-cluster": "I-browse ang klaster na ito", "core-dialogs/browse-this-cluster": "I-browse ang klaster na ito",
@ -208,7 +208,7 @@
"core-dialogs/no-rotation": "Walang pag-ikot", "core-dialogs/no-rotation": "Walang pag-ikot",
"core-dialogs/regular-dot": "Regular na Sukat ng Tuldok", "core-dialogs/regular-dot": "Regular na Sukat ng Tuldok",
"core-dialogs/for-recon-cell": "Para sa mga narekonsilang mga cells, kalalabasan", "core-dialogs/for-recon-cell": "Para sa mga narekonsilang mga cells, kalalabasan",
"core-dialogs/ppm": "PPM", "clustering-distances/PPM": "PPM",
"core-dialogs/cell-value": "Ang kasalukuyang balyu ng mga cell. Ito ay isang shortcut para sa 'cell.value'.", "core-dialogs/cell-value": "Ang kasalukuyang balyu ng mga cell. Ito ay isang shortcut para sa 'cell.value'.",
"core-dialogs/cluster-values": "Ang mga balyu sa Klaster", "core-dialogs/cluster-values": "Ang mga balyu sa Klaster",
"core-dialogs/clustering": "Ang pagklaster... ", "core-dialogs/clustering": "Ang pagklaster... ",
@ -260,7 +260,7 @@
"core-dialogs/error": "Hindi nagtagumpay", "core-dialogs/error": "Hindi nagtagumpay",
"core-dialogs/filtered-from": "Isinasala mula sa <b>", "core-dialogs/filtered-from": "Isinasala mula sa <b>",
"core-dialogs/big-dot": "Malaking Sukat ng Tuldok", "core-dialogs/big-dot": "Malaking Sukat ng Tuldok",
"core-dialogs/metaphone": "ang metaphone3", "clustering-keyers/metaphone3": "ang metaphone3",
"core-facets/regular-dot": "Katamtamang Sukat ng Tuldok", "core-facets/regular-dot": "Katamtamang Sukat ng Tuldok",
"core-facets/current-exp": "Ang kasalukuyang ekspresyon", "core-facets/current-exp": "Ang kasalukuyang ekspresyon",
"core-facets/set-choice-count": "Mag-takda ng pagpipilian na makapagbilang ng limit", "core-facets/set-choice-count": "Mag-takda ng pagpipilian na makapagbilang ng limit",

View File

@ -141,13 +141,13 @@
"core-dialogs/key-collision": "关键词碰接", "core-dialogs/key-collision": "关键词碰接",
"core-dialogs/nearest-neighbor": "就近原则", "core-dialogs/nearest-neighbor": "就近原则",
"core-dialogs/keying-function": "关键词算法", "core-dialogs/keying-function": "关键词算法",
"core-dialogs/fingerprint": "指纹分类算法", "clustering-keyers/fingerprint": "指纹分类算法",
"core-dialogs/ngram": "ngram-指纹分类算法", "clustering-keyers/ngram-fingerprint": "ngram-指纹分类算法",
"core-dialogs/metaphone": "metaphone3算法", "clustering-keyers/metaphone3": "metaphone3算法",
"core-dialogs/phonetic": "cologne-phonetic算法", "clustering-keyers/cologne-phonetic": "cologne-phonetic算法",
"core-dialogs/distance-fun": "距离算法", "core-dialogs/distance-fun": "距离算法",
"core-dialogs/leven": "levenshtein算法", "clustering-distances/levenshtein": "levenshtein算法",
"core-dialogs/ppm": "PPM算法", "clustering-distances/PPM": "PPM算法",
"core-dialogs/ngram-size": "Ngram&nbsp;大小&nbsp;", "core-dialogs/ngram-size": "Ngram&nbsp;大小&nbsp;",
"core-dialogs/ngram-radius": "半径(距离)", "core-dialogs/ngram-radius": "半径(距离)",
"core-dialogs/block-chars": "块字符数", "core-dialogs/block-chars": "块字符数",

View File

@ -17,17 +17,11 @@
</td> </td>
<td> <td>
<div class="binning-controls"><span bind="or_dialog_keying"></span> <div class="binning-controls"><span bind="or_dialog_keying"></span>
<select bind="keyingFunctionSelector"> <select bind="keyingFunctionSelector"></select>
<option selected="true" bind="or_dialog_fingerprint" value="fingerprint"></option> </div>
<option bind="or_dialog_ngram" value="ngram-fingerprint"></option>
<option bind="or_dialog_metaphone" value="metaphone3"></option>
<option bind="or_dialog_phonetic" value="cologne-phonetic"></option>
</select></div>
<div class="knn-controls hidden"><span bind="or_dialog_distance"></span> <div class="knn-controls hidden"><span bind="or_dialog_distance"></span>
<select bind="distanceFunctionSelector"> <select bind="distanceFunctionSelector"></select>
<option selected="true" bind="or_dialog_leven" value="levenshtein"></option> </div>
<option bind="or_dialog_ppm" value="PPM"></option>
</select></div>
</td> </td>
<td> <td>
<div id="ngram-fingerprint-params" class="function-params hidden"> <div id="ngram-fingerprint-params" class="function-params hidden">

View File

@ -57,13 +57,6 @@ ClusteringDialog.prototype._createDialog = function() {
this._elmts.or_dialog_keyCollision.html($.i18n('core-dialogs/key-collision')); this._elmts.or_dialog_keyCollision.html($.i18n('core-dialogs/key-collision'));
this._elmts.or_dialog_neighbor.html($.i18n('core-dialogs/nearest-neighbor')); this._elmts.or_dialog_neighbor.html($.i18n('core-dialogs/nearest-neighbor'));
this._elmts.or_dialog_keying.html($.i18n('core-dialogs/keying-function')); this._elmts.or_dialog_keying.html($.i18n('core-dialogs/keying-function'));
this._elmts.or_dialog_fingerprint.html($.i18n('core-dialogs/fingerprint'));
this._elmts.or_dialog_ngram.html($.i18n('core-dialogs/ngram'));
this._elmts.or_dialog_metaphone.html($.i18n('core-dialogs/metaphone'));
this._elmts.or_dialog_phonetic.html($.i18n('core-dialogs/phonetic'));
this._elmts.or_dialog_distance.html($.i18n('core-dialogs/distance-fun'));
this._elmts.or_dialog_leven.html($.i18n('core-dialogs/leven'));
this._elmts.or_dialog_ppm.html($.i18n('core-dialogs/ppm'));
this._elmts.or_dialog_ngramSize.html($.i18n('core-dialogs/ngram-size')); this._elmts.or_dialog_ngramSize.html($.i18n('core-dialogs/ngram-size'));
this._elmts.or_dialog_radius.html($.i18n('core-dialogs/ngram-radius')); this._elmts.or_dialog_radius.html($.i18n('core-dialogs/ngram-radius'));
this._elmts.or_dialog_blockChars.html($.i18n('core-dialogs/block-chars')); this._elmts.or_dialog_blockChars.html($.i18n('core-dialogs/block-chars'));
@ -127,7 +120,43 @@ ClusteringDialog.prototype._createDialog = function() {
this._elmts.applyCloseButton.click(function() { self._onApplyClose(); }); this._elmts.applyCloseButton.click(function() { self._onApplyClose(); });
this._elmts.closeButton.click(function() { self._dismiss(); }); this._elmts.closeButton.click(function() { self._dismiss(); });
this._level = DialogSystem.showDialog(dialog); // Fill in all the keyers and distances
$.get("command/core/get-clustering-functions-and-distances")
.success(function(data) {
var keyers = data.keyers != null ? data.keyers : [];
var distances = data.distances != null ? data.distances : [];
var i = 0;
for(; i < keyers.length; i++) {
var label = $.i18n('clustering-keyers/'+keyers[i]);
if (label.startsWith('clustering-keyers')) {
label = keyers[i];
}
var option = $('<option></option>')
.attr('value', keyers[i])
.text(label)
.appendTo(self._elmts.keyingFunctionSelector);
if (i == 0) {
option.attr('selected', 'true');
}
}
for(i = 0; i < distances.length; i++) {
var label = $.i18n('clustering-distances/'+distances[i]);
if (label.startsWith('clustering-distances')) {
label = distances[i];
}
var option = $('<option></option>')
.attr('value', distances[i])
.text(label)
.appendTo(self._elmts.distanceFunctionSelector);
if (i == 0) {
option.attr('selected', 'true');
}
}
self._level = DialogSystem.showDialog(dialog);
})
.error(function(error) {
alert($.i18n('core-dialogs/no-clustering-functions-and-distances'));
});
}; };
ClusteringDialog.prototype._renderTable = function(clusters) { ClusteringDialog.prototype._renderTable = function(clusters) {