diff --git a/manifest.yaml b/manifest.yaml index 09f68c8..a435469 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -86,13 +86,13 @@ spec: - name: badger-ui image: "docker.pkg.github.com/wahyd4/badger/ui:{{IMAGE_VERSION}}" securityContext: - runAsUser: 1000 + runAsUser: 0 imagePullPolicy: Always env: - name: BASE_URL value: "https://badges.toozhao.com" ports: - - containerPort: 3000 + - containerPort: 80 name: ui-port protocol: TCP resources: diff --git a/www/nuxt.config.js b/www/nuxt.config.js index 973781b..58adfe7 100644 --- a/www/nuxt.config.js +++ b/www/nuxt.config.js @@ -56,6 +56,7 @@ export default { // Doc: https://axios.nuxtjs.org/usage // '@nuxtjs/axios', '@nuxtjs/pwa', + 'nuxt-i18n', // Doc: https://github.com/nuxt/content // '@nuxt/content', ], @@ -80,6 +81,9 @@ export default { ** Content module configuration ** See https://content.nuxtjs.org/configuration */ + i18n: { + locales: ['en', 'zh-CN'], + }, content: {}, /* ** Build configuration diff --git a/www/package-lock.json b/www/package-lock.json index 17698df..f122a29 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -1043,6 +1043,23 @@ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" }, + "@intlify/vue-i18n-extensions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-1.0.2.tgz", + "integrity": "sha512-rnfA0ScyBXyp9xsSD4EAMGeOh1yv/AE7fhqdAdSOr5X8N39azz257umfRtzNT9sHXAKSSzpCVhIbMAkp5c/gjQ==", + "requires": { + "@babel/parser": "^7.9.6" + } + }, + "@intlify/vue-i18n-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-loader/-/vue-i18n-loader-1.0.0.tgz", + "integrity": "sha512-y7LlpKEQ01u7Yq14l4VNlbFYEHMmSEH1QXXASOMWspj9ZcIdCebhhvHCHqk5Oy5Epw3PtoxyRJNpb6Wle5udgA==", + "requires": { + "js-yaml": "^3.13.1", + "json5": "^2.1.1" + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -6039,6 +6056,14 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deepcopy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deepcopy/-/deepcopy-2.1.0.tgz", + "integrity": "sha512-8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==", + "requires": { + "type-detect": "^4.0.8" + } + }, "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", @@ -8718,6 +8743,11 @@ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" }, + "is-https": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-https/-/is-https-2.0.2.tgz", + "integrity": "sha512-UfUCKVQH/6PQRCh5Qk9vNu4feLZiFmV/gr8DjbtJD0IrCRIDTA6E+d/AVFGPulI5tqK5W45fYbn1Nir1O99rFw==" + }, "is-nan": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", @@ -10209,6 +10239,11 @@ "nopt": "^5.0.0" } }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11620,6 +11655,22 @@ "@nuxt/webpack": "2.14.3" } }, + "nuxt-i18n": { + "version": "6.13.12", + "resolved": "https://registry.npmjs.org/nuxt-i18n/-/nuxt-i18n-6.13.12.tgz", + "integrity": "sha512-lpk59Fs8+heoXSJ/7VAHmSLXvyegaPmlYe+wSeI7g4VHVHL7YHIHypUPu/pQfEe0h1f5GY0R/w1Y8AEEPaXiVw==", + "requires": { + "@babel/parser": "^7.5.5", + "@babel/traverse": "^7.5.5", + "@intlify/vue-i18n-extensions": "^1.0.1", + "@intlify/vue-i18n-loader": "^1.0.0", + "cookie": "^0.4.0", + "deepcopy": "^2.1.0", + "is-https": "^2.0.0", + "js-cookie": "^2.2.1", + "vue-i18n": "^8.18.1" + } + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -15877,8 +15928,7 @@ "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { "version": "0.8.1", @@ -16356,6 +16406,11 @@ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" }, + "vue-i18n": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.21.0.tgz", + "integrity": "sha512-pKBq6Kg5hNacFHMFgPbpYsFlDIMRu4Ew/tpvTWns14CZoCxt7B3tmSNdrLruGMMivnJu1rhhRqsQqT6YwHkuQQ==" + }, "vue-jest": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.6.tgz", diff --git a/www/package.json b/www/package.json index fb12260..bfcb511 100644 --- a/www/package.json +++ b/www/package.json @@ -17,7 +17,8 @@ "@nuxtjs/pwa": "^3.0.0-beta.20", "bootstrap": "^4.5.0", "bootstrap-vue": "^2.15.0", - "nuxt": "^2.14.0" + "nuxt": "^2.14.0", + "nuxt-i18n": "^6.13.12" }, "devDependencies": { "@nuxt/types": "^2.14.0", diff --git a/www/tsconfig.json b/www/tsconfig.json index 65f9bbc..34147b0 100644 --- a/www/tsconfig.json +++ b/www/tsconfig.json @@ -25,7 +25,8 @@ }, "types": [ "@types/node", - "@nuxt/types" + "@nuxt/types", + "nuxt-i18n" ] }, "exclude": [