Implement RSS localization
This commit is contained in:
parent
506c0203d9
commit
25c6fdd4d4
10 changed files with 136 additions and 44 deletions
|
|
@ -1,23 +1,22 @@
|
|||
function get_data() {
|
||||
return {
|
||||
pt: {
|
||||
posts: [
|
||||
"pt": {
|
||||
"posts": [
|
||||
{
|
||||
title: "Scripts em OCaml",
|
||||
slug: "scripts-em-ocaml",
|
||||
date: "23/03/2024",
|
||||
},
|
||||
"title": "Scripts em OCaml",
|
||||
"slug": "scripts-em-ocaml",
|
||||
"date": "23/03/2024"
|
||||
}
|
||||
]
|
||||
},
|
||||
en: {
|
||||
posts: [
|
||||
"en": {
|
||||
"posts": [
|
||||
{
|
||||
title: "Hello, Worldling",
|
||||
slug: "hello-worldling",
|
||||
date: "May 20, 2024",
|
||||
},
|
||||
"title": "Hello, Worldling",
|
||||
"slug": "hello-worldling",
|
||||
"date": "May 20, 2024"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
const data = get_data()
|
||||
const post_list = document.getElementById('posts')
|
||||
|
||||
const userLang = navigator.language || navigator.userLanguage
|
||||
let lang = userLang.includes('pt') ? 'pt' : 'en'
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
function populate_posts() {
|
||||
data[lang].posts.forEach(post => {
|
||||
const posts = document.getElementById('nav-posts')
|
||||
posts.innerHTML = ''
|
||||
const item = document.createElement('li')
|
||||
const anchor = document.createElement('a')
|
||||
const date = document.createElement('span')
|
||||
|
|
@ -14,9 +15,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||
date.innerText = `${parse_date(post.date)} - `
|
||||
item.appendChild(date)
|
||||
item.appendChild(anchor)
|
||||
post_list.appendChild(item)
|
||||
posts.appendChild(item)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function parse_date(date) {
|
||||
current_year = new Date().getFullYear()
|
||||
|
|
@ -24,3 +25,35 @@ function parse_date(date) {
|
|||
.replace(`/${current_year}`, '')
|
||||
}
|
||||
|
||||
function localize_menu() {
|
||||
const home = document.getElementById('nav-menu-home')
|
||||
const rss = document.getElementById('nav-menu-rss')
|
||||
|
||||
if (lang == 'pt') {
|
||||
home.innerText='Início'
|
||||
rss.setAttribute('href', 'pt.rss')
|
||||
} else {
|
||||
home.innerText='Home'
|
||||
rss.setAttribute('href', 'en.rss')
|
||||
}
|
||||
}
|
||||
|
||||
const en_lang_swapper = document.getElementById('lang-swap-en')
|
||||
const pt_lang_swapper = document.getElementById('lang-swap-pt')
|
||||
|
||||
en_lang_swapper.addEventListener("click", () => {
|
||||
lang = 'en'
|
||||
populate_posts()
|
||||
localize_menu()
|
||||
})
|
||||
|
||||
pt_lang_swapper.addEventListener("click", () => {
|
||||
lang = 'pt'
|
||||
populate_posts()
|
||||
localize_menu()
|
||||
})
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
populate_posts()
|
||||
localize_menu()
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue