A comprehensive dataset quantifying linguistic distance and translation compatibility between 85+ global languages
Designed for developers and researchers building Translation Management Systems (TMS), Neural Machine Translation (NMT) pipelines, and Language Fallback Strategies in internationalization (i18n) and localization (l10n).
๐ Interactive Language Compatibility Visualization
This repository provides:
- ๐ Main Dataset: Production-ready language compatibility matrix (
datasets/) - ๐จ Interactive Visualizations: Explore language relationships (
visualization/) - ๐ Comprehensive Documentation: Technical analysis and guides (
docs/) - ๐ง Developer Tools: Scripts and utilities (
tools/) - ๐ฆ Easy Installation: Available on PyPI and npm
Explore language compatibility through our interactive web interface:
๐ฏ Interactive Language Matrix - Visual exploration of 85 languages and 7,225+ translation directions
Key features:
- Real-time search and filtering
- Color-coded compatibility scores
- Bidirectional relationship viewing
- Translation chain optimization
- Export capabilities for research
- Project Overview
- Interactive Visualization
- Executive Summary
- Methodology
- Data: The Compatibility Dataset (JSON)
- Integration Guide
- Linguistic Clusters & Analysis
- Dataset Documentation
- References
Core Concepts: Language Compatibility โข Language Distance โข Language Similarity โข Language Proximity โข Linguistic Distance โข Linguistic Similarity โข Linguistic Proximity โข Linguistic Affinity โข Language Relatedness โข Language Kinship โข Translation Compatibility โข Translation Distance
Machine Translation: Machine Translation โข MT โข Neural Machine Translation โข NMT โข Statistical Machine Translation โข SMT โข Translation Model โข Translation Engine โข MT Quality โข Translation Quality Prediction โข MT Evaluation โข Automatic Translation โข Translation Automation
NLP & AI: Natural Language Processing โข NLP โข Computational Linguistics โข Multilingual NLP โข Cross-Lingual NLP โข Multilingual Models โข Cross-Lingual Embeddings โข Language Models โข Pretrained Models โข Transfer Learning โข Zero-Shot Learning โข Few-Shot Learning โข Low-Resource Languages โข Underresourced Languages
Internationalization: Internationalization โข i18n โข Localization โข l10n โข Globalization โข g11n โข Translation Management โข TMS โข Translation Management System โข Content Localization โข Software Localization โข Website Translation โข App Localization โข Multilingual Content โข Multilingual Support
Language Selection: Pivot Language โข Pivot Translation โข Intermediate Language โข Bridge Language โข Language Fallback โข Fallback Chain โข Fallback Strategy โข Language Routing โข Translation Routing โข Best Translation Path โข Optimal Translation Route
Linguistic Metrics: Mutual Intelligibility โข Lexical Similarity โข Lexical Distance โข Lexical Overlap โข Cognate Detection โข Cognate Similarity โข Levenshtein Distance โข Edit Distance โข String Similarity โข Phonological Distance โข Morphological Similarity โข Syntactic Similarity โข Language Typology
Language Pairs: Language Pairs โข Translation Pairs โข Source Language โข Target Language โข Language Combinations โข Bidirectional Translation โข Language Mapping โข Translation Matrix โข Compatibility Matrix โข Similarity Matrix โข Distance Matrix
Language Families: Romance Languages โข Latin Languages โข Germanic Languages โข Slavic Languages โข Scandinavian Languages โข Nordic Languages โข Indo-European Languages โข Indo-Aryan Languages โข Dravidian Languages โข Uralic Languages โข Turkic Languages โข Semitic Languages โข Sino-Tibetan Languages
Specific Languages: Spanish Portuguese Italian French German English Russian Chinese Arabic Japanese Hindi Urdu Turkish Korean Vietnamese Polish Czech Slovak Ukrainian Danish Swedish Norwegian Finnish Dutch Catalan Romanian Greek Hebrew Hungarian Thai Indonesian Malay
Use Cases: Translation Quality Estimation โข Translation Memory โข CAT Tools โข Computer-Assisted Translation โข Translation Workflow โข Multilingual SEO โข Multilingual Chatbots โข Multilingual Search โข Language Detection โข Language Identification โข Translation API โข Translation Service
Research & Data: Dataset โข JSON Dataset โข Open Data โข Research Dataset โข Linguistic Database โข Language Database โข Translation Dataset โข NLP Dataset โข Benchmark Dataset โข Language Metrics โข Language Statistics โข Corpus Linguistics โข Quantitative Linguistics โข Language Resources
Related Fields: Glottochronology โข Phylogenetic Linguistics โข Historical Linguistics โข Comparative Linguistics โข Sociolinguistics โข Psycholinguistics โข Applied Linguistics โข Translation Studies โข Dialectology โข Language Contact
In Machine Translation and Localization, not all language pairs are created equal. Transfer learning from Slovak to Czech is significantly more efficient than from English to Czech due to high morphosyntactic isomorphism and lexical overlap.
This repository provides a Translation Compatibility Score (TCS) for language pairs, normalized to a 0โ255 scale (8-bit integer) for efficient storage and processing. A score of 255 indicates perfect intelligibility or identity; a score of 0 indicates no practical transferability.
- Pivot Language Selection: Routing translations through the most similar "donor" language (e.g., translating Galician via Portuguese rather than English).
- Zero-Shot Transfer: Selecting optimal pre-training weights for low-resource languages.
- Fallback Chains: Intelligent UI fallback (e.g., if
skis missing, fallback tocsbeforeen).
The Translation Compatibility Score (TCS) is a weighted aggregate of three linguistic metrics:
-
Lexical Similarity (
$\delta_{lex}$ ): The percentage of shared cognates in standardized Swadesh lists (e.g., Slovak voda vs Czech voda). -
Normalized Levenshtein Distance (
$\delta_{lev}$ ): The orthographic edit distance required to transform tokens from Source to Target. -
Mutual Intelligibility (
$\delta_{int}$ ): Functional asymmetric intelligibility based on speaker studies (e.g., Danish speakers understanding Norwegian Bokmรฅl).
-
Input Data: Normalized coefficients (
$0.0 - 1.0$ ) from academic sources (ASJP, Ethnologue). - Output Score: Mapped to 0 - 255.
| Score Range | Interpretation | Example |
|---|---|---|
| 255 | Identity (Same Language) | en-en, es-es |
| 250+ | Near-Perfect Intelligibility | Slovak โ Czech |
| 200+ | High Intelligibility (Dialect Continuum) | Danish โ Norwegian |
| 150+ | High Lexical Similarity (Same Branch) | Spanish โ Italian |
| 50-100 | Genetic Relation, Low Intelligibility | English โ German |
The main dataset is provided in datasets/language-pairs-translation-proximity.json.
Via npm:
npm install @opensubtitles/language-compatibility-matrixVia direct download:
curl -O https://raw.githubusercontent.com/opensubtitles/language-compatibility-matrix-for-machine-translation/main/datasets/language-pairs-translation-proximity.jsonVia CDN (jsDelivr):
// Always get the latest version
const url = 'https://cdn.jsdelivr.net/gh/opensubtitles/language-compatibility-matrix-for-machine-translation@main/datasets/language-pairs-translation-proximity.json';
// Or use a specific version
const url = 'https://cdn.jsdelivr.net/gh/opensubtitles/language-compatibility-matrix-for-machine-translation@v1.0.1/datasets/language-pairs-translation-proximity.json';This JSON object is keyed by ISO 639-1 (2-letter) language codes.
{
"sk": {
"cs": 252,
"pl": 240,
"ru": 220,
"en": 195
},
"es": {
"pt": 245,
"ca": 248,
"it": 230,
"fr": 220
}
}import json
with open('language-pairs-translation-proximity.json') as f:
compatibility = json.load(f)
def get_fallback_chain(target_lang, available_langs, threshold=150):
"""
Returns a prioritized list of fallback languages for target_lang.
Args:
target_lang: ISO 639 code (e.g., 'sk')
available_langs: List of available language codes
threshold: Minimum compatibility score (default: 150)
Returns:
List of language codes sorted by compatibility score
"""
if target_lang not in compatibility:
return []
scores = compatibility[target_lang]
candidates = [
(lang, score)
for lang, score in scores.items()
if lang in available_langs and score >= threshold
]
return [lang for lang, score in sorted(candidates, key=lambda x: x[1], reverse=True)]
# Example usage
available = ['en', 'cs', 'pl', 'de']
fallbacks = get_fallback_chain('sk', available)
print(f"Fallback chain for Slovak: {fallbacks}")
# Output: ['cs', 'pl', 'en'] (de not included, below threshold)import compatibilityData from './language-pairs-translation-proximity.json';
interface CompatibilityMatrix {
[sourceLang: string]: {
[targetLang: string]: number;
};
}
const compatibility: CompatibilityMatrix = compatibilityData;
function getBestPivot(
sourceLang: string,
targetLang: string,
availablePivots: string[]
): string | null {
const sourceScores = compatibility[sourceLang] || {};
const targetScores = compatibility[targetLang] || {};
let bestPivot: string | null = null;
let bestScore = 0;
for (const pivot of availablePivots) {
const sourceToP = sourceScores[pivot] || 0;
const pivotToTarget = targetScores[pivot] || 0;
const combinedScore = (sourceToP + pivotToTarget) / 2;
if (combinedScore > bestScore) {
bestScore = combinedScore;
bestPivot = pivot;
}
}
return bestPivot;
}
// Example: Translating from Galician to Romanian
const pivot = getBestPivot('gl', 'ro', ['en', 'es', 'pt', 'fr']);
console.log(`Best pivot language: ${pivot}`); // 'pt' or 'es'The Romance family exhibits some of the highest internal compatibility scores in the world.
- Spanish (es) & Portuguese (pt): Score 245. High asymmetric intelligibility; Portuguese speakers generally understand Spanish better than vice versa.
- Spanish (es) & Catalan (ca): Score 248. Catalan shows very high compatibility with Spanish.
- Italian (it) & Spanish (es): Score 230. Strong lexical similarity across the Romance branch.
- Italian (it) & French (fr): Score 220. High lexical similarity despite phonological differences.
- Catalan (ca): Acts as a bridge between Ibero-Romance (es: 248, pt: 235) and Gallo-Romance (fr: 225, it: 220).
- The Scandinavian Continuum: Danish (da), Norwegian (nb), and Swedish (sv) share very high scores: da-nb: 245, da-sv: 248, nb-sv: 240, allowing for near-lossless "semicommunication".
- West Germanic: English (en) to German (de) shows a score of 240, while Dutch (nl) to German also scores 240, reflecting their shared West Germanic heritage.
- Slovak (sk) & Czech (cs): Score 252. These are functionally mutually intelligible dialects in many contexts.
- Russian (ru) & Ukrainian (uk): Score 248. Very high mutual intelligibility reflecting their close East Slavic relationship.
- Ukrainian (uk) & Polish (pl): Score 235. Strong compatibility reflecting historical and geographic proximity.
- Hindi (hi) & Urdu (ur): Score 248. Spoken registers are identical (Hindustani); the score accounts for the script difference (Devanagari vs. Perso-Arabic) which requires transliteration algorithms.
- Tamil (ta) & Malayalam (ml): Score 215. High lexical overlap due to shared Sanskrit loans and Proto-Dravidian roots.
๐ datasets/ - Main Data Files
language-pairs-translation-proximity.json- Primary dataset with 85+ languages and 7,225+ language pairslanguage-pairs-translation-proximity-gemini-v1.json- Google Translate model resultslanguage-pairs-translation-proximity-perplexity-v1.json- Perplexity-based evaluation datasetlanguage-pairs-translation-proximity-manus-v1.json- Alternative translation model analysis
๐ docs/ - Documentation & Guides
DATASET_SUMMARY.md- Comprehensive dataset overview and methodologyPROMOTION.md- Promotion strategy and usage examplesGITHUB_SETUP.md- GitHub repository setup and configuration
๐ง tools/ - Development & Analysis
correct_scandinavian.py- Script for correcting Scandinavian language scoressimple-server.js- Local development serverpublish_to_pypi.sh- PyPI publishing script
๐ analysis/ - Research & Analysis
DATASET_CORRECTIONS_ANALYSIS.md- Technical analysis of dataset corrections and methodology
๐จ visualization/ - Interactive Visualizations
index.html- Main interactive visualization interfacevisualization.js- Core visualization logic- Model-specific documentation:
gemini-dataset-documentation.html,manus-dataset-documentation.html,perplexity-dataset-documentation.html
-
ASJP (Automated Similarity Judgment Program): Mรผller, Andrรฉ, et al. "ASJP World Language Tree of Lexical Similarity: Version 3." http://asjp.clld.org/
-
Ethnologue: Simons, Gary F., and Charles D. Fennig (eds.). 2018. Ethnologue: Languages of the World, Twenty-first edition. Dallas, Texas: SIL International. https://www.ethnologue.com/
-
Gooskens, C., et al. (2018): Mutual intelligibility between closely related languages in Europe. International Journal of Multilingualism. DOI: 10.1080/14790718.2017.1350185
-
Dyen, I., Kruskal, J. B., & Black, P. (1992): An Indoeuropean classification: A lexicostatistical experiment. Transactions of the American Philosophical Society. DOI: 10.2307/1006517
-
ISO 639-2 Registration Authority: Library of Congress. https://www.loc.gov/standards/iso639-2/
MIT License - see LICENSE file for details.
Contributions are welcome! If you have updated linguistic research, additional language pairs, or improvements to the scoring methodology, please open an issue or submit a pull request.
If you use this dataset in your research, please cite:
@misc{language-compatibility-matrix-2024,
title={Global Language Compatibility Matrix for Machine Translation},
author={OpenSubtitles.org},
year={2024},
publisher={GitHub},
url={https://github.com/opensubtitles/language-compatibility-matrix-for-machine-translation}
}