Files
aiturk-hermes-ide/apps/desktop/src/i18n/tr-memory-fields.ts
T

197 lines
8.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { MemoryProviderField } from '@/types/hermes'
type FieldCopy = Pick<MemoryProviderField, 'label'> &
Partial<Pick<MemoryProviderField, 'description' | 'info' | 'placeholder'>> & {
options?: Record<string, string | { label: string; description: string }>
}
const reasoning = { minimal: 'En az', low: 'Düşük', medium: 'Orta', high: 'Yüksek', max: 'En yüksek' }
/** Only presentation is translated; provider keys, credentials and enum values remain authoritative. */
export const TR_MEMORY_FIELDS: Record<string, Record<string, FieldCopy>> = {
honcho: {
apiKey: {
label: 'API anahtarı',
description: 'Honcho Cloud kimlik doğrulaması. Kendi sunucunuzdaki temel URL için gerekli değildir.',
placeholder: 'Honcho API anahtarını girin'
},
baseUrl: {
label: 'Temel URL',
description: 'Kendi sunucunuzdaki Honcho adresi. Belirtildiğinde ortam değişkenindeki adresin yerine kullanılır.',
placeholder: 'https://… (kendi sunucunuz)'
},
environment: {
label: 'Ortam',
description: 'Honcho ortamı. Temel URL belirtildiğinde kullanılmaz.',
options: { production: 'Bulut', local: 'Yerel' }
},
workspace: {
label: 'Çalışma alanı',
description: 'Honcho çalışma alanı kimliği. Varsayılan olarak profilin ana bilgisayarını kullanır.'
},
peerName: {
label: 'Kullanıcı kimliği',
description:
'Sabit kullanıcı kimliğiniz. Tek kullanıcılı kurulumlarda farklı platformların belleğini birleştirir.',
placeholder: 'ör. eri'
},
aiPeer: {
label: 'Yapay zekâ kimliği',
description: 'Yapay zekâ tarafının kimlik adı. Varsayılan olarak profilin ana bilgisayarını kullanır.'
},
sessionStrategy: {
label: 'Oturum stratejisi',
description: 'Konuşmaların Honcho oturumlarıyla nasıl eşleştirileceği.',
info: 'Oturum başına: her konuşma ayrı bir Honcho oturumu kullanır. Klasör başına: aynı çalışma klasöründeki konuşmalar ortak oturum kullanır. Depo başına: aynı Git deposundaki konuşmalar ortak oturum kullanır. Genel: tüm konuşmalar tek bir oturumu paylaşır.',
options: {
'per-session': 'Oturum başına',
'per-directory': 'Klasör başına',
'per-repo': 'Depo başına',
global: 'Genel'
}
},
timeout: {
label: 'İstek zaman aşımı',
description:
'Honcho HTTP istekleri için saniye cinsinden zaman aşımı. Boş bırakılırsa varsayılan süre kullanılır.'
},
pinUserPeer: {
label: 'Kullanıcı kimliğini sabitle',
description:
'Ağ geçidinin çalışma anındaki kimliği yerine belirtilen kullanıcı adını kullanır. Tek kullanıcılı kurulumlarda belleği birleştirir.'
},
runtimePeerPrefix: {
label: 'Çalışma anındaki kimlik öneki',
description: 'Ağ geçidinden gelen bilinmeyen kullanıcı kimliklerine eklenecek önek.',
placeholder: 'ör. telegram_'
},
userPeerAliases: {
label: 'Kullanıcı kimliği eşleştirmeleri',
description: 'Ağ geçidinin kullanıcı kimliklerini sabit Honcho kimlikleriyle eşleştirir.'
},
sessionPeerPrefix: {
label: 'Oturum kimliği öneki',
description: 'Oturum kimliği adlarının başına ana bilgisayar adını ekler.'
},
sessions: {
label: 'Özel oturum eşleştirmeleri',
description: 'Çözümleyici anahtarına göre kullanılacak oturum kimlikleri.'
},
saveMessages: { label: 'Mesajları kaydet', description: 'Konuşma mesajlarını Honcho üzerinde saklar.' },
writeFrequency: {
label: 'Yazma sıklığı',
description: 'Mesajların yazılacağı zaman: async, turn, session veya her N turda bir.',
info: 'async: mesajları geldikçe arka planda yazar. turn: her turun sonunda yazar. session: oturum sona erdiğinde yazar. N sayısı: her N turda bir yazar.'
},
dialecticReasoningLevel: {
label: 'Akıl yürütme düzeyi',
description: 'Diyalektik (peer.chat) çağrıları için akıl yürütme çabası.',
options: reasoning
},
dialecticDynamic: {
label: 'Dinamik akıl yürütme',
description: 'Modelin her çağrı için akıl yürütme düzeyini değiştirmesine izin verir.'
},
dialecticMaxChars: {
label: 'En fazla sonuç karakteri',
description: 'Sistem istemine eklenecek diyalektik sonucunun karakter sınırı.'
},
dialecticDepth: { label: 'Derinlik', description: 'Her döngüdeki diyalektik geçiş sayısı (13).' },
dialecticDepthLevels: {
label: 'Geçiş başına düzeyler',
description: 'Her geçişin akıl yürütme düzeyi; dizinin uzunluğu derinlik değeriyle eşleşmelidir.'
},
dialecticMaxInputChars: {
label: 'En fazla girdi karakteri',
description: 'peer.chat() çağrısına gönderilen sorgunun karakter sınırı.'
},
reasoningHeuristic: {
label: 'Uyarlanabilir akıl yürütme',
description: 'Uzun sorgularda akıl yürütme düzeyini yükseltir.'
},
reasoningLevelCap: {
label: 'Akıl yürütme üst sınırı',
description: 'Uyarlanabilir seçimde kullanılabilecek en yüksek akıl yürütme düzeyi.',
options: reasoning
},
recallMode: {
label: 'Bellekten getirme yöntemi',
description: 'Bellek bilgisinin getirilme yöntemi: karma, yalnızca bağlam veya yalnızca araçlar.',
info: 'Karma: otomatik eklenen bağlam ve gerektiğinde bellek araçları. Yalnızca bağlam: araçlar olmadan bağlama ekleme. Yalnızca araçlar: model belleği açıkça sorgular; bağlama otomatik ekleme yapılmaz.',
options: { hybrid: 'Karma', context: 'Yalnızca bağlam', tools: 'Yalnızca araçlar' }
},
contextTokens: {
label: 'Bağlam token sınırı',
description: 'Otomatik eklenen bağlam için token sınırı. Boş bırakılırsa sınır uygulanmaz.',
placeholder: '(sınırsız)'
},
initOnSessionStart: {
label: 'Oturum başında hazırla',
description: 'Araçlar modunda oturumu ilk araç çağrısını beklemeden başlangıçta hazırlar.'
},
messageMaxChars: {
label: 'Mesaj karakter sınırı',
description: 'Honchoya gönderilen her mesaj için en fazla karakter sayısı.'
},
observationMode: {
label: 'Gözlem yöntemi',
description:
'Kimlik başına gözlem ön ayarı. Yönlü gözlem tüm yönleri izler; birleşik gözlem ortak bir görünüm kullanır.',
options: { directional: 'Yönlü', unified: 'Birleşik' }
}
},
hindsight: {
mode: {
label: 'Bağlantı yöntemi',
description: 'AITURK’ün Hindsight ile bağlantı kurma yöntemi.',
options: {
cloud: { label: 'Bulut', description: 'Hindsight Cloud API; yalnızca API anahtarı gerektirir.' },
local_external: { label: 'Mevcut yerel sunucu', description: 'Çalışan bir Hindsight sunucusuna bağlanır.' }
}
},
api_key: {
label: 'API anahtarı',
description: 'Hindsight API kimlik doğrulaması için kullanılır.',
placeholder: 'Hindsight API anahtarını girin'
},
api_url: { label: 'API adresi' },
bank_id: { label: 'Bellek bankası kimliği' },
recall_budget: { label: 'Bellekten getirme bütçesi', options: { low: 'Düşük', mid: 'Orta', high: 'Yüksek' } }
}
}
const GROUPS: Record<string, string> = {
Connection: 'Bağlantı',
Identity: 'Kimlik',
Session: 'Oturum',
'Message writing': 'Mesajların yazılması',
Dialectic: 'Diyalektik',
Reasoning: 'Akıl yürütme',
Recall: 'Bellekten getirme',
Limits: 'Sınırlar',
Observation: 'Gözlem'
}
export function localizeMemoryField(provider: string, field: MemoryProviderField, locale: string): MemoryProviderField {
const copy = locale === 'tr' ? TR_MEMORY_FIELDS[provider]?.[field.key] : undefined
if (!copy) {
return field
}
const { options, ...text } = copy
return {
...field,
...text,
group: GROUPS[field.group] ?? field.group,
options: field.options.map(option => {
const translated = options?.[option.value]
return translated
? { ...option, ...(typeof translated === 'string' ? { label: translated } : translated) }
: option
})
}
}