diff --git a/layouts/partials/GetMenu b/layouts/partials/GetMenu
new file mode 100644
index 0000000000000000000000000000000000000000..f743ee705db93df4dc4802fa7cd5249becd12a34
--- /dev/null
+++ b/layouts/partials/GetMenu
@@ -0,0 +1,13 @@
+{{ $kind := . }}
+{{ $menus := index site.Data.menus (printf "%s" site.Language) }}
+{{ $menu := "" }}
+// Try to get menus from the data/menus/<lang> directory
+{{ if (and $menus (isset $menus $kind)) }}
+  // Menu found in data/menus/<lang>
+  {{ $menu = index $menus $kind }}
+{{ else }}
+  // Fallback to menu in the data/menus directory
+  {{ $menu = index site.Data.menus $kind }}
+{{ end }}
+
+{{ return $menu }}
\ No newline at end of file
diff --git a/layouts/partials/commons/lang-switch.html b/layouts/partials/commons/lang-switch.html
new file mode 100644
index 0000000000000000000000000000000000000000..7c95fe1fd1e1b58d0c0aab1df2ca4d38054b6eef
--- /dev/null
+++ b/layouts/partials/commons/lang-switch.html
@@ -0,0 +1,18 @@
+{{ $page := . }}
+{{ $siteLang := "" }}
+{{ $url := "" }}
+{{ with site.Languages }}
+  <ul>
+    {{ range site.Languages }}
+      {{/*  .Lang  */}}
+      {{ $siteLang := . }}
+      {{ $url = printf "/%s/" .Lang }}
+      {{ range $page.Translations }}
+        {{ if eq .Lang $siteLang.Lang }}
+          {{ $url = .Permalink }}
+        {{ end }}
+      {{ end }}
+      <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li>
+    {{ end }}
+  </ul>
+{{ end }}
diff --git a/layouts/partials/commons/menu.html b/layouts/partials/commons/menu.html
index 767c06198974698a0b7d258c95fbfa6f82b01cdb..34174849906e043685fb9b70e9f06fa0a4bc4228 100644
--- a/layouts/partials/commons/menu.html
+++ b/layouts/partials/commons/menu.html
@@ -1,3 +1,8 @@
+{{- $kind := .kind -}}
+{{ $items := .items }}
+{{ if $kind }}
+  {{ $items = partial "GetMenu" $kind }}
+{{ end }}
 {{- $level := .level -}}
 {{- $stop := .stop -}}
 {{- $dropdown := .dropdown }}
@@ -7,7 +12,7 @@
 {{- end -}}
 {{ $extern_link := i18n "commons.link.blank" }}
 <ul class="{{ $ulClass }}{{ if $level }}nav-level-{{ $level }}{{ end }}">
-  {{ range .items -}}
+  {{ range $items -}}
     {{- $slug := urlize .title -}}
     {{- $itemClass := "" -}}
     {{- $linkClass := "" -}}
diff --git a/layouts/partials/footer/footer-simple.html b/layouts/partials/footer/footer-simple.html
index 01a5b6e083a726ef62af92d8bf930c8fa19bd452..2973a1cb4d03602185e38de51f42038e5f6cdfd9 100644
--- a/layouts/partials/footer/footer-simple.html
+++ b/layouts/partials/footer/footer-simple.html
@@ -6,6 +6,7 @@
     {{ partial "footer/site.html" }}
   </div>
 </div>
+{{ partial "footer/i18n.html" }}
 <div class="container">
   <div class="footer-social">
     {{ partial "footer/social.html" }}
diff --git a/layouts/partials/footer/footer.html b/layouts/partials/footer/footer.html
index 21183ce4fba865f7ba6c361de74049d086968d96..c736c8a8ae42a3d5189070e3571a2bbafb64164a 100644
--- a/layouts/partials/footer/footer.html
+++ b/layouts/partials/footer/footer.html
@@ -1,3 +1,3 @@
 <footer id="document-footer">
-  {{ partial "footer/footer-simple.html" }}
+  {{ partial "footer/footer-simple.html" . }}
 </footer>
diff --git a/layouts/partials/footer/i18n.html b/layouts/partials/footer/i18n.html
new file mode 100644
index 0000000000000000000000000000000000000000..718145da846cb9da95cc708a784ed9deee8ad6bc
--- /dev/null
+++ b/layouts/partials/footer/i18n.html
@@ -0,0 +1,22 @@
+{{ $page := . }}
+{{ $siteLang := "" }}
+{{ $url := "" }}
+
+<div class="container">
+  <div class="footer-i18n">
+    {{ with site.Languages }}
+      <ul class="small">
+        {{ range site.Languages }}
+          {{ $siteLang := . }}
+          {{ $url = printf "/%s/" .Lang }}
+          {{ range $page.Translations }}
+            {{ if eq .Lang $siteLang.Lang }}
+              {{ $url = .Permalink }}
+            {{ end }}
+          {{ end }}
+          <li><a href="{{ $url }}">{{ $siteLang.LanguageName }}</a></li>
+        {{ end }}
+      </ul>
+    {{ end }}
+  </div>
+</div>
diff --git a/layouts/partials/header/header.html b/layouts/partials/header/header.html
index a37e6b1fd9f9681a3bf26540c4770d2acdd7c543..c047b7019fe3ac588a3fb0c3c07a3dd829209c30 100644
--- a/layouts/partials/header/header.html
+++ b/layouts/partials/header/header.html
@@ -2,17 +2,16 @@
   <nav aria-label="{{ i18n "commons.menu.main" }}">
     <div class="container">
       {{ partial "header/logo.html" }}
-      {{ if isset site.Data.menus "primary"}}
-        {{ partial "header/button.html" }}
-        <div class="menu" id="navigation">
-          {{ partial "commons/menu.html"
-                (dict
-                  "items" site.Data.menus.primary
-                  "dropdown" true
-                  "level" 1
-                )}}
-        </div>
-      {{ end }}
+      {{ $menu := partial "GetMenu" "primary" }}
+      {{ partial "header/button.html" }}
+      <div class="menu" id="navigation">
+        {{ partial "commons/menu.html"
+            (dict
+              "kind" "primary"
+              "dropdown" true
+              "level" 1
+            ) }}
+      </div>
     </div>
   </nav>
 </header>