Skip to main content
Version: Latest

i18n translation

  • NocoDB supports 30+ foreign languages & community contributions are now simplified via Crowdin.

How to add / edit translations ?

Using GitHub

  • For English, make changes directly to en.json & commit to develop
  • For any other language, use crowdin option.

Using Crowdin

Screenshot 2022-09-08 at 10 26 23 PM

  • Click the language that you wish to contribute

Screenshot 2022-09-08 at 10 29 56 PM

  • Click the Translate button; this opens up Crowdin Online Editor

Screenshot 2022-09-08 at 10 32 17 PM

  • Select string in English on the left-hand menu bar [1]
  • Propose changes [2]
  • Save [3] Note: Crowdin provides translation recommendation's as in [4]. Click directly if it's apt

Screenshot 2022-09-08 at 10 37 38 PM

A GitHub Pull Request will be automatically triggered (periodicity- 6 hours). We will follow up on remaining integration work items.

Reference

Refer following articles to get additional details about Crowdin Portal usage

How to add a new language ?

GitHub changes

  • Update enumeration in enums.ts [packages/nc-gui/lib/enums.ts]
  • Map JSON path in a.i18n.ts [packages/nc-gui/plugins/a.i18n.ts]

Crowdin changes [admin only]

  • Open NocoDB project
  • Click on Language on the home tab
  • Select target language, Update
  • Update array in tests/playwright/tests/language.spec.ts

Screenshot 2022-09-08 at 10 52 59 PM

Screenshot 2022-09-08 at 10 54 04 PM

String Categories

  • General: simple & common tokens (save, cancel, submit, open, close, home, and such)
  • Objects: objects from NocoDB POV (project, table, field, view, page, and such)
  • Title: screen headers (compact) (menu headers, modal headers)
  • Lables: text box/ radio/ field headers (few words) (Labels over textbox, radio buttons, and such)
  • Activity/ actions: work items (few words) (Create Project, Delete Table, Add Record, and such)
  • Tooltip: additional information associated with work items (usually lengthy) (Additional information provided for activity)
  • Placeholder: placeholders associated with various textboxes (Text placeholders)
  • Msg
    • Info: general/success category for everything
    • Error: warnings & errors
    • Toast: pop-up toast messages

Note: string name should be in camelCase. Use above list as priority order in case of ambiguity.