2626 <slot :isTargetIDE =" isTargetIDE" >
2727 <router-view class =" router-content" />
2828 <custom-footer v-if =" hasCustomFooter" :data-color-scheme =" preferredColorScheme" />
29- <Footer v-else-if =" !isTargetIDE" :enablei18n =" enablei18n" />
29+ <Footer v-else-if =" !isTargetIDE" >
30+ <template #default =" { className } " >
31+ <div v-if =" enablei18n" :class =" className" >
32+ <LocaleSelector />
33+ </div >
34+ </template >
35+ </Footer >
3036 </slot >
3137 <slot name =" footer" :isTargetIDE =" isTargetIDE" />
3238 </div >
@@ -42,13 +48,15 @@ import { fetchThemeSettings, themeSettingsState, getSetting } from 'docc-render/
4248import { objectToCustomProperties } from ' docc-render/utils/themes' ;
4349import { AppTopID } from ' docc-render/constants/AppTopID' ;
4450import SuggestLang from ' docc-render/components/SuggestLang.vue' ;
51+ import LocaleSelector from ' docc-render/components/LocaleSelector.vue' ;
4552
4653export default {
4754 name: ' CoreApp' ,
4855 components: {
4956 Footer,
5057 InitialLoadingPlaceholder,
5158 SuggestLang,
59+ LocaleSelector,
5260 },
5361 provide () {
5462 return {
@@ -69,6 +77,7 @@ export default {
6977 computed: {
7078 currentColorScheme : ({ appState }) => appState .systemColorScheme ,
7179 preferredColorScheme : ({ appState }) => appState .preferredColorScheme ,
80+ availableLocales : ({ appState }) => appState .availableLocales ,
7281 CSSCustomProperties: ({
7382 currentColorScheme,
7483 preferredColorScheme,
@@ -85,7 +94,9 @@ export default {
8594 ),
8695 hasCustomHeader : () => !! window .customElements .get (' custom-header' ),
8796 hasCustomFooter : () => !! window .customElements .get (' custom-footer' ),
88- enablei18n : () => getSetting ([' features' , ' docs' , ' i18n' , ' enable' ], false ),
97+ enablei18n : ({ availableLocales }) => (
98+ getSetting ([' features' , ' docs' , ' i18n' , ' enable' ], false ) && availableLocales .length > 1
99+ ),
89100 },
90101 props: {
91102 enableThemeSettings: {
0 commit comments