i18n(model-council): localize model-hint picker labels (#3704)

This commit is contained in:
obchain
2026-06-18 17:56:34 +05:30
committed by GitHub
parent eceb2d135d
commit 628f40d69b
15 changed files with 78 additions and 6 deletions
@@ -84,12 +84,14 @@ interface ModelPickerState {
onSelect: (model: string) => void;
}
// `value` is the stable hint identifier; `labelKey` is resolved via `useT()`
// at render (this is a module-level const with no hook scope of its own).
const MODEL_HINTS = [
{ value: 'default', label: 'Default' },
{ value: 'hint:chat', label: 'Chat' },
{ value: 'hint:reasoning', label: 'Reasoning' },
{ value: 'hint:code', label: 'Code' },
{ value: 'hint:summarize', label: 'Summarize' },
{ value: 'default', labelKey: 'modelCouncil.hint.default' },
{ value: 'hint:chat', labelKey: 'modelCouncil.hint.chat' },
{ value: 'hint:reasoning', labelKey: 'modelCouncil.hint.reasoning' },
{ value: 'hint:code', labelKey: 'modelCouncil.hint.code' },
{ value: 'hint:summarize', labelKey: 'modelCouncil.hint.summarize' },
] as const;
interface ConnectedModelProvider {
@@ -326,7 +328,7 @@ const ModelPickerDialog = ({
? 'border-primary-500 bg-primary-50 text-primary-700 dark:bg-primary-500/15 dark:text-primary-200'
: 'border-stone-200 text-stone-700 hover:bg-stone-50 dark:border-neutral-700 dark:text-neutral-200 dark:hover:bg-neutral-900'
}`}>
{hint.label}
{t(hint.labelKey)}
<span className="block font-mono text-[11px] text-stone-500 dark:text-neutral-400">
{hint.value}
</span>
+5
View File
@@ -5140,6 +5140,11 @@ const messages: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': 'اختر تلميح توجيه أو حدد نموذج مزود بدقة.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'محادثة',
'modelCouncil.hint.code': 'الشيفرة',
'modelCouncil.hint.default': 'افتراضي',
'modelCouncil.hint.reasoning': 'الاستدلال',
'modelCouncil.hint.summarize': 'تلخيص',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'المزود + النموذج',
'modelCouncil.modelProviderLabel': 'مزود النموذج',
+5
View File
@@ -5242,6 +5242,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'রাউটিং ইঙ্গিত নির্বাচন করুন বা সুনির্দিষ্ট প্রদানকারী মডেল পিন করুন।',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'চ্যাট',
'modelCouncil.hint.code': 'কোড',
'modelCouncil.hint.default': 'ডিফল্ট',
'modelCouncil.hint.reasoning': 'যুক্তি',
'modelCouncil.hint.summarize': 'সারসংক্ষেপ',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'প্রদানকারী + মডেল',
'modelCouncil.modelProviderLabel': 'মডেল প্রদানকারী',
+5
View File
@@ -5379,6 +5379,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Wählen Sie einen Routing-Hinweis oder pinnen Sie ein genaues Anbietermodell.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Chat',
'modelCouncil.hint.code': 'Code',
'modelCouncil.hint.default': 'Standard',
'modelCouncil.hint.reasoning': 'Schlussfolgern',
'modelCouncil.hint.summarize': 'Zusammenfassung',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Anbieter + Modell',
'modelCouncil.modelProviderLabel': 'Modellanbieter',
+5
View File
@@ -543,6 +543,11 @@ const en: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': 'Select a routing hint or pin an exact provider model.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Chat',
'modelCouncil.hint.code': 'Code',
'modelCouncil.hint.default': 'Default',
'modelCouncil.hint.reasoning': 'Reasoning',
'modelCouncil.hint.summarize': 'Summarize',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Provider + model',
'modelCouncil.modelProviderLabel': 'Model provider',
+5
View File
@@ -5351,6 +5351,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Selecciona una pista de enrutamiento o fija un modelo de proveedor exacto.',
'modelCouncil.closeModelPicker': 'Cerrar',
'modelCouncil.hint.chat': 'Chat',
'modelCouncil.hint.code': 'Código',
'modelCouncil.hint.default': 'Predeterminado',
'modelCouncil.hint.reasoning': 'Razonamiento',
'modelCouncil.hint.summarize': 'Resumen',
'modelCouncil.modelPickerHints': 'Sugerencias',
'modelCouncil.modelPickerProviderModel': 'Proveedor + modelo',
'modelCouncil.modelProviderLabel': 'Proveedor del modelo',
+5
View File
@@ -5369,6 +5369,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Sélectionnez un indice de routage ou épinglez un modèle fournisseur exact.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Conversation',
'modelCouncil.hint.code': 'Code',
'modelCouncil.hint.default': 'Par défaut',
'modelCouncil.hint.reasoning': 'Raisonnement',
'modelCouncil.hint.summarize': 'Résumé',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Fournisseur + modèle',
'modelCouncil.modelProviderLabel': 'Fournisseur du modèle',
+5
View File
@@ -5246,6 +5246,11 @@ const messages: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': 'रूटिंग संकेत चुनें या सटीक प्रदाता मॉडल पिन करें।',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'चैट',
'modelCouncil.hint.code': 'कोड',
'modelCouncil.hint.default': 'डिफ़ॉल्ट',
'modelCouncil.hint.reasoning': 'तर्क',
'modelCouncil.hint.summarize': 'सारांश',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'प्रदाता + मॉडल',
'modelCouncil.modelProviderLabel': 'मॉडल प्रदाता',
+5
View File
@@ -5259,6 +5259,11 @@ const messages: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': 'Pilih petunjuk routing atau pin model penyedia yang tepat.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Obrolan',
'modelCouncil.hint.code': 'Kode',
'modelCouncil.hint.default': 'Bawaan',
'modelCouncil.hint.reasoning': 'Penalaran',
'modelCouncil.hint.summarize': 'Ringkasan',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Penyedia + model',
'modelCouncil.modelProviderLabel': 'Penyedia model',
+5
View File
@@ -5338,6 +5338,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Seleziona un suggerimento di routing o fissa un modello fornitore esatto.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Chat',
'modelCouncil.hint.code': 'Codice',
'modelCouncil.hint.default': 'Predefinito',
'modelCouncil.hint.reasoning': 'Ragionamento',
'modelCouncil.hint.summarize': 'Riassunto',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Fornitore + modello',
'modelCouncil.modelProviderLabel': 'Fornitore del modello',
+5
View File
@@ -5194,6 +5194,11 @@ const messages: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': '라우팅 힌트를 선택하거나 정확한 공급자 모델을 고정하세요.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': '채팅',
'modelCouncil.hint.code': '코드',
'modelCouncil.hint.default': '기본값',
'modelCouncil.hint.reasoning': '추론',
'modelCouncil.hint.summarize': '요약',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': '공급자 + 모델',
'modelCouncil.modelProviderLabel': '모델 공급자',
+5
View File
@@ -5293,6 +5293,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Wybierz wskazówkę routingu lub przypnij dokładny model dostawcy.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Czat',
'modelCouncil.hint.code': 'Kod',
'modelCouncil.hint.default': 'Domyślny',
'modelCouncil.hint.reasoning': 'Rozumowanie',
'modelCouncil.hint.summarize': 'Podsumowanie',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Dostawca + model',
'modelCouncil.modelProviderLabel': 'Dostawca modelu',
+5
View File
@@ -5335,6 +5335,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Selecione uma dica de roteamento ou fixe um modelo de provedor exato.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Bate-papo',
'modelCouncil.hint.code': 'Código',
'modelCouncil.hint.default': 'Padrão',
'modelCouncil.hint.reasoning': 'Raciocínio',
'modelCouncil.hint.summarize': 'Resumo',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Provedor + modelo',
'modelCouncil.modelProviderLabel': 'Provedor do modelo',
+5
View File
@@ -5299,6 +5299,11 @@ const messages: TranslationMap = {
'modelCouncil.modelPickerHelp':
'Выберите подсказку маршрутизации или закрепите точную модель провайдера.',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': 'Чат',
'modelCouncil.hint.code': 'Код',
'modelCouncil.hint.default': 'По умолчанию',
'modelCouncil.hint.reasoning': 'Рассуждение',
'modelCouncil.hint.summarize': 'Сводка',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': 'Провайдер + модель',
'modelCouncil.modelProviderLabel': 'Провайдер модели',
+5
View File
@@ -4983,6 +4983,11 @@ const messages: TranslationMap = {
'modelCouncil.selectModel': 'Select',
'modelCouncil.modelPickerHelp': '选择路由提示或指定精确的供应商模型。',
'modelCouncil.closeModelPicker': 'Close',
'modelCouncil.hint.chat': '聊天',
'modelCouncil.hint.code': '代码',
'modelCouncil.hint.default': '默认',
'modelCouncil.hint.reasoning': '推理',
'modelCouncil.hint.summarize': '总结',
'modelCouncil.modelPickerHints': 'Hints',
'modelCouncil.modelPickerProviderModel': '供应商 + 模型',
'modelCouncil.modelProviderLabel': '模型供应商',