diff --git a/.roomodes b/.roomodes index 10625f66f5c..4d1f33ab47b 100644 --- a/.roomodes +++ b/.roomodes @@ -22,7 +22,7 @@ "slug": "translate", "name": "Translate", "roleDefinition": "You are Roo, a linguistic specialist focused on translating and managing localization files. Your responsibility is to help maintain and update translation files for the application, ensuring consistency and accuracy across all language resources.", - "customInstructions": "When internationalizing and translating content:\n\n# Translation Style and Tone\n- Maintain a direct and concise style that mirrors the tone of the original text\n- Carefully account for colloquialisms and idiomatic expressions in both source and target languages\n- Aim for culturally relevant and meaningful translations rather than literal translations\n- Adapt the formality level to match the original content (whether formal or informal)\n- Preserve the personality and voice of the original content\n- Use natural-sounding language that feels native to speakers of the target language\n- Don't translate the word \"token\" as it means something specific in English that all languages will understand\n\n# Technical Implementation\n- Use namespaces to organize translations logically\n- Handle pluralization using i18next's built-in capabilities\n- Implement proper interpolation for variables using {{variable}} syntax\n- Don't include defaultValue. The `en` translations are the fallback.\n- Always use apply_diff instead of write_to_file when editing existing translation files as it's much faster and more reliable\n- When using apply_diff, make sure to carefully identify the exact JSON structure to edit to avoid syntax errors\n\n# Quality Assurance\n- Maintain consistent terminology across all translations\n- Respect the JSON structure of translation files\n- Watch for placeholders and preserve them in translations\n- Be mindful of text length in UI elements when translating to languages that might require more characters\n- Use context-aware translations when the same string has different meanings\n- Always validate your translation work by running the missing translations script:\n ```\n node scripts/find-missing-translations.js\n ```\n- Before completing any translation task, ensure there are no missing translations by running the script with the target locale(s):\n ```\n node scripts/find-missing-translations.js --locale=\n ```\n- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# Supported Languages\n- Localize all strings into the following locale files: ar, ca, cs, de, en, es, fr, hi, hu, it, ja, ko, pl, pt, pt-BR, ru, tr, zh-CN, zh-TW", + "customInstructions": "When internationalizing and translating content:\n\n# Translation Style and Tone\n- Maintain a direct and concise style that mirrors the tone of the original text\n- Carefully account for colloquialisms and idiomatic expressions in both source and target languages\n- Aim for culturally relevant and meaningful translations rather than literal translations\n- Adapt the formality level to match the original content (whether formal or informal)\n- Preserve the personality and voice of the original content\n- Use natural-sounding language that feels native to speakers of the target language\n- Don't translate the word \"token\" as it means something specific in English that all languages will understand\n\n# Technical Implementation\n- Use namespaces to organize translations logically\n- Handle pluralization using i18next's built-in capabilities\n- Implement proper interpolation for variables using {{variable}} syntax\n- Don't include defaultValue. The `en` translations are the fallback.\n- Always use apply_diff instead of write_to_file when editing existing translation files as it's much faster and more reliable\n- When using apply_diff, make sure to carefully identify the exact JSON structure to edit to avoid syntax errors\n- Always use the Trans component for text with embedded components\n\n# Quality Assurance\n- Maintain consistent terminology across all translations\n- Respect the JSON structure of translation files\n- Watch for placeholders and preserve them in translations\n- Be mindful of text length in UI elements when translating to languages that might require more characters\n- Use context-aware translations when the same string has different meanings\n- Always validate your translation work by running the missing translations script:\n ```\n node scripts/find-missing-translations.js\n ```\n- Before completing any translation task, ensure there are no missing translations by running the script with the target locale(s):\n ```\n node scripts/find-missing-translations.js --locale=\n ```\n- Address any missing translations identified by the script to ensure complete coverage across all locales\n\n# Supported Languages\n- Localize all strings into the following locale files: ar, ca, cs, de, en, es, fr, hi, hu, it, ja, ko, pl, pt, pt-BR, ru, tr, zh-CN, zh-TW", "groups": [ "read", "command", diff --git a/webview-ui/src/components/settings/ModelPicker.tsx b/webview-ui/src/components/settings/ModelPicker.tsx index 8a3e7f73dc4..2da4a94cad2 100644 --- a/webview-ui/src/components/settings/ModelPicker.tsx +++ b/webview-ui/src/components/settings/ModelPicker.tsx @@ -1,5 +1,6 @@ import { useMemo, useState, useCallback, useEffect, useRef } from "react" import { VSCodeLink } from "@vscode/webview-ui-toolkit/react" +import { Trans } from "react-i18next" import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem } from "@/components/ui/combobox" @@ -100,15 +101,17 @@ export const ModelPicker = ({ modelInfo={selectedModelInfo} />
- The extension automatically fetches the latest list of models available on{" "} - - {serviceName} - - . If you're unsure which model to choose, Roo Code works best with{" "} - onSelect(defaultModelId)} className="text-sm"> - {defaultModelId}. - - You can also try searching "free" for no-cost options currently available. + , + defaultModelLink: onSelect(defaultModelId)} className="text-sm" />, + }} + values={{ + serviceName, + defaultModelId, + }} + />
) diff --git a/webview-ui/src/i18n/locales/ar/settings.json b/webview-ui/src/i18n/locales/ar/settings.json index afffe859e23..de3131e3898 100644 --- a/webview-ui/src/i18n/locales/ar/settings.json +++ b/webview-ui/src/i18n/locales/ar/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "لمزيد من المعلومات، راجع تفاصيل التسعير." } }, + "modelPicker": { + "automaticFetch": "يقوم الامتداد تلقائيًا بجلب أحدث قائمة للنماذج المتاحة على {{serviceName}}. إذا كنت غير متأكد من النموذج الذي يجب اختياره، فإن Roo Code يعمل بشكل أفضل مع {{defaultModelId}}. يمكنك أيضًا البحث عن \"free\" للخيارات المجانية المتاحة حاليًا." + }, "footer": { "feedback": "إذا كان لديك أي أسئلة أو ملاحظات، فلا تتردد في فتح مشكلة في github.com/RooVetGit/Roo-Code أو الانضمام إلى reddit.com/r/RooCode أو discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index d9080aa15ee..b8377a32ee7 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Per a més informació, consulteu els detalls de preus." } }, + "modelPicker": { + "automaticFetch": "L'extensió obté automàticament la llista més recent de models disponibles a {{serviceName}}. Si no esteu segur de quin model triar, Roo Code funciona millor amb {{defaultModelId}}. També podeu cercar \"free\" per a opcions gratuïtes actualment disponibles." + }, "footer": { "feedback": "Si teniu qualsevol pregunta o comentari, no dubteu a obrir un issue a github.com/RooVetGit/Roo-Code o unir-vos a reddit.com/r/RooCode o discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/cs/settings.json b/webview-ui/src/i18n/locales/cs/settings.json index 29346371b54..0ed2f7d0a28 100644 --- a/webview-ui/src/i18n/locales/cs/settings.json +++ b/webview-ui/src/i18n/locales/cs/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Pro více informací viz podrobnosti o cenách." } }, + "modelPicker": { + "automaticFetch": "Rozšíření automaticky načítá nejnovější seznam modelů dostupných na {{serviceName}}. Pokud si nejste jisti, který model vybrat, Roo Code funguje nejlépe s {{defaultModelId}}. Můžete také zkusit vyhledat \"free\" pro aktuálně dostupné bezplatné možnosti." + }, "footer": { "feedback": "Pokud máte jakékoliv otázky nebo zpětnou vazbu, neváhejte otevřít problém na github.com/RooVetGit/Roo-Code nebo se připojit na reddit.com/r/RooCode nebo discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index 4027cc17fcc..85ea475b43c 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Weitere Informationen finden Sie in den Preisdetails." } }, + "modelPicker": { + "automaticFetch": "Die Erweiterung ruft automatisch die neueste Liste der verfügbaren Modelle von {{serviceName}} ab. Wenn Sie sich nicht sicher sind, welches Modell Sie wählen sollen, funktioniert Roo Code am besten mit {{defaultModelId}}. Sie können auch nach \"free\" suchen, um derzeit verfügbare kostenlose Optionen zu finden." + }, "footer": { "feedback": "Wenn Sie Fragen oder Feedback haben, können Sie gerne ein Issue auf github.com/RooVetGit/Roo-Code öffnen oder reddit.com/r/RooCode oder discord.gg/roocode beitreten", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index c98dcea0bc4..f5f80b73dca 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "For more info, see pricing details." } }, + "modelPicker": { + "automaticFetch": "The extension automatically fetches the latest list of models available on {{serviceName}}. If you're unsure which model to choose, Roo Code works best with {{defaultModelId}}. You can also try searching \"free\" for no-cost options currently available." + }, "footer": { "feedback": "If you have any questions or feedback, feel free to open an issue at github.com/RooVetGit/Roo-Code or join reddit.com/r/RooCode or discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index 5f5eb8e4e89..7bc453ac26e 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Para más información, consulte los detalles de precios." } }, + "modelPicker": { + "automaticFetch": "La extensión obtiene automáticamente la lista más reciente de modelos disponibles en {{serviceName}}. Si no está seguro de qué modelo elegir, Roo Code funciona mejor con {{defaultModelId}}. También puede buscar \"free\" para opciones sin costo actualmente disponibles." + }, "footer": { "feedback": "Si tiene alguna pregunta o comentario, no dude en abrir un issue en github.com/RooVetGit/Roo-Code o unirse a reddit.com/r/RooCode o discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index f10f0e2bd99..01ef41886a1 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Pour plus d'informations, voir les détails de tarification." } }, + "modelPicker": { + "automaticFetch": "L'extension récupère automatiquement la liste la plus récente des modèles disponibles sur {{serviceName}}. Si vous ne savez pas quel modèle choisir, Roo Code fonctionne mieux avec {{defaultModelId}}. Vous pouvez également rechercher \"free\" pour les options gratuites actuellement disponibles." + }, "footer": { "feedback": "Si vous avez des questions ou des commentaires, n'hésitez pas à ouvrir un problème sur github.com/RooVetGit/Roo-Code ou à rejoindre reddit.com/r/RooCode ou discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index eae378cba2a..b7c1ac4e1a4 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "अधिक जानकारी के लिए, मूल्य निर्धारण विवरण देखें।" } }, + "modelPicker": { + "automaticFetch": "एक्सटेंशन {{serviceName}} पर उपलब्ध मॉडलों की नवीनतम सूची स्वचालित रूप से प्राप्त करता है। यदि आप अनिश्चित हैं कि कौन सा मॉडल चुनना है, तो Roo Code {{defaultModelId}} के साथ सबसे अच्छा काम करता है। आप वर्तमान में उपलब्ध निःशुल्क विकल्पों के लिए \"free\" भी खोज सकते हैं।" + }, "footer": { "feedback": "यदि आपके कोई प्रश्न या प्रतिक्रिया है, तो github.com/RooVetGit/Roo-Code पर एक मुद्दा खोलने या reddit.com/r/RooCode या discord.gg/roocode में शामिल होने में संकोच न करें", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/hu/settings.json b/webview-ui/src/i18n/locales/hu/settings.json index 3bd09c285a6..cf4e38a095c 100644 --- a/webview-ui/src/i18n/locales/hu/settings.json +++ b/webview-ui/src/i18n/locales/hu/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "További információkért lásd az árazási részleteket." } }, + "modelPicker": { + "automaticFetch": "A bővítmény automatikusan letölti a {{serviceName}} oldalon elérhető modellek legfrissebb listáját. Ha nem biztos benne, melyik modellt válassza, a Roo Code legjobban a {{defaultModelId}} modellel működik. Kereshet \"free\" kifejezésre is, hogy megtalálja a jelenleg elérhető ingyenes opciókat." + }, "footer": { "feedback": "Ha bármilyen kérdése vagy visszajelzése van, nyugodtan nyisson egy problémát a github.com/RooVetGit/Roo-Code oldalon, vagy csatlakozzon a reddit.com/r/RooCode vagy discord.gg/roocode oldalhoz", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index bbc60cb88eb..90da900ca10 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Per maggiori informazioni, vedi i dettagli sui prezzi." } }, + "modelPicker": { + "automaticFetch": "L'estensione recupera automaticamente l'elenco più recente dei modelli disponibili su {{serviceName}}. Se non sei sicuro di quale modello scegliere, Roo Code funziona meglio con {{defaultModelId}}. Puoi anche cercare \"free\" per opzioni gratuite attualmente disponibili." + }, "footer": { "feedback": "Se hai domande o feedback, sentiti libero di aprire un issue su github.com/RooVetGit/Roo-Code o unirti a reddit.com/r/RooCode o discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index a9b10c59287..2fd31883ca2 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "詳細については、価格詳細をご覧ください。" } }, + "modelPicker": { + "automaticFetch": "拡張機能は{{serviceName}}で利用可能な最新のモデルリストを自動的に取得します。どのモデルを選ぶべきか迷っている場合、Roo Codeは{{defaultModelId}}で最適に動作します。また、「free」で検索すると、現在利用可能な無料オプションを見つけることができます。" + }, "footer": { "feedback": "質問やフィードバックがある場合は、github.com/RooVetGit/Roo-Codeで問題を開くか、reddit.com/r/RooCodediscord.gg/roocodeに参加してください", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index ceac35800e2..049f6337a86 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "자세한 내용은 가격 책정 세부 정보를 참조하세요." } }, + "modelPicker": { + "automaticFetch": "확장 프로그램은 {{serviceName}}에서 사용 가능한 최신 모델 목록을 자동으로 가져옵니다. 어떤 모델을 선택해야 할지 확실하지 않다면, Roo Code는 {{defaultModelId}}로 가장 잘 작동합니다. 현재 사용 가능한 무료 옵션을 찾으려면 \"free\"를 검색해 볼 수도 있습니다." + }, "footer": { "feedback": "질문이나 피드백이 있으시면 github.com/RooVetGit/Roo-Code에서 이슈를 열거나 reddit.com/r/RooCode 또는 discord.gg/roocode에 가입하세요", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index 65b540f656c..1f63b15642d 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Więcej informacji znajdziesz w szczegółach cennika." } }, + "modelPicker": { + "automaticFetch": "Rozszerzenie automatycznie pobiera najnowszą listę modeli dostępnych w {{serviceName}}. Jeśli nie jesteś pewien, który model wybrać, Roo Code działa najlepiej z {{defaultModelId}}. Możesz również wyszukać \"free\", aby znaleźć obecnie dostępne opcje bezpłatne." + }, "footer": { "feedback": "Jeśli masz jakiekolwiek pytania lub opinie, śmiało otwórz zgłoszenie na github.com/RooVetGit/Roo-Code lub dołącz do reddit.com/r/RooCode lub discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index b707d1f01fd..a7678678b98 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Para mais informações, consulte os detalhes de preços." } }, + "modelPicker": { + "automaticFetch": "A extensão busca automaticamente a lista mais recente de modelos disponíveis em {{serviceName}}. Se você não tem certeza sobre qual modelo escolher, o Roo Code funciona melhor com {{defaultModelId}}. Você também pode pesquisar por \"free\" para encontrar opções gratuitas atualmente disponíveis." + }, "footer": { "feedback": "Se tiver alguma dúvida ou feedback, sinta-se à vontade para abrir um problema em github.com/RooVetGit/Roo-Code ou juntar-se a reddit.com/r/RooCode ou discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/pt/settings.json b/webview-ui/src/i18n/locales/pt/settings.json index 621f05626a2..7497c9a54ce 100644 --- a/webview-ui/src/i18n/locales/pt/settings.json +++ b/webview-ui/src/i18n/locales/pt/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Para mais informações, consulte os detalhes de preços." } }, + "modelPicker": { + "automaticFetch": "A extensão busca automaticamente a lista mais recente de modelos disponíveis em {{serviceName}}. Se não tiver certeza sobre qual modelo escolher, o Roo Code funciona melhor com {{defaultModelId}}. Você também pode pesquisar por \"free\" para encontrar opções gratuitas atualmente disponíveis." + }, "footer": { "feedback": "Se tiver alguma dúvida ou feedback, sinta-se à vontade para abrir um problema em github.com/RooVetGit/Roo-Code ou juntar-se a reddit.com/r/RooCode ou discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/ru/settings.json b/webview-ui/src/i18n/locales/ru/settings.json index 96e42eb9493..f1fadef982d 100644 --- a/webview-ui/src/i18n/locales/ru/settings.json +++ b/webview-ui/src/i18n/locales/ru/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Для получения дополнительной информации см. детали ценообразования." } }, + "modelPicker": { + "automaticFetch": "Расширение автоматически получает последний список моделей, доступных на {{serviceName}}. Если вы не уверены, какую модель выбрать, Roo Code лучше всего работает с {{defaultModelId}}. Вы также можете искать \"free\" для поиска бесплатных вариантов, доступных в настоящее время." + }, "footer": { "feedback": "Если у вас есть вопросы или отзывы, не стесняйтесь открыть issue на github.com/RooVetGit/Roo-Code или присоединиться к reddit.com/r/RooCode или discord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index bb94648523c..61f7cb633c2 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "Daha fazla bilgi için fiyatlandırma ayrıntılarına bakın." } }, + "modelPicker": { + "automaticFetch": "Uzantı {{serviceName}} üzerinde bulunan mevcut modellerin en güncel listesini otomatik olarak alır. Hangi modeli seçeceğinizden emin değilseniz, Roo Code {{defaultModelId}} ile en iyi şekilde çalışır. Şu anda mevcut olan ücretsiz seçenekleri bulmak için \"free\" araması da yapabilirsiniz." + }, "footer": { "feedback": "Herhangi bir sorunuz veya geri bildiriminiz varsa, github.com/RooVetGit/Roo-Code adresinde bir konu açmaktan veya reddit.com/r/RooCode ya da discord.gg/roocode'a katılmaktan çekinmeyin", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 79504d9c28f..4b31049c028 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "有关更多信息,请参阅定价详情。" } }, + "modelPicker": { + "automaticFetch": "扩展程序会自动获取 {{serviceName}} 上可用的最新模型列表。如果您不确定选择哪个模型,Roo Code 与 {{defaultModelId}} 配合最佳。您还可以搜索\"free\"以查找当前可用的免费选项。" + }, "footer": { "feedback": "如果您有任何问题或反馈,请随时在 github.com/RooVetGit/Roo-Code 上提出问题或加入 reddit.com/r/RooCodediscord.gg/roocode", "version": "Roo Code v{{version}}", diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 3534201bc0a..c070828efd1 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -210,6 +210,9 @@ "pricingDetails": "有關更多資訊,請參閱定價詳情。" } }, + "modelPicker": { + "automaticFetch": "擴充功能會自動獲取 {{serviceName}} 上可用的最新模型列表。如果您不確定選擇哪個模型,Roo Code 與 {{defaultModelId}} 配合最佳。您還可以搜尋\"free\"以尋找目前可用的免費選項。" + }, "footer": { "feedback": "如果您有任何問題或反饋,請隨時在 github.com/RooVetGit/Roo-Code 上提出問題或加入 reddit.com/r/RooCodediscord.gg/roocode", "version": "Roo Code v{{version}}",