This commit is contained in:
jelveh
2025-08-15 23:33:53 -07:00
parent 89dd335208
commit d807672af7
2 changed files with 29 additions and 0 deletions

View File

@@ -247,6 +247,16 @@ const ipc_listener = async (event, handled) => {
}, '*');
}
//--------------------------------------------------------
// getLanguage
//--------------------------------------------------------
else if(event.data.msg === 'getLanguage'){
target_iframe.contentWindow.postMessage({
original_msg_id: msg_id,
msg: 'languageReceived',
language: window.locale || 'en',
}, '*');
}
//--------------------------------------------------------
// socialShare
//--------------------------------------------------------
else if(event.data.msg === 'socialShare' && event.data.url !== undefined){

View File

@@ -467,6 +467,10 @@ class UI extends EventListener {
// execute callback
this.#callbackFunctions[e.data.original_msg_id](e.data.response);
}
else if(e.data.msg === 'languageReceived'){
// execute callback
this.#callbackFunctions[e.data.original_msg_id](e.data.language);
}
else if(e.data.msg === "fileSaved"){
// execute callback
this.#callbackFunctions[e.data.original_msg_id](new FSItem(e.data.saved_file));
@@ -1526,6 +1530,21 @@ class UI extends EventListener {
isWorkingActive() {
return this.#overlayActive;
}
/**
* Gets the current language/locale code (e.g., 'en', 'fr', 'es').
*
* @returns {Promise<string>} A promise that resolves with the current language code.
*
* @example
* const currentLang = await puter.ui.getLanguage();
* console.log(`Current language: ${currentLang}`); // e.g., "Current language: fr"
*/
getLanguage() {
return new Promise((resolve) => {
this.#postMessageWithCallback('getLanguage', resolve, {});
});
}
}
export default UI