Extension
SEO Plugin
Describe the Improvement
Description
Currently, the seo-plugin extension already has a src/lang/translations directory with some specific translation contents. However, these translations do not cover the UI elements (labels, buttons, tags, tabs, tooltips, etc.). The UI strings in the seo-interface and seo-display components are still hardcoded in English.
To make the SEO plugin fully accessible to a broader audience, we need to implement comprehensive multi-language (i18n) support across the entire extension's UI.
This includes translating:
- Interface options and properties in index.ts files.
- UI components, labels, buttons, tags, tabs, and tooltips in .vue files.
Expected Behavior
- Users should see the SEO extension's UI in their preferred language (based on their Directus user settings).
- All hardcoded English text in the UI should be extracted into translation keys.
- Existing language files (like
en-US.yaml and vi-VN.yaml) should be updated to include all the missing UI translation keys.
Technical Implementation Steps
Additional Context
Extension
SEO Plugin
Describe the Improvement
Description
Currently, the
seo-pluginextension already has asrc/lang/translationsdirectory with some specific translation contents. However, these translations do not cover the UI elements (labels, buttons, tags, tabs, tooltips, etc.). The UI strings in theseo-interfaceandseo-displaycomponents are still hardcoded in English.To make the SEO plugin fully accessible to a broader audience, we need to implement comprehensive multi-language (i18n) support across the entire extension's UI.
This includes translating:
Expected Behavior
en-US.yamlandvi-VN.yaml) should be updated to include all the missing UI translation keys.Technical Implementation Steps
src/lang/translations/(e.g.,en-US.yaml,vi-VN.yaml) to include new keys for all missing UI elements (buttons, labels, tags, etc.).nameandnotefields in src/seo-interface/index.ts andsrc/seo-display/index.tsto use Directus translation keys (e.g.,name: '$t:seo_plugin.feature_name').useI18n()fromvue-i18ninto all .vue files (interface.vue,display.vue, etc.) and replace hardcoded text template strings with$t('seo_plugin.key_name').Additional Context