docus 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/plugins/i18n.ts +16 -0
- package/app/{pages/[[lang]]/index.vue → templates/landing.vue} +2 -1
- package/i18n/locales/ar.json +18 -0
- package/i18n/locales/bn.json +18 -0
- package/i18n/locales/ca.json +18 -0
- package/i18n/locales/ckb.json +18 -0
- package/i18n/locales/cs.json +18 -0
- package/i18n/locales/da.json +18 -0
- package/i18n/locales/el.json +18 -0
- package/i18n/locales/et.json +18 -0
- package/i18n/locales/he.json +18 -0
- package/i18n/locales/hi.json +18 -0
- package/i18n/locales/hy.json +18 -0
- package/i18n/locales/ja.json +18 -0
- package/i18n/locales/kk.json +18 -0
- package/i18n/locales/km.json +18 -0
- package/i18n/locales/ko.json +18 -0
- package/i18n/locales/ky.json +18 -0
- package/i18n/locales/lb.json +18 -0
- package/i18n/locales/ms.json +18 -0
- package/i18n/locales/nb.json +18 -0
- package/i18n/locales/sl.json +18 -0
- package/i18n/locales/sv.json +18 -0
- package/i18n/locales/uk.json +18 -0
- package/i18n/locales/ur.json +18 -0
- package/i18n/locales/vi.json +18 -0
- package/modules/default-configs.ts +24 -1
- package/modules/routing.ts +37 -0
- package/nuxt.config.ts +21 -2
- package/package.json +10 -11
- package/i18n/i18n.config.ts +0 -15
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default defineNuxtPlugin(() => {
|
|
2
|
+
const nuxtApp = useNuxtApp()
|
|
3
|
+
|
|
4
|
+
const i18nConfig = nuxtApp.$config.public.i18n
|
|
5
|
+
if (!i18nConfig) {
|
|
6
|
+
return
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
addRouteMiddleware((to) => {
|
|
10
|
+
if (to.path === '/') {
|
|
11
|
+
const cookieLocale = useCookie('i18n_redirected').value || i18nConfig.defaultLocale || 'en'
|
|
12
|
+
|
|
13
|
+
return navigateTo(`/${cookieLocale}`)
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
})
|
|
@@ -4,6 +4,7 @@ import type { Collections } from '@nuxt/content'
|
|
|
4
4
|
const route = useRoute()
|
|
5
5
|
const { locale, isEnabled } = useDocusI18n()
|
|
6
6
|
|
|
7
|
+
// Dynamic collection name based on i18n status
|
|
7
8
|
const collectionName = computed(() => isEnabled.value ? `landing_${locale.value}` : 'landing')
|
|
8
9
|
|
|
9
10
|
const { data: page } = await useAsyncData(collectionName.value, () => queryCollection(collectionName.value as keyof Collections).path(route.path).first())
|
|
@@ -12,7 +13,7 @@ if (!page.value) {
|
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
// Reconsider it once this is implemented: https://github.com/nuxt/content/issues/3419
|
|
15
|
-
const prose = page.value.meta
|
|
16
|
+
const prose = page.value.meta?.prose as boolean
|
|
16
17
|
const title = page.value.seo?.title || page.value.title
|
|
17
18
|
const description = page.value.seo?.description || page.value.description
|
|
18
19
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "أو"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "نسخ الصفحة",
|
|
8
|
+
"link": "نسخ صفحة Markdown",
|
|
9
|
+
"view": "عرض كـ Markdown",
|
|
10
|
+
"gpt": "فتح في ChatGPT",
|
|
11
|
+
"claude": "فتح في Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "المجتمع",
|
|
14
|
+
"toc": "في هذه الصفحة",
|
|
15
|
+
"report": "الإبلاغ عن مشكلة",
|
|
16
|
+
"edit": "تحرير هذه الصفحة"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "অথবা"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "পেজ কপি করুন",
|
|
8
|
+
"link": "Markdown পেজ কপি করুন",
|
|
9
|
+
"view": "Markdown হিসেবে দেখুন",
|
|
10
|
+
"gpt": "ChatGPT এ খুলুন",
|
|
11
|
+
"claude": "Claude এ খুলুন"
|
|
12
|
+
},
|
|
13
|
+
"links": "কমিউনিটি",
|
|
14
|
+
"toc": "এই পেজে",
|
|
15
|
+
"report": "সমস্যা রিপোর্ট করুন",
|
|
16
|
+
"edit": "এই পেজ সম্পাদনা করুন"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "o"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Copiar pàgina",
|
|
8
|
+
"link": "Copiar pàgina Markdown",
|
|
9
|
+
"view": "Veure com a Markdown",
|
|
10
|
+
"gpt": "Obrir a ChatGPT",
|
|
11
|
+
"claude": "Obrir a Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Comunitat",
|
|
14
|
+
"toc": "En aquesta pàgina",
|
|
15
|
+
"report": "Informar d'un problema",
|
|
16
|
+
"edit": "Editar aquesta pàgina"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "یان"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "کۆپیکردنی پەڕە",
|
|
8
|
+
"link": "کۆپیکردنی پەڕەی Markdown",
|
|
9
|
+
"view": "بینین وەک Markdown",
|
|
10
|
+
"gpt": "کردنەوە لە ChatGPT",
|
|
11
|
+
"claude": "کردنەوە لە Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "کۆمەڵگا",
|
|
14
|
+
"toc": "لەم پەڕەدا",
|
|
15
|
+
"report": "ڕاپۆرتکردنی کێشە",
|
|
16
|
+
"edit": "دەستکاریکردنی ئەم پەڕەیە"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "nebo"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopírovat stránku",
|
|
8
|
+
"link": "Kopírovat Markdown stránku",
|
|
9
|
+
"view": "Zobrazit jako Markdown",
|
|
10
|
+
"gpt": "Otevřít v ChatGPT",
|
|
11
|
+
"claude": "Otevřít v Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Komunita",
|
|
14
|
+
"toc": "Na této stránce",
|
|
15
|
+
"report": "Nahlásit problém",
|
|
16
|
+
"edit": "Upravit tuto stránku"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "eller"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopier side",
|
|
8
|
+
"link": "Kopier Markdown side",
|
|
9
|
+
"view": "Vis som Markdown",
|
|
10
|
+
"gpt": "Åbn i ChatGPT",
|
|
11
|
+
"claude": "Åbn i Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Fællesskab",
|
|
14
|
+
"toc": "På denne side",
|
|
15
|
+
"report": "Rapporter et problem",
|
|
16
|
+
"edit": "Rediger denne side"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ή"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Αντιγραφή σελίδας",
|
|
8
|
+
"link": "Αντιγραφή σελίδας Markdown",
|
|
9
|
+
"view": "Προβολή ως Markdown",
|
|
10
|
+
"gpt": "Άνοιγμα στο ChatGPT",
|
|
11
|
+
"claude": "Άνοιγμα στο Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Κοινότητα",
|
|
14
|
+
"toc": "Σε αυτή τη σελίδα",
|
|
15
|
+
"report": "Αναφορά προβλήματος",
|
|
16
|
+
"edit": "Επεξεργασία αυτής της σελίδας"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "või"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopeeri lehekülg",
|
|
8
|
+
"link": "Kopeeri Markdown lehekülg",
|
|
9
|
+
"view": "Vaata Markdownina",
|
|
10
|
+
"gpt": "Ava ChatGPT-s",
|
|
11
|
+
"claude": "Ava Claude'is"
|
|
12
|
+
},
|
|
13
|
+
"links": "Kogukond",
|
|
14
|
+
"toc": "Sellel lehel",
|
|
15
|
+
"report": "Teata probleemist",
|
|
16
|
+
"edit": "Muuda seda lehekülge"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "או"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "העתק עמוד",
|
|
8
|
+
"link": "העתק עמוד Markdown",
|
|
9
|
+
"view": "הצג כ-Markdown",
|
|
10
|
+
"gpt": "פתח ב-ChatGPT",
|
|
11
|
+
"claude": "פתח ב-Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "קהילה",
|
|
14
|
+
"toc": "בעמוד זה",
|
|
15
|
+
"report": "דווח על בעיה",
|
|
16
|
+
"edit": "ערוך עמוד זה"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "या"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "पृष्ठ कॉपी करें",
|
|
8
|
+
"link": "Markdown पृष्ठ कॉपी करें",
|
|
9
|
+
"view": "Markdown के रूप में देखें",
|
|
10
|
+
"gpt": "ChatGPT में खोलें",
|
|
11
|
+
"claude": "Claude में खोलें"
|
|
12
|
+
},
|
|
13
|
+
"links": "समुदाय",
|
|
14
|
+
"toc": "इस पृष्ठ पर",
|
|
15
|
+
"report": "समस्या की रिपोर्ट करें",
|
|
16
|
+
"edit": "इस पृष्ठ को संपादित करें"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "կամ"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Պատճենել էջը",
|
|
8
|
+
"link": "Պատճենել Markdown էջը",
|
|
9
|
+
"view": "Դիտել որպես Markdown",
|
|
10
|
+
"gpt": "Բացել ChatGPT-ում",
|
|
11
|
+
"claude": "Բացել Claude-ում"
|
|
12
|
+
},
|
|
13
|
+
"links": "Համայնք",
|
|
14
|
+
"toc": "Այս էջում",
|
|
15
|
+
"report": "Հաղորդել խնդրի մասին",
|
|
16
|
+
"edit": "Խմբագրել այս էջը"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "または"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "ページをコピー",
|
|
8
|
+
"link": "Markdownページをコピー",
|
|
9
|
+
"view": "Markdownとして表示",
|
|
10
|
+
"gpt": "ChatGPTで開く",
|
|
11
|
+
"claude": "Claudeで開く"
|
|
12
|
+
},
|
|
13
|
+
"links": "コミュニティ",
|
|
14
|
+
"toc": "このページの内容",
|
|
15
|
+
"report": "問題を報告",
|
|
16
|
+
"edit": "このページを編集"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "немесе"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Бетті көшіру",
|
|
8
|
+
"link": "Markdown бетін көшіру",
|
|
9
|
+
"view": "Markdown ретінде көру",
|
|
10
|
+
"gpt": "ChatGPT-те ашу",
|
|
11
|
+
"claude": "Claude-те ашу"
|
|
12
|
+
},
|
|
13
|
+
"links": "Қауымдастық",
|
|
14
|
+
"toc": "Осы бетте",
|
|
15
|
+
"report": "Мәселе туралы хабарлау",
|
|
16
|
+
"edit": "Осы бетті өңдеу"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ឬ"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "ចម្លងទំព័រ",
|
|
8
|
+
"link": "ចម្លងទំព័រ Markdown",
|
|
9
|
+
"view": "មើលជា Markdown",
|
|
10
|
+
"gpt": "បើកនៅ ChatGPT",
|
|
11
|
+
"claude": "បើកនៅ Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "សហគមន៍",
|
|
14
|
+
"toc": "នៅលើទំព័រនេះ",
|
|
15
|
+
"report": "រាយការណ៍បញ្ហា",
|
|
16
|
+
"edit": "កែសម្រួលទំព័រនេះ"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "또는"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "페이지 복사",
|
|
8
|
+
"link": "Markdown 페이지 복사",
|
|
9
|
+
"view": "Markdown으로 보기",
|
|
10
|
+
"gpt": "ChatGPT에서 열기",
|
|
11
|
+
"claude": "Claude에서 열기"
|
|
12
|
+
},
|
|
13
|
+
"links": "커뮤니티",
|
|
14
|
+
"toc": "이 페이지에서",
|
|
15
|
+
"report": "문제 신고",
|
|
16
|
+
"edit": "이 페이지 편집"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "же"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Баракты көчүрүү",
|
|
8
|
+
"link": "Markdown барагын көчүрүү",
|
|
9
|
+
"view": "Markdown катары көрүү",
|
|
10
|
+
"gpt": "ChatGPT'те ачуу",
|
|
11
|
+
"claude": "Claude'да ачуу"
|
|
12
|
+
},
|
|
13
|
+
"links": "Коом",
|
|
14
|
+
"toc": "Бул барактта",
|
|
15
|
+
"report": "Көйгөй туурасында кабарлоо",
|
|
16
|
+
"edit": "Бул баракты түзөтүү"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "oder"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Säit kopéieren",
|
|
8
|
+
"link": "Markdown Säit kopéieren",
|
|
9
|
+
"view": "Als Markdown kucken",
|
|
10
|
+
"gpt": "An ChatGPT opmaachen",
|
|
11
|
+
"claude": "An Claude opmaachen"
|
|
12
|
+
},
|
|
13
|
+
"links": "Gemeinschaft",
|
|
14
|
+
"toc": "Op dëser Säit",
|
|
15
|
+
"report": "Problem mellen",
|
|
16
|
+
"edit": "Dës Säit änneren"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "atau"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Salin halaman",
|
|
8
|
+
"link": "Salin halaman Markdown",
|
|
9
|
+
"view": "Lihat sebagai Markdown",
|
|
10
|
+
"gpt": "Buka di ChatGPT",
|
|
11
|
+
"claude": "Buka di Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Komuniti",
|
|
14
|
+
"toc": "Dalam halaman ini",
|
|
15
|
+
"report": "Laporkan masalah",
|
|
16
|
+
"edit": "Edit halaman ini"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "eller"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopier side",
|
|
8
|
+
"link": "Kopier Markdown-side",
|
|
9
|
+
"view": "Vis som Markdown",
|
|
10
|
+
"gpt": "Åpne i ChatGPT",
|
|
11
|
+
"claude": "Åpne i Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Fellesskap",
|
|
14
|
+
"toc": "På denne siden",
|
|
15
|
+
"report": "Rapporter et problem",
|
|
16
|
+
"edit": "Rediger denne siden"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "ali"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopiraj stran",
|
|
8
|
+
"link": "Kopiraj Markdown stran",
|
|
9
|
+
"view": "Prikaži kot Markdown",
|
|
10
|
+
"gpt": "Odpri v ChatGPT",
|
|
11
|
+
"claude": "Odpri v Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Skupnost",
|
|
14
|
+
"toc": "Na tej strani",
|
|
15
|
+
"report": "Prijavi težavo",
|
|
16
|
+
"edit": "Uredi to stran"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "eller"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Kopiera sida",
|
|
8
|
+
"link": "Kopiera Markdown-sida",
|
|
9
|
+
"view": "Visa som Markdown",
|
|
10
|
+
"gpt": "Öppna i ChatGPT",
|
|
11
|
+
"claude": "Öppna i Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Gemenskap",
|
|
14
|
+
"toc": "På denna sida",
|
|
15
|
+
"report": "Rapportera ett problem",
|
|
16
|
+
"edit": "Redigera denna sida"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "або"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Скопіювати сторінку",
|
|
8
|
+
"link": "Скопіювати Markdown сторінку",
|
|
9
|
+
"view": "Переглянути як Markdown",
|
|
10
|
+
"gpt": "Відкрити в ChatGPT",
|
|
11
|
+
"claude": "Відкрити в Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Спільнота",
|
|
14
|
+
"toc": "На цій сторінці",
|
|
15
|
+
"report": "Повідомити про проблему",
|
|
16
|
+
"edit": "Редагувати цю сторінку"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "یا"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "صفحہ کاپی کریں",
|
|
8
|
+
"link": "Markdown صفحہ کاپی کریں",
|
|
9
|
+
"view": "Markdown کے طور پر دیکھیں",
|
|
10
|
+
"gpt": "ChatGPT میں کھولیں",
|
|
11
|
+
"claude": "Claude میں کھولیں"
|
|
12
|
+
},
|
|
13
|
+
"links": "کمیونٹی",
|
|
14
|
+
"toc": "اس صفحے پر",
|
|
15
|
+
"report": "مسئلہ کی اطلاع دیں",
|
|
16
|
+
"edit": "اس صفحے کو ترمیم کریں"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"or": "hoặc"
|
|
4
|
+
},
|
|
5
|
+
"docs": {
|
|
6
|
+
"copy": {
|
|
7
|
+
"page": "Sao chép trang",
|
|
8
|
+
"link": "Sao chép trang Markdown",
|
|
9
|
+
"view": "Xem dưới dạng Markdown",
|
|
10
|
+
"gpt": "Mở trong ChatGPT",
|
|
11
|
+
"claude": "Mở trong Claude"
|
|
12
|
+
},
|
|
13
|
+
"links": "Cộng đồng",
|
|
14
|
+
"toc": "Trên trang này",
|
|
15
|
+
"report": "Báo cáo sự cố",
|
|
16
|
+
"edit": "Chỉnh sửa trang này"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineNuxtModule } from '@nuxt/kit'
|
|
1
|
+
import { createResolver, defineNuxtModule } from '@nuxt/kit'
|
|
2
2
|
import { defu } from 'defu'
|
|
3
3
|
import { inferSiteURL, getPackageJsonMetadata } from '../utils/meta'
|
|
4
4
|
import { getGitBranch, getGitEnv, getLocalGitInfo } from '../utils/git'
|
|
@@ -60,6 +60,29 @@ export default defineNuxtModule({
|
|
|
60
60
|
...nuxt.options.i18n,
|
|
61
61
|
strategy: 'prefix',
|
|
62
62
|
}
|
|
63
|
+
|
|
64
|
+
nuxt.hook('i18n:registerModule', (register) => {
|
|
65
|
+
const { resolve } = createResolver(import.meta.url)
|
|
66
|
+
|
|
67
|
+
const locales = nuxt.options.i18n?.locales?.map((locale) => {
|
|
68
|
+
return typeof locale === 'string'
|
|
69
|
+
? {
|
|
70
|
+
code: locale,
|
|
71
|
+
name: locale,
|
|
72
|
+
file: `${locale}.json`,
|
|
73
|
+
}
|
|
74
|
+
: {
|
|
75
|
+
code: locale.code,
|
|
76
|
+
name: locale.name || locale.code,
|
|
77
|
+
file: `${locale.code}.json`,
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
register({
|
|
82
|
+
langDir: resolve('../i18n/locales'),
|
|
83
|
+
locales,
|
|
84
|
+
})
|
|
85
|
+
})
|
|
63
86
|
}
|
|
64
87
|
},
|
|
65
88
|
})
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { defineNuxtModule, extendPages, createResolver, addImports } from '@nuxt/kit'
|
|
2
|
+
|
|
3
|
+
export default defineNuxtModule({
|
|
4
|
+
meta: {
|
|
5
|
+
name: 'routing',
|
|
6
|
+
},
|
|
7
|
+
async setup(_options, nuxt) {
|
|
8
|
+
const { resolve } = createResolver(import.meta.url)
|
|
9
|
+
|
|
10
|
+
const isI18nEnabled = !!(nuxt.options.i18n && nuxt.options.i18n.locales)
|
|
11
|
+
|
|
12
|
+
// Ensure useDocusI18n is available in the template page
|
|
13
|
+
addImports({
|
|
14
|
+
name: 'useDocusI18n',
|
|
15
|
+
from: resolve('../app/composables/useDocusI18n'),
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
extendPages((pages) => {
|
|
19
|
+
const landingTemplate = resolve('../app/templates/landing.vue')
|
|
20
|
+
|
|
21
|
+
if (isI18nEnabled) {
|
|
22
|
+
pages.push({
|
|
23
|
+
name: 'lang-index',
|
|
24
|
+
path: '/:lang?',
|
|
25
|
+
file: landingTemplate,
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
pages.push({
|
|
30
|
+
name: 'index',
|
|
31
|
+
path: '/',
|
|
32
|
+
file: landingTemplate,
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
},
|
|
37
|
+
})
|
package/nuxt.config.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { extendViteConfig, createResolver } from '@nuxt/kit'
|
|
1
|
+
import { extendViteConfig, createResolver, useNuxt } from '@nuxt/kit'
|
|
2
2
|
|
|
3
3
|
const { resolve } = createResolver(import.meta.url)
|
|
4
4
|
|
|
5
5
|
export default defineNuxtConfig({
|
|
6
6
|
modules: [
|
|
7
7
|
resolve('./modules/default-configs'),
|
|
8
|
+
resolve('./modules/routing'),
|
|
8
9
|
'@nuxt/ui-pro',
|
|
9
10
|
'@nuxt/content',
|
|
10
11
|
'@nuxt/image',
|
|
@@ -38,12 +39,30 @@ export default defineNuxtConfig({
|
|
|
38
39
|
compatibilityDate: '2025-07-22',
|
|
39
40
|
nitro: {
|
|
40
41
|
prerender: {
|
|
41
|
-
routes: ['/'],
|
|
42
42
|
crawlLinks: true,
|
|
43
43
|
failOnError: false,
|
|
44
44
|
autoSubfolderIndex: false,
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
|
+
hooks: {
|
|
48
|
+
'nitro:config'(nitroConfig) {
|
|
49
|
+
const nuxt = useNuxt()
|
|
50
|
+
|
|
51
|
+
const i18nOptions = nuxt.options.i18n
|
|
52
|
+
|
|
53
|
+
const routes: string[] = []
|
|
54
|
+
if (!i18nOptions) {
|
|
55
|
+
routes.push('/')
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
routes.push(...(i18nOptions.locales?.map(locale => typeof locale === 'string' ? `/${locale}` : `/${locale.code}`) || []))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
nitroConfig.prerender = nitroConfig.prerender || {}
|
|
62
|
+
nitroConfig.prerender.routes = nitroConfig.prerender.routes || []
|
|
63
|
+
nitroConfig.prerender.routes.push(...(routes || []))
|
|
64
|
+
},
|
|
65
|
+
},
|
|
47
66
|
icon: {
|
|
48
67
|
provider: 'iconify',
|
|
49
68
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docus",
|
|
3
3
|
"description": "Nuxt layer for Docus documentation theme",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.3",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./nuxt.config.ts",
|
|
7
7
|
"repository": {
|
|
@@ -22,28 +22,27 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@iconify-json/lucide": "^1.2.
|
|
26
|
-
"@iconify-json/simple-icons": "^1.2.
|
|
27
|
-
"@iconify-json/vscode-icons": "^1.2.
|
|
25
|
+
"@iconify-json/lucide": "^1.2.60",
|
|
26
|
+
"@iconify-json/simple-icons": "^1.2.46",
|
|
27
|
+
"@iconify-json/vscode-icons": "^1.2.24",
|
|
28
28
|
"@nuxt/content": "^3.6.3",
|
|
29
|
-
"@nuxt/image": "^1.
|
|
30
|
-
"@nuxt/kit": "^4.0.
|
|
29
|
+
"@nuxt/image": "^1.11.0",
|
|
30
|
+
"@nuxt/kit": "^4.0.3",
|
|
31
31
|
"@nuxt/ui-pro": "^3.3.0",
|
|
32
|
-
"@nuxtjs/i18n": "^
|
|
32
|
+
"@nuxtjs/i18n": "^10.0.3",
|
|
33
33
|
"@nuxtjs/mdc": "^0.17.2",
|
|
34
34
|
"@nuxtjs/robots": "^5.4.0",
|
|
35
|
-
"@vueuse/core": "^13.
|
|
35
|
+
"@vueuse/core": "^13.6.0",
|
|
36
36
|
"defu": "^6.1.4",
|
|
37
37
|
"git-url-parse": "^16.1.0",
|
|
38
38
|
"minimark": "^0.2.0",
|
|
39
|
-
"motion-v": "^1.
|
|
39
|
+
"motion-v": "^1.7.0",
|
|
40
40
|
"nuxt-llms": "^0.1.3",
|
|
41
41
|
"nuxt-og-image": "^5.1.9",
|
|
42
42
|
"pkg-types": "^2.2.0",
|
|
43
43
|
"scule": "^1.3.0",
|
|
44
44
|
"tailwindcss": "^4.1.11",
|
|
45
|
-
"ufo": "^1.6.1"
|
|
46
|
-
"unist-util-visit": "^5.0.0"
|
|
45
|
+
"ufo": "^1.6.1"
|
|
47
46
|
},
|
|
48
47
|
"peerDependencies": {
|
|
49
48
|
"better-sqlite3": "12.x",
|
package/i18n/i18n.config.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export default defineI18nConfig(async () => {
|
|
2
|
-
const config = useRuntimeConfig().public
|
|
3
|
-
|
|
4
|
-
const messages: Record<string, Record<string, never>> = {}
|
|
5
|
-
await Promise.all(
|
|
6
|
-
config.i18n.locales.map(async (locale) => {
|
|
7
|
-
const localeFile = await import(`./locales/${locale.code}.json`)
|
|
8
|
-
messages[locale.code] = localeFile.default
|
|
9
|
-
}),
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
messages,
|
|
14
|
-
}
|
|
15
|
-
})
|