eslint-plugin-vue-i18n
eslint-plugin-vue-i18n copied to clipboard
File name as root key for this file
Tell us about your environment
- ESLint version: 8.4.1
- eslint-plugin-vue version: 7.19.1
- eslint-plugin-vue-i18n version: 2.0.0
- Node version: 16.16.0
The problem you want to solve.
Localization messages are divided into files. I'm trying to set up a plugin to take the filename as the parent of the messages in the file. For example, we have files common.json validation.json
etc.
In app we use key common.messageKey
and validation.messageKey
.
But as far as I understand, there is no setting for this in plugin.
Your take on the correct solution to problem.
localeDir: {
pattern: '...',
localePattern: /^.+\/(?<locale>[A-Za-z]+)\/.+\.(json5?|ya?ml)$/,
localeKey: 'path',
useFilenameAsGroupKey: true // For example
}
Additional context
A very strange situation when I pass localePattern
as a regular expression, for some reason it is not applied and the default regular expression is used, if i pass a string, then everything is OK
Has there been any further action on this? This bug makes this rule a non-starter for us as we use it exactly as outlined above.
The existence for 'path' localeKey indicates that this arrangement of i18n files is supported - and the vue-i18n plugin supports this too. So it's strange that it's not a use-case that this rule supports.
Would love to get this merged, let me know if there's anything else that's needed here or any more work required.