b5c30f5dbe
* i18n: add Vietnamese translation * i18n: fix lint * i18n: import fix --------- Co-authored-by: meow <meow@air.local>
171 lines
3.5 KiB
TypeScript
171 lines
3.5 KiB
TypeScript
import { fileURLToPath } from 'node:url';
|
|
|
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
export default defineNuxtConfig({
|
|
future: {
|
|
compatibilityVersion: 4,
|
|
},
|
|
compatibilityDate: '2026-02-06',
|
|
devtools: { enabled: true },
|
|
modules: [
|
|
'@nuxtjs/i18n',
|
|
'@nuxtjs/tailwindcss',
|
|
'@pinia/nuxt',
|
|
'@eschricht/nuxt-color-mode',
|
|
'radix-vue/nuxt',
|
|
'@vueuse/nuxt',
|
|
'@nuxt/eslint',
|
|
'@nuxt/test-utils/module',
|
|
],
|
|
colorMode: {
|
|
preference: 'system',
|
|
fallback: 'light',
|
|
classSuffix: '',
|
|
cookieName: 'theme',
|
|
},
|
|
css: ['~/app.css'],
|
|
i18n: {
|
|
// https://i18n.nuxtjs.org/docs/guide/server-side-translations
|
|
experimental: {
|
|
localeDetector: './localeDetector.ts',
|
|
},
|
|
// https://wg-easy.github.io/wg-easy/latest/contributing/translation/
|
|
locales: [
|
|
{
|
|
code: 'en',
|
|
language: 'en-US',
|
|
name: 'English',
|
|
},
|
|
{
|
|
code: 'de',
|
|
language: 'de-DE',
|
|
name: 'Deutsch',
|
|
},
|
|
{
|
|
code: 'es',
|
|
language: 'es-ES',
|
|
name: 'Español',
|
|
},
|
|
{
|
|
code: 'it',
|
|
language: 'it-IT',
|
|
name: 'Italiano',
|
|
},
|
|
{
|
|
code: 'fr',
|
|
language: 'fr-FR',
|
|
name: 'Français',
|
|
},
|
|
{
|
|
code: 'ko',
|
|
language: 'ko-KR',
|
|
name: '한국어',
|
|
},
|
|
{
|
|
code: 'ru',
|
|
language: 'ru-RU',
|
|
name: 'Русский',
|
|
},
|
|
{
|
|
code: 'uk',
|
|
language: 'uk-UA',
|
|
name: 'Українська',
|
|
},
|
|
{
|
|
code: 'zh-CN',
|
|
language: 'zh-CN',
|
|
name: '简体中文',
|
|
},
|
|
{
|
|
code: 'zh-HK',
|
|
language: 'zh-HK',
|
|
name: '繁體中文(香港)',
|
|
},
|
|
{
|
|
code: 'zh-TW',
|
|
language: 'zh-TW',
|
|
name: '正體中文 (台灣)',
|
|
},
|
|
{
|
|
code: 'pl',
|
|
language: 'pl-PL',
|
|
name: 'Polski',
|
|
},
|
|
{
|
|
code: 'cs',
|
|
language: 'cs-CZ',
|
|
name: 'Čeština',
|
|
},
|
|
{
|
|
code: 'pt-BR',
|
|
language: 'pt-BR',
|
|
name: 'Português (Brasil)',
|
|
},
|
|
{
|
|
code: 'tr',
|
|
language: 'tr-TR',
|
|
name: 'Türkçe',
|
|
},
|
|
{
|
|
code: 'bn',
|
|
language: 'bn-BD',
|
|
name: 'বাংলা',
|
|
},
|
|
{
|
|
code: 'id',
|
|
language: 'id-ID',
|
|
name: 'Bahasa Indonesia',
|
|
},
|
|
{
|
|
code: 'nl',
|
|
language: 'nl-NL',
|
|
name: 'Nederlands',
|
|
},
|
|
{
|
|
code: 'nb',
|
|
language: 'nb-NO',
|
|
name: 'Norsk bokmål',
|
|
},
|
|
{
|
|
code: 'bg',
|
|
language: 'bg-BG',
|
|
name: 'Български',
|
|
},
|
|
{
|
|
code: 'gl',
|
|
language: 'gl-ES',
|
|
name: 'Galego',
|
|
},
|
|
{
|
|
code: 'vi',
|
|
language: 'vi-VN',
|
|
name: 'Tiếng Việt',
|
|
},
|
|
],
|
|
defaultLocale: 'en',
|
|
vueI18n: './i18n.config.ts',
|
|
strategy: 'no_prefix',
|
|
detectBrowserLanguage: {
|
|
useCookie: true,
|
|
},
|
|
},
|
|
nitro: {
|
|
esbuild: {
|
|
options: {
|
|
// to support big int
|
|
target: 'node20',
|
|
},
|
|
},
|
|
alias: {
|
|
'#db': fileURLToPath(new URL('./server/database/', import.meta.url)),
|
|
},
|
|
externals: {
|
|
traceInclude: [fileURLToPath(new URL('./cli/index.ts', import.meta.url))],
|
|
},
|
|
},
|
|
alias: {
|
|
// for typecheck reasons (https://github.com/nuxt/cli/issues/323)
|
|
'#db': fileURLToPath(new URL('./server/database/', import.meta.url)),
|
|
},
|
|
});
|