Skip to content

Translating

flarom edited this page Dec 23, 2025 · 4 revisions

Warning

Cohesion translations are still in development

>>We are not accepting translations at the moment.<<

The localization format is still incomplete and may change in the future, rendering translations created now with little to no use.

Contributing translations

Thank you for your interest in helping translate Cohesion

This page explains how the localization system works and how you can contribute.


  • Each language has its own file on the locale folder.
  • English is the default language and is written directly in the HTML.
  • Other languages override the English text using locale JSON files.
  • If a translation is missing, the English text is automatically used as a fallback.
  • Locale files are loaded dynamically at runtime.

This means:

  • You never need to touch the HTML.
  • You only translate what you want.
  • Missing strings never break the UI.

How to submit your translation

  1. Fork the repository
  2. Create or update your locale file
  3. Test your translation
  4. Commit your changes
  5. Open a Pull Request

Please include:

  • The language name
  • Translation progress

Testing your translation

  1. Save your locale file

  2. Open console, type Language.set('language code, declared on meta')

  3. Navigate through the UI

  4. Look for:

    • Missing strings
    • Broken grammar
    • Overflowing text

Note

In the case you find overflowing text, report an issue.


meta

The meta section describes the language itself and its translators.

Example:

"meta": {
  "code": "pt-br",
  "name": "Portuguese (Brazil)",
  "nativeName": "Português do Brasil",
  "direction": "ltr",
  "status": "30%",
  "translators": [
    {
      "name": "Your Name",
      "role": "Translator",
      "links": {
        "github": "https://github.com/yourname",
        "website": "https://example.com"
      }
    }
  ]
}
  • code must be according with the ISO 639-1 Language Codes
  • name must be in English
  • nativeName must be written in the language itself
  • direction describes which direction is text written, ltr means left to right and rtl means right to left
  • status is completely arbitrary, just a number that roughly describes how complete is the translation
  • Add yourself to translators if you contribute

strings

The strings section contains text mappings.

Example:

"strings": {
  "dialogs.about.main.credits": "Credits",
  "dialogs.settings.main.appearance": "Appearance"
}
  • Do not rename keys
  • Do not delete keys
  • Keys are shared across all languages

Strings with HTML

Some translations include HTML (such as links).

These entries are explicitly marked in the HTML and are safe to translate.

Example:

"strings": {
	"dialogs.about.legal.notice": "This application is licensed under the <a href='https://www.gnu.org/licenses/gpl-3.0.html'>GNU GPL v3</a>."
}

Please do not add HTML to strings unless it already exists in English.


Thank you!!

Every translation helps this project grow.

Even translating a few strings makes a difference. Contributions of any size are welcome!

Learn the basic syntax of markdown and the Cohesion flavored markdown

Learn more advanced markdown applications

Learn how to use metadata on your documents to better organize your files

Learn how to create scripts and automation inside of Cohesion documents

Learn how to use commands to speed up your writing

Clone this wiki locally