diff --git a/CHANGELOG.md b/CHANGELOG.md
index e40f787f..4c3adfc7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
## 1.0.11
* update chinese translation, thanks @XiangtingLee, fixes [#251](https://github.com/cars10/elasticvue/pull/251)
+* adds french translation, thanks @XNxa, fixes [#250](https://github.com/cars10/elasticvue/pull/250)
## 1.0.10
diff --git a/playwright.config.ts b/playwright.config.ts
index 5714a7f9..9eb01c8f 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -42,10 +42,10 @@ export default defineConfig({
use: { ...devices['Desktop Firefox'] }
},
- //{
- // name: 'webkit',
- // use: { ...devices['Desktop Safari'] },
- //},
+ {
+ name: 'webkit',
+ use: { ...devices['Desktop Safari'] },
+ },
/* Test against mobile viewports. */
// {
diff --git a/src/assets/images/icons/flags/fr.svg b/src/assets/images/icons/flags/fr.svg
new file mode 100644
index 00000000..4ba25065
--- /dev/null
+++ b/src/assets/images/icons/flags/fr.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/src/components/base/LanguageSwitcher.vue b/src/components/base/LanguageSwitcher.vue
index 4991ece6..34c48e48 100644
--- a/src/components/base/LanguageSwitcher.vue
+++ b/src/components/base/LanguageSwitcher.vue
@@ -3,26 +3,19 @@
data-testid="change-language-button">
-
+ :active="store.language === code"
+ :title="title"
+ :data-testid="`change-language__${code}`"
+ @click="changeLanguage(code)">
-
-
-
-
-
-
+
@@ -33,6 +26,7 @@
diff --git a/src/consts.ts b/src/consts.ts
index aa29ac02..e873591b 100644
--- a/src/consts.ts
+++ b/src/consts.ts
@@ -8,9 +8,10 @@ export const REQUEST_DEFAULT_HEADERS = {
export const SUPPORTED_COUNTRY_LOCALES: Record = {
en: 'en',
cn: 'cn',
- zh: 'cn'
+ zh: 'cn',
+ fr: 'fr'
}
-export type ValidLocale = 'en' | 'cn'
+export type ValidLocale = 'en' | 'cn' | 'fr'
export const DEFAULT_LOCALE: ValidLocale = 'en'
export const DEFAULT_ROWS_PER_PAGE = [10, 20, 100, 0]
diff --git a/src/locales/cn.json b/src/locales/cn.json
index 13d3da0c..07434c5b 100644
--- a/src/locales/cn.json
+++ b/src/locales/cn.json
@@ -24,6 +24,9 @@
},
"cn": {
"title": "设置为中文"
+ },
+ "fr": {
+ "title": "法语"
}
}
},
diff --git a/src/locales/en.json b/src/locales/en.json
index 9fc3cea5..9b6a7af4 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -24,6 +24,9 @@
},
"cn": {
"title": "Chinese"
+ },
+ "fr": {
+ "title": "French"
}
}
},
diff --git a/src/plugins/vue-i18n.ts b/src/plugins/vue-i18n.ts
index 246280be..5801ee25 100644
--- a/src/plugins/vue-i18n.ts
+++ b/src/plugins/vue-i18n.ts
@@ -2,6 +2,7 @@
import { createI18n } from 'vue-i18n'
import en from '../locales/en.json'
import cn from '../locales/cn.json'
+import fr from '../locales/fr.json'
import { useI18nStore } from '../store/i18n'
export const vueI18n = () => {
@@ -15,7 +16,7 @@ export const vueI18n = () => {
legacy: false,
locale: language,
fallbackLocale: 'en',
- messages: { en, cn },
+ messages: { en, cn, fr },
warnHtmlMessage: false
})
}
diff --git a/tests/e2e/tests/pages/Base.spec.ts b/tests/e2e/tests/pages/Base.spec.ts
index f67db8d6..7c69cedf 100644
--- a/tests/e2e/tests/pages/Base.spec.ts
+++ b/tests/e2e/tests/pages/Base.spec.ts
@@ -33,7 +33,7 @@ test.describe('base', () => {
await openElasticvue(page)
page.getByTestId('change-language-button').click()
- await expect(page.getByTestId('change-language__english')).toHaveClass(/q-item--active/)
+ await expect(page.getByTestId('change-language__en')).toHaveClass(/q-item--active/)
})
})
})