diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java index a1267c6..6019a1f 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java @@ -43,7 +43,7 @@ import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.openmaptiles.util.Utils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; @@ -74,7 +74,7 @@ public class AerodromeLabel implements features.centroid(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) .setMinZoom(important ? 8 : 10) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .putAttrs(Utils.elevationTags(element.ele())) .setAttr(Fields.IATA, nullIfEmpty(element.iata())) .setAttr(Fields.ICAO, nullIfEmpty(element.icao())) diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java index eb5fed3..0104d3b 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java @@ -47,7 +47,7 @@ import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -117,7 +117,7 @@ public class MountainPeak implements if (meters != null && Math.abs(meters) < 10_000) { var feature = features.point(LAYER_NAME) .setAttr(Fields.CLASS, element.source().getTag("natural")) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .putAttrs(elevationTags(meters)) .setSortKeyDescending( meters.intValue() + @@ -146,7 +146,7 @@ public class MountainPeak implements features.line(LAYER_NAME) .setAttr(Fields.CLASS, element.source().getTag("natural")) .setAttr(Fields.RANK, rank) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setSortKey(rank) .setMinZoom(13) .setBufferPixels(100); diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java index 3ff922f..669d02c 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java @@ -51,7 +51,7 @@ import com.onthegomap.planetiler.geo.GeometryType; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.SortKey; import com.onthegomap.planetiler.util.Translations; @@ -113,14 +113,14 @@ public class Park implements double area = element.source().area(); int minzoom = getMinZoomForArea(area); - var names = LanguageUtils.getNamesWithoutTranslations(element.source().tags()); + var names = OmtLanguageUtils.getNamesWithoutTranslations(element.source().tags()); outline.putAttrsWithMinzoom(names, 5); features.pointOnSurface(LAYER_NAME).setBufferPixels(256) .setAttr(Fields.CLASS, clazz) .putAttrs(names) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setPointLabelGridPixelSize(14, 100) .setSortKey(SortKey .orderByTruesFirst("national_park".equals(clazz)) diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java index 00a58be..fe9a00b 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java @@ -52,7 +52,7 @@ import com.onthegomap.planetiler.geo.PolygonIndex; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -200,10 +200,10 @@ public class Place implements public void process(Tables.OsmContinentPoint element, FeatureCollector features) { if (!nullOrEmpty(element.name())) { features.point(LAYER_NAME).setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setAttr(Fields.CLASS, FieldValues.CLASS_CONTINENT) .setAttr(Fields.RANK, 1) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setZoomRange(0, 3); } } @@ -226,7 +226,7 @@ public class Place implements // should be lower int rank = 7; NaturalEarthRegion country = countries.get(element.source().worldGeometry().getCentroid()); - var names = LanguageUtils.getNames(element.source().tags(), translations); + var names = OmtLanguageUtils.getNames(element.source().tags(), translations); if (country != null) { if (nullOrEmpty(names.get(Fields.NAME_EN))) { @@ -257,7 +257,7 @@ public class Place implements // use natural earth to filter out any spurious states, and to set the rank field NaturalEarthRegion state = states.getOnlyContaining(element.source().worldGeometry().getCentroid()); if (state != null) { - var names = LanguageUtils.getNames(element.source().tags(), translations); + var names = OmtLanguageUtils.getNames(element.source().tags(), translations); if (nullOrEmpty(names.get(Fields.NAME_EN))) { names.put(Fields.NAME_EN, state.name); } @@ -284,7 +284,7 @@ public class Place implements int minzoom = rank <= 3 ? 8 : rank <= 4 ? 9 : 10; features.pointOnSurface(LAYER_NAME).setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setAttr(Fields.CLASS, "island") .setAttr(Fields.RANK, rank) .setMinZoom(minzoom) @@ -298,7 +298,7 @@ public class Place implements @Override public void process(Tables.OsmIslandPoint element, FeatureCollector features) { features.point(LAYER_NAME).setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setAttr(Fields.CLASS, "island") .setAttr(Fields.RANK, 7) .setMinZoom(12); @@ -345,7 +345,7 @@ public class Place implements placeType.ordinal() <= PlaceType.SUBURB.ordinal() ? 11 : 14; var feature = features.point(LAYER_NAME).setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setAttr(Fields.CLASS, element.place()) .setAttr(Fields.RANK, rank) .setMinZoom(minzoom) diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java index 5f376bc..eb6cf74 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java @@ -50,7 +50,7 @@ import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; import com.onthegomap.planetiler.util.Translations; @@ -172,7 +172,7 @@ public class Poi implements .setAttr(Fields.LAYER, nullIfLong(element.layer(), 0)) .setAttr(Fields.LEVEL, Parse.parseLongOrNull(element.source().getTag("level"))) .setAttr(Fields.INDOOR, element.indoor() ? 1 : null) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setPointLabelGridPixelSize(14, 64) .setSortKey(rankOrder) .setMinZoom(minzoom(element.subclass(), element.mappingKey())); diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java index 7be39c0..f83f4dd 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java @@ -53,7 +53,7 @@ import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -201,7 +201,7 @@ public class TransportationName implements features.point(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNamesWithoutTranslations(element.source().tags())) + .putAttrs(OmtLanguageUtils.getNamesWithoutTranslations(element.source().tags())) .setAttr(Fields.REF, ref) .setAttr(Fields.REF_LENGTH, ref != null ? ref.length() : null) .setAttr(Fields.CLASS, highwayClass(cls.highwayValue, null, null, null)) @@ -258,7 +258,7 @@ public class TransportationName implements .setBufferPixels(BUFFER_SIZE) .setBufferPixelOverrides(MIN_LENGTH) // TODO abbreviate road names - can't port osml10n because it is AGPL - .putAttrs(LanguageUtils.getNamesWithoutTranslations(element.source().tags())) + .putAttrs(OmtLanguageUtils.getNamesWithoutTranslations(element.source().tags())) .setAttr(Fields.REF, ref) .setAttr(Fields.REF_LENGTH, ref != null ? ref.length() : null) .setAttr(Fields.NETWORK, @@ -306,7 +306,7 @@ public class TransportationName implements features.line(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) .setBufferPixelOverrides(MIN_LENGTH) - .putAttrs(LanguageUtils.getNamesWithoutTranslations(element.source().tags())) + .putAttrs(OmtLanguageUtils.getNamesWithoutTranslations(element.source().tags())) .setAttr(Fields.CLASS, "aerialway") .setAttr(Fields.SUBCLASS, element.aerialway()) .setMinPixelSize(0) @@ -321,7 +321,7 @@ public class TransportationName implements features.line(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) .setBufferPixelOverrides(MIN_LENGTH) - .putAttrs(LanguageUtils.getNamesWithoutTranslations(element.source().tags())) + .putAttrs(OmtLanguageUtils.getNamesWithoutTranslations(element.source().tags())) .setAttr(Fields.CLASS, element.shipway()) .setMinPixelSize(0) .setSortKey(element.zOrder()) diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java index c49b2f3..e1c53f1 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java @@ -46,7 +46,7 @@ import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -162,7 +162,7 @@ public class WaterName implements int minZoom = "ocean".equals(place) ? 0 : rank != null ? rank : 8; features.point(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(source.tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(source.tags(), translations)) .setAttr(Fields.CLASS, place) .setAttr(Fields.INTERMITTENT, element.isIntermittent() ? 1 : 0) .setMinZoom(minZoom); @@ -191,7 +191,7 @@ public class WaterName implements feature .setAttr(Fields.CLASS, FieldValues.CLASS_LAKE) .setBufferPixels(BUFFER_SIZE) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setAttr(Fields.INTERMITTENT, element.isIntermittent() ? 1 : 0) .setMinZoom(minzoom); } catch (GeometryException e) { diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java index d4d7f49..3d5baa1 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java @@ -48,7 +48,7 @@ import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.LanguageUtils; +import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.openmaptiles.util.Utils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; @@ -148,7 +148,7 @@ public class Waterway implements synchronized (riverRelationLengths) { riverRelationLengths.put(relation.id(), new AtomicDouble()); } - return List.of(new WaterwayRelation(relation.id(), LanguageUtils.getNames(relation.tags(), translations))); + return List.of(new WaterwayRelation(relation.id(), OmtLanguageUtils.getNames(relation.tags(), translations))); } return null; } @@ -192,7 +192,7 @@ public class Waterway implements features.line(LAYER_NAME) .setBufferPixels(BUFFER_SIZE) .setAttr(Fields.CLASS, element.waterway()) - .putAttrs(LanguageUtils.getNames(element.source().tags(), translations)) + .putAttrs(OmtLanguageUtils.getNames(element.source().tags(), translations)) .setMinZoom(minzoom) // details only at higher zoom levels so that named rivers can be merged more aggressively .setAttrWithMinzoom(Fields.BRUNNEL, Utils.brunnel(element.isBridge(), element.isTunnel()), 12) diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtils.java b/src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java similarity index 66% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtils.java rename to src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java index 8a29c5a..2ed2569 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtils.java +++ b/src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java @@ -35,15 +35,13 @@ See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for deta */ package com.onthegomap.planetiler.openmaptiles.util; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static com.onthegomap.planetiler.util.LanguageUtils.*; +import static com.onthegomap.planetiler.util.Utils.coalesce; +import com.onthegomap.planetiler.util.LanguageUtils; import com.onthegomap.planetiler.util.Translations; import java.util.HashMap; import java.util.Map; -import java.util.Set; -import java.util.function.Predicate; -import java.util.regex.Pattern; import java.util.stream.Stream; /** @@ -53,62 +51,7 @@ import java.util.stream.Stream; * Ported from * openmaptiles-tools. */ -public class LanguageUtils { - // Name tags that should be eligible for finding a latin name. - // See https://wiki.openstreetmap.org/wiki/Multilingual_names - private static final Predicate VALID_NAME_TAGS = - Pattern - .compile("^name:[a-z]{2,3}(-[a-z]{4})?([-_](x-)?[a-z]{2,})?(-([a-z]{2}|[0-9]{3}))?$", Pattern.CASE_INSENSITIVE) - .asMatchPredicate(); - // See https://github.com/onthegomap/planetiler/issues/86 - // Match strings that only contain latin characters. - private static final Predicate ONLY_LATIN = Pattern - .compile("^[\\P{IsLetter}[\\p{IsLetter}&&\\p{IsLatin}]]+$") - .asMatchPredicate(); - // Match only latin letters - private static final Pattern LATIN_LETTER = Pattern.compile("[\\p{IsLetter}&&\\p{IsLatin}]+"); - private static final Pattern EMPTY_PARENS = Pattern.compile("(\\([ -.]*\\)|\\[[ -.]*])"); - private static final Pattern LEADING_TRAILING_JUNK = Pattern.compile("((^[\\s./-]*)|([\\s./-]*$))"); - private static final Pattern WHITESPACE = Pattern.compile("\\s+"); - private static final Set EN_DE_NAME_KEYS = Set.of("name:en", "name:de"); - - private LanguageUtils() {} - - private static void putIfNotEmpty(Map dest, String key, Object value) { - if (value != null && !value.equals("")) { - dest.put(key, value); - } - } - - private static String string(Object obj) { - return nullIfEmpty(obj == null ? null : obj.toString()); - } - - static boolean containsOnlyLatinCharacters(String string) { - return string != null && ONLY_LATIN.test(string); - } - - private static String transliteratedName(Map tags) { - return Translations.transliterate(string(tags.get("name"))); - } - - static String removeLatinCharacters(String name) { - if (name == null) { - return null; - } - var matcher = LATIN_LETTER.matcher(name); - if (matcher.find()) { - String result = matcher.replaceAll(""); - // if the name was " ( - " - // then remove any of those extra characters now - result = EMPTY_PARENS.matcher(result).replaceAll(""); - result = LEADING_TRAILING_JUNK.matcher(result).replaceAll(""); - return WHITESPACE.matcher(result).replaceAll(" "); - } - return name.trim(); - } - +public class OmtLanguageUtils { /** * Returns a map with default name attributes (name, name_en, name_de, name:latin, name:nonlatin, name_int) that every * element should have, derived from name, int_name, name:en, and name:de tags on the input element. diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtilsTest.java b/src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java similarity index 87% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtilsTest.java rename to src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java index 2e14df0..3f47807 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/LanguageUtilsTest.java +++ b/src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java @@ -1,7 +1,7 @@ package com.onthegomap.planetiler.openmaptiles.util; import static com.onthegomap.planetiler.TestUtils.assertSubmap; -import static com.onthegomap.planetiler.openmaptiles.util.LanguageUtils.containsOnlyLatinCharacters; +import static com.onthegomap.planetiler.util.LanguageUtils.containsOnlyLatinCharacters; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; @@ -15,7 +15,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.ValueSource; -class LanguageUtilsTest { +class OmtLanguageUtilsTest { private final Wikidata.WikidataTranslations wikidataTranslations = new Wikidata.WikidataTranslations(); private final Translations translations = Translations.defaultProvider(List.of("en", "es", "de")) @@ -27,7 +27,7 @@ class LanguageUtilsTest { "name", "name", "name_en", "english name", "name_de", "german name" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "name:en", "english name", "name:de", "german name" @@ -37,7 +37,7 @@ class LanguageUtilsTest { "name", "name", "name_en", "name", "name_de", "german name" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "name:de", "german name" ), translations)); @@ -46,7 +46,7 @@ class LanguageUtilsTest { "name", "name", "name_en", "english name", "name_de", "name" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "name:en", "english name" ), translations)); @@ -72,7 +72,7 @@ class LanguageUtilsTest { if (!isLatin) { assertFalse(containsOnlyLatinCharacters(in)); } else { - assertEquals(in, LanguageUtils.getNames(Map.of( + assertEquals(in, OmtLanguageUtils.getNames(Map.of( "name", in ), translations).get("name:latin")); } @@ -90,7 +90,7 @@ class LanguageUtilsTest { "Japan / 日本 / Japan , 日本", }, nullValues = "null") void testRemoveNonLatin(String in, String out) { - assertEquals(out, LanguageUtils.getNames(Map.of( + assertEquals(out, OmtLanguageUtils.getNames(Map.of( "name", in ), translations).get("name:nonlatin")); } @@ -135,13 +135,13 @@ class LanguageUtilsTest { "name:gsw", }) void testLatinFallbacks(String key) { - assertEquals("a", LanguageUtils.getNames(Map.of( + assertEquals("a", OmtLanguageUtils.getNames(Map.of( key, "a" ), translations).get("name:latin")); - assertNull(LanguageUtils.getNames(Map.of( + assertNull(OmtLanguageUtils.getNames(Map.of( key, "ア" ), translations).get("name:latin")); - assertNull(LanguageUtils.getNames(Map.of( + assertNull(OmtLanguageUtils.getNames(Map.of( key, "غ" ), translations).get("name:latin")); } @@ -171,7 +171,7 @@ class LanguageUtilsTest { "name_de", "Branch Hill–Loveland Road", "name:latin", "Branch Hill–Loveland Road", "name_int", "Branch Hill–Loveland Road" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "Branch Hill–Loveland Road", key, "Q22133584;Q843993" ), translations)); @@ -181,7 +181,7 @@ class LanguageUtilsTest { "name_de", "日", "name:latin", "rì", "name_int", "rì" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "日", key, "other" // don't use this latin string with invalid name keys ), translations)); @@ -194,11 +194,11 @@ class LanguageUtilsTest { "биологическом, biologičeskom", }) void testTransliterate(String in, String out) { - assertEquals(out, LanguageUtils.getNames(Map.of( + assertEquals(out, OmtLanguageUtils.getNames(Map.of( "name", in ), translations).get("name:latin")); translations.setShouldTransliterate(false); - assertNull(LanguageUtils.getNames(Map.of( + assertNull(OmtLanguageUtils.getNames(Map.of( "name", in ), translations).get("name:latin")); } @@ -208,7 +208,7 @@ class LanguageUtilsTest { wikidataTranslations.put(123, "es", "es name"); assertSubmap(Map.of( "name:es", "es name" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "wikidata", "Q123" ), translations)); @@ -218,7 +218,7 @@ class LanguageUtilsTest { void testUseOsm() { assertSubmap(Map.of( "name:es", "es name osm" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "wikidata", "Q123", "name:es", "es name osm" @@ -231,7 +231,7 @@ class LanguageUtilsTest { assertSubmap(Map.of( "name:es", "wd es name", "name:de", "de name osm" - ), LanguageUtils.getNames(Map.of( + ), OmtLanguageUtils.getNames(Map.of( "name", "name", "wikidata", "Q123", "name:es", "es name osm", @@ -241,7 +241,7 @@ class LanguageUtilsTest { @Test void testDontUseTranslationsWhenNotSpecified() { - var result = LanguageUtils.getNamesWithoutTranslations(Map.of( + var result = OmtLanguageUtils.getNamesWithoutTranslations(Map.of( "name", "name", "wikidata", "Q123", "name:es", "es name osm", @@ -255,7 +255,7 @@ class LanguageUtilsTest { @Test void testIgnoreLanguages() { wikidataTranslations.put(123, "ja", "ja name wd"); - var result = LanguageUtils.getNamesWithoutTranslations(Map.of( + var result = OmtLanguageUtils.getNamesWithoutTranslations(Map.of( "name", "name", "wikidata", "Q123", "name:ja", "ja name osm"