ags: add ask popup, make notifications work(finally :3) and more improvements

This commit is contained in:
retrozinndev
2025-03-09 13:45:07 -03:00
parent 161c811841
commit 59ef5e4aa7
67 changed files with 2005 additions and 731 deletions
+16 -16
View File
@@ -1,14 +1,15 @@
//TODO use I18n system >.<
import en_US from "./lang/en_US";
import pt_BR from "./lang/pt_BR";
import { GLib } from "astal";
const i18nKeys = {
"en_US": (() => import("./lang/en_US")!)(),
"pt_BR": (() => import("./lang/pt_BR")!)()
}
"en_US": en_US,
"pt_BR": pt_BR
};
const languages: Array<string> = (() =>
Object.keys(i18nKeys))()
const languages: Array<string> = Object.keys(i18nKeys);
const defaultLanguage: string = languages[0];
let language: string = getSystemLanguage();
@@ -17,16 +18,16 @@ export function getSystemLanguage(): string {
const sysLanguage: (string|null|undefined) = GLib.getenv("LANG") || GLib.getenv("LANGUAGE");
if(!sysLanguage) {
console.log(`[WARNING] Couldn't get system language, fallback to default ${defaultLanguage || "en_US"}`);
console.log(`[WARNING] Couldn't get system language, fallback to default ${defaultLanguage}`);
console.log("[TIP] Please set the LANG or LANGUAGE environment variable");
return defaultLanguage || "en_US";
return "en_US";
}
return sysLanguage.split('.')[0];
}
export function setLanguage(lang: keyof typeof i18nKeys): (string|Error) {
export function setLanguage(lang: keyof typeof i18nKeys): string {
languages.map((cur: string) => {
if(cur === lang) {
language = lang;
@@ -34,20 +35,19 @@ export function setLanguage(lang: keyof typeof i18nKeys): (string|Error) {
}
});
throw new Error(`[i18n/intl] Couldn't set language: ${lang}`, {
throw new Error(`(i18n/intl) Couldn't set language: ${lang}`, {
cause: `Language ${lang} not found in languages of type ${typeof languages}`
});
}
export function tr(key: string): (string|undefined) {
let result = i18nKeys[language as keyof typeof i18nKeys],
defResult = i18nKeys[defaultLanguage as keyof typeof i18nKeys];
export function tr(key: string): string {
let result = i18nKeys[language as keyof typeof i18nKeys],
defResult = i18nKeys[defaultLanguage as keyof typeof i18nKeys];
for(const keyString in key.split('.')) {
console.log(result);
result = result[keyString as keyof typeof result];
defResult = defResult[keyString as keyof typeof defResult];
result = result[keyString as keyof typeof result] as never;
defResult = defResult[keyString as keyof typeof defResult] as never;
}
return (result as never) || (defResult as never) || undefined;
return (result as never) || (defResult as never) || "couldn't find i18n key";
}