diff --git a/packages/console/app/src/i18n/ar.ts b/packages/console/app/src/i18n/ar.ts index 958a3f25cac..fcd4af48322 100644 --- a/packages/console/app/src/i18n/ar.ts +++ b/packages/console/app/src/i18n/ar.ts @@ -341,10 +341,13 @@ export const dict = { "go.faq.a5.used": "مستخدَمة", "go.faq.a5.notUsed": "غير مستخدَمة", "go.faq.a5.noAgreement": "لا توجد اتفاقية", + "go.faq.a5.notZdr": "ليست ZDR", "go.faq.a5.grokRetention": "تعطّل ZDR ميزات API مهمة تعتمد على البيانات المخزنة، بما في ذلك Responses API ذات الحالة، وFiles and Collections، وBatch API.", "go.faq.a5.gptRetention": "تُنشأ سجلات مراقبة إساءة الاستخدام لكل استخدام لميزات API، ويُحتفظ بها لمدة تصل إلى 30 يومًا.", + "go.faq.a5.museRetention": + "أسعار توكنات مخفّضة للغاية مقابل منح الإذن باستخدام مطالباتك وإكمالات النموذج لتدريب نماذج Meta المستقبلية.", "go.faq.a5.learnMore": "اعرف المزيد", "go.faq.a5.deepseekRetention": "تُجدَّد اتفاقية ZDR شهريًا. الاتفاقية الحالية سارية حتى 31 أغسطس 2026.", "go.faq.a5.beforeExceptions": @@ -385,6 +388,9 @@ export const dict = { "zen.api.error.modelDisabled": "النموذج معطل", "zen.api.error.regionNotAllowed": "لا يتوفر أحدث إصدار من هذا النموذج إلا مستضافًا في الصين، ويتطلب تفعيلًا صريحًا: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "هذا النموذج غير متاح في بلدك.", + "zen.api.error.trainingNotAllowed": + "يجمع هذا النموذج بيانات تُستخدم لتحسين جودته، ويتطلب موافقتك الصريحة: {{consoleGoUrl}}", "zen.api.error.trialEnded": "انتهى العرض المجاني لـ {{model}}. يمكنك مواصلة استخدام النموذج بالاشتراك في OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/br.ts b/packages/console/app/src/i18n/br.ts index 73442235f8a..c7115b97f18 100644 --- a/packages/console/app/src/i18n/br.ts +++ b/packages/console/app/src/i18n/br.ts @@ -348,10 +348,13 @@ export const dict = { "go.faq.a5.used": "Usado", "go.faq.a5.notUsed": "Não usado", "go.faq.a5.noAgreement": "Sem acordo", + "go.faq.a5.notZdr": "Não é ZDR", "go.faq.a5.grokRetention": "O ZDR desativa recursos importantes da API que dependem de dados armazenados, incluindo a Responses API com estado, Files and Collections e a Batch API.", "go.faq.a5.gptRetention": "Logs de monitoramento de abuso são gerados para todo uso de recursos da API e retidos por até 30 dias.", + "go.faq.a5.museRetention": + "Preços de tokens com grandes descontos em troca da permissão para usar seus prompts e respostas geradas para treinar futuros modelos da Meta.", "go.faq.a5.learnMore": "Saiba mais", "go.faq.a5.deepseekRetention": "O acordo de ZDR é renovado mensalmente. O acordo atual é válido até 31 de agosto de 2026.", @@ -394,6 +397,9 @@ export const dict = { "zen.api.error.modelDisabled": "O modelo está desabilitado", "zen.api.error.regionNotAllowed": "A versão mais recente deste modelo está disponível apenas com hospedagem na China e requer adesão explícita: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Este modelo não está disponível no seu país.", + "zen.api.error.trainingNotAllowed": + "Este modelo coleta dados usados para melhorar sua qualidade e exige seu consentimento explícito: {{consoleGoUrl}}", "zen.api.error.trialEnded": "A promoção gratuita do {{model}} terminou. Você pode continuar usando o modelo assinando o OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/da.ts b/packages/console/app/src/i18n/da.ts index d6c463ead0d..ae324d58141 100644 --- a/packages/console/app/src/i18n/da.ts +++ b/packages/console/app/src/i18n/da.ts @@ -345,10 +345,13 @@ export const dict = { "go.faq.a5.used": "Brugt", "go.faq.a5.notUsed": "Ikke brugt", "go.faq.a5.noAgreement": "Ingen aftale", + "go.faq.a5.notZdr": "Ikke ZDR", "go.faq.a5.grokRetention": "ZDR deaktiverer vigtige API-funktioner, der afhænger af lagrede data, herunder den tilstandsbevarende Responses API, Files and Collections og Batch API.", "go.faq.a5.gptRetention": "Logfiler til overvågning af misbrug genereres ved al brug af API-funktioner og opbevares i op til 30 dage.", + "go.faq.a5.museRetention": + "Kraftigt nedsatte tokenpriser til gengæld for tilladelse til at bruge dine prompts og modelsvar til at træne fremtidige Meta-modeller.", "go.faq.a5.learnMore": "Læs mere", "go.faq.a5.deepseekRetention": "ZDR-aftalen fornyes månedligt. Den nuværende aftale er gyldig til og med 31. august 2026.", @@ -391,6 +394,9 @@ export const dict = { "zen.api.error.modelDisabled": "Modellen er deaktiveret", "zen.api.error.regionNotAllowed": "Den nyeste version af denne model er kun tilgængelig som hostet i Kina og kræver, at du aktivt tilvælger den: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Denne model er ikke tilgængelig i dit land.", + "zen.api.error.trainingNotAllowed": + "Denne model indsamler data, der bruges til at forbedre dens kvalitet, og kræver, at du aktivt tilvælger den: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Den gratis kampagne for {{model}} er afsluttet. Du kan fortsætte med at bruge modellen ved at abonnere på OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/de.ts b/packages/console/app/src/i18n/de.ts index c22855fcfc3..9d4844469cb 100644 --- a/packages/console/app/src/i18n/de.ts +++ b/packages/console/app/src/i18n/de.ts @@ -347,10 +347,13 @@ export const dict = { "go.faq.a5.used": "Verwendet", "go.faq.a5.notUsed": "Nicht verwendet", "go.faq.a5.noAgreement": "Keine Vereinbarung", + "go.faq.a5.notZdr": "Kein ZDR", "go.faq.a5.grokRetention": "ZDR deaktiviert wichtige API-Funktionen, die von gespeicherten Daten abhängen, einschließlich der zustandsbehafteten Responses API, Files and Collections und der Batch API.", "go.faq.a5.gptRetention": "Für die Nutzung aller API-Funktionen werden Protokolle zur Missbrauchsüberwachung erstellt und bis zu 30 Tage lang aufbewahrt.", + "go.faq.a5.museRetention": + "Stark vergünstigte Tokenpreise im Gegenzug für die Erlaubnis, deine Prompts und Vervollständigungen zum Trainieren zukünftiger Meta-Modelle zu verwenden.", "go.faq.a5.learnMore": "Mehr erfahren", "go.faq.a5.deepseekRetention": "Die ZDR-Vereinbarung wird monatlich erneuert. Die aktuelle Vereinbarung gilt bis einschließlich 31. August 2026.", @@ -393,6 +396,9 @@ export const dict = { "zen.api.error.modelDisabled": "Modell ist deaktiviert", "zen.api.error.regionNotAllowed": "Die neueste Version dieses Modells ist nur verfügbar, wenn sie in China gehostet wird, und muss ausdrücklich aktiviert werden: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Dieses Modell ist in deinem Land nicht verfügbar.", + "zen.api.error.trainingNotAllowed": + "Dieses Modell erfasst Daten, die zur Verbesserung seiner Qualität verwendet werden, und erfordert deine ausdrückliche Zustimmung: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Die kostenlose Aktion für {{model}} ist beendet. Du kannst das Modell weiterhin nutzen, indem du OpenCode Go abonnierst - {{link}}", diff --git a/packages/console/app/src/i18n/en.ts b/packages/console/app/src/i18n/en.ts index 726a9282d20..739349f6b23 100644 --- a/packages/console/app/src/i18n/en.ts +++ b/packages/console/app/src/i18n/en.ts @@ -343,10 +343,13 @@ export const dict = { "go.faq.a5.used": "Used", "go.faq.a5.notUsed": "Not used", "go.faq.a5.noAgreement": "No agreement", + "go.faq.a5.notZdr": "Not ZDR", "go.faq.a5.grokRetention": "ZDR disables important API features that depend on stored data, including the stateful Responses API, Files and Collections, and the Batch API.", "go.faq.a5.gptRetention": "Abuse monitoring logs are generated for all API feature usage and retained for up to 30 days.", + "go.faq.a5.museRetention": + "Heavily discounted token pricing in exchange for permission to use your prompts and completions to train future Meta models.", "go.faq.a5.deepseekRetention": "ZDR agreement is renewed monthly. The current agreement is valid through August 31, 2026.", "go.faq.a5.learnMore": "Learn more", @@ -390,6 +393,9 @@ export const dict = { "zen.api.error.modelDisabled": "Model is disabled", "zen.api.error.regionNotAllowed": "The latest version of this model is only available hosted in China and requires explicit opt in: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "This model is not available in your country.", + "zen.api.error.trainingNotAllowed": + "This model collects data used to improve its quality and requires explicit opt in: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Free promotion has ended for {{model}}. You can continue using the model by subscribing to OpenCode Go - {{link}}", @@ -671,7 +677,8 @@ export const dict = { 'Select "OpenCode Go" as the provider in your opencode configuration to use Go models.', "workspace.lite.providers.title": "Providers", "workspace.lite.providers.description": "Control which providers are used for routing.", - "workspace.lite.providers.useChina": "Enable models hosted in China", + "workspace.lite.providers.allowTraining": "Allow models that train on request data", + "workspace.lite.providers.useChina": "Allow models hosted in China", "workspace.lite.black.message": "You're currently subscribed to OpenCode Black or on the waitlist. Please unsubscribe first if you'd like to switch to Go.", "workspace.lite.other.message": diff --git a/packages/console/app/src/i18n/es.ts b/packages/console/app/src/i18n/es.ts index 1198aaf046e..5ebff5a2374 100644 --- a/packages/console/app/src/i18n/es.ts +++ b/packages/console/app/src/i18n/es.ts @@ -348,10 +348,13 @@ export const dict = { "go.faq.a5.used": "Utilizado", "go.faq.a5.notUsed": "No utilizado", "go.faq.a5.noAgreement": "Sin acuerdo", + "go.faq.a5.notZdr": "Sin ZDR", "go.faq.a5.grokRetention": "ZDR deshabilita funciones importantes de la API que dependen de datos almacenados, incluidas la Responses API con estado, Files and Collections y la Batch API.", "go.faq.a5.gptRetention": "Se generan registros de supervisión de abusos para todo el uso de funciones de la API y se conservan durante un máximo de 30 días.", + "go.faq.a5.museRetention": + "Precios de tokens muy reducidos a cambio de permitir que tus prompts y las respuestas generadas se utilicen para entrenar futuros modelos de Meta.", "go.faq.a5.learnMore": "Más información", "go.faq.a5.deepseekRetention": "El acuerdo de ZDR se renueva mensualmente. El acuerdo actual es válido hasta el 31 de agosto de 2026.", @@ -394,6 +397,9 @@ export const dict = { "zen.api.error.modelDisabled": "El modelo está deshabilitado", "zen.api.error.regionNotAllowed": "La versión más reciente de este modelo solo está disponible alojada en China y requiere una aceptación explícita: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Este modelo no está disponible en tu país.", + "zen.api.error.trainingNotAllowed": + "Este modelo recopila datos que se utilizan para mejorar su calidad y requiere tu consentimiento explícito: {{consoleGoUrl}}", "zen.api.error.trialEnded": "La promoción gratuita de {{model}} ha finalizado. Puedes seguir usando el modelo suscribiéndote a OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/fr.ts b/packages/console/app/src/i18n/fr.ts index 9be99466020..174ed70576f 100644 --- a/packages/console/app/src/i18n/fr.ts +++ b/packages/console/app/src/i18n/fr.ts @@ -349,10 +349,13 @@ export const dict = { "go.faq.a5.used": "Utilisé", "go.faq.a5.notUsed": "Non utilisé", "go.faq.a5.noAgreement": "Aucun accord", + "go.faq.a5.notZdr": "Pas de ZDR", "go.faq.a5.grokRetention": "Le ZDR désactive d'importantes fonctionnalités API qui dépendent des données stockées, notamment Responses API avec état, Files and Collections et Batch API.", "go.faq.a5.gptRetention": "Des journaux de surveillance des abus sont générés pour toute utilisation des fonctionnalités API et conservés pendant un maximum de 30 jours.", + "go.faq.a5.museRetention": + "Des tarifs de tokens fortement réduits en échange de l’autorisation d’utiliser vos prompts et vos complétions pour entraîner de futurs modèles Meta.", "go.faq.a5.learnMore": "En savoir plus", "go.faq.a5.deepseekRetention": "L’accord ZDR est renouvelé chaque mois. L’accord actuel est valable jusqu’au 31 août 2026.", @@ -395,6 +398,9 @@ export const dict = { "zen.api.error.modelDisabled": "Le modèle est désactivé", "zen.api.error.regionNotAllowed": "La dernière version de ce modèle est uniquement disponible avec un hébergement en Chine et nécessite votre consentement explicite : {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Ce modèle n’est pas disponible dans votre pays.", + "zen.api.error.trainingNotAllowed": + "Ce modèle collecte des données utilisées pour améliorer sa qualité et nécessite votre consentement explicite : {{consoleGoUrl}}", "zen.api.error.trialEnded": "La promotion gratuite de {{model}} est terminée. Vous pouvez continuer à utiliser le modèle en vous abonnant à OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/it.ts b/packages/console/app/src/i18n/it.ts index 7cded5431d2..cf4c0d77288 100644 --- a/packages/console/app/src/i18n/it.ts +++ b/packages/console/app/src/i18n/it.ts @@ -344,6 +344,7 @@ export const dict = { "go.faq.a5.used": "Utilizzato", "go.faq.a5.notUsed": "Non utilizzato", "go.faq.a5.noAgreement": "Nessun accordo", + "go.faq.a5.notZdr": "Non ZDR", "go.faq.a5.grokRetention": "ZDR disabilita importanti funzionalità API che dipendono dai dati archiviati, tra cui la Responses API con stato, Files and Collections e Batch API.", "go.faq.a5.gptRetention": @@ -351,6 +352,8 @@ export const dict = { "go.faq.a5.learnMore": "Scopri di più", "go.faq.a5.deepseekRetention": "L'accordo ZDR viene rinnovato mensilmente. L'accordo attuale è valido fino al 31 agosto 2026.", + "go.faq.a5.museRetention": + "Prezzi dei token fortemente scontati in cambio dell'autorizzazione a utilizzare i tuoi prompt e completamenti per addestrare futuri modelli Meta.", "go.faq.a5.beforeExceptions": "I modelli Go sono ospitati negli Stati Uniti. I provider seguono una policy di zero-retention e non usano i tuoi dati per l'addestramento dei modelli, con le", "go.faq.a5.exceptionsLink": "seguenti eccezioni", @@ -390,6 +393,9 @@ export const dict = { "zen.api.error.modelDisabled": "Il modello è disabilitato", "zen.api.error.regionNotAllowed": "La versione più recente di questo modello è disponibile solo con hosting in Cina e richiede un consenso esplicito: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Questo modello non è disponibile nel tuo paese.", + "zen.api.error.trainingNotAllowed": + "Questo modello raccoglie dati utilizzati per migliorarne la qualità e richiede il tuo consenso esplicito: {{consoleGoUrl}}", "zen.api.error.trialEnded": "La promozione gratuita di {{model}} è terminata. Puoi continuare a usare il modello abbonandoti a OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/ja.ts b/packages/console/app/src/i18n/ja.ts index dc46c24a654..1ed9df75099 100644 --- a/packages/console/app/src/i18n/ja.ts +++ b/packages/console/app/src/i18n/ja.ts @@ -344,9 +344,12 @@ export const dict = { "go.faq.a5.used": "使用あり", "go.faq.a5.notUsed": "使用なし", "go.faq.a5.noAgreement": "契約なし", + "go.faq.a5.notZdr": "ZDRではない", "go.faq.a5.grokRetention": "ZDRでは、保存データに依存する重要なAPI機能(ステートフルなResponses API、Files and Collections、Batch APIなど)が無効になります。", "go.faq.a5.gptRetention": "不正使用監視ログはすべてのAPI機能の使用時に生成され、最大30日間保持されます。", + "go.faq.a5.museRetention": + "将来のMetaモデルのトレーニングにプロンプトと生成結果を使用する許可と引き換えに、トークン料金が大幅に割引されます。", "go.faq.a5.learnMore": "詳しく見る", "go.faq.a5.deepseekRetention": "ZDR契約は毎月更新されます。現在の契約は2026年8月31日まで有効です。", "go.faq.a5.beforeExceptions": @@ -389,6 +392,9 @@ export const dict = { "zen.api.error.modelDisabled": "モデルが無効です", "zen.api.error.regionNotAllowed": "このモデルの最新バージョンは中国でのみホスト提供されており、利用するには明示的なオプトインが必要です: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "このモデルはお住まいの国では利用できません。", + "zen.api.error.trainingNotAllowed": + "このモデルは品質向上のためのデータを収集します。利用するには明示的な同意が必要です: {{consoleGoUrl}}", "zen.api.error.trialEnded": "{{model}} の無料プロモーションは終了しました。OpenCode Go を購読するとモデルを引き続き使用できます - {{link}}", diff --git a/packages/console/app/src/i18n/ko.ts b/packages/console/app/src/i18n/ko.ts index a675389e994..946b5c0892a 100644 --- a/packages/console/app/src/i18n/ko.ts +++ b/packages/console/app/src/i18n/ko.ts @@ -340,9 +340,12 @@ export const dict = { "go.faq.a5.used": "사용됨", "go.faq.a5.notUsed": "사용되지 않음", "go.faq.a5.noAgreement": "합의 없음", + "go.faq.a5.notZdr": "ZDR 아님", "go.faq.a5.grokRetention": "ZDR은 저장된 데이터에 의존하는 중요한 API 기능(상태 저장형 Responses API, Files and Collections, Batch API 포함)을 비활성화합니다.", "go.faq.a5.gptRetention": "모든 API 기능 사용에 대해 악용 모니터링 로그가 생성되며 최대 30일 동안 보존됩니다.", + "go.faq.a5.museRetention": + "향후 Meta 모델 학습에 사용자의 프롬프트와 생성 결과를 사용할 수 있도록 허용하는 대신 토큰 가격이 대폭 할인됩니다.", "go.faq.a5.learnMore": "자세히 알아보기", "go.faq.a5.deepseekRetention": "ZDR 계약은 매월 갱신됩니다. 현재 계약은 2026년 8월 31일까지 유효합니다.", "go.faq.a5.beforeExceptions": @@ -383,6 +386,9 @@ export const dict = { "zen.api.error.modelDisabled": "모델이 비활성화되었습니다", "zen.api.error.regionNotAllowed": "이 모델의 최신 버전은 중국에서 호스팅되는 경우에만 사용할 수 있으며, 명시적으로 사용에 동의해야 합니다: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "이 모델은 거주 국가에서 사용할 수 없습니다.", + "zen.api.error.trainingNotAllowed": + "이 모델은 품질 개선에 사용되는 데이터를 수집하며, 사용하려면 명시적으로 동의해야 합니다: {{consoleGoUrl}}", "zen.api.error.trialEnded": "{{model}}의 무료 프로모션이 종료되었습니다. OpenCode Go를 구독하면 모델을 계속 사용할 수 있습니다 - {{link}}", diff --git a/packages/console/app/src/i18n/no.ts b/packages/console/app/src/i18n/no.ts index 09c9629d0f6..ce0ae212192 100644 --- a/packages/console/app/src/i18n/no.ts +++ b/packages/console/app/src/i18n/no.ts @@ -345,6 +345,7 @@ export const dict = { "go.faq.a5.used": "Brukes", "go.faq.a5.notUsed": "Brukes ikke", "go.faq.a5.noAgreement": "Ingen avtale", + "go.faq.a5.notZdr": "Ikke ZDR", "go.faq.a5.grokRetention": "ZDR deaktiverer viktige API-funksjoner som er avhengige av lagrede data, inkludert den tilstandsbaserte Responses API, Files and Collections og Batch API.", "go.faq.a5.gptRetention": @@ -352,6 +353,8 @@ export const dict = { "go.faq.a5.learnMore": "Les mer", "go.faq.a5.deepseekRetention": "ZDR-avtalen fornyes månedlig. Den gjeldende avtalen er gyldig til og med 31. august 2026.", + "go.faq.a5.museRetention": + "Kraftig rabatterte tokenpriser i bytte mot tillatelse til å bruke ledetekstene og fullføringene dine til å trene fremtidige Meta-modeller.", "go.faq.a5.beforeExceptions": "Go-modeller hostes i USA. Leverandører følger en policy om null oppbevaring og bruker ikke dataene dine til modelltrening, med", @@ -392,6 +395,9 @@ export const dict = { "zen.api.error.modelDisabled": "Modellen er deaktivert", "zen.api.error.regionNotAllowed": "Den nyeste versjonen av denne modellen er bare tilgjengelig som en tjeneste driftet i Kina og krever at du uttrykkelig samtykker: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Denne modellen er ikke tilgjengelig i landet ditt.", + "zen.api.error.trainingNotAllowed": + "Denne modellen samler inn data som brukes til å forbedre modellens kvalitet, og krever at du uttrykkelig samtykker: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Den gratis kampanjen for {{model}} er avsluttet. Du kan fortsette å bruke modellen ved å abonnere på OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/pl.ts b/packages/console/app/src/i18n/pl.ts index 71890ac8b3d..4aa76126bb3 100644 --- a/packages/console/app/src/i18n/pl.ts +++ b/packages/console/app/src/i18n/pl.ts @@ -346,12 +346,15 @@ export const dict = { "go.faq.a5.used": "Wykorzystywane", "go.faq.a5.notUsed": "Niewykorzystywane", "go.faq.a5.noAgreement": "Brak umowy", + "go.faq.a5.notZdr": "Nie ZDR", "go.faq.a5.grokRetention": "ZDR wyłącza ważne funkcje API zależne od przechowywanych danych, w tym stanowy Responses API, Files and Collections oraz Batch API.", "go.faq.a5.gptRetention": "Dzienniki monitorowania nadużyć są generowane dla każdego użycia funkcji API i przechowywane przez maksymalnie 30 dni.", "go.faq.a5.learnMore": "Dowiedz się więcej", "go.faq.a5.deepseekRetention": "Umowa ZDR jest odnawiana co miesiąc. Obecna umowa obowiązuje do 31 sierpnia 2026 r.", + "go.faq.a5.museRetention": + "Znacznie obniżone ceny tokenów w zamian za zgodę na wykorzystanie Twoich promptów i odpowiedzi do trenowania przyszłych modeli Meta.", "go.faq.a5.beforeExceptions": "Modele Go są hostowane w USA. Dostawcy stosują politykę zerowej retencji i nie używają Twoich danych do trenowania modeli, z", @@ -392,6 +395,9 @@ export const dict = { "zen.api.error.modelDisabled": "Model jest wyłączony", "zen.api.error.regionNotAllowed": "Najnowsza wersja tego modelu jest dostępna wyłącznie jako usługa hostowana w Chinach i wymaga jawnej zgody użytkownika: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Ten model nie jest dostępny w Twoim kraju.", + "zen.api.error.trainingNotAllowed": + "Ten model zbiera dane wykorzystywane do poprawy jego jakości i wymaga wyraźnej zgody użytkownika: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Bezpłatna promocja {{model}} dobiegła końca. Możesz dalej korzystać z modelu, subskrybując OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/ru.ts b/packages/console/app/src/i18n/ru.ts index 1662061fdec..8fe362c2e22 100644 --- a/packages/console/app/src/i18n/ru.ts +++ b/packages/console/app/src/i18n/ru.ts @@ -350,6 +350,7 @@ export const dict = { "go.faq.a5.used": "Используется", "go.faq.a5.notUsed": "Не используется", "go.faq.a5.noAgreement": "Нет соглашения", + "go.faq.a5.notZdr": "Не ZDR", "go.faq.a5.grokRetention": "ZDR отключает важные функции API, зависящие от сохраненных данных, включая Responses API с сохранением состояния, Files and Collections и Batch API.", "go.faq.a5.gptRetention": @@ -357,6 +358,8 @@ export const dict = { "go.faq.a5.learnMore": "Подробнее", "go.faq.a5.deepseekRetention": "Соглашение ZDR продлевается ежемесячно. Текущее соглашение действует до 31 августа 2026 года.", + "go.faq.a5.museRetention": + "Значительно сниженная стоимость токенов в обмен на разрешение использовать ваши промпты и ответы для обучения будущих моделей Meta.", "go.faq.a5.beforeExceptions": "Модели Go размещены в США. Провайдеры следуют политике нулевого хранения и не используют ваши данные для обучения моделей, за", @@ -397,6 +400,9 @@ export const dict = { "zen.api.error.modelDisabled": "Модель отключена", "zen.api.error.regionNotAllowed": "Последняя версия этой модели размещена только в Китае. Чтобы использовать её, необходимо явно подтвердить согласие: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Эта модель недоступна в вашей стране.", + "zen.api.error.trainingNotAllowed": + "Эта модель собирает данные, которые используются для улучшения её качества, и требует явного согласия: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Бесплатная акция для {{model}} завершена. Вы можете продолжить использование модели, подписавшись на OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/th.ts b/packages/console/app/src/i18n/th.ts index f72841b6d27..4ad94a44eb0 100644 --- a/packages/console/app/src/i18n/th.ts +++ b/packages/console/app/src/i18n/th.ts @@ -342,10 +342,13 @@ export const dict = { "go.faq.a5.used": "นำไปใช้", "go.faq.a5.notUsed": "ไม่นำไปใช้", "go.faq.a5.noAgreement": "ไม่มีข้อตกลง", + "go.faq.a5.notZdr": "ไม่ใช่ ZDR", "go.faq.a5.grokRetention": "ZDR ปิดใช้งานฟีเจอร์ API สำคัญที่ต้องอาศัยข้อมูลที่จัดเก็บไว้ ซึ่งรวมถึง Responses API แบบมีสถานะ, Files and Collections และ Batch API", "go.faq.a5.gptRetention": "ระบบจะสร้างบันทึกการตรวจสอบการใช้งานในทางที่ผิดสำหรับการใช้งานฟีเจอร์ API ทั้งหมด และเก็บรักษาไว้นานสูงสุด 30 วัน", + "go.faq.a5.museRetention": + "ราคาของ token ลดลงอย่างมาก โดยแลกกับการอนุญาตให้นำพรอมต์และผลลัพธ์ที่สร้างขึ้นของคุณไปใช้ฝึกโมเดล Meta ในอนาคต", "go.faq.a5.learnMore": "ดูข้อมูลเพิ่มเติม", "go.faq.a5.deepseekRetention": "ข้อตกลง ZDR จะต่ออายุทุกเดือน ข้อตกลงปัจจุบันมีผลใช้ถึงวันที่ 31 สิงหาคม 2026", @@ -387,6 +390,9 @@ export const dict = { "zen.api.error.modelDisabled": "โมเดลถูกปิดใช้งาน", "zen.api.error.regionNotAllowed": "โมเดลเวอร์ชันล่าสุดนี้ให้บริการเฉพาะผ่านระบบที่โฮสต์ในประเทศจีน และต้องให้ความยินยอมอย่างชัดแจ้งก่อนใช้งาน: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "โมเดลนี้ไม่พร้อมให้บริการในประเทศของคุณ", + "zen.api.error.trainingNotAllowed": + "โมเดลนี้เก็บรวบรวมข้อมูลที่ใช้เพื่อปรับปรุงคุณภาพของโมเดล และต้องได้รับความยินยอมอย่างชัดแจ้งก่อนใช้งาน: {{consoleGoUrl}}", "zen.api.error.trialEnded": "โปรโมชันฟรีสำหรับ {{model}} สิ้นสุดแล้ว คุณสามารถใช้โมเดลต่อได้โดยสมัครสมาชิก OpenCode Go - {{link}}", diff --git a/packages/console/app/src/i18n/tr.ts b/packages/console/app/src/i18n/tr.ts index abe65c93af1..2b2a0182fe5 100644 --- a/packages/console/app/src/i18n/tr.ts +++ b/packages/console/app/src/i18n/tr.ts @@ -348,6 +348,7 @@ export const dict = { "go.faq.a5.used": "Kullanılır", "go.faq.a5.notUsed": "Kullanılmaz", "go.faq.a5.noAgreement": "Anlaşma yok", + "go.faq.a5.notZdr": "ZDR değil", "go.faq.a5.grokRetention": "ZDR, durum bilgisi tutan Responses API, Files and Collections ve Batch API dahil olmak üzere saklanan verilere bağlı önemli API özelliklerini devre dışı bırakır.", "go.faq.a5.gptRetention": @@ -355,6 +356,8 @@ export const dict = { "go.faq.a5.learnMore": "Daha fazla bilgi", "go.faq.a5.deepseekRetention": "ZDR anlaşması aylık olarak yenilenir. Mevcut anlaşma 31 Ağustos 2026 tarihine kadar geçerlidir.", + "go.faq.a5.museRetention": + "İstemlerinizi ve tamamlamalarınızı gelecekteki Meta modellerini eğitmek için kullanma izni karşılığında büyük ölçüde indirimli token fiyatları.", "go.faq.a5.beforeExceptions": "Go modelleri ABD'de barındırılmaktadır. Sağlayıcılar sıfır saklama politikası izler ve verilerinizi model eğitimi için kullanmaz; şu", @@ -395,6 +398,9 @@ export const dict = { "zen.api.error.modelDisabled": "Model devre dışı", "zen.api.error.regionNotAllowed": "Bu modelin en son sürümü yalnızca Çin'de barındırılıyor ve kullanabilmek için açıkça onay vermeniz gerekiyor: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Bu model ülkenizde kullanılamıyor.", + "zen.api.error.trainingNotAllowed": + "Bu model, kalitesini artırmak için kullanılan verileri toplar. Modeli kullanabilmek için açıkça onay vermeniz gerekir: {{consoleGoUrl}}", "zen.api.error.trialEnded": "{{model}} için ücretsiz promosyon sona erdi. OpenCode Go'ya abone olarak modeli kullanmaya devam edebilirsiniz - {{link}}", diff --git a/packages/console/app/src/i18n/uk.ts b/packages/console/app/src/i18n/uk.ts index 688a68cdba3..c625a016541 100644 --- a/packages/console/app/src/i18n/uk.ts +++ b/packages/console/app/src/i18n/uk.ts @@ -346,12 +346,15 @@ export const dict = { "go.faq.a5.used": "Використовується", "go.faq.a5.notUsed": "Не використовується", "go.faq.a5.noAgreement": "Немає угоди", + "go.faq.a5.notZdr": "Не ZDR", "go.faq.a5.grokRetention": "ZDR вимикає важливі функції API, які залежать від збережених даних, зокрема Responses API зі збереженням стану, Files and Collections та Batch API.", "go.faq.a5.gptRetention": "Журнали моніторингу зловживань створюються для всіх випадків використання функцій API та зберігаються до 30 днів.", "go.faq.a5.learnMore": "Докладніше", "go.faq.a5.deepseekRetention": "Угода ZDR поновлюється щомісяця. Поточна угода дійсна до 31 серпня 2026 року.", + "go.faq.a5.museRetention": + "Значно знижені ціни на токени в обмін на дозвіл використовувати ваші промпти та відповіді для навчання майбутніх моделей Meta.", "go.faq.a5.beforeExceptions": "Моделі Go розміщені в США. Провайдери дотримуються політики нульового зберігання та не використовують ваші дані для навчання моделей, за", @@ -391,6 +394,9 @@ export const dict = { "zen.api.error.modelDisabled": "Модель вимкнено", "zen.api.error.regionNotAllowed": "Остання версія цієї моделі доступна лише на серверах у Китаї, і для її використання потрібно надати явну згоду: {{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "Ця модель недоступна у вашій країні.", + "zen.api.error.trainingNotAllowed": + "Ця модель збирає дані, які використовуються для покращення її якості; для її використання потрібна ваша явна згода: {{consoleGoUrl}}", "zen.api.error.trialEnded": "Безкоштовна акція для {{model}} закінчилася. Ви можете продовжити використання, підписавшись на OpenCode Go — {{link}}", diff --git a/packages/console/app/src/i18n/zh.ts b/packages/console/app/src/i18n/zh.ts index 6aa7cf2a031..a4ab294aecc 100644 --- a/packages/console/app/src/i18n/zh.ts +++ b/packages/console/app/src/i18n/zh.ts @@ -328,9 +328,11 @@ export const dict = { "go.faq.a5.used": "使用", "go.faq.a5.notUsed": "不使用", "go.faq.a5.noAgreement": "无协议", + "go.faq.a5.notZdr": "非 ZDR", "go.faq.a5.grokRetention": "ZDR 会禁用依赖所存储数据的重要 API 功能,包括有状态的 Responses API、Files and Collections 和 Batch API。", "go.faq.a5.gptRetention": "所有 API 功能的使用都会生成滥用监控日志,并最多保留 30 天。", + "go.faq.a5.museRetention": "以允许使用你的提示词和补全结果训练未来的 Meta 模型为交换,token 价格可获得大幅折扣。", "go.faq.a5.learnMore": "了解更多", "go.faq.a5.deepseekRetention": "ZDR 协议每月续签。当前协议有效期至 2026 年 8 月 31 日。", "go.faq.a5.beforeExceptions": "Go 模型托管在美国。提供商遵循零留存政策,不使用您的数据进行模型训练,", @@ -368,6 +370,8 @@ export const dict = { "zen.api.error.userMonthlyLimitReached": "您已达到每月支出限额 ${{amount}}。请在此处管理您的限额:{{membersUrl}}", "zen.api.error.modelDisabled": "模型已禁用", "zen.api.error.regionNotAllowed": "该模型的最新版本仅在中国提供托管服务,需明确选择启用:{{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "该模型在你所在的国家或地区不可用。", + "zen.api.error.trainingNotAllowed": "该模型会收集用于提升其质量的数据,使用前需要你明确同意:{{consoleGoUrl}}", "zen.api.error.trialEnded": "{{model}} 的限免活动已结束。您可以订阅 OpenCode Go 继续使用该模型 - {{link}}", "black.meta.title": "OpenCode Black | 访问全球顶尖编程模型", diff --git a/packages/console/app/src/i18n/zht.ts b/packages/console/app/src/i18n/zht.ts index 2786df150e0..b8fa4df5b53 100644 --- a/packages/console/app/src/i18n/zht.ts +++ b/packages/console/app/src/i18n/zht.ts @@ -328,9 +328,11 @@ export const dict = { "go.faq.a5.used": "使用", "go.faq.a5.notUsed": "不使用", "go.faq.a5.noAgreement": "無協議", + "go.faq.a5.notZdr": "非 ZDR", "go.faq.a5.grokRetention": "ZDR 會停用依賴儲存資料的重要 API 功能,包括具狀態的 Responses API、Files and Collections 與 Batch API。", "go.faq.a5.gptRetention": "所有 API 功能的使用都會產生濫用監控日誌,並保留最多 30 天。", + "go.faq.a5.museRetention": "以允許使用您的提示詞和生成結果來訓練未來的 Meta 模型為交換,token 價格可享大幅折扣。", "go.faq.a5.learnMore": "了解更多", "go.faq.a5.deepseekRetention": "ZDR 協議每月續簽。目前的協議有效至 2026 年 8 月 31 日。", "go.faq.a5.beforeExceptions": "Go 模型託管在美國。供應商遵循零留存政策,不會將你的資料用於模型訓練,但有", @@ -368,6 +370,8 @@ export const dict = { "zen.api.error.userMonthlyLimitReached": "你已達到每月支出限額 ${{amount}}。請在此處管理你的限額:{{membersUrl}}", "zen.api.error.modelDisabled": "模型已停用", "zen.api.error.regionNotAllowed": "此模型的最新版本僅於中國託管,且需明確選擇啟用:{{consoleGoUrl}}", + "zen.api.error.countryNotAllowed": "此模型無法在你所在的國家或地區使用。", + "zen.api.error.trainingNotAllowed": "此模型會收集用於提升其品質的資料,使用前須經你明確同意:{{consoleGoUrl}}", "zen.api.error.trialEnded": "{{model}} 的限免活动已結束。您可以訂閱 OpenCode Go 繼續使用該模型 - {{link}}", "black.meta.title": "OpenCode Black | 存取全球最佳編碼模型", diff --git a/packages/console/app/src/lib/request-country.ts b/packages/console/app/src/lib/request-country.ts index a4e39eb6071..0eb16722ac7 100644 --- a/packages/console/app/src/lib/request-country.ts +++ b/packages/console/app/src/lib/request-country.ts @@ -1,5 +1,74 @@ +const MUSE_SPARK_BLOCKED_COUNTRIES = new Set([ + "AD", + "AF", + "AT", + "AU", + "BE", + "BG", + "BR", + "BY", + "CA", + "CH", + "CN", + "CU", + "CY", + "CZ", + "DE", + "DK", + "EE", + "EH", + "ER", + "ES", + "ET", + "FI", + "FR", + "GB", + "GR", + "HK", + "HR", + "HT", + "HU", + "IE", + "IQ", + "IR", + "IS", + "IT", + "KH", + "KP", + "KR", + "LI", + "LT", + "LU", + "LV", + "LY", + "MC", + "MM", + "MO", + "MT", + "NI", + "NL", + "NO", + "PK", + "PL", + "PT", + "RO", + "RU", + "SE", + "SI", + "SK", + "SM", + "SO", + "SY", + "VA", + "VE", +]) + export function countryFromRequest(request: Request | undefined) { if (!request) return undefined const cloudflareRequest = request as Request & { cf?: { country?: string } } return cloudflareRequest.cf?.country ?? request.headers.get("cf-ipcountry") ?? undefined } + +export function isModelCountryRestricted(model: string, country: string | undefined) { + return model === "muse-spark-1.2" && country !== undefined && MUSE_SPARK_BLOCKED_COUNTRIES.has(country.toUpperCase()) +} diff --git a/packages/console/app/src/routes/go/index.tsx b/packages/console/app/src/routes/go/index.tsx index cb783e5902a..8f7c7197a5e 100644 --- a/packages/console/app/src/routes/go/index.tsx +++ b/packages/console/app/src/routes/go/index.tsx @@ -39,6 +39,7 @@ const models = [ { name: "Qwen3.6 Plus", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, { name: "MiniMax M3", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, { name: "MiniMax M2.7", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, + { name: "Muse Spark 1.2", training: "go.faq.a5.used", retention: "go.faq.a5.notZdr" }, { name: "DeepSeek V4 Pro", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, { name: "DeepSeek V4 Flash", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, { name: "Hy3", training: "go.faq.a5.notUsed", retention: "go.faq.a5.retention0" }, @@ -77,7 +78,8 @@ function LimitsGraph(props: { href: string }) { { id: "qwen3.7-plus", name: "Qwen3.7 Plus", req: 4300, d: "300ms" }, { id: "hy3", name: "Hy3", req: 4300, d: "320ms" }, { id: "deepseek-v4-flash", name: "DeepSeek V4 Flash", req: 7600, d: "330ms" }, - { id: "mimo-v2.5", name: "MiMo-V2.5", req: 30100, edge: true, d: "340ms" }, + { id: "mimo-v2.5", name: "MiMo-V2.5", req: 30100, d: "340ms" }, + { id: "muse-spark-1.2", name: "Muse Spark 1.2", req: 45300, edge: true, d: "360ms" }, ] const w = 1040 @@ -505,6 +507,13 @@ export default function Home() { .
++ Muse Spark 1.2: {i18n.t("go.faq.a5.museRetention")}{" "} + + {i18n.t("go.faq.a5.learnMore")} + + . +
DeepSeek V4 Flash: {i18n.t("go.faq.a5.deepseekRetention")}
diff --git a/packages/console/app/src/routes/workspace/[id]/go/lite-section.module.css b/packages/console/app/src/routes/workspace/[id]/go/lite-section.module.css index 14389c42a62..f19e0e46cf1 100644 --- a/packages/console/app/src/routes/workspace/[id]/go/lite-section.module.css +++ b/packages/console/app/src/routes/workspace/[id]/go/lite-section.module.css @@ -106,6 +106,7 @@ [data-slot="setting-row"] { margin-top: 0; + padding-block: var(--space-2); } } diff --git a/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx b/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx index 4de88cba3c3..6c410577602 100644 --- a/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx +++ b/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx @@ -39,6 +39,7 @@ export const queryLiteSubscription = query(async (workspaceID: string) => { timeCreated: LiteTable.timeCreated, lite: BillingTable.lite, region: WorkspaceTable.region, + allowTraining: WorkspaceTable.allow_training, }) .from(BillingTable) .innerJoin(LiteTable, eq(LiteTable.workspaceID, BillingTable.workspaceID)) @@ -54,6 +55,7 @@ export const queryLiteSubscription = query(async (workspaceID: string) => { return { mine, useBalance: row.lite?.useBalance ?? false, + allowTraining: row.allowTraining ?? false, region: row.region ?? (await Workspace.setDefaultRegion({ country: countryFromRequest(getRequestEvent()?.request) })), rollingUsage: Subscription.analyzeRollingUsage({ @@ -154,6 +156,24 @@ const setGoProviderRouting = action(async (form: FormData) => { ) }, "go.providerRouting.set") +const setGoAllowTraining = action(async (form: FormData) => { + "use server" + const workspaceID = form.get("workspaceID") as string | null + if (!workspaceID) return { error: formError.workspaceRequired } + const allowTraining = (form.get("allowTraining") as string | null) === "true" + + return json( + await withActor( + () => + Workspace.update({ allow_training: allowTraining }) + .then(() => ({ error: undefined })) + .catch((e) => ({ error: e.message as string })), + workspaceID, + ), + { revalidate: queryLiteSubscription.key }, + ) +}, "go.allowTraining.set") + function LiteUsageItem(props: { label: string; usage: { usagePercent: number; resetInSec: number } }) { const i18n = useI18n() @@ -186,6 +206,7 @@ export function LiteSection(props: { lite: LiteSubscription | undefined }) { const checkoutSubmission = useSubmission(createLiteCheckoutUrl) const useBalanceSubmission = useSubmission(setLiteUseBalance) const providerRoutingSubmission = useSubmission(setGoProviderRouting) + const allowTrainingSubmission = useSubmission(setGoAllowTraining) const [store, setStore] = createStore({ loading: undefined as undefined | "session" | "checkout" | "alipay" | "upi", showModal: false, @@ -264,6 +285,20 @@ export function LiteSection(props: { lite: LiteSubscription | undefined }) {{i18n.t("workspace.lite.providers.description")}
+