mirror of
https://github.com/outline/outline.git
synced 2026-03-08 22:00:30 -05:00
* 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 08fb61ce36.
* 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})
|
|
// }
|
|
};
|