Translating the Bluefin docs#
This site uses Docusaurus's built-in internationalization (i18n) support.
Current locales#
en(default)defr
Add or update translations#
- Edit the source content in
docs/,blog/,src/, or other shared UI files. - Generate or refresh translation message files:
npx docusaurus write-translations --locale <locale> - Translate the generated files under
i18n/<locale>/. - Commit both the source change and translated strings in the same pull request when possible.
Add a new locale#
- Add the locale code to
i18n.localesindocusaurus.config.ts. - Generate translation files for the locale:
npx docusaurus write-translations --locale <locale> - If needed, add localized docs or blog content under
i18n/<locale>/docusaurus-plugin-content-docs/current/or the matching blog directory. - Submit the locale scaffolding in a pull request so contributors can start translating.
Crowdin or Weblate#
Docusaurus works well with hosted translation platforms such as Crowdin or Weblate.
Recommended workflow:
- Keep English source content in
docs/,blog/, andsrc/. - Sync the generated JSON and Markdown files in
i18n/<locale>/to Crowdin or Weblate. - Review translated strings through that platform.
- Merge the exported changes back through a normal GitHub pull request.
Either Crowdin or Weblate can be used; this repository keeps the translation source of truth in Git.
Pull request workflow#
- Create a branch for your translation work.
- Keep changes scoped to one locale or one feature when possible.
- Reference the related issue in your PR description.
- Ask reviewers to focus on translation accuracy and terminology consistency.
Tips#
- Translate user-facing text only; do not rename file paths unless Docusaurus requires localized copies.
- Preserve Markdown, MDX, code fences, links, and frontmatter structure.
- When in doubt, prefer consistency with existing English terminology.