diff --git a/README.md b/README.md index 73fedfd..4eea2a6 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ We define the affinity between two locales using a `LocaleAffinity` enum value: - `LOW`: Locales are somewhat related, meaning they either have low similarities from a linguistic perspective or co-exist in given geopolitical or cultural contexts. - `HIGH`: Locales are quite related, meaning they have similarities from a linguistic perspective. -- `SAME_OR_INTERCHANGEABLE`: Locales either identify the same language, or languages that are +- `SAME_OR_MUTUALLY_INTELLIGIBLE`: Locales either identify the same language, or languages that are similar to a point where a person should understand both if they understand one of them. We offer two separate logics, each dedicated to separate use-cases: diff --git a/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/AffinityCalculationExampleMain.java b/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/AffinityCalculationExampleMain.java index 83b5c55..44a5eb6 100644 --- a/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/AffinityCalculationExampleMain.java +++ b/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/AffinityCalculationExampleMain.java @@ -22,7 +22,7 @@ import static com.spotify.i18n.locales.common.model.LocaleAffinity.LOW; import static com.spotify.i18n.locales.common.model.LocaleAffinity.NONE; -import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_INTERCHANGEABLE; +import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE; import com.ibm.icu.util.ULocale; import com.spotify.i18n.locales.common.LocaleAffinityCalculator; @@ -120,18 +120,18 @@ private static Map getLanguageTagToExpectedAffinityMap() map.put("en-US", NONE); // Spanish in Europe should ok - map.put("es-419", SAME_OR_INTERCHANGEABLE); - map.put("es-GB", SAME_OR_INTERCHANGEABLE); - map.put("es-US", SAME_OR_INTERCHANGEABLE); + map.put("es-419", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("es-GB", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("es-US", SAME_OR_MUTUALLY_INTELLIGIBLE); // Basque should be matched, since we support Spanish map.put("eu", LOW); // French - map.put("fr", SAME_OR_INTERCHANGEABLE); - map.put("fr-BE", SAME_OR_INTERCHANGEABLE); - map.put("fr-CA", SAME_OR_INTERCHANGEABLE); - map.put("fr-FR", SAME_OR_INTERCHANGEABLE); + map.put("fr", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("fr-BE", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("fr-CA", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("fr-FR", SAME_OR_MUTUALLY_INTELLIGIBLE); // Galician should be matched, since we support Spanish map.put("gl", LOW); @@ -140,23 +140,23 @@ private static Map getLanguageTagToExpectedAffinityMap() map.put("hi", NONE); // Croatian should be nicely matched with Bosnian - map.put("hr-HR", SAME_OR_INTERCHANGEABLE); + map.put("hr-HR", SAME_OR_MUTUALLY_INTELLIGIBLE); // Serbian Cyrillic should be matched, although only Latin script is supported - map.put("sr", SAME_OR_INTERCHANGEABLE); - map.put("sr-Latn", SAME_OR_INTERCHANGEABLE); - map.put("sr-Cyrl-ME", SAME_OR_INTERCHANGEABLE); + map.put("sr", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("sr-Latn", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("sr-Cyrl-ME", SAME_OR_MUTUALLY_INTELLIGIBLE); // Portuguese - map.put("pt", SAME_OR_INTERCHANGEABLE); - map.put("pt-BR", SAME_OR_INTERCHANGEABLE); - map.put("pt-SE", SAME_OR_INTERCHANGEABLE); - map.put("pt-US", SAME_OR_INTERCHANGEABLE); + map.put("pt", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("pt-BR", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("pt-SE", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("pt-US", SAME_OR_MUTUALLY_INTELLIGIBLE); // Only Traditional Chinese should be matched, not Simplified map.put("zh-CN", NONE); - map.put("zh-TW", SAME_OR_INTERCHANGEABLE); - map.put("zh-HK", SAME_OR_INTERCHANGEABLE); + map.put("zh-TW", SAME_OR_MUTUALLY_INTELLIGIBLE); + map.put("zh-HK", SAME_OR_MUTUALLY_INTELLIGIBLE); return map; } @@ -164,17 +164,17 @@ public static void main(String[] args) { final LocaleAffinityCalculator affinityCalculator = getLocaleAffinityCalculator(); // Example 1: Filter the list of test language tags, and only retain the ones that result in a - // locale affinity at the level of SAME_OR_INTERCHANGEABLE, therefore guaranteeing that the - // associated + // locale affinity at the level of SAME_OR_MUTUALLY_INTELLIGIBLE System.out.println("========================================"); System.out.println( String.format( "Example 1: List of language tags with calculated affinity = %s", - SAME_OR_INTERCHANGEABLE.name())); + SAME_OR_MUTUALLY_INTELLIGIBLE.name())); getLanguageTagToExpectedAffinityMap().keySet().stream() .filter( languageTag -> - affinityCalculator.calculate(languageTag).affinity() == SAME_OR_INTERCHANGEABLE) + affinityCalculator.calculate(languageTag).affinity() + == SAME_OR_MUTUALLY_INTELLIGIBLE) .forEach(System.out::println); // Example 2: Check that calculated affinity for each language tag matches the expected value. diff --git a/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/ReferenceLocalesBasedJoinExampleMain.java b/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/ReferenceLocalesBasedJoinExampleMain.java index c087cc3..9e1ba29 100644 --- a/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/ReferenceLocalesBasedJoinExampleMain.java +++ b/examples/locales-affinity-examples/src/main/java/com/spotify/i18n/locales/affinity/examples/ReferenceLocalesBasedJoinExampleMain.java @@ -45,17 +45,17 @@ public class ReferenceLocalesBasedJoinExampleMain { *

