Skip to main content
Entirius
AI platform for e-commerce
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

ADR-012: English Language Requirement for Code and Documentation

Status

Status: Accepted
Date: 2025-07-16
Authors: Piotr Brzozowski
Reviewers: Piotr Brzozowski

Decision

English is adopted as the mandatory language for all code, comments, documentation, commit messages, and technical communication in the Entirius project. This ensures global accessibility, consistent communication standards, and alignment with open-source industry practices.

Quick Reference

Language Requirements

  • Code: All variable names, function names, class names in English
  • Comments: All inline comments and docstrings in English
  • Documentation: All technical documentation, README files, API docs in English
  • Commit messages: All git commit messages in English using conventional commit format
  • Issues & PRs: All GitHub issues and pull request descriptions in English
  • Technical communication: All team technical discussions in English

Implementation Checklist

  • All new code uses English naming conventions
  • Comments and docstrings written in English
  • Documentation updated to English where needed
  • Commit messages follow English conventional commit format
  • Code review process includes language compliance check

Acceptable Technical Terms

  • Industry-standard technical terms and abbreviations (API, HTTP, SQL, etc.)
  • Established library and framework terminology
  • Domain-specific terminology with clear English definitions

Context

As an open-source project with global ambitions, Entirius needs to establish a clear language policy for all code-related content. This includes source code, comments, documentation, commit messages, and all technical communication. The project aims to build an inclusive, accessible, and maintainable codebase that can be understood by developers worldwide.

Currently, the project has mixed language usage across different components, which creates barriers to:

  • Code review and collaboration
  • Onboarding new international contributors
  • Knowledge sharing and documentation consistency
  • Maintaining code quality standards
  • Building a global developer community

Considered Options

  • Description: Enforce English language for all code, comments, documentation, commit messages, and technical communication
  • Pros:
    • Universal accessibility for international developers
    • Consistency across the entire codebase
    • Better tooling support (IDEs, linters, spell checkers)
    • Easier code review process
    • Industry standard practice for open-source projects
  • Cons:
    • May create initial barriers for non-English speaking contributors
    • Requires translation of existing non-English content
  • Impact on system: Requires systematic review and translation of existing content

Option 2: Multi-language approach with translations

  • Description: Allow multiple languages but maintain English translations for all content
  • Pros:
    • More inclusive for diverse contributors
    • Preserves existing multilingual content
  • Cons:
    • High maintenance overhead
    • Inconsistency between language versions
    • Complex workflow for contributors
    • Potential for outdated translations
  • Impact on system: Significant complexity in documentation and review processes

Option 3: Mixed approach with English preference

  • Description: Prefer English but allow other languages in specific contexts
  • Pros:
    • Flexibility for contributors
    • Gradual migration path
  • Cons:
    • Inconsistent codebase
    • Unclear guidelines for contributors
    • Partial accessibility for international developers
  • Impact on system: Continued fragmentation of language usage

Rationale

Chosen option: English-only for all code-related content

Key decision factors:

  • Global accessibility: English is the most widely understood language in the software development industry globally
  • Industry standard: Alignment with successful open-source projects and established development practices
  • Tooling support: Better IDE integration, spell checking, automated documentation generation, and development tool compatibility
  • Maintainability: Single language reduces complexity in code reviews, documentation maintenance, and knowledge transfer
  • Risk analysis: Minimal technical risk with standard industry practice, temporary migration effort offset by long-term benefits
  • Business impact: Enables broader community participation, attracts international contributors, and supports global adoption
  • Compatibility: Aligns with chosen technology stack documentation and community practices
  • ADR-004: Mozilla Public License - supports global open-source community
  • ADR-005: GitHub Code Management - aligns with GitHub’s international user base
  • ADR-006: Hugo Technical Documentation Platform - supports static site generation

References