279 lines
6.9 KiB
JavaScript
279 lines
6.9 KiB
JavaScript
/**
|
|||
|
|
* Extra locale strings (auth / settings / dashboard) merged by gen-locale-packs.mjs.
|
||
|
|
* Brand/loanwords that stay identical across locales are listed in SAME_AS_EN.
|
||
|
|
*/
|
||
|
|
export const SAME_AS_EN = new Set([
|
||
|
|
"admin.settings.integrationsCardDesc",
|
||
|
|
"admin.settings.providerOption.ollama",
|
||
|
|
"admin.settings.providerOption.azure",
|
||
|
|
"admin.settings.providerOption.openrouter",
|
||
|
|
"admin.settings.providerOption.openai",
|
||
|
|
"admin.analytics.tokensCol",
|
||
|
|
"admin.billing.col.total",
|
||
|
|
"admin.billing.field.term",
|
||
|
|
"admin.billing.plan",
|
||
|
|
"admin.chrome.opsBadge",
|
||
|
|
"admin.chrome.staff.admin",
|
||
|
|
"admin.diagnostics.colId",
|
||
|
|
"admin.diagnostics.colStatus",
|
||
|
|
"admin.knowledge.col.status",
|
||
|
|
"admin.overview.badge.live",
|
||
|
|
"admin.overview.tokens",
|
||
|
|
"admin.plans.col.plan",
|
||
|
|
"admin.plans.col.term",
|
||
|
|
"admin.plans.filter.legacy",
|
||
|
|
"admin.plans.visibility.legacy",
|
||
|
|
"admin.profile.business.label",
|
||
|
|
"admin.profile.growth.label",
|
||
|
|
"admin.profile.legacy.label",
|
||
|
|
"admin.profile.starter.label",
|
||
|
|
"admin.settings.allowlist",
|
||
|
|
"admin.settings.colEmail",
|
||
|
|
"admin.settings.eprel",
|
||
|
|
"admin.settings.googleOauth",
|
||
|
|
"admin.settings.host",
|
||
|
|
"admin.settings.linkAi",
|
||
|
|
"admin.settings.linkEmail",
|
||
|
|
"admin.settings.model",
|
||
|
|
"admin.settings.namespace",
|
||
|
|
"admin.settings.pinecone",
|
||
|
|
"admin.settings.port",
|
||
|
|
"admin.settings.stripe",
|
||
|
|
"admin.settings.tab.mail",
|
||
|
|
"admin.translations.badgeBase",
|
||
|
|
"admin.translations.colStatus",
|
||
|
|
"admin.users.colPlan",
|
||
|
|
"admin.users.colStatus",
|
||
|
|
"app.name",
|
||
|
|
"attributes.color",
|
||
|
|
"attributes.field.keyPlaceholder",
|
||
|
|
"billing.chartTokens",
|
||
|
|
"billing.na",
|
||
|
|
"billing.plan.enterprise",
|
||
|
|
"billing.skusOf",
|
||
|
|
"blast.placeholder",
|
||
|
|
"exports.howTo.google",
|
||
|
|
"exports.howTo.openapi",
|
||
|
|
"exports.howTo.rest",
|
||
|
|
"exports.preset.google_shopping_csv.label",
|
||
|
|
"exports.preset.google_shopping_xml.defaultName",
|
||
|
|
"exports.preset.google_shopping_xml.label",
|
||
|
|
"exports.preset.google_shopping_xml.shortLabel",
|
||
|
|
"exports.preset.meta_csv.shortLabel",
|
||
|
|
"feeds.field.urlPlaceholder",
|
||
|
|
"feeds.sync",
|
||
|
|
"fields.type.color",
|
||
|
|
"fields.type.dimension",
|
||
|
|
"fields.type.image",
|
||
|
|
"fields.type.url",
|
||
|
|
"standardFields.type.dimension.label",
|
||
|
|
"standardFields.type.image.label",
|
||
|
|
"standardFields.fallback.service",
|
||
|
|
"standardFields.fallback.eprel_id",
|
||
|
|
"nav.admin",
|
||
|
|
"nav.ai",
|
||
|
|
"nav.feeds",
|
||
|
|
"nav.section.feeds",
|
||
|
|
"nav.section.marketing",
|
||
|
|
"nav.seo",
|
||
|
|
"processing.actions.export",
|
||
|
|
"processing.col.status",
|
||
|
|
"processing.httpError",
|
||
|
|
"processing.skip",
|
||
|
|
"processing.step.eprel",
|
||
|
|
"processing.type.eprel",
|
||
|
|
"processing.type.seo",
|
||
|
|
"products.actions.export",
|
||
|
|
"products.edit.specs",
|
||
|
|
"products.edit.specsBadge",
|
||
|
|
"products.edit.status",
|
||
|
|
"products.edit.tab.feed",
|
||
|
|
"products.issue.gtin",
|
||
|
|
"products.table.colFeed",
|
||
|
|
"products.table.colStatus",
|
||
|
|
"settings.email",
|
||
|
|
"settings.inviteEmail",
|
||
|
|
"settings.inviteEmailPlaceholder",
|
||
|
|
"settings.keyNamePlaceholder",
|
||
|
|
"settings.plan",
|
||
|
|
"settings.role.admin",
|
||
|
|
"settings.table.email",
|
||
|
|
"settings.table.status",
|
||
|
|
"shopify.credentialsDesc.code",
|
||
|
|
"shopify.setup.step3.after",
|
||
|
|
"shopify.setup.step4.after",
|
||
|
|
"shopify.setup.step4.domain",
|
||
|
|
"standardFields.fallback.color",
|
||
|
|
"standardFields.fallback.gtin",
|
||
|
|
"standardFields.fallback.material",
|
||
|
|
"standardFields.fallback.mpn",
|
||
|
|
"standardFields.fallback.sku",
|
||
|
|
"standardFields.fallback.stock",
|
||
|
|
"standardFields.field.keyPlaceholder",
|
||
|
|
"standardFields.field.unitPlaceholder",
|
||
|
|
"standardFields.type.color.label",
|
||
|
|
"standardFields.type.url.label",
|
||
|
|
"stats.feeds",
|
||
|
|
"status.emDash",
|
||
|
|
"stores.docsPrefix",
|
||
|
|
"stores.shopify.title",
|
||
|
|
"stores.woo.title",
|
||
|
|
"toast.support.replyRe",
|
||
|
|
"woo.field.consumerKey",
|
||
|
|
"woo.field.consumerSecret",
|
||
|
|
"woo.match.ean",
|
||
|
|
"woo.match.sku",
|
||
|
|
"woo.setup.step3.after",
|
||
|
|
"woo.setup.step3.arrow"
|
||
|
|
]);
|
||
|
|
|
||
|
|
/** @type {Record<string, Record<string, string>>} */
|
||
|
|
export const EXTRA = {};
|
||
|
|
|
||
|
|
function fill(locales, map) {
|
||
|
|
for (const [key, byLocale] of Object.entries(map)) {
|
||
|
|
for (const [code, text] of Object.entries(byLocale)) {
|
||
|
|
EXTRA[code] ??= {};
|
||
|
|
EXTRA[code][key] = text;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
fill(
|
||
|
|
null,
|
||
|
|
{
|
||
|
|
"common.askAdmin": {
|
||
|
|
es: "Pregunta a un administrador de la empresa",
|
||
|
|
fr: "Demandez à un administrateur de l'entreprise",
|
||
|
|
de: "Fragen Sie einen Unternehmens-Admin",
|
||
|
|
it: "Chiedi a un amministratore dell'azienda",
|
||
|
|
pt: "Peça a um administrador da empresa",
|
||
|
|
nl: "Vraag een bedrijfsbeheerder",
|
||
|
|
pl: "Zapytaj administratora firmy",
|
||
|
|
ja: "会社の管理者に問い合わせる"
|
||
|
|
},
|
||
|
|
"common.you": {
|
||
|
|
es: "Tú",
|
||
|
|
fr: "Vous",
|
||
|
|
de: "Sie",
|
||
|
|
it: "Tu",
|
||
|
|
pt: "Você",
|
||
|
|
nl: "U",
|
||
|
|
pl: "Ty",
|
||
|
|
ja: "あなた"
|
||
|
|
},
|
||
|
|
"common.active": {
|
||
|
|
es: "Activo",
|
||
|
|
fr: "Actif",
|
||
|
|
de: "Aktiv",
|
||
|
|
it: "Attivo",
|
||
|
|
pt: "Ativo",
|
||
|
|
nl: "Actief",
|
||
|
|
pl: "Aktywny",
|
||
|
|
ja: "有効"
|
||
|
|
},
|
||
|
|
"common.pending": {
|
||
|
|
es: "Pendiente",
|
||
|
|
fr: "En attente",
|
||
|
|
de: "Ausstehend",
|
||
|
|
it: "In sospeso",
|
||
|
|
pt: "Pendente",
|
||
|
|
nl: "In behandeling",
|
||
|
|
pl: "Oczekujące",
|
||
|
|
ja: "保留中"
|
||
|
|
},
|
||
|
|
"common.email": {
|
||
|
|
es: "Correo electrónico",
|
||
|
|
fr: "E-mail",
|
||
|
|
de: "E-Mail",
|
||
|
|
it: "Email",
|
||
|
|
pt: "E-mail",
|
||
|
|
nl: "E-mail",
|
||
|
|
pl: "E-mail",
|
||
|
|
ja: "メール"
|
||
|
|
},
|
||
|
|
"common.password": {
|
||
|
|
es: "Contraseña",
|
||
|
|
fr: "Mot de passe",
|
||
|
|
de: "Passwort",
|
||
|
|
it: "Password",
|
||
|
|
pt: "Palavra-passe",
|
||
|
|
nl: "Wachtwoord",
|
||
|
|
pl: "Hasło",
|
||
|
|
ja: "パスワード"
|
||
|
|
},
|
||
|
|
"common.name": {
|
||
|
|
es: "Tu nombre",
|
||
|
|
fr: "Votre nom",
|
||
|
|
de: "Ihr Name",
|
||
|
|
it: "Il tuo nome",
|
||
|
|
pt: "O seu nome",
|
||
|
|
nl: "Uw naam",
|
||
|
|
pl: "Twoje imię i nazwisko",
|
||
|
|
ja: "お名前"
|
||
|
|
},
|
||
|
|
"common.viewPricing": {
|
||
|
|
es: "Ver precios",
|
||
|
|
fr: "Voir les tarifs",
|
||
|
|
de: "Preise ansehen",
|
||
|
|
it: "Vedi i prezzi",
|
||
|
|
pt: "Ver preços",
|
||
|
|
nl: "Prijzen bekijken",
|
||
|
|
pl: "Zobacz cennik",
|
||
|
|
ja: "料金を見る"
|
||
|
|
},
|
||
|
|
"common.backToSignIn": {
|
||
|
|
es: "Volver a iniciar sesión",
|
||
|
|
fr: "Retour à la connexion",
|
||
|
|
de: "Zurück zur Anmeldung",
|
||
|
|
it: "Torna all'accesso",
|
||
|
|
pt: "Voltar ao início de sessão",
|
||
|
|
nl: "Terug naar inloggen",
|
||
|
|
pl: "Powrót do logowania",
|
||
|
|
ja: "ログインに戻る"
|
||
|
|
},
|
||
|
|
"common.signingOut": {
|
||
|
|
es: "Cerrando sesión…",
|
||
|
|
fr: "Déconnexion…",
|
||
|
|
de: "Abmelden…",
|
||
|
|
it: "Disconnessione…",
|
||
|
|
pt: "A terminar sessão…",
|
||
|
|
nl: "Bezig met uitloggen…",
|
||
|
|
pl: "Wylogowywanie…",
|
||
|
|
ja: "ログアウト中…"
|
||
|
|
},
|
||
|
|
"common.signOutAndContinue": {
|
||
|
|
es: "Cerrar sesión y continuar",
|
||
|
|
fr: "Se déconnecter et continuer",
|
||
|
|
de: "Abmelden und fortfahren",
|
||
|
|
it: "Esci e continua",
|
||
|
|
pt: "Terminar sessão e continuar",
|
||
|
|
nl: "Uitloggen en doorgaan",
|
||
|
|
pl: "Wyloguj się i kontynuuj",
|
||
|
|
ja: "ログアウトして続行"
|
||
|
|
},
|
||
|
|
"common.staySignedIn": {
|
||
|
|
es: "Seguir conectado",
|
||
|
|
fr: "Rester connecté",
|
||
|
|
de: "Angemeldet bleiben",
|
||
|
|
it: "Resta connesso",
|
||
|
|
pt: "Manter sessão iniciada",
|
||
|
|
nl: "Ingelogd blijven",
|
||
|
|
pl: "Pozostań zalogowany",
|
||
|
|
ja: "ログインしたままにする"
|
||
|
|
},
|
||
|
|
"common.startOver": {
|
||
|
|
es: "Empezar de nuevo",
|
||
|
|
fr: "Recommencer",
|
||
|
|
de: "Von vorn beginnen",
|
||
|
|
it: "Ricomincia",
|
||
|
|
pt: "Começar de novo",
|
||
|
|
nl: "Opnieuw beginnen",
|
||
|
|
pl: "Zacznij od nowa",
|
||
|
|
ja: "最初から"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
// Keep file size manageable: remaining extras live in locale-extra-rest.mjs
|