Install Node.js 24.12 or newer and pnpm 12+, then install the workspace dependencies:
pnpm installBefore opening a pull request, run the same checks as CI:
pnpm format
pnpm lint
pnpm check
pnpm test
pnpm build
pnpm test:build
pnpm test:consumerJAAD bundles its own interface strings separately from the Markdown written by its users. English is the canonical catalogue; every other catalogue must contain exactly the same keys.
To contribute another language:
- Copy
contributing/ui-locale.template.tstopackages/jaad/src/ui/<language>.ts, using a lowercase ISO 639-1 language code for the filename. - Rename
UI_LOCALEto a language-specific constant and translate every value. Do not leave empty strings. - Import the catalogue in
packages/jaad/src/ui.tsand add its language code toUI_CATALOGS. - Add the catalogue to the completeness test in
tests/unit/ui.test.tsand update the supported-language list in the i18n documentation. - Run the checks above.
Translate meaning rather than individual words. Keep labels concise, preserve
punctuation where it carries meaning, and remember that keys such as
breadcrumb.label, nav.*, search.label, and theme.toggle are also read
by assistive technology. Keyboard hints such as search.open and
search.navigate should remain short verbs.
Regional locales automatically inherit their base language. A catalogue for
pt, for example, also supplies the defaults for pt-BR; users can still
override either locale through their JAAD configuration.