Expand i18n locales and improve reviews UI

Add many new language packs with RTL support, refresh brand assets, and harden review rendering with tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
michilis
2026-08-21 05:06:58 +02:00
co-authored by Cursor
parent 1c5df18e81
commit 47e6537dde
51 changed files with 15291 additions and 246 deletions
+13
View File
@@ -198,6 +198,7 @@ async function runConnect(method: 'remote' | 'primal'): Promise<void> {
const qr = el<HTMLElement>('[data-connect-qr]');
const uriBox = el<HTMLElement>('[data-connect-uri]');
const copy = el<HTMLButtonElement>('[data-connect-copy]');
const openApp = el<HTMLAnchorElement>('[data-connect-open]');
const title = el<HTMLElement>('[data-connect-title]');
if (title) title.textContent = t(`login.connect.${method}.title`);
@@ -209,6 +210,7 @@ async function runConnect(method: 'remote' | 'primal'): Promise<void> {
*/
if (hint) hint.innerHTML = t(`login.connect.${method}.hint`, { link: primalDownloadLink(t) });
if (qr) qr.innerHTML = '';
if (openApp) openApp.hidden = true; // A link from the last pairing would be a dead one.
setStatus(t('login.status.buildingLink'), 'busy');
let handle: ConnectHandle;
@@ -228,6 +230,17 @@ async function runConnect(method: 'remote' | 'primal'): Promise<void> {
copy.dataset['copy'] = handle.uri;
copy.hidden = false;
}
if (openApp) {
/*
* The tap-to-open route for a signer on this same device. Primal registers its
* own primalconnect:// scheme and parses it identically to nostrconnect://, so
* the Primal button opens Primal itself rather than the system's app chooser;
* the generic route keeps nostrconnect://, which signer apps register.
*/
openApp.href = method === 'primal' ? handle.uri.replace(/^nostrconnect:/, 'primalconnect:') : handle.uri;
openApp.textContent = t(`login.connect.${method}.open`);
openApp.hidden = false;
}
setStatus(t('login.status.waitingSigner'), 'busy');
try {