summaryrefslogtreecommitdiff
path: root/frontend/i18next-parser.config.mjs
diff options
context:
space:
mode:
authorMarco Rodolfi <marco.rodolfi@tuta.io>2023-05-02 17:42:39 +0200
committerGitHub <noreply@github.com>2023-05-02 16:42:39 +0100
commit35e7c80835866575ea1d8f725f8c07183753e49b (patch)
tree276e3f5fa6c76328f5e9d34619981d72f763d232 /frontend/i18next-parser.config.mjs
parentcaf37d681f8644c1fdfb8cc04d23aecf7e289e92 (diff)
downloaddecky-loader-35e7c80835866575ea1d8f725f8c07183753e49b.tar.gz
decky-loader-35e7c80835866575ea1d8f725f8c07183753e49b.zip
[Feature] Implement internazionalization for Decky Loader (#361)v2.8.0-pre1
* First iteration for internationalization of the loader * First iteration for internationalization of the loader * Cleanup node mess * Cleanup node mess pt2 * Additional touches * Latest decky changed merged into i18n and updated translation. * Styling fixes * Initial backend hosting implementation * Added correct url path of the loopback server. * Added correct url path of the loopback server. * Some better namespaced text. * Added whitelist for locales path. * Refactor languages and fix hooks logic bugs. * Small typo in language translation structure. * Working backend, automatically swtich languages with steam and language fixes. * Fix to languages * Key fixes * Additional language fixes. * Additional json changes * Final text revision and added a vscode tasks to automatically extract text from code. * Typo in the middleware * Remove unused imports * Cleanup whitespaces. * Import changes * Revert "Import changes" This reverts commit 8e8231950fd7cc6cece87040e326d0a72ba79567. * Update index.d.ts * Clean up unused imports * Delete pnpm-lock.yaml * Update rollup.config.js * Update PluginInstallModal.tsx * Update index.tsx * Update plugin-loader.tsx * Update plugin-loader.tsx * Revert "Delete pnpm-lock.yaml" This reverts commit 3a39f36f2193cc976d36ffe07338239e363d5b04. * Additional strings reworks. * Fixes for issues coming from github merge. * Fixes for master * Styling fixes * Styling pt2 * Missed a few strings in master, * Styling fixes * Additional master merge fixes. * Final cleanup and adaptation to master. * Final empty language cleanup and few string added * Small changes to italian translation * Disabled translation on a few components inside plugin-loader for missing react hooks. * Fixed passing tag to translation. * Disable debug output for reducing console spam. * Return correct content type * Small italian language change * Added support for country code * Fixed missing translation for uninstall popup. * Fix class name shenanigans for toast notification * Update dependencies * Fixed github workflow to include the new locales folder * Update dependencies to latest version (unless it's React) and fixed the new small errors that cropped up * Missed a file name change * Updated dev dependencies to latest version * Missed a few dev dependencies * Revert "Update dependencies to latest version (unless it's React) and fixed the new small errors that cropped up" Messed up merge with a different main branch * Messed up deletion of rollup config. * Fix broken pnpm lock file * Missed a localized string during the merge * Fixed a parameter mistake in the uninstall text parameter * Fix pnpm random issues * Small italian language tweaks * Fix wrong parameter passed to the uninstall function call * Another fix on a wrong function parameter * Additional translation text on the store and branch selection channels * Changed the default type passed to map to being able to index the two arrays. * Reverted and reworked the last changes * Distinguish events in UI for installing vs reinstalling plugins * Additional fixes for reinstall prompt * Revert the use of intevalPlural since the parser doesn't seem to support that. * Missed a routing path in the backend * Small bugfixes * Small fixes * Correctly adding the parameter to the request headers. * Refactoring of the UI popup modal * Fix pnpm shenanigans * Final fixes for the install UI localization * Clean up unnedeed backend code * Small rework on text selection. * Cleaned up parser configuration * Removed extracttext dependency to pnpmsetup * Merged translation and cleaned up parser * Fixed JSON structure after manual merge. * Added translation to the file picker * Revert changes to PluginInstallModal * Reworked the text modal for the final time * Missed the proper linted text * Missed the backend change * Final branch cleanup * Fixed small translation bleeding Caused from the manual merge of _old.json files. * fix extra space in browser.py * fix extra newline in plugin-loader.tsx * Cleanup i18next-parser.config.mjs * Update plugin-loader.tsx * Cleanup language files * Better labeling of text * Fixed language typos in BranchSelect * Fixed language typos in StoreSelect * Cleanup plugin-loader.tsx from unused imports * Removed the path bypass since I'm using authentication from the frontend. * Reimplemented this component as a functional component. * Updated dependencies and lockfile * Removed static route from main.py Already handled in loader.py * Small italian coherency fixes * Fix small typography fixes on plugin name uninstall * Fixed italian typo on removal popup * Reenabled manual escaping value in i18next * Set to fallback to the default language if the string in the JSON file is empty. * Fixed pnpm wankery * Added a missed italian text translation string --------- Co-authored-by: AAGaming <aa@mail.catvibers.me>
Diffstat (limited to 'frontend/i18next-parser.config.mjs')
-rw-r--r--frontend/i18next-parser.config.mjs100
1 files changed, 100 insertions, 0 deletions
diff --git a/frontend/i18next-parser.config.mjs b/frontend/i18next-parser.config.mjs
new file mode 100644
index 00000000..9d4b114d
--- /dev/null
+++ b/frontend/i18next-parser.config.mjs
@@ -0,0 +1,100 @@
+export default {
+ 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 keys with no value
+ // You may also specify a function accepting the locale, namespace, key, and value as arguments
+
+ indentation: 2,
+ // Indentation of the catalog files
+
+ keepRemoved: true,
+ // Keep keys from the catalog that are no longer in code
+
+ keySeparator: '.',
+ // 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: {
+ mjs: ['JavascriptLexer'],
+ js: ['JavascriptLexer'], // 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
+
+ locales: ['en-US', 'it-IT'],
+ // An array of the locales in your applications
+
+ namespaceSeparator: false,
+ // 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: '../backend/locales/$LOCALE.json',
+ // Supports $LOCALE and $NAMESPACE injection
+ // Supports JSON (.json) and YAML (.yml) file formats
+ // Where to write the locale files relative to process.cwd()
+
+ pluralSeparator: '_',
+ // Plural separator used in your translation keys
+ // If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys.
+
+ input: './src/**/*.{ts,tsx}',
+ // An array of globs that describe where to look for source files
+ // relative to the location of the configuration file
+
+ sort: true,
+ // Whether or not to sort the catalog. Can also be a [compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#parameters)
+
+ verbose: false,
+ // Display info about the parsing including some stats
+
+ failOnWarnings: false,
+ // Exit with an exit code of 1 on warnings
+
+ failOnUpdate: false,
+ // Exit with an exit code of 1 when translations are updated (for CI purpose)
+
+ 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})
+ // }
+
+ resetDefaultValueLocale: null,
+ // The locale to compare with default values to determine whether a default value has been changed.
+ // If this is set and a default value differs from a translation in the specified locale, all entries
+ // for that key across locales are reset to the default value, and existing translations are moved to
+ // the `_old` file.
+
+ i18nextOptions: null,
+ // If you wish to customize options in internally used i18next instance, you can define an object with any
+ // configuration property supported by i18next (https://www.i18next.com/overview/configuration-options).
+ // { compatibilityJSON: 'v3' } can be used to generate v3 compatible plurals.
+
+ yamlOptions: null,
+ // If you wish to customize options for yaml output, you can define an object here.
+ // Configuration options are here (https://github.com/nodeca/js-yaml#dump-object---options-).
+ // Example:
+ // {
+ // lineWidth: -1,
+ // }
+ }