1285efc49a
* feat: i18n * Changing language single source of truth from TEAM to USER * Changes according to @tommoor comments on PR * Changed package.json for build:i18n and translation label * Finished 1st MVP of i18n for outline * new translation labels & Portuguese from Portugal translation * Fixes from PR request * Described language dropdown as an experimental feature * Set keySeparator to false in order to cowork with html keys * Added useTranslation to Breadcrumb * Repositioned <strong> element * Removed extra space from TemplatesMenu * Fortified the test suite for i18n * Fixed trans component problematic * Check if selected language is available * Update yarn.lock * Removed unused Trans * Removing debug variable from i18n init * Removed debug variable * test: update snapshots * flow: Remove decorator usage to get proper flow typing It's a shame, but hopefully we'll move to Typescript in the next 6 months and we can forget this whole Flow mistake ever happened * translate: Drafts * More translatable strings * Mo translation strings * translation: Search * async translations loading * cache translations in client * Revert "cache translations in client" This reverts commit 08fb61ce36384ff90a704faffe4761eccfb76da1. * Revert localStorage cache for cache headers * Update Crowdin configuration file * Moved translation files to locales folder and fixed english text * Added CONTRIBUTING File for CrowdIn * chore: Move translations again to please CrowdIn * fix: loading paths chore: Add strings for editor * fix: Improve validation on documents.import endpoint * test: mock bull * fix: Unknown mimetype should fallback to Markdown parsing if markdown extension (#1678) * closes #1675 * Update CONTRIBUTING * chore: Add link to translation portal from app UI * refactor: Centralize language config * fix: Ensure creation of i18n directory in build * feat: Add language prompt * chore: Improve contributing guidelines, add link from README * chore: Normalize tab header casing * chore: More string externalization * fix: Language prompt in dark mode Co-authored-by: André Glatzl <andreglatzl@gmail.com>
85 lines
2.9 KiB
JavaScript
85 lines
2.9 KiB
JavaScript
// @flow
|
|
module.exports = {
|
|
contextSeparator: "_",
|
|
// Key separator used in your translation keys
|
|
|
|
createOldCatalogs: false,
|
|
// Save the \_old files
|
|
|
|
defaultNamespace: "translation",
|
|
// Default namespace used in your i18next config
|
|
|
|
defaultValue: "",
|
|
// Default value to give to empty keys
|
|
|
|
indentation: 2,
|
|
// Indentation of the catalog files
|
|
|
|
keepRemoved: false,
|
|
// Keep keys from the catalog that are no longer in code
|
|
|
|
keySeparator: false,
|
|
// Key separator used in your translation keys
|
|
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
|
|
|
|
// see below for more details
|
|
lexers: {
|
|
hbs: ["HandlebarsLexer"],
|
|
handlebars: ["HandlebarsLexer"],
|
|
|
|
htm: ["HTMLLexer"],
|
|
html: ["HTMLLexer"],
|
|
|
|
mjs: ["JavascriptLexer"],
|
|
js: ["JsxLexer"], // if you're writing jsx inside .js files, change this to JsxLexer
|
|
ts: ["JavascriptLexer"],
|
|
jsx: ["JsxLexer"],
|
|
tsx: ["JsxLexer"],
|
|
|
|
default: ["JavascriptLexer"],
|
|
},
|
|
|
|
lineEnding: "auto",
|
|
// Control the line ending. See options at https://github.com/ryanve/eol
|
|
|
|
namespaceSeparator: ":",
|
|
// Namespace separator used in your translation keys
|
|
// If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
|
|
|
|
output: "shared/i18n/locales/en_US/translation.json",
|
|
// Supports $LOCALE and $NAMESPACE injection
|
|
// Supports JSON (.json) and YAML (.yml) file formats
|
|
// Where to write the locale files relative to process.cwd()
|
|
|
|
input: undefined,
|
|
// An array of globs that describe where to look for source files
|
|
// relative to the location of the configuration file
|
|
|
|
sort: false,
|
|
// Whether or not to sort the catalog
|
|
|
|
skipDefaultValues: false,
|
|
// Whether to ignore default values.
|
|
|
|
useKeysAsDefaultValue: true,
|
|
// Whether to use the keys as the default value; ex. "Hello": "Hello", "World": "World"
|
|
// This option takes precedence over the `defaultValue` and `skipDefaultValues` options
|
|
|
|
verbose: false,
|
|
// Display info about the parsing including some stats
|
|
|
|
failOnWarnings: false,
|
|
// Exit with an exit code of 1 on warnings
|
|
|
|
customValueTemplate: null,
|
|
// If you wish to customize the value output the value as an object, you can set your own format.
|
|
// ${defaultValue} is the default value you set in your translation function.
|
|
// Any other custom property will be automatically extracted.
|
|
//
|
|
// Example:
|
|
// {
|
|
// message: "${defaultValue}",
|
|
// description: "${maxLength}", // t('my-key', {maxLength: 150})
|
|
// }
|
|
};
|