index.ts 1014 B

12345678910111213141516171819202122232425262728293031323334
  1. import DefaultTheme from 'vitepress/theme'
  2. import { inBrowser, useRouter } from 'vitepress'
  3. import { onMounted } from 'vue'
  4. import './custom.css'
  5. export default {
  6. extends: DefaultTheme,
  7. setup() {
  8. const router = useRouter()
  9. onMounted(() => {
  10. if (!inBrowser) {
  11. return
  12. }
  13. const path = window.location.pathname.replace(/\/index\.html$/, '/')
  14. const isDocsRoot = path === '/' || path === ''
  15. if (!isDocsRoot || window.location.search.includes('no_lang_redirect=1')) {
  16. return
  17. }
  18. const languages = navigator.languages?.length
  19. ? navigator.languages
  20. : [navigator.language].filter(Boolean)
  21. const prefersChinese = languages.some(language => language.toLowerCase().startsWith('zh'))
  22. const redirected = window.sessionStorage.getItem('flyfish-docs-lang-redirect')
  23. if (!prefersChinese && !redirected) {
  24. window.sessionStorage.setItem('flyfish-docs-lang-redirect', 'en')
  25. router.go('/en/')
  26. }
  27. })
  28. }
  29. }