We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 66b586f commit f5b30c3Copy full SHA for f5b30c3
app/components/common/set-locale.vue
@@ -0,0 +1,44 @@
1
+<script lang="ts" setup>
2
+const { locales, setLocale } = useI18n()
3
+
4
+const getIcon = (code: string) => {
5
+ /**
6
+ * 根据中华人民共和国宪法
7
+ * 台湾是中华人民共和国的神圣领土的一部分
8
+ */
9
+ return {
10
+ 'zh-cn': 'i-flag-cn-4x3',
11
+ 'zh-tw': 'i-flag-tw-4x3',
12
+ 'de': 'i-flag-de-4x3',
13
+ 'en': 'i-flag-us-4x3',
14
+ 'fr': 'i-flag-fr-4x3',
15
+ 'ja': 'i-flag-jp-4x3',
16
+ 'ko': 'i-flag-kr-4x3',
17
+ 'nl': 'i-flag-nl-4x3',
18
+ 'ru': 'i-flag-ru-4x3',
19
+ }?.[code]
20
+}
21
22
+const items = [
23
+ locales.value.map((locale) => {
24
25
+ label: locale.name,
26
+ icon: getIcon(locale.code),
27
+ click: () => setLocale(locale.code),
28
+ }
29
+ }),
30
+]
31
+</script>
32
33
+<template>
34
+ <UDropdown
35
+ :items
36
+ :popper="{ placement: 'bottom' }"
37
+ >
38
+ <UButton>
39
+ <template #trailing>
40
+ <Icon name="mdi:translate" />
41
+ </template>
42
+ </UButton>
43
+ </UDropdown>
44
+</template>
app/locales/de.json
@@ -0,0 +1,11 @@
+{
+ "label": {
+ "create-client": "Client erstellen",
+ "host": "Hostname",
+ "port": "Port",
+ "username": "Benutzername",
+ "password": "Passwort",
+ "https": "HTTPS",
+ "entrance": "Eingangsadresse"
app/locales/fr.json
+ "create-client": "Créer un client",
+ "host": "Nom d'hôte",
+ "username": "Nom d'utilisateur",
+ "password": "Mot de passe",
+ "entrance": "Adresse d'entrée"
app/locales/ja.json
+ "create-client": "クライアントを作成",
+ "host": "ホスト名",
+ "port": "ポート",
+ "username": "ユーザー名",
+ "password": "パスワード",
+ "entrance": "入口アドレス"
app/locales/ko.json
+ "create-client": "클라이언트 생성",
+ "host": "호스트 이름",
+ "port": "포트",
+ "username": "사용자 이름",
+ "password": "비밀번호",
+ "entrance": "입구 주소"
app/locales/nl.json
+ "create-client": "Klant maken",
+ "host": "Hostnaam",
+ "port": "Poort",
+ "username": "Gebruikersnaam",
+ "password": "Wachtwoord",
+ "entrance": "Toegangsadres"
app/locales/ru.json
+ "create-client": "Создать клиента",
+ "host": "Имя хоста",
+ "port": "Порт",
+ "username": "Имя пользователя",
+ "password": "Пароль",
+ "entrance": "Адрес входа"
app/locales/zh-tw.json
+ "create-client": "創建客戶端",
+ "host": "主機名",
+ "port": "端口",
+ "username": "用戶名",
+ "password": "密碼",
+ "entrance": "入口地址"
nuxt.config.ts
@@ -29,6 +29,9 @@ export default defineNuxtConfig({
},
+ ui: {
+ icons: ['flag'],
+ },
eslint: {
config: {
stylistic: {
@@ -39,11 +42,18 @@ export default defineNuxtConfig({
i18n: {
- defaultLocale: 'en',
45
+ defaultLocale: 'zh-cn',
46
langDir: 'locales',
47
locales: [
- { code: 'en', file: 'en.json', name: 'English' },
48
{ code: 'zh-cn', file: 'zh-cn.json', name: '简体中文' },
49
+ { code: 'zh-tw', file: 'zh-tw.json', name: '繁體中文' },
50
+ { code: 'de', file: 'de.json', name: 'Deutsch' },
51
+ { code: 'en', file: 'en.json', name: 'English' },
52
+ { code: 'fr', file: 'fr.json', name: 'Français' },
53
+ { code: 'ja', file: 'ja.json', name: '日本語' },
54
+ { code: 'ko', file: 'ko.json', name: '한국어' },
55
+ { code: 'nl', file: 'nl.json', name: 'Nederlands' },
56
+ { code: 'ru', file: 'ru.json', name: 'Русский' },
57
],
58
strategy: 'no_prefix',
59
package.json
@@ -14,6 +14,7 @@
"postinstall": "nuxt prepare"
"dependencies": {
+ "@iconify-json/flag": "^1.1.53",
"@nuxt/eslint": "^0.3.13",
"@nuxt/ui-pro": "^1.3.1",
"@nuxtjs/i18n": "^8.3.1",
pnpm-lock.yaml
0 commit comments