/protondb-i18n

Primary LanguageJavaScript

protondb-i18n

A crowdsourced journey to translate ProtonDB (News post)

Overview

ProtonDB loads its text using react-i18next resource bundles in JSON.

Each language, as represented by their 'xx-XX' BCP-47 language tag, lives within locales. Within each locale's directory are the following files:

  • protondb-content.json (translations for content around the site)
  • proton-report.json (translations for the reporting flow specific to Proton)
  • questionnaire.json (translations for generic items in the reporting flow)
  • general.json (everything else)

Prerequisites

None! You can browse this repository and edit the files manually. But editing language files can be fiddly and typos are common. It's preferable to grab some tools:

  • Node.js
  • yarn (if you want to skip this, npm is included with node and will probably work fine as a substitute).
  • A text editor, ideally one with colored formatting for JSON.

Contributing

All native speakers are welcome to contribute! Please do not make pull requests with automated translations.

  • Fork this repo
  • Download your fork
  • In your downloaded directory, install dependencies by running yarn
  • If starting a new locale, create the directory named after your language tag within locales and copy over files from the locales/en-US directory
  • Make your changes/additions
  • Review them visually (see Verify Your Changes below)
  • Run yarn lint:json to validate everything is alphabetized and formatted properly
  • Commit, push, and open a pull request!

Any questions? Ask us on Discord You might want to let us know on there anyway that you're starting work so that we can add you to Known Active Translations below.

Verify Your Changes

Keep an eye out for page rendering issues if your text is smaller or larger than the English equivalent, and open an issue with a screenshot if you cannot fit readable words for your language.

  • Learn how to modify your browser's local storage (here are instructions for Chrome and Firefox)
  • Visit ProtonDB
  • If you're not already, switch to English
  • (NEW): For both files, copy the values for i18nStamp and i18nVersion that occur in the ones that are stored in your local storage.
  • For each file in the locales directory, copy its contents into a local storage entry of i18next:en-US-filename, i.e. i18next:en-US-proton-report
  • Reload and review
  • (NEW): When finished, remove the values you added for i18nStamp and i18nVersion before submitting your PR

Maintenance

As ProtonDB continues development, new text will be added that may need translation. For a quick way to verify if a language is missing translations (or has identical ones to English), you can run: yarn compare --locale <locale-code>

Hall of Fame

Coming soon

  • An expanded ProtonDB help section will need translations too!