summaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorAAGaming <aagaming@riseup.net>2024-07-08 17:33:09 -0400
committerAAGaming <aagaming@riseup.net>2024-07-08 17:33:09 -0400
commit68c6eedb8154a8483bdbf2b5c3320d1368fc4504 (patch)
tree12792e74f475de5a9d2185eb30e3d38900a4f350 /frontend
parent7e0ec279e7f9184fdedbe237cba06b2724378801 (diff)
downloaddecky-loader-68c6eedb8154a8483bdbf2b5c3320d1368fc4504.tar.gz
decky-loader-68c6eedb8154a8483bdbf2b5c3320d1368fc4504.zip
fix(i18n): fix i18next-parser configuration
i can't wait to fix the weblate conflicts this one causes
Diffstat (limited to 'frontend')
-rw-r--r--frontend/i18next-parser.config.mjs200
1 files changed, 101 insertions, 99 deletions
diff --git a/frontend/i18next-parser.config.mjs b/frontend/i18next-parser.config.mjs
index 0e36964d..c2c4f194 100644
--- a/frontend/i18next-parser.config.mjs
+++ b/frontend/i18next-parser.config.mjs
@@ -1,100 +1,102 @@
+import { readdir } from "fs/promises";
+
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'],
- // 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/decky_loader/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,
- // }
- }
+ 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: 4,
+ // Indentation of the catalog files. Weblate seems to like 4.
+
+ 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: (await readdir('../backend/decky_loader/locales/')).map(lang => lang.replace(".json", "")),
+ // 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/decky_loader/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,
+ // }
+}