mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
Merge 947a939340 into 53fb175855
This commit is contained in:
commit
13ab270945
21 changed files with 627 additions and 37 deletions
|
|
@ -8,12 +8,10 @@
|
|||
// talk to the OD UI directly. Polling /api/xai/auth/status is the only
|
||||
// delivery channel for "auth completed".
|
||||
//
|
||||
// TODO(i18n): the visible strings are hardcoded English for the PoC;
|
||||
// migrate to apps/web/src/i18n/types.ts before stable release.
|
||||
|
||||
'use client';
|
||||
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { useT } from '../i18n';
|
||||
|
||||
interface XaiAuthStatus {
|
||||
connected: boolean;
|
||||
|
|
@ -128,6 +126,7 @@ async function completeOAuthManual(
|
|||
}
|
||||
|
||||
export function XaiOAuthControl() {
|
||||
const t = useT();
|
||||
const [status, setStatus] = useState<XaiAuthStatus | null>(null);
|
||||
const [busy, setBusy] = useState<Busy>('idle');
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
|
@ -299,16 +298,14 @@ export function XaiOAuthControl() {
|
|||
<>
|
||||
<span className="mcp-oauth-dot mcp-oauth-dot-ok" aria-hidden />
|
||||
<span>
|
||||
<strong>Signed in with X.</strong>{' '}
|
||||
<strong>{t('settings.xaiOAuthSignedIn')}</strong>{' '}
|
||||
{expiresLabel ? (
|
||||
<span className="hint">
|
||||
SuperGrok subscription token expires {expiresLabel}. You can
|
||||
close any open xAI browser tabs now.
|
||||
{t('settings.xaiOAuthTokenExpiresHint', { date: expiresLabel })}
|
||||
</span>
|
||||
) : (
|
||||
<span className="hint">
|
||||
SuperGrok subscription connected. You can close any open xAI
|
||||
browser tabs now.
|
||||
{t('settings.xaiOAuthConnectedHint')}
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
|
|
@ -317,11 +314,9 @@ export function XaiOAuthControl() {
|
|||
<>
|
||||
<span className="mcp-oauth-dot mcp-oauth-dot-pending" aria-hidden />
|
||||
<span>
|
||||
<strong>Waiting for authorization…</strong>{' '}
|
||||
<strong>{t('settings.xaiOAuthWaitingAuth')}</strong>{' '}
|
||||
<span className="hint">
|
||||
Open Design is listening for the callback in the background.
|
||||
This panel will switch to <em>Signed in</em> within a few
|
||||
seconds of your approving on xAI.
|
||||
{t('settings.xaiOAuthWaitingAuthHint')}
|
||||
</span>
|
||||
</span>
|
||||
</>
|
||||
|
|
@ -329,11 +324,9 @@ export function XaiOAuthControl() {
|
|||
<>
|
||||
<span className="mcp-oauth-dot" aria-hidden />
|
||||
<span>
|
||||
<strong>Not signed in.</strong>{' '}
|
||||
<strong>{t('settings.xaiOAuthNotSignedIn')}</strong>{' '}
|
||||
<span className="hint">
|
||||
Click Sign in with X to use your SuperGrok subscription for
|
||||
Grok image, video, and TTS in Open Design — no API key
|
||||
needed.
|
||||
{t('settings.xaiOAuthNotSignedInHint')}
|
||||
</span>
|
||||
</span>
|
||||
</>
|
||||
|
|
@ -342,13 +335,10 @@ export function XaiOAuthControl() {
|
|||
|
||||
{isAwaiting ? (
|
||||
<div className="xai-oauth-warning" role="status">
|
||||
<strong>Heads up:</strong> xAI may show a page that says{' '}
|
||||
<em>"Cannot connect to your application"</em> (or 「无法建立连接」
|
||||
in Chinese). <strong>That is a UX bug on xAI's side</strong> — the
|
||||
authorization is still being delivered to Open Design in the
|
||||
background. Stay on this panel; it will switch to{' '}
|
||||
<em>Signed in with X</em> automatically. Do not retry from xAI's
|
||||
page.
|
||||
<strong>{t('settings.xaiOAuthWarningTitle')}</strong> xAI may show a page that says{' '}
|
||||
<em>{t('settings.xaiOAuthWarningCannotConnect')}</em> (or 「无法建立连接」
|
||||
in Chinese). <strong>{t('settings.xaiOAuthWarningUxBug')}</strong> — the
|
||||
{t('settings.xaiOAuthWarningDetail')}
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
|
|
@ -360,18 +350,18 @@ export function XaiOAuthControl() {
|
|||
className="primary"
|
||||
onClick={onConnect}
|
||||
disabled={busy !== 'idle' && busy !== 'refreshing'}
|
||||
title="Re-authenticate (replaces the existing token)"
|
||||
title={t('settings.xaiOAuthReauthTitle')}
|
||||
>
|
||||
{busy === 'starting' || busy === 'awaiting'
|
||||
? 'Connecting…'
|
||||
: 'Reconnect'}
|
||||
? t('settings.xaiOAuthConnecting')
|
||||
: t('settings.xaiOAuthReconnect')}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
onClick={onDisconnect}
|
||||
disabled={busy !== 'idle'}
|
||||
>
|
||||
{busy === 'disconnecting' ? 'Disconnecting…' : 'Disconnect'}
|
||||
{busy === 'disconnecting' ? t('settings.xaiOAuthDisconnecting') : t('settings.xaiOAuthDisconnect')}
|
||||
</button>
|
||||
</>
|
||||
) : (
|
||||
|
|
@ -382,15 +372,15 @@ export function XaiOAuthControl() {
|
|||
onClick={onConnect}
|
||||
disabled={busy !== 'idle'}
|
||||
>
|
||||
{busy === 'starting' ? 'Opening browser…' : 'Sign in with X'}
|
||||
{busy === 'starting' ? t('settings.xaiOAuthOpeningBrowser') : t('settings.xaiOAuthSignIn')}
|
||||
</button>
|
||||
{isAwaiting ? (
|
||||
<>
|
||||
<button type="button" onClick={onRefreshStatus} disabled={busy === 'refreshing'}>
|
||||
{busy === 'refreshing' ? 'Checking…' : 'Refresh status'}
|
||||
{busy === 'refreshing' ? t('settings.xaiOAuthChecking') : t('settings.xaiOAuthRefreshStatus')}
|
||||
</button>
|
||||
<button type="button" onClick={onCancelPending}>
|
||||
Cancel
|
||||
{t('common.cancel')}
|
||||
</button>
|
||||
</>
|
||||
) : null}
|
||||
|
|
@ -400,9 +390,9 @@ export function XaiOAuthControl() {
|
|||
|
||||
{pendingAuthUrl && !connected ? (
|
||||
<div className="mcp-oauth-fallback hint">
|
||||
Browser tab didn't open?{' '}
|
||||
{t('settings.xaiOAuthBrowserNotOpen')}{' '}
|
||||
<a href={pendingAuthUrl} target="_blank" rel="noopener noreferrer">
|
||||
Click here to open the authorize URL manually
|
||||
{t('settings.xaiOAuthOpenManually')}
|
||||
</a>
|
||||
.
|
||||
</div>
|
||||
|
|
@ -411,13 +401,13 @@ export function XaiOAuthControl() {
|
|||
{isAwaiting && pendingState ? (
|
||||
<div className="xai-oauth-paste">
|
||||
<p className="hint">
|
||||
xAI may show a code instead of redirecting back. Paste it here:
|
||||
{t('settings.xaiOAuthPasteHint')}
|
||||
</p>
|
||||
<div className="xai-oauth-paste-row">
|
||||
<input
|
||||
type="text"
|
||||
value={pasteCode}
|
||||
placeholder="Paste auth code from xAI"
|
||||
placeholder={t('settings.xaiOAuthPastePlaceholder')}
|
||||
onChange={(e) => setPasteCode(e.target.value)}
|
||||
onKeyDown={(e) => {
|
||||
if (e.key === 'Enter' && pasteCode.trim()) {
|
||||
|
|
@ -425,14 +415,14 @@ export function XaiOAuthControl() {
|
|||
}
|
||||
}}
|
||||
disabled={busy === 'refreshing'}
|
||||
aria-label="Paste auth code from xAI"
|
||||
aria-label={t('settings.xaiOAuthPastePlaceholder')}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
onClick={onPasteSubmit}
|
||||
disabled={!pasteCode.trim() || busy === 'refreshing'}
|
||||
>
|
||||
{busy === 'refreshing' ? 'Submitting…' : 'Submit code'}
|
||||
{busy === 'refreshing' ? t('settings.xaiOAuthSubmitting') : t('settings.xaiOAuthSubmitCode')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -446,7 +436,7 @@ export function XaiOAuthControl() {
|
|||
|
||||
{status?.scope ? (
|
||||
<div className="mcp-oauth-scope hint">
|
||||
Granted scopes: <code>{status.scope}</code>
|
||||
{t('settings.xaiOAuthGrantedScopes')} <code>{status.scope}</code>
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const ar: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'تمت إعادة تحميل إعدادات موفري الوسائط من الـ daemon المحلي.',
|
||||
'settings.mediaProviderLoadError': 'تعذر تحميل إعدادات موفري الوسائط من الـ daemon المحلي. سيُستخدم مؤقتًا ما هو محفوظ في المتصفح.',
|
||||
'settings.mediaProviderComingSoonHint': 'نحن نتتبع هذه المزودات في خارطة الطريق؛ لم يقم البرنامج الخفي بشحن عميل بعد، لذا لا يوجد شيء لتكوينه.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const de: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Die Einstellungen der Medienanbieter wurden vom lokalen Daemon neu geladen.',
|
||||
'settings.mediaProviderLoadError': 'Die Einstellungen der Medienanbieter konnten nicht vom lokalen Daemon geladen werden. Vorerst werden die im Browser gespeicherten Einstellungen verwendet.',
|
||||
'settings.mediaProviderComingSoonHint': 'Wir verfolgen diese für die Roadmap; der Daemon liefert noch keinen Client, daher gibt es nichts zu konfigurieren.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -366,6 +366,36 @@ export const en: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Reloaded media provider settings from the local daemon.',
|
||||
'settings.mediaProviderLoadError': 'Could not load media provider settings from the local daemon. Using browser-saved settings for now.',
|
||||
'settings.mediaProviderComingSoonHint': 'We track these for the roadmap; the daemon doesn\'t ship a client yet, so there\'s nothing to configure.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const esES: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Se recargaron los ajustes de los proveedores de medios desde el daemon local.',
|
||||
'settings.mediaProviderLoadError': 'No se pudieron cargar los ajustes de los proveedores de medios desde el daemon local. Por ahora se usarán los ajustes guardados en el navegador.',
|
||||
'settings.mediaProviderComingSoonHint': 'Rastreamos estos para la hoja de ruta; el daemon aún no incluye un cliente, por lo que no hay nada que configurar.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const fa: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'تنظیمات ارائهدهندههای رسانه از دیمن محلی دوباره بارگذاری شد.',
|
||||
'settings.mediaProviderLoadError': 'بارگذاری تنظیمات ارائهدهندههای رسانه از دیمن محلی ممکن نشد. فعلاً از تنظیمات ذخیرهشده در مرورگر استفاده میشود.',
|
||||
'settings.mediaProviderComingSoonHint': 'ما این موارد را برای نقشه راه پیگیری میکنیم؛ دیمون هنوز کلاینتی ارائه نمیدهد، بنابراین چیزی برای پیکربندی وجود ندارد.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -346,6 +346,36 @@ export const fr: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Paramètres des fournisseurs de médias rechargés depuis le daemon local.',
|
||||
'settings.mediaProviderLoadError': 'Impossible de charger les paramètres des fournisseurs de médias depuis le daemon local. Utilisation temporaire des paramètres enregistrés dans le navigateur.',
|
||||
'settings.mediaProviderComingSoonHint': 'Nous suivons ces fournisseurs pour la feuille de route ; le daemon ne fournit pas encore de client, il n\'y a donc rien à configurer.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Confidentialité',
|
||||
'settings.privacyHint': 'Données partagées avec l’équipe Open Design',
|
||||
'settings.privacyConsentKicker': 'Aidez-nous à améliorer Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const hu: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'A médiaszolgáltatók beállításai újra lettek töltve a helyi démonból.',
|
||||
'settings.mediaProviderLoadError': 'Nem sikerült betölteni a médiaszolgáltatók beállításait a helyi démonból. Egyelőre a böngészőben mentett beállításokat használjuk.',
|
||||
'settings.mediaProviderComingSoonHint': 'Ezeket nyomon követjük az ütemtervben; a daemon még nem szállít klienst, így nincs mit konfigurálni.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -350,6 +350,36 @@ export const id: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Pengaturan penyedia media berhasil dimuat ulang dari daemon lokal.',
|
||||
'settings.mediaProviderLoadError': 'Tidak dapat memuat pengaturan penyedia media dari daemon lokal. Untuk sementara menggunakan pengaturan yang tersimpan di browser.',
|
||||
'settings.mediaProviderComingSoonHint': 'Kami melacak ini untuk roadmap; daemon belum mengirimkan klien, jadi tidak ada yang perlu dikonfigurasi.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -347,6 +347,36 @@ export const it: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Impostazioni dei provider di media ricaricate dal daemon locale.',
|
||||
'settings.mediaProviderLoadError': 'Impossibile caricare le impostazioni dei provider di media dal daemon locale. Uso temporaneo delle impostazioni salvate nel browser.',
|
||||
'settings.mediaProviderComingSoonHint': 'Teniamo traccia di questi per la roadmap; il daemon non fornisce ancora un client, quindi non c\'è nulla da configurare.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'Quali dati vengono condivisi con il team di Open Design',
|
||||
'settings.privacyConsentKicker': 'Aiutaci a migliorare Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const ja: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'ローカルデーモンからメディアプロバイダー設定を再読み込みしました。',
|
||||
'settings.mediaProviderLoadError': 'ローカルデーモンからメディアプロバイダー設定を読み込めませんでした。今のところブラウザーに保存された設定を使用します。',
|
||||
'settings.mediaProviderComingSoonHint': 'これらはロードマップで追跡しています。デーモンはまだクライアントを提供していないため、設定するものはありません。',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const ko: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': '로컬 데몬에서 미디어 제공자 설정을 다시 불러왔습니다.',
|
||||
'settings.mediaProviderLoadError': '로컬 데몬에서 미디어 제공자 설정을 불러오지 못했습니다. 지금은 브라우저에 저장된 설정을 사용합니다.',
|
||||
'settings.mediaProviderComingSoonHint': '로드맵에서 이를 추적하고 있습니다. 데몬이 아직 클라이언트를 제공하지 않으므로 구성할 항목이 없습니다.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -355,6 +355,36 @@ export const pl: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Ustawienia dostawców mediów zostały ponownie wczytane z lokalnego demona.',
|
||||
'settings.mediaProviderLoadError': 'Nie udało się wczytać ustawień dostawców mediów z lokalnego demona. Na razie używane będą ustawienia zapisane w przeglądarce.',
|
||||
'settings.mediaProviderComingSoonHint': 'Śledzimy je w mapie drogowej; daemon nie dostarcza jeszcze klienta, więc nie ma nic do skonfigurowania.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -354,6 +354,36 @@ export const ptBR: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'As configurações dos provedores de mídia foram recarregadas do daemon local.',
|
||||
'settings.mediaProviderLoadError': 'Não foi possível carregar as configurações dos provedores de mídia do daemon local. Usando por enquanto as configurações salvas no navegador.',
|
||||
'settings.mediaProviderComingSoonHint': 'Rastreamos estes para o roteiro; o daemon ainda não fornece um cliente, então não há nada para configurar.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -354,6 +354,36 @@ export const ru: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Настройки медиапровайдеров заново загружены из локального демона.',
|
||||
'settings.mediaProviderLoadError': 'Не удалось загрузить настройки медиапровайдеров из локального демона. Пока используются настройки, сохранённые в браузере.',
|
||||
'settings.mediaProviderComingSoonHint': 'Мы отслеживаем их в дорожной карте; демон пока не поставляет клиент, поэтому настраивать нечего.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -339,6 +339,36 @@ export const th: Dict = {
|
|||
'settings.mediaProviderPlaceholder': 'วาง API key',
|
||||
'settings.mediaProviderBaseUrlPlaceholder': 'กำหนด Base URL แท่นค่าเริ่มต้น',
|
||||
'settings.mediaProviderComingSoonHint': 'เราติดตามสิ่งเหล่านี้สำหรับแผนงาน daemon ยังไม่ได้จัดส่งไคลเอนต์ ดังนั้นจึงไม่มีอะไรให้กำหนดค่า',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'ความเป็นส่วนตัว',
|
||||
'settings.privacyHint': 'ข้อมูลที่แชร์กับทีม Open Design',
|
||||
'settings.privacyConsentKicker': 'ช่วยเราพัฒนา Open Design',
|
||||
|
|
|
|||
|
|
@ -345,6 +345,36 @@ export const tr: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Medya sağlayıcı ayarları yerel daemon’dan yeniden yüklendi.',
|
||||
'settings.mediaProviderLoadError': 'Medya sağlayıcı ayarları yerel daemon’dan yüklenemedi. Şimdilik tarayıcıya kaydedilen ayarlar kullanılıyor.',
|
||||
'settings.mediaProviderComingSoonHint': 'Bunları yol haritası için takip ediyoruz; daemon henüz bir istemci göndermediği için yapılandırılacak bir şey yok.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -356,6 +356,36 @@ export const uk: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': 'Налаштування медіапровайдерів повторно завантажено з локального демона.',
|
||||
'settings.mediaProviderLoadError': 'Не вдалося завантажити налаштування медіапровайдерів із локального демона. Наразі використовуються налаштування, збережені в браузері.',
|
||||
'settings.mediaProviderComingSoonHint': 'Ми відстежуємо їх у дорожній карті; демон ще не постачає клієнт, тому налаштовувати нічого.',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': 'Privacy',
|
||||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||||
|
|
|
|||
|
|
@ -365,6 +365,36 @@ export const zhCN: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': '已从本地守护进程重新加载媒体提供方设置。',
|
||||
'settings.mediaProviderLoadError': '无法从本地守护进程加载媒体提供方设置。当前将使用浏览器中保存的设置。',
|
||||
'settings.mediaProviderComingSoonHint': '我们在路线图中跟踪这些提供方;守护进程尚未提供客户端,因此暂无可配置项。',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': '已通过 X 登录。',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok 订阅令牌将于 {date} 过期。您现在可以关闭所有打开的 xAI 浏览器标签页。',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok 订阅已连接。您现在可以关闭所有打开的 xAI 浏览器标签页。',
|
||||
'settings.xaiOAuthWaitingAuth': '等待授权中…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design 正在后台监听回调。在您于 xAI 上批准后的几秒钟内,此面板将切换为"已登录"状态。',
|
||||
'settings.xaiOAuthNotSignedIn': '未登录。',
|
||||
'settings.xaiOAuthNotSignedInHint': '点击"通过 X 登录"以使用您的 SuperGrok 订阅在 Open Design 中生成 Grok 图像、视频和 TTS — 无需 API 密钥。',
|
||||
'settings.xaiOAuthWarningTitle': '注意:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"无法连接到您的应用程序"',
|
||||
'settings.xaiOAuthWarningUxBug': '这是 xAI 方面的用户体验问题',
|
||||
'settings.xaiOAuthWarningDetail': '授权仍在后台传递给 Open Design。请留在此面板;它将自动切换为"已通过 X 登录"。请勿从 xAI 页面重试。',
|
||||
'settings.xaiOAuthConnecting': '连接中…',
|
||||
'settings.xaiOAuthReconnect': '重新连接',
|
||||
'settings.xaiOAuthDisconnecting': '断开连接中…',
|
||||
'settings.xaiOAuthDisconnect': '断开连接',
|
||||
'settings.xaiOAuthOpeningBrowser': '打开浏览器中…',
|
||||
'settings.xaiOAuthSignIn': '通过 X 登录',
|
||||
'settings.xaiOAuthChecking': '检查中…',
|
||||
'settings.xaiOAuthRefreshStatus': '刷新状态',
|
||||
'settings.xaiOAuthBrowserNotOpen': '浏览器标签页未打开?',
|
||||
'settings.xaiOAuthOpenManually': '点击此处手动打开授权 URL',
|
||||
'settings.xaiOAuthPasteHint': 'xAI 可能会显示代码而不是重定向回来。请在此处粘贴:',
|
||||
'settings.xaiOAuthPastePlaceholder': '粘贴来自 xAI 的授权代码',
|
||||
'settings.xaiOAuthSubmitting': '提交中…',
|
||||
'settings.xaiOAuthSubmitCode': '提交代码',
|
||||
'settings.xaiOAuthReauthTitle': '重新认证(将替换现有令牌)',
|
||||
'settings.xaiOAuthGrantedScopes': '已授予的权限范围:',
|
||||
|
||||
'settings.privacy': '隐私',
|
||||
'settings.privacyHint': '与 Open Design 团队共享哪些数据',
|
||||
'settings.privacyConsentKicker': '帮助我们改进 Open Design',
|
||||
|
|
|
|||
|
|
@ -357,6 +357,36 @@ export const zhTW: Dict = {
|
|||
'settings.mediaProviderReloadSuccess': '已從本機守護程序重新載入媒體供應商設定。',
|
||||
'settings.mediaProviderLoadError': '無法從本機守護程序載入媒體供應商設定。目前將使用瀏覽器中儲存的設定。',
|
||||
'settings.mediaProviderComingSoonHint': '我們在路線圖中追蹤這些提供者;守護程式尚未提供客戶端,因此暫無可配置項。',
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': 'Signed in with X.',
|
||||
'settings.xaiOAuthTokenExpiresHint': 'SuperGrok subscription token expires {date}. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthConnectedHint': 'SuperGrok subscription connected. You can close any open xAI browser tabs now.',
|
||||
'settings.xaiOAuthWaitingAuth': 'Waiting for authorization…',
|
||||
'settings.xaiOAuthWaitingAuthHint': 'Open Design is listening for the callback in the background. This panel will switch to Signed in within a few seconds of your approving on xAI.',
|
||||
'settings.xaiOAuthNotSignedIn': 'Not signed in.',
|
||||
'settings.xaiOAuthNotSignedInHint': 'Click Sign in with X to use your SuperGrok subscription for Grok image, video, and TTS in Open Design — no API key needed.',
|
||||
'settings.xaiOAuthWarningTitle': 'Heads up:',
|
||||
'settings.xaiOAuthWarningCannotConnect': '"Cannot connect to your application"',
|
||||
'settings.xaiOAuthWarningUxBug': 'That is a UX bug on xAI\'s side',
|
||||
'settings.xaiOAuthWarningDetail': 'the authorization is still being delivered to Open Design in the background. Stay on this panel; it will switch to Signed in with X automatically. Do not retry from xAI\'s page.',
|
||||
'settings.xaiOAuthConnecting': 'Connecting…',
|
||||
'settings.xaiOAuthReconnect': 'Reconnect',
|
||||
'settings.xaiOAuthDisconnecting': 'Disconnecting…',
|
||||
'settings.xaiOAuthDisconnect': 'Disconnect',
|
||||
'settings.xaiOAuthOpeningBrowser': 'Opening browser…',
|
||||
'settings.xaiOAuthSignIn': 'Sign in with X',
|
||||
'settings.xaiOAuthChecking': 'Checking…',
|
||||
'settings.xaiOAuthRefreshStatus': 'Refresh status',
|
||||
'settings.xaiOAuthBrowserNotOpen': 'Browser tab didn\'t open?',
|
||||
'settings.xaiOAuthOpenManually': 'Click here to open the authorize URL manually',
|
||||
'settings.xaiOAuthPasteHint': 'xAI may show a code instead of redirecting back. Paste it here:',
|
||||
'settings.xaiOAuthPastePlaceholder': 'Paste auth code from xAI',
|
||||
'settings.xaiOAuthSubmitting': 'Submitting…',
|
||||
'settings.xaiOAuthSubmitCode': 'Submit code',
|
||||
'settings.xaiOAuthReauthTitle': 'Re-authenticate (replaces the existing token)',
|
||||
'settings.xaiOAuthGrantedScopes': 'Granted scopes:',
|
||||
|
||||
'settings.privacy': '隱私',
|
||||
'settings.privacyHint': '與 Open Design 團隊共享哪些資料',
|
||||
'settings.privacyConsentKicker': '協助我們改進 Open Design',
|
||||
|
|
|
|||
|
|
@ -367,6 +367,36 @@ export interface Dict {
|
|||
'settings.mediaProviderReloadSuccess': string;
|
||||
'settings.mediaProviderLoadError': string;
|
||||
'settings.mediaProviderComingSoonHint': string;
|
||||
|
||||
// xAI OAuth (XaiOAuthControl component)
|
||||
'settings.xaiOAuthSignedIn': string;
|
||||
'settings.xaiOAuthTokenExpiresHint': string;
|
||||
'settings.xaiOAuthConnectedHint': string;
|
||||
'settings.xaiOAuthWaitingAuth': string;
|
||||
'settings.xaiOAuthWaitingAuthHint': string;
|
||||
'settings.xaiOAuthNotSignedIn': string;
|
||||
'settings.xaiOAuthNotSignedInHint': string;
|
||||
'settings.xaiOAuthWarningTitle': string;
|
||||
'settings.xaiOAuthWarningCannotConnect': string;
|
||||
'settings.xaiOAuthWarningUxBug': string;
|
||||
'settings.xaiOAuthWarningDetail': string;
|
||||
'settings.xaiOAuthConnecting': string;
|
||||
'settings.xaiOAuthReconnect': string;
|
||||
'settings.xaiOAuthDisconnecting': string;
|
||||
'settings.xaiOAuthDisconnect': string;
|
||||
'settings.xaiOAuthOpeningBrowser': string;
|
||||
'settings.xaiOAuthSignIn': string;
|
||||
'settings.xaiOAuthChecking': string;
|
||||
'settings.xaiOAuthRefreshStatus': string;
|
||||
'settings.xaiOAuthBrowserNotOpen': string;
|
||||
'settings.xaiOAuthOpenManually': string;
|
||||
'settings.xaiOAuthPasteHint': string;
|
||||
'settings.xaiOAuthPastePlaceholder': string;
|
||||
'settings.xaiOAuthSubmitting': string;
|
||||
'settings.xaiOAuthSubmitCode': string;
|
||||
'settings.xaiOAuthReauthTitle': string;
|
||||
'settings.xaiOAuthGrantedScopes': string;
|
||||
|
||||
'settings.privacy': string;
|
||||
'settings.privacyHint': string;
|
||||
'settings.privacyConsentKicker': string;
|
||||
|
|
|
|||
Loading…
Reference in a new issue