fix(theme): add lang and dir attributes to language picker

pull/4532/merge
Divyansh Singh 2 weeks ago
parent 2e4978e3ad
commit f0b29d7ef3

@ -124,13 +124,13 @@ export default defineConfig({
}, },
locales: { locales: {
root: { label: 'English' }, root: { label: 'English', lang: 'en-US', dir: 'ltr' },
zh: { label: '简体中文' }, zh: { label: '简体中文', lang: 'zh-Hans', dir: 'ltr' },
pt: { label: 'Português' }, pt: { label: 'Português', lang: 'pt-BR', dir: 'ltr' },
ru: { label: 'Русский' }, ru: { label: 'Русский', lang: 'ru-RU', dir: 'ltr' },
es: { label: 'Español' }, es: { label: 'Español', lang: 'es-CO', dir: 'ltr' },
ko: { label: '한국어' }, ko: { label: '한국어', lang: 'ko-KR', dir: 'ltr' },
fa: { label: 'فارسی' } fa: { label: 'فارسی', lang: 'fa-IR', dir: 'rtl' }
}, },
vite: { vite: {

@ -5,7 +5,6 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'es-CO',
description: 'Generador de Sitios Estáticos desarrollado con Vite y Vue.', description: 'Generador de Sitios Estáticos desarrollado con Vite y Vue.',
themeConfig: { themeConfig: {

@ -5,9 +5,7 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'fa-IR',
description: 'ژنراتور استاتیک وب‌سایت با Vite و Vue', description: 'ژنراتور استاتیک وب‌سایت با Vite و Vue',
dir: 'rtl',
// prettier-ignore // prettier-ignore
head: [ head: [

@ -5,7 +5,6 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'ko-KR',
description: 'Vite 및 Vue 기반 정적 사이트 생성기.', description: 'Vite 및 Vue 기반 정적 사이트 생성기.',
themeConfig: { themeConfig: {

@ -5,7 +5,6 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'pt-BR',
description: 'Gerador de Site Estático desenvolvido com Vite e Vue.', description: 'Gerador de Site Estático desenvolvido com Vite e Vue.',
themeConfig: { themeConfig: {

@ -5,7 +5,6 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'ru-RU',
description: 'Генератор статических сайтов на основе Vite и Vue.', description: 'Генератор статических сайтов на основе Vite и Vue.',
themeConfig: { themeConfig: {

@ -5,7 +5,6 @@ const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json') const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({ export default defineAdditionalConfig({
lang: 'zh-Hans',
description: '由 Vite 和 Vue 驱动的静态站点生成器', description: '由 Vite 和 Vue 驱动的静态站点生成器',
themeConfig: { themeConfig: {

@ -9,11 +9,14 @@ defineProps<{
}>() }>()
const { page } = useData() const { page } = useData()
defineOptions({ inheritAttrs: false })
</script> </script>
<template> <template>
<div class="VPMenuLink"> <div class="VPMenuLink">
<VPLink <VPLink
v-bind="$attrs"
:class="{ :class="{
active: isActive( active: isActive(
page.relativePath, page.relativePath,
@ -46,6 +49,7 @@ const { page } = useData()
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
color: var(--vp-c-text-1); color: var(--vp-c-text-1);
text-align: left;
white-space: nowrap; white-space: nowrap;
transition: transition:
background-color 0.25s, background-color 0.25s,

@ -31,7 +31,7 @@ const hasExtraContent = computed(
<p class="trans-title">{{ currentLang.label }}</p> <p class="trans-title">{{ currentLang.label }}</p>
<template v-for="locale in localeLinks" :key="locale.link"> <template v-for="locale in localeLinks" :key="locale.link">
<VPMenuLink :item="locale" /> <VPMenuLink :item="locale" :lang="locale.lang" :dir="locale.dir" />
</template> </template>
</div> </div>

@ -19,7 +19,7 @@ const { localeLinks, currentLang } = useLangs({ correspondingLink: true })
<p class="title">{{ currentLang.label }}</p> <p class="title">{{ currentLang.label }}</p>
<template v-for="locale in localeLinks" :key="locale.link"> <template v-for="locale in localeLinks" :key="locale.link">
<VPMenuLink :item="locale" /> <VPMenuLink :item="locale" :lang="locale.lang" :dir="locale.dir" />
</template> </template>
</div> </div>
</VPFlyout> </VPFlyout>

@ -25,7 +25,14 @@ function toggle() {
<ul class="list"> <ul class="list">
<li v-for="locale in localeLinks" :key="locale.link" class="item"> <li v-for="locale in localeLinks" :key="locale.link" class="item">
<VPLink class="link" :href="locale.link">{{ locale.text }}</VPLink> <VPLink
class="link"
:href="locale.link"
:lang="locale.lang"
:dir="locale.dir"
>
{{ locale.text }}
</VPLink>
</li> </li>
</ul> </ul>
</div> </div>

@ -25,7 +25,9 @@ export function useLangs({ correspondingLink = false } = {}) {
currentLang.value.link.length - 1 currentLang.value.link.length - 1
), ),
!site.value.cleanUrls !site.value.cleanUrls
) + hash.value ) + hash.value,
lang: value.lang,
dir: value.dir
} }
) )
) )

Loading…
Cancel
Save