fix(console): zen workspace translation cleanup

pull/12694/head^2
Adam 2026-02-08 16:21:59 -06:00
parent 43811b62d2
commit 6490fb0148
No known key found for this signature in database
GPG Key ID: 9CB48779AF150E75
11 changed files with 677 additions and 218 deletions

View File

@ -351,8 +351,8 @@ export const dict = {
"changelog.empty": "changelog.empty":
"\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0623\u064a \u0625\u062f\u062e\u0627\u0644\u0627\u062a \u0641\u064a \u0633\u062c\u0644 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a.", "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0623\u064a \u0625\u062f\u062e\u0627\u0644\u0627\u062a \u0641\u064a \u0633\u062c\u0644 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a.",
"changelog.viewJson": "\u0639\u0631\u0636 JSON", "changelog.viewJson": "\u0639\u0631\u0636 JSON",
"workspace.nav.zen": "زين", "workspace.nav.zen": "Zen",
"workspace.nav.apiKeys": "API المفاتيح", "workspace.nav.apiKeys": "مفاتيح API",
"workspace.nav.members": "أعضاء", "workspace.nav.members": "أعضاء",
"workspace.nav.billing": "الفواتير", "workspace.nav.billing": "الفواتير",
"workspace.nav.settings": "إعدادات", "workspace.nav.settings": "إعدادات",
@ -365,14 +365,14 @@ export const dict = {
"workspace.newUser.feature.quality.title": "أعلى جودة", "workspace.newUser.feature.quality.title": "أعلى جودة",
"workspace.newUser.feature.quality.body": "workspace.newUser.feature.quality.body":
"الوصول إلى النماذج التي تم تكوينها لتحقيق الأداء الأمثل - لا يوجد تخفيضات أو توجيه إلى موفري الخدمة الأرخص.", "الوصول إلى النماذج التي تم تكوينها لتحقيق الأداء الأمثل - لا يوجد تخفيضات أو توجيه إلى موفري الخدمة الأرخص.",
"workspace.newUser.feature.lockin.title": "لا يوجد قفل", "workspace.newUser.feature.lockin.title": "بدون احتجاز بمزوّد واحد",
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"استخدم Zen مع أي وكيل ترميز، واستمر في استخدام موفري الخدمات الآخرين مع opencode وقتما تشاء.", "استخدم Zen مع أي وكيل ترميز، واستمر في استخدام موفري الخدمات الآخرين مع opencode وقتما تشاء.",
"workspace.newUser.copyApiKey": "انسخ مفتاح API", "workspace.newUser.copyApiKey": "انسخ مفتاح API",
"workspace.newUser.copyKey": "نسخ المفتاح", "workspace.newUser.copyKey": "نسخ المفتاح",
"workspace.newUser.copied": "منسوخ!", "workspace.newUser.copied": "منسوخ!",
"workspace.newUser.step.enableBilling": "تمكين الفوترة", "workspace.newUser.step.enableBilling": "تمكين الفوترة",
"workspace.newUser.step.login.before": "يجري", "workspace.newUser.step.login.before": "شغّل",
"workspace.newUser.step.login.after": "وحدد opencode", "workspace.newUser.step.login.after": "وحدد opencode",
"workspace.newUser.step.pasteKey": "الصق مفتاح API الخاص بك", "workspace.newUser.step.pasteKey": "الصق مفتاح API الخاص بك",
"workspace.newUser.step.models.before": "ابدأ opencode ثم قم بالتشغيل", "workspace.newUser.step.models.before": "ابدأ opencode ثم قم بالتشغيل",
@ -390,7 +390,7 @@ export const dict = {
"workspace.providers.saving": "توفير...", "workspace.providers.saving": "توفير...",
"workspace.providers.save": "يحفظ", "workspace.providers.save": "يحفظ",
"workspace.providers.table.provider": "مزود", "workspace.providers.table.provider": "مزود",
"workspace.providers.table.apiKey": "API المفتاح", "workspace.providers.table.apiKey": "مفتاح API",
"workspace.usage.title": "تاريخ الاستخدام", "workspace.usage.title": "تاريخ الاستخدام",
"workspace.usage.subtitle": "استخدام وتكاليف API الأخيرة.", "workspace.usage.subtitle": "استخدام وتكاليف API الأخيرة.",
"workspace.usage.empty": "قم بإجراء أول مكالمة API للبدء.", "workspace.usage.empty": "قم بإجراء أول مكالمة API للبدء.",
@ -398,25 +398,25 @@ export const dict = {
"workspace.usage.table.model": "نموذج", "workspace.usage.table.model": "نموذج",
"workspace.usage.table.input": "مدخل", "workspace.usage.table.input": "مدخل",
"workspace.usage.table.output": "الإخراج", "workspace.usage.table.output": "الإخراج",
"workspace.usage.table.cost": "يكلف", "workspace.usage.table.cost": "التكلفة",
"workspace.usage.breakdown.input": "مدخل", "workspace.usage.breakdown.input": "مدخل",
"workspace.usage.breakdown.cacheRead": "قراءة ذاكرة التخزين المؤقت", "workspace.usage.breakdown.cacheRead": "قراءة ذاكرة التخزين المؤقت",
"workspace.usage.breakdown.cacheWrite": "كتابة ذاكرة التخزين المؤقت", "workspace.usage.breakdown.cacheWrite": "كتابة ذاكرة التخزين المؤقت",
"workspace.usage.breakdown.output": "الإخراج", "workspace.usage.breakdown.output": "الإخراج",
"workspace.usage.breakdown.reasoning": "المنطق", "workspace.usage.breakdown.reasoning": "المنطق",
"workspace.usage.subscription": "الاشتراك (${{amount}})", "workspace.usage.subscription": "الاشتراك (${{amount}})",
"workspace.cost.title": "يكلف", "workspace.cost.title": "التكلفة",
"workspace.cost.subtitle": "تكاليف الاستخدام مقسمة حسب النموذج.", "workspace.cost.subtitle": "تكاليف الاستخدام مقسمة حسب النموذج.",
"workspace.cost.allModels": "جميع الموديلات", "workspace.cost.allModels": "جميع النماذج",
"workspace.cost.allKeys": "جميع المفاتيح", "workspace.cost.allKeys": "جميع المفاتيح",
"workspace.cost.deletedSuffix": "(محذوف)", "workspace.cost.deletedSuffix": "(محذوف)",
"workspace.cost.empty": "لا توجد بيانات استخدام متاحة للفترة المحددة.", "workspace.cost.empty": "لا توجد بيانات استخدام متاحة للفترة المحددة.",
"workspace.cost.subscriptionShort": "الفرعية", "workspace.cost.subscriptionShort": "اشتراك",
"workspace.keys.title": "API المفاتيح", "workspace.keys.title": "مفاتيح API",
"workspace.keys.subtitle": "إدارة مفاتيح API الخاصة بك للوصول إلى خدمات opencode.", "workspace.keys.subtitle": "إدارة مفاتيح API الخاصة بك للوصول إلى خدمات opencode.",
"workspace.keys.create": "قم بإنشاء مفتاح API", "workspace.keys.create": "قم بإنشاء مفتاح API",
"workspace.keys.placeholder": "أدخل اسم المفتاح", "workspace.keys.placeholder": "أدخل اسم المفتاح",
"workspace.keys.empty": "قم بإنشاء مفتاح opencode للبوابة API", "workspace.keys.empty": "أنشئ مفتاح API لبوابة opencode",
"workspace.keys.table.name": "اسم", "workspace.keys.table.name": "اسم",
"workspace.keys.table.key": "مفتاح", "workspace.keys.table.key": "مفتاح",
"workspace.keys.table.createdBy": "تم الإنشاء بواسطة", "workspace.keys.table.createdBy": "تم الإنشاء بواسطة",
@ -442,14 +442,14 @@ export const dict = {
"workspace.members.table.email": "بريد إلكتروني", "workspace.members.table.email": "بريد إلكتروني",
"workspace.members.table.role": "دور", "workspace.members.table.role": "دور",
"workspace.members.table.monthLimit": "حد الشهر", "workspace.members.table.monthLimit": "حد الشهر",
"workspace.members.role.admin": "مسؤل", "workspace.members.role.admin": "مسؤول",
"workspace.members.role.adminDescription": "يمكن إدارة النماذج، والأعضاء، والفواتير", "workspace.members.role.adminDescription": "يمكن إدارة النماذج، والأعضاء، والفواتير",
"workspace.members.role.member": "عضو", "workspace.members.role.member": "عضو",
"workspace.members.role.memberDescription": "يمكنهم فقط إنشاء مفاتيح API لأنفسهم", "workspace.members.role.memberDescription": "يمكنهم فقط إنشاء مفاتيح API لأنفسهم",
"workspace.settings.title": "إعدادات", "workspace.settings.title": "إعدادات",
"workspace.settings.subtitle": "قم بتحديث اسم مساحة العمل الخاصة بك وتفضيلاتك.", "workspace.settings.subtitle": "قم بتحديث اسم مساحة العمل الخاصة بك وتفضيلاتك.",
"workspace.settings.workspaceName": "اسم مساحة العمل", "workspace.settings.workspaceName": "اسم مساحة العمل",
"workspace.settings.defaultName": "تقصير", "workspace.settings.defaultName": "الافتراضي",
"workspace.settings.updating": "جارٍ التحديث...", "workspace.settings.updating": "جارٍ التحديث...",
"workspace.settings.save": "يحفظ", "workspace.settings.save": "يحفظ",
"workspace.settings.edit": "يحرر", "workspace.settings.edit": "يحرر",
@ -461,37 +461,37 @@ export const dict = {
"workspace.billing.add": "أضف $", "workspace.billing.add": "أضف $",
"workspace.billing.enterAmount": "أدخل المبلغ", "workspace.billing.enterAmount": "أدخل المبلغ",
"workspace.billing.loading": "تحميل...", "workspace.billing.loading": "تحميل...",
"workspace.billing.addAction": "يضيف", "workspace.billing.addAction": "إضافة",
"workspace.billing.addBalance": "إضافة الرصيد", "workspace.billing.addBalance": "إضافة الرصيد",
"workspace.billing.linkedToStripe": "مرتبطة بالشريط", "workspace.billing.linkedToStripe": "مرتبط بـ Stripe",
"workspace.billing.manage": "يدير", "workspace.billing.manage": "إدارة",
"workspace.billing.enable": "تمكين الفوترة", "workspace.billing.enable": "تمكين الفوترة",
"workspace.monthlyLimit.title": "الحد الشهري", "workspace.monthlyLimit.title": "الحد الشهري",
"workspace.monthlyLimit.subtitle": "قم بتعيين حد الاستخدام الشهري لحسابك.", "workspace.monthlyLimit.subtitle": "قم بتعيين حد الاستخدام الشهري لحسابك.",
"workspace.monthlyLimit.placeholder": "50", "workspace.monthlyLimit.placeholder": "50",
"workspace.monthlyLimit.setting": لسة...", "workspace.monthlyLimit.setting": ارٍ التعيين...",
"workspace.monthlyLimit.set": "تعيين", "workspace.monthlyLimit.set": "تعيين",
"workspace.monthlyLimit.edit": "تحرير الحد", "workspace.monthlyLimit.edit": "تحرير الحد",
"workspace.monthlyLimit.noLimit": "لم يتم تعيين حد الاستخدام.", "workspace.monthlyLimit.noLimit": "لم يتم تعيين حد الاستخدام.",
"workspace.monthlyLimit.currentUsage.beforeMonth": "الاستخدام الحالي ل", "workspace.monthlyLimit.currentUsage.beforeMonth": "الاستخدام الحالي ل",
"workspace.monthlyLimit.currentUsage.beforeAmount": "هو $", "workspace.monthlyLimit.currentUsage.beforeAmount": "هو $",
"workspace.reload.title": "إعادة التحميل التلقائي", "workspace.reload.title": "إعادة الشحن التلقائي",
"workspace.reload.disabled.before": "إعادة التحميل التلقائي هو", "workspace.reload.disabled.before": "إعادة الشحن التلقائي",
"workspace.reload.disabled.state": "عاجز", "workspace.reload.disabled.state": "معطّل",
"workspace.reload.disabled.after": "تمكين إعادة التحميل تلقائيًا عندما يكون الرصيد منخفضًا.", "workspace.reload.disabled.after": "فعّلها لإعادة شحن الرصيد تلقائيًا عندما يكون منخفضًا.",
"workspace.reload.enabled.before": "إعادة التحميل التلقائي هو", "workspace.reload.enabled.before": "إعادة الشحن التلقائي",
"workspace.reload.enabled.state": "ممكّن", "workspace.reload.enabled.state": "ممكّن",
"workspace.reload.enabled.middle": "سنقوم بإعادة التحميل", "workspace.reload.enabled.middle": "سنعيد شحن رصيدك بمبلغ",
"workspace.reload.processingFee": "رسوم المعالجة", "workspace.reload.processingFee": "رسوم المعالجة",
"workspace.reload.enabled.after": "عندما يصل التوازن", "workspace.reload.enabled.after": "عندما يصل الرصيد إلى",
"workspace.reload.edit": "يحرر", "workspace.reload.edit": "يحرر",
"workspace.reload.enable": "يُمكَِن", "workspace.reload.enable": "تفعيل",
"workspace.reload.enableAutoReload": مكين إعادة التحميل التلقائي", "workspace.reload.enableAutoReload": فعيل إعادة الشحن التلقائي",
"workspace.reload.reloadAmount": "إعادة تحميل $", "workspace.reload.reloadAmount": "مبلغ إعادة الشحن $",
"workspace.reload.whenBalanceReaches": "عندما يصل الرصيد إلى $", "workspace.reload.whenBalanceReaches": "عندما يصل الرصيد إلى $",
"workspace.reload.saving": "توفير...", "workspace.reload.saving": "توفير...",
"workspace.reload.save": "يحفظ", "workspace.reload.save": "يحفظ",
"workspace.reload.failedAt": "فشلت عملية إعادة التحميل عند", "workspace.reload.failedAt": "فشلت إعادة الشحن في",
"workspace.reload.reason": "سبب:", "workspace.reload.reason": "سبب:",
"workspace.reload.updatePaymentMethod": "يرجى تحديث طريقة الدفع الخاصة بك والمحاولة مرة أخرى.", "workspace.reload.updatePaymentMethod": "يرجى تحديث طريقة الدفع الخاصة بك والمحاولة مرة أخرى.",
"workspace.reload.retrying": "جارٍ إعادة المحاولة...", "workspace.reload.retrying": "جارٍ إعادة المحاولة...",
@ -500,11 +500,11 @@ export const dict = {
"workspace.payments.subtitle": "معاملات الدفع الأخيرة.", "workspace.payments.subtitle": "معاملات الدفع الأخيرة.",
"workspace.payments.table.date": "تاريخ", "workspace.payments.table.date": "تاريخ",
"workspace.payments.table.paymentId": "معرف الدفع", "workspace.payments.table.paymentId": "معرف الدفع",
"workspace.payments.table.amount": "كمية", "workspace.payments.table.amount": "المبلغ",
"workspace.payments.table.receipt": "إيصال", "workspace.payments.table.receipt": "إيصال",
"workspace.payments.type.credit": "ائتمان", "workspace.payments.type.credit": "ائتمان",
"workspace.payments.type.subscription": "الاشتراك", "workspace.payments.type.subscription": "الاشتراك",
"workspace.payments.view": "منظر", "workspace.payments.view": "عرض",
"workspace.black.loading": "تحميل...", "workspace.black.loading": "تحميل...",
"workspace.black.time.day": "يوم", "workspace.black.time.day": "يوم",
"workspace.black.time.days": "أيام", "workspace.black.time.days": "أيام",
@ -521,8 +521,8 @@ export const dict = {
"workspace.black.subscription.resetsIn": "إعادة تعيين في", "workspace.black.subscription.resetsIn": "إعادة تعيين في",
"workspace.black.subscription.useBalance": "استخدم رصيدك المتوفر بعد الوصول إلى حدود الاستخدام", "workspace.black.subscription.useBalance": "استخدم رصيدك المتوفر بعد الوصول إلى حدود الاستخدام",
"workspace.black.waitlist.title": "قائمة الانتظار", "workspace.black.waitlist.title": "قائمة الانتظار",
"workspace.black.waitlist.joined": "أنت على قائمة الانتظار للخطة السوداء {{plan}} دولار شهريًا OpenCode.", "workspace.black.waitlist.joined": "أنت على قائمة الانتظار لخطة OpenCode Black بقيمة ${{plan}} شهريًا.",
"workspace.black.waitlist.ready": "نحن على استعداد لتسجيلك في خطة Black {{plan}} الشهرية OpenCode.", "workspace.black.waitlist.ready": "نحن مستعدون لتسجيلك في خطة OpenCode Black بقيمة ${{plan}} شهريًا.",
"workspace.black.waitlist.leave": "ترك قائمة الانتظار", "workspace.black.waitlist.leave": "ترك قائمة الانتظار",
"workspace.black.waitlist.leaving": "مغادرة...", "workspace.black.waitlist.leaving": "مغادرة...",
"workspace.black.waitlist.left": "غادر", "workspace.black.waitlist.left": "غادر",

View File

@ -294,18 +294,18 @@ export const dict = {
"workspace.home.billing.currentBalance": "Nuværende saldo", "workspace.home.billing.currentBalance": "Nuværende saldo",
"workspace.newUser.feature.tested.title": "Testede og verificerede modeller", "workspace.newUser.feature.tested.title": "Testede og verificerede modeller",
"workspace.newUser.feature.tested.body": "workspace.newUser.feature.tested.body":
"Vi har benchmarket og testet modeller specifikt til kodningsmidler for at sikre den bedste ydeevne.", "Vi har benchmarket og testet modeller specifikt til kodningsagenter for at sikre den bedste ydeevne.",
"workspace.newUser.feature.quality.title": "Højeste kvalitet", "workspace.newUser.feature.quality.title": "Højeste kvalitet",
"workspace.newUser.feature.quality.body": "workspace.newUser.feature.quality.body":
"Få adgang til modeller konfigureret til optimal ydeevne - ingen nedgraderinger eller routing til billigere udbydere.", "Få adgang til modeller konfigureret til optimal ydeevne - ingen nedgraderinger eller routing til billigere udbydere.",
"workspace.newUser.feature.lockin.title": "Ingen indlåsning", "workspace.newUser.feature.lockin.title": "Ingen indlåsning",
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"Brug Zen med en hvilken som helst kodningsagent, og fortsæt med at bruge andre udbydere med opencode, når du vil.", "Brug Zen med en hvilken som helst kodningsagent, og fortsæt med at bruge andre udbydere med opencode, når du vil.",
"workspace.newUser.copyApiKey": "Kopiér nøglen API", "workspace.newUser.copyApiKey": "Kopiér API-nøgle",
"workspace.newUser.copyKey": "Kopier nøgle", "workspace.newUser.copyKey": "Kopier nøgle",
"workspace.newUser.copied": "Kopieret!", "workspace.newUser.copied": "Kopieret!",
"workspace.newUser.step.enableBilling": "Aktiver fakturering", "workspace.newUser.step.enableBilling": "Aktiver fakturering",
"workspace.newUser.step.login.before": "Løbe", "workspace.newUser.step.login.before": "Kør",
"workspace.newUser.step.login.after": "og vælg opencode", "workspace.newUser.step.login.after": "og vælg opencode",
"workspace.newUser.step.pasteKey": "Indsæt din API nøgle", "workspace.newUser.step.pasteKey": "Indsæt din API nøgle",
"workspace.newUser.step.models.before": "Start opencode og kør", "workspace.newUser.step.models.before": "Start opencode og kør",
@ -316,12 +316,12 @@ export const dict = {
"workspace.models.table.enabled": "Aktiveret", "workspace.models.table.enabled": "Aktiveret",
"workspace.providers.title": "Medbring din egen nøgle", "workspace.providers.title": "Medbring din egen nøgle",
"workspace.providers.subtitle": "Konfigurer dine egne API nøgler fra AI-udbydere.", "workspace.providers.subtitle": "Konfigurer dine egne API nøgler fra AI-udbydere.",
"workspace.providers.placeholder": "Indtast nøglen {{provider}} API ({{prefix}}...)", "workspace.providers.placeholder": "Indtast {{provider}} API-nøgle ({{prefix}}...)",
"workspace.providers.configure": "Konfigurer", "workspace.providers.configure": "Konfigurer",
"workspace.providers.edit": "Redigere", "workspace.providers.edit": "Rediger",
"workspace.providers.delete": "Slet", "workspace.providers.delete": "Slet",
"workspace.providers.saving": "Gemmer...", "workspace.providers.saving": "Gemmer...",
"workspace.providers.save": "Spare", "workspace.providers.save": "Gem",
"workspace.providers.table.provider": "Udbyder", "workspace.providers.table.provider": "Udbyder",
"workspace.providers.table.apiKey": "API Nøgle", "workspace.providers.table.apiKey": "API Nøgle",
"workspace.usage.title": "Brugshistorik", "workspace.usage.title": "Brugshistorik",
@ -330,15 +330,15 @@ export const dict = {
"workspace.usage.table.date": "Dato", "workspace.usage.table.date": "Dato",
"workspace.usage.table.model": "Model", "workspace.usage.table.model": "Model",
"workspace.usage.table.input": "Input", "workspace.usage.table.input": "Input",
"workspace.usage.table.output": "Produktion", "workspace.usage.table.output": "Output",
"workspace.usage.table.cost": "Koste", "workspace.usage.table.cost": "Omkostning",
"workspace.usage.breakdown.input": "Input", "workspace.usage.breakdown.input": "Input",
"workspace.usage.breakdown.cacheRead": "Cache læst", "workspace.usage.breakdown.cacheRead": "Cache læst",
"workspace.usage.breakdown.cacheWrite": "Cache skriv", "workspace.usage.breakdown.cacheWrite": "Cache skriv",
"workspace.usage.breakdown.output": "Produktion", "workspace.usage.breakdown.output": "Output",
"workspace.usage.breakdown.reasoning": "Ræsonnement", "workspace.usage.breakdown.reasoning": "Ræsonnement",
"workspace.usage.subscription": "abonnement (${{amount}})", "workspace.usage.subscription": "abonnement (${{amount}})",
"workspace.cost.title": "Koste", "workspace.cost.title": "Omkostninger",
"workspace.cost.subtitle": "Brugsomkostninger opdelt efter model.", "workspace.cost.subtitle": "Brugsomkostninger opdelt efter model.",
"workspace.cost.allModels": "Alle modeller", "workspace.cost.allModels": "Alle modeller",
"workspace.cost.allKeys": "Alle nøgler", "workspace.cost.allKeys": "Alle nøgler",
@ -354,7 +354,7 @@ export const dict = {
"workspace.keys.table.key": "Nøgle", "workspace.keys.table.key": "Nøgle",
"workspace.keys.table.createdBy": "Skabt af", "workspace.keys.table.createdBy": "Skabt af",
"workspace.keys.table.lastUsed": "Sidst brugt", "workspace.keys.table.lastUsed": "Sidst brugt",
"workspace.keys.copyApiKey": "Kopiér nøglen API", "workspace.keys.copyApiKey": "Kopiér API-nøgle",
"workspace.keys.delete": "Slet", "workspace.keys.delete": "Slet",
"workspace.members.title": "Medlemmer", "workspace.members.title": "Medlemmer",
"workspace.members.subtitle": "Administrer arbejdsområdemedlemmer og deres tilladelser.", "workspace.members.subtitle": "Administrer arbejdsområdemedlemmer og deres tilladelser.",
@ -368,10 +368,10 @@ export const dict = {
"workspace.members.noLimit": "Ingen grænse", "workspace.members.noLimit": "Ingen grænse",
"workspace.members.noLimitLowercase": "ingen grænse", "workspace.members.noLimitLowercase": "ingen grænse",
"workspace.members.invited": "inviteret", "workspace.members.invited": "inviteret",
"workspace.members.edit": "Redigere", "workspace.members.edit": "Rediger",
"workspace.members.delete": "Slet", "workspace.members.delete": "Slet",
"workspace.members.saving": "Gemmer...", "workspace.members.saving": "Gemmer...",
"workspace.members.save": "Spare", "workspace.members.save": "Gem",
"workspace.members.table.email": "E-mail", "workspace.members.table.email": "E-mail",
"workspace.members.table.role": "Rolle", "workspace.members.table.role": "Rolle",
"workspace.members.table.monthLimit": "Månedsgrænse", "workspace.members.table.monthLimit": "Månedsgrænse",
@ -382,10 +382,10 @@ export const dict = {
"workspace.settings.title": "Indstillinger", "workspace.settings.title": "Indstillinger",
"workspace.settings.subtitle": "Opdater dit arbejdsområdes navn og præferencer.", "workspace.settings.subtitle": "Opdater dit arbejdsområdes navn og præferencer.",
"workspace.settings.workspaceName": "Arbejdsområdets navn", "workspace.settings.workspaceName": "Arbejdsområdets navn",
"workspace.settings.defaultName": "Misligholdelse", "workspace.settings.defaultName": "Standard",
"workspace.settings.updating": "Opdaterer...", "workspace.settings.updating": "Opdaterer...",
"workspace.settings.save": "Spare", "workspace.settings.save": "Gem",
"workspace.settings.edit": "Redigere", "workspace.settings.edit": "Rediger",
"workspace.billing.title": "Fakturering", "workspace.billing.title": "Fakturering",
"workspace.billing.subtitle.beforeLink": "Administrer betalingsmetoder.", "workspace.billing.subtitle.beforeLink": "Administrer betalingsmetoder.",
"workspace.billing.contactUs": "Kontakt os", "workspace.billing.contactUs": "Kontakt os",
@ -394,10 +394,10 @@ export const dict = {
"workspace.billing.add": "Tilføj $", "workspace.billing.add": "Tilføj $",
"workspace.billing.enterAmount": "Indtast beløb", "workspace.billing.enterAmount": "Indtast beløb",
"workspace.billing.loading": "Indlæser...", "workspace.billing.loading": "Indlæser...",
"workspace.billing.addAction": "Tilføje", "workspace.billing.addAction": "Tilføj",
"workspace.billing.addBalance": "Tilføj balance", "workspace.billing.addBalance": "Tilføj balance",
"workspace.billing.linkedToStripe": "Forbundet til Stripe", "workspace.billing.linkedToStripe": "Forbundet til Stripe",
"workspace.billing.manage": "Styre", "workspace.billing.manage": "Administrer",
"workspace.billing.enable": "Aktiver fakturering", "workspace.billing.enable": "Aktiver fakturering",
"workspace.monthlyLimit.title": "Månedlig grænse", "workspace.monthlyLimit.title": "Månedlig grænse",
"workspace.monthlyLimit.subtitle": "Indstil en månedlig forbrugsgrænse for din konto.", "workspace.monthlyLimit.subtitle": "Indstil en månedlig forbrugsgrænse for din konto.",
@ -408,23 +408,23 @@ export const dict = {
"workspace.monthlyLimit.noLimit": "Ingen forbrugsgrænse angivet.", "workspace.monthlyLimit.noLimit": "Ingen forbrugsgrænse angivet.",
"workspace.monthlyLimit.currentUsage.beforeMonth": "Nuværende brug for", "workspace.monthlyLimit.currentUsage.beforeMonth": "Nuværende brug for",
"workspace.monthlyLimit.currentUsage.beforeAmount": "er $", "workspace.monthlyLimit.currentUsage.beforeAmount": "er $",
"workspace.reload.title": "Automatisk genindlæsning", "workspace.reload.title": "Automatisk genopfyldning",
"workspace.reload.disabled.before": "Automatisk genindlæsning er", "workspace.reload.disabled.before": "Automatisk genopfyldning er",
"workspace.reload.disabled.state": "handicappet", "workspace.reload.disabled.state": "deaktiveret",
"workspace.reload.disabled.after": "Aktiver for automatisk at genindlæse, når balancen er lav.", "workspace.reload.disabled.after": "Aktiver for automatisk at genopfylde, når saldoen er lav.",
"workspace.reload.enabled.before": "Automatisk genindlæsning er", "workspace.reload.enabled.before": "Automatisk genopfyldning er",
"workspace.reload.enabled.state": "aktiveret", "workspace.reload.enabled.state": "aktiveret",
"workspace.reload.enabled.middle": "Vi genindlæser", "workspace.reload.enabled.middle": "Vi genopfylder",
"workspace.reload.processingFee": "ekspeditionsgebyr", "workspace.reload.processingFee": "ekspeditionsgebyr",
"workspace.reload.enabled.after": "når balancen er nået", "workspace.reload.enabled.after": "når balancen er nået",
"workspace.reload.edit": "Redigere", "workspace.reload.edit": "Rediger",
"workspace.reload.enable": "Aktiver", "workspace.reload.enable": "Aktiver",
"workspace.reload.enableAutoReload": "Aktiver automatisk genindlæsning", "workspace.reload.enableAutoReload": "Aktiver automatisk genopfyldning",
"workspace.reload.reloadAmount": "Genindlæs $", "workspace.reload.reloadAmount": "Genopfyld $",
"workspace.reload.whenBalanceReaches": "Når saldoen når $", "workspace.reload.whenBalanceReaches": "Når saldoen når $",
"workspace.reload.saving": "Gemmer...", "workspace.reload.saving": "Gemmer...",
"workspace.reload.save": "Spare", "workspace.reload.save": "Gem",
"workspace.reload.failedAt": "Genindlæsning mislykkedes kl", "workspace.reload.failedAt": "Genopfyldning mislykkedes kl",
"workspace.reload.reason": "Årsag:", "workspace.reload.reason": "Årsag:",
"workspace.reload.updatePaymentMethod": "Opdater din betalingsmetode, og prøv igen.", "workspace.reload.updatePaymentMethod": "Opdater din betalingsmetode, og prøv igen.",
"workspace.reload.retrying": "Prøver igen...", "workspace.reload.retrying": "Prøver igen...",
@ -434,10 +434,10 @@ export const dict = {
"workspace.payments.table.date": "Dato", "workspace.payments.table.date": "Dato",
"workspace.payments.table.paymentId": "Betalings-id", "workspace.payments.table.paymentId": "Betalings-id",
"workspace.payments.table.amount": "Beløb", "workspace.payments.table.amount": "Beløb",
"workspace.payments.table.receipt": "Modtagelse", "workspace.payments.table.receipt": "Kvittering",
"workspace.payments.type.credit": "kredit", "workspace.payments.type.credit": "kredit",
"workspace.payments.type.subscription": "abonnement", "workspace.payments.type.subscription": "abonnement",
"workspace.payments.view": "Udsigt", "workspace.payments.view": "Vis",
"workspace.black.loading": "Indlæser...", "workspace.black.loading": "Indlæser...",
"workspace.black.time.day": "dag", "workspace.black.time.day": "dag",
"workspace.black.time.days": "dage", "workspace.black.time.days": "dage",
@ -458,8 +458,8 @@ export const dict = {
"workspace.black.waitlist.ready": "Vi er klar til at tilmelde dig ${{plan}} per måned OpenCode Black plan.", "workspace.black.waitlist.ready": "Vi er klar til at tilmelde dig ${{plan}} per måned OpenCode Black plan.",
"workspace.black.waitlist.leave": "Forlad venteliste", "workspace.black.waitlist.leave": "Forlad venteliste",
"workspace.black.waitlist.leaving": "Forlader...", "workspace.black.waitlist.leaving": "Forlader...",
"workspace.black.waitlist.left": "Venstre", "workspace.black.waitlist.left": "Forladt",
"workspace.black.waitlist.enroll": "Indskrive", "workspace.black.waitlist.enroll": "Tilmeld",
"workspace.black.waitlist.enrolling": "Tilmelder...", "workspace.black.waitlist.enrolling": "Tilmelder...",
"workspace.black.waitlist.enrolled": "Tilmeldt", "workspace.black.waitlist.enrolled": "Tilmeldt",
"workspace.black.waitlist.enrollNote": "workspace.black.waitlist.enrollNote":

View File

@ -306,27 +306,27 @@ export const dict = {
"workspace.newUser.feature.lockin.title": "Kein Lock-in", "workspace.newUser.feature.lockin.title": "Kein Lock-in",
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"Verwenden Sie Zen mit einem beliebigen Codierungsagenten und nutzen Sie weiterhin andere Anbieter mit opencode, wann immer Sie möchten.", "Verwenden Sie Zen mit einem beliebigen Codierungsagenten und nutzen Sie weiterhin andere Anbieter mit opencode, wann immer Sie möchten.",
"workspace.newUser.copyApiKey": "Kopieren Sie den Schlüssel API", "workspace.newUser.copyApiKey": "API-Schlüssel kopieren",
"workspace.newUser.copyKey": "Schlüssel kopieren", "workspace.newUser.copyKey": "Schlüssel kopieren",
"workspace.newUser.copied": "Kopiert!", "workspace.newUser.copied": "Kopiert!",
"workspace.newUser.step.enableBilling": "Abrechnung aktivieren", "workspace.newUser.step.enableBilling": "Abrechnung aktivieren",
"workspace.newUser.step.login.before": "Laufen", "workspace.newUser.step.login.before": "Führe",
"workspace.newUser.step.login.after": "und wählen Sie opencode", "workspace.newUser.step.login.after": "und wählen Sie opencode",
"workspace.newUser.step.pasteKey": "Fügen Sie Ihren API-Schlüssel ein", "workspace.newUser.step.pasteKey": "Fügen Sie Ihren API-Schlüssel ein",
"workspace.newUser.step.models.before": "Starten Sie opencode und führen Sie es aus", "workspace.newUser.step.models.before": "Starte opencode und führe",
"workspace.newUser.step.models.after": "um ein Modell auszuwählen", "workspace.newUser.step.models.after": "um ein Modell auszuwählen",
"workspace.models.title": "Modelle", "workspace.models.title": "Modelle",
"workspace.models.subtitle.beforeLink": "workspace.models.subtitle.beforeLink":
"Verwalten Sie, auf welche Modelle Arbeitsbereichsmitglieder zugreifen können.", "Verwalten Sie, auf welche Modelle Arbeitsbereichsmitglieder zugreifen können.",
"workspace.models.table.model": "Modell", "workspace.models.table.model": "Modell",
"workspace.models.table.enabled": "Ermöglicht", "workspace.models.table.enabled": "Aktiviert",
"workspace.providers.title": "Bringen Sie Ihren eigenen Schlüssel mit", "workspace.providers.title": "Bringen Sie Ihren eigenen Schlüssel mit",
"workspace.providers.subtitle": "Konfigurieren Sie Ihre eigenen API-Schlüssel von KI-Anbietern.", "workspace.providers.subtitle": "Konfigurieren Sie Ihre eigenen API-Schlüssel von KI-Anbietern.",
"workspace.providers.placeholder": "Geben Sie den Schlüssel {{provider}} API ein ({{prefix}}...)", "workspace.providers.placeholder": "Geben Sie den Schlüssel {{provider}} API ein ({{prefix}}...)",
"workspace.providers.configure": "Konfigurieren", "workspace.providers.configure": "Konfigurieren",
"workspace.providers.edit": "Bearbeiten", "workspace.providers.edit": "Bearbeiten",
"workspace.providers.delete": "Löschen", "workspace.providers.delete": "Löschen",
"workspace.providers.saving": "Sparen...", "workspace.providers.saving": "Wird gespeichert...",
"workspace.providers.save": "Speichern", "workspace.providers.save": "Speichern",
"workspace.providers.table.provider": "Anbieter", "workspace.providers.table.provider": "Anbieter",
"workspace.providers.table.apiKey": "API-Schlüssel", "workspace.providers.table.apiKey": "API-Schlüssel",
@ -335,14 +335,14 @@ export const dict = {
"workspace.usage.empty": "Machen Sie Ihren ersten API-Aufruf, um loszulegen.", "workspace.usage.empty": "Machen Sie Ihren ersten API-Aufruf, um loszulegen.",
"workspace.usage.table.date": "Datum", "workspace.usage.table.date": "Datum",
"workspace.usage.table.model": "Modell", "workspace.usage.table.model": "Modell",
"workspace.usage.table.input": "Eingang", "workspace.usage.table.input": "Input",
"workspace.usage.table.output": "Ausgabe", "workspace.usage.table.output": "Output",
"workspace.usage.table.cost": "Kosten", "workspace.usage.table.cost": "Kosten",
"workspace.usage.breakdown.input": "Eingang", "workspace.usage.breakdown.input": "Input",
"workspace.usage.breakdown.cacheRead": "Cache-Lesen", "workspace.usage.breakdown.cacheRead": "Cache-Lesen",
"workspace.usage.breakdown.cacheWrite": "Cache-Schreiben", "workspace.usage.breakdown.cacheWrite": "Cache-Schreiben",
"workspace.usage.breakdown.output": "Ausgabe", "workspace.usage.breakdown.output": "Output",
"workspace.usage.breakdown.reasoning": "Argumentation", "workspace.usage.breakdown.reasoning": "Reasoning",
"workspace.usage.subscription": "Abonnement (${{amount}})", "workspace.usage.subscription": "Abonnement (${{amount}})",
"workspace.cost.title": "Kosten", "workspace.cost.title": "Kosten",
"workspace.cost.subtitle": "Nutzungskosten aufgeschlüsselt nach Modell.", "workspace.cost.subtitle": "Nutzungskosten aufgeschlüsselt nach Modell.",
@ -360,12 +360,12 @@ export const dict = {
"workspace.keys.table.key": "Schlüssel", "workspace.keys.table.key": "Schlüssel",
"workspace.keys.table.createdBy": "Erstellt von", "workspace.keys.table.createdBy": "Erstellt von",
"workspace.keys.table.lastUsed": "Zuletzt verwendet", "workspace.keys.table.lastUsed": "Zuletzt verwendet",
"workspace.keys.copyApiKey": "Kopieren Sie den Schlüssel API", "workspace.keys.copyApiKey": "API-Schlüssel kopieren",
"workspace.keys.delete": "Löschen", "workspace.keys.delete": "Löschen",
"workspace.members.title": "Mitglieder", "workspace.members.title": "Mitglieder",
"workspace.members.subtitle": "Verwalten Sie Arbeitsbereichsmitglieder und ihre Berechtigungen.", "workspace.members.subtitle": "Verwalten Sie Arbeitsbereichsmitglieder und ihre Berechtigungen.",
"workspace.members.invite": "Mitglied einladen", "workspace.members.invite": "Mitglied einladen",
"workspace.members.inviting": "Einladend...", "workspace.members.inviting": "Wird eingeladen...",
"workspace.members.beta.beforeLink": "Während der Betaversion sind Arbeitsbereiche für Teams kostenlos.", "workspace.members.beta.beforeLink": "Während der Betaversion sind Arbeitsbereiche für Teams kostenlos.",
"workspace.members.form.invitee": "Eingeladen", "workspace.members.form.invitee": "Eingeladen",
"workspace.members.form.emailPlaceholder": "Geben Sie Ihre E-Mail-Adresse ein", "workspace.members.form.emailPlaceholder": "Geben Sie Ihre E-Mail-Adresse ein",
@ -376,7 +376,7 @@ export const dict = {
"workspace.members.invited": "eingeladen", "workspace.members.invited": "eingeladen",
"workspace.members.edit": "Bearbeiten", "workspace.members.edit": "Bearbeiten",
"workspace.members.delete": "Löschen", "workspace.members.delete": "Löschen",
"workspace.members.saving": "Sparen...", "workspace.members.saving": "Wird gespeichert...",
"workspace.members.save": "Speichern", "workspace.members.save": "Speichern",
"workspace.members.table.email": "E-Mail", "workspace.members.table.email": "E-Mail",
"workspace.members.table.role": "Rolle", "workspace.members.table.role": "Rolle",
@ -408,30 +408,30 @@ export const dict = {
"workspace.monthlyLimit.title": "Monatliches Limit", "workspace.monthlyLimit.title": "Monatliches Limit",
"workspace.monthlyLimit.subtitle": "Legen Sie ein monatliches Nutzungslimit für Ihr Konto fest.", "workspace.monthlyLimit.subtitle": "Legen Sie ein monatliches Nutzungslimit für Ihr Konto fest.",
"workspace.monthlyLimit.placeholder": "50", "workspace.monthlyLimit.placeholder": "50",
"workspace.monthlyLimit.setting": "Einstellung...", "workspace.monthlyLimit.setting": "Wird gesetzt...",
"workspace.monthlyLimit.set": "Satz", "workspace.monthlyLimit.set": "Festlegen",
"workspace.monthlyLimit.edit": "Limit bearbeiten", "workspace.monthlyLimit.edit": "Limit bearbeiten",
"workspace.monthlyLimit.noLimit": "Kein Nutzungslimit festgelegt.", "workspace.monthlyLimit.noLimit": "Kein Nutzungslimit festgelegt.",
"workspace.monthlyLimit.currentUsage.beforeMonth": "Aktuelle Nutzung für", "workspace.monthlyLimit.currentUsage.beforeMonth": "Aktuelle Nutzung für",
"workspace.monthlyLimit.currentUsage.beforeAmount": "ist $", "workspace.monthlyLimit.currentUsage.beforeAmount": "ist $",
"workspace.reload.title": "Automatisches Neuladen", "workspace.reload.title": "Automatische Aufladung",
"workspace.reload.disabled.before": "Automatisches Nachladen ist", "workspace.reload.disabled.before": "Automatische Aufladung ist",
"workspace.reload.disabled.state": "deaktiviert", "workspace.reload.disabled.state": "deaktiviert",
"workspace.reload.disabled.after": "workspace.reload.disabled.after":
"Aktivieren Sie diese Option, um das Guthaben automatisch neu zu laden, wenn das Guthaben niedrig ist.", "Aktivieren Sie diese Option, damit bei niedrigem Kontostand automatisch aufgeladen wird.",
"workspace.reload.enabled.before": "Automatisches Nachladen ist", "workspace.reload.enabled.before": "Automatische Aufladung ist",
"workspace.reload.enabled.state": "ermöglicht", "workspace.reload.enabled.state": "aktiviert",
"workspace.reload.enabled.middle": "Wir laden nach", "workspace.reload.enabled.middle": "Wir laden auf",
"workspace.reload.processingFee": "Bearbeitungsgebühr", "workspace.reload.processingFee": "Bearbeitungsgebühr",
"workspace.reload.enabled.after": "wenn das Gleichgewicht erreicht ist", "workspace.reload.enabled.after": "sobald der Kontostand",
"workspace.reload.edit": "Bearbeiten", "workspace.reload.edit": "Bearbeiten",
"workspace.reload.enable": "Aktivieren", "workspace.reload.enable": "Aktivieren",
"workspace.reload.enableAutoReload": "Aktivieren Sie das automatische Neuladen", "workspace.reload.enableAutoReload": "Automatische Aufladung aktivieren",
"workspace.reload.reloadAmount": "$ neu laden", "workspace.reload.reloadAmount": "Aufladebetrag $",
"workspace.reload.whenBalanceReaches": "Wenn der Saldo $ erreicht", "workspace.reload.whenBalanceReaches": "Wenn der Kontostand $ erreicht",
"workspace.reload.saving": "Sparen...", "workspace.reload.saving": "Wird gespeichert...",
"workspace.reload.save": "Speichern", "workspace.reload.save": "Speichern",
"workspace.reload.failedAt": "Neuladen fehlgeschlagen bei", "workspace.reload.failedAt": "Aufladung fehlgeschlagen am",
"workspace.reload.reason": "Grund:", "workspace.reload.reason": "Grund:",
"workspace.reload.updatePaymentMethod": "Bitte aktualisieren Sie Ihre Zahlungsmethode und versuchen Sie es erneut.", "workspace.reload.updatePaymentMethod": "Bitte aktualisieren Sie Ihre Zahlungsmethode und versuchen Sie es erneut.",
"workspace.reload.retrying": "Erneuter Versuch...", "workspace.reload.retrying": "Erneuter Versuch...",
@ -440,11 +440,11 @@ export const dict = {
"workspace.payments.subtitle": "Letzte Zahlungsvorgänge.", "workspace.payments.subtitle": "Letzte Zahlungsvorgänge.",
"workspace.payments.table.date": "Datum", "workspace.payments.table.date": "Datum",
"workspace.payments.table.paymentId": "Zahlungs-ID", "workspace.payments.table.paymentId": "Zahlungs-ID",
"workspace.payments.table.amount": "Menge", "workspace.payments.table.amount": "Betrag",
"workspace.payments.table.receipt": "Quittung", "workspace.payments.table.receipt": "Quittung",
"workspace.payments.type.credit": "Kredit", "workspace.payments.type.credit": "Kredit",
"workspace.payments.type.subscription": "Abonnement", "workspace.payments.type.subscription": "Abonnement",
"workspace.payments.view": "Sicht", "workspace.payments.view": "Anzeigen",
"workspace.black.loading": "Laden...", "workspace.black.loading": "Laden...",
"workspace.black.time.day": "Tag", "workspace.black.time.day": "Tag",
"workspace.black.time.days": "Tage", "workspace.black.time.days": "Tage",
@ -454,21 +454,21 @@ export const dict = {
"workspace.black.time.minutes": "Minuten", "workspace.black.time.minutes": "Minuten",
"workspace.black.time.fewSeconds": "ein paar Sekunden", "workspace.black.time.fewSeconds": "ein paar Sekunden",
"workspace.black.subscription.title": "Abonnement", "workspace.black.subscription.title": "Abonnement",
"workspace.black.subscription.message": "Sie haben OpenCode Black für {{plan}} pro Monat abonniert.", "workspace.black.subscription.message": "Sie haben OpenCode Black für ${{plan}} pro Monat abonniert.",
"workspace.black.subscription.manage": "Abonnement verwalten", "workspace.black.subscription.manage": "Abonnement verwalten",
"workspace.black.subscription.rollingUsage": "5-stündige Nutzung", "workspace.black.subscription.rollingUsage": "5-stündige Nutzung",
"workspace.black.subscription.weeklyUsage": "Wöchentliche Nutzung", "workspace.black.subscription.weeklyUsage": "Wöchentliche Nutzung",
"workspace.black.subscription.resetsIn": "Wird zurückgesetzt", "workspace.black.subscription.resetsIn": "Zurückgesetzt in",
"workspace.black.subscription.useBalance": "workspace.black.subscription.useBalance":
"Nutzen Sie Ihr verfügbares Guthaben, nachdem Sie die Nutzungslimits erreicht haben", "Nutzen Sie Ihr verfügbares Guthaben, nachdem Sie die Nutzungslimits erreicht haben",
"workspace.black.waitlist.title": "Warteliste", "workspace.black.waitlist.title": "Warteliste",
"workspace.black.waitlist.joined": "workspace.black.waitlist.joined":
"Sie stehen auf der Warteliste für den Black-Plan im Wert von ${{plan}} pro Monat OpenCode.", "Sie stehen auf der Warteliste für den OpenCode Black Tarif für ${{plan}} pro Monat.",
"workspace.black.waitlist.ready": "workspace.black.waitlist.ready":
"Wir sind bereit, Sie für den Black-Plan im Wert von ${{plan}} pro Monat OpenCode anzumelden.", "Wir können Sie jetzt in den OpenCode Black Tarif für ${{plan}} pro Monat aufnehmen.",
"workspace.black.waitlist.leave": "Warteliste verlassen", "workspace.black.waitlist.leave": "Warteliste verlassen",
"workspace.black.waitlist.leaving": "Verlassen...", "workspace.black.waitlist.leaving": "Verlassen...",
"workspace.black.waitlist.left": "Links", "workspace.black.waitlist.left": "Verlassen",
"workspace.black.waitlist.enroll": "Einschreiben", "workspace.black.waitlist.enroll": "Einschreiben",
"workspace.black.waitlist.enrolling": "Anmeldung...", "workspace.black.waitlist.enrolling": "Anmeldung...",
"workspace.black.waitlist.enrolled": "Eingeschrieben", "workspace.black.waitlist.enrolled": "Eingeschrieben",

View File

@ -284,8 +284,8 @@ export const dict = {
"changelog.hero.subtitle": "Nuovi aggiornamenti e miglioramenti per OpenCode", "changelog.hero.subtitle": "Nuovi aggiornamenti e miglioramenti per OpenCode",
"changelog.empty": "Nessuna voce di changelog trovata.", "changelog.empty": "Nessuna voce di changelog trovata.",
"changelog.viewJson": "Visualizza JSON", "changelog.viewJson": "Visualizza JSON",
"workspace.nav.zen": "zen", "workspace.nav.zen": "Zen",
"workspace.nav.apiKeys": "API Chiavi", "workspace.nav.apiKeys": "Chiavi API",
"workspace.nav.members": "Membri", "workspace.nav.members": "Membri",
"workspace.nav.billing": "Fatturazione", "workspace.nav.billing": "Fatturazione",
"workspace.nav.settings": "Impostazioni", "workspace.nav.settings": "Impostazioni",
@ -299,14 +299,14 @@ export const dict = {
"workspace.newUser.feature.quality.title": "Massima qualità", "workspace.newUser.feature.quality.title": "Massima qualità",
"workspace.newUser.feature.quality.body": "workspace.newUser.feature.quality.body":
"Modelli di accesso configurati per prestazioni ottimali: senza downgrade o instradamento verso fornitori più economici.", "Modelli di accesso configurati per prestazioni ottimali: senza downgrade o instradamento verso fornitori più economici.",
"workspace.newUser.feature.lockin.title": "Nessun blocco", "workspace.newUser.feature.lockin.title": "Nessun lock-in",
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"Utilizza Zen con qualsiasi agente di codifica e continua a utilizzare altri provider con opencode ogni volta che vuoi.", "Utilizza Zen con qualsiasi agente di codifica e continua a utilizzare altri provider con opencode ogni volta che vuoi.",
"workspace.newUser.copyApiKey": "Copia la chiave API", "workspace.newUser.copyApiKey": "Copia la chiave API",
"workspace.newUser.copyKey": "Copia chiave", "workspace.newUser.copyKey": "Copia chiave",
"workspace.newUser.copied": "Copiato!", "workspace.newUser.copied": "Copiato!",
"workspace.newUser.step.enableBilling": "Abilita fatturazione", "workspace.newUser.step.enableBilling": "Abilita fatturazione",
"workspace.newUser.step.login.before": "Correre", "workspace.newUser.step.login.before": "Esegui",
"workspace.newUser.step.login.after": "e seleziona opencode", "workspace.newUser.step.login.after": "e seleziona opencode",
"workspace.newUser.step.pasteKey": "Incolla la tua chiave API", "workspace.newUser.step.pasteKey": "Incolla la tua chiave API",
"workspace.newUser.step.models.before": "Avvia opencode ed esegui", "workspace.newUser.step.models.before": "Avvia opencode ed esegui",
@ -315,16 +315,16 @@ export const dict = {
"workspace.models.subtitle.beforeLink": "Gestire i modelli a cui possono accedere i membri dell'area di lavoro.", "workspace.models.subtitle.beforeLink": "Gestire i modelli a cui possono accedere i membri dell'area di lavoro.",
"workspace.models.table.model": "Modello", "workspace.models.table.model": "Modello",
"workspace.models.table.enabled": "Abilitato", "workspace.models.table.enabled": "Abilitato",
"workspace.providers.title": "Porta la tua chiave", "workspace.providers.title": "Bring Your Own Key (BYOK)",
"workspace.providers.subtitle": "Configura le tue chiavi API dai fornitori di intelligenza artificiale.", "workspace.providers.subtitle": "Configura le tue chiavi API dai fornitori di intelligenza artificiale.",
"workspace.providers.placeholder": "Inserisci la chiave {{provider}} API ({{prefix}}...)", "workspace.providers.placeholder": "Inserisci la chiave {{provider}} API ({{prefix}}...)",
"workspace.providers.configure": "Configura", "workspace.providers.configure": "Configura",
"workspace.providers.edit": "Modificare", "workspace.providers.edit": "Modificare",
"workspace.providers.delete": "Eliminare", "workspace.providers.delete": "Eliminare",
"workspace.providers.saving": "Risparmio...", "workspace.providers.saving": "Salvataggio in corso...",
"workspace.providers.save": "Salva", "workspace.providers.save": "Salva",
"workspace.providers.table.provider": "Fornitore", "workspace.providers.table.provider": "Fornitore",
"workspace.providers.table.apiKey": "API Chiave", "workspace.providers.table.apiKey": "Chiave API",
"workspace.usage.title": "Cronologia dell'utilizzo", "workspace.usage.title": "Cronologia dell'utilizzo",
"workspace.usage.subtitle": "Utilizzo e costi recenti di API.", "workspace.usage.subtitle": "Utilizzo e costi recenti di API.",
"workspace.usage.empty": "Effettua la tua prima chiamata API per iniziare.", "workspace.usage.empty": "Effettua la tua prima chiamata API per iniziare.",
@ -346,7 +346,7 @@ export const dict = {
"workspace.cost.deletedSuffix": "(eliminato)", "workspace.cost.deletedSuffix": "(eliminato)",
"workspace.cost.empty": "Nessun dato di utilizzo disponibile per il periodo selezionato.", "workspace.cost.empty": "Nessun dato di utilizzo disponibile per il periodo selezionato.",
"workspace.cost.subscriptionShort": "sub", "workspace.cost.subscriptionShort": "sub",
"workspace.keys.title": "API Chiavi", "workspace.keys.title": "Chiavi API",
"workspace.keys.subtitle": "Gestisci le tue chiavi API per accedere ai servizi opencode.", "workspace.keys.subtitle": "Gestisci le tue chiavi API per accedere ai servizi opencode.",
"workspace.keys.create": "Crea chiave API", "workspace.keys.create": "Crea chiave API",
"workspace.keys.placeholder": "Inserisci il nome della chiave", "workspace.keys.placeholder": "Inserisci il nome della chiave",
@ -360,7 +360,7 @@ export const dict = {
"workspace.members.title": "Membri", "workspace.members.title": "Membri",
"workspace.members.subtitle": "Gestire i membri dell'area di lavoro e le relative autorizzazioni.", "workspace.members.subtitle": "Gestire i membri dell'area di lavoro e le relative autorizzazioni.",
"workspace.members.invite": "Invita membro", "workspace.members.invite": "Invita membro",
"workspace.members.inviting": "Invitante...", "workspace.members.inviting": "Invito in corso...",
"workspace.members.beta.beforeLink": "Gli spazi di lavoro sono gratuiti per i team durante la beta.", "workspace.members.beta.beforeLink": "Gli spazi di lavoro sono gratuiti per i team durante la beta.",
"workspace.members.form.invitee": "Invitato", "workspace.members.form.invitee": "Invitato",
"workspace.members.form.emailPlaceholder": "Inserisci l'e-mail", "workspace.members.form.emailPlaceholder": "Inserisci l'e-mail",
@ -371,12 +371,12 @@ export const dict = {
"workspace.members.invited": "invitato", "workspace.members.invited": "invitato",
"workspace.members.edit": "Modificare", "workspace.members.edit": "Modificare",
"workspace.members.delete": "Eliminare", "workspace.members.delete": "Eliminare",
"workspace.members.saving": "Risparmio...", "workspace.members.saving": "Salvataggio in corso...",
"workspace.members.save": "Salva", "workspace.members.save": "Salva",
"workspace.members.table.email": "E-mail", "workspace.members.table.email": "E-mail",
"workspace.members.table.role": "Ruolo", "workspace.members.table.role": "Ruolo",
"workspace.members.table.monthLimit": "Limite mensile", "workspace.members.table.monthLimit": "Limite mensile",
"workspace.members.role.admin": "Ammin", "workspace.members.role.admin": "Admin",
"workspace.members.role.adminDescription": "Può gestire modelli, membri e fatturazione", "workspace.members.role.adminDescription": "Può gestire modelli, membri e fatturazione",
"workspace.members.role.member": "Membro", "workspace.members.role.member": "Membro",
"workspace.members.role.memberDescription": "Possono generare chiavi API solo per se stessi", "workspace.members.role.memberDescription": "Possono generare chiavi API solo per se stessi",
@ -388,42 +388,42 @@ export const dict = {
"workspace.settings.save": "Salva", "workspace.settings.save": "Salva",
"workspace.settings.edit": "Modificare", "workspace.settings.edit": "Modificare",
"workspace.billing.title": "Fatturazione", "workspace.billing.title": "Fatturazione",
"workspace.billing.subtitle.beforeLink": "Gestire i metodi di pagamento.", "workspace.billing.subtitle.beforeLink": "Gestisci i metodi di pagamento.",
"workspace.billing.contactUs": "Contattaci", "workspace.billing.contactUs": "Contattaci",
"workspace.billing.subtitle.afterLink": "se hai qualche domanda", "workspace.billing.subtitle.afterLink": "se hai qualche domanda",
"workspace.billing.currentBalance": "Saldo attuale", "workspace.billing.currentBalance": "Saldo attuale",
"workspace.billing.add": "Aggiungi $", "workspace.billing.add": "Aggiungi $",
"workspace.billing.enterAmount": "Inserisci l'importo", "workspace.billing.enterAmount": "Inserisci l'importo",
"workspace.billing.loading": "Caricamento...", "workspace.billing.loading": "Caricamento...",
"workspace.billing.addAction": "Aggiungere", "workspace.billing.addAction": "Aggiungi",
"workspace.billing.addBalance": "Aggiungi saldo", "workspace.billing.addBalance": "Aggiungi saldo",
"workspace.billing.linkedToStripe": "Collegato a Stripe", "workspace.billing.linkedToStripe": "Collegato a Stripe",
"workspace.billing.manage": "Maneggio", "workspace.billing.manage": "Gestisci",
"workspace.billing.enable": "Abilita fatturazione", "workspace.billing.enable": "Abilita fatturazione",
"workspace.monthlyLimit.title": "Limite mensile", "workspace.monthlyLimit.title": "Limite mensile",
"workspace.monthlyLimit.subtitle": "Imposta un limite di utilizzo mensile per il tuo account.", "workspace.monthlyLimit.subtitle": "Imposta un limite di utilizzo mensile per il tuo account.",
"workspace.monthlyLimit.placeholder": "50", "workspace.monthlyLimit.placeholder": "50",
"workspace.monthlyLimit.setting": "Collocamento...", "workspace.monthlyLimit.setting": "Impostazione in corso...",
"workspace.monthlyLimit.set": "Impostato", "workspace.monthlyLimit.set": "Impostato",
"workspace.monthlyLimit.edit": "Modifica limite", "workspace.monthlyLimit.edit": "Modifica limite",
"workspace.monthlyLimit.noLimit": "Nessun limite di utilizzo impostato.", "workspace.monthlyLimit.noLimit": "Nessun limite di utilizzo impostato.",
"workspace.monthlyLimit.currentUsage.beforeMonth": "Utilizzo attuale per", "workspace.monthlyLimit.currentUsage.beforeMonth": "Utilizzo attuale per",
"workspace.monthlyLimit.currentUsage.beforeAmount": "è $", "workspace.monthlyLimit.currentUsage.beforeAmount": "è $",
"workspace.reload.title": "Ricarica automatica", "workspace.reload.title": "Ricarica automatica",
"workspace.reload.disabled.before": "La ricarica automatica lo è", "workspace.reload.disabled.before": "La ricarica automatica è",
"workspace.reload.disabled.state": "disabilitato", "workspace.reload.disabled.state": "disabilitato",
"workspace.reload.disabled.after": "Abilita la ricarica automatica quando il saldo è basso.", "workspace.reload.disabled.after": "Abilita la ricarica automatica quando il saldo è basso.",
"workspace.reload.enabled.before": "La ricarica automatica lo è", "workspace.reload.enabled.before": "La ricarica automatica è",
"workspace.reload.enabled.state": "abilitato", "workspace.reload.enabled.state": "abilitato",
"workspace.reload.enabled.middle": "Ricaricheremo", "workspace.reload.enabled.middle": "Ricaricheremo",
"workspace.reload.processingFee": "tassa di elaborazione", "workspace.reload.processingFee": "tassa di elaborazione",
"workspace.reload.enabled.after": "quando l'equilibrio raggiunge", "workspace.reload.enabled.after": "quando il saldo raggiunge",
"workspace.reload.edit": "Modificare", "workspace.reload.edit": "Modificare",
"workspace.reload.enable": "Abilitare", "workspace.reload.enable": "Abilitare",
"workspace.reload.enableAutoReload": "Abilita ricarica automatica", "workspace.reload.enableAutoReload": "Abilita ricarica automatica",
"workspace.reload.reloadAmount": "Ricarica $", "workspace.reload.reloadAmount": "Ricarica $",
"workspace.reload.whenBalanceReaches": "Quando il saldo raggiunge $", "workspace.reload.whenBalanceReaches": "Quando il saldo raggiunge $",
"workspace.reload.saving": "Risparmio...", "workspace.reload.saving": "Salvataggio in corso...",
"workspace.reload.save": "Salva", "workspace.reload.save": "Salva",
"workspace.reload.failedAt": "Ricarica non riuscita a", "workspace.reload.failedAt": "Ricarica non riuscita a",
"workspace.reload.reason": "Motivo:", "workspace.reload.reason": "Motivo:",
@ -434,11 +434,11 @@ export const dict = {
"workspace.payments.subtitle": "Transazioni di pagamento recenti.", "workspace.payments.subtitle": "Transazioni di pagamento recenti.",
"workspace.payments.table.date": "Data", "workspace.payments.table.date": "Data",
"workspace.payments.table.paymentId": "ID pagamento", "workspace.payments.table.paymentId": "ID pagamento",
"workspace.payments.table.amount": "Quantità", "workspace.payments.table.amount": "Importo",
"workspace.payments.table.receipt": "Ricevuta", "workspace.payments.table.receipt": "Ricevuta",
"workspace.payments.type.credit": "credito", "workspace.payments.type.credit": "credito",
"workspace.payments.type.subscription": "sottoscrizione", "workspace.payments.type.subscription": "sottoscrizione",
"workspace.payments.view": "Visualizzazione", "workspace.payments.view": "Visualizza",
"workspace.black.loading": "Caricamento...", "workspace.black.loading": "Caricamento...",
"workspace.black.time.day": "giorno", "workspace.black.time.day": "giorno",
"workspace.black.time.days": "giorni", "workspace.black.time.days": "giorni",
@ -452,14 +452,14 @@ export const dict = {
"workspace.black.subscription.manage": "Gestisci abbonamento", "workspace.black.subscription.manage": "Gestisci abbonamento",
"workspace.black.subscription.rollingUsage": "Utilizzo di 5 ore", "workspace.black.subscription.rollingUsage": "Utilizzo di 5 ore",
"workspace.black.subscription.weeklyUsage": "Utilizzo settimanale", "workspace.black.subscription.weeklyUsage": "Utilizzo settimanale",
"workspace.black.subscription.resetsIn": "Si reimposta", "workspace.black.subscription.resetsIn": "Si reimposta tra",
"workspace.black.subscription.useBalance": "Utilizza il saldo disponibile dopo aver raggiunto i limiti di utilizzo", "workspace.black.subscription.useBalance": "Utilizza il saldo disponibile dopo aver raggiunto i limiti di utilizzo",
"workspace.black.waitlist.title": "Lista d'attesa", "workspace.black.waitlist.title": "Lista d'attesa",
"workspace.black.waitlist.joined": "Sei in lista d'attesa per il piano nero ${{plan}} al mese OpenCode.", "workspace.black.waitlist.joined": "Sei in lista d'attesa per il piano OpenCode Black da ${{plan}} al mese.",
"workspace.black.waitlist.ready": "Siamo pronti per iscriverti al piano OpenCode Black da ${{plan}} al mese.", "workspace.black.waitlist.ready": "Siamo pronti per iscriverti al piano OpenCode Black da ${{plan}} al mese.",
"workspace.black.waitlist.leave": "Lascia la lista d'attesa", "workspace.black.waitlist.leave": "Lascia la lista d'attesa",
"workspace.black.waitlist.leaving": "In partenza...", "workspace.black.waitlist.leaving": "Uscita in corso...",
"workspace.black.waitlist.left": "Sinistra", "workspace.black.waitlist.left": "Uscito dalla lista d'attesa",
"workspace.black.waitlist.enroll": "Iscriversi", "workspace.black.waitlist.enroll": "Iscriversi",
"workspace.black.waitlist.enrolling": "Iscrizione...", "workspace.black.waitlist.enrolling": "Iscrizione...",
"workspace.black.waitlist.enrolled": "Iscritto", "workspace.black.waitlist.enrolled": "Iscritto",

View File

@ -293,9 +293,9 @@ export const dict = {
"changelog.hero.subtitle": "OpenCode \u7684\u65b0\u66f4\u65b0\u4e0e\u6539\u8fdb", "changelog.hero.subtitle": "OpenCode \u7684\u65b0\u66f4\u65b0\u4e0e\u6539\u8fdb",
"changelog.empty": "\u672a\u627e\u5230\u66f4\u65b0\u65e5\u5fd7\u6761\u76ee\u3002", "changelog.empty": "\u672a\u627e\u5230\u66f4\u65b0\u65e5\u5fd7\u6761\u76ee\u3002",
"changelog.viewJson": "\u67e5\u770b JSON", "changelog.viewJson": "\u67e5\u770b JSON",
"workspace.nav.zen": "", "workspace.nav.zen": "Zen",
"workspace.nav.apiKeys": "API 键", "workspace.nav.apiKeys": "API 键",
"workspace.nav.members": "员", "workspace.nav.members": "员",
"workspace.nav.billing": "计费", "workspace.nav.billing": "计费",
"workspace.nav.settings": "设置", "workspace.nav.settings": "设置",
"workspace.home.banner.beforeLink": "编码代理的可靠优化模型。", "workspace.home.banner.beforeLink": "编码代理的可靠优化模型。",
@ -310,26 +310,26 @@ export const dict = {
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"将 Zen 与任何编码代理结合使用,并在需要时继续将其他提供程序与 opencode 结合使用。", "将 Zen 与任何编码代理结合使用,并在需要时继续将其他提供程序与 opencode 结合使用。",
"workspace.newUser.copyApiKey": "复制 API 密钥", "workspace.newUser.copyApiKey": "复制 API 密钥",
"workspace.newUser.copyKey": "复制", "workspace.newUser.copyKey": "复制钥",
"workspace.newUser.copied": "复制", "workspace.newUser.copied": "复制!",
"workspace.newUser.step.enableBilling": "启用计费", "workspace.newUser.step.enableBilling": "启用计费",
"workspace.newUser.step.login.before": "跑步", "workspace.newUser.step.login.before": "运行",
"workspace.newUser.step.login.after": "并选择 opencode", "workspace.newUser.step.login.after": "并选择 opencode",
"workspace.newUser.step.pasteKey": "粘贴您的 API 密钥", "workspace.newUser.step.pasteKey": "粘贴您的 API 密钥",
"workspace.newUser.step.models.before": "启动 opencode 并运行", "workspace.newUser.step.models.before": "启动 opencode 并运行",
"workspace.newUser.step.models.after": "选择", "workspace.newUser.step.models.after": "选择型",
"workspace.models.title": "", "workspace.models.title": "型",
"workspace.models.subtitle.beforeLink": "管理工作区成员可以访问哪些模型。", "workspace.models.subtitle.beforeLink": "管理工作区成员可以访问哪些模型。",
"workspace.models.table.model": "模型", "workspace.models.table.model": "模型",
"workspace.models.table.enabled": "启用", "workspace.models.table.enabled": "启用",
"workspace.providers.title": "带上你自己的钥匙", "workspace.providers.title": "自带密钥",
"workspace.providers.subtitle": "从 AI 提供商处配置您自己的 API 密钥。", "workspace.providers.subtitle": "从 AI 提供商处配置您自己的 API 密钥。",
"workspace.providers.placeholder": "输入 {{provider}} API 密钥({{prefix}}...", "workspace.providers.placeholder": "输入 {{provider}} API 密钥({{prefix}}...",
"workspace.providers.configure": "配置", "workspace.providers.configure": "配置",
"workspace.providers.edit": "编辑", "workspace.providers.edit": "编辑",
"workspace.providers.delete": "删除", "workspace.providers.delete": "删除",
"workspace.providers.saving": "保存...", "workspace.providers.saving": "保存...",
"workspace.providers.save": "节省", "workspace.providers.save": "保存",
"workspace.providers.table.provider": "提供者", "workspace.providers.table.provider": "提供者",
"workspace.providers.table.apiKey": "API 密钥", "workspace.providers.table.apiKey": "API 密钥",
"workspace.usage.title": "使用历史", "workspace.usage.title": "使用历史",
@ -348,25 +348,25 @@ export const dict = {
"workspace.usage.subscription": "订阅 (${{amount}})", "workspace.usage.subscription": "订阅 (${{amount}})",
"workspace.cost.title": "成本", "workspace.cost.title": "成本",
"workspace.cost.subtitle": "按型号细分的使用成本。", "workspace.cost.subtitle": "按型号细分的使用成本。",
"workspace.cost.allModels": "所有", "workspace.cost.allModels": "所有型",
"workspace.cost.allKeys": "所有按键", "workspace.cost.allKeys": "所有密钥",
"workspace.cost.deletedSuffix": "(已删除)", "workspace.cost.deletedSuffix": "(已删除)",
"workspace.cost.empty": "所选期间没有可用的使用数据。", "workspace.cost.empty": "所选期间没有可用的使用数据。",
"workspace.cost.subscriptionShort": "", "workspace.cost.subscriptionShort": "",
"workspace.keys.title": "API 键", "workspace.keys.title": "API 键",
"workspace.keys.subtitle": "管理您的 API 密钥以访问 opencode 服务。", "workspace.keys.subtitle": "管理您的 API 密钥以访问 opencode 服务。",
"workspace.keys.create": "创建 API 密钥", "workspace.keys.create": "创建 API 密钥",
"workspace.keys.placeholder": "输入按键名称", "workspace.keys.placeholder": "输入密钥名称",
"workspace.keys.empty": "创建 opencode 网关 API 密钥", "workspace.keys.empty": "创建 opencode 网关 API 密钥",
"workspace.keys.table.name": "名", "workspace.keys.table.name": "",
"workspace.keys.table.key": "", "workspace.keys.table.key": "钥",
"workspace.keys.table.createdBy": "创建者", "workspace.keys.table.createdBy": "创建者",
"workspace.keys.table.lastUsed": "最后使用", "workspace.keys.table.lastUsed": "最后使用",
"workspace.keys.copyApiKey": "复制 API 密钥", "workspace.keys.copyApiKey": "复制 API 密钥",
"workspace.keys.delete": "删除", "workspace.keys.delete": "删除",
"workspace.members.title": "员", "workspace.members.title": "员",
"workspace.members.subtitle": "管理工作区成员及其权限。", "workspace.members.subtitle": "管理工作区成员及其权限。",
"workspace.members.invite": "邀请员", "workspace.members.invite": "邀请员",
"workspace.members.inviting": "邀请...", "workspace.members.inviting": "邀请...",
"workspace.members.beta.beforeLink": "测试期间,工作空间对团队免费。", "workspace.members.beta.beforeLink": "测试期间,工作空间对团队免费。",
"workspace.members.form.invitee": "受邀者", "workspace.members.form.invitee": "受邀者",
@ -379,11 +379,11 @@ export const dict = {
"workspace.members.edit": "编辑", "workspace.members.edit": "编辑",
"workspace.members.delete": "删除", "workspace.members.delete": "删除",
"workspace.members.saving": "保存...", "workspace.members.saving": "保存...",
"workspace.members.save": "节省", "workspace.members.save": "保存",
"workspace.members.table.email": "电子邮件", "workspace.members.table.email": "电子邮件",
"workspace.members.table.role": "角色", "workspace.members.table.role": "角色",
"workspace.members.table.monthLimit": "月份限制", "workspace.members.table.monthLimit": "月限额",
"workspace.members.role.admin": "行政", "workspace.members.role.admin": "管理员",
"workspace.members.role.adminDescription": "可以管理模型、成员和计费", "workspace.members.role.adminDescription": "可以管理模型、成员和计费",
"workspace.members.role.member": "成员", "workspace.members.role.member": "成员",
"workspace.members.role.memberDescription": "只能为自己生成 API 密钥", "workspace.members.role.memberDescription": "只能为自己生成 API 密钥",
@ -392,7 +392,7 @@ export const dict = {
"workspace.settings.workspaceName": "工作区名称", "workspace.settings.workspaceName": "工作区名称",
"workspace.settings.defaultName": "默认", "workspace.settings.defaultName": "默认",
"workspace.settings.updating": "更新中...", "workspace.settings.updating": "更新中...",
"workspace.settings.save": "节省", "workspace.settings.save": "保存",
"workspace.settings.edit": "编辑", "workspace.settings.edit": "编辑",
"workspace.billing.title": "计费", "workspace.billing.title": "计费",
"workspace.billing.subtitle.beforeLink": "管理付款方式。", "workspace.billing.subtitle.beforeLink": "管理付款方式。",
@ -404,35 +404,35 @@ export const dict = {
"workspace.billing.loading": "加载中...", "workspace.billing.loading": "加载中...",
"workspace.billing.addAction": "添加", "workspace.billing.addAction": "添加",
"workspace.billing.addBalance": "添加余额", "workspace.billing.addBalance": "添加余额",
"workspace.billing.linkedToStripe": "链接到条纹", "workspace.billing.linkedToStripe": "已绑定 Stripe",
"workspace.billing.manage": "管理", "workspace.billing.manage": "管理",
"workspace.billing.enable": "启用计费", "workspace.billing.enable": "启用计费",
"workspace.monthlyLimit.title": "每月限额", "workspace.monthlyLimit.title": "每月限额",
"workspace.monthlyLimit.subtitle": "为您的帐户设置每月使用限额。", "workspace.monthlyLimit.subtitle": "为您的帐户设置每月使用限额。",
"workspace.monthlyLimit.placeholder": "50", "workspace.monthlyLimit.placeholder": "50",
"workspace.monthlyLimit.setting": "环境...", "workspace.monthlyLimit.setting": "设置中...",
"workspace.monthlyLimit.set": "", "workspace.monthlyLimit.set": "设置",
"workspace.monthlyLimit.edit": "编辑限制", "workspace.monthlyLimit.edit": "编辑限制",
"workspace.monthlyLimit.noLimit": "没有设置使用限制。", "workspace.monthlyLimit.noLimit": "没有设置使用限制。",
"workspace.monthlyLimit.currentUsage.beforeMonth": "当前使用情况为", "workspace.monthlyLimit.currentUsage.beforeMonth": "当前",
"workspace.monthlyLimit.currentUsage.beforeAmount": " $", "workspace.monthlyLimit.currentUsage.beforeAmount": "的使用量为 $",
"workspace.reload.title": "自动重新加载", "workspace.reload.title": "自动充值",
"workspace.reload.disabled.before": "自动重新加载是", "workspace.reload.disabled.before": "自动充值已",
"workspace.reload.disabled.state": "残疾人", "workspace.reload.disabled.state": "停用",
"workspace.reload.disabled.after": "启用余额不足时自动充值。", "workspace.reload.disabled.after": "启用后将在余额较低时自动充值。",
"workspace.reload.enabled.before": "自动重新加载是", "workspace.reload.enabled.before": "自动充值已",
"workspace.reload.enabled.state": "已启用", "workspace.reload.enabled.state": "已启用",
"workspace.reload.enabled.middle": "我们将重新加载", "workspace.reload.enabled.middle": "我们将自动充值",
"workspace.reload.processingFee": "加工费", "workspace.reload.processingFee": "手续费",
"workspace.reload.enabled.after": "当余额达到", "workspace.reload.enabled.after": "当余额达到",
"workspace.reload.edit": "编辑", "workspace.reload.edit": "编辑",
"workspace.reload.enable": "使能够", "workspace.reload.enable": "启用",
"workspace.reload.enableAutoReload": "启用自动重新加载", "workspace.reload.enableAutoReload": "启用自动充值",
"workspace.reload.reloadAmount": "重新加载 $", "workspace.reload.reloadAmount": "充值 $",
"workspace.reload.whenBalanceReaches": "当余额达到 $", "workspace.reload.whenBalanceReaches": "当余额达到 $",
"workspace.reload.saving": "保存...", "workspace.reload.saving": "保存...",
"workspace.reload.save": "节省", "workspace.reload.save": "保存",
"workspace.reload.failedAt": "重新加载失败于", "workspace.reload.failedAt": "充值失败于",
"workspace.reload.reason": "原因:", "workspace.reload.reason": "原因:",
"workspace.reload.updatePaymentMethod": "请更新您的付款方式并重试。", "workspace.reload.updatePaymentMethod": "请更新您的付款方式并重试。",
"workspace.reload.retrying": "正在重试...", "workspace.reload.retrying": "正在重试...",
@ -441,11 +441,11 @@ export const dict = {
"workspace.payments.subtitle": "最近的付款交易。", "workspace.payments.subtitle": "最近的付款交易。",
"workspace.payments.table.date": "日期", "workspace.payments.table.date": "日期",
"workspace.payments.table.paymentId": "付款ID", "workspace.payments.table.paymentId": "付款ID",
"workspace.payments.table.amount": "数量", "workspace.payments.table.amount": "金额",
"workspace.payments.table.receipt": "收据", "workspace.payments.table.receipt": "收据",
"workspace.payments.type.credit": "信用", "workspace.payments.type.credit": "信用",
"workspace.payments.type.subscription": "订阅", "workspace.payments.type.subscription": "订阅",
"workspace.payments.view": "", "workspace.payments.view": "看",
"workspace.black.loading": "加载中...", "workspace.black.loading": "加载中...",
"workspace.black.time.day": "天", "workspace.black.time.day": "天",
"workspace.black.time.days": "天", "workspace.black.time.days": "天",
@ -455,20 +455,20 @@ export const dict = {
"workspace.black.time.minutes": "分钟", "workspace.black.time.minutes": "分钟",
"workspace.black.time.fewSeconds": "几秒钟", "workspace.black.time.fewSeconds": "几秒钟",
"workspace.black.subscription.title": "订阅", "workspace.black.subscription.title": "订阅",
"workspace.black.subscription.message": "您已订阅 OpenCode Black每月费用为 {{plan}} 美元。", "workspace.black.subscription.message": "您已订阅 OpenCode Black费用为每月 ${{plan}}。",
"workspace.black.subscription.manage": "管理订阅", "workspace.black.subscription.manage": "管理订阅",
"workspace.black.subscription.rollingUsage": "5小时使用", "workspace.black.subscription.rollingUsage": "5小时使用",
"workspace.black.subscription.weeklyUsage": "每周使用量", "workspace.black.subscription.weeklyUsage": "每周使用量",
"workspace.black.subscription.resetsIn": "重置于", "workspace.black.subscription.resetsIn": "重置于",
"workspace.black.subscription.useBalance": "达到使用限额后使用您的可用余额", "workspace.black.subscription.useBalance": "达到使用限额后使用您的可用余额",
"workspace.black.waitlist.title": "候补名单", "workspace.black.waitlist.title": "候补名单",
"workspace.black.waitlist.joined": "您正在等待每月 ${{plan}} OpenCode 黑色计划。", "workspace.black.waitlist.joined": "您已加入每月 ${{plan}} 的 OpenCode Black 方案候补名单。",
"workspace.black.waitlist.ready": "我们已准备好让您加入每月 {{plan}} 美元的 OpenCode 黑色计划。", "workspace.black.waitlist.ready": "我们已准备好将您加入每月 ${{plan}} 的 OpenCode Black 方案。",
"workspace.black.waitlist.leave": "离开候补名单", "workspace.black.waitlist.leave": "离开候补名单",
"workspace.black.waitlist.leaving": "离开...", "workspace.black.waitlist.leaving": "离开...",
"workspace.black.waitlist.left": "左边", "workspace.black.waitlist.left": "已退出",
"workspace.black.waitlist.enroll": "注册", "workspace.black.waitlist.enroll": "加入",
"workspace.black.waitlist.enrolling": "正在报名...", "workspace.black.waitlist.enrolling": "加入中...",
"workspace.black.waitlist.enrolled": "已注册", "workspace.black.waitlist.enrolled": "已加入",
"workspace.black.waitlist.enrollNote": "单击“注册”后,您的订阅将立即开始,并且将从您的卡中扣费。", "workspace.black.waitlist.enrollNote": "单击“注册”后,您的订阅将立即开始,并且将从您的卡中扣费。",
} satisfies Dict } satisfies Dict

View File

@ -293,9 +293,9 @@ export const dict = {
"changelog.hero.subtitle": "OpenCode \u7684\u65b0\u66f4\u65b0\u8207\u6539\u5584", "changelog.hero.subtitle": "OpenCode \u7684\u65b0\u66f4\u65b0\u8207\u6539\u5584",
"changelog.empty": "\u627e\u4e0d\u5230\u66f4\u65b0\u65e5\u8a8c\u9805\u76ee\u3002", "changelog.empty": "\u627e\u4e0d\u5230\u66f4\u65b0\u65e5\u8a8c\u9805\u76ee\u3002",
"changelog.viewJson": "\u6aa2\u8996 JSON", "changelog.viewJson": "\u6aa2\u8996 JSON",
"workspace.nav.zen": "", "workspace.nav.zen": "Zen",
"workspace.nav.apiKeys": "API 鍵", "workspace.nav.apiKeys": "API 鍵",
"workspace.nav.members": "員", "workspace.nav.members": "員",
"workspace.nav.billing": "計費", "workspace.nav.billing": "計費",
"workspace.nav.settings": "設定", "workspace.nav.settings": "設定",
"workspace.home.banner.beforeLink": "編碼代理的可靠優化模型。", "workspace.home.banner.beforeLink": "編碼代理的可靠優化模型。",
@ -310,26 +310,26 @@ export const dict = {
"workspace.newUser.feature.lockin.body": "workspace.newUser.feature.lockin.body":
"將 Zen 與任何編碼代理結合使用,並在需要時繼續將其他提供程序與 opencode 結合使用。", "將 Zen 與任何編碼代理結合使用,並在需要時繼續將其他提供程序與 opencode 結合使用。",
"workspace.newUser.copyApiKey": "複製 API 密鑰", "workspace.newUser.copyApiKey": "複製 API 密鑰",
"workspace.newUser.copyKey": "複製", "workspace.newUser.copyKey": "複製鑰",
"workspace.newUser.copied": "複製", "workspace.newUser.copied": "複製!",
"workspace.newUser.step.enableBilling": "啟用計費", "workspace.newUser.step.enableBilling": "啟用計費",
"workspace.newUser.step.login.before": "跑步", "workspace.newUser.step.login.before": "執行",
"workspace.newUser.step.login.after": "並選擇 opencode", "workspace.newUser.step.login.after": "並選擇 opencode",
"workspace.newUser.step.pasteKey": "粘貼您的 API 密鑰", "workspace.newUser.step.pasteKey": "粘貼您的 API 密鑰",
"workspace.newUser.step.models.before": "啟動 opencode 並運行", "workspace.newUser.step.models.before": "啟動 opencode 並運行",
"workspace.newUser.step.models.after": "選擇", "workspace.newUser.step.models.after": "選擇型",
"workspace.models.title": "", "workspace.models.title": "型",
"workspace.models.subtitle.beforeLink": "管理工作區成員可以訪問哪些模型。", "workspace.models.subtitle.beforeLink": "管理工作區成員可以訪問哪些模型。",
"workspace.models.table.model": "模型", "workspace.models.table.model": "模型",
"workspace.models.table.enabled": "啟用", "workspace.models.table.enabled": "啟用",
"workspace.providers.title": "帶上你自己的鑰匙", "workspace.providers.title": "自帶密鑰",
"workspace.providers.subtitle": "從 AI 提供商處配置您自己的 API 密鑰。", "workspace.providers.subtitle": "從 AI 提供商處配置您自己的 API 密鑰。",
"workspace.providers.placeholder": "輸入 {{provider}} API 密鑰({{prefix}}...", "workspace.providers.placeholder": "輸入 {{provider}} API 密鑰({{prefix}}...",
"workspace.providers.configure": "配置", "workspace.providers.configure": "配置",
"workspace.providers.edit": "編輯", "workspace.providers.edit": "編輯",
"workspace.providers.delete": "刪除", "workspace.providers.delete": "刪除",
"workspace.providers.saving": "保存...", "workspace.providers.saving": "保存...",
"workspace.providers.save": "節省", "workspace.providers.save": "儲存",
"workspace.providers.table.provider": "提供者", "workspace.providers.table.provider": "提供者",
"workspace.providers.table.apiKey": "API 密鑰", "workspace.providers.table.apiKey": "API 密鑰",
"workspace.usage.title": "使用歷史", "workspace.usage.title": "使用歷史",
@ -348,25 +348,25 @@ export const dict = {
"workspace.usage.subscription": "訂閱 (${{amount}})", "workspace.usage.subscription": "訂閱 (${{amount}})",
"workspace.cost.title": "成本", "workspace.cost.title": "成本",
"workspace.cost.subtitle": "按型號細分的使用成本。", "workspace.cost.subtitle": "按型號細分的使用成本。",
"workspace.cost.allModels": "所有", "workspace.cost.allModels": "所有型",
"workspace.cost.allKeys": "所有按鍵", "workspace.cost.allKeys": "所有密鑰",
"workspace.cost.deletedSuffix": "(已刪除)", "workspace.cost.deletedSuffix": "(已刪除)",
"workspace.cost.empty": "所選期間沒有可用的使用數據。", "workspace.cost.empty": "所選期間沒有可用的使用數據。",
"workspace.cost.subscriptionShort": "", "workspace.cost.subscriptionShort": "",
"workspace.keys.title": "API 鍵", "workspace.keys.title": "API 鍵",
"workspace.keys.subtitle": "管理您的 API 密鑰以訪問 opencode 服務。", "workspace.keys.subtitle": "管理您的 API 密鑰以訪問 opencode 服務。",
"workspace.keys.create": "創建 API 密鑰", "workspace.keys.create": "創建 API 密鑰",
"workspace.keys.placeholder": "輸入按鍵名稱", "workspace.keys.placeholder": "輸入密鑰名稱",
"workspace.keys.empty": "創建 opencode 網關 API 密鑰", "workspace.keys.empty": "創建 opencode 網關 API 密鑰",
"workspace.keys.table.name": "名", "workspace.keys.table.name": "",
"workspace.keys.table.key": "", "workspace.keys.table.key": "鑰",
"workspace.keys.table.createdBy": "創建者", "workspace.keys.table.createdBy": "創建者",
"workspace.keys.table.lastUsed": "最後使用", "workspace.keys.table.lastUsed": "最後使用",
"workspace.keys.copyApiKey": "複製 API 密鑰", "workspace.keys.copyApiKey": "複製 API 密鑰",
"workspace.keys.delete": "刪除", "workspace.keys.delete": "刪除",
"workspace.members.title": "員", "workspace.members.title": "員",
"workspace.members.subtitle": "管理工作區成員及其權限。", "workspace.members.subtitle": "管理工作區成員及其權限。",
"workspace.members.invite": "邀請員", "workspace.members.invite": "邀請員",
"workspace.members.inviting": "邀請...", "workspace.members.inviting": "邀請...",
"workspace.members.beta.beforeLink": "測試期間,工作空間對團隊免費。", "workspace.members.beta.beforeLink": "測試期間,工作空間對團隊免費。",
"workspace.members.form.invitee": "受邀者", "workspace.members.form.invitee": "受邀者",
@ -379,11 +379,11 @@ export const dict = {
"workspace.members.edit": "編輯", "workspace.members.edit": "編輯",
"workspace.members.delete": "刪除", "workspace.members.delete": "刪除",
"workspace.members.saving": "保存...", "workspace.members.saving": "保存...",
"workspace.members.save": "節省", "workspace.members.save": "儲存",
"workspace.members.table.email": "電子郵件", "workspace.members.table.email": "電子郵件",
"workspace.members.table.role": "角色", "workspace.members.table.role": "角色",
"workspace.members.table.monthLimit": "月份限制", "workspace.members.table.monthLimit": "月限額",
"workspace.members.role.admin": "行政", "workspace.members.role.admin": "管理員",
"workspace.members.role.adminDescription": "可以管理模型、成員和計費", "workspace.members.role.adminDescription": "可以管理模型、成員和計費",
"workspace.members.role.member": "成員", "workspace.members.role.member": "成員",
"workspace.members.role.memberDescription": "只能為自己生成 API 密鑰", "workspace.members.role.memberDescription": "只能為自己生成 API 密鑰",
@ -392,7 +392,7 @@ export const dict = {
"workspace.settings.workspaceName": "工作區名稱", "workspace.settings.workspaceName": "工作區名稱",
"workspace.settings.defaultName": "預設", "workspace.settings.defaultName": "預設",
"workspace.settings.updating": "更新中...", "workspace.settings.updating": "更新中...",
"workspace.settings.save": "節省", "workspace.settings.save": "儲存",
"workspace.settings.edit": "編輯", "workspace.settings.edit": "編輯",
"workspace.billing.title": "計費", "workspace.billing.title": "計費",
"workspace.billing.subtitle.beforeLink": "管理付款方式。", "workspace.billing.subtitle.beforeLink": "管理付款方式。",
@ -404,35 +404,35 @@ export const dict = {
"workspace.billing.loading": "載入中...", "workspace.billing.loading": "載入中...",
"workspace.billing.addAction": "添加", "workspace.billing.addAction": "添加",
"workspace.billing.addBalance": "添加餘額", "workspace.billing.addBalance": "添加餘額",
"workspace.billing.linkedToStripe": "鏈接到條紋", "workspace.billing.linkedToStripe": "已連結 Stripe",
"workspace.billing.manage": "管理", "workspace.billing.manage": "管理",
"workspace.billing.enable": "啟用計費", "workspace.billing.enable": "啟用計費",
"workspace.monthlyLimit.title": "每月限額", "workspace.monthlyLimit.title": "每月限額",
"workspace.monthlyLimit.subtitle": "為您的帳戶設置每月使用限額。", "workspace.monthlyLimit.subtitle": "為您的帳戶設置每月使用限額。",
"workspace.monthlyLimit.placeholder": "50", "workspace.monthlyLimit.placeholder": "50",
"workspace.monthlyLimit.setting": "環境...", "workspace.monthlyLimit.setting": "設定中...",
"workspace.monthlyLimit.set": "", "workspace.monthlyLimit.set": "設定",
"workspace.monthlyLimit.edit": "編輯限制", "workspace.monthlyLimit.edit": "編輯限制",
"workspace.monthlyLimit.noLimit": "沒有設置使用限制。", "workspace.monthlyLimit.noLimit": "沒有設置使用限制。",
"workspace.monthlyLimit.currentUsage.beforeMonth": "當前使用情況為", "workspace.monthlyLimit.currentUsage.beforeMonth": "當前",
"workspace.monthlyLimit.currentUsage.beforeAmount": " $", "workspace.monthlyLimit.currentUsage.beforeAmount": "的使用量為 $",
"workspace.reload.title": "自動重新加載", "workspace.reload.title": "自動儲值",
"workspace.reload.disabled.before": "自動重新加載是", "workspace.reload.disabled.before": "自動儲值已",
"workspace.reload.disabled.state": "殘疾人", "workspace.reload.disabled.state": "停用",
"workspace.reload.disabled.after": "啟用餘額不足時自動充值。", "workspace.reload.disabled.after": "啟用後會在餘額偏低時自動儲值。",
"workspace.reload.enabled.before": "自動重新加載是", "workspace.reload.enabled.before": "自動儲值已",
"workspace.reload.enabled.state": "已啟用", "workspace.reload.enabled.state": "已啟用",
"workspace.reload.enabled.middle": "我們將重新加載", "workspace.reload.enabled.middle": "我們將自動儲值",
"workspace.reload.processingFee": "加工費", "workspace.reload.processingFee": "手續費",
"workspace.reload.enabled.after": "當餘額達到", "workspace.reload.enabled.after": "當餘額達到",
"workspace.reload.edit": "編輯", "workspace.reload.edit": "編輯",
"workspace.reload.enable": "使能夠", "workspace.reload.enable": "啟用",
"workspace.reload.enableAutoReload": "啟用自動重新加載", "workspace.reload.enableAutoReload": "啟用自動儲值",
"workspace.reload.reloadAmount": "重新加載 $", "workspace.reload.reloadAmount": "儲值 $",
"workspace.reload.whenBalanceReaches": "當餘額達到 $", "workspace.reload.whenBalanceReaches": "當餘額達到 $",
"workspace.reload.saving": "保存...", "workspace.reload.saving": "保存...",
"workspace.reload.save": "節省", "workspace.reload.save": "儲存",
"workspace.reload.failedAt": "重新加載失敗於", "workspace.reload.failedAt": "儲值失敗於",
"workspace.reload.reason": "原因:", "workspace.reload.reason": "原因:",
"workspace.reload.updatePaymentMethod": "請更新您的付款方式並重試。", "workspace.reload.updatePaymentMethod": "請更新您的付款方式並重試。",
"workspace.reload.retrying": "正在重試...", "workspace.reload.retrying": "正在重試...",
@ -441,11 +441,11 @@ export const dict = {
"workspace.payments.subtitle": "最近的付款交易。", "workspace.payments.subtitle": "最近的付款交易。",
"workspace.payments.table.date": "日期", "workspace.payments.table.date": "日期",
"workspace.payments.table.paymentId": "付款ID", "workspace.payments.table.paymentId": "付款ID",
"workspace.payments.table.amount": "數量", "workspace.payments.table.amount": "金額",
"workspace.payments.table.receipt": "收據", "workspace.payments.table.receipt": "收據",
"workspace.payments.type.credit": "信用", "workspace.payments.type.credit": "信用",
"workspace.payments.type.subscription": "訂閱", "workspace.payments.type.subscription": "訂閱",
"workspace.payments.view": "", "workspace.payments.view": "看",
"workspace.black.loading": "載入中...", "workspace.black.loading": "載入中...",
"workspace.black.time.day": "天", "workspace.black.time.day": "天",
"workspace.black.time.days": "天", "workspace.black.time.days": "天",
@ -455,20 +455,20 @@ export const dict = {
"workspace.black.time.minutes": "分鐘", "workspace.black.time.minutes": "分鐘",
"workspace.black.time.fewSeconds": "幾秒鐘", "workspace.black.time.fewSeconds": "幾秒鐘",
"workspace.black.subscription.title": "訂閱", "workspace.black.subscription.title": "訂閱",
"workspace.black.subscription.message": "您已訂閱 OpenCode Black每月費用為 {{plan}} 美元。", "workspace.black.subscription.message": "您已訂閱 OpenCode Black費用為每月 ${{plan}}。",
"workspace.black.subscription.manage": "管理訂閱", "workspace.black.subscription.manage": "管理訂閱",
"workspace.black.subscription.rollingUsage": "5小時使用", "workspace.black.subscription.rollingUsage": "5小時使用",
"workspace.black.subscription.weeklyUsage": "每週使用量", "workspace.black.subscription.weeklyUsage": "每週使用量",
"workspace.black.subscription.resetsIn": "重置於", "workspace.black.subscription.resetsIn": "重置於",
"workspace.black.subscription.useBalance": "達到使用限額後使用您的可用餘額", "workspace.black.subscription.useBalance": "達到使用限額後使用您的可用餘額",
"workspace.black.waitlist.title": "候補名單", "workspace.black.waitlist.title": "候補名單",
"workspace.black.waitlist.joined": "您正在等待每月 ${{plan}} OpenCode 黑色計劃。", "workspace.black.waitlist.joined": "您已加入每月 ${{plan}} 的 OpenCode Black 方案候補名單。",
"workspace.black.waitlist.ready": "我們已準備好讓您加入每月 {{plan}} 美元的 OpenCode 黑色計劃。", "workspace.black.waitlist.ready": "我們已準備好將您加入每月 ${{plan}} 的 OpenCode Black 方案。",
"workspace.black.waitlist.leave": "離開候補名單", "workspace.black.waitlist.leave": "離開候補名單",
"workspace.black.waitlist.leaving": "離開...", "workspace.black.waitlist.leaving": "離開...",
"workspace.black.waitlist.left": "左邊", "workspace.black.waitlist.left": "已退出",
"workspace.black.waitlist.enroll": "註冊", "workspace.black.waitlist.enroll": "加入",
"workspace.black.waitlist.enrolling": "正在報名...", "workspace.black.waitlist.enrolling": "加入中...",
"workspace.black.waitlist.enrolled": "已註冊", "workspace.black.waitlist.enrolled": "已加入",
"workspace.black.waitlist.enrollNote": "單擊“註冊”後,您的訂閱將立即開始,並且將從您的卡中扣費。", "workspace.black.waitlist.enrollNote": "單擊“註冊”後,您的訂閱將立即開始,並且將從您的卡中扣費。",
} satisfies Dict } satisfies Dict

View File

@ -0,0 +1,76 @@
## workspace i18n audit overview (zen workspace routes)
Audit objective: verify translation accuracy for customer-facing workspace management pages used to manage Zen (AI inference provider) usage, with strict terminology and brand integrity.
---
### scope
- Routes audited: `packages/console/app/src/routes/workspace/**` (all workspace TSX routes, including billing/keys/members/settings)
- Locale files audited: `packages/console/app/src/i18n/ar.ts`, `packages/console/app/src/i18n/da.ts`, `packages/console/app/src/i18n/de.ts`, `packages/console/app/src/i18n/it.ts`
- Source-of-truth copy: `packages/console/app/src/i18n/en.ts`
- Total unique translation keys used by workspace routes: **181**
---
### deliverables
- Arabic audit and fix spec: `specs/20-workspace-i18n-audit-ar.md`
- Danish audit and fix spec: `specs/21-workspace-i18n-audit-da.md`
- German audit and fix spec: `specs/22-workspace-i18n-audit-de.md`
- Italian audit and fix spec: `specs/23-workspace-i18n-audit-it.md`
These files are intentionally execution-ready so follow-up agents can apply string fixes without re-auditing.
---
### non-negotiable terminology contract
1. Product names and brands:
- `Zen` must remain exactly `Zen` (never translated, never lowercased).
- `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models` remain literal.
2. AI domain terms must preserve technical meaning:
- `model` = AI model, not fashion/product model.
- `provider` = AI provider/vendor.
- `Bring Your Own Key` = BYOK concept (user-provided API credential).
3. Billing/top-up language must stay financial:
- `reload` in billing pages means balance top-up/recharge, not page refresh.
- `amount`, `cost`, `usage`, `monthly spending limit` must map to metering/billing context.
4. Placeholder and interpolation safety:
- Keep placeholders unchanged (`{{provider}}`, `{{prefix}}`, `{{amount}}`, etc).
- Keep currency symbols and key ordering intact.
---
### cross-locale risk summary
- Critical risk focus across locales: billing `reload` text must consistently mean balance top-up/recharge (not page refresh), while product literals and CLI command verbs remain exact.
- `ar` (Arabic): **31** flagged keys (critical: 4, major: 23, minor: 4), with critical literals broken for `Zen`, `Stripe`, and `OpenCode Black` waitlist strings.
- `da` (Danish): **33** flagged keys (critical: 8, major: 18, minor: 7), concentrated in reload/top-up semantics plus onboarding/default-label blockers.
- `de` (German): **34** flagged keys (critical: 6, major: 27, minor: 1), centered on reload/top-up semantics, onboarding command phrasing, and usage metric wording.
- `it` (Italian): **25** flagged keys (critical: 2, major: 18, minor: 5), led by `Zen` casing and waitlist status semantics with broader API/billing wording drift.
---
### remediation workflow for follow-up agents
1. Pick one locale spec (`20`/`21`/`22`/`23`) and apply only mapped key updates in that locale file.
2. Do not add/remove keys; only edit string values.
3. Preserve placeholders and punctuation contracts.
4. Run app typecheck:
- `bun run typecheck` in `packages/console/app`
5. Run post-fix terminology sanity checks:
- Literal checks in locale files: `Zen`, `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models`.
- `workspace.reload.*` language matches top-up/recharge semantics.
- `API key` labels are ordered naturally in target language.
- Placeholders remain unchanged (`{{provider}}`, `{{prefix}}`, `{{plan}}`, `{{amount}}`, etc).
---
### acceptance criteria
- All mapped critical and major issues in locale specs are fixed.
- `workspace.nav.zen` is exactly `Zen` in all locales.
- `workspace.billing.linkedToStripe` preserves `Stripe` literal in all locales.
- Workspace billing and usage terminology is technically accurate for AI inference workflows.
- No placeholder regressions.

View File

@ -0,0 +1,99 @@
## workspace i18n audit - ar
Arabic translation audit for workspace routes with focus on Zen/AI/billing terminology accuracy.
---
### coverage
- Route scope: `packages/console/app/src/routes/workspace/**`
- Locale file: `packages/console/app/src/i18n/ar.ts`
- Source reference: `packages/console/app/src/i18n/en.ts`
- Unique keys in scope: **181**
- Flagged keys: **31** (critical: 4, major: 23, minor: 4)
---
### glossary decisions (ar)
- `Zen`: keep exactly `Zen`
- `OpenCode Black`: keep exactly `OpenCode Black`
- `Stripe`: keep exactly `Stripe`
- `opencode`: keep exactly `opencode`
- `API`: keep exactly `API`
- `/models`: keep exactly `/models`
- `model`: `نموذج` / `نماذج`
- `provider`: `مزوّد`
- `API key`: `مفتاح API`
- `Bring Your Own Key`: `استخدم مفتاحك الخاص`
- `usage`: `الاستخدام`
- `cost`: `التكلفة`
- `billing`: `الفوترة`
- `monthly spending limit`: `حد الإنفاق الشهري`
- `auto reload` (billing context): `إعادة الشحن التلقائي`
- Keep placeholders exactly as-is: `{{provider}}`, `{{prefix}}`, `{{plan}}`, `{{amount}}`.
---
### required key updates
| key | replace with | severity | reason |
| -------------------------------------- | ------------------------------------------------------------------ | -------- | ---------------------------------------------------- |
| workspace.nav.zen | Zen | critical | Product literal must not be translated. |
| workspace.billing.linkedToStripe | مرتبط بـ Stripe | critical | Keep payment brand literal `Stripe`. |
| workspace.black.waitlist.joined | أنت على قائمة الانتظار لخطة OpenCode Black بقيمة ${{plan}} شهريًا. | critical | Preserve exact literal `OpenCode Black`. |
| workspace.black.waitlist.ready | نحن مستعدون لتسجيلك في خطة OpenCode Black بقيمة ${{plan}} شهريًا. | critical | Preserve exact literal `OpenCode Black`. |
| workspace.nav.apiKeys | مفاتيح API | major | Correct `API` key word order. |
| workspace.keys.title | مفاتيح API | major | Correct `API` key word order. |
| workspace.providers.table.apiKey | مفتاح API | major | Correct `API` key word order. |
| workspace.cost.title | التكلفة | major | `Cost` mistranslated as verb. |
| workspace.usage.table.cost | التكلفة | major | `Cost` mistranslated as verb. |
| workspace.cost.allModels | جميع النماذج | major | Prefer standard AI term `نماذج`. |
| workspace.cost.subscriptionShort | اشتراك | major | Current value is semantically wrong. |
| workspace.payments.table.amount | المبلغ | major | Financial amount mistranslated as quantity. |
| workspace.payments.view | عرض | major | CTA mistranslated as noun “scenery”. |
| workspace.monthlyLimit.setting | جارٍ التعيين... | major | Progress state mistranslated. |
| workspace.settings.defaultName | الافتراضي | major | Default label mistranslated. |
| workspace.newUser.step.login.before | شغّل | major | CLI imperative “Run” mistranslated. |
| workspace.members.role.admin | مسؤول | major | Spelling error. |
| workspace.reload.title | إعادة الشحن التلقائي | major | Billing `reload` means top-up/recharge, not refresh. |
| workspace.reload.enableAutoReload | تفعيل إعادة الشحن التلقائي | major | Must reflect top-up semantics. |
| workspace.reload.reloadAmount | مبلغ إعادة الشحن $ | major | Must reflect recharge amount. |
| workspace.reload.failedAt | فشلت إعادة الشحن في | major | Must reflect recharge failure. |
| workspace.reload.disabled.state | معطّل | major | Incorrect toggle state term. |
| workspace.reload.enabled.after | عندما يصل الرصيد إلى | major | `balance` mistranslated as “equilibrium”. |
| workspace.reload.enable | تفعيل | major | CTA form mistranslated. |
| workspace.reload.disabled.before | إعادة الشحن التلقائي | major | Align phrase with recharge semantics. |
| workspace.reload.enabled.before | إعادة الشحن التلقائي | major | Align phrase with recharge semantics. |
| workspace.reload.enabled.middle | سنعيد شحن رصيدك بمبلغ | major | Must explicitly mean topping up balance. |
| workspace.billing.addAction | إضافة | minor | CTA grammatical form fix. |
| workspace.billing.manage | إدارة | minor | CTA grammatical form fix. |
| workspace.keys.empty | أنشئ مفتاح API لبوابة opencode | minor | Improve technical clarity and ordering. |
| workspace.newUser.feature.lockin.title | بدون احتجاز بمزوّد واحد | minor | Better conveys “No Lock-in”. |
---
### implementation batches
1. **Brand literals first (critical)**
- `workspace.nav.zen`, `workspace.billing.linkedToStripe`, `workspace.black.waitlist.joined`, `workspace.black.waitlist.ready`
2. **Reload/recharge semantics**
- `workspace.reload.*` flagged keys to ensure top-up meaning (not page refresh)
3. **Billing/payment terminology**
- `workspace.cost.title`, `workspace.usage.table.cost`, `workspace.payments.table.amount`, `workspace.payments.view`, `workspace.monthlyLimit.setting`
4. **API/workspace wording fixes**
- API-key ordering keys, `workspace.settings.defaultName`, `workspace.members.role.admin`, `workspace.newUser.step.login.before`
5. **Minor CTA/clarity polish**
- `workspace.billing.addAction`, `workspace.billing.manage`, `workspace.keys.empty`, `workspace.newUser.feature.lockin.title`
---
### acceptance checks for follow-up fix agent
- `workspace.nav.zen` value is exactly `Zen`.
- `workspace.billing.linkedToStripe` contains `Stripe` literal.
- `workspace.black.waitlist.joined` and `workspace.black.waitlist.ready` keep `OpenCode Black` exactly.
- No `workspace.reload.*` string implies page refresh; all imply balance top-up/recharge.
- API key labels use `مفتاح API` / `مفاتيح API` ordering.
- Preserve literals exactly: `Zen`, `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models`.
- All placeholders remain unchanged (`{{provider}}`, `{{prefix}}`, `{{plan}}`, `{{amount}}`).

View File

@ -0,0 +1,103 @@
## workspace i18n audit - da
Danish translation audit for workspace routes with emphasis on AI-provider, billing, and workspace-management accuracy.
---
### coverage
- Route scope: `packages/console/app/src/routes/workspace/**`
- Locale file: `packages/console/app/src/i18n/da.ts`
- Source reference: `packages/console/app/src/i18n/en.ts`
- Unique locale keys used in scope: **181**
- Flagged keys: **33** (critical: 8, major: 18, minor: 7)
---
### glossary decisions (da)
- `Zen`: keep exactly `Zen`
- `Stripe`: keep exactly `Stripe`
- `OpenCode Black`: keep exactly `OpenCode Black`
- `opencode`: keep exactly `opencode`
- `API`: keep exactly `API`
- `/models`: keep exactly `/models`
- `API key`: `API-nøgle`
- `billing`: `fakturering`
- `reload` in wallet context: `genopfyldning` (top-up), never page refresh wording
---
### required key updates
| key | current da | replace with | severity | reason |
| ------------------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| workspace.newUser.step.login.before | Løbe | Kør | critical | Wrong verb for CLI instruction (`opencode auth login`). |
| workspace.settings.defaultName | Misligholdelse | Standard | critical | Wrong meaning for default-label UI text. |
| workspace.reload.title | Automatisk genindlæsning | Automatisk genopfyldning | critical | `reload` here is balance top-up, not page reload. |
| workspace.reload.disabled.before | Automatisk genindlæsning er | Automatisk genopfyldning er | critical | Same billing top-up semantic issue. |
| workspace.reload.enabled.before | Automatisk genindlæsning er | Automatisk genopfyldning er | critical | Same billing top-up semantic issue. |
| workspace.reload.enableAutoReload | Aktiver automatisk genindlæsning | Aktiver automatisk genopfyldning | critical | Same billing top-up semantic issue. |
| workspace.reload.reloadAmount | Genindlæs $ | Genopfyld $ | critical | Top-up amount label, not page reload action. |
| workspace.reload.failedAt | Genindlæsning mislykkedes kl | Genopfyldning mislykkedes kl | critical | Error refers to failed recharge event. |
| workspace.reload.disabled.after | Aktiver for automatisk at genindlæse, når balancen er lav. | Aktiver for automatisk at genopfylde, når saldoen er lav. | major | Must describe low-balance auto top-up behavior. |
| workspace.reload.enabled.middle | Vi genindlæser | Vi genopfylder | major | Must describe automatic recharge action. |
| workspace.reload.disabled.state | handicappet | deaktiveret | major | Wrong/off-tone toggle-state wording. |
| workspace.members.save | Spare | Gem | major | Current word means monetary savings, not save changes. |
| workspace.providers.save | Spare | Gem | major | Current word means monetary savings, not save changes. |
| workspace.reload.save | Spare | Gem | major | Current word means monetary savings, not save changes. |
| workspace.settings.save | Spare | Gem | major | Current word means monetary savings, not save changes. |
| workspace.keys.copyApiKey | Kopiér nøglen API | Kopiér API-nøgle | major | Incorrect technical phrase order. |
| workspace.newUser.copyApiKey | Kopiér nøglen API | Kopiér API-nøgle | major | Incorrect technical phrase order. |
| workspace.providers.placeholder | Indtast nøglen {{provider}} API ({{prefix}}...) | Indtast {{provider}} API-nøgle ({{prefix}}...) | major | Technical phrase is malformed; placeholders must be preserved exactly. |
| workspace.newUser.feature.tested.body | Vi har benchmarket og testet modeller specifikt til kodningsmidler for at sikre den bedste ydeevne. | Vi har benchmarket og testet modeller specifikt til kodningsagenter for at sikre den bedste ydeevne. | major | Wrong domain noun (`kodningsmidler` != coding agents). |
| workspace.payments.table.receipt | Modtagelse | Kvittering | major | Wrong payment term for receipt column. |
| workspace.payments.view | Udsigt | Vis | major | Wrong CTA meaning for “View” action. |
| workspace.black.waitlist.left | Venstre | Forladt | major | Wrong meaning (“left” direction vs status). |
| workspace.usage.table.output | Produktion | Output | major | Wrong AI metering term in token table. |
| workspace.usage.breakdown.output | Produktion | Output | major | Wrong AI metering term in token breakdown. |
| workspace.usage.table.cost | Koste | Omkostning | major | Wrong part of speech for metric label. |
| workspace.cost.title | Koste | Omkostninger | major | Wrong part of speech for section heading. |
| workspace.members.edit | Redigere | Rediger | minor | Use imperative CTA form. |
| workspace.providers.edit | Redigere | Rediger | minor | Use imperative CTA form. |
| workspace.reload.edit | Redigere | Rediger | minor | Use imperative CTA form. |
| workspace.settings.edit | Redigere | Rediger | minor | Use imperative CTA form. |
| workspace.billing.addAction | Tilføje | Tilføj | minor | Use imperative CTA form. |
| workspace.billing.manage | Styre | Administrer | minor | Better management CTA wording in product UI. |
| workspace.black.waitlist.enroll | Indskrive | Tilmeld | minor | Better enrollment CTA for subscription/waitlist flow. |
---
### implementation batches
1. **Critical blockers: onboarding + default + reload semantics**
- `workspace.newUser.step.login.before`
- `workspace.settings.defaultName`
- `workspace.reload.title`
- `workspace.reload.disabled.before`
- `workspace.reload.enabled.before`
- `workspace.reload.enableAutoReload`
- `workspace.reload.reloadAmount`
- `workspace.reload.failedAt`
2. **Billing top-up and save-action correctness**
- Remaining `workspace.reload.*` in table
- `workspace.members.save`, `workspace.providers.save`, `workspace.reload.save`, `workspace.settings.save`
3. **API and provider terminology cleanup**
- `workspace.keys.copyApiKey`, `workspace.newUser.copyApiKey`, `workspace.providers.placeholder`
4. **Usage/payments/workspace label fixes**
- `workspace.newUser.feature.tested.body`
- `workspace.payments.table.receipt`, `workspace.payments.view`
- `workspace.black.waitlist.left`
- `workspace.usage.table.output`, `workspace.usage.breakdown.output`, `workspace.usage.table.cost`, `workspace.cost.title`
5. **CTA polish (minor imperative consistency)**
- all `*.edit`, `workspace.billing.addAction`, `workspace.billing.manage`, `workspace.black.waitlist.enroll`
---
### acceptance checks for follow-up fix agent
- Preserve literals exactly: `Zen`, `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models`.
- Preserve placeholders exactly (eg `{{provider}}`, `{{prefix}}`, `{{plan}}`, `{{amount}}`).
- All `workspace.reload.*` labels must mean balance top-up/recharge (`genopfyld*`), never page refresh (`genindlæs*`).
- Save CTAs must reflect saving changes (`Gem` / `Gemmer...`), not savings-money wording.
- AI metering labels in usage tables remain technically correct (`Input`, `Output`, cost nouns).

View File

@ -0,0 +1,95 @@
## workspace i18n audit - de
German translation audit for workspace routes with focus on CLI onboarding clarity, AI metric terminology, and billing top-up semantics.
---
### coverage
- Route scope: `packages/console/app/src/routes/workspace/**`
- Locale file: `packages/console/app/src/i18n/de.ts`
- Source reference: `packages/console/app/src/i18n/en.ts`
- Unique keys in scope: **181**
- Flagged keys: **34** (critical: 6, major: 27, minor: 1)
---
### glossary decisions (de)
- Preserve literals exactly: `Zen`, `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models`
- Preserve placeholders exactly (`{{provider}}`, `{{amount}}`, `{{plan}}`, `{{prefix}}`, etc.)
- `API key`: `API-Schlüssel`
- `usage`: `Nutzung`
- `cost`: `Kosten`; payments column `Betrag`
- `billing`: `Abrechnung`
- Billing `reload` semantics: `Aufladung` / `aufladen` (never `Neuladen`)
- AI cost metrics: keep `Input`, `Output`, `Reasoning`
---
### required key updates
| key | replace with | severity | reason |
| ------------------------------------- | ---------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------- |
| workspace.newUser.step.login.before | Führe | critical | Wrong CLI verb in onboarding instruction. |
| workspace.monthlyLimit.set | Festlegen | critical | CTA mistranslated as noun (`Satz`). |
| workspace.reload.title | Automatische Aufladung | critical | Billing top-up semantics, not page reload. |
| workspace.reload.disabled.after | Aktivieren Sie diese Option, damit bei niedrigem Kontostand automatisch aufgeladen wird. | critical | Uses `neu laden`; must use billing top-up phrasing. |
| workspace.reload.enableAutoReload | Automatische Aufladung aktivieren | critical | Primary toggle must follow billing top-up semantics. |
| workspace.black.subscription.message | Sie haben OpenCode Black für ${{plan}} pro Monat abonniert. | critical | Missing `$` before `{{plan}}`. |
| workspace.newUser.step.models.before | Starte opencode und führe | major | Unidiomatic command phrasing before `/models`. |
| workspace.newUser.copyApiKey | API-Schlüssel kopieren | major | Broken technical term word order. |
| workspace.keys.copyApiKey | API-Schlüssel kopieren | major | Broken technical term word order. |
| workspace.models.table.enabled | Aktiviert | major | Wrong toggle-state label. |
| workspace.providers.saving | Wird gespeichert... | major | `Sparen...` means saving money, not save state. |
| workspace.members.inviting | Wird eingeladen... | major | Incorrect invite loading state wording. |
| workspace.members.saving | Wird gespeichert... | major | `Sparen...` means saving money, not save state. |
| workspace.monthlyLimit.setting | Wird gesetzt... | major | In-progress state should be verbal action. |
| workspace.payments.table.amount | Betrag | major | Financial column mistranslated as quantity. |
| workspace.payments.view | Anzeigen | major | CTA mistranslated as noun (`Sicht`). |
| workspace.usage.table.input | Input | major | AI billing metric should remain technical term. |
| workspace.usage.table.output | Output | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.input | Input | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.output | Output | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.reasoning | Reasoning | major | AI billing metric should remain technical term. |
| workspace.reload.disabled.before | Automatische Aufladung ist | major | Should use top-up semantics instead of `Nachladen`. |
| workspace.reload.enabled.before | Automatische Aufladung ist | major | Should use top-up semantics instead of `Nachladen`. |
| workspace.reload.enabled.state | aktiviert | major | `ermöglicht` is wrong state adjective for toggle. |
| workspace.reload.enabled.middle | Wir laden auf | major | Should be account top-up verb (`aufladen`). |
| workspace.reload.enabled.after | sobald der Kontostand | major | `Gleichgewicht` is wrong meaning for account balance. |
| workspace.reload.reloadAmount | Aufladebetrag $ | major | Label should reflect top-up amount semantics. |
| workspace.reload.whenBalanceReaches | Wenn der Kontostand $ erreicht | major | Use account-balance term `Kontostand`. |
| workspace.reload.failedAt | Aufladung fehlgeschlagen am | major | Error copy should use top-up semantics. |
| workspace.reload.saving | Wird gespeichert... | major | `Sparen...` means saving money, not save state. |
| workspace.black.waitlist.left | Verlassen | major | `Links` is incorrect meaning. |
| workspace.black.waitlist.joined | Sie stehen auf der Warteliste für den OpenCode Black Tarif für ${{plan}} pro Monat. | major | Product name order/phrase is broken. |
| workspace.black.waitlist.ready | Wir können Sie jetzt in den OpenCode Black Tarif für ${{plan}} pro Monat aufnehmen. | major | Product name order/phrase is broken. |
| workspace.black.subscription.resetsIn | Zurückgesetzt in | minor | Improve pre-duration label grammar. |
---
### implementation batches
1. **Critical blockers first**
- `workspace.newUser.step.login.before`, `workspace.monthlyLimit.set`, `workspace.reload.title`, `workspace.reload.disabled.after`, `workspace.reload.enableAutoReload`, `workspace.black.subscription.message`
2. **Reload semantics sweep**
- All `workspace.reload.*` keys listed above (state labels, helper text, error text, amount labels)
3. **Onboarding + API key wording**
- `workspace.newUser.step.models.before`, `workspace.newUser.copyApiKey`, `workspace.keys.copyApiKey`
4. **Async/CTA quality fixes**
- `workspace.providers.saving`, `workspace.members.inviting`, `workspace.members.saving`, `workspace.monthlyLimit.setting`, `workspace.payments.view`, `workspace.reload.saving`
5. **AI usage/payments terminology**
- usage `Input/Output/Reasoning` keys + `workspace.payments.table.amount`
6. **OpenCode Black waitlist copy**
- `workspace.black.waitlist.left`, `workspace.black.waitlist.joined`, `workspace.black.waitlist.ready`, `workspace.black.subscription.resetsIn`
---
### acceptance checks for follow-up fix agent
- Flagged totals align with this spec: **34** (`critical` 6, `major` 27, `minor` 1).
- `workspace.nav.zen` remains exactly `Zen`.
- Literals remain exact where present: `Stripe`, `OpenCode Black`, `opencode`, `API`, `/models`.
- Billing top-up copy consistently uses `Aufladung` / `aufladen` (not `Neuladen`/`Nachladen`).
- Usage metrics remain technical terms: `Input`, `Output`, `Reasoning`.
- Placeholders remain unchanged in all updated strings.

View File

@ -0,0 +1,86 @@
## workspace i18n audit - it
Italian translation audit for workspace routes with focus on Zen brand integrity and AI/billing term precision.
---
### coverage
- Route scope: `packages/console/app/src/routes/workspace/**`
- Locale file: `packages/console/app/src/i18n/it.ts`
- Source reference: `packages/console/app/src/i18n/en.ts`
- Unique keys in scope: **181** (`177` `workspace.*` + `4` `common.*`)
- Flagged keys: **25** (critical: 2, major: 18, minor: 5)
---
### glossary decisions (it)
- `Zen`: keep exactly `Zen`
- `Stripe`: keep exactly `Stripe`
- `OpenCode Black`: keep exactly `OpenCode Black`
- `opencode`: keep exactly `opencode`
- `API`: keep exactly `API`
- `/models`: keep exactly `/models`
- `API key`: `chiave API` / `chiavi API`
- `billing`: `fatturazione`
- `auto reload` (billing): `ricarica automatica`
- `reload` in billing context: top-up/recharge semantics (never page refresh)
---
### required key updates
| key | current_it | replace with | severity | reason |
| -------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------- | --------------------------------------------------------- |
| workspace.nav.zen | zen | Zen | critical | Brand literal must match exactly. |
| workspace.black.waitlist.left | Sinistra | Uscito dalla lista d'attesa | critical | `Left` is waitlist status, not direction. |
| workspace.billing.manage | Maneggio | Gestisci | major | Wrong lexical meaning for CTA. |
| workspace.billing.subtitle.beforeLink | Gestire i metodi di pagamento. | Gestisci i metodi di pagamento. | major | UI copy should be imperative, not infinitive. |
| workspace.black.waitlist.joined | Sei in lista d'attesa per il piano nero ${{plan}} al mese OpenCode. | Sei in lista d'attesa per il piano OpenCode Black da ${{plan}} al mese. | major | Preserve exact product naming and natural billing phrase. |
| workspace.black.waitlist.leaving | In partenza... | Uscita in corso... | major | Wrong async action meaning for waitlist exit. |
| workspace.black.subscription.resetsIn | Si reimposta | Si reimposta tra | major | Missing connector for duration composition. |
| workspace.members.inviting | Invitante... | Invito in corso... | major | Incorrect grammar for in-progress invite state. |
| workspace.members.role.admin | Ammin | Admin | major | Role label typo / non-standard abbreviation. |
| workspace.members.saving | Risparmio... | Salvataggio in corso... | major | Persistence action mistranslated as money saving. |
| workspace.providers.saving | Risparmio... | Salvataggio in corso... | major | Persistence action mistranslated as money saving. |
| workspace.reload.saving | Risparmio... | Salvataggio in corso... | major | Persistence action mistranslated as money saving. |
| workspace.monthlyLimit.setting | Collocamento... | Impostazione in corso... | major | Wrong lexical meaning for `Setting...`. |
| workspace.newUser.step.login.before | Correre | Esegui | major | CLI instruction must convey `Run`. |
| workspace.payments.table.amount | Quantità | Importo | major | Financial amount requires `Importo`. |
| workspace.keys.title | API Chiavi | Chiavi API | major | Technical term order is incorrect. |
| workspace.nav.apiKeys | API Chiavi | Chiavi API | major | Technical term order is incorrect. |
| workspace.providers.table.apiKey | API Chiave | Chiave API | major | Technical term order is incorrect. |
| workspace.providers.title | Porta la tua chiave | Bring Your Own Key (BYOK) | major | Preserve BYOK concept explicitly in AI-provider context. |
| workspace.reload.enabled.after | quando l'equilibrio raggiunge | quando il saldo raggiunge | major | Billing semantic error (`saldo`, not physical balance). |
| workspace.billing.addAction | Aggiungere | Aggiungi | minor | CTA should be imperative form. |
| workspace.payments.view | Visualizzazione | Visualizza | minor | CTA should be verb, not noun. |
| workspace.reload.disabled.before | La ricarica automatica lo è | La ricarica automatica è | minor | Remove incorrect pronoun for grammatical sentence. |
| workspace.reload.enabled.before | La ricarica automatica lo è | La ricarica automatica è | minor | Remove incorrect pronoun for grammatical sentence. |
| workspace.newUser.feature.lockin.title | Nessun blocco | Nessun lock-in | minor | Prefer established product/industry term. |
---
### implementation batches
1. **Critical brand/status fixes**
- `workspace.nav.zen`, `workspace.black.waitlist.left`
2. **Billing and waitlist semantics**
- `workspace.billing.manage`, `workspace.billing.subtitle.beforeLink`, `workspace.black.waitlist.joined`, `workspace.black.waitlist.leaving`, `workspace.black.subscription.resetsIn`, `workspace.reload.enabled.after`, `workspace.payments.table.amount`
3. **Async/action grammar correctness**
- `workspace.members.inviting`, all `*.saving` keys, `workspace.monthlyLimit.setting`, `workspace.newUser.step.login.before`
4. **AI/API terminology consistency**
- `workspace.keys.title`, `workspace.nav.apiKeys`, `workspace.providers.table.apiKey`, `workspace.providers.title`
5. **Minor CTA/style normalizations**
- `workspace.billing.addAction`, `workspace.payments.view`, `workspace.reload.disabled.before`, `workspace.reload.enabled.before`, `workspace.newUser.feature.lockin.title`
---
### acceptance checks for follow-up fix agent
- `workspace.nav.zen` is exactly `Zen`.
- Waitlist status strings use state semantics (`joined`, `leaving`, `left`) and preserve `OpenCode Black`.
- Billing `reload` copy clearly means balance top-up/recharge.
- `Chiave API` / `Chiavi API` ordering is consistent across workspace UI.
- BYOK meaning remains explicit in provider setup title.
- All placeholders are preserved exactly (`{{plan}}`, `{{provider}}`, `{{prefix}}`, `{{amount}}`, etc.).