opencode-agent[bot] před 1 týdnem
rodič
revize
94cb6390aa

+ 28 - 19
packages/app/src/i18n/ar.ts

@@ -110,25 +110,30 @@ export const dict = {
   "provider.connect.status.inProgress": "جارٍ التفويض...",
   "provider.connect.status.inProgress": "جارٍ التفويض...",
   "provider.connect.status.waiting": "في انتظار التفويض...",
   "provider.connect.status.waiting": "في انتظار التفويض...",
   "provider.connect.status.failed": "فشل التفويض: {{error}}",
   "provider.connect.status.failed": "فشل التفويض: {{error}}",
-  "provider.connect.apiKey.description": "أدخل مفتاح واجهة برمجة تطبيقات {{provider}} الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
+  "provider.connect.apiKey.description":
+    "أدخل مفتاح واجهة برمجة تطبيقات {{provider}} الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
   "provider.connect.apiKey.label": "مفتاح واجهة برمجة تطبيقات {{provider}}",
   "provider.connect.apiKey.label": "مفتاح واجهة برمجة تطبيقات {{provider}}",
   "provider.connect.apiKey.placeholder": "مفتاح API",
   "provider.connect.apiKey.placeholder": "مفتاح API",
   "provider.connect.apiKey.required": "مفتاح API مطلوب",
   "provider.connect.apiKey.required": "مفتاح API مطلوب",
-  "provider.connect.opencodeZen.line1": "يمنحك OpenCode Zen الوصول إلى مجموعة مختارة من النماذج الموثوقة والمحسنة لوكلاء البرمجة.",
-  "provider.connect.opencodeZen.line2": "باستخدام مفتاح API واحد، ستحصل على إمكانية الوصول إلى نماذج مثل Claude و GPT و Gemini و GLM والمزيد.",
+  "provider.connect.opencodeZen.line1":
+    "يمنحك OpenCode Zen الوصول إلى مجموعة مختارة من النماذج الموثوقة والمحسنة لوكلاء البرمجة.",
+  "provider.connect.opencodeZen.line2":
+    "باستخدام مفتاح API واحد، ستحصل على إمكانية الوصول إلى نماذج مثل Claude و GPT و Gemini و GLM والمزيد.",
   "provider.connect.opencodeZen.visit.prefix": "قم بزيارة ",
   "provider.connect.opencodeZen.visit.prefix": "قم بزيارة ",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.suffix": " للحصول على مفتاح API الخاص بك.",
   "provider.connect.opencodeZen.visit.suffix": " للحصول على مفتاح API الخاص بك.",
   "provider.connect.oauth.code.visit.prefix": "قم بزيارة ",
   "provider.connect.oauth.code.visit.prefix": "قم بزيارة ",
   "provider.connect.oauth.code.visit.link": "هذا الرابط",
   "provider.connect.oauth.code.visit.link": "هذا الرابط",
-  "provider.connect.oauth.code.visit.suffix": " للحصول على رمز التفويض الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
+  "provider.connect.oauth.code.visit.suffix":
+    " للحصول على رمز التفويض الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
   "provider.connect.oauth.code.label": "رمز تفويض {{method}}",
   "provider.connect.oauth.code.label": "رمز تفويض {{method}}",
   "provider.connect.oauth.code.placeholder": "رمز التفويض",
   "provider.connect.oauth.code.placeholder": "رمز التفويض",
   "provider.connect.oauth.code.required": "رمز التفويض مطلوب",
   "provider.connect.oauth.code.required": "رمز التفويض مطلوب",
   "provider.connect.oauth.code.invalid": "رمز التفويض غير صالح",
   "provider.connect.oauth.code.invalid": "رمز التفويض غير صالح",
   "provider.connect.oauth.auto.visit.prefix": "قم بزيارة ",
   "provider.connect.oauth.auto.visit.prefix": "قم بزيارة ",
   "provider.connect.oauth.auto.visit.link": "هذا الرابط",
   "provider.connect.oauth.auto.visit.link": "هذا الرابط",
-  "provider.connect.oauth.auto.visit.suffix": " وأدخل الرمز أدناه لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
+  "provider.connect.oauth.auto.visit.suffix":
+    " وأدخل الرمز أدناه لتوصيل حسابك واستخدام نماذج {{provider}} في OpenCode.",
   "provider.connect.oauth.auto.confirmationCode": "رمز التأكيد",
   "provider.connect.oauth.auto.confirmationCode": "رمز التأكيد",
   "provider.connect.toast.connected.title": "تم توصيل {{provider}}",
   "provider.connect.toast.connected.title": "تم توصيل {{provider}}",
   "provider.connect.toast.connected.description": "نماذج {{provider}} متاحة الآن للاستخدام.",
   "provider.connect.toast.connected.description": "نماذج {{provider}} متاحة الآن للاستخدام.",
@@ -200,7 +205,7 @@ export const dict = {
   "common.default": "افتراضي",
   "common.default": "افتراضي",
   "common.attachment": "مرفق",
   "common.attachment": "مرفق",
   "prompt.placeholder.shell": "أدخل أمر shell...",
   "prompt.placeholder.shell": "أدخل أمر shell...",
-  "prompt.placeholder.normal": "اسأل أي شيء... \"{{example}}\"",
+  "prompt.placeholder.normal": 'اسأل أي شيء... "{{example}}"',
   "prompt.placeholder.summarizeComments": "لخّص التعليقات…",
   "prompt.placeholder.summarizeComments": "لخّص التعليقات…",
   "prompt.placeholder.summarizeComment": "لخّص التعليق…",
   "prompt.placeholder.summarizeComment": "لخّص التعليق…",
   "prompt.mode.shell": "Shell",
   "prompt.mode.shell": "Shell",
@@ -278,7 +283,8 @@ export const dict = {
   "dialog.server.add.checking": "جارٍ التحقق...",
   "dialog.server.add.checking": "جارٍ التحقق...",
   "dialog.server.add.button": "إضافة خادم",
   "dialog.server.add.button": "إضافة خادم",
   "dialog.server.default.title": "الخادم الافتراضي",
   "dialog.server.default.title": "الخادم الافتراضي",
-  "dialog.server.default.description": "الاتصال بهذا الخادم عند بدء تشغيل التطبيق بدلاً من بدء خادم محلي. يتطلب إعادة التشغيل.",
+  "dialog.server.default.description":
+    "الاتصال بهذا الخادم عند بدء تشغيل التطبيق بدلاً من بدء خادم محلي. يتطلب إعادة التشغيل.",
   "dialog.server.default.none": "لم يتم تحديد خادم",
   "dialog.server.default.none": "لم يتم تحديد خادم",
   "dialog.server.default.set": "تعيين الخادم الحالي كافتراضي",
   "dialog.server.default.set": "تعيين الخادم الحالي كافتراضي",
   "dialog.server.default.clear": "مسح",
   "dialog.server.default.clear": "مسح",
@@ -301,7 +307,7 @@ export const dict = {
   "dialog.project.edit.worktree.startup.description": "يتم تشغيله بعد إنشاء مساحة عمل جديدة (شجرة عمل).",
   "dialog.project.edit.worktree.startup.description": "يتم تشغيله بعد إنشاء مساحة عمل جديدة (شجرة عمل).",
   "dialog.project.edit.worktree.startup.placeholder": "مثال: bun install",
   "dialog.project.edit.worktree.startup.placeholder": "مثال: bun install",
   "context.breakdown.title": "تفصيل السياق",
   "context.breakdown.title": "تفصيل السياق",
-  "context.breakdown.note": "تفصيل تقريبي لرموز الإدخال. يشمل \"أخرى\" تعريفات الأدوات والنفقات العامة.",
+  "context.breakdown.note": 'تفصيل تقريبي لرموز الإدخال. يشمل "أخرى" تعريفات الأدوات والنفقات العامة.',
   "context.breakdown.system": "النظام",
   "context.breakdown.system": "النظام",
   "context.breakdown.user": "المستخدم",
   "context.breakdown.user": "المستخدم",
   "context.breakdown.assistant": "المساعد",
   "context.breakdown.assistant": "المساعد",
@@ -388,7 +394,8 @@ export const dict = {
   "error.page.report.prefix": "يرجى الإبلاغ عن هذا الخطأ لفريق OpenCode",
   "error.page.report.prefix": "يرجى الإبلاغ عن هذا الخطأ لفريق OpenCode",
   "error.page.report.discord": "على Discord",
   "error.page.report.discord": "على Discord",
   "error.page.version": "الإصدار: {{version}}",
   "error.page.version": "الإصدار: {{version}}",
-  "error.dev.rootNotFound": "لم يتم العثور على العنصر الجذري. هل نسيت إضافته إلى index.html؟ أو ربما تمت كتابة سمة id بشكل خاطئ؟",
+  "error.dev.rootNotFound":
+    "لم يتم العثور على العنصر الجذري. هل نسيت إضافته إلى index.html؟ أو ربما تمت كتابة سمة id بشكل خاطئ؟",
   "error.globalSync.connectFailed": "تعذر الاتصال بالخادم. هل هناك خادم يعمل في `{{url}}`؟",
   "error.globalSync.connectFailed": "تعذر الاتصال بالخادم. هل هناك خادم يعمل في `{{url}}`؟",
   "directory.error.invalidUrl": "دليل غير صالح في عنوان URL.",
   "directory.error.invalidUrl": "دليل غير صالح في عنوان URL.",
   "error.chain.unknown": "خطأ غير معروف",
   "error.chain.unknown": "خطأ غير معروف",
@@ -400,12 +407,13 @@ export const dict = {
   "error.chain.didYouMean": "هل كنت تعني: {{suggestions}}",
   "error.chain.didYouMean": "هل كنت تعني: {{suggestions}}",
   "error.chain.modelNotFound": "النموذج غير موجود: {{provider}}/{{model}}",
   "error.chain.modelNotFound": "النموذج غير موجود: {{provider}}/{{model}}",
   "error.chain.checkConfig": "تحقق من أسماء الموفر/النموذج في التكوين (opencode.json)",
   "error.chain.checkConfig": "تحقق من أسماء الموفر/النموذج في التكوين (opencode.json)",
-  "error.chain.mcpFailed": "فشل خادم MCP \"{{name}}\". لاحظ أن OpenCode لا يدعم مصادقة MCP بعد.",
+  "error.chain.mcpFailed": 'فشل خادم MCP "{{name}}". لاحظ أن OpenCode لا يدعم مصادقة MCP بعد.',
   "error.chain.providerAuthFailed": "فشلت مصادقة الموفر ({{provider}}): {{message}}",
   "error.chain.providerAuthFailed": "فشلت مصادقة الموفر ({{provider}}): {{message}}",
-  "error.chain.providerInitFailed": "فشل تهيئة الموفر \"{{provider}}\". تحقق من بيانات الاعتماد والتكوين.",
+  "error.chain.providerInitFailed": 'فشل تهيئة الموفر "{{provider}}". تحقق من بيانات الاعتماد والتكوين.',
   "error.chain.configJsonInvalid": "ملف التكوين في {{path}} ليس JSON(C) صالحًا",
   "error.chain.configJsonInvalid": "ملف التكوين في {{path}} ليس JSON(C) صالحًا",
   "error.chain.configJsonInvalidWithMessage": "ملف التكوين في {{path}} ليس JSON(C) صالحًا: {{message}}",
   "error.chain.configJsonInvalidWithMessage": "ملف التكوين في {{path}} ليس JSON(C) صالحًا: {{message}}",
-  "error.chain.configDirectoryTypo": "الدليل \"{{dir}}\" في {{path}} غير صالح. أعد تسمية الدليل إلى \"{{suggestion}}\" أو قم بإزالته. هذا خطأ مطبعي شائع.",
+  "error.chain.configDirectoryTypo":
+    'الدليل "{{dir}}" في {{path}} غير صالح. أعد تسمية الدليل إلى "{{suggestion}}" أو قم بإزالته. هذا خطأ مطبعي شائع.',
   "error.chain.configFrontmatterError": "فشل تحليل frontmatter في {{path}}:\n{{message}}",
   "error.chain.configFrontmatterError": "فشل تحليل frontmatter في {{path}}:\n{{message}}",
   "error.chain.configInvalid": "ملف التكوين في {{path}} غير صالح",
   "error.chain.configInvalid": "ملف التكوين في {{path}} غير صالح",
   "error.chain.configInvalidWithMessage": "ملف التكوين في {{path}} غير صالح: {{message}}",
   "error.chain.configInvalidWithMessage": "ملف التكوين في {{path}} غير صالح: {{message}}",
@@ -524,9 +532,10 @@ export const dict = {
   "settings.general.row.font.description": "تخصيص الخط الأحادي المستخدم في كتل التعليمات البرمجية",
   "settings.general.row.font.description": "تخصيص الخط الأحادي المستخدم في كتل التعليمات البرمجية",
   "settings.general.row.wayland.title": "استخدام Wayland الأصلي",
   "settings.general.row.wayland.title": "استخدام Wayland الأصلي",
   "settings.general.row.wayland.description": "تعطيل التراجع إلى X11 على Wayland. يتطلب إعادة التشغيل.",
   "settings.general.row.wayland.description": "تعطيل التراجع إلى X11 على Wayland. يتطلب إعادة التشغيل.",
-  "settings.general.row.wayland.tooltip": "على Linux مع شاشات بمعدلات تحديث مختلطة، يمكن أن يكون Wayland الأصلي أكثر استقرارًا.",
+  "settings.general.row.wayland.tooltip":
+    "على Linux مع شاشات بمعدلات تحديث مختلطة، يمكن أن يكون Wayland الأصلي أكثر استقرارًا.",
   "settings.general.row.releaseNotes.title": "ملاحظات الإصدار",
   "settings.general.row.releaseNotes.title": "ملاحظات الإصدار",
-  "settings.general.row.releaseNotes.description": "عرض نوافذ \"ما الجديد\" المنبثقة بعد التحديثات",
+  "settings.general.row.releaseNotes.description": 'عرض نوافذ "ما الجديد" المنبثقة بعد التحديثات',
   "settings.updates.row.startup.title": "التحقق من التحديثات عند بدء التشغيل",
   "settings.updates.row.startup.title": "التحقق من التحديثات عند بدء التشغيل",
   "settings.updates.row.startup.description": "التحقق تلقائيًا من التحديثات عند تشغيل OpenCode",
   "settings.updates.row.startup.description": "التحقق تلقائيًا من التحديثات عند تشغيل OpenCode",
   "settings.updates.row.check.title": "التحقق من التحديثات",
   "settings.updates.row.check.title": "التحقق من التحديثات",
@@ -647,7 +656,8 @@ export const dict = {
   "settings.permissions.tool.read.title": "قراءة",
   "settings.permissions.tool.read.title": "قراءة",
   "settings.permissions.tool.read.description": "قراءة ملف (يطابق مسار الملف)",
   "settings.permissions.tool.read.description": "قراءة ملف (يطابق مسار الملف)",
   "settings.permissions.tool.edit.title": "تحرير",
   "settings.permissions.tool.edit.title": "تحرير",
-  "settings.permissions.tool.edit.description": "تعديل الملفات، بما في ذلك التحرير والكتابة والتصحيحات والتحرير المتعدد",
+  "settings.permissions.tool.edit.description":
+    "تعديل الملفات، بما في ذلك التحرير والكتابة والتصحيحات والتحرير المتعدد",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.description": "مطابقة الملفات باستخدام أنماط glob",
   "settings.permissions.tool.glob.description": "مطابقة الملفات باستخدام أنماط glob",
   "settings.permissions.tool.grep.title": "Grep",
   "settings.permissions.tool.grep.title": "Grep",
@@ -678,7 +688,7 @@ export const dict = {
   "settings.permissions.tool.doom_loop.description": "اكتشاف استدعاءات الأدوات المتكررة بمدخلات متطابقة",
   "settings.permissions.tool.doom_loop.description": "اكتشاف استدعاءات الأدوات المتكررة بمدخلات متطابقة",
   "session.delete.failed.title": "فشل حذف الجلسة",
   "session.delete.failed.title": "فشل حذف الجلسة",
   "session.delete.title": "حذف الجلسة",
   "session.delete.title": "حذف الجلسة",
-  "session.delete.confirm": "حذف الجلسة \"{{name}}\"؟",
+  "session.delete.confirm": 'حذف الجلسة "{{name}}"؟',
   "session.delete.button": "حذف الجلسة",
   "session.delete.button": "حذف الجلسة",
   "workspace.new": "مساحة عمل جديدة",
   "workspace.new": "مساحة عمل جديدة",
   "workspace.type.local": "محلي",
   "workspace.type.local": "محلي",
@@ -696,14 +706,13 @@ export const dict = {
   "workspace.status.clean": "لم يتم اكتشاف تغييرات غير مدمجة.",
   "workspace.status.clean": "لم يتم اكتشاف تغييرات غير مدمجة.",
   "workspace.status.dirty": "تم اكتشاف تغييرات غير مدمجة في مساحة العمل هذه.",
   "workspace.status.dirty": "تم اكتشاف تغييرات غير مدمجة في مساحة العمل هذه.",
   "workspace.delete.title": "حذف مساحة العمل",
   "workspace.delete.title": "حذف مساحة العمل",
-  "workspace.delete.confirm": "حذف مساحة العمل \"{{name}}\"؟",
+  "workspace.delete.confirm": 'حذف مساحة العمل "{{name}}"؟',
   "workspace.delete.button": "حذف مساحة العمل",
   "workspace.delete.button": "حذف مساحة العمل",
   "workspace.reset.title": "إعادة تعيين مساحة العمل",
   "workspace.reset.title": "إعادة تعيين مساحة العمل",
-  "workspace.reset.confirm": "إعادة تعيين مساحة العمل \"{{name}}\"؟",
+  "workspace.reset.confirm": 'إعادة تعيين مساحة العمل "{{name}}"؟',
   "workspace.reset.button": "إعادة تعيين مساحة العمل",
   "workspace.reset.button": "إعادة تعيين مساحة العمل",
   "workspace.reset.archived.none": "لن تتم أرشفة أي جلسات نشطة.",
   "workspace.reset.archived.none": "لن تتم أرشفة أي جلسات نشطة.",
   "workspace.reset.archived.one": "ستتم أرشفة جلسة واحدة.",
   "workspace.reset.archived.one": "ستتم أرشفة جلسة واحدة.",
   "workspace.reset.archived.many": "ستتم أرشفة {{count}} جلسات.",
   "workspace.reset.archived.many": "ستتم أرشفة {{count}} جلسات.",
   "workspace.reset.note": "سيؤدي هذا إلى إعادة تعيين مساحة العمل لتتطابق مع الفرع الافتراضي.",
   "workspace.reset.note": "سيؤدي هذا إلى إعادة تعيين مساحة العمل لتتطابق مع الفرع الافتراضي.",
 }
 }
-

+ 42 - 25
packages/app/src/i18n/br.ts

@@ -110,25 +110,30 @@ export const dict = {
   "provider.connect.status.inProgress": "Autorização em andamento...",
   "provider.connect.status.inProgress": "Autorização em andamento...",
   "provider.connect.status.waiting": "Aguardando autorização...",
   "provider.connect.status.waiting": "Aguardando autorização...",
   "provider.connect.status.failed": "Autorização falhou: {{error}}",
   "provider.connect.status.failed": "Autorização falhou: {{error}}",
-  "provider.connect.apiKey.description": "Digite sua chave de API do {{provider}} para conectar sua conta e usar modelos do {{provider}} no OpenCode.",
+  "provider.connect.apiKey.description":
+    "Digite sua chave de API do {{provider}} para conectar sua conta e usar modelos do {{provider}} no OpenCode.",
   "provider.connect.apiKey.label": "Chave de API do {{provider}}",
   "provider.connect.apiKey.label": "Chave de API do {{provider}}",
   "provider.connect.apiKey.placeholder": "Chave de API",
   "provider.connect.apiKey.placeholder": "Chave de API",
   "provider.connect.apiKey.required": "A chave de API é obrigatória",
   "provider.connect.apiKey.required": "A chave de API é obrigatória",
-  "provider.connect.opencodeZen.line1": "OpenCode Zen oferece acesso a um conjunto selecionado de modelos confiáveis otimizados para agentes de código.",
-  "provider.connect.opencodeZen.line2": "Com uma única chave de API você terá acesso a modelos como Claude, GPT, Gemini, GLM e mais.",
+  "provider.connect.opencodeZen.line1":
+    "OpenCode Zen oferece acesso a um conjunto selecionado de modelos confiáveis otimizados para agentes de código.",
+  "provider.connect.opencodeZen.line2":
+    "Com uma única chave de API você terá acesso a modelos como Claude, GPT, Gemini, GLM e mais.",
   "provider.connect.opencodeZen.visit.prefix": "Visite ",
   "provider.connect.opencodeZen.visit.prefix": "Visite ",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.suffix": " para obter sua chave de API.",
   "provider.connect.opencodeZen.visit.suffix": " para obter sua chave de API.",
   "provider.connect.oauth.code.visit.prefix": "Visite ",
   "provider.connect.oauth.code.visit.prefix": "Visite ",
   "provider.connect.oauth.code.visit.link": "este link",
   "provider.connect.oauth.code.visit.link": "este link",
-  "provider.connect.oauth.code.visit.suffix": " para obter seu código de autorização e conectar sua conta para usar modelos do {{provider}} no OpenCode.",
+  "provider.connect.oauth.code.visit.suffix":
+    " para obter seu código de autorização e conectar sua conta para usar modelos do {{provider}} no OpenCode.",
   "provider.connect.oauth.code.label": "Código de autorização {{method}}",
   "provider.connect.oauth.code.label": "Código de autorização {{method}}",
   "provider.connect.oauth.code.placeholder": "Código de autorização",
   "provider.connect.oauth.code.placeholder": "Código de autorização",
   "provider.connect.oauth.code.required": "O código de autorização é obrigatório",
   "provider.connect.oauth.code.required": "O código de autorização é obrigatório",
   "provider.connect.oauth.code.invalid": "Código de autorização inválido",
   "provider.connect.oauth.code.invalid": "Código de autorização inválido",
   "provider.connect.oauth.auto.visit.prefix": "Visite ",
   "provider.connect.oauth.auto.visit.prefix": "Visite ",
   "provider.connect.oauth.auto.visit.link": "este link",
   "provider.connect.oauth.auto.visit.link": "este link",
-  "provider.connect.oauth.auto.visit.suffix": " e digite o código abaixo para conectar sua conta e usar modelos do {{provider}} no OpenCode.",
+  "provider.connect.oauth.auto.visit.suffix":
+    " e digite o código abaixo para conectar sua conta e usar modelos do {{provider}} no OpenCode.",
   "provider.connect.oauth.auto.confirmationCode": "Código de confirmação",
   "provider.connect.oauth.auto.confirmationCode": "Código de confirmação",
   "provider.connect.toast.connected.title": "{{provider}} conectado",
   "provider.connect.toast.connected.title": "{{provider}} conectado",
   "provider.connect.toast.connected.description": "Modelos do {{provider}} agora estão disponíveis para uso.",
   "provider.connect.toast.connected.description": "Modelos do {{provider}} agora estão disponíveis para uso.",
@@ -200,7 +205,7 @@ export const dict = {
   "common.default": "Padrão",
   "common.default": "Padrão",
   "common.attachment": "anexo",
   "common.attachment": "anexo",
   "prompt.placeholder.shell": "Digite comando do shell...",
   "prompt.placeholder.shell": "Digite comando do shell...",
-  "prompt.placeholder.normal": "Pergunte qualquer coisa... \"{{example}}\"",
+  "prompt.placeholder.normal": 'Pergunte qualquer coisa... "{{example}}"',
   "prompt.placeholder.summarizeComments": "Resumir comentários…",
   "prompt.placeholder.summarizeComments": "Resumir comentários…",
   "prompt.placeholder.summarizeComment": "Resumir comentário…",
   "prompt.placeholder.summarizeComment": "Resumir comentário…",
   "prompt.mode.shell": "Shell",
   "prompt.mode.shell": "Shell",
@@ -278,7 +283,8 @@ export const dict = {
   "dialog.server.add.checking": "Verificando...",
   "dialog.server.add.checking": "Verificando...",
   "dialog.server.add.button": "Adicionar",
   "dialog.server.add.button": "Adicionar",
   "dialog.server.default.title": "Servidor padrão",
   "dialog.server.default.title": "Servidor padrão",
-  "dialog.server.default.description": "Conectar a este servidor na inicialização do aplicativo ao invés de iniciar um servidor local. Requer reinicialização.",
+  "dialog.server.default.description":
+    "Conectar a este servidor na inicialização do aplicativo ao invés de iniciar um servidor local. Requer reinicialização.",
   "dialog.server.default.none": "Nenhum servidor selecionado",
   "dialog.server.default.none": "Nenhum servidor selecionado",
   "dialog.server.default.set": "Definir servidor atual como padrão",
   "dialog.server.default.set": "Definir servidor atual como padrão",
   "dialog.server.default.clear": "Limpar",
   "dialog.server.default.clear": "Limpar",
@@ -301,7 +307,8 @@ export const dict = {
   "dialog.project.edit.worktree.startup.description": "Executa após criar um novo espaço de trabalho (worktree).",
   "dialog.project.edit.worktree.startup.description": "Executa após criar um novo espaço de trabalho (worktree).",
   "dialog.project.edit.worktree.startup.placeholder": "ex: bun install",
   "dialog.project.edit.worktree.startup.placeholder": "ex: bun install",
   "context.breakdown.title": "Detalhamento do Contexto",
   "context.breakdown.title": "Detalhamento do Contexto",
-  "context.breakdown.note": "Detalhamento aproximado dos tokens de entrada. \"Outros\" inclui definições de ferramentas e overhead.",
+  "context.breakdown.note":
+    'Detalhamento aproximado dos tokens de entrada. "Outros" inclui definições de ferramentas e overhead.',
   "context.breakdown.system": "Sistema",
   "context.breakdown.system": "Sistema",
   "context.breakdown.user": "Usuário",
   "context.breakdown.user": "Usuário",
   "context.breakdown.assistant": "Assistente",
   "context.breakdown.assistant": "Assistente",
@@ -388,7 +395,8 @@ export const dict = {
   "error.page.report.prefix": "Por favor, reporte este erro para a equipe do OpenCode",
   "error.page.report.prefix": "Por favor, reporte este erro para a equipe do OpenCode",
   "error.page.report.discord": "no Discord",
   "error.page.report.discord": "no Discord",
   "error.page.version": "Versão: {{version}}",
   "error.page.version": "Versão: {{version}}",
-  "error.dev.rootNotFound": "Elemento raiz não encontrado. Você esqueceu de adicioná-lo ao seu index.html? Ou talvez o atributo id foi escrito incorretamente?",
+  "error.dev.rootNotFound":
+    "Elemento raiz não encontrado. Você esqueceu de adicioná-lo ao seu index.html? Ou talvez o atributo id foi escrito incorretamente?",
   "error.globalSync.connectFailed": "Não foi possível conectar ao servidor. Há um servidor executando em `{{url}}`?",
   "error.globalSync.connectFailed": "Não foi possível conectar ao servidor. Há um servidor executando em `{{url}}`?",
   "directory.error.invalidUrl": "Diretório inválido na URL.",
   "directory.error.invalidUrl": "Diretório inválido na URL.",
   "error.chain.unknown": "Erro desconhecido",
   "error.chain.unknown": "Erro desconhecido",
@@ -400,12 +408,15 @@ export const dict = {
   "error.chain.didYouMean": "Você quis dizer: {{suggestions}}",
   "error.chain.didYouMean": "Você quis dizer: {{suggestions}}",
   "error.chain.modelNotFound": "Modelo não encontrado: {{provider}}/{{model}}",
   "error.chain.modelNotFound": "Modelo não encontrado: {{provider}}/{{model}}",
   "error.chain.checkConfig": "Verifique os nomes de provedor/modelo na sua configuração (opencode.json)",
   "error.chain.checkConfig": "Verifique os nomes de provedor/modelo na sua configuração (opencode.json)",
-  "error.chain.mcpFailed": "Servidor MCP \"{{name}}\" falhou. Nota: OpenCode ainda não suporta autenticação MCP.",
+  "error.chain.mcpFailed": 'Servidor MCP "{{name}}" falhou. Nota: OpenCode ainda não suporta autenticação MCP.',
   "error.chain.providerAuthFailed": "Autenticação do provedor falhou ({{provider}}): {{message}}",
   "error.chain.providerAuthFailed": "Autenticação do provedor falhou ({{provider}}): {{message}}",
-  "error.chain.providerInitFailed": "Falha ao inicializar provedor \"{{provider}}\". Verifique credenciais e configuração.",
+  "error.chain.providerInitFailed":
+    'Falha ao inicializar provedor "{{provider}}". Verifique credenciais e configuração.',
   "error.chain.configJsonInvalid": "Arquivo de configuração em {{path}} não é um JSON(C) válido",
   "error.chain.configJsonInvalid": "Arquivo de configuração em {{path}} não é um JSON(C) válido",
-  "error.chain.configJsonInvalidWithMessage": "Arquivo de configuração em {{path}} não é um JSON(C) válido: {{message}}",
-  "error.chain.configDirectoryTypo": "Diretório \"{{dir}}\" em {{path}} não é válido. Renomeie o diretório para \"{{suggestion}}\" ou remova-o. Este é um erro de digitação comum.",
+  "error.chain.configJsonInvalidWithMessage":
+    "Arquivo de configuração em {{path}} não é um JSON(C) válido: {{message}}",
+  "error.chain.configDirectoryTypo":
+    'Diretório "{{dir}}" em {{path}} não é válido. Renomeie o diretório para "{{suggestion}}" ou remova-o. Este é um erro de digitação comum.',
   "error.chain.configFrontmatterError": "Falha ao analisar frontmatter em {{path}}:\n{{message}}",
   "error.chain.configFrontmatterError": "Falha ao analisar frontmatter em {{path}}:\n{{message}}",
   "error.chain.configInvalid": "Arquivo de configuração em {{path}} é inválido",
   "error.chain.configInvalid": "Arquivo de configuração em {{path}} é inválido",
   "error.chain.configInvalidWithMessage": "Arquivo de configuração em {{path}} é inválido: {{message}}",
   "error.chain.configInvalidWithMessage": "Arquivo de configuração em {{path}} é inválido: {{message}}",
@@ -458,8 +469,10 @@ export const dict = {
   "status.popover.tab.plugins": "Plugins",
   "status.popover.tab.plugins": "Plugins",
   "status.popover.action.manageServers": "Gerenciar servidores",
   "status.popover.action.manageServers": "Gerenciar servidores",
   "session.share.popover.title": "Publicar na web",
   "session.share.popover.title": "Publicar na web",
-  "session.share.popover.description.shared": "Esta sessão é pública na web. Está acessível para qualquer pessoa com o link.",
-  "session.share.popover.description.unshared": "Compartilhar sessão publicamente na web. Estará acessível para qualquer pessoa com o link.",
+  "session.share.popover.description.shared":
+    "Esta sessão é pública na web. Está acessível para qualquer pessoa com o link.",
+  "session.share.popover.description.unshared":
+    "Compartilhar sessão publicamente na web. Estará acessível para qualquer pessoa com o link.",
   "session.share.action.share": "Compartilhar",
   "session.share.action.share": "Compartilhar",
   "session.share.action.publish": "Publicar",
   "session.share.action.publish": "Publicar",
   "session.share.action.publishing": "Publicando...",
   "session.share.action.publishing": "Publicando...",
@@ -476,7 +489,8 @@ export const dict = {
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.close": "Fechar terminal",
   "terminal.close": "Fechar terminal",
   "terminal.connectionLost.title": "Conexão Perdida",
   "terminal.connectionLost.title": "Conexão Perdida",
-  "terminal.connectionLost.description": "A conexão do terminal foi interrompida. Isso pode acontecer quando o servidor reinicia.",
+  "terminal.connectionLost.description":
+    "A conexão do terminal foi interrompida. Isso pode acontecer quando o servidor reinicia.",
   "common.closeTab": "Fechar aba",
   "common.closeTab": "Fechar aba",
   "common.dismiss": "Descartar",
   "common.dismiss": "Descartar",
   "common.requestFailed": "Requisição falhou",
   "common.requestFailed": "Requisição falhou",
@@ -524,9 +538,10 @@ export const dict = {
   "settings.general.row.font.description": "Personalize a fonte monoespaçada usada em blocos de código",
   "settings.general.row.font.description": "Personalize a fonte monoespaçada usada em blocos de código",
   "settings.general.row.wayland.title": "Usar Wayland nativo",
   "settings.general.row.wayland.title": "Usar Wayland nativo",
   "settings.general.row.wayland.description": "Desabilitar fallback X11 no Wayland. Requer reinicialização.",
   "settings.general.row.wayland.description": "Desabilitar fallback X11 no Wayland. Requer reinicialização.",
-  "settings.general.row.wayland.tooltip": "No Linux com monitores de taxas de atualização mistas, Wayland nativo pode ser mais estável.",
+  "settings.general.row.wayland.tooltip":
+    "No Linux com monitores de taxas de atualização mistas, Wayland nativo pode ser mais estável.",
   "settings.general.row.releaseNotes.title": "Notas da versão",
   "settings.general.row.releaseNotes.title": "Notas da versão",
-  "settings.general.row.releaseNotes.description": "Mostrar pop-ups de \"Novidades\" após atualizações",
+  "settings.general.row.releaseNotes.description": 'Mostrar pop-ups de "Novidades" após atualizações',
   "settings.updates.row.startup.title": "Verificar atualizações ao iniciar",
   "settings.updates.row.startup.title": "Verificar atualizações ao iniciar",
   "settings.updates.row.startup.description": "Verificar atualizações automaticamente quando o OpenCode iniciar",
   "settings.updates.row.startup.description": "Verificar atualizações automaticamente quando o OpenCode iniciar",
   "settings.updates.row.check.title": "Verificar atualizações",
   "settings.updates.row.check.title": "Verificar atualizações",
@@ -593,9 +608,11 @@ export const dict = {
   "sound.option.yup05": "Sim 05",
   "sound.option.yup05": "Sim 05",
   "sound.option.yup06": "Sim 06",
   "sound.option.yup06": "Sim 06",
   "settings.general.notifications.agent.title": "Agente",
   "settings.general.notifications.agent.title": "Agente",
-  "settings.general.notifications.agent.description": "Mostrar notificação do sistema quando o agente estiver completo ou precisar de atenção",
+  "settings.general.notifications.agent.description":
+    "Mostrar notificação do sistema quando o agente estiver completo ou precisar de atenção",
   "settings.general.notifications.permissions.title": "Permissões",
   "settings.general.notifications.permissions.title": "Permissões",
-  "settings.general.notifications.permissions.description": "Mostrar notificação do sistema quando uma permissão for necessária",
+  "settings.general.notifications.permissions.description":
+    "Mostrar notificação do sistema quando uma permissão for necessária",
   "settings.general.notifications.errors.title": "Erros",
   "settings.general.notifications.errors.title": "Erros",
   "settings.general.notifications.errors.description": "Mostrar notificação do sistema quando ocorrer um erro",
   "settings.general.notifications.errors.description": "Mostrar notificação do sistema quando ocorrer um erro",
   "settings.general.sounds.agent.title": "Agente",
   "settings.general.sounds.agent.title": "Agente",
@@ -647,7 +664,8 @@ export const dict = {
   "settings.permissions.tool.read.title": "Ler",
   "settings.permissions.tool.read.title": "Ler",
   "settings.permissions.tool.read.description": "Ler um arquivo (corresponde ao caminho do arquivo)",
   "settings.permissions.tool.read.description": "Ler um arquivo (corresponde ao caminho do arquivo)",
   "settings.permissions.tool.edit.title": "Editar",
   "settings.permissions.tool.edit.title": "Editar",
-  "settings.permissions.tool.edit.description": "Modificar arquivos, incluindo edições, escritas, patches e multi-edições",
+  "settings.permissions.tool.edit.description":
+    "Modificar arquivos, incluindo edições, escritas, patches e multi-edições",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.description": "Corresponder arquivos usando padrões glob",
   "settings.permissions.tool.glob.description": "Corresponder arquivos usando padrões glob",
   "settings.permissions.tool.grep.title": "Grep",
   "settings.permissions.tool.grep.title": "Grep",
@@ -678,7 +696,7 @@ export const dict = {
   "settings.permissions.tool.doom_loop.description": "Detectar chamadas de ferramentas repetidas com entrada idêntica",
   "settings.permissions.tool.doom_loop.description": "Detectar chamadas de ferramentas repetidas com entrada idêntica",
   "session.delete.failed.title": "Falha ao excluir sessão",
   "session.delete.failed.title": "Falha ao excluir sessão",
   "session.delete.title": "Excluir sessão",
   "session.delete.title": "Excluir sessão",
-  "session.delete.confirm": "Excluir sessão \"{{name}}\"?",
+  "session.delete.confirm": 'Excluir sessão "{{name}}"?',
   "session.delete.button": "Excluir sessão",
   "session.delete.button": "Excluir sessão",
   "workspace.new": "Novo espaço de trabalho",
   "workspace.new": "Novo espaço de trabalho",
   "workspace.type.local": "local",
   "workspace.type.local": "local",
@@ -696,14 +714,13 @@ export const dict = {
   "workspace.status.clean": "Nenhuma alteração não mesclada detectada.",
   "workspace.status.clean": "Nenhuma alteração não mesclada detectada.",
   "workspace.status.dirty": "Alterações não mescladas detectadas neste espaço de trabalho.",
   "workspace.status.dirty": "Alterações não mescladas detectadas neste espaço de trabalho.",
   "workspace.delete.title": "Excluir espaço de trabalho",
   "workspace.delete.title": "Excluir espaço de trabalho",
-  "workspace.delete.confirm": "Excluir espaço de trabalho \"{{name}}\"?",
+  "workspace.delete.confirm": 'Excluir espaço de trabalho "{{name}}"?',
   "workspace.delete.button": "Excluir espaço de trabalho",
   "workspace.delete.button": "Excluir espaço de trabalho",
   "workspace.reset.title": "Redefinir espaço de trabalho",
   "workspace.reset.title": "Redefinir espaço de trabalho",
-  "workspace.reset.confirm": "Redefinir espaço de trabalho \"{{name}}\"?",
+  "workspace.reset.confirm": 'Redefinir espaço de trabalho "{{name}}"?',
   "workspace.reset.button": "Redefinir espaço de trabalho",
   "workspace.reset.button": "Redefinir espaço de trabalho",
   "workspace.reset.archived.none": "Nenhuma sessão ativa será arquivada.",
   "workspace.reset.archived.none": "Nenhuma sessão ativa será arquivada.",
   "workspace.reset.archived.one": "1 sessão será arquivada.",
   "workspace.reset.archived.one": "1 sessão será arquivada.",
   "workspace.reset.archived.many": "{{count}} sessões serão arquivadas.",
   "workspace.reset.archived.many": "{{count}} sessões serão arquivadas.",
   "workspace.reset.note": "Isso redefinirá o espaço de trabalho para corresponder ao branch padrão.",
   "workspace.reset.note": "Isso redefinirá o espaço de trabalho para corresponder ao branch padrão.",
 }
 }
-

+ 52 - 29
packages/app/src/i18n/de.ts

@@ -114,25 +114,30 @@ export const dict = {
   "provider.connect.status.inProgress": "Autorisierung läuft...",
   "provider.connect.status.inProgress": "Autorisierung läuft...",
   "provider.connect.status.waiting": "Warten auf Autorisierung...",
   "provider.connect.status.waiting": "Warten auf Autorisierung...",
   "provider.connect.status.failed": "Autorisierung fehlgeschlagen: {{error}}",
   "provider.connect.status.failed": "Autorisierung fehlgeschlagen: {{error}}",
-  "provider.connect.apiKey.description": "Geben Sie Ihren {{provider}} API-Schlüssel ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
+  "provider.connect.apiKey.description":
+    "Geben Sie Ihren {{provider}} API-Schlüssel ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
   "provider.connect.apiKey.label": "{{provider}} API-Schlüssel",
   "provider.connect.apiKey.label": "{{provider}} API-Schlüssel",
   "provider.connect.apiKey.placeholder": "API-Schlüssel",
   "provider.connect.apiKey.placeholder": "API-Schlüssel",
   "provider.connect.apiKey.required": "API-Schlüssel ist erforderlich",
   "provider.connect.apiKey.required": "API-Schlüssel ist erforderlich",
-  "provider.connect.opencodeZen.line1": "OpenCode Zen bietet Ihnen Zugriff auf eine kuratierte Auswahl zuverlässiger, optimierter Modelle für Coding-Agenten.",
-  "provider.connect.opencodeZen.line2": "Mit einem einzigen API-Schlüssel erhalten Sie Zugriff auf Modelle wie Claude, GPT, Gemini, GLM und mehr.",
+  "provider.connect.opencodeZen.line1":
+    "OpenCode Zen bietet Ihnen Zugriff auf eine kuratierte Auswahl zuverlässiger, optimierter Modelle für Coding-Agenten.",
+  "provider.connect.opencodeZen.line2":
+    "Mit einem einzigen API-Schlüssel erhalten Sie Zugriff auf Modelle wie Claude, GPT, Gemini, GLM und mehr.",
   "provider.connect.opencodeZen.visit.prefix": "Besuchen Sie ",
   "provider.connect.opencodeZen.visit.prefix": "Besuchen Sie ",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.suffix": ", um Ihren API-Schlüssel zu erhalten.",
   "provider.connect.opencodeZen.visit.suffix": ", um Ihren API-Schlüssel zu erhalten.",
   "provider.connect.oauth.code.visit.prefix": "Besuchen Sie ",
   "provider.connect.oauth.code.visit.prefix": "Besuchen Sie ",
   "provider.connect.oauth.code.visit.link": "diesen Link",
   "provider.connect.oauth.code.visit.link": "diesen Link",
-  "provider.connect.oauth.code.visit.suffix": ", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
+  "provider.connect.oauth.code.visit.suffix":
+    ", um Ihren Autorisierungscode zu erhalten, Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
   "provider.connect.oauth.code.label": "{{method}} Autorisierungscode",
   "provider.connect.oauth.code.label": "{{method}} Autorisierungscode",
   "provider.connect.oauth.code.placeholder": "Autorisierungscode",
   "provider.connect.oauth.code.placeholder": "Autorisierungscode",
   "provider.connect.oauth.code.required": "Autorisierungscode ist erforderlich",
   "provider.connect.oauth.code.required": "Autorisierungscode ist erforderlich",
   "provider.connect.oauth.code.invalid": "Ungültiger Autorisierungscode",
   "provider.connect.oauth.code.invalid": "Ungültiger Autorisierungscode",
   "provider.connect.oauth.auto.visit.prefix": "Besuchen Sie ",
   "provider.connect.oauth.auto.visit.prefix": "Besuchen Sie ",
   "provider.connect.oauth.auto.visit.link": "diesen Link",
   "provider.connect.oauth.auto.visit.link": "diesen Link",
-  "provider.connect.oauth.auto.visit.suffix": " und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
+  "provider.connect.oauth.auto.visit.suffix":
+    " und geben Sie den untenstehenden Code ein, um Ihr Konto zu verbinden und {{provider}} Modelle in OpenCode zu nutzen.",
   "provider.connect.oauth.auto.confirmationCode": "Bestätigungscode",
   "provider.connect.oauth.auto.confirmationCode": "Bestätigungscode",
   "provider.connect.toast.connected.title": "{{provider}} verbunden",
   "provider.connect.toast.connected.title": "{{provider}} verbunden",
   "provider.connect.toast.connected.description": "{{provider}} Modelle sind jetzt verfügbar.",
   "provider.connect.toast.connected.description": "{{provider}} Modelle sind jetzt verfügbar.",
@@ -149,7 +154,8 @@ export const dict = {
   "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
   "provider.custom.field.baseURL.placeholder": "https://api.myprovider.com/v1",
   "provider.custom.field.apiKey.label": "API-Schlüssel",
   "provider.custom.field.apiKey.label": "API-Schlüssel",
   "provider.custom.field.apiKey.placeholder": "API-Schlüssel",
   "provider.custom.field.apiKey.placeholder": "API-Schlüssel",
-  "provider.custom.field.apiKey.description": "Optional. Leer lassen, wenn Sie die Authentifizierung über Header verwalten.",
+  "provider.custom.field.apiKey.description":
+    "Optional. Leer lassen, wenn Sie die Authentifizierung über Header verwalten.",
   "provider.custom.models.label": "Modelle",
   "provider.custom.models.label": "Modelle",
   "provider.custom.models.id.label": "ID",
   "provider.custom.models.id.label": "ID",
   "provider.custom.models.id.placeholder": "model-id",
   "provider.custom.models.id.placeholder": "model-id",
@@ -204,7 +210,7 @@ export const dict = {
   "common.default": "Standard",
   "common.default": "Standard",
   "common.attachment": "Anhang",
   "common.attachment": "Anhang",
   "prompt.placeholder.shell": "Shell-Befehl eingeben...",
   "prompt.placeholder.shell": "Shell-Befehl eingeben...",
-  "prompt.placeholder.normal": "Fragen Sie alles... \"{{example}}\"",
+  "prompt.placeholder.normal": 'Fragen Sie alles... "{{example}}"',
   "prompt.placeholder.summarizeComments": "Kommentare zusammenfassen…",
   "prompt.placeholder.summarizeComments": "Kommentare zusammenfassen…",
   "prompt.placeholder.summarizeComment": "Kommentar zusammenfassen…",
   "prompt.placeholder.summarizeComment": "Kommentar zusammenfassen…",
   "prompt.mode.shell": "Shell",
   "prompt.mode.shell": "Shell",
@@ -252,7 +258,8 @@ export const dict = {
   "prompt.toast.pasteUnsupported.title": "Nicht unterstütztes Einfügen",
   "prompt.toast.pasteUnsupported.title": "Nicht unterstütztes Einfügen",
   "prompt.toast.pasteUnsupported.description": "Hier können nur Bilder oder PDFs eingefügt werden.",
   "prompt.toast.pasteUnsupported.description": "Hier können nur Bilder oder PDFs eingefügt werden.",
   "prompt.toast.modelAgentRequired.title": "Wählen Sie einen Agenten und ein Modell",
   "prompt.toast.modelAgentRequired.title": "Wählen Sie einen Agenten und ein Modell",
-  "prompt.toast.modelAgentRequired.description": "Wählen Sie einen Agenten und ein Modell, bevor Sie eine Eingabe senden.",
+  "prompt.toast.modelAgentRequired.description":
+    "Wählen Sie einen Agenten und ein Modell, bevor Sie eine Eingabe senden.",
   "prompt.toast.worktreeCreateFailed.title": "Worktree konnte nicht erstellt werden",
   "prompt.toast.worktreeCreateFailed.title": "Worktree konnte nicht erstellt werden",
   "prompt.toast.sessionCreateFailed.title": "Sitzung konnte nicht erstellt werden",
   "prompt.toast.sessionCreateFailed.title": "Sitzung konnte nicht erstellt werden",
   "prompt.toast.shellSendFailed.title": "Shell-Befehl konnte nicht gesendet werden",
   "prompt.toast.shellSendFailed.title": "Shell-Befehl konnte nicht gesendet werden",
@@ -282,7 +289,8 @@ export const dict = {
   "dialog.server.add.checking": "Prüfen...",
   "dialog.server.add.checking": "Prüfen...",
   "dialog.server.add.button": "Server hinzufügen",
   "dialog.server.add.button": "Server hinzufügen",
   "dialog.server.default.title": "Standardserver",
   "dialog.server.default.title": "Standardserver",
-  "dialog.server.default.description": "Beim App-Start mit diesem Server verbinden, anstatt einen lokalen Server zu starten. Erfordert Neustart.",
+  "dialog.server.default.description":
+    "Beim App-Start mit diesem Server verbinden, anstatt einen lokalen Server zu starten. Erfordert Neustart.",
   "dialog.server.default.none": "Kein Server ausgewählt",
   "dialog.server.default.none": "Kein Server ausgewählt",
   "dialog.server.default.set": "Aktuellen Server als Standard setzen",
   "dialog.server.default.set": "Aktuellen Server als Standard setzen",
   "dialog.server.default.clear": "Löschen",
   "dialog.server.default.clear": "Löschen",
@@ -302,10 +310,12 @@ export const dict = {
   "dialog.project.edit.color": "Farbe",
   "dialog.project.edit.color": "Farbe",
   "dialog.project.edit.color.select": "{{color}}-Farbe auswählen",
   "dialog.project.edit.color.select": "{{color}}-Farbe auswählen",
   "dialog.project.edit.worktree.startup": "Startup-Skript für Arbeitsbereich",
   "dialog.project.edit.worktree.startup": "Startup-Skript für Arbeitsbereich",
-  "dialog.project.edit.worktree.startup.description": "Wird nach dem Erstellen eines neuen Arbeitsbereichs (Worktree) ausgeführt.",
+  "dialog.project.edit.worktree.startup.description":
+    "Wird nach dem Erstellen eines neuen Arbeitsbereichs (Worktree) ausgeführt.",
   "dialog.project.edit.worktree.startup.placeholder": "z. B. bun install",
   "dialog.project.edit.worktree.startup.placeholder": "z. B. bun install",
   "context.breakdown.title": "Kontext-Aufschlüsselung",
   "context.breakdown.title": "Kontext-Aufschlüsselung",
-  "context.breakdown.note": "Ungefähre Aufschlüsselung der Eingabe-Token. \"Andere\" beinhaltet Werkzeugdefinitionen und Overhead.",
+  "context.breakdown.note":
+    'Ungefähre Aufschlüsselung der Eingabe-Token. "Andere" beinhaltet Werkzeugdefinitionen und Overhead.',
   "context.breakdown.system": "System",
   "context.breakdown.system": "System",
   "context.breakdown.user": "Benutzer",
   "context.breakdown.user": "Benutzer",
   "context.breakdown.assistant": "Assistent",
   "context.breakdown.assistant": "Assistent",
@@ -392,7 +402,8 @@ export const dict = {
   "error.page.report.prefix": "Bitte melden Sie diesen Fehler dem OpenCode-Team",
   "error.page.report.prefix": "Bitte melden Sie diesen Fehler dem OpenCode-Team",
   "error.page.report.discord": "auf Discord",
   "error.page.report.discord": "auf Discord",
   "error.page.version": "Version: {{version}}",
   "error.page.version": "Version: {{version}}",
-  "error.dev.rootNotFound": "Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das id-Attribut falsch geschrieben?",
+  "error.dev.rootNotFound":
+    "Wurzelelement nicht gefunden. Haben Sie vergessen, es in Ihre index.html aufzunehmen? Oder wurde das id-Attribut falsch geschrieben?",
   "error.globalSync.connectFailed": "Verbindung zum Server fehlgeschlagen. Läuft ein Server unter `{{url}}`?",
   "error.globalSync.connectFailed": "Verbindung zum Server fehlgeschlagen. Läuft ein Server unter `{{url}}`?",
   "directory.error.invalidUrl": "Ungültiges Verzeichnis in der URL.",
   "directory.error.invalidUrl": "Ungültiges Verzeichnis in der URL.",
   "error.chain.unknown": "Unbekannter Fehler",
   "error.chain.unknown": "Unbekannter Fehler",
@@ -404,12 +415,16 @@ export const dict = {
   "error.chain.didYouMean": "Meinten Sie: {{suggestions}}",
   "error.chain.didYouMean": "Meinten Sie: {{suggestions}}",
   "error.chain.modelNotFound": "Modell nicht gefunden: {{provider}}/{{model}}",
   "error.chain.modelNotFound": "Modell nicht gefunden: {{provider}}/{{model}}",
   "error.chain.checkConfig": "Überprüfen Sie Ihre Konfiguration (opencode.json) auf Anbieter-/Modellnamen",
   "error.chain.checkConfig": "Überprüfen Sie Ihre Konfiguration (opencode.json) auf Anbieter-/Modellnamen",
-  "error.chain.mcpFailed": "MCP-Server \"{{name}}\" fehlgeschlagen. Hinweis: OpenCode unterstützt noch keine MCP-Authentifizierung.",
+  "error.chain.mcpFailed":
+    'MCP-Server "{{name}}" fehlgeschlagen. Hinweis: OpenCode unterstützt noch keine MCP-Authentifizierung.',
   "error.chain.providerAuthFailed": "Anbieter-Authentifizierung fehlgeschlagen ({{provider}}): {{message}}",
   "error.chain.providerAuthFailed": "Anbieter-Authentifizierung fehlgeschlagen ({{provider}}): {{message}}",
-  "error.chain.providerInitFailed": "Anbieter \"{{provider}}\" konnte nicht initialisiert werden. Überprüfen Sie Anmeldeinformationen und Konfiguration.",
+  "error.chain.providerInitFailed":
+    'Anbieter "{{provider}}" konnte nicht initialisiert werden. Überprüfen Sie Anmeldeinformationen und Konfiguration.',
   "error.chain.configJsonInvalid": "Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C)",
   "error.chain.configJsonInvalid": "Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C)",
-  "error.chain.configJsonInvalidWithMessage": "Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C): {{message}}",
-  "error.chain.configDirectoryTypo": "Verzeichnis \"{{dir}}\" in {{path}} ist ungültig. Benennen Sie das Verzeichnis in \"{{suggestion}}\" um oder entfernen Sie es. Dies ist ein häufiger Tippfehler.",
+  "error.chain.configJsonInvalidWithMessage":
+    "Konfigurationsdatei unter {{path}} ist kein gültiges JSON(C): {{message}}",
+  "error.chain.configDirectoryTypo":
+    'Verzeichnis "{{dir}}" in {{path}} ist ungültig. Benennen Sie das Verzeichnis in "{{suggestion}}" um oder entfernen Sie es. Dies ist ein häufiger Tippfehler.',
   "error.chain.configFrontmatterError": "Frontmatter in {{path}} konnte nicht geparst werden:\n{{message}}",
   "error.chain.configFrontmatterError": "Frontmatter in {{path}} konnte nicht geparst werden:\n{{message}}",
   "error.chain.configInvalid": "Konfigurationsdatei unter {{path}} ist ungültig",
   "error.chain.configInvalid": "Konfigurationsdatei unter {{path}} ist ungültig",
   "error.chain.configInvalidWithMessage": "Konfigurationsdatei unter {{path}} ist ungültig: {{message}}",
   "error.chain.configInvalidWithMessage": "Konfigurationsdatei unter {{path}} ist ungültig: {{message}}",
@@ -462,8 +477,10 @@ export const dict = {
   "status.popover.tab.plugins": "Plugins",
   "status.popover.tab.plugins": "Plugins",
   "status.popover.action.manageServers": "Server verwalten",
   "status.popover.action.manageServers": "Server verwalten",
   "session.share.popover.title": "Im Web veröffentlichen",
   "session.share.popover.title": "Im Web veröffentlichen",
-  "session.share.popover.description.shared": "Diese Sitzung ist öffentlich im Web. Sie ist für jeden mit dem Link zugänglich.",
-  "session.share.popover.description.unshared": "Sitzung öffentlich im Web teilen. Sie wird für jeden mit dem Link zugänglich sein.",
+  "session.share.popover.description.shared":
+    "Diese Sitzung ist öffentlich im Web. Sie ist für jeden mit dem Link zugänglich.",
+  "session.share.popover.description.unshared":
+    "Sitzung öffentlich im Web teilen. Sie wird für jeden mit dem Link zugänglich sein.",
   "session.share.action.share": "Teilen",
   "session.share.action.share": "Teilen",
   "session.share.action.publish": "Veröffentlichen",
   "session.share.action.publish": "Veröffentlichen",
   "session.share.action.publishing": "Veröffentliche...",
   "session.share.action.publishing": "Veröffentliche...",
@@ -480,7 +497,8 @@ export const dict = {
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.close": "Terminal schließen",
   "terminal.close": "Terminal schließen",
   "terminal.connectionLost.title": "Verbindung verloren",
   "terminal.connectionLost.title": "Verbindung verloren",
-  "terminal.connectionLost.description": "Die Terminalverbindung wurde unterbrochen. Das kann passieren, wenn der Server neu startet.",
+  "terminal.connectionLost.description":
+    "Die Terminalverbindung wurde unterbrochen. Das kann passieren, wenn der Server neu startet.",
   "common.closeTab": "Tab schließen",
   "common.closeTab": "Tab schließen",
   "common.dismiss": "Verwerfen",
   "common.dismiss": "Verwerfen",
   "common.requestFailed": "Anfrage fehlgeschlagen",
   "common.requestFailed": "Anfrage fehlgeschlagen",
@@ -502,7 +520,8 @@ export const dict = {
   "sidebar.workspaces.disable": "Arbeitsbereiche deaktivieren",
   "sidebar.workspaces.disable": "Arbeitsbereiche deaktivieren",
   "sidebar.gettingStarted.title": "Erste Schritte",
   "sidebar.gettingStarted.title": "Erste Schritte",
   "sidebar.gettingStarted.line1": "OpenCode enthält kostenlose Modelle, damit Sie sofort loslegen können.",
   "sidebar.gettingStarted.line1": "OpenCode enthält kostenlose Modelle, damit Sie sofort loslegen können.",
-  "sidebar.gettingStarted.line2": "Verbinden Sie einen beliebigen Anbieter, um Modelle wie Claude, GPT, Gemini usw. zu nutzen.",
+  "sidebar.gettingStarted.line2":
+    "Verbinden Sie einen beliebigen Anbieter, um Modelle wie Claude, GPT, Gemini usw. zu nutzen.",
   "sidebar.project.recentSessions": "Letzte Sitzungen",
   "sidebar.project.recentSessions": "Letzte Sitzungen",
   "sidebar.project.viewAllSessions": "Alle Sitzungen anzeigen",
   "sidebar.project.viewAllSessions": "Alle Sitzungen anzeigen",
   "app.name.desktop": "OpenCode Desktop",
   "app.name.desktop": "OpenCode Desktop",
@@ -528,9 +547,10 @@ export const dict = {
   "settings.general.row.font.description": "Die in Codeblöcken verwendete Monospace-Schriftart anpassen",
   "settings.general.row.font.description": "Die in Codeblöcken verwendete Monospace-Schriftart anpassen",
   "settings.general.row.wayland.title": "Natives Wayland verwenden",
   "settings.general.row.wayland.title": "Natives Wayland verwenden",
   "settings.general.row.wayland.description": "X11-Fallback unter Wayland deaktivieren. Erfordert Neustart.",
   "settings.general.row.wayland.description": "X11-Fallback unter Wayland deaktivieren. Erfordert Neustart.",
-  "settings.general.row.wayland.tooltip": "Unter Linux mit Monitoren unterschiedlicher Bildwiederholraten kann natives Wayland stabiler sein.",
+  "settings.general.row.wayland.tooltip":
+    "Unter Linux mit Monitoren unterschiedlicher Bildwiederholraten kann natives Wayland stabiler sein.",
   "settings.general.row.releaseNotes.title": "Versionshinweise",
   "settings.general.row.releaseNotes.title": "Versionshinweise",
-  "settings.general.row.releaseNotes.description": "\"Neuigkeiten\"-Pop-ups nach Updates anzeigen",
+  "settings.general.row.releaseNotes.description": '"Neuigkeiten"-Pop-ups nach Updates anzeigen',
   "settings.updates.row.startup.title": "Beim Start nach Updates suchen",
   "settings.updates.row.startup.title": "Beim Start nach Updates suchen",
   "settings.updates.row.startup.description": "Beim Start von OpenCode automatisch nach Updates suchen",
   "settings.updates.row.startup.description": "Beim Start von OpenCode automatisch nach Updates suchen",
   "settings.updates.row.check.title": "Nach Updates suchen",
   "settings.updates.row.check.title": "Nach Updates suchen",
@@ -597,9 +617,11 @@ export const dict = {
   "sound.option.yup05": "Ja 05",
   "sound.option.yup05": "Ja 05",
   "sound.option.yup06": "Ja 06",
   "sound.option.yup06": "Ja 06",
   "settings.general.notifications.agent.title": "Agent",
   "settings.general.notifications.agent.title": "Agent",
-  "settings.general.notifications.agent.description": "Systembenachrichtigung anzeigen, wenn der Agent fertig ist oder Aufmerksamkeit benötigt",
+  "settings.general.notifications.agent.description":
+    "Systembenachrichtigung anzeigen, wenn der Agent fertig ist oder Aufmerksamkeit benötigt",
   "settings.general.notifications.permissions.title": "Berechtigungen",
   "settings.general.notifications.permissions.title": "Berechtigungen",
-  "settings.general.notifications.permissions.description": "Systembenachrichtigung anzeigen, wenn eine Berechtigung erforderlich ist",
+  "settings.general.notifications.permissions.description":
+    "Systembenachrichtigung anzeigen, wenn eine Berechtigung erforderlich ist",
   "settings.general.notifications.errors.title": "Fehler",
   "settings.general.notifications.errors.title": "Fehler",
   "settings.general.notifications.errors.description": "Systembenachrichtigung anzeigen, wenn ein Fehler auftritt",
   "settings.general.notifications.errors.description": "Systembenachrichtigung anzeigen, wenn ein Fehler auftritt",
   "settings.general.sounds.agent.title": "Agent",
   "settings.general.sounds.agent.title": "Agent",
@@ -651,7 +673,8 @@ export const dict = {
   "settings.permissions.tool.read.title": "Lesen",
   "settings.permissions.tool.read.title": "Lesen",
   "settings.permissions.tool.read.description": "Lesen einer Datei (stimmt mit dem Dateipfad überein)",
   "settings.permissions.tool.read.description": "Lesen einer Datei (stimmt mit dem Dateipfad überein)",
   "settings.permissions.tool.edit.title": "Bearbeiten",
   "settings.permissions.tool.edit.title": "Bearbeiten",
-  "settings.permissions.tool.edit.description": "Dateien ändern, einschließlich Bearbeitungen, Schreibvorgängen, Patches und Mehrfachbearbeitungen",
+  "settings.permissions.tool.edit.description":
+    "Dateien ändern, einschließlich Bearbeitungen, Schreibvorgängen, Patches und Mehrfachbearbeitungen",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.title": "Glob",
   "settings.permissions.tool.glob.description": "Dateien mithilfe von Glob-Mustern abgleichen",
   "settings.permissions.tool.glob.description": "Dateien mithilfe von Glob-Mustern abgleichen",
   "settings.permissions.tool.grep.title": "Grep",
   "settings.permissions.tool.grep.title": "Grep",
@@ -682,7 +705,7 @@ export const dict = {
   "settings.permissions.tool.doom_loop.description": "Wiederholte Tool-Aufrufe mit identischer Eingabe erkennen",
   "settings.permissions.tool.doom_loop.description": "Wiederholte Tool-Aufrufe mit identischer Eingabe erkennen",
   "session.delete.failed.title": "Sitzung konnte nicht gelöscht werden",
   "session.delete.failed.title": "Sitzung konnte nicht gelöscht werden",
   "session.delete.title": "Sitzung löschen",
   "session.delete.title": "Sitzung löschen",
-  "session.delete.confirm": "Sitzung \"{{name}}\" löschen?",
+  "session.delete.confirm": 'Sitzung "{{name}}" löschen?',
   "session.delete.button": "Sitzung löschen",
   "session.delete.button": "Sitzung löschen",
   "workspace.new": "Neuer Arbeitsbereich",
   "workspace.new": "Neuer Arbeitsbereich",
   "workspace.type.local": "lokal",
   "workspace.type.local": "lokal",
@@ -700,13 +723,13 @@ export const dict = {
   "workspace.status.clean": "Keine nicht zusammengeführten Änderungen erkannt.",
   "workspace.status.clean": "Keine nicht zusammengeführten Änderungen erkannt.",
   "workspace.status.dirty": "Nicht zusammengeführte Änderungen in diesem Arbeitsbereich erkannt.",
   "workspace.status.dirty": "Nicht zusammengeführte Änderungen in diesem Arbeitsbereich erkannt.",
   "workspace.delete.title": "Arbeitsbereich löschen",
   "workspace.delete.title": "Arbeitsbereich löschen",
-  "workspace.delete.confirm": "Arbeitsbereich \"{{name}}\" löschen?",
+  "workspace.delete.confirm": 'Arbeitsbereich "{{name}}" löschen?',
   "workspace.delete.button": "Arbeitsbereich löschen",
   "workspace.delete.button": "Arbeitsbereich löschen",
   "workspace.reset.title": "Arbeitsbereich zurücksetzen",
   "workspace.reset.title": "Arbeitsbereich zurücksetzen",
-  "workspace.reset.confirm": "Arbeitsbereich \"{{name}}\" zurücksetzen?",
+  "workspace.reset.confirm": 'Arbeitsbereich "{{name}}" zurücksetzen?',
   "workspace.reset.button": "Arbeitsbereich zurücksetzen",
   "workspace.reset.button": "Arbeitsbereich zurücksetzen",
   "workspace.reset.archived.none": "Keine aktiven Sitzungen werden archiviert.",
   "workspace.reset.archived.none": "Keine aktiven Sitzungen werden archiviert.",
   "workspace.reset.archived.one": "1 Sitzung wird archiviert.",
   "workspace.reset.archived.one": "1 Sitzung wird archiviert.",
   "workspace.reset.archived.many": "{{count}} Sitzungen werden archiviert.",
   "workspace.reset.archived.many": "{{count}} Sitzungen werden archiviert.",
-  "workspace.reset.note": "Dadurch wird der Arbeitsbereich auf den Standard-Branch zurückgesetzt."
+  "workspace.reset.note": "Dadurch wird der Arbeitsbereich auf den Standard-Branch zurückgesetzt.",
 } satisfies Partial<Record<Keys, string>>
 } satisfies Partial<Record<Keys, string>>

+ 32 - 16
packages/app/src/i18n/pl.ts

@@ -110,25 +110,30 @@ export const dict = {
   "provider.connect.status.inProgress": "Autoryzacja w toku...",
   "provider.connect.status.inProgress": "Autoryzacja w toku...",
   "provider.connect.status.waiting": "Oczekiwanie na autoryzację...",
   "provider.connect.status.waiting": "Oczekiwanie na autoryzację...",
   "provider.connect.status.failed": "Autoryzacja nie powiodła się: {{error}}",
   "provider.connect.status.failed": "Autoryzacja nie powiodła się: {{error}}",
-  "provider.connect.apiKey.description": "Wprowadź swój klucz API {{provider}}, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
+  "provider.connect.apiKey.description":
+    "Wprowadź swój klucz API {{provider}}, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
   "provider.connect.apiKey.label": "Klucz API {{provider}}",
   "provider.connect.apiKey.label": "Klucz API {{provider}}",
   "provider.connect.apiKey.placeholder": "Klucz API",
   "provider.connect.apiKey.placeholder": "Klucz API",
   "provider.connect.apiKey.required": "Klucz API jest wymagany",
   "provider.connect.apiKey.required": "Klucz API jest wymagany",
-  "provider.connect.opencodeZen.line1": "OpenCode Zen daje dostęp do wybranego zestawu niezawodnych, zoptymalizowanych modeli dla agentów kodujących.",
-  "provider.connect.opencodeZen.line2": "Z jednym kluczem API uzyskasz dostęp do modeli takich jak Claude, GPT, Gemini, GLM i więcej.",
+  "provider.connect.opencodeZen.line1":
+    "OpenCode Zen daje dostęp do wybranego zestawu niezawodnych, zoptymalizowanych modeli dla agentów kodujących.",
+  "provider.connect.opencodeZen.line2":
+    "Z jednym kluczem API uzyskasz dostęp do modeli takich jak Claude, GPT, Gemini, GLM i więcej.",
   "provider.connect.opencodeZen.visit.prefix": "Odwiedź ",
   "provider.connect.opencodeZen.visit.prefix": "Odwiedź ",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
   "provider.connect.opencodeZen.visit.suffix": ", aby odebrać swój klucz API.",
   "provider.connect.opencodeZen.visit.suffix": ", aby odebrać swój klucz API.",
   "provider.connect.oauth.code.visit.prefix": "Odwiedź ",
   "provider.connect.oauth.code.visit.prefix": "Odwiedź ",
   "provider.connect.oauth.code.visit.link": "ten link",
   "provider.connect.oauth.code.visit.link": "ten link",
-  "provider.connect.oauth.code.visit.suffix": ", aby odebrać kod autoryzacyjny, połączyć konto i używać modeli {{provider}} w OpenCode.",
+  "provider.connect.oauth.code.visit.suffix":
+    ", aby odebrać kod autoryzacyjny, połączyć konto i używać modeli {{provider}} w OpenCode.",
   "provider.connect.oauth.code.label": "Kod autoryzacyjny {{method}}",
   "provider.connect.oauth.code.label": "Kod autoryzacyjny {{method}}",
   "provider.connect.oauth.code.placeholder": "Kod autoryzacyjny",
   "provider.connect.oauth.code.placeholder": "Kod autoryzacyjny",
   "provider.connect.oauth.code.required": "Kod autoryzacyjny jest wymagany",
   "provider.connect.oauth.code.required": "Kod autoryzacyjny jest wymagany",
   "provider.connect.oauth.code.invalid": "Nieprawidłowy kod autoryzacyjny",
   "provider.connect.oauth.code.invalid": "Nieprawidłowy kod autoryzacyjny",
   "provider.connect.oauth.auto.visit.prefix": "Odwiedź ",
   "provider.connect.oauth.auto.visit.prefix": "Odwiedź ",
   "provider.connect.oauth.auto.visit.link": "ten link",
   "provider.connect.oauth.auto.visit.link": "ten link",
-  "provider.connect.oauth.auto.visit.suffix": " i wprowadź poniższy kod, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
+  "provider.connect.oauth.auto.visit.suffix":
+    " i wprowadź poniższy kod, aby połączyć konto i używać modeli {{provider}} w OpenCode.",
   "provider.connect.oauth.auto.confirmationCode": "Kod potwierdzający",
   "provider.connect.oauth.auto.confirmationCode": "Kod potwierdzający",
   "provider.connect.toast.connected.title": "Połączono {{provider}}",
   "provider.connect.toast.connected.title": "Połączono {{provider}}",
   "provider.connect.toast.connected.description": "Modele {{provider}} są teraz dostępne do użycia.",
   "provider.connect.toast.connected.description": "Modele {{provider}} są teraz dostępne do użycia.",
@@ -145,7 +150,8 @@ export const dict = {
   "provider.custom.field.baseURL.placeholder": "https://api.mojdostawca.com/v1",
   "provider.custom.field.baseURL.placeholder": "https://api.mojdostawca.com/v1",
   "provider.custom.field.apiKey.label": "Klucz API",
   "provider.custom.field.apiKey.label": "Klucz API",
   "provider.custom.field.apiKey.placeholder": "Klucz API",
   "provider.custom.field.apiKey.placeholder": "Klucz API",
-  "provider.custom.field.apiKey.description": "Opcjonalne. Pozostaw puste, jeśli zarządzasz autoryzacją przez nagłówki.",
+  "provider.custom.field.apiKey.description":
+    "Opcjonalne. Pozostaw puste, jeśli zarządzasz autoryzacją przez nagłówki.",
   "provider.custom.models.label": "Modele",
   "provider.custom.models.label": "Modele",
   "provider.custom.models.id.label": "ID",
   "provider.custom.models.id.label": "ID",
   "provider.custom.models.id.placeholder": "model-id",
   "provider.custom.models.id.placeholder": "model-id",
@@ -278,7 +284,8 @@ export const dict = {
   "dialog.server.add.checking": "Sprawdzanie...",
   "dialog.server.add.checking": "Sprawdzanie...",
   "dialog.server.add.button": "Dodaj serwer",
   "dialog.server.add.button": "Dodaj serwer",
   "dialog.server.default.title": "Domyślny serwer",
   "dialog.server.default.title": "Domyślny serwer",
-  "dialog.server.default.description": "Połącz z tym serwerem przy uruchomieniu aplikacji zamiast uruchamiać lokalny serwer. Wymaga restartu.",
+  "dialog.server.default.description":
+    "Połącz z tym serwerem przy uruchomieniu aplikacji zamiast uruchamiać lokalny serwer. Wymaga restartu.",
   "dialog.server.default.none": "Nie wybrano serwera",
   "dialog.server.default.none": "Nie wybrano serwera",
   "dialog.server.default.set": "Ustaw bieżący serwer jako domyślny",
   "dialog.server.default.set": "Ustaw bieżący serwer jako domyślny",
   "dialog.server.default.clear": "Wyczyść",
   "dialog.server.default.clear": "Wyczyść",
@@ -388,7 +395,8 @@ export const dict = {
   "error.page.report.prefix": "Proszę zgłosić ten błąd do zespołu OpenCode",
   "error.page.report.prefix": "Proszę zgłosić ten błąd do zespołu OpenCode",
   "error.page.report.discord": "na Discordzie",
   "error.page.report.discord": "na Discordzie",
   "error.page.version": "Wersja: {{version}}",
   "error.page.version": "Wersja: {{version}}",
-  "error.dev.rootNotFound": "Nie znaleziono elementu głównego. Czy zapomniałeś dodać go do swojego index.html? A może atrybut id został błędnie wpisany?",
+  "error.dev.rootNotFound":
+    "Nie znaleziono elementu głównego. Czy zapomniałeś dodać go do swojego index.html? A może atrybut id został błędnie wpisany?",
   "error.globalSync.connectFailed": "Nie można połączyć się z serwerem. Czy serwer działa pod adresem `{{url}}`?",
   "error.globalSync.connectFailed": "Nie można połączyć się z serwerem. Czy serwer działa pod adresem `{{url}}`?",
   "directory.error.invalidUrl": "Nieprawidłowy katalog w URL.",
   "directory.error.invalidUrl": "Nieprawidłowy katalog w URL.",
   "error.chain.unknown": "Nieznany błąd",
   "error.chain.unknown": "Nieznany błąd",
@@ -402,10 +410,12 @@ export const dict = {
   "error.chain.checkConfig": "Sprawdź swoją konfigurację (opencode.json) nazwy dostawców/modeli",
   "error.chain.checkConfig": "Sprawdź swoją konfigurację (opencode.json) nazwy dostawców/modeli",
   "error.chain.mcpFailed": 'MCP server "{{name}}" failed. Note, OpenCode does not support MCP authentication yet.',
   "error.chain.mcpFailed": 'MCP server "{{name}}" failed. Note, OpenCode does not support MCP authentication yet.',
   "error.chain.providerAuthFailed": "Uwierzytelnianie dostawcy nie powiodło się ({{provider}}): {{message}}",
   "error.chain.providerAuthFailed": "Uwierzytelnianie dostawcy nie powiodło się ({{provider}}): {{message}}",
-  "error.chain.providerInitFailed": 'Nie udało się zainicjować dostawcy "{{provider}}". Sprawdź poświadczenia i konfigurację.',
+  "error.chain.providerInitFailed":
+    'Nie udało się zainicjować dostawcy "{{provider}}". Sprawdź poświadczenia i konfigurację.',
   "error.chain.configJsonInvalid": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C)",
   "error.chain.configJsonInvalid": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C)",
   "error.chain.configJsonInvalidWithMessage": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C): {{message}}",
   "error.chain.configJsonInvalidWithMessage": "Plik konfiguracyjny w {{path}} nie jest poprawnym JSON(C): {{message}}",
-  "error.chain.configDirectoryTypo": 'Katalog "{{dir}}" w {{path}} jest nieprawidłowy. Zmień nazwę katalogu na "{{suggestion}}" lub usuń go. To częsta literówka.',
+  "error.chain.configDirectoryTypo":
+    'Katalog "{{dir}}" w {{path}} jest nieprawidłowy. Zmień nazwę katalogu na "{{suggestion}}" lub usuń go. To częsta literówka.',
   "error.chain.configFrontmatterError": "Nie udało się przetworzyć frontmatter w {{path}}:\n{{message}}",
   "error.chain.configFrontmatterError": "Nie udało się przetworzyć frontmatter w {{path}}:\n{{message}}",
   "error.chain.configInvalid": "Plik konfiguracyjny w {{path}} jest nieprawidłowy",
   "error.chain.configInvalid": "Plik konfiguracyjny w {{path}} jest nieprawidłowy",
   "error.chain.configInvalidWithMessage": "Plik konfiguracyjny w {{path}} jest nieprawidłowy: {{message}}",
   "error.chain.configInvalidWithMessage": "Plik konfiguracyjny w {{path}} jest nieprawidłowy: {{message}}",
@@ -458,8 +468,10 @@ export const dict = {
   "status.popover.tab.plugins": "Wtyczki",
   "status.popover.tab.plugins": "Wtyczki",
   "status.popover.action.manageServers": "Zarządzaj serwerami",
   "status.popover.action.manageServers": "Zarządzaj serwerami",
   "session.share.popover.title": "Opublikuj w sieci",
   "session.share.popover.title": "Opublikuj w sieci",
-  "session.share.popover.description.shared": "Ta sesja jest publiczna w sieci. Jest dostępna dla każdego, kto posiada link.",
-  "session.share.popover.description.unshared": "Udostępnij sesję publicznie w sieci. Będzie dostępna dla każdego, kto posiada link.",
+  "session.share.popover.description.shared":
+    "Ta sesja jest publiczna w sieci. Jest dostępna dla każdego, kto posiada link.",
+  "session.share.popover.description.unshared":
+    "Udostępnij sesję publicznie w sieci. Będzie dostępna dla każdego, kto posiada link.",
   "session.share.action.share": "Udostępnij",
   "session.share.action.share": "Udostępnij",
   "session.share.action.publish": "Opublikuj",
   "session.share.action.publish": "Opublikuj",
   "session.share.action.publishing": "Publikowanie...",
   "session.share.action.publishing": "Publikowanie...",
@@ -476,7 +488,8 @@ export const dict = {
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.title.numbered": "Terminal {{number}}",
   "terminal.close": "Zamknij terminal",
   "terminal.close": "Zamknij terminal",
   "terminal.connectionLost.title": "Utracono połączenie",
   "terminal.connectionLost.title": "Utracono połączenie",
-  "terminal.connectionLost.description": "Połączenie z terminalem zostało przerwane. Może się to zdarzyć przy restarcie serwera.",
+  "terminal.connectionLost.description":
+    "Połączenie z terminalem zostało przerwane. Może się to zdarzyć przy restarcie serwera.",
   "common.closeTab": "Zamknij kartę",
   "common.closeTab": "Zamknij kartę",
   "common.dismiss": "Odrzuć",
   "common.dismiss": "Odrzuć",
   "common.requestFailed": "Żądanie nie powiodło się",
   "common.requestFailed": "Żądanie nie powiodło się",
@@ -524,7 +537,8 @@ export const dict = {
   "settings.general.row.font.description": "Dostosuj czcionkę mono używaną w blokach kodu",
   "settings.general.row.font.description": "Dostosuj czcionkę mono używaną w blokach kodu",
   "settings.general.row.wayland.title": "Użyj natywnego Wayland",
   "settings.general.row.wayland.title": "Użyj natywnego Wayland",
   "settings.general.row.wayland.description": "Wyłącz fallback X11 na Wayland. Wymaga restartu.",
   "settings.general.row.wayland.description": "Wyłącz fallback X11 na Wayland. Wymaga restartu.",
-  "settings.general.row.wayland.tooltip": "Na Linuxie z monitorami o różnym odświeżaniu, natywny Wayland może być bardziej stabilny.",
+  "settings.general.row.wayland.tooltip":
+    "Na Linuxie z monitorami o różnym odświeżaniu, natywny Wayland może być bardziej stabilny.",
   "settings.general.row.releaseNotes.title": "Informacje o wydaniu",
   "settings.general.row.releaseNotes.title": "Informacje o wydaniu",
   "settings.general.row.releaseNotes.description": 'Pokazuj wyskakujące okna "Co nowego" po aktualizacjach',
   "settings.general.row.releaseNotes.description": 'Pokazuj wyskakujące okna "Co nowego" po aktualizacjach',
   "settings.updates.row.startup.title": "Sprawdzaj aktualizacje przy uruchomieniu",
   "settings.updates.row.startup.title": "Sprawdzaj aktualizacje przy uruchomieniu",
@@ -593,9 +607,11 @@ export const dict = {
   "sound.option.yup05": "Yup 05",
   "sound.option.yup05": "Yup 05",
   "sound.option.yup06": "Yup 06",
   "sound.option.yup06": "Yup 06",
   "settings.general.notifications.agent.title": "Agent",
   "settings.general.notifications.agent.title": "Agent",
-  "settings.general.notifications.agent.description": "Pokaż powiadomienie systemowe, gdy agent zakończy pracę lub wymaga uwagi",
+  "settings.general.notifications.agent.description":
+    "Pokaż powiadomienie systemowe, gdy agent zakończy pracę lub wymaga uwagi",
   "settings.general.notifications.permissions.title": "Uprawnienia",
   "settings.general.notifications.permissions.title": "Uprawnienia",
-  "settings.general.notifications.permissions.description": "Pokaż powiadomienie systemowe, gdy wymagane jest uprawnienie",
+  "settings.general.notifications.permissions.description":
+    "Pokaż powiadomienie systemowe, gdy wymagane jest uprawnienie",
   "settings.general.notifications.errors.title": "Błędy",
   "settings.general.notifications.errors.title": "Błędy",
   "settings.general.notifications.errors.description": "Pokaż powiadomienie systemowe, gdy wystąpi błąd",
   "settings.general.notifications.errors.description": "Pokaż powiadomienie systemowe, gdy wystąpi błąd",
   "settings.general.sounds.agent.title": "Agent",
   "settings.general.sounds.agent.title": "Agent",

+ 10 - 8
packages/app/src/i18n/zh.ts

@@ -147,7 +147,8 @@ export const dict = {
   "provider.connect.status.inProgress": "正在授权...",
   "provider.connect.status.inProgress": "正在授权...",
   "provider.connect.status.waiting": "等待授权...",
   "provider.connect.status.waiting": "等待授权...",
   "provider.connect.status.failed": "授权失败:{{error}}",
   "provider.connect.status.failed": "授权失败:{{error}}",
-  "provider.connect.apiKey.description": "输入你的 {{provider}} API 密钥以连接帐户,并在 OpenCode 中使用 {{provider}} 模型。",
+  "provider.connect.apiKey.description":
+    "输入你的 {{provider}} API 密钥以连接帐户,并在 OpenCode 中使用 {{provider}} 模型。",
   "provider.connect.apiKey.label": "{{provider}} API 密钥",
   "provider.connect.apiKey.label": "{{provider}} API 密钥",
   "provider.connect.apiKey.placeholder": "API 密钥",
   "provider.connect.apiKey.placeholder": "API 密钥",
   "provider.connect.apiKey.required": "API 密钥为必填项",
   "provider.connect.apiKey.required": "API 密钥为必填项",
@@ -242,7 +243,7 @@ export const dict = {
   "common.attachment": "附件",
   "common.attachment": "附件",
 
 
   "prompt.placeholder.shell": "输入 shell 命令...",
   "prompt.placeholder.shell": "输入 shell 命令...",
-  "prompt.placeholder.normal": "随便问点什么... \"{{example}}\"",
+  "prompt.placeholder.normal": '随便问点什么... "{{example}}"',
   "prompt.placeholder.summarizeComments": "总结评论…",
   "prompt.placeholder.summarizeComments": "总结评论…",
   "prompt.placeholder.summarizeComment": "总结该评论…",
   "prompt.placeholder.summarizeComment": "总结该评论…",
   "prompt.mode.shell": "Shell",
   "prompt.mode.shell": "Shell",
@@ -456,12 +457,13 @@ export const dict = {
   "error.chain.didYouMean": "你是不是想输入:{{suggestions}}",
   "error.chain.didYouMean": "你是不是想输入:{{suggestions}}",
   "error.chain.modelNotFound": "未找到模型:{{provider}}/{{model}}",
   "error.chain.modelNotFound": "未找到模型:{{provider}}/{{model}}",
   "error.chain.checkConfig": "请检查你的配置 (opencode.json) 中的 provider/model 名称",
   "error.chain.checkConfig": "请检查你的配置 (opencode.json) 中的 provider/model 名称",
-  "error.chain.mcpFailed": "MCP 服务器 \"{{name}}\" 启动失败。注意: OpenCode 暂不支持 MCP 认证。",
+  "error.chain.mcpFailed": 'MCP 服务器 "{{name}}" 启动失败。注意: OpenCode 暂不支持 MCP 认证。',
   "error.chain.providerAuthFailed": "提供商认证失败({{provider}}):{{message}}",
   "error.chain.providerAuthFailed": "提供商认证失败({{provider}}):{{message}}",
-  "error.chain.providerInitFailed": "无法初始化提供商 \"{{provider}}\"。请检查凭据和配置。",
+  "error.chain.providerInitFailed": '无法初始化提供商 "{{provider}}"。请检查凭据和配置。',
   "error.chain.configJsonInvalid": "配置文件 {{path}} 不是有效的 JSON(C)",
   "error.chain.configJsonInvalid": "配置文件 {{path}} 不是有效的 JSON(C)",
   "error.chain.configJsonInvalidWithMessage": "配置文件 {{path}} 不是有效的 JSON(C):{{message}}",
   "error.chain.configJsonInvalidWithMessage": "配置文件 {{path}} 不是有效的 JSON(C):{{message}}",
-  "error.chain.configDirectoryTypo": "{{path}} 中的目录 \"{{dir}}\" 无效。请将目录重命名为 \"{{suggestion}}\" 或移除它。这是一个常见拼写错误。",
+  "error.chain.configDirectoryTypo":
+    '{{path}} 中的目录 "{{dir}}" 无效。请将目录重命名为 "{{suggestion}}" 或移除它。这是一个常见拼写错误。',
   "error.chain.configFrontmatterError": "无法解析 {{path}} 中的 frontmatter:\n{{message}}",
   "error.chain.configFrontmatterError": "无法解析 {{path}} 中的 frontmatter:\n{{message}}",
   "error.chain.configInvalid": "配置文件 {{path}} 无效",
   "error.chain.configInvalid": "配置文件 {{path}} 无效",
   "error.chain.configInvalidWithMessage": "配置文件 {{path}} 无效:{{message}}",
   "error.chain.configInvalidWithMessage": "配置文件 {{path}} 无效:{{message}}",
@@ -761,7 +763,7 @@ export const dict = {
 
 
   "session.delete.failed.title": "删除会话失败",
   "session.delete.failed.title": "删除会话失败",
   "session.delete.title": "删除会话",
   "session.delete.title": "删除会话",
-  "session.delete.confirm": "删除会话 \"{{name}}\"?",
+  "session.delete.confirm": '删除会话 "{{name}}"?',
   "session.delete.button": "删除会话",
   "session.delete.button": "删除会话",
 
 
   "workspace.new": "新建工作区",
   "workspace.new": "新建工作区",
@@ -780,10 +782,10 @@ export const dict = {
   "workspace.status.clean": "未检测到未合并的更改。",
   "workspace.status.clean": "未检测到未合并的更改。",
   "workspace.status.dirty": "检测到未合并的更改。",
   "workspace.status.dirty": "检测到未合并的更改。",
   "workspace.delete.title": "删除工作区",
   "workspace.delete.title": "删除工作区",
-  "workspace.delete.confirm": "删除工作区 \"{{name}}\"?",
+  "workspace.delete.confirm": '删除工作区 "{{name}}"?',
   "workspace.delete.button": "删除工作区",
   "workspace.delete.button": "删除工作区",
   "workspace.reset.title": "重置工作区",
   "workspace.reset.title": "重置工作区",
-  "workspace.reset.confirm": "重置工作区 \"{{name}}\"?",
+  "workspace.reset.confirm": '重置工作区 "{{name}}"?',
   "workspace.reset.button": "重置工作区",
   "workspace.reset.button": "重置工作区",
   "workspace.reset.archived.none": "不会归档任何活跃会话。",
   "workspace.reset.archived.none": "不会归档任何活跃会话。",
   "workspace.reset.archived.one": "将归档 1 个会话。",
   "workspace.reset.archived.one": "将归档 1 个会话。",