@@ -31,7 +31,7 @@ import { getCountries } from './data/countries';
3131import { languages } from './data/languages' ;
3232import { createDialog , initDialog } from './dialog' ;
3333import './settings/device' ;
34- import { initLocalization } from './util/localization' ;
34+ import { applyLocalization , initLocalization } from './util/localization' ;
3535import { validateMfaToken , validatePw } from './util/validation' ;
3636
3737let currentUser ;
@@ -231,12 +231,14 @@ LoginManager.isLoggedIn().then(async (e) => {
231231 if ( currentUser [ '2fa' ] && currentUser [ '2faType' ] === 'App' ) document . getElementById ( 'cp_2fa' ) . classList . remove ( 'd-none' ) ;
232232
233233 if ( currentUser [ '2fa' ] ) {
234- document . getElementById ( '2fa_status' ) . innerText = 'Enabled' ;
234+ document . getElementById ( '2fa_status' ) . innerText = i18next . t ( 'profile_enabled' ) ;
235235 document . getElementById ( '2fa_type' ) . value = currentUser [ '2faType' ] === 'App' ? 0 : currentUser [ '2faType' ] === 'Mail' ? 1 : 2 ;
236236 document . getElementById ( '2fa_type' ) . disabled = true ;
237- document . getElementById ( '2fa_enable' ) . innerText = 'Disable' ;
237+ document . getElementById ( '2fa_enable' ) . innerText = i18next . t ( 'profile_disable' ) ;
238238 document . getElementById ( '2fa_enable' ) . addEventListener ( 'click' , disable2fa ) ;
239239 } else {
240+ document . getElementById ( '2fa_status' ) . innerText = i18next . t ( 'profile_disabled' ) ;
241+ document . getElementById ( '2fa_enable' ) . innerText = i18next . t ( 'profile_enable' ) ;
240242 document . getElementById ( '2fa_enable' ) . addEventListener ( 'click' , enable2fa ) ;
241243 }
242244
@@ -269,7 +271,7 @@ LoginManager.isLoggedIn().then(async (e) => {
269271 name . innerText = client . name ;
270272 row . appendChild ( name ) ;
271273 const deleteBtn = document . createElement ( 'button' ) ;
272- deleteBtn . innerText = 'Delete' ;
274+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
273275 deleteBtn . addEventListener ( 'click' , async ( ) => await deleteTrustedSsoClient ( client . id ) ) ;
274276 row . appendChild ( deleteBtn ) ;
275277 document . getElementById ( 'thirdPartyAppsContainer' ) . appendChild ( row ) ;
@@ -313,24 +315,24 @@ async function buildPasskeys(keys) {
313315 itemText . appendChild ( keyElement ) ;
314316
315317 const lastLogin = document . createElement ( 'p' ) ;
316- lastLogin . innerText = `Last login: ${ new Date ( key . lastLogin ) . toLocaleString ( ) } ` ;
318+ lastLogin . innerText = `${ i18next . t ( 'profile_lastLogin' ) } ${ new Date ( key . lastLogin ) . toLocaleString ( ) } ` ;
317319 itemText . appendChild ( lastLogin ) ;
318320
319321 const createdAt = document . createElement ( 'p' ) ;
320- createdAt . innerText = `Created at: ${ new Date ( key . createdAt ) . toLocaleString ( ) } ` ;
322+ createdAt . innerText = `${ i18next . t ( 'profile_createdAt' ) } ${ new Date ( key . createdAt ) . toLocaleString ( ) } ` ;
321323 itemText . appendChild ( createdAt ) ;
322324
323325 item . appendChild ( itemText ) ;
324326
325327 const deleteBtn = document . createElement ( 'button' ) ;
326- deleteBtn . innerText = 'Delete' ;
328+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
327329 deleteBtn . addEventListener ( 'click' , async ( ) => await deletePasskey ( key . id ) ) ;
328330 item . appendChild ( deleteBtn ) ;
329331
330332 container . appendChild ( item ) ;
331333 } ) ;
332334
333- if ( keys . length === 0 ) container . innerHTML = ' <p>No passkeys found! </p>' ;
335+ if ( keys . length === 0 ) container . innerHTML = ` <p>${ i18next . t ( 'profile_noPasskeys' ) } </p>` ;
334336
335337 document . getElementById ( 'createPasskey' ) . onclick = async ( ) => await createPasskey ( ) ;
336338}
@@ -342,7 +344,7 @@ async function deletePasskey(id) {
342344
343345 const container = document . getElementById ( 'passkeysTable' ) ;
344346
345- if ( container . children . length === 0 ) container . innerHTML = ' <p>No passkeys found! </p>' ;
347+ if ( container . children . length === 0 ) container . innerHTML = ` <p>${ i18next . t ( 'profile_noPasskeys' ) } </p>` ;
346348}
347349
348350async function createPasskey ( ) {
@@ -383,7 +385,7 @@ async function deleteTrustedSsoClient(clientId) {
383385
384386 const container = document . getElementById ( 'thirdPartyAppsContainer' ) ;
385387
386- if ( container . children . length === 0 ) container . innerHTML = ' <p>No third party apps connected! </p>' ;
388+ if ( container . children . length === 0 ) container . innerHTML = ` <p>${ i18next . t ( 'profile_noThirdPartyApps' ) } </p>` ;
387389}
388390
389391async function createSsoCredentials ( ) {
@@ -460,6 +462,8 @@ function createSSOClient(logoUrl, clientName, websiteUrl, clientId, clientSecret
460462 content . querySelector ( '#sso_addRedirect' ) . addEventListener ( 'click' , async ( ) => await addSSORedirect ( clientId ) ) ;
461463 content . querySelector ( '#sso_addAudience' ) . addEventListener ( 'click' , async ( ) => await addAudience ( clientId ) ) ;
462464
465+ applyLocalization ( item ) ;
466+
463467 const audiencesContainer = content . querySelector ( '#sso_audiences' ) ;
464468
465469 audiences . forEach ( ( audience ) => {
@@ -473,7 +477,7 @@ function createSSOClient(logoUrl, clientName, websiteUrl, clientId, clientSecret
473477 audienceItem . appendChild ( audienceInput ) ;
474478
475479 const deleteBtn = document . createElement ( 'button' ) ;
476- deleteBtn . innerText = 'Delete' ;
480+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
477481 deleteBtn . addEventListener ( 'click' , async ( ) => await deleteAudience ( clientId , audience . id ) ) ;
478482 audienceItem . appendChild ( deleteBtn ) ;
479483
@@ -493,7 +497,7 @@ function createSSOClient(logoUrl, clientName, websiteUrl, clientId, clientSecret
493497 redirectItem . appendChild ( url ) ;
494498
495499 const deleteBtn = document . createElement ( 'button' ) ;
496- deleteBtn . innerText = 'Delete' ;
500+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
497501 deleteBtn . addEventListener ( 'click' , async ( ) => await deleteSSORedirect ( clientId , redirect . id ) ) ;
498502 redirectItem . appendChild ( deleteBtn ) ;
499503
@@ -563,7 +567,7 @@ async function addAudience(clientId) {
563567 url . disabled = true ;
564568 redirect . appendChild ( url ) ;
565569 const deleteBtn = document . createElement ( 'button' ) ;
566- deleteBtn . innerText = 'Delete' ;
570+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
567571 deleteBtn . addEventListener ( 'click' , async ( ) => await deleteAudienceReq ( clientId , res . data . id ) ) ;
568572 redirect . appendChild ( deleteBtn ) ;
569573
@@ -599,7 +603,7 @@ async function addSSORedirect(clientId) {
599603 url . disabled = true ;
600604 redirect . appendChild ( url ) ;
601605 const deleteBtn = document . createElement ( 'button' ) ;
602- deleteBtn . innerText = 'Delete' ;
606+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
603607 deleteBtn . addEventListener ( 'click' , async ( ) => await deleteSSORedirect ( clientId , res . data . id ) ) ;
604608 redirect . appendChild ( deleteBtn ) ;
605609
@@ -632,11 +636,11 @@ async function doubleClickButton(e, func) {
632636 }
633637
634638 e . target . dataset . clicked = 'true' ;
635- e . target . innerText = 'Confirm' ;
639+ e . target . innerText = i18next . t ( 'profile_confirm' ) ;
636640
637641 setTimeout ( ( ) => {
638642 e . target . dataset . clicked = 'false' ;
639- e . target . innerText = 'Delete Account' ;
643+ e . target . innerText = i18next . t ( 'profile_deleteAccount' ) ;
640644 } , 3000 ) ;
641645}
642646
@@ -647,8 +651,8 @@ function createApiKeyRow(label, client_id, scope) {
647651 const td = document . createElement ( 'td' ) ;
648652 const deleteBtn = document . createElement ( 'button' ) ;
649653 const regenBtn = document . createElement ( 'button' ) ;
650- deleteBtn . innerText = 'Delete' ;
651- regenBtn . innerText = 'Regenerate' ;
654+ deleteBtn . innerText = i18next . t ( 'profile_delete' ) ;
655+ regenBtn . innerText = i18next . t ( 'profile_regenerate' ) ;
652656
653657 deleteBtn . addEventListener ( 'click' , ( ) => deleteApiKey ( client_id ) ) ;
654658 regenBtn . addEventListener ( 'click' , ( ) => regenerateApiKey ( client_id ) ) ;
0 commit comments