From 1f2727baba08d6b8189a3895025f47f98b1d51ab Mon Sep 17 00:00:00 2001 From: rj Date: Mon, 9 Dec 2024 12:54:10 +0000 Subject: [PATCH] development > main (#418) * Chinese readme (#415) * jpn.json * update ja.json * readme in chinese * translate ja (#414) * jpn.json * update ja.json * translate/de * translate/zh * translate/zh * 3.19.21 --------- Co-authored-by: BitStrawber <2837799357@qq.com> Co-authored-by: ZhongGs --- README.zh-CN.md | 79 ++++++++++++++++++++++++++ package-lock.json | 4 +- package.json | 2 +- src/webview/assets/locales/de.json | 91 ++++++++++++++++++++++++++++++ src/webview/assets/locales/en.json | 1 + src/webview/assets/locales/ja.json | 90 +++++++++++++++++++++++++++++ src/webview/assets/locales/zh.json | 91 ++++++++++++++++++++++++++++++ 7 files changed, 355 insertions(+), 3 deletions(-) create mode 100644 README.zh-CN.md create mode 100644 src/webview/assets/locales/de.json create mode 100644 src/webview/assets/locales/ja.json create mode 100644 src/webview/assets/locales/zh.json diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..7dcae1c --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,79 @@ +# twinny +VScode的免费私有AI插件 + +- [Ollama](https://github.com/jmorganca/ollama) +- [llama.cpp](https://github.com/ggerganov/llama.cpp) +- [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) +- [LM Studio](https://github.com/lmstudio-ai) +- [LiteLLM](https://github.com/BerriAI/litellm) +- [Open WebUI](https://github.com/open-webui/open-webui) + +## 🚀 开始使用 +访问[quick start guide](https://twinnydotdev.github.io/twinny-docs/zh-cn/general/quick-start/)开始使用. + +## 核心功能 + +### 代码自动补全 +实时获取AI代码建议,让twinny自动补全你的代码。 +![Fill in the Middle Example](https://github.com/rjmacarthy/twinny/assets/5537428/69f567c0-2700-4474-b621-6099255bc87b) + +### 基于代码进行智能聊天 +通过边栏处理代码: 获取函数解释,生成测试,请求重构等。 + + + +### 附加功能 +- 离线与在线运行 +- 高度可定制的 FIM 和聊天 API 端点 +- 保存聊天记录 +- 满足OpneAI的API标准 +- 支持单行或多行填空式补全 +- 可定制的提示模板 +- 从暂存的更改生成 git 提交消息 +- 通过 Visual Studio Code 扩展市场轻松安装 +- 可定制的设置,用于 API 提供商、模型名称、端口号和路径 +- 与 Ollama、llama.cpp、oobabooga 和 LM Studio API 兼容 +- 直接在编辑器中接受代码解决方案 +- 从代码块创建新文档 +- 查看代码块的并排差异 +- 以全屏模式打开聊天 +- 复制生成的代码解决方案块 +- 工作区嵌入,用于上下文感知的 AI 助力 +- 连接到 Symmetry 网络,进行 P2P AI 推理 +- 成为 Symmetry 网络的提供商,与世界分享您的计算资源 + +### 工作区嵌入 +使用工作区嵌入增强您的编码体验,获得上下文感知的 AI 助力。 +- **嵌入您的整个工作区**: 只需单击即可轻松嵌入您的整个工作区。 +- **上下文感知的响应**: twinny 使用您的代码库的相关部分,提供更准确和上下文的答案。 +- **可定制的嵌入提供者**: 默认情况下,使用 Ollama 嵌入(all-minilm:latest),但支持各种提供者。 +- **可调整的相关性**: 微调重新排名概率阈值,以控制 AI 响应中上下文的包含。 +- **切换嵌入上下文**: 轻松在每次消息中使用或不用嵌入上下文之间切换。 + +### Symmetry 网络 +[Symmetry](https://twinny.dev/symmetry)是一个去中心化的点对点网络工具,旨在为 AI 推理提供计算资源的民主化访问。主要功能包括: + +- 资源共享: 用户可以提供或寻求计算能力,用于各种 AI 任务。 +- 直接连接: 在用户之间启用安全、点对点的连接。 +- Visual Studio Code 集成: Twinny 在 VS Code 中内置了直接作为对等体或提供者连接的功能。 +- 公共提供者访问:用户可以利用 Symmetry 网络上其他用户的公共模型。 + +Symmetry 旨在为开发人员和研究人员提供更易于访问和高效的 AI 推理。 + +客户端源代码是开源的,可以在以下链接[获取](https://github.com/twinnydotdev/symmetry-core). + +## 已知问题 +访问Github[问题页面](https://github.com/rjmacarthy/twinny/issues) 查找已知问题和故障排除。 + +## 贡献 +有兴趣贡献吗?在[Twitter](https://x.com/twinnydotdev)上联系我, 在问题中描述你的更改并在准备好时提交PR. Twinny 是在 MIT 许可下开源的。有关更多详细信息,请参阅 [LICENSE](https://github.com/rjmacarthy/twinny/blob/master/LICENSE) 。 + +## 支持 Twinny +感谢您使用 Twinny! +该项目将始终是免费且开源的。如果您觉得它对您有所帮助,请考虑通过小额捐赠来表达您的感谢 <3 +Bitcoin: `1PVavNkMmBmUz8nRYdnVXiTgXrAyaxfehj` + +关注我的X账号获得最新的更新 https://x.com/rjmacarthy + +## 免责声明 +Twinny 正在积极开发和提供“原样”。功能可能会在更新之间有所不同。 diff --git a/package-lock.json b/package-lock.json index 746808c..b45fbd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "twinny", - "version": "3.19.20", + "version": "3.19.21", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "twinny", - "version": "3.19.20", + "version": "3.19.21", "cpu": [ "x64", "arm64" diff --git a/package.json b/package.json index 6a6c126..b7e2ffb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "twinny", "displayName": "twinny - AI Code Completion and Chat", "description": "Locally hosted AI code completion plugin for vscode", - "version": "3.19.20", + "version": "3.19.21", "icon": "assets/icon.png", "keywords": [ "code-inference", diff --git a/src/webview/assets/locales/de.json b/src/webview/assets/locales/de.json new file mode 100644 index 0000000..00bf3a0 --- /dev/null +++ b/src/webview/assets/locales/de.json @@ -0,0 +1,91 @@ +{ + "accept-solution": "Akzeptiere Lösung", + "api-key-placeholder": "Geben Sie hier Ihren API-Schlüssel ein", + "api-key": "API-Schlüssel", + "api-path-placeholder": "Geben Sie einen Hostnamen ein, z.B. 'localhost'", + "api-path": "API-Pfad", + "applicable-ollama": "Für einige Anbieter wie Ollama anwendbar", + "auto-connect-as-provider": "Automatisch als Anbieter verbinden", + "automatic": "Automatisch", + "cancel-edit": "Bearbeitung abbrechen", + "cancel": "Abbrechen", + "chat": "Chat", + "clear-conversations": "Unterhaltungen löschen", + "connect": "Verbinden", + "connected": "Verbunden!", + "connecting": "Verbindung wird hergestellt...", + "connection-failed": "Verbindung fehlgeschlagen! Bitte überprüfen Sie Ihre Verbindung und versuchen Sie es erneut.", + "consumer-connection": "Kundenverbindung", + "conversation-history": "Gesprächsverlauf", + "copy-code": "Code kopieren", + "copy-provider": "Anbieter kopieren", + "delete-message": "Nachricht löschen", + "delete-provider": "Anbieter löschen", + "disconnect": "Trennen", + "edit-default-templates-description": "Bearbeiten Sie die Standardvorlagen, die in der Twinny-Erweiterung verwendet werden.", + "edit-default-templates": "Standardvorlagen bearbeiten", + "edit-message": "Nachricht bearbeiten", + "edit-provider": "Anbieter bearbeiten", + "embed-documents": "Dokumente einbetten", + "embedding-provider": "Anbieter einbetten", + "fim-template": "FIM-Vorlage", + "fim": "Füll-in-Mitte", + "hostname-placeholder": "Geben Sie einen Hostnamen ein, z.B. 'localhost'", + "hostname": "Hostname", + "label-placeholder": "Geben Sie eine Beschriftung für Ihren Anbieter ein.", + "label": "Beschriftung", + "loading-available-models": "Verfügbare Modelle werden geladen...", + "max-chunk-size": "Maximale Stückgröße", + "min-chunk-size": "Minimale Stückgröße", + "model-name-placeholder": "Geben Sie einen Modellnamen ein, z.B. 'llama3'", + "model-name": "Modellname", + "new-conversation": "Neue Unterhaltung", + "new-document": "Neues Dokument", + "no-connections-found": "Keine Verbindungen gefunden. Bitte fügen Sie eine neue Verbindung hinzu, um zu beginnen.", + "no-result": "Kein Ergebnis", + "nothing-to-see-here": "Hier gibt es nichts zu sehen.", + "number-code-filepaths": "Anzahl der als Kontext zu verwendenden Dateipfade.", + "number-code-snippets": "Anzahl der als Kontext zu verwendenden Code-Schnipsel.", + "open-diff": "Differenz-Ansicht öffnen", + "open-template-editor": "Vorlagen-Editor öffnen", + "overlap-size": "Überlappungsgröße", + "owner-repo-name": "Dieser Tab hilft Ihnen, Pull Requests in Ihrem Repository zu überprüfen, geben Sie den Besitzer und Repository-Namen ein, um zu beginnen. Derzeit wird nur GitHub unterstützt, setzen Sie Ihren GitHub-Token in der Einstellungen, um zu beginnen.", + "path": "Pfad", + "placeholder": "Wie kann Twinny Ihnen heute helfen?", + "port-placeholder": "Geben Sie eine Portnummer ein, z.B. '11434'", + "port": "Port", + "protocol": "Protokoll", + "provider-connection": "Anbieterverbindung", + "provider-name": "Anbietername", + "provider-placeholder": "Geben Sie einen Anbieternamen ein", + "provider-type": "Anbietertyp", + "provider": "Anbieter", + "providers": "Anbieter", + "pull-requests": "Pull Requests", + "regenerate-message": "Nachricht neu generieren", + "relevant-code-snippets": "Relevante Code-Schnipsel", + "relevant-file-paths": "Relevante Dateipfade", + "repository-level": "Repositoryebene", + "rerank-probability-threshold": "Wahrscheinlichkeitsschwelle für Neusortierung", + "rerank-threshold-description": "Je niedriger der Schwellenwert, desto wahrscheinlicher, dass Ergebnisse enthalten sind.", + "rerank-threshold": "Neusortierungsschwelle", + "reset-providers": "Anbieter zurücksetzen", + "reset-to-default": "Auf Standard zurücksetzen", + "review-pull-requests": "Pull Requests überprüfen", + "save-edit": "Bearbeitung speichern", + "save": "Speichern", + "scroll-down": "Nach unten scrollen", + "share-gpu-resources": "Sie können Ihre GPU-Ressourcen auch teilen, indem Sie sich als Anbieter mit Symmetry verbinden, indem Sie Ihre aktive Twinny-Anbieterkonfiguration verwenden. Alle Verbindungen sind peer-to-peer, verschlüsselt und sicher.", + "status": "Status", + "stop-generation": "Generierung stoppen", + "symmetry-description": "Symmetry ist ein peer-to-peer AI-Schlussfolgerungsnetzwerk, das es Benutzern ermöglicht, sich sicher und direkt miteinander zu verbinden. Wenn Sie sich als Verbraucher verbinden, wird Symmetry Ihnen basierend auf Ihrer Modellauswahl einen Anbieter zuweisen.", + "symmetry-inference-network": "Symmetry-Schlussfolgerungsnetzwerk", + "template-settings-description": "Wählen Sie die Vorlagen, die Sie in der Chat-Oberfläche verwenden möchten.", + "template-settings": "Vorlagen-Einstellungen", + "thinking": "Überlege...", + "toggle-auto-scroll": "Auto-Scroll ein-/ausschalten", + "toggle-embedding-options": "Einbettungsoptionen ein-/ausschalten", + "toggle-provider-selection": "Anbieterauswahl umschalten", + "type": "Typ" +} + \ No newline at end of file diff --git a/src/webview/assets/locales/en.json b/src/webview/assets/locales/en.json index e7c5132..cb95389 100644 --- a/src/webview/assets/locales/en.json +++ b/src/webview/assets/locales/en.json @@ -88,3 +88,4 @@ "toggle-provider-selection": "Toggle provider selection", "type": "Type" } + \ No newline at end of file diff --git a/src/webview/assets/locales/ja.json b/src/webview/assets/locales/ja.json new file mode 100644 index 0000000..7e13a29 --- /dev/null +++ b/src/webview/assets/locales/ja.json @@ -0,0 +1,90 @@ +{ + "accept-solution": "解決方案を受け入れる", + "api-key-placeholder": "ここにAPIキーを入力してください", + "api-key": "APIキー", + "api-path-placeholder": "ホスト名を入力してください。例: 'localhost'", + "api-path": "APIパス", + "applicable-ollama": "Ollamaなどのインターフェースプロバイダーに適用されます", + "auto-connect-as-provider": "インターフェースプロバイダーとして自動的に接続", + "automatic": "自動化", + "cancel-edit": "編集をキャンセル", + "cancel": "キャンセル", + "chat": "チャット", + "clear-conversations": "対話をクリア", + "connect": "接続", + "connected": "接続しました!", + "connecting": "接続中...", + "connection-failed": "接続に失敗しました!接続を確認して再度お試しください。", + "consumer-connection": "ユーザー接続", + "conversation-history": "対話履歴", + "copy-code": "コードをコピー", + "copy-provider": "インターフェースプロバイダーをコピー", + "delete-message": "メッセージを削除", + "delete-provider": "インターフェースプロバイダーを削除", + "disconnect": "切断", + "edit-default-templates-description": "Twinny拡張で使用されるデフォルトテンプレートを編集します。", + "edit-default-templates": "デフォルトテンプレートを編集", + "edit-message": "メッセージを編集", + "edit-provider": "インターフェースプロバイダーを編集", + "embed-documents": "文書を埋め込む", + "embedding-provider": "インターフェースプロバイダーを埋め込む", + "fim-template": "FIMテンプレート", + "fim": "中間充填", + "hostname-placeholder": "ホスト名を入力してください。例: 'localhost'", + "hostname": "ホスト名", + "label-placeholder": "インターフェースプロバイダーのラベルを入力してください。", + "label": "ラベル", + "loading-available-models": "利用可能なモデルを読み込んでいます...", + "max-chunk-size": "最大チャンクサイズ", + "min-chunk-size": "最小チャンクサイズ", + "model-name-placeholder": "モデル名を入力してください。例: 'llama3'", + "model-name": "モデル名", + "new-conversation": "新しい対話", + "new-document": "新しい文書", + "no-connections-found": "接続が見つかりません。新しい接続を追加して開始してください。", + "no-result": "結果なし", + "nothing-to-see-here": "ここには何もありません。", + "number-code-filepaths": "文脈として使用されるファイルパスの数。", + "number-code-snippets": "文脈として使用されるコードスニペットの数。", + "open-diff": "差分比較ビューを開く", + "open-template-editor": "テンプレートエディターを開く", + "overlap-size": "オーバーラップサイズ", + "owner-repo-name": "このラベルは、あなたのリポジトリ内のプルリクエストをレビューするのに役立ちます。所有者とリポジトリ名を入力して開始してください。現在はGitHubのみサポートされており、GitHubトークンを設定して開始してください。", + "path": "パス", + "placeholder": "Twinnyは今日どのようにお手伝いしましょうか?", + "port-placeholder": "ポート番号を入力してください。例: '11434'", + "port": "ポート", + "protocol": "プロトコル", + "provider-connection": "インターフェースプロバイダー接続", + "provider-name": "インターフェースプロバイダー名", + "provider-placeholder": "インターフェースプロバイダー名を入力してください", + "provider-type": "インターフェースプロバイダータイプ", + "provider": "インターフェースプロバイダー", + "providers": "インターフェースプロバイダー", + "pull-requests": "プルリクエスト", + "regenerate-message": "メッセージを再生成", + "relevant-code-snippets": "関連コードスニペット", + "relevant-file-paths": "関連ファイルパス", + "repository-level": "リポジトリレベル", + "rerank-probability-threshold": "再ランキング確率閾値", + "rerank-threshold-description": "閾値が低いほど、結果が含まれる可能性が高くなります。", + "rerank-threshold": "再ランキング閾値", + "reset-providers": "インターフェースプロバイダーをリセット", + "reset-to-default": "デフォルトに戻す", + "review-pull-requests": "プルリクエストをレビュー", + "save-edit": "編集を保存", + "save": "保存", + "scroll-down": "下にスクロール", + "share-gpu-resources": "アクティブなTwinnyインターフェースプロバイダー構成をインターフェースプロバイダーとして接続することで、GPUリソースを共有することもできます。すべての接続はピアツーピアで、エンドツーエンド暗号化されており安全です。", + "status": "状態", + "stop-generation": "生成を停止", + "symmetry-description": "SymmetryはピアツーピアのAI推論ネットワークで、ユーザー間の安全で直接の接続を可能にします。消費者として接続すると、Symmetryはあなたのモデル選択に基づいてインターフェースプロバイダーをマッチングします。", + "symmetry-inference-network": "Symmetry推論ネットワーク", + "template-settings-description": "チャットインターフェースで使用するテンプレートを選択してください。", + "template-settings": "テンプレート設定", + "thinking": "考える...", + "toggle-auto-scroll": "自動スクロールをオン/オフ", + "toggle-embedding-options": "埋め込みオプションをオン/オフ", + "toggle-provider-selection": "インターフェースプロバイダー選択をオン/オフ", + "type": "タイプ" +} diff --git a/src/webview/assets/locales/zh.json b/src/webview/assets/locales/zh.json new file mode 100644 index 0000000..9abbe57 --- /dev/null +++ b/src/webview/assets/locales/zh.json @@ -0,0 +1,91 @@ +{ + "accept-solution": "接受解决方案", + "api-key-placeholder": "在这里输入您的API密钥", + "api-key": "API密钥", + "api-path-placeholder": "输入主机名,例如 'localhost'", + "api-path": "API路径", + "applicable-ollama": "适用于Ollama等一些接口提供者", + "auto-connect-as-provider": "作为接口提供者自动连接", + "automatic": "自动化", + "cancel-edit": "取消编辑", + "cancel": "取消", + "chat": "聊天", + "clear-conversations": "清除对话", + "connect": "连接", + "connected": "已连接!", + "connecting": "正在连接...", + "connection-failed": "连接失败!请检查您的连接后重试。", + "consumer-connection": "用户连接", + "conversation-history": "对话历史", + "copy-code": "复制代码", + "copy-provider": "复制接口提供者", + "delete-message": "删除消息", + "delete-provider": "删除接口提供者", + "disconnect": "断开连接", + "edit-default-templates-description": "编辑在Twinny扩展中使用的默认模板。", + "edit-default-templates": "编辑默认模板", + "edit-message": "编辑消息", + "edit-provider": "编辑接口提供者", + "embed-documents": "嵌入文档", + "embedding-provider": "嵌入接口提供者", + "fim-template": "FIM模板", + "fim": "中间填充", + "hostname-placeholder": "输入主机名,例如 'localhost'", + "hostname": "主机名", + "label-placeholder": "为您的接口提供者输入一个标签。", + "label": "标签", + "loading-available-models": "正在加载可用模型...", + "max-chunk-size": "最大块大小", + "min-chunk-size": "最小块大小", + "model-name-placeholder": "输入模型名称,例如 'llama3'", + "model-name": "模型名称", + "new-conversation": "新对话", + "new-document": "新文档", + "no-connections-found": "未找到连接。请添加新连接以开始。", + "no-result": "无结果", + "nothing-to-see-here": "这里没什么可看的。", + "number-code-filepaths": "用作上下文的文件路径数量。", + "number-code-snippets": "用作上下文的代码片段数量。", + "open-diff": "打开差异比较视图", + "open-template-editor": "打开模板编辑器", + "overlap-size": "重叠大小", + "owner-repo-name": "此标签将帮助您审查您的存储库中的拉取请求,输入下面的所有者和存储库名称以开始。目前仅支持GitHub,请在设置标签中设置您的GitHub令牌以开始。", + "path": "路径", + "placeholder": "Twinny有什么能怎么帮助您的吗?", + "port-placeholder": "输入端口号,例如 '11434'", + "port": "端口", + "protocol": "协议", + "provider-connection": "接口提供者连接", + "provider-name": "接口提供者名称", + "provider-placeholder": "输入接口提供者名称", + "provider-type": "接口提供者类型", + "provider": "接口提供者", + "providers": "接口提供者们", + "pull-requests": "拉取请求", + "regenerate-message": "重新生成消息", + "relevant-code-snippets": "相关代码片段", + "relevant-file-paths": "相关文件路径", + "repository-level": "存储库级别", + "rerank-probability-threshold": "重新排名概率阈值", + "rerank-threshold-description": "阈值越低,结果越有可能被包含。", + "rerank-threshold": "重新排名阈值", + "reset-providers": "重置接口提供者", + "reset-to-default": "重置默认值", + "review-pull-requests": "审查拉取请求", + "save-edit": "保存编辑", + "save": "保存", + "scroll-down": "滚动到底部", + "share-gpu-resources": "您也可以通过使用您的活跃Twinny接口提供者配置作为接口提供者连接到Symmetry来共享您的GPU资源。所有连接都是点对点的,端到端加密且安全的。", + "status": "状态", + "stop-generation": "停止生成", + "symmetry-description": "Symmetry是一个点对点AI推理网络,允许用户之间进行安全、直接的连接。当您作为消费者连接时,Symmetry会根据您的模型选择为您匹配接口提供者。", + "symmetry-inference-network": "Symmetry推理网络", + "template-settings-description": "选择您想要在聊天界面中使用的模板。", + "template-settings": "模板设置", + "thinking": "正在思考...", + "toggle-auto-scroll": "开启/关闭自动滚动", + "toggle-embedding-options": "开启/关闭嵌入选项", + "toggle-provider-selection": "开启/关闭接口提供者选择", + "type": "类型" +} + \ No newline at end of file