diff --git a/src/config/config.json b/src/config/config.json
index d3b4957..382577f 100755
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -20,7 +20,8 @@
"pagination": 2,
"summary_length": 200,
"blog_folder": "blog",
- "default_language": "en"
+ "default_language": "en",
+ "disable_languages": []
},
"params": {
diff --git a/src/layouts/components/Logo.astro b/src/layouts/components/Logo.astro
index c3ec2d0..0c7e59b 100644
--- a/src/layouts/components/Logo.astro
+++ b/src/layouts/components/Logo.astro
@@ -25,7 +25,15 @@ const { theme_switcher }: { theme_switcher: boolean } = config.settings;
const { default_language } = config.settings;
const { trailing_slash } = config.site;
-const lang = getLangFromUrl(Astro.url);
+let lang = getLangFromUrl(Astro.url);
+
+// Check if the current language is disabled
+const disabledLanguages = config.settings.disable_languages as string[];
+if (disabledLanguages.includes(lang)) {
+ // Redirect to the default language or handle as per your application logic
+ lang = default_language;
+}
+
const url = constructUrl("/", lang, default_language, trailing_slash);
---
diff --git a/src/layouts/helpers/LanguageSwitcher.tsx b/src/layouts/helpers/LanguageSwitcher.tsx
index 0d74e3b..feb601b 100644
--- a/src/layouts/helpers/LanguageSwitcher.tsx
+++ b/src/layouts/helpers/LanguageSwitcher.tsx
@@ -19,8 +19,10 @@ const LanguageSwitcher = ({
return path;
};
- // Sort languages by weight
- const sortedLanguages = languages.sort((a, b) => a.weight - b.weight);
+ // Sort languages by weight and filter out disabled languages
+ const sortedLanguages = languages
+ .filter(language => !config.settings.disable_languages.includes(language.languageCode))
+ .sort((a, b) => a.weight - b.weight);
return (
@@ -53,4 +55,4 @@ const LanguageSwitcher = ({
);
};
-export default LanguageSwitcher;
+export default LanguageSwitcher;
\ No newline at end of file
diff --git a/src/layouts/partials/Footer.astro b/src/layouts/partials/Footer.astro
index ecae36d..4c63215 100755
--- a/src/layouts/partials/Footer.astro
+++ b/src/layouts/partials/Footer.astro
@@ -3,14 +3,17 @@ import Logo from "@/components/Logo.astro";
import Social from "@/components/Social.astro";
import config from "@/config/config.json";
import social from "@/config/social.json";
-import { getLangFromUrl } from "@/lib/utils/i18nUtils";
-import { loadMenu } from "@/lib/utils/loadMenu";
+import { getLangFromUrl, getTranslations } from "@/lib/utils/i18nUtils";
import { markdownify } from "@/lib/utils/textConverter";
+import type { ContentEntryMap } from "astro:content";
import { getRelativeLocaleUrl } from "astro:i18n";
const lang = getLangFromUrl(Astro.url);
-const menu = loadMenu(lang);
-const { footer }: { footer: { name: string; url: string }[] } = menu;
+const menu = await getTranslations(lang as keyof ContentEntryMap);
+let footer: any = [];
+if (menu) {
+ footer = menu.footer;
+}
---