mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Remove remaining Cloud CTA surfaces
This commit is contained in:
parent
618baddd90
commit
42ad48448c
70 changed files with 137 additions and 436 deletions
|
|
@ -68,7 +68,7 @@ further defined and clarified by project maintainers.
|
|||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at support@roocode.com. All complaints
|
||||
reported by contacting the project team at https://github.com/RooCodeInc/Roo-Code/security/advisories/new. All complaints
|
||||
will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ We take reasonable measures to secure your data, but no system is 100% secure. I
|
|||
|
||||
### **Contact Us**
|
||||
|
||||
For any privacy-related questions, reach out to us at support@roocode.com.
|
||||
For privacy-related security concerns, use GitHub Security Advisories at https://github.com/RooCodeInc/Roo-Code/security/advisories/new. For other privacy-related questions, open a GitHub Discussion at https://github.com/RooCodeInc/Roo-Code/discussions.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ The parties to this Agreement are independent, and no agency, partnership franch
|
|||
|
||||
### 14.2 Notices
|
||||
|
||||
Except as otherwise set forth in this Agreement, all notices to a party shall be in writing and sent to, for Roo Code: [support@roocode.com](mailto:support@roocode.com), and for User the applicable address or email address associated with User's account (which addresses may be updated by such party from time to time by written notice). Notice shall be deemed to have been duly given when received, if personally delivered; when receipt is electronically confirmed, if transmitted by email; the day after it is sent, if sent for next day delivery by recognized overnight delivery service; and upon receipt, if sent by certified or registered mail, return receipt requested. Any notices to User may be sent by email to the email address associated with User's account or may be posted in the Software, and any such notices shall be effective when delivered in accordance with the foregoing. User hereby consents to receiving notices and communications from Roo Code electronically.
|
||||
Except as otherwise set forth in this Agreement, all notices to a party shall be in writing and sent to, for Roo Code: the GitHub Issues page at [https://github.com/RooCodeInc/Roo-Code/issues](https://github.com/RooCodeInc/Roo-Code/issues), and for User the applicable address or email address associated with User's account (which addresses may be updated by such party from time to time by written notice). Notice shall be deemed to have been duly given when received, if personally delivered; when receipt is electronically confirmed, if transmitted by email; the day after it is sent, if sent for next day delivery by recognized overnight delivery service; and upon receipt, if sent by certified or registered mail, return receipt requested. Any notices to User may be sent by email to the email address associated with User's account or may be posted in the Software, and any such notices shall be effective when delivered in accordance with the foregoing. User hereby consents to receiving notices and communications from Roo Code electronically.
|
||||
|
||||
### 14.3 Assignment
|
||||
|
||||
|
|
|
|||
|
|
@ -137,9 +137,11 @@ export function Footer() {
|
|||
<ul className="mt-6 space-y-4">
|
||||
<li>
|
||||
<a
|
||||
href="mailto:support@roocode.com"
|
||||
href={EXTERNAL_LINKS.ISSUES}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-sm leading-6 text-muted-foreground transition-colors hover:text-foreground">
|
||||
Contact
|
||||
Report an Issue
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export const EXTERNAL_LINKS = {
|
|||
CLOUD_APP_SIGNUP_HOME: "https://app.roocode.com/sign-up?redirect_url=/cloud-agents/setup",
|
||||
CLOUD_APP_SIGNUP_PRO: "https://app.roocode.com/sign-up?redirect_url=/cloud-agents/setup",
|
||||
CLOUD_APP_TEAM_TRIAL: "https://app.roocode.com/checkout/team",
|
||||
SUPPORT: "mailto:support@roocode.com",
|
||||
SUPPORT: "https://github.com/RooCodeInc/Roo-Code/issues/new/choose",
|
||||
}
|
||||
|
||||
export const INTERNAL_LINKS = {
|
||||
|
|
|
|||
2
locales/ca/CODE_OF_CONDUCT.md
generated
2
locales/ca/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ definida i clarificada addicionalment pels mantenidors del projecte.
|
|||
## Aplicació
|
||||
|
||||
Els casos de comportament abusiu, assetjador o altrament inacceptable poden ser
|
||||
reportats contactant amb l'equip del projecte a support@roocode.com. Totes les queixes
|
||||
reportats contactant amb l'equip del projecte a https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Totes les queixes
|
||||
seran revisades i investigades i resultaran en una resposta que
|
||||
es consideri necessària i adequada a les circumstàncies. L'equip del projecte està
|
||||
obligat a mantenir la confidencialitat respecte al reportador d'un incident.
|
||||
|
|
|
|||
2
locales/de/CODE_OF_CONDUCT.md
generated
2
locales/de/CODE_OF_CONDUCT.md
generated
|
|
@ -67,7 +67,7 @@ von den Projektbetreuern weiter definiert und geklärt werden.
|
|||
## Durchsetzung
|
||||
|
||||
Fälle von missbräuchlichem, belästigendem oder anderweitig inakzeptablem Verhalten können
|
||||
dem Projektteam unter support@roocode.com gemeldet werden. Alle
|
||||
dem Projektteam unter https://github.com/RooCodeInc/Roo-Code/security/advisories/new gemeldet werden. Alle
|
||||
Beschwerden werden überprüft und untersucht und führen zu einer Reaktion, die
|
||||
als notwendig und angemessen für die Umstände erachtet wird. Das Projektteam ist
|
||||
verpflichtet, die Vertraulichkeit in Bezug auf den Melder eines Vorfalls zu wahren.
|
||||
|
|
|
|||
2
locales/es/CODE_OF_CONDUCT.md
generated
2
locales/es/CODE_OF_CONDUCT.md
generated
|
|
@ -67,7 +67,7 @@ definida y aclarada aún más por los mantenedores del proyecto.
|
|||
## Aplicación
|
||||
|
||||
Los casos de comportamiento abusivo, acosador o de otro modo inaceptable pueden ser
|
||||
reportados contactando al equipo del proyecto en support@roocode.com. Todas las quejas
|
||||
reportados contactando al equipo del proyecto en https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Todas las quejas
|
||||
serán revisadas e investigadas y resultarán en una respuesta que
|
||||
se considera necesaria y apropiada a las circunstancias. El equipo del proyecto está
|
||||
obligado a mantener la confidencialidad con respecto al informante de un incidente.
|
||||
|
|
|
|||
2
locales/fr/CODE_OF_CONDUCT.md
generated
2
locales/fr/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ La représentation d'un projet peut être définie et clarifiée davantage par l
|
|||
## Application
|
||||
|
||||
Les cas de comportement abusif, harcelant ou autrement inacceptable peuvent être
|
||||
signalés en contactant l'équipe du projet à support@roocode.com. Toutes les plaintes
|
||||
signalés en contactant l'équipe du projet à https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Toutes les plaintes
|
||||
seront examinées et étudiées et donneront lieu à une réponse qui
|
||||
est jugée nécessaire et appropriée aux circonstances. L'équipe du projet est
|
||||
obligée de maintenir la confidentialité concernant la personne qui signale un incident.
|
||||
|
|
|
|||
2
locales/hi/CODE_OF_CONDUCT.md
generated
2
locales/hi/CODE_OF_CONDUCT.md
generated
|
|
@ -66,7 +66,7 @@
|
|||
## प्रवर्तन
|
||||
|
||||
दुर्व्यवहार, उत्पीड़न, या अन्यथा अस्वीकार्य व्यवहार के उदाहरणों की
|
||||
रिपोर्ट support@roocode.com पर प्रोजेक्ट टीम से संपर्क करके की जा सकती है। सभी शिकायतें
|
||||
रिपोर्ट https://github.com/RooCodeInc/Roo-Code/security/advisories/new पर प्रोजेक्ट टीम से संपर्क करके की जा सकती है। सभी शिकायतें
|
||||
समीक्षा की जाएंगी और जांच की जाएगी और इसके परिणामस्वरूप एक प्रतिक्रिया होगी जो
|
||||
परिस्थितियों के अनुसार आवश्यक और उचित मानी जाती है। प्रोजेक्ट टीम
|
||||
एक घटना के रिपोर्टर के संबंध में गोपनीयता बनाए रखने के लिए बाध्य है।
|
||||
|
|
|
|||
2
locales/id/CODE_OF_CONDUCT.md
generated
2
locales/id/CODE_OF_CONDUCT.md
generated
|
|
@ -47,7 +47,7 @@ Kode Etik ini berlaku baik di dalam ruang proyek maupun di ruang publik ketika s
|
|||
|
||||
## Penegakan
|
||||
|
||||
Contoh perilaku kasar, melecehkan, atau perilaku lain yang tidak dapat diterima dapat dilaporkan dengan menghubungi tim proyek di support@roocode.com. Semua keluhan akan ditinjau dan diselidiki dan akan menghasilkan respons yang dianggap perlu dan sesuai dengan keadaan. Tim proyek wajib menjaga kerahasiaan sehubungan dengan pelapor insiden. Detail lebih lanjut tentang kebijakan penegakan spesifik dapat diposting secara terpisah.
|
||||
Contoh perilaku kasar, melecehkan, atau perilaku lain yang tidak dapat diterima dapat dilaporkan dengan menghubungi tim proyek di https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Semua keluhan akan ditinjau dan diselidiki dan akan menghasilkan respons yang dianggap perlu dan sesuai dengan keadaan. Tim proyek wajib menjaga kerahasiaan sehubungan dengan pelapor insiden. Detail lebih lanjut tentang kebijakan penegakan spesifik dapat diposting secara terpisah.
|
||||
|
||||
Maintainer proyek yang tidak mengikuti atau menegakkan Kode Etik dengan itikad baik dapat menghadapi dampak sementara atau permanen sebagaimana ditentukan oleh anggota lain dari kepemimpinan proyek.
|
||||
|
||||
|
|
|
|||
2
locales/it/CODE_OF_CONDUCT.md
generated
2
locales/it/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ ulteriormente definita e chiarita dai manutentori del progetto.
|
|||
## Applicazione
|
||||
|
||||
Casi di comportamento abusivo, molesto o altrimenti inaccettabile possono essere
|
||||
segnalati contattando il team del progetto all'indirizzo support@roocode.com. Tutti i reclami
|
||||
segnalati contattando il team del progetto all'indirizzo https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Tutti i reclami
|
||||
saranno esaminati e indagati e risulteranno in una risposta che
|
||||
è ritenuta necessaria e appropriata alle circostanze. Il team del progetto è
|
||||
obbligato a mantenere la riservatezza nei confronti di chi segnala un incidente.
|
||||
|
|
|
|||
2
locales/ja/CODE_OF_CONDUCT.md
generated
2
locales/ja/CODE_OF_CONDUCT.md
generated
|
|
@ -69,7 +69,7 @@
|
|||
## 施行
|
||||
|
||||
虐待的、嫌がらせ、またはその他容認できない行動の事例は、
|
||||
support@roocode.com でプロジェクトチームに連絡することで報告することができます。
|
||||
https://github.com/RooCodeInc/Roo-Code/security/advisories/new でプロジェクトチームに連絡することで報告することができます。
|
||||
すべての苦情は審査・調査され、状況に応じて必要かつ適切と
|
||||
判断される対応がとられます。プロジェクトチームは
|
||||
インシデント報告者に関する守秘義務を守る義務があります。
|
||||
|
|
|
|||
2
locales/ko/CODE_OF_CONDUCT.md
generated
2
locales/ko/CODE_OF_CONDUCT.md
generated
|
|
@ -62,7 +62,7 @@
|
|||
## 시행
|
||||
|
||||
학대, 괴롭힘 또는 기타 용납할 수 없는 행동의 사례는
|
||||
support@roocode.com으로 프로젝트 팀에 연락하여 보고할 수 있습니다. 모든 불만 사항은
|
||||
https://github.com/RooCodeInc/Roo-Code/security/advisories/new으로 프로젝트 팀에 연락하여 보고할 수 있습니다. 모든 불만 사항은
|
||||
검토되고 조사되며 상황에 필요하고 적절하다고 판단되는 대응으로 이어질 것입니다. 프로젝트 팀은
|
||||
사건의 보고자와 관련하여 기밀을 유지할 의무가 있습니다.
|
||||
특정 시행 정책의 추가 세부 사항은 별도로 게시될 수 있습니다.
|
||||
|
|
|
|||
2
locales/nl/CODE_OF_CONDUCT.md
generated
2
locales/nl/CODE_OF_CONDUCT.md
generated
|
|
@ -47,7 +47,7 @@ Deze Gedragscode is van toepassing binnen projectruimtes en in openbare ruimtes
|
|||
|
||||
## Handhaving
|
||||
|
||||
Voorvallen van beledigend, intimiderend of anderszins onacceptabel gedrag kunnen worden gemeld door contact op te nemen met het projectteam via support@roocode.com. Alle klachten zullen worden beoordeeld en onderzocht en zullen resulteren in een reactie die passend wordt geacht voor de omstandigheden. Het projectteam is verplicht vertrouwelijkheid te bewaren met betrekking tot de melder van het incident. Verdere details over specifiek handhavingsbeleid kunnen afzonderlijk worden gepubliceerd.
|
||||
Voorvallen van beledigend, intimiderend of anderszins onacceptabel gedrag kunnen worden gemeld door contact op te nemen met het projectteam via https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Alle klachten zullen worden beoordeeld en onderzocht en zullen resulteren in een reactie die passend wordt geacht voor de omstandigheden. Het projectteam is verplicht vertrouwelijkheid te bewaren met betrekking tot de melder van het incident. Verdere details over specifiek handhavingsbeleid kunnen afzonderlijk worden gepubliceerd.
|
||||
|
||||
Projectbeheerders die de Gedragscode niet te goeder trouw volgen of handhaven, kunnen tijdelijke of permanente gevolgen ondervinden zoals bepaald door andere leden van het leiderschap van het project.
|
||||
|
||||
|
|
|
|||
2
locales/pl/CODE_OF_CONDUCT.md
generated
2
locales/pl/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ dalej definiowana i wyjaśniana przez opiekunów projektu.
|
|||
## Egzekwowanie
|
||||
|
||||
Przypadki obraźliwego, nękającego lub w inny sposób niedopuszczalnego zachowania mogą być
|
||||
zgłaszane poprzez kontakt z zespołem projektu pod adresem support@roocode.com. Wszystkie skargi
|
||||
zgłaszane poprzez kontakt z zespołem projektu pod adresem https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Wszystkie skargi
|
||||
zostaną przejrzane i zbadane, co zaowocuje odpowiedzią, która
|
||||
zostanie uznana za niezbędną i odpowiednią do okoliczności. Zespół projektu jest
|
||||
zobowiązany do zachowania poufności w odniesieniu do zgłaszającego incydent.
|
||||
|
|
|
|||
2
locales/pt-BR/CODE_OF_CONDUCT.md
generated
2
locales/pt-BR/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ definida e esclarecida posteriormente pelos mantenedores do projeto.
|
|||
## Aplicação
|
||||
|
||||
Instâncias de comportamento abusivo, de assédio ou de outra forma inaceitável podem ser
|
||||
relatadas entrando em contato com a equipe do projeto em support@roocode.com. Todas as reclamações
|
||||
relatadas entrando em contato com a equipe do projeto em https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Todas as reclamações
|
||||
serão revisadas e investigadas e resultarão em uma resposta que
|
||||
é considerada necessária e apropriada às circunstâncias. A equipe do projeto é
|
||||
obrigada a manter confidencialidade em relação ao relator de um incidente.
|
||||
|
|
|
|||
2
locales/ru/CODE_OF_CONDUCT.md
generated
2
locales/ru/CODE_OF_CONDUCT.md
generated
|
|
@ -62,7 +62,7 @@
|
|||
## Правоприменение
|
||||
|
||||
О случаях оскорбительного, притесняющего или иного неприемлемого поведения можно
|
||||
сообщить, связавшись с командой проекта по адресу support@roocode.com. Все жалобы
|
||||
сообщить, связавшись с командой проекта по адресу https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Все жалобы
|
||||
будут рассмотрены и расследованы, что приведет к ответу, который
|
||||
будет считаться необходимым и соответствующим обстоятельствам. Команда проекта
|
||||
обязана сохранять конфиденциальность в отношении лица, сообщившего об инциденте.
|
||||
|
|
|
|||
2
locales/tr/CODE_OF_CONDUCT.md
generated
2
locales/tr/CODE_OF_CONDUCT.md
generated
|
|
@ -64,7 +64,7 @@ tanımlanabilir ve netleştirilebilir.
|
|||
## Uygulama
|
||||
|
||||
Taciz edici veya başka türlü kabul edilemez davranış örnekleri,
|
||||
support@roocode.com adresinden proje ekibiyle iletişime geçilerek bildirilebilir. Tüm şikayetler
|
||||
https://github.com/RooCodeInc/Roo-Code/security/advisories/new adresinden proje ekibiyle iletişime geçilerek bildirilebilir. Tüm şikayetler
|
||||
incelenecek ve araştırılacak ve koşullara
|
||||
göre gerekli ve uygun görülen bir yanıtla sonuçlanacaktır. Proje ekibi,
|
||||
bir olayı bildiren kişiye ilişkin gizliliği korumakla yükümlüdür.
|
||||
|
|
|
|||
2
locales/vi/CODE_OF_CONDUCT.md
generated
2
locales/vi/CODE_OF_CONDUCT.md
generated
|
|
@ -68,7 +68,7 @@ tại một sự kiện trực tuyến hoặc ngoại tuyến. Đại diện c
|
|||
## Thực Thi
|
||||
|
||||
Các trường hợp hành vi lạm dụng, quấy rối, hoặc không thể chấp nhận khác có thể được
|
||||
báo cáo bằng cách liên hệ với nhóm dự án tại support@roocode.com. Tất cả khiếu nại
|
||||
báo cáo bằng cách liên hệ với nhóm dự án tại https://github.com/RooCodeInc/Roo-Code/security/advisories/new. Tất cả khiếu nại
|
||||
sẽ được xem xét và điều tra và sẽ dẫn đến phản hồi được
|
||||
cho là cần thiết và phù hợp với hoàn cảnh. Nhóm dự án có
|
||||
nghĩa vụ duy trì tính bảo mật đối với người báo cáo về một sự cố.
|
||||
|
|
|
|||
2
locales/zh-CN/CODE_OF_CONDUCT.md
generated
2
locales/zh-CN/CODE_OF_CONDUCT.md
generated
|
|
@ -63,7 +63,7 @@
|
|||
|
||||
## 执行
|
||||
|
||||
可能通过联系项目团队(support@roocode.com)
|
||||
可能通过联系项目团队(https://github.com/RooCodeInc/Roo-Code/security/advisories/new)
|
||||
来报告辱骂、骚扰或其他不可接受的行为的情况。所有
|
||||
投诉将被审查和调查,并将导致被认为
|
||||
必要且适合情况的回应。项目团队有
|
||||
|
|
|
|||
2
locales/zh-TW/CODE_OF_CONDUCT.md
generated
2
locales/zh-TW/CODE_OF_CONDUCT.md
generated
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
## 執行
|
||||
|
||||
如發生辱罵、騷擾或其他不可接受的行為,請透過 support@roocode.com 聯絡專案團隊回報。所有申訴都將被審查和調查,並做出必要且合適的回應。專案團隊有義務為事件回報者保密。具體執行政策的更多細節可能另行公佈。
|
||||
如發生辱罵、騷擾或其他不可接受的行為,請透過 https://github.com/RooCodeInc/Roo-Code/security/advisories/new 聯絡專案團隊回報。所有申訴都將被審查和調查,並做出必要且合適的回應。專案團隊有義務為事件回報者保密。具體執行政策的更多細節可能另行公佈。
|
||||
|
||||
未遵守或未切實執行本行為準則的專案維護者,可能會面臨由專案領導團隊其他成員所決定的暫時或永久處分。
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export const isDockerContainer = () => {
|
|||
|
||||
export const resetEvalsRepo = async ({ run, cwd }: { run: Run; cwd: string }) => {
|
||||
await execa({ cwd })`git config user.name "Roo Code"`
|
||||
await execa({ cwd })`git config user.email "support@roocode.com"`
|
||||
await execa({ cwd })`git config user.email "noreply@example.com"`
|
||||
await execa({ cwd })`git checkout -f`
|
||||
await execa({ cwd })`git clean -fd`
|
||||
await execa({ cwd })`git checkout -b runs/${run.id}-${crypto.randomUUID().slice(0, 8)} main`
|
||||
|
|
|
|||
|
|
@ -1968,6 +1968,11 @@ export class ClineProvider
|
|||
|
||||
async postStateToWebview() {
|
||||
const state = await this.getStateToPostToWebview()
|
||||
await vscode.commands.executeCommand(
|
||||
"setContext",
|
||||
"roo-cline.cloudIsAuthenticated",
|
||||
state.cloudIsAuthenticated === true,
|
||||
)
|
||||
this.clineMessagesSeq++
|
||||
state.clineMessagesSeq = this.clineMessagesSeq
|
||||
this.postMessageToWebview({ type: "state", state })
|
||||
|
|
@ -1989,6 +1994,11 @@ export class ClineProvider
|
|||
*/
|
||||
async postStateToWebviewWithoutTaskHistory(): Promise<void> {
|
||||
const state = await this.getStateToPostToWebview()
|
||||
await vscode.commands.executeCommand(
|
||||
"setContext",
|
||||
"roo-cline.cloudIsAuthenticated",
|
||||
state.cloudIsAuthenticated === true,
|
||||
)
|
||||
this.clineMessagesSeq++
|
||||
state.clineMessagesSeq = this.clineMessagesSeq
|
||||
const { taskHistory: _omit, ...rest } = state
|
||||
|
|
@ -2013,6 +2023,11 @@ export class ClineProvider
|
|||
*/
|
||||
async postStateToWebviewWithoutClineMessages(): Promise<void> {
|
||||
const state = await this.getStateToPostToWebview()
|
||||
await vscode.commands.executeCommand(
|
||||
"setContext",
|
||||
"roo-cline.cloudIsAuthenticated",
|
||||
state.cloudIsAuthenticated === true,
|
||||
)
|
||||
const { clineMessages: _omitMessages, taskHistory: _omitHistory, ...rest } = state
|
||||
this.postMessageToWebview({ type: "state", state: rest })
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ describe("generateErrorDiagnostics", () => {
|
|||
// taskId.slice(0, 8) = "test-tas" from "test-task-id"
|
||||
expect(String(writtenPath)).toContain("roo-diagnostics-test-tas")
|
||||
expect(String(writtenContent)).toContain(
|
||||
"// Please share this file with Roo Code Support (support@roocode.com) to diagnose the issue faster",
|
||||
"// If you open a GitHub issue, you can attach this file to help diagnose the issue faster.",
|
||||
)
|
||||
expect(String(writtenContent)).toContain('"error":')
|
||||
expect(String(writtenContent)).toContain('"history":')
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ export async function generateErrorDiagnostics(params: GenerateDiagnosticsParams
|
|||
|
||||
// Prepend human-readable guidance comments before the JSON payload
|
||||
const headerComment =
|
||||
"// Please share this file with Roo Code Support (support@roocode.com) to diagnose the issue faster\n" +
|
||||
"// Just make sure you're OK sharing the contents of the conversation below.\n\n"
|
||||
"// If you open a GitHub issue, you can attach this file to help diagnose the issue faster.\n" +
|
||||
"// Only share it if you're OK sharing the contents of the conversation below.\n\n"
|
||||
const jsonContent = JSON.stringify(diagnostics, null, 2)
|
||||
const fullContent = headerComment + jsonContent
|
||||
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@
|
|||
{
|
||||
"command": "roo-cline.cloudButtonClicked",
|
||||
"group": "navigation@3",
|
||||
"when": "view == roo-cline.SidebarProvider"
|
||||
"when": "view == roo-cline.SidebarProvider && roo-cline.cloudIsAuthenticated"
|
||||
},
|
||||
{
|
||||
"command": "roo-cline.marketplaceButtonClicked",
|
||||
|
|
@ -258,7 +258,7 @@
|
|||
{
|
||||
"command": "roo-cline.cloudButtonClicked",
|
||||
"group": "navigation@3",
|
||||
"when": "activeWebviewPanelId == roo-cline.TabPanelProvider"
|
||||
"when": "activeWebviewPanelId == roo-cline.TabPanelProvider && roo-cline.cloudIsAuthenticated"
|
||||
},
|
||||
{
|
||||
"command": "roo-cline.marketplaceButtonClicked",
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ const tmpDir = path.join(os.tmpdir(), "CheckpointService")
|
|||
const initWorkspaceRepo = async ({
|
||||
workspaceDir,
|
||||
userName = "Roo Code",
|
||||
userEmail = "support@roocode.com",
|
||||
userEmail = "noreply@example.com",
|
||||
testFileName = "test.txt",
|
||||
textFileContent = "Hello, world!",
|
||||
}: {
|
||||
|
|
@ -389,7 +389,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
|
|||
const mainGit = simpleGit(workspaceDir)
|
||||
await mainGit.init()
|
||||
await mainGit.addConfig("user.name", "Roo Code")
|
||||
await mainGit.addConfig("user.email", "support@roocode.com")
|
||||
await mainGit.addConfig("user.email", "noreply@example.com")
|
||||
|
||||
// Create a nested repo inside the workspace.
|
||||
const nestedRepoPath = path.join(workspaceDir, "nested-project")
|
||||
|
|
@ -397,7 +397,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
|
|||
const nestedGit = simpleGit(nestedRepoPath)
|
||||
await nestedGit.init()
|
||||
await nestedGit.addConfig("user.name", "Roo Code")
|
||||
await nestedGit.addConfig("user.email", "support@roocode.com")
|
||||
await nestedGit.addConfig("user.email", "noreply@example.com")
|
||||
|
||||
// Add a file to the nested repo.
|
||||
const nestedFile = path.join(nestedRepoPath, "nested-file.txt")
|
||||
|
|
@ -459,7 +459,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
|
|||
const mainGit = simpleGit(workspaceDir)
|
||||
await mainGit.init()
|
||||
await mainGit.addConfig("user.name", "Roo Code")
|
||||
await mainGit.addConfig("user.email", "support@roocode.com")
|
||||
await mainGit.addConfig("user.email", "noreply@example.com")
|
||||
|
||||
// Create a test file in the main workspace.
|
||||
const mainFile = path.join(workspaceDir, "main-file.txt")
|
||||
|
|
@ -975,7 +975,7 @@ describe("worktree path comparison", () => {
|
|||
const mainGit = simpleGit(workspaceDir)
|
||||
await mainGit.init()
|
||||
await mainGit.addConfig("user.name", "Roo Code")
|
||||
await mainGit.addConfig("user.email", "support@roocode.com")
|
||||
await mainGit.addConfig("user.email", "noreply@example.com")
|
||||
|
||||
await fs.writeFile(path.join(workspaceDir, "main.txt"), "main content")
|
||||
await mainGit.add("main.txt")
|
||||
|
|
@ -1010,7 +1010,7 @@ describe("worktree path comparison", () => {
|
|||
const mainGit = simpleGit(workspaceDir)
|
||||
await mainGit.init()
|
||||
await mainGit.addConfig("user.name", "Roo Code")
|
||||
await mainGit.addConfig("user.email", "support@roocode.com")
|
||||
await mainGit.addConfig("user.email", "noreply@example.com")
|
||||
|
||||
await fs.writeFile(path.join(workspaceDir, "main.txt"), "main content")
|
||||
await mainGit.add("main.txt")
|
||||
|
|
|
|||
|
|
@ -93,6 +93,10 @@ const App = () => {
|
|||
|
||||
const switchTab = useCallback(
|
||||
(newTab: Tab) => {
|
||||
if (newTab === "cloud" && !cloudIsAuthenticated && mdmCompliant !== false) {
|
||||
return
|
||||
}
|
||||
|
||||
// Only check MDM compliance if mdmCompliant is explicitly false (meaning there's an MDM policy and user is non-compliant)
|
||||
// If mdmCompliant is undefined or true, allow tab switching
|
||||
if (mdmCompliant === false && newTab !== "cloud") {
|
||||
|
|
@ -110,7 +114,7 @@ const App = () => {
|
|||
setTab(newTab)
|
||||
}
|
||||
},
|
||||
[mdmCompliant],
|
||||
[cloudIsAuthenticated, mdmCompliant],
|
||||
)
|
||||
|
||||
const [currentSection, setCurrentSection] = useState<string | undefined>(undefined)
|
||||
|
|
@ -177,6 +181,12 @@ const App = () => {
|
|||
}
|
||||
}, [shouldShowAnnouncement, tab])
|
||||
|
||||
useEffect(() => {
|
||||
if (tab === "cloud" && !cloudIsAuthenticated && mdmCompliant !== false) {
|
||||
setTab("chat")
|
||||
}
|
||||
}, [cloudIsAuthenticated, mdmCompliant, tab])
|
||||
|
||||
useEffect(() => {
|
||||
if (didHydrateState) {
|
||||
telemetryClient.updateTelemetryState(telemetrySetting, telemetryKey, machineId)
|
||||
|
|
@ -237,7 +247,7 @@ const App = () => {
|
|||
targetTab={currentMarketplaceTab as "mcp" | "mode" | undefined}
|
||||
/>
|
||||
)}
|
||||
{tab === "cloud" && (
|
||||
{tab === "cloud" && (cloudIsAuthenticated || mdmCompliant === false) && (
|
||||
<CloudView
|
||||
userInfo={cloudUserInfo}
|
||||
isAuthenticated={cloudIsAuthenticated}
|
||||
|
|
|
|||
|
|
@ -290,4 +290,36 @@ describe("App", () => {
|
|||
expect(chatView.getAttribute("data-hidden")).toBe("false")
|
||||
expect(screen.queryByTestId("marketplace-view")).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("ignores cloud navigation when unauthenticated", async () => {
|
||||
render(<AppWithProviders />)
|
||||
|
||||
act(() => {
|
||||
triggerMessage("cloudButtonClicked")
|
||||
})
|
||||
|
||||
expect(screen.queryByTestId("cloud-view")).not.toBeInTheDocument()
|
||||
expect(screen.getByTestId("chat-view").getAttribute("data-hidden")).toBe("false")
|
||||
})
|
||||
|
||||
it("switches to cloud view when authenticated", async () => {
|
||||
mockUseExtensionState.mockReturnValue({
|
||||
didHydrateState: true,
|
||||
showWelcome: false,
|
||||
shouldShowAnnouncement: false,
|
||||
experiments: {},
|
||||
language: "en",
|
||||
telemetrySetting: "enabled",
|
||||
cloudIsAuthenticated: true,
|
||||
})
|
||||
|
||||
render(<AppWithProviders />)
|
||||
|
||||
act(() => {
|
||||
triggerMessage("cloudButtonClicked")
|
||||
})
|
||||
|
||||
expect(await screen.findByTestId("cloud-view")).toBeInTheDocument()
|
||||
expect(screen.getByTestId("chat-view").getAttribute("data-hidden")).toBe("true")
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1117,8 +1117,7 @@ export const ChatRowContent = ({
|
|||
} else {
|
||||
// Non-HTTP-status-code error message - store full text as errorDetails
|
||||
body = t("chat:apiRequest.errorMessage.unknown")
|
||||
docsURL =
|
||||
"mailto:support@roocode.com?subject=Unknown API Error&body=[Please include full error details]"
|
||||
docsURL = "https://github.com/RooCodeInc/Roo-Code/issues/new/choose"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
import { memo, useEffect, useRef, useState, useMemo } from "react"
|
||||
import { memo, useRef, useState, useMemo } from "react"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { useCloudUpsell } from "@src/hooks/useCloudUpsell"
|
||||
import { CloudUpsellDialog } from "@src/components/cloud/CloudUpsellDialog"
|
||||
import DismissibleUpsell from "@src/components/common/DismissibleUpsell"
|
||||
import { ChevronUp, ChevronDown, HardDriveDownload, HardDriveUpload, FoldVertical, ArrowLeft } from "lucide-react"
|
||||
import prettyBytes from "pretty-bytes"
|
||||
|
||||
import type { ClineMessage } from "@roo-code/types"
|
||||
|
||||
import { getModelMaxOutputTokens } from "@roo/api"
|
||||
import { findLastIndex } from "@roo/array"
|
||||
|
||||
import { formatLargeNumber } from "@src/utils/format"
|
||||
import { cn } from "@src/lib/utils"
|
||||
|
|
@ -60,37 +56,9 @@ const TaskHeader = ({
|
|||
todos,
|
||||
}: TaskHeaderProps) => {
|
||||
const { t } = useTranslation()
|
||||
const { apiConfiguration, currentTaskItem, clineMessages } = useExtensionState()
|
||||
const { apiConfiguration, currentTaskItem } = useExtensionState()
|
||||
const { id: modelId, info: model } = useSelectedModel(apiConfiguration)
|
||||
const [isTaskExpanded, setIsTaskExpanded] = useState(false)
|
||||
const [showLongRunningTaskMessage, setShowLongRunningTaskMessage] = useState(false)
|
||||
const { isOpen, openUpsell, closeUpsell, handleConnect } = useCloudUpsell({
|
||||
autoOpenOnAuth: false,
|
||||
})
|
||||
|
||||
// Check if the task is complete by looking at the last relevant message (skipping resume messages)
|
||||
const isTaskComplete =
|
||||
clineMessages && clineMessages.length > 0
|
||||
? (() => {
|
||||
const lastRelevantIndex = findLastIndex(
|
||||
clineMessages,
|
||||
(m) => !(m.ask === "resume_task" || m.ask === "resume_completed_task"),
|
||||
)
|
||||
return lastRelevantIndex !== -1
|
||||
? clineMessages[lastRelevantIndex]?.ask === "completion_result"
|
||||
: false
|
||||
})()
|
||||
: false
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => {
|
||||
if (currentTaskItem && !isTaskComplete) {
|
||||
setShowLongRunningTaskMessage(true)
|
||||
}
|
||||
}, 120_000) // Show upsell after 2 minutes
|
||||
|
||||
return () => clearTimeout(timer)
|
||||
}, [currentTaskItem, isTaskComplete])
|
||||
|
||||
const textContainerRef = useRef<HTMLDivElement>(null)
|
||||
const textRef = useRef<HTMLDivElement>(null)
|
||||
|
|
@ -144,15 +112,6 @@ const TaskHeader = ({
|
|||
</Button>
|
||||
</div>
|
||||
)}
|
||||
{showLongRunningTaskMessage && !isTaskComplete && (
|
||||
<DismissibleUpsell
|
||||
upsellId="longRunningTask"
|
||||
onClick={() => openUpsell()}
|
||||
dismissOnClick={false}
|
||||
variant="banner">
|
||||
{t("cloud:upsell.longRunningTask")}
|
||||
</DismissibleUpsell>
|
||||
)}
|
||||
<div
|
||||
className={cn(
|
||||
"px-3 pt-2.5 pb-2 flex flex-col gap-1.5 relative z-1 cursor-pointer",
|
||||
|
|
@ -466,7 +425,6 @@ const TaskHeader = ({
|
|||
{/* Todo list - always shown at bottom when todos exist */}
|
||||
{hasTodos && <TodoListDisplay todos={todos ?? (task as any)?.tool?.todos ?? []} />}
|
||||
</div>
|
||||
<CloudUpsellDialog open={isOpen} onOpenChange={closeUpsell} onConnect={handleConnect} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ vi.mock("@vscode/webview-ui-toolkit/react", () => ({
|
|||
}))
|
||||
|
||||
// Create a variable to hold the mock state
|
||||
let mockExtensionState: {
|
||||
const mockExtensionState: {
|
||||
apiConfiguration: ProviderSettings
|
||||
currentTaskItem: { id: string } | null
|
||||
clineMessages: any[]
|
||||
|
|
@ -55,42 +55,6 @@ vi.mock("@src/context/ExtensionStateContext", () => ({
|
|||
useExtensionState: () => mockExtensionState,
|
||||
}))
|
||||
|
||||
// Mock the useCloudUpsell hook
|
||||
vi.mock("@src/hooks/useCloudUpsell", () => ({
|
||||
useCloudUpsell: () => ({
|
||||
isOpen: false,
|
||||
openUpsell: vi.fn(),
|
||||
closeUpsell: vi.fn(),
|
||||
handleConnect: vi.fn(),
|
||||
}),
|
||||
}))
|
||||
|
||||
// Mock DismissibleUpsell component
|
||||
vi.mock("@src/components/common/DismissibleUpsell", () => ({
|
||||
default: ({ children, ...props }: any) => (
|
||||
<div data-testid="dismissible-upsell" {...props}>
|
||||
{children}
|
||||
</div>
|
||||
),
|
||||
}))
|
||||
|
||||
// Mock CloudUpsellDialog component
|
||||
vi.mock("@src/components/cloud/CloudUpsellDialog", () => ({
|
||||
CloudUpsellDialog: () => null,
|
||||
}))
|
||||
|
||||
// Mock findLastIndex from @roo/array
|
||||
vi.mock("@roo/array", () => ({
|
||||
findLastIndex: (array: any[], predicate: (item: any) => boolean) => {
|
||||
for (let i = array.length - 1; i >= 0; i--) {
|
||||
if (predicate(array[i])) {
|
||||
return i
|
||||
}
|
||||
}
|
||||
return -1
|
||||
},
|
||||
}))
|
||||
|
||||
// Create a variable to hold the mock model info for useSelectedModel
|
||||
let mockModelInfo: { contextWindow: number; maxTokens: number } | undefined = undefined
|
||||
|
||||
|
|
@ -203,184 +167,6 @@ describe("TaskHeader", () => {
|
|||
expect(handleCondenseContext).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
describe("DismissibleUpsell behavior", () => {
|
||||
beforeEach(() => {
|
||||
vi.useFakeTimers()
|
||||
// Reset the mock state before each test
|
||||
mockExtensionState = {
|
||||
apiConfiguration: {
|
||||
apiProvider: "anthropic",
|
||||
apiKey: "test-api-key",
|
||||
apiModelId: "claude-3-opus-20240229",
|
||||
} as ProviderSettings,
|
||||
currentTaskItem: { id: "test-task-id" },
|
||||
clineMessages: [],
|
||||
}
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
vi.useRealTimers()
|
||||
})
|
||||
|
||||
it("should show DismissibleUpsell after 2 minutes when task is not complete", async () => {
|
||||
renderTaskHeader()
|
||||
|
||||
// Initially, the upsell should not be visible
|
||||
expect(screen.queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
|
||||
|
||||
// Fast-forward time by 2 minutes to match component timeout
|
||||
await vi.advanceTimersByTimeAsync(120_000)
|
||||
|
||||
// The upsell should now be visible
|
||||
expect(screen.getByTestId("dismissible-upsell")).toBeInTheDocument()
|
||||
expect(screen.getByText("cloud:upsell.longRunningTask")).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("should not show DismissibleUpsell when task is complete", async () => {
|
||||
// Set up mock state with a completion_result message
|
||||
mockExtensionState = {
|
||||
...mockExtensionState,
|
||||
clineMessages: [
|
||||
{
|
||||
type: "ask",
|
||||
ask: "completion_result",
|
||||
ts: Date.now(),
|
||||
text: "Task completed!",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
renderTaskHeader()
|
||||
|
||||
// Fast-forward time by more than 2 minutes
|
||||
await vi.advanceTimersByTimeAsync(130_000)
|
||||
|
||||
// The upsell should not appear
|
||||
expect(screen.queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("should not show DismissibleUpsell when currentTaskItem is null", async () => {
|
||||
// Update the mock state to have null currentTaskItem
|
||||
mockExtensionState = {
|
||||
...mockExtensionState,
|
||||
currentTaskItem: null,
|
||||
}
|
||||
|
||||
renderTaskHeader()
|
||||
|
||||
// Fast-forward time by more than 2 minutes
|
||||
await vi.advanceTimersByTimeAsync(130_000)
|
||||
|
||||
// The upsell should not appear
|
||||
expect(screen.queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("should not show DismissibleUpsell when task has completion_result in clineMessages", async () => {
|
||||
// Set up mock state with a completion_result message from the start
|
||||
mockExtensionState = {
|
||||
...mockExtensionState,
|
||||
clineMessages: [
|
||||
{
|
||||
type: "say",
|
||||
say: "text",
|
||||
ts: Date.now() - 1000,
|
||||
text: "Working on task...",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "completion_result",
|
||||
ts: Date.now(),
|
||||
text: "Task completed!",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
renderTaskHeader()
|
||||
|
||||
// Fast-forward time by more than 2 minutes
|
||||
await vi.advanceTimersByTimeAsync(130_000)
|
||||
|
||||
// The upsell should not appear because the task is complete
|
||||
expect(screen.queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("should not show DismissibleUpsell when task has completion_result followed by resume messages", async () => {
|
||||
// Set up mock state with a completion_result message followed by resume messages
|
||||
mockExtensionState = {
|
||||
...mockExtensionState,
|
||||
clineMessages: [
|
||||
{
|
||||
type: "say",
|
||||
say: "text",
|
||||
ts: Date.now() - 3000,
|
||||
text: "Working on task...",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "completion_result",
|
||||
ts: Date.now() - 2000,
|
||||
text: "Task completed!",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "resume_completed_task",
|
||||
ts: Date.now() - 1000,
|
||||
text: "Resume completed task?",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "resume_task",
|
||||
ts: Date.now(),
|
||||
text: "Resume task?",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
renderTaskHeader()
|
||||
|
||||
// Fast-forward time by more than 2 minutes
|
||||
await vi.advanceTimersByTimeAsync(130_000)
|
||||
|
||||
// The upsell should not appear because the last relevant message (skipping resume messages) is completion_result
|
||||
expect(screen.queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("should show DismissibleUpsell when task has non-completion message followed by resume messages", async () => {
|
||||
// Set up mock state with a non-completion message followed by resume messages
|
||||
mockExtensionState = {
|
||||
...mockExtensionState,
|
||||
clineMessages: [
|
||||
{
|
||||
type: "say",
|
||||
say: "text",
|
||||
ts: Date.now() - 3000,
|
||||
text: "Working on task...",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "tool",
|
||||
ts: Date.now() - 2000,
|
||||
text: "Need permission to use tool",
|
||||
},
|
||||
{
|
||||
type: "ask",
|
||||
ask: "resume_task",
|
||||
ts: Date.now() - 1000,
|
||||
text: "Resume task?",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
renderTaskHeader()
|
||||
|
||||
// Fast-forward time by 2 minutes to trigger the upsell
|
||||
await vi.advanceTimersByTimeAsync(120_000)
|
||||
|
||||
// The upsell should appear because the last relevant message (skipping resume messages) is not completion_result
|
||||
expect(screen.getByTestId("dismissible-upsell")).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
|
||||
describe("Back to parent task button", () => {
|
||||
beforeEach(() => {
|
||||
mockPostMessage.mockClear()
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@ import {
|
|||
} from "@roo-code/types"
|
||||
|
||||
import { useAppTranslation } from "@src/i18n/TranslationContext"
|
||||
import { vscode } from "@src/utils/vscode"
|
||||
import { Button } from "@src/components/ui"
|
||||
|
||||
import { ModelPicker } from "../ModelPicker"
|
||||
|
||||
|
|
@ -34,21 +32,12 @@ export const Roo = ({
|
|||
|
||||
return (
|
||||
<>
|
||||
{cloudIsAuthenticated ? (
|
||||
{cloudIsAuthenticated && (
|
||||
<div className="flex justify-between items-center mb-2">
|
||||
<div className="text-sm text-vscode-descriptionForeground">
|
||||
{t("settings:providers.roo.authenticatedMessage")}
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex flex-col gap-2">
|
||||
<Button
|
||||
variant="primary"
|
||||
onClick={() => vscode.postMessage({ type: "rooCloudSignIn" })}
|
||||
className="w-fit">
|
||||
{t("settings:providers.roo.connectButton")}
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
<ModelPicker
|
||||
apiConfiguration={apiConfiguration}
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/ca/cloud.json
generated
6
webview-ui/src/i18n/locales/ca/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"startOver": "Torna a començar",
|
||||
"personalAccount": "Compte Personal",
|
||||
"createTeamAccount": "Crear Compte d'Equip",
|
||||
"switchAccount": "Canviar Compte de Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Donant-li una mica d'independència a Roo? Controla'l des de qualsevol lloc amb Roo Code Cloud. <learnMoreLink>Més informació</learnMoreLink>.",
|
||||
"longRunningTask": "Això pot trigar una estona. Continua des de qualsevol lloc amb Cloud."
|
||||
}
|
||||
"switchAccount": "Canviar Compte de Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/ca/settings.json
generated
3
webview-ui/src/i18n/locales/ca/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Nota: Roo Code utilitza prompts complexos i funciona millor amb models Claude. Els models menys capaços poden no funcionar com s'espera."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Autenticat de forma segura a través del teu compte de Roo Code Cloud.",
|
||||
"connectButton": "Connecta amb Roo Code Cloud"
|
||||
"authenticatedMessage": "Autenticat de forma segura a través del teu compte de Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/de/cloud.json
generated
6
webview-ui/src/i18n/locales/de/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Persönliches Konto",
|
||||
"switchAccount": "Roo Code Cloud Konto wechseln",
|
||||
"createTeamAccount": "Team-Konto erstellen",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Roo etwas Unabhängigkeit geben? Kontrolliere es von überall mit Roo Code Cloud. <learnMoreLink>Mehr erfahren</learnMoreLink>.",
|
||||
"longRunningTask": "Das könnte eine Weile dauern. Mit Cloud von überall weitermachen."
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/de/settings.json
generated
3
webview-ui/src/i18n/locales/de/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Hinweis: Roo Code verwendet komplexe Prompts und funktioniert am besten mit Claude-Modellen. Weniger leistungsfähige Modelle funktionieren möglicherweise nicht wie erwartet."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Sicher authentifiziert über dein Roo Code Cloud-Konto.",
|
||||
"connectButton": "Mit Roo Code Cloud verbinden"
|
||||
"authenticatedMessage": "Sicher authentifiziert über dein Roo Code Cloud-Konto."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
|
|
@ -24,9 +24,5 @@
|
|||
"startOver": "Start over",
|
||||
"personalAccount": "Personal Account",
|
||||
"switchAccount": "Switch Roo Code Cloud Account",
|
||||
"createTeamAccount": "Create Team Account",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Roo Code Cloud. <learnMoreLink>Learn more</learnMoreLink>.",
|
||||
"longRunningTask": "This might take a while. Continue from anywhere with Cloud."
|
||||
}
|
||||
"createTeamAccount": "Create Team Account"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -532,8 +532,7 @@
|
|||
"warning": "Note: Roo Code uses complex prompts and works best with Claude models. Less capable models may not work as expected."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Securely authenticated through your Roo Code Cloud account.",
|
||||
"connectButton": "Connect to Roo Code Cloud"
|
||||
"authenticatedMessage": "Securely authenticated through your Roo Code Cloud account."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/es/cloud.json
generated
6
webview-ui/src/i18n/locales/es/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Cuenta Personal",
|
||||
"switchAccount": "Cambiar Cuenta de Roo Code Cloud",
|
||||
"createTeamAccount": "Crear Cuenta de Equipo",
|
||||
"cloudUrlPillLabel": "URL de Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "¿Dándole a Roo un poco de independencia? Contrólalo desde cualquier lugar con Roo Code Cloud. <learnMoreLink>Saber más</learnMoreLink>.",
|
||||
"longRunningTask": "Esto podría tardar un poco. Continúa desde cualquier lugar con la Nube."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL de Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/es/settings.json
generated
3
webview-ui/src/i18n/locales/es/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Nota: Roo Code utiliza prompts complejos y funciona mejor con modelos Claude. Los modelos menos capaces pueden no funcionar como se espera."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Autenticado de forma segura a través de tu cuenta de Roo Code Cloud.",
|
||||
"connectButton": "Conectar a Roo Code Cloud"
|
||||
"authenticatedMessage": "Autenticado de forma segura a través de tu cuenta de Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/fr/cloud.json
generated
6
webview-ui/src/i18n/locales/fr/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Compte Personnel",
|
||||
"switchAccount": "Changer de Compte Roo Code Cloud",
|
||||
"createTeamAccount": "Créer un Compte d'Équipe",
|
||||
"cloudUrlPillLabel": "URL de Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Donner à Roo un peu d'indépendance ? Contrôlez-le de n'importe où avec Roo Code Cloud. <learnMoreLink>En savoir plus</learnMoreLink>.",
|
||||
"longRunningTask": "Cela peut prendre un certain temps. Continuez de n'importe où avec le Cloud."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL de Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/fr/settings.json
generated
3
webview-ui/src/i18n/locales/fr/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Remarque : Roo Code utilise des prompts complexes et fonctionne mieux avec les modèles Claude. Les modèles moins performants peuvent ne pas fonctionner comme prévu."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Authentifié de manière sécurisée via ton compte Roo Code Cloud.",
|
||||
"connectButton": "Se connecter à Roo Code Cloud"
|
||||
"authenticatedMessage": "Authentifié de manière sécurisée via ton compte Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/hi/cloud.json
generated
6
webview-ui/src/i18n/locales/hi/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "व्यक्तिगत खाता",
|
||||
"switchAccount": "Roo Code Cloud खाता बदलें",
|
||||
"createTeamAccount": "टीम खाता बनाएं",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "रू को थोड़ी स्वतंत्रता दे रहे हैं? रू कोड क्लाउड के साथ इसे कहीं से भी नियंत्रित करें। <learnMoreLink>और जानें</learnMoreLink>।",
|
||||
"longRunningTask": "इसमें थोड़ा समय लग सकता है। क्लाउड के साथ कहीं से भी जारी रखें।"
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/hi/settings.json
generated
3
webview-ui/src/i18n/locales/hi/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "नोट: Roo Code जटिल प्रॉम्प्ट्स का उपयोग करता है और Claude मॉडल के साथ सबसे अच्छा काम करता है। कम क्षमता वाले मॉडल अपेक्षित रूप से काम नहीं कर सकते हैं।"
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "आपके Roo Code Cloud खाते के माध्यम से सुरक्षित रूप से प्रमाणित।",
|
||||
"connectButton": "Roo Code Cloud से कनेक्ट करें"
|
||||
"authenticatedMessage": "आपके Roo Code Cloud खाते के माध्यम से सुरक्षित रूप से प्रमाणित।"
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/id/cloud.json
generated
6
webview-ui/src/i18n/locales/id/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Akun Pribadi",
|
||||
"switchAccount": "Ganti Akun Roo Code Cloud",
|
||||
"createTeamAccount": "Buat Akun Tim",
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Memberi Roo sedikit kebebasan? Kendalikan dari mana saja dengan Roo Code Cloud. <learnMoreLink>Pelajari lebih lanjut</learnMoreLink>.",
|
||||
"longRunningTask": "Ini mungkin akan memakan waktu cukup lama. Lanjutkan dari mana saja dengan Cloud."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/id/settings.json
generated
3
webview-ui/src/i18n/locales/id/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Catatan: Roo Code menggunakan prompt kompleks dan bekerja terbaik dengan model Claude. Model yang kurang mampu mungkin tidak bekerja seperti yang diharapkan."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Terautentikasi dengan aman melalui akun Roo Code Cloud Anda.",
|
||||
"connectButton": "Hubungkan ke Roo Code Cloud"
|
||||
"authenticatedMessage": "Terautentikasi dengan aman melalui akun Roo Code Cloud Anda."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/it/cloud.json
generated
6
webview-ui/src/i18n/locales/it/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Account Personale",
|
||||
"switchAccount": "Cambia Account Roo Code Cloud",
|
||||
"createTeamAccount": "Crea Account del Team",
|
||||
"cloudUrlPillLabel": "URL di Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Vuoi dare un po' di indipendenza a Roo? Controllalo da qualsiasi luogo con Roo Code Cloud. <learnMoreLink>Scopri di più</learnMoreLink>.",
|
||||
"longRunningTask": "Potrebbe volerci un po' di tempo. Continua da qualsiasi luogo con il Cloud."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL di Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/it/settings.json
generated
3
webview-ui/src/i18n/locales/it/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Nota: Roo Code utiliza prompt complessi e funziona meglio con i modelli Claude. I modelli con capacità inferiori potrebbero non funzionare come previsto."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Autenticato in modo sicuro tramite il tuo account Roo Code Cloud.",
|
||||
"connectButton": "Connetti a Roo Code Cloud"
|
||||
"authenticatedMessage": "Autenticato in modo sicuro tramite il tuo account Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/ja/cloud.json
generated
6
webview-ui/src/i18n/locales/ja/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "個人アカウント",
|
||||
"switchAccount": "Roo Code Cloud アカウントを切り替え",
|
||||
"createTeamAccount": "チームアカウントを作成",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Rooに少し独立性を与えませんか?Roo Code Cloudでどこからでもコントロールできます。<learnMoreLink>詳細</learnMoreLink>。",
|
||||
"longRunningTask": "これには時間がかかるかもしれません。Cloudを使えばどこからでも続けられます。"
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/ja/settings.json
generated
3
webview-ui/src/i18n/locales/ja/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "注意:Roo Codeは複雑なプロンプトを使用し、Claudeモデルで最適に動作します。能力の低いモデルは期待通りに動作しない場合があります。"
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Roo Code Cloudアカウントを通じて安全に認証されています。",
|
||||
"connectButton": "Roo Code Cloudに接続"
|
||||
"authenticatedMessage": "Roo Code Cloudアカウントを通じて安全に認証されています。"
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/ko/cloud.json
generated
6
webview-ui/src/i18n/locales/ko/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "개인 계정",
|
||||
"switchAccount": "Roo Code Cloud 계정 전환",
|
||||
"createTeamAccount": "팀 계정 만들기",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Roo에게 약간의 독립성을 부여하시겠습니까? Roo Code Cloud로 어디서든 제어하세요. <learnMoreLink>더 알아보기</learnMoreLink>.",
|
||||
"longRunningTask": "시간이 좀 걸릴 수 있습니다. Cloud로 어디서든 계속하세요."
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/ko/settings.json
generated
3
webview-ui/src/i18n/locales/ko/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "참고: Roo Code는 복잡한 프롬프트를 사용하며 Claude 모델에서 가장 잘 작동합니다. 덜 강력한 모델은 예상대로 작동하지 않을 수 있습니다."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Roo Code Cloud 계정을 통해 안전하게 인증되었습니다.",
|
||||
"connectButton": "Roo Code Cloud에 연결"
|
||||
"authenticatedMessage": "Roo Code Cloud 계정을 통해 안전하게 인증되었습니다."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/nl/cloud.json
generated
6
webview-ui/src/i18n/locales/nl/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Persoonlijk Account",
|
||||
"switchAccount": "Wissel van Roo Code Cloud Account",
|
||||
"createTeamAccount": "Teamaccount aanmaken",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Roo wat onafhankelijkheid geven? Bedien het overal met Roo Code Cloud. <learnMoreLink>Meer informatie</learnMoreLink>.",
|
||||
"longRunningTask": "Dit kan even duren. Ga overal verder met de Cloud."
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/nl/settings.json
generated
3
webview-ui/src/i18n/locales/nl/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Let op: Roo Code gebruikt complexe prompts en werkt het beste met Claude-modellen. Minder krachtige modellen werken mogelijk niet zoals verwacht."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Veilig geauthenticeerd via je Roo Code Cloud-account.",
|
||||
"connectButton": "Verbinden met Roo Code Cloud"
|
||||
"authenticatedMessage": "Veilig geauthenticeerd via je Roo Code Cloud-account."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/pl/cloud.json
generated
6
webview-ui/src/i18n/locales/pl/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Konto Osobiste",
|
||||
"switchAccount": "Przełącz Konto Roo Code Cloud",
|
||||
"createTeamAccount": "Utwórz Konto Zespołu",
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Dać Roo trochę niezależności? Kontroluj go z dowolnego miejsca dzięki Roo Code Cloud. <learnMoreLink>Dowiedz się więcej</learnMoreLink>.",
|
||||
"longRunningTask": "To może chwilę potrwać. Kontynuuj z dowolnego miejsca dzięki Chmurze."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/pl/settings.json
generated
3
webview-ui/src/i18n/locales/pl/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Uwaga: Roo Code używa złożonych podpowiedzi i działa najlepiej z modelami Claude. Modele o niższych możliwościach mogą nie działać zgodnie z oczekiwaniami."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Bezpiecznie uwierzytelniony przez twoje konto Roo Code Cloud.",
|
||||
"connectButton": "Połącz z Roo Code Cloud"
|
||||
"authenticatedMessage": "Bezpiecznie uwierzytelniony przez twoje konto Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/pt-BR/cloud.json
generated
6
webview-ui/src/i18n/locales/pt-BR/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Conta Pessoal",
|
||||
"switchAccount": "Alternar Conta do Roo Code Cloud",
|
||||
"createTeamAccount": "Criar Conta de Equipe",
|
||||
"cloudUrlPillLabel": "URL do Roo Code Cloud ",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Dando um pouco de independência ao Roo? Controle-o de qualquer lugar com o Roo Code Cloud. <learnMoreLink>Saiba mais</learnMoreLink>.",
|
||||
"longRunningTask": "Isso pode levar um tempo. Continue de qualquer lugar com a Nuvem."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL do Roo Code Cloud "
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/pt-BR/settings.json
generated
3
webview-ui/src/i18n/locales/pt-BR/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Nota: O Roo Code usa prompts complexos e funciona melhor com modelos Claude. Modelos menos capazes podem não funcionar como esperado."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Autenticado com segurança através da sua conta Roo Code Cloud.",
|
||||
"connectButton": "Conectar ao Roo Code Cloud"
|
||||
"authenticatedMessage": "Autenticado com segurança através da sua conta Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/ru/cloud.json
generated
6
webview-ui/src/i18n/locales/ru/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Личный аккаунт",
|
||||
"switchAccount": "Переключить аккаунт Roo Code Cloud",
|
||||
"createTeamAccount": "Создать командный аккаунт",
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Предоставить Roo немного независимости? Управляйте им из любого места с помощью Roo Code Cloud. <learnMoreLink>Узнать больше</learnMoreLink>.",
|
||||
"longRunningTask": "Это может занять некоторое время. Продолжайте из любого места с помощью Облака."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/ru/settings.json
generated
3
webview-ui/src/i18n/locales/ru/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Примечание: Roo Code использует сложные подсказки и лучше всего работает с моделями Claude. Менее мощные модели могут работать некорректно."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Безопасно аутентифицирован через твой аккаунт Roo Code Cloud.",
|
||||
"connectButton": "Подключиться к Roo Code Cloud"
|
||||
"authenticatedMessage": "Безопасно аутентифицирован через твой аккаунт Roo Code Cloud."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/tr/cloud.json
generated
6
webview-ui/src/i18n/locales/tr/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Kişisel Hesap",
|
||||
"switchAccount": "Roo Code Cloud Hesabını Değiştir",
|
||||
"createTeamAccount": "Takım Hesabı Oluştur",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL'si",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Roo'ya biraz bağımsızlık mı veriyorsunuz? Roo Code Cloud ile onu her yerden kontrol edin. <learnMoreLink>Daha fazla bilgi edinin</learnMoreLink>.",
|
||||
"longRunningTask": "Bu biraz zaman alabilir. Bulut ile her yerden devam edin."
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL'si"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/tr/settings.json
generated
3
webview-ui/src/i18n/locales/tr/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Not: Roo Code karmaşık istemler kullanır ve Claude modelleriyle en iyi şekilde çalışır. Daha az yetenekli modeller beklendiği gibi çalışmayabilir."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Roo Code Cloud hesabın üzerinden güvenli bir şekilde kimlik doğrulandı.",
|
||||
"connectButton": "Roo Code Cloud'a Bağlan"
|
||||
"authenticatedMessage": "Roo Code Cloud hesabın üzerinden güvenli bir şekilde kimlik doğrulandı."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/vi/cloud.json
generated
6
webview-ui/src/i18n/locales/vi/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "Tài Khoản Cá Nhân",
|
||||
"switchAccount": "Chuyển Tài Khoản Roo Code Cloud",
|
||||
"createTeamAccount": "Tạo Tài Khoản Nhóm",
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "Trao cho Roo một chút độc lập? Kiểm soát nó từ mọi nơi với Roo Code Cloud. <learnMoreLink>Tìm hiểu thêm</learnMoreLink>.",
|
||||
"longRunningTask": "Việc này có thể mất một lúc. Tiếp tục từ mọi nơi với Cloud."
|
||||
}
|
||||
"cloudUrlPillLabel": "URL Roo Code Cloud"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/vi/settings.json
generated
3
webview-ui/src/i18n/locales/vi/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "Lưu ý: Roo Code sử dụng các lời nhắc phức tạp và hoạt động tốt nhất với các mô hình Claude. Các mô hình kém mạnh hơn có thể không hoạt động như mong đợi."
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "Đã xác thực an toàn thông qua tài khoản Roo Code Cloud của bạn.",
|
||||
"connectButton": "Kết nối với Roo Code Cloud"
|
||||
"authenticatedMessage": "Đã xác thực an toàn thông qua tài khoản Roo Code Cloud của bạn."
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/zh-CN/cloud.json
generated
6
webview-ui/src/i18n/locales/zh-CN/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "个人账户",
|
||||
"switchAccount": "切换 Roo Code Cloud 账户",
|
||||
"createTeamAccount": "创建团队账户",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "给 Roo 一些独立性?使用 Roo Code Cloud 从任何地方控制它。 <learnMoreLink>了解更多</learnMoreLink>。",
|
||||
"longRunningTask": "这可能需要一段时间。使用 Cloud 从任何地方继续。"
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/zh-CN/settings.json
generated
3
webview-ui/src/i18n/locales/zh-CN/settings.json
generated
|
|
@ -469,8 +469,7 @@
|
|||
"warning": "注意:Roo Code 使用复杂的提示,与 Claude 模型配合最佳。功能较弱的模型可能无法按预期工作。"
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "已通过 Roo Code Cloud 账户安全认证。",
|
||||
"connectButton": "连接到 Roo Code Cloud"
|
||||
"authenticatedMessage": "已通过 Roo Code Cloud 账户安全认证。"
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
6
webview-ui/src/i18n/locales/zh-TW/cloud.json
generated
6
webview-ui/src/i18n/locales/zh-TW/cloud.json
generated
|
|
@ -24,9 +24,5 @@
|
|||
"personalAccount": "個人帳戶",
|
||||
"switchAccount": "切換 Roo Code Cloud 帳戶",
|
||||
"createTeamAccount": "建立團隊帳戶",
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL",
|
||||
"upsell": {
|
||||
"autoApprovePowerUser": "給 Roo 一點獨立性?使用 Roo Code Cloud 隨時隨地掌控工作進度。<learnMoreLink>了解更多</learnMoreLink>。",
|
||||
"longRunningTask": "這可能需要一些時間。使用雲端隨時隨地繼續。"
|
||||
}
|
||||
"cloudUrlPillLabel": "Roo Code Cloud URL"
|
||||
}
|
||||
|
|
|
|||
3
webview-ui/src/i18n/locales/zh-TW/settings.json
generated
3
webview-ui/src/i18n/locales/zh-TW/settings.json
generated
|
|
@ -479,8 +479,7 @@
|
|||
"warning": "注意:Roo Code 使用複雜提示詞,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。"
|
||||
},
|
||||
"roo": {
|
||||
"authenticatedMessage": "已透過 Roo Code Cloud 帳戶安全認證。",
|
||||
"connectButton": "連線到 Roo Code Cloud"
|
||||
"authenticatedMessage": "已透過 Roo Code Cloud 帳戶安全認證。"
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue