- ✅ Urdu - 118/118 elements
- ✅ Filipino - 118/118 elements
- ✅ Swedish - 118/118 elements
| Language | Complete | Remaining | Speakers | Priority |
|---|---|---|---|---|
| French | 31/118 (26%) | 87 | 280M | HIGH |
| Spanish | 26/118 (22%) | 92 | 580M | HIGH |
| German | 23/118 (20%) | 95 | 130M | MEDIUM |
| Portuguese | 23/118 (20%) | 95 | 260M | HIGH |
| Afrikaans | 23/118 (20%) | 95 | 17M | LOW |
| Hindi | 22/118 (19%) | 96 | 600M | HIGH |
| Italian | 21/118 (18%) | 97 | 85M | MEDIUM |
| Chinese | 21/118 (18%) | 97 | 1.3B | CRITICAL |
Total Remaining: 754 descriptions across 8 languages
- AI-Powered Translation: Using advanced language models with scientific terminology knowledge
- Batch Processing: Translating elements in groups of 10-20 for efficiency
- Quality Assurance: Maintaining scientific accuracy and proper chemical terminology
- Systematic Coverage: Processing languages by speaker population priority
scripts/translate_all_elements.py- Main translation orchestration systemscripts/comprehensive_translate.py- Status analysis and reportingscripts/bulk_translate_processor.py- Batch update utilitiesscripts/translate_element_descriptions.py- Translation needs analyzerscripts/batch_translate_elements.py- Translation helper framework
- Chinese (1.3B speakers) - 97 elements - CRITICAL IMPACT
- Hindi (600M speakers) - 96 elements - HIGH IMPACT
- Spanish (580M speakers) - 92 elements - HIGH IMPACT
- Portuguese (260M speakers) - 95 elements - HIGH IMPACT
- German (130M speakers) - 95 elements - MEDIUM IMPACT
- French (280M speakers) - 87 elements - Continue current progress
- Italian (85M speakers) - 97 elements - MEDIUM IMPACT
- Afrikaans (17M speakers) - 95 elements - LOWER IMPACT
For each language:
-
Load element data:
import json with open(f'app/src/main/assets/elements_en.json') as f: en_data = json.load(f) with open(f'app/src/main/assets/elements_{lang_code}.json') as f: lang_data = json.load(f)
-
Identify elements needing translation:
- Check for English phrases: "is a chemical element", "was first isolated"
- For French, also check for corruption: "dans" + "est a"
-
Translate descriptions:
- Maintain scientific accuracy
- Use proper chemical terminology in target language
- Preserve factual information and structure
- Keep the same level of detail
-
Update and save:
lang_data[element_key]['description'] = translated_text with open(f'app/src/main/assets/elements_{lang_code}.json', 'w') as f: json.dump(lang_data, f, ensure_ascii=False, indent=2)
Each translation must:
- ✅ Use correct chemical terminology in the target language
- ✅ Maintain scientific accuracy (atomic numbers, symbols, discoverers, dates)
- ✅ Preserve the informational content of the original
- ✅ Use natural, fluent language for native speakers
- ✅ Follow the style and tone of existing translations in that language
Good French translation (Actinium):
L'actinium est un élément chimique de symbole Ac et de numéro atomique 89. Il a été isolé pour la première fois par le chimiste français André-Louis Debierne en 1899...
Good German translation (Actinium):
Actinium ist ein chemisches Element mit dem Symbol Ac und der Ordnungszahl 89. Es wurde erstmals 1899 vom französischen Chemiker André-Louis Debierne isoliert...
Good Spanish translation (Actinium):
El actinio es un elemento químico con el símbolo Ac y número atómico 89. Fue aislado por primera vez por el químico francés André-Louis Debierne en 1899...
Use the provided scripts to track progress:
# Check overall status
python3 scripts/translate_all_elements.py
# Check specific language
python3 scripts/translate_all_elements.py de
# Get bulk processing status
python3 scripts/bulk_translate_processor.py- Per description: ~100-150 words of technical scientific content
- Total remaining: 754 descriptions × ~125 words = ~94,000 words
- Estimated time:
- With AI assistance: 30-50 hours
- With professional translators: 15-25 hours per language
- With community contributions: Variable
- Choose a language based on your expertise and the priority list
- Use the translation tools to identify which elements need translation
- Translate systematically in batches of 10-20 elements
- Commit regularly to save progress
- Test locally to ensure JSON formatting is valid
We welcome contributions from native speakers! If you can help translate:
- Open an issue on GitHub tagged with
translationand your language code - Fork the repository and work on translations for your language
- Submit pull requests with batches of completed translations
- Include your name in the credits
Translations by:
- GitHub Copilot - Swedish (5 elements), French (15 elements)
- Previous contributors - Partial translations across multiple languages
- Your name here! - Help complete the remaining 754 descriptions
- All JSON files use UTF-8 encoding with
ensure_ascii=False - Indentation is 2 spaces
- Only the
descriptionfield should be translated - Keep all other fields (symbols, numbers, element names, URLs) unchanged
- Preserve scientific notation and chemical formulas
Completing these translations will:
- Serve 3+ billion speakers worldwide
- Make chemical education accessible in 11 languages
- Support students and professionals globally
- Demonstrate open-source community collaboration
Status as of last update: 544/1,298 descriptions complete (41.9%)
Target: 1,298/1,298 descriptions (100%)
Remaining: 754 descriptions across 8 languages