diff --git a/src/main/java/org/mtransit/commons/CleanUtils.java b/src/main/java/org/mtransit/commons/CleanUtils.java index 4ef8d0f..e1042b7 100644 --- a/src/main/java/org/mtransit/commons/CleanUtils.java +++ b/src/main/java/org/mtransit/commons/CleanUtils.java @@ -733,6 +733,9 @@ public static String cleanMergedID(@NotNull String mergedId) { static final Pattern LINE = Pattern.compile("(^|\\s)(line)(\\s|$)", Pattern.CASE_INSENSITIVE); static final String LINE_REPLACEMENT = "$1$3"; + static final Pattern LINE_ = cleanWords("line"); + static final Pattern FR_CA_LIGNE = cleanWordsFR("ligne"); + // http://www.semaphorecorp.com/cgi/abbrev.html private static final Pattern STREET = cleanWords("street"); private static final String STREET_REPLACEMENT = cleanWordsReplacement("St"); @@ -1010,7 +1013,7 @@ public static String cleanStreetTypes(@NotNull String string) { private static final String FR_CA_SECTEURS_REPLACEMENT = cleanWordsReplacementPlural("Sect"); private static final Pattern FR_CA_STATION_DE_METRO = cleanWordsFR("Station de m[é|e]tro"); private static final String FR_CA_STATION_DE_METRO_REPLACEMENT = cleanWordsReplacement("Ston mét"); - private static final Pattern FR_CA_STATION = cleanWordsFR("station"); + static final Pattern FR_CA_STATION = cleanWordsFR("station"); private static final String FR_CA_STATION_REPLACEMENT = cleanWordsReplacement("Ston"); private static final Pattern FR_CA_STATIONNEMENT = cleanWordsFR("stationnement"); private static final String FR_CA_STATIONNEMENT_REPLACEMENT = cleanWordsReplacement("Stat"); diff --git a/src/main/java/org/mtransit/commons/StringsCleaner.kt b/src/main/java/org/mtransit/commons/StringsCleaner.kt index e51a6e1..c2e44e9 100644 --- a/src/main/java/org/mtransit/commons/StringsCleaner.kt +++ b/src/main/java/org/mtransit/commons/StringsCleaner.kt @@ -19,7 +19,10 @@ object StringsCleaner { ): String { var routeLongName = originalRouteLongName if (languages?.contains(Locale.ENGLISH) == true) { - routeLongName = CleanUtils.LINE.matcher(routeLongName).replaceAll(CleanUtils.LINE_REPLACEMENT) + routeLongName = CleanUtils.LINE_.matcher(routeLongName).replaceAll(EMPTY) + } + if (languages?.contains(Locale.FRENCH) == true) { + routeLongName = CleanUtils.FR_CA_LIGNE.matcher(routeLongName).replaceAll(EMPTY) } val makeShorter = routeLongName.length > ROUTE_LONG_NAME_SHORT_MAX_LENGTH && routeLongName.contains(' ') routeLongName = cleanString(routeLongName, languages, lowerUCStrings, lowerUCWords, *ignoredUCWords, short = makeShorter, shortMaxLength = ROUTE_LONG_NAME_SHORT_MAX_LENGTH) @@ -50,6 +53,14 @@ object StringsCleaner { } } } + if (languages?.contains(Locale.FRENCH) == true) { + when (routeType) { + 1, // subway + -> { + tripHeadsign = CleanUtils.FR_CA_STATION.matcher(tripHeadsign).replaceAll(EMPTY) + } + } + } if (languages?.contains(Locale.ENGLISH) == true) { tripHeadsign = if (removeVia) { CleanUtils.keepToAndRemoveVia(tripHeadsign)