Possible joins in the execution output are: * *

* * @param args @@ -97,7 +97,7 @@ public static void main(String[] args) { (rrl) -> System.out.println( String.format( - "(%s, %s), join on reference locale [%s] with %s affinity", + "(%s, %s) on reference locale [%s] with %s affinity", languageTagInOriginDataset, languageTagInTargetDataset, rrl.referenceLocale().toLanguageTag(), diff --git a/locales-common/src/main/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImpl.java b/locales-common/src/main/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImpl.java index 95703f1..690b099 100644 --- a/locales-common/src/main/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImpl.java +++ b/locales-common/src/main/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImpl.java @@ -75,7 +75,7 @@ public abstract class LocaleAffinityCalculatorBaseImpl implements LocaleAffinity private static final double DISTANCE_THRESHOLD = 224.0; // Score to affinity thresholds - private static final int SCORE_THRESHOLD_SAME_OR_INTERCHANGEABLE = 65; + private static final int SCORE_THRESHOLD_SAME_OR_MUTUALLY_INTELLIGIBLE = 65; private static final int SCORE_THRESHOLD_HIGH = 30; private static final int SCORE_THRESHOLD_LOW = 0; @@ -103,7 +103,7 @@ private LocaleAffinity getAffinity(@Nullable final String languageTag) { // We attempt to match based on corresponding spoken language first, and make use of the // score-based affinity calculation as fallback. if (hasSameSpokenLanguageAffinity(languageTag)) { - return LocaleAffinity.SAME_OR_INTERCHANGEABLE; + return LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE; } else { return calculateScoreBasedAffinity(languageTag); } @@ -155,8 +155,8 @@ private int convertDistanceToAffinityScore(final int distance) { } private LocaleAffinity convertScoreToLocaleAffinity(final int score) { - if (score > SCORE_THRESHOLD_SAME_OR_INTERCHANGEABLE) { - return LocaleAffinity.SAME_OR_INTERCHANGEABLE; + if (score > SCORE_THRESHOLD_SAME_OR_MUTUALLY_INTELLIGIBLE) { + return LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE; } else if (score > SCORE_THRESHOLD_HIGH) { return LocaleAffinity.HIGH; } else if (score > SCORE_THRESHOLD_LOW) { diff --git a/locales-common/src/main/java/com/spotify/i18n/locales/common/model/LocaleAffinity.java b/locales-common/src/main/java/com/spotify/i18n/locales/common/model/LocaleAffinity.java index a995239..822a90e 100644 --- a/locales-common/src/main/java/com/spotify/i18n/locales/common/model/LocaleAffinity.java +++ b/locales-common/src/main/java/com/spotify/i18n/locales/common/model/LocaleAffinity.java @@ -43,5 +43,5 @@ public enum LocaleAffinity { * Locales either identify the same language, or languages that are similar to a point where a * person should understand both if they understand one of them. */ - SAME_OR_INTERCHANGEABLE + SAME_OR_MUTUALLY_INTELLIGIBLE } diff --git a/locales-common/src/test/java/com/spotify/i18n/locales/common/LocaleAffinityHelpersFactoryTest.java b/locales-common/src/test/java/com/spotify/i18n/locales/common/LocaleAffinityHelpersFactoryTest.java index 9d3cccb..2f1fa8a 100644 --- a/locales-common/src/test/java/com/spotify/i18n/locales/common/LocaleAffinityHelpersFactoryTest.java +++ b/locales-common/src/test/java/com/spotify/i18n/locales/common/LocaleAffinityHelpersFactoryTest.java @@ -188,15 +188,15 @@ void whenBuildingRelatedReferenceLocalesCalculator_returnsExpectedCalculator() { whenJoiningDatasetsUsingReferenceLocalesCalculator_joinsBasedOnExpectedRelatedReferenceLocale() { return Stream.of( // Chinese (Hong-Kong), Chinese (Traditional) -> Chinese (Taiwan) - Arguments.of("zh-HK", "zh-Hant", "zh-TW", LocaleAffinity.SAME_OR_INTERCHANGEABLE), + Arguments.of("zh-HK", "zh-Hant", "zh-TW", LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE), // Chinese (Hong-Kong), Cantonese (Hong-Kong) -> Cantonese Arguments.of("zh-HK", "yue-HK", "yue", LocaleAffinity.HIGH), // Dutch (Belgium), Dutch (Netherlands) -> Dutch - Arguments.of("nl-BE", "nl-NL", "nl", LocaleAffinity.SAME_OR_INTERCHANGEABLE), + Arguments.of("nl-BE", "nl-NL", "nl", LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE), // French (Switzerland), French (Canada) -> French - Arguments.of("fr-CH", "fr-CA", "fr-CA", LocaleAffinity.SAME_OR_INTERCHANGEABLE)); + Arguments.of("fr-CH", "fr-CA", "fr-CA", LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE)); } } diff --git a/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImplTest.java b/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImplTest.java index 754308a..aa86e26 100644 --- a/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImplTest.java +++ b/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/LocaleAffinityCalculatorBaseImplTest.java @@ -22,7 +22,7 @@ import static com.spotify.i18n.locales.common.model.LocaleAffinity.LOW; import static com.spotify.i18n.locales.common.model.LocaleAffinity.NONE; -import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_INTERCHANGEABLE; +import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.*; @@ -112,18 +112,18 @@ public static Stream whenCalculating_returnsExpectedAffinity() { Arguments.of("en-US", NONE), // Spanish in Europe should be ranked higher - Arguments.of("es-419", SAME_OR_INTERCHANGEABLE), - Arguments.of("es-GB", SAME_OR_INTERCHANGEABLE), - Arguments.of("es-US", SAME_OR_INTERCHANGEABLE), + Arguments.of("es-419", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("es-GB", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("es-US", SAME_OR_MUTUALLY_INTELLIGIBLE), // Basque should be matched, since we support Spanish Arguments.of("eu", LOW), // French - Arguments.of("fr", SAME_OR_INTERCHANGEABLE), - Arguments.of("fr-BE", SAME_OR_INTERCHANGEABLE), - Arguments.of("fr-CA", SAME_OR_INTERCHANGEABLE), - Arguments.of("fr-FR", SAME_OR_INTERCHANGEABLE), + Arguments.of("fr", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("fr-BE", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("fr-CA", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("fr-FR", SAME_OR_MUTUALLY_INTELLIGIBLE), // Galician should be matched, since we support Spanish Arguments.of("gl", LOW), @@ -132,23 +132,23 @@ public static Stream whenCalculating_returnsExpectedAffinity() { Arguments.of("hi", NONE), // Croatian should be nicely matched with Bosnian - Arguments.of("hr-HR", SAME_OR_INTERCHANGEABLE), + Arguments.of("hr-HR", SAME_OR_MUTUALLY_INTELLIGIBLE), // Serbian Cyrillic should be matched, although only Latin script is supported - Arguments.of("sr", SAME_OR_INTERCHANGEABLE), - Arguments.of("sr-Latn", SAME_OR_INTERCHANGEABLE), - Arguments.of("sr-Cyrl-ME", SAME_OR_INTERCHANGEABLE), + Arguments.of("sr", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("sr-Latn", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("sr-Cyrl-ME", SAME_OR_MUTUALLY_INTELLIGIBLE), // Portuguese - Arguments.of("pt", SAME_OR_INTERCHANGEABLE), - Arguments.of("pt-BR", SAME_OR_INTERCHANGEABLE), - Arguments.of("pt-SE", SAME_OR_INTERCHANGEABLE), - Arguments.of("pt-US", SAME_OR_INTERCHANGEABLE), + Arguments.of("pt", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("pt-BR", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("pt-SE", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("pt-US", SAME_OR_MUTUALLY_INTELLIGIBLE), // Only Traditional Chinese should be matched, not Simplified Arguments.of("zh-CN", NONE), - Arguments.of("zh-TW", SAME_OR_INTERCHANGEABLE), - Arguments.of("zh-HK", SAME_OR_INTERCHANGEABLE)); + Arguments.of("zh-TW", SAME_OR_MUTUALLY_INTELLIGIBLE), + Arguments.of("zh-HK", SAME_OR_MUTUALLY_INTELLIGIBLE)); } @Test diff --git a/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/ReferenceLocalesCalculatorBaseImplTest.java b/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/ReferenceLocalesCalculatorBaseImplTest.java index 1eebd64..b81fa49 100644 --- a/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/ReferenceLocalesCalculatorBaseImplTest.java +++ b/locales-common/src/test/java/com/spotify/i18n/locales/common/impl/ReferenceLocalesCalculatorBaseImplTest.java @@ -22,7 +22,7 @@ import static com.spotify.i18n.locales.common.model.LocaleAffinity.HIGH; import static com.spotify.i18n.locales.common.model.LocaleAffinity.LOW; -import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_INTERCHANGEABLE; +import static com.spotify.i18n.locales.common.model.LocaleAffinity.SAME_OR_MUTUALLY_INTELLIGIBLE; import static com.spotify.i18n.locales.utils.hierarchy.LocalesHierarchyUtils.isSameLocale; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; @@ -73,7 +73,7 @@ public void validateLocaleAffinityScoreRanges(final ULocale input) { if (isSameLocale(inputLanguageScriptOnly, referenceLanguageScriptOnly) || isSameSpokenLanguage(inputLanguageScriptOnly, referenceLanguageScriptOnly)) { assertEquals( - SAME_OR_INTERCHANGEABLE, + SAME_OR_MUTUALLY_INTELLIGIBLE, affinity, String.format( "Reference locale [%s] for input locale [%s] share the same language & script [%s], Yet, affinity is %s.", @@ -84,7 +84,7 @@ public void validateLocaleAffinityScoreRanges(final ULocale input) { } else if (areKnownInterchangeableLocales( inputLanguageScriptOnly, referenceLanguageScriptOnly)) { assertEquals( - SAME_OR_INTERCHANGEABLE, + SAME_OR_MUTUALLY_INTELLIGIBLE, affinity, String.format( "Reference locale [%s] for input locale [%s] are known interchangeable locales, Yet, affinity is %s.", @@ -94,7 +94,7 @@ public void validateLocaleAffinityScoreRanges(final ULocale input) { affinity)); } else { assertNotEquals( - SAME_OR_INTERCHANGEABLE, + SAME_OR_MUTUALLY_INTELLIGIBLE, affinity, String.format( "Reference locale [%s] for input locale [%s] do not share the same language & script. Yet, affinity is %s.", @@ -218,10 +218,10 @@ private static RelatedReferenceLocale rrl( private static List chineseTraditional() { return List.of( // Traditional Chinese - rrl("zh-HK", SAME_OR_INTERCHANGEABLE), - rrl("zh-MO", SAME_OR_INTERCHANGEABLE), - rrl("zh-TW", SAME_OR_INTERCHANGEABLE), - rrl("zh-Hant-MY", SAME_OR_INTERCHANGEABLE), + rrl("zh-HK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("zh-MO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("zh-TW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("zh-Hant-MY", SAME_OR_MUTUALLY_INTELLIGIBLE), // Cantonese rrl("yue", HIGH), rrl("yue-MO", HIGH), @@ -231,8 +231,8 @@ private static List chineseTraditional() { private static List danish() { return List.of( // Danish - rrl("da", SAME_OR_INTERCHANGEABLE), - rrl("da-GL", SAME_OR_INTERCHANGEABLE), + rrl("da", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("da-GL", SAME_OR_MUTUALLY_INTELLIGIBLE), // Bokmål rrl("nb", HIGH), rrl("nb-SJ", HIGH), @@ -251,124 +251,124 @@ private static List english() { // Welsh rrl("cy", LOW), // English - rrl("en", SAME_OR_INTERCHANGEABLE), - rrl("en-001", SAME_OR_INTERCHANGEABLE), - rrl("en-150", SAME_OR_INTERCHANGEABLE), - rrl("en-AE", SAME_OR_INTERCHANGEABLE), - rrl("en-AG", SAME_OR_INTERCHANGEABLE), - rrl("en-AI", SAME_OR_INTERCHANGEABLE), - rrl("en-AS", SAME_OR_INTERCHANGEABLE), - rrl("en-AT", SAME_OR_INTERCHANGEABLE), - rrl("en-AU", SAME_OR_INTERCHANGEABLE), - rrl("en-BB", SAME_OR_INTERCHANGEABLE), - rrl("en-BE", SAME_OR_INTERCHANGEABLE), - rrl("en-BI", SAME_OR_INTERCHANGEABLE), - rrl("en-BM", SAME_OR_INTERCHANGEABLE), - rrl("en-BS", SAME_OR_INTERCHANGEABLE), - rrl("en-BW", SAME_OR_INTERCHANGEABLE), - rrl("en-BZ", SAME_OR_INTERCHANGEABLE), - rrl("en-CA", SAME_OR_INTERCHANGEABLE), - rrl("en-CC", SAME_OR_INTERCHANGEABLE), - rrl("en-CH", SAME_OR_INTERCHANGEABLE), - rrl("en-CK", SAME_OR_INTERCHANGEABLE), - rrl("en-CM", SAME_OR_INTERCHANGEABLE), - rrl("en-CX", SAME_OR_INTERCHANGEABLE), - rrl("en-CY", SAME_OR_INTERCHANGEABLE), - rrl("en-CZ", SAME_OR_INTERCHANGEABLE), - rrl("en-DE", SAME_OR_INTERCHANGEABLE), - rrl("en-DG", SAME_OR_INTERCHANGEABLE), - rrl("en-DK", SAME_OR_INTERCHANGEABLE), - rrl("en-DM", SAME_OR_INTERCHANGEABLE), - rrl("en-ER", SAME_OR_INTERCHANGEABLE), - rrl("en-ES", SAME_OR_INTERCHANGEABLE), - rrl("en-FI", SAME_OR_INTERCHANGEABLE), - rrl("en-FJ", SAME_OR_INTERCHANGEABLE), - rrl("en-FR", SAME_OR_INTERCHANGEABLE), - rrl("en-FK", SAME_OR_INTERCHANGEABLE), - rrl("en-FM", SAME_OR_INTERCHANGEABLE), - rrl("en-GB", SAME_OR_INTERCHANGEABLE), - rrl("en-GS", SAME_OR_INTERCHANGEABLE), - rrl("en-GD", SAME_OR_INTERCHANGEABLE), - rrl("en-GG", SAME_OR_INTERCHANGEABLE), - rrl("en-GH", SAME_OR_INTERCHANGEABLE), - rrl("en-GI", SAME_OR_INTERCHANGEABLE), - rrl("en-GM", SAME_OR_INTERCHANGEABLE), - rrl("en-GU", SAME_OR_INTERCHANGEABLE), - rrl("en-GY", SAME_OR_INTERCHANGEABLE), - rrl("en-HK", SAME_OR_INTERCHANGEABLE), - rrl("en-HU", SAME_OR_INTERCHANGEABLE), - rrl("en-ID", SAME_OR_INTERCHANGEABLE), - rrl("en-IE", SAME_OR_INTERCHANGEABLE), - rrl("en-IL", SAME_OR_INTERCHANGEABLE), - rrl("en-IM", SAME_OR_INTERCHANGEABLE), - rrl("en-IN", SAME_OR_INTERCHANGEABLE), - rrl("en-IO", SAME_OR_INTERCHANGEABLE), - rrl("en-IT", SAME_OR_INTERCHANGEABLE), - rrl("en-JE", SAME_OR_INTERCHANGEABLE), - rrl("en-JM", SAME_OR_INTERCHANGEABLE), - rrl("en-KE", SAME_OR_INTERCHANGEABLE), - rrl("en-KI", SAME_OR_INTERCHANGEABLE), - rrl("en-KN", SAME_OR_INTERCHANGEABLE), - rrl("en-KY", SAME_OR_INTERCHANGEABLE), - rrl("en-LC", SAME_OR_INTERCHANGEABLE), - rrl("en-LR", SAME_OR_INTERCHANGEABLE), - rrl("en-LS", SAME_OR_INTERCHANGEABLE), - rrl("en-MG", SAME_OR_INTERCHANGEABLE), - rrl("en-MH", SAME_OR_INTERCHANGEABLE), - rrl("en-MO", SAME_OR_INTERCHANGEABLE), - rrl("en-MP", SAME_OR_INTERCHANGEABLE), - rrl("en-MS", SAME_OR_INTERCHANGEABLE), - rrl("en-MT", SAME_OR_INTERCHANGEABLE), - rrl("en-MU", SAME_OR_INTERCHANGEABLE), - rrl("en-MV", SAME_OR_INTERCHANGEABLE), - rrl("en-MW", SAME_OR_INTERCHANGEABLE), - rrl("en-MY", SAME_OR_INTERCHANGEABLE), - rrl("en-NA", SAME_OR_INTERCHANGEABLE), - rrl("en-NF", SAME_OR_INTERCHANGEABLE), - rrl("en-NG", SAME_OR_INTERCHANGEABLE), - rrl("en-NL", SAME_OR_INTERCHANGEABLE), - rrl("en-NO", SAME_OR_INTERCHANGEABLE), - rrl("en-NR", SAME_OR_INTERCHANGEABLE), - rrl("en-NU", SAME_OR_INTERCHANGEABLE), - rrl("en-NZ", SAME_OR_INTERCHANGEABLE), - rrl("en-PG", SAME_OR_INTERCHANGEABLE), - rrl("en-PH", SAME_OR_INTERCHANGEABLE), - rrl("en-PK", SAME_OR_INTERCHANGEABLE), - rrl("en-PL", SAME_OR_INTERCHANGEABLE), - rrl("en-PN", SAME_OR_INTERCHANGEABLE), - rrl("en-PR", SAME_OR_INTERCHANGEABLE), - rrl("en-PT", SAME_OR_INTERCHANGEABLE), - rrl("en-PW", SAME_OR_INTERCHANGEABLE), - rrl("en-RO", SAME_OR_INTERCHANGEABLE), - rrl("en-RW", SAME_OR_INTERCHANGEABLE), - rrl("en-SB", SAME_OR_INTERCHANGEABLE), - rrl("en-SC", SAME_OR_INTERCHANGEABLE), - rrl("en-SD", SAME_OR_INTERCHANGEABLE), - rrl("en-SE", SAME_OR_INTERCHANGEABLE), - rrl("en-SG", SAME_OR_INTERCHANGEABLE), - rrl("en-SH", SAME_OR_INTERCHANGEABLE), - rrl("en-SI", SAME_OR_INTERCHANGEABLE), - rrl("en-SK", SAME_OR_INTERCHANGEABLE), - rrl("en-SL", SAME_OR_INTERCHANGEABLE), - rrl("en-SS", SAME_OR_INTERCHANGEABLE), - rrl("en-SX", SAME_OR_INTERCHANGEABLE), - rrl("en-SZ", SAME_OR_INTERCHANGEABLE), - rrl("en-TC", SAME_OR_INTERCHANGEABLE), - rrl("en-TK", SAME_OR_INTERCHANGEABLE), - rrl("en-TO", SAME_OR_INTERCHANGEABLE), - rrl("en-TT", SAME_OR_INTERCHANGEABLE), - rrl("en-TV", SAME_OR_INTERCHANGEABLE), - rrl("en-TZ", SAME_OR_INTERCHANGEABLE), - rrl("en-UG", SAME_OR_INTERCHANGEABLE), - rrl("en-UM", SAME_OR_INTERCHANGEABLE), - rrl("en-VC", SAME_OR_INTERCHANGEABLE), - rrl("en-VG", SAME_OR_INTERCHANGEABLE), - rrl("en-VI", SAME_OR_INTERCHANGEABLE), - rrl("en-VU", SAME_OR_INTERCHANGEABLE), - rrl("en-WS", SAME_OR_INTERCHANGEABLE), - rrl("en-ZA", SAME_OR_INTERCHANGEABLE), - rrl("en-ZM", SAME_OR_INTERCHANGEABLE), - rrl("en-ZW", SAME_OR_INTERCHANGEABLE), + rrl("en", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-001", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-150", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-AU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BB", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-BZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CX", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CY", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-CZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-DE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-DG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-DK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-DM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ER", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ES", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-FI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-FJ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-FR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-FK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-FM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GB", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GD", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-GY", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-HK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-HU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ID", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IL", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-IT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-JE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-JM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-KE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-KI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-KN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-KY", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-LC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-LR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-LS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MP", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MV", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-MY", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NL", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-NZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PL", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-PW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-RO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-RW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SB", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SD", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SL", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SX", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-SZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TO", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TV", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-TZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-UG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-UM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-VC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-VG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-VI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-VU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-WS", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ZA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ZM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("en-ZW", SAME_OR_MUTUALLY_INTELLIGIBLE), // Irish rrl("ga", LOW), rrl("ga-GB", LOW), @@ -390,52 +390,52 @@ private static List french() { // Breton rrl("br", LOW), // French - rrl("fr", SAME_OR_INTERCHANGEABLE), - rrl("fr-BE", SAME_OR_INTERCHANGEABLE), - rrl("fr-BF", SAME_OR_INTERCHANGEABLE), - rrl("fr-BI", SAME_OR_INTERCHANGEABLE), - rrl("fr-BJ", SAME_OR_INTERCHANGEABLE), - rrl("fr-BL", SAME_OR_INTERCHANGEABLE), - rrl("fr-CA", SAME_OR_INTERCHANGEABLE), - rrl("fr-CD", SAME_OR_INTERCHANGEABLE), - rrl("fr-CF", SAME_OR_INTERCHANGEABLE), - rrl("fr-CG", SAME_OR_INTERCHANGEABLE), - rrl("fr-CH", SAME_OR_INTERCHANGEABLE), - rrl("fr-CI", SAME_OR_INTERCHANGEABLE), - rrl("fr-CM", SAME_OR_INTERCHANGEABLE), - rrl("fr-DJ", SAME_OR_INTERCHANGEABLE), - rrl("fr-DZ", SAME_OR_INTERCHANGEABLE), - rrl("fr-GA", SAME_OR_INTERCHANGEABLE), - rrl("fr-GF", SAME_OR_INTERCHANGEABLE), - rrl("fr-GN", SAME_OR_INTERCHANGEABLE), - rrl("fr-GP", SAME_OR_INTERCHANGEABLE), - rrl("fr-GQ", SAME_OR_INTERCHANGEABLE), - rrl("fr-HT", SAME_OR_INTERCHANGEABLE), - rrl("fr-KM", SAME_OR_INTERCHANGEABLE), - rrl("fr-LU", SAME_OR_INTERCHANGEABLE), - rrl("fr-MA", SAME_OR_INTERCHANGEABLE), - rrl("fr-MC", SAME_OR_INTERCHANGEABLE), - rrl("fr-MF", SAME_OR_INTERCHANGEABLE), - rrl("fr-MG", SAME_OR_INTERCHANGEABLE), - rrl("fr-ML", SAME_OR_INTERCHANGEABLE), - rrl("fr-MQ", SAME_OR_INTERCHANGEABLE), - rrl("fr-MR", SAME_OR_INTERCHANGEABLE), - rrl("fr-MU", SAME_OR_INTERCHANGEABLE), - rrl("fr-NC", SAME_OR_INTERCHANGEABLE), - rrl("fr-NE", SAME_OR_INTERCHANGEABLE), - rrl("fr-PF", SAME_OR_INTERCHANGEABLE), - rrl("fr-PM", SAME_OR_INTERCHANGEABLE), - rrl("fr-RE", SAME_OR_INTERCHANGEABLE), - rrl("fr-RW", SAME_OR_INTERCHANGEABLE), - rrl("fr-SC", SAME_OR_INTERCHANGEABLE), - rrl("fr-SN", SAME_OR_INTERCHANGEABLE), - rrl("fr-SY", SAME_OR_INTERCHANGEABLE), - rrl("fr-TD", SAME_OR_INTERCHANGEABLE), - rrl("fr-TG", SAME_OR_INTERCHANGEABLE), - rrl("fr-TN", SAME_OR_INTERCHANGEABLE), - rrl("fr-VU", SAME_OR_INTERCHANGEABLE), - rrl("fr-WF", SAME_OR_INTERCHANGEABLE), - rrl("fr-YT", SAME_OR_INTERCHANGEABLE), + rrl("fr", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-BE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-BF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-BI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-BJ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-BL", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CD", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-CM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-DJ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-DZ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-GA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-GF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-GN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-GP", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-GQ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-HT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-KM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-LU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-ML", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MQ", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-MU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-NC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-NE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-PF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-PM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-RE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-RW", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-SC", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-SN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-SY", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-TD", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-TG", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-TN", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-VU", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-WF", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("fr-YT", SAME_OR_MUTUALLY_INTELLIGIBLE), // Occitan rrl("oc", LOW), rrl("oc-ES", LOW)); @@ -444,29 +444,29 @@ private static List french() { private static List german() { return List.of( // German - rrl("de", SAME_OR_INTERCHANGEABLE), - rrl("de-AT", SAME_OR_INTERCHANGEABLE), - rrl("de-BE", SAME_OR_INTERCHANGEABLE), - rrl("de-CH", SAME_OR_INTERCHANGEABLE), - rrl("de-IT", SAME_OR_INTERCHANGEABLE), - rrl("de-LI", SAME_OR_INTERCHANGEABLE), - rrl("de-LU", SAME_OR_INTERCHANGEABLE), + rrl("de", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-AT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-BE", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-CH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-IT", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-LI", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("de-LU", SAME_OR_MUTUALLY_INTELLIGIBLE), // Swiss German - rrl("gsw", SAME_OR_INTERCHANGEABLE), - rrl("gsw-FR", SAME_OR_INTERCHANGEABLE), - rrl("gsw-LI", SAME_OR_INTERCHANGEABLE), + rrl("gsw", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("gsw-FR", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("gsw-LI", SAME_OR_MUTUALLY_INTELLIGIBLE), // Luxembourgian - rrl("lb", SAME_OR_INTERCHANGEABLE), + rrl("lb", SAME_OR_MUTUALLY_INTELLIGIBLE), // Romansh rrl("rm", LOW)); } private static List italian() { return List.of( - rrl("it", SAME_OR_INTERCHANGEABLE), - rrl("it-CH", SAME_OR_INTERCHANGEABLE), - rrl("it-SM", SAME_OR_INTERCHANGEABLE), - rrl("it-VA", SAME_OR_INTERCHANGEABLE)); + rrl("it", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("it-CH", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("it-SM", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("it-VA", SAME_OR_MUTUALLY_INTELLIGIBLE)); } private static List norwegian() { @@ -475,30 +475,30 @@ private static List norwegian() { rrl("da", HIGH), rrl("da-GL", HIGH), // Bokmål - rrl("nb", SAME_OR_INTERCHANGEABLE), - rrl("nb-SJ", SAME_OR_INTERCHANGEABLE), + rrl("nb", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("nb-SJ", SAME_OR_MUTUALLY_INTELLIGIBLE), // Norwegian - rrl("no", SAME_OR_INTERCHANGEABLE), + rrl("no", SAME_OR_MUTUALLY_INTELLIGIBLE), // Nynorsk - rrl("nn", SAME_OR_INTERCHANGEABLE)); + rrl("nn", SAME_OR_MUTUALLY_INTELLIGIBLE)); } private static List serbian() { return List.of( - rrl("sr", SAME_OR_INTERCHANGEABLE), - rrl("sr-BA", SAME_OR_INTERCHANGEABLE), - rrl("sr-Cyrl-ME", SAME_OR_INTERCHANGEABLE), - rrl("sr-Latn", SAME_OR_INTERCHANGEABLE), - rrl("sr-Latn-BA", SAME_OR_INTERCHANGEABLE), - rrl("sr-Latn-XK", SAME_OR_INTERCHANGEABLE), - rrl("sr-ME", SAME_OR_INTERCHANGEABLE), - rrl("sr-XK", SAME_OR_INTERCHANGEABLE)); + rrl("sr", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-BA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-Cyrl-ME", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-Latn", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-Latn-BA", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-Latn-XK", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-ME", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sr-XK", SAME_OR_MUTUALLY_INTELLIGIBLE)); } private static List swedish() { return List.of( - rrl("sv", SAME_OR_INTERCHANGEABLE), - rrl("sv-AX", SAME_OR_INTERCHANGEABLE), - rrl("sv-FI", SAME_OR_INTERCHANGEABLE)); + rrl("sv", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sv-AX", SAME_OR_MUTUALLY_INTELLIGIBLE), + rrl("sv-FI", SAME_OR_MUTUALLY_INTELLIGIBLE)); } }