Skip to content
This repository was archived by the owner on Mar 5, 2021. It is now read-only.

Commit ed8565c

Browse files
committed
Automatically detect browser language
1 parent e49e772 commit ed8565c

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

Diff for: src/index.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,20 @@ let pages: { [languageCode: string]: { [categoryName: string]: Category } } = nu
3737
let pageContents: { [languageCode: string]: { [categoryName: string]: { [pageName: string]: string } } } = null;
3838

3939
app.get("/", (req, res) => {
40-
const firstCategoryName = Object.keys(pages["en"])[0];
41-
const firstCategory = pages["en"][firstCategoryName];
42-
res.redirect(`/en/${firstCategoryName}/${firstCategory.pages[Object.keys(firstCategory.pages)[0]].name}`);
40+
let languageCode = req.header("Accept-Language");
41+
42+
if (languageCode != null) {
43+
languageCode = languageCode.split(",")[0];
44+
if (languages[languageCode] == null && languageCode.indexOf("-") !== -1) {
45+
languageCode = languageCode.split("-")[0];
46+
}
47+
}
48+
49+
if (languages[languageCode] == null) languageCode = "en";
50+
51+
const firstCategoryName = Object.keys(pages[languageCode])[0];
52+
const firstCategory = pages[languageCode][firstCategoryName];
53+
res.redirect(`/${languageCode}/${firstCategoryName}/${firstCategory.pages[Object.keys(firstCategory.pages)[0]].name}`);
4354
});
4455
app.use(express.static(`${__dirname}/../public`));
4556

0 commit comments

Comments
 (0)