- Themes can supply translation files in a format like `/locales/{locale}.yml`. These files should be valid YAML, with a single top level key equal to the locale being defined. For now these can only be defined using the `discourse_theme` CLI, importing a `.tar.gz`, or from a GIT repository.
- Fallback is handled on a global level (if the locale is not defined in the theme), as well as on individual keys (if some keys are missing from the selected interface language).
- Administrators can override individual keys on a per-theme basis in the /admin/customize/themes user interface.
- Theme developers should access defined translations using the new theme prefix variables:
JavaScript: `I18n.t(themePrefix("my_translation_key"))`
Handlebars: `{{theme-i18n "my_translation_key"}}` or `{{i18n (theme-prefix "my_translation_key")}}`
- To design for backwards compatibility, theme developers can check for the presence of the `themePrefix` variable in JavaScript
- As part of this, the old `{{themeSetting.setting_name}}` syntax is deprecated in favour of `{{theme-setting "setting_name"}}`
|
||
|---|---|---|
| .. | ||
| admin-dashboard-next.js.es6 | ||
| admin-dashboard.js.es6 | ||
| admin-user.js.es6 | ||
| api-key.js.es6 | ||
| backup-status.js.es6 | ||
| backup.js.es6 | ||
| color-scheme-color.js.es6 | ||
| color-scheme.js.es6 | ||
| email-log.js.es6 | ||
| email-preview.js.es6 | ||
| email-settings.js.es6 | ||
| email-template.js.es6 | ||
| flag-type.js.es6 | ||
| flagged-post.js.es6 | ||
| incoming-email.js.es6 | ||
| permalink.js.es6 | ||
| report.js.es6 | ||
| screened-email.js.es6 | ||
| screened-ip-address.js.es6 | ||
| screened-url.js.es6 | ||
| site-setting.js.es6 | ||
| site-text.js.es6 | ||
| staff-action-log.js.es6 | ||
| theme-settings.js.es6 | ||
| theme.js.es6 | ||
| tl3-requirements.js.es6 | ||
| user-field.js.es6 | ||
| version-check.js.es6 | ||
| watched-word.js.es6 | ||
| web-hook.js.es6 | ||