Skip to content

Commit 7cc6684

Browse files
i18n for static 503 error page
1 parent b8999a0 commit 7cc6684

1 file changed

Lines changed: 40 additions & 5 deletions

File tree

public/maintenance.html

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626

2727
<main class="error-view">
2828

29-
<h1 class="error-view__title">
29+
<h1 class="error-view__title" id="h1">
3030
Une erreur est survenue.
3131
</h1>
3232

33-
<h3 class="error-view__code">
34-
<span class="error-view__label">Erreur</span>
33+
<h3 class="error-view__code" id="h3-wrapper">
34+
<span class="error-view__label" id="h3">Erreur</span>
3535
<span class="error-view__code-value">503</span>
3636
</h3>
3737

@@ -51,11 +51,11 @@ <h3 class="error-view__code">
5151
aria-label="Une équipe technique s'affairant autour d'un écran en maintenance" />
5252
</div>
5353

54-
<h4 class="maintenance-error__title">
54+
<h4 class="maintenance-error__title" id="h4">
5555
Casques obligatoires !
5656
</h4>
5757

58-
<h5 class="maintenance-error__subtitle">
58+
<h5 class="maintenance-error__subtitle" id="h5">
5959
On laisse sécher le code et on revient vite...
6060
</h5>
6161

@@ -65,6 +65,41 @@ <h5 class="maintenance-error__subtitle">
6565

6666
</main>
6767

68+
<script>
69+
const translations = {
70+
fr: {
71+
title: "Une erreur est survenue.",
72+
label: "Erreur",
73+
subtitle: "Casques obligatoires !",
74+
message: "On laisse sécher le code et on revient vite...",
75+
ariaLabel: "Une équipe technique s'affairant autour d'un écran en maintenance"
76+
},
77+
en: {
78+
title: "An error has occurred.",
79+
label: "Error",
80+
subtitle: "Helmets are needed !",
81+
message: "We'll let the code dry and we'll be back soon...",
82+
ariaLabel: "A technical team working on a screen undergoing maintenance"
83+
}
84+
};
85+
86+
const userLang = navigator.language || navigator.userLanguage;
87+
const lang = userLang.startsWith('en') ? 'en' : 'fr';
88+
89+
document.getElementById('h1').innerText = translations[lang].title;
90+
document.getElementById('h3').innerText = translations[lang].label;
91+
document.getElementById('h4').innerText = translations[lang].subtitle;
92+
document.getElementById('h5').innerText = translations[lang].message;
93+
94+
document.getElementById('lottie').setAttribute('aria-label', translations[lang].ariaLabel);
95+
96+
if (lang === 'en') {
97+
document.getElementById('h3-wrapper').style.flexDirection = 'row-reverse';
98+
}
99+
100+
document.documentElement.lang = lang;
101+
</script>
102+
68103
<script>
69104
setInterval(async () => {
70105
try {

0 commit comments

Comments
 (0)