feature: tiered sort

This commit is contained in:
2024-05-22 09:27:22 +08:00
parent a946012a33
commit 190e43c814
14 changed files with 254 additions and 147 deletions

View File

@@ -1,3 +1,3 @@
export function getCookie(name: string): string
export function setCookie(name: string, value: string, expireDays?: Number): void
export function setCookie(name: string, value: string, expireDays?: Number, host?: string, encode?: boolean): void
export function deleteCookie(name: string): void

View File

@@ -1,8 +1,8 @@
export function setCookie(name, value, expireDays) {
export function setCookie(name, value, expireDays, host, encode) {
if (name == null) {
return;
}
let extra = `; domain=${location.host}; path=/`;
let extra = `; domain=${host ?? location.hostname}; path=/`;
if (expireDays != null) {
const d = new Date();
d.setTime(d.getTime() + (expireDays * 24 * 60 * 60 * 1000));
@@ -11,7 +11,10 @@ export function setCookie(name, value, expireDays) {
if (/^(https|wss):$/.test(location.protocol)) {
extra += '; secure';
}
document.cookie = `${name}=${encodeURIComponent(value)}${extra}`;
if (encode !== false) {
value = encodeURIComponent(value);
}
document.cookie = `${name}=${value}${extra}`;
}
export function getCookie(name) {

View File

@@ -23,17 +23,21 @@ function getCurrentLgId() {
lgid = 'en';
}
switch (lgid) {
case 'en':
case 'en_au':
case 'fr':
case 'en_ca':
case 'fr_ca':
case 'zh_cn':
return lgid;
}
const lang = lgid.split('_')[0];
switch (lang) {
case 'en':
case 'es':
case 'fr':
case 'pt':
return lang;
case 'zh':
return 'zh_cn';
}
return 'en';
}
@@ -88,14 +92,20 @@ function applyLanguage(dom, result) {
} else {
text.innerText = getLanguage(result, key, text.innerText);
}
// delete text.dataset.lgid;
text.dataset.lgid = '';
}
for (let title of dom.querySelectorAll('[data-title-lgid]')) {
const key = title.dataset.titleLgid;
title.setAttribute('title', getLanguage(result, key, title.getAttribute('title')));
// delete title.dataset.titleLgid;
title.dataset.titleLgid = '';
}
for (let holder of dom.querySelectorAll('[data-placeholder-lgid]')) {
const key = holder.dataset.placeholderLgid;
holder.setAttribute('placeholder', getLanguage(result, key, holder.getAttribute('placeholder')));
// delete holder.dataset.placeholderLgid;
holder.dataset.placeholderLgid = '';
}
}