diff --git a/src/config/DeepgramConstants.ts b/src/config/DeepgramConstants.ts index cd0cfe5..3f2d277 100644 --- a/src/config/DeepgramConstants.ts +++ b/src/config/DeepgramConstants.ts @@ -32,32 +32,32 @@ export const UI_CONSTANTS = { // 텍스트 메시지 MESSAGES: { - HEADER: 'Deepgram configuration', + HEADER: 'Fast provider configuration', DESCRIPTION: - 'Configure Deepgram for advanced speech recognition with multiple language support and AI features.', - REGISTRY_WARNING: '⚠️ Model registry not available. Using default configuration.', - API_KEY_LABEL: 'Deepgram API key', - API_KEY_DESC: 'Enter your Deepgram API key for transcription', + 'Configure the fast transcription provider with multilingual support and advanced processing features.', + REGISTRY_WARNING: 'Model registry is not available. Using the default configuration.', + API_KEY_LABEL: 'Fast provider API key', + API_KEY_DESC: 'Enter your API key for transcription', API_KEY_PLACEHOLDER: 'Enter API key...', - API_KEY_SAVED: 'Deepgram API key saved', - API_KEY_REQUIRED: 'Please enter your Deepgram API key first', - MODEL_LABEL: 'Deepgram model', - MODEL_DESC: 'Select the Deepgram model for transcription', + API_KEY_SAVED: 'API key saved.', + API_KEY_REQUIRED: 'Enter your API key first.', + MODEL_LABEL: 'Fast model', + MODEL_DESC: 'Select the model for transcription', MODEL_PLACEHOLDER: 'Select a model...', FEATURES_HEADER: 'Features', ADVANCED_HEADER: 'Advanced settings', COST_HEADER: 'Cost estimation', VALIDATION_LABEL: 'Validate configuration', - VALIDATION_DESC: 'Test your Deepgram API key and settings', + VALIDATION_DESC: 'Test your API key and settings', VALIDATION_BUTTON: 'Validate', VALIDATING: 'Validating...', - VALIDATION_SUCCESS: '✅ Deepgram configuration is valid', - VALIDATION_ERROR: '❌ Invalid Deepgram API key or configuration', - FALLBACK_ERROR_TITLE: '⚠️ Deepgram settings error', + VALIDATION_SUCCESS: 'Configuration is valid.', + VALIDATION_ERROR: 'Invalid API key or configuration.', + FALLBACK_ERROR_TITLE: 'Provider settings error', FALLBACK_ERROR_DESC: 'Unable to load full configuration. Basic settings are available below.', CRITICAL_ERROR: - 'Deepgram settings could not be loaded. Please check the console for errors.', + 'Provider settings could not be loaded. Please check the console for errors.', }, // 스타일 diff --git a/src/ui/settings/SettingsTab.ts b/src/ui/settings/SettingsTab.ts index 7f8e171..8c595fa 100644 --- a/src/ui/settings/SettingsTab.ts +++ b/src/ui/settings/SettingsTab.ts @@ -49,7 +49,7 @@ export class SettingsTab extends PluginSettingTab { containerEl.addClass('speech-to-text-settings'); // Add main title - new Setting(containerEl).setName('Speech Note').setHeading(); + new Setting(containerEl).setName('Speech to text').setHeading(); this.debug('Title setting created'); // Add debug info section at the top @@ -153,8 +153,8 @@ export class SettingsTab extends PluginSettingTab { dropdown .addOption('auto', 'Automatic (recommended)') - .addOption('whisper', 'OpenAI Whisper') - .addOption('deepgram', 'Deepgram') + .addOption('whisper', 'General transcription') + .addOption('deepgram', 'Fast transcription') .setValue(this.plugin.settings.provider || 'auto') .onChange(async (value) => { this.debug('Provider dropdown changed to:', value); @@ -263,7 +263,7 @@ export class SettingsTab extends PluginSettingTab { .addOption('performance_optimized', 'Performance-optimized') .addOption('quality_optimized', 'Quality-optimized') .addOption('round_robin', 'Round-robin') - .addOption('ab_test', 'A/B tests') + .addOption('ab_test', 'Split testing') .setValue( this.plugin.settings.selectionStrategy || SelectionStrategy.PERFORMANCE_OPTIMIZED @@ -309,7 +309,7 @@ export class SettingsTab extends PluginSettingTab { } private renderWhisperSettings(containerEl: HTMLElement): void { - new Setting(containerEl).setName('Whisper').setHeading(); + new Setting(containerEl).setName('General transcription').setHeading(); // Whisper API Key this.renderWhisperApiKey(containerEl); @@ -317,7 +317,7 @@ export class SettingsTab extends PluginSettingTab { // API Endpoint new Setting(containerEl) .setName('API endpoint') - .setDesc('OpenAI API endpoint (leave the default unless using a custom endpoint)') + .setDesc('API endpoint (leave the default unless using a custom endpoint)') .addText((text) => text .setPlaceholder('https://api.openai.com/v1') @@ -366,10 +366,10 @@ export class SettingsTab extends PluginSettingTab { private renderWhisperApiKey(containerEl: HTMLElement): void { new Setting(containerEl) - .setName('API key for OpenAI') - .setDesc('Enter your API key for OpenAI Whisper transcription') + .setName('General provider API key') + .setDesc('Enter your API key for transcription') .addText((text) => { - text.setPlaceholder('sk-...') + text.setPlaceholder('Enter sk-...') .setValue(this.maskApiKey(this.plugin.settings.apiKey || '')) .onChange(async (value) => { if (value && !value.includes('*')) { @@ -378,7 +378,7 @@ export class SettingsTab extends PluginSettingTab { await this.plugin.saveSettings(); text.setValue(this.maskApiKey(value)); - new Notice('Saved the API key for OpenAI.'); + new Notice('Saved the API key.'); } }); @@ -400,10 +400,10 @@ export class SettingsTab extends PluginSettingTab { private renderDeepgramApiKey(containerEl: HTMLElement): void { new Setting(containerEl) - .setName('Deepgram API key') - .setDesc('Enter your deepgram API key for transcription') + .setName('Fast provider API key') + .setDesc('Enter your API key for transcription') .addText((text) => { - text.setPlaceholder('Enter deepgram API key...') + text.setPlaceholder('Enter your API key...') .setValue(this.maskApiKey(this.plugin.settings.deepgramApiKey || '')) .onChange(async (value) => { if (value && !value.includes('*')) { @@ -411,7 +411,7 @@ export class SettingsTab extends PluginSettingTab { await this.plugin.saveSettings(); text.setValue(this.maskApiKey(value)); - new Notice('Deepgram API key saved.'); + new Notice('Saved the API key.'); } }); @@ -438,11 +438,11 @@ export class SettingsTab extends PluginSettingTab { infoEl.empty(); const descriptions = { - auto: '🤖 intelligent selection between providers based on your configured strategy. Automatically chooses the best provider for each request.', + auto: 'Intelligent selection between providers based on your configured strategy. Automatically chooses the best provider for each request.', whisper: - '🎯 OpenAI Whisper - high-quality transcription with support for multiple languages. Best for general-purpose transcription.', + 'Balanced transcription with broad language support. Best for general-purpose transcription.', deepgram: - '⚡ Deepgram - fast, accurate transcription with advanced AI features. Best for real-time processing and speaker diarization.', + 'Fast transcription with advanced processing features. Best for real-time processing and speaker labeling.', }; infoEl.createEl('p', { text: descriptions[provider] }); @@ -524,11 +524,11 @@ export class SettingsTab extends PluginSettingTab { const provider = this.plugin.settings.provider || 'auto'; if (provider === 'whisper' || provider === 'auto') { new Setting(containerEl) - .setName('Whisper model') - .setDesc('Select the Whisper model to use') + .setName('General model') + .setDesc('Select the model to use') .addDropdown((dropdown) => dropdown - .addOption('whisper-1', 'Whisper v1 (default)') + .addOption('whisper-1', 'Default model (v1)') .setValue(this.plugin.settings.model || 'whisper-1') .onChange(async (value) => { this.plugin.settings.model = value; @@ -649,7 +649,7 @@ export class SettingsTab extends PluginSettingTab { .setDesc('If you find this plugin helpful, consider buying me a coffee ☕') .addButton((button) => button - .setButtonText('☕ Buy me a coffee') + .setButtonText('Buy me a coffee') .setCta() .onClick(() => { window.open('https://buymeacoffee.com/asyouplz', '_blank'); @@ -664,9 +664,9 @@ export class SettingsTab extends PluginSettingTab { private getProviderLabel(provider: 'auto' | 'whisper' | 'deepgram'): string { switch (provider) { case 'whisper': - return 'OpenAI Whisper'; + return 'General transcription'; case 'deepgram': - return 'Deepgram'; + return 'Fast transcription'; case 'auto': default: return 'Automatic'; diff --git a/src/ui/settings/SimpleSettingsTab.ts b/src/ui/settings/SimpleSettingsTab.ts index 016f724..16e3fbf 100644 --- a/src/ui/settings/SimpleSettingsTab.ts +++ b/src/ui/settings/SimpleSettingsTab.ts @@ -39,8 +39,8 @@ export class SimpleSettingsTab extends PluginSettingTab { this.debug('Adding options to dropdown...'); dropdown .addOption('auto', 'Automatic (recommended)') - .addOption('whisper', 'OpenAI Whisper') - .addOption('deepgram', 'Deepgram') + .addOption('whisper', 'General transcription') + .addOption('deepgram', 'Fast transcription') .setValue(this.plugin.settings.provider || 'auto') .onChange(async (value) => { this.debug('Provider changed to:', value); @@ -61,11 +61,11 @@ export class SimpleSettingsTab extends PluginSettingTab { // Auto 모드일 때는 양쪽 API 키 모두 표시 if (provider === 'auto' || provider === 'whisper') { new Setting(containerEl) - .setName('API key for OpenAI') - .setDesc('Enter your API key for OpenAI Whisper') + .setName('General provider API key') + .setDesc('Enter your API key for transcription') .addText((text) => text - .setPlaceholder('sk-...') + .setPlaceholder('Enter sk-...') .setValue(this.plugin.settings.apiKey || '') .onChange(async (value) => { this.plugin.settings.apiKey = value; @@ -77,11 +77,11 @@ export class SimpleSettingsTab extends PluginSettingTab { if (provider === 'auto' || provider === 'deepgram') { new Setting(containerEl) - .setName('Deepgram API key') - .setDesc('Enter your deepgram API key') + .setName('Fast provider API key') + .setDesc('Enter your API key') .addText((text) => text - .setPlaceholder('Enter deepgram API key...') + .setPlaceholder('Enter your API key...') .setValue(this.plugin.settings.deepgramApiKey || '') .onChange(async (value) => { this.plugin.settings.deepgramApiKey = value; @@ -92,8 +92,8 @@ export class SimpleSettingsTab extends PluginSettingTab { // Deepgram 모델 선택 if (provider === 'deepgram') { new Setting(containerEl) - .setName('Deepgram model') - .setDesc('Select the deepgram model to use') + .setName('Fast model') + .setDesc('Select the model to use') .addDropdown((dropdown) => dropdown .addOption('nova-2', 'Nova 2 (premium)') diff --git a/src/ui/settings/components/ApiKeyValidator.ts b/src/ui/settings/components/ApiKeyValidator.ts index d3d27d5..3736628 100644 --- a/src/ui/settings/components/ApiKeyValidator.ts +++ b/src/ui/settings/components/ApiKeyValidator.ts @@ -70,7 +70,9 @@ export class ApiKeyValidator { ); if (!hasWhisper) { - new Notice('The API key is valid, but it may not have access to Whisper.'); + new Notice( + 'The API key is valid, but it may not have access to the whisper model.' + ); } return true; diff --git a/src/ui/settings/components/AudioSettings.ts b/src/ui/settings/components/AudioSettings.ts index fae38b1..7069f40 100644 --- a/src/ui/settings/components/AudioSettings.ts +++ b/src/ui/settings/components/AudioSettings.ts @@ -37,11 +37,11 @@ export class AudioSettings { // Whisper 모델 선택 new Setting(containerEl) - .setName('Whisper model') - .setDesc('Choose which Whisper model to use') + .setName('General model') + .setDesc('Choose which model to use') .addDropdown((dropdown) => dropdown - .addOption('whisper-1', 'Whisper-1 default model') + .addOption('whisper-1', 'Default model') .setValue(this.plugin.settings.model) .onChange(async (value: string) => { if (value === 'whisper-1') { @@ -61,8 +61,8 @@ export class AudioSettings { .addOption('json', 'JSON (structured data)') .addOption('text', 'Text (plain text)') .addOption('verbose_json', 'Detailed JSON output') - .addOption('srt', 'Subtitle format (SRT)') - .addOption('vtt', 'WebVTT format (VTT)') + .addOption('srt', 'Subtitle format (.srt)') + .addOption('vtt', 'Caption format (.vtt)') .setValue( typeof this.plugin.settings['responseFormat'] === 'string' ? this.plugin.settings['responseFormat'] @@ -111,11 +111,11 @@ export class AudioSettings { // 파일 크기 제한 const fileSizeSetting = new Setting(containerEl) .setName('Maximum file size') - .setDesc('Maximum upload size in MB'); + .setDesc('Maximum upload size in megabytes'); const sizeValue = containerEl.createDiv({ cls: 'filesize-value' }); const currentSize = Math.round(this.plugin.settings.maxFileSize / (1024 * 1024)); - sizeValue.setText(`${currentSize} MB`); + sizeValue.setText(`${currentSize} megabytes`); fileSizeSetting.addSlider((slider) => slider @@ -123,7 +123,7 @@ export class AudioSettings { .setValue(currentSize) .onChange(async (value) => { this.plugin.settings.maxFileSize = value * 1024 * 1024; - sizeValue.setText(`${value} MB`); + sizeValue.setText(`${value} megabytes`); await this.plugin.saveSettings(); }) .setDynamicTooltip() @@ -179,7 +179,7 @@ export class AudioSettings { const limitList = limitations.createEl('ul'); const limits = [ - 'Maximum file size: 25 MB', + 'Maximum file size: 25 megabytes', 'Maximum audio length: unlimited (large files are split automatically)', 'Concurrent processing: 1 file', 'API request limit: 50 requests per minute', diff --git a/src/ui/settings/components/DeepgramSettings.ts b/src/ui/settings/components/DeepgramSettings.ts index aa35089..d694fd5 100644 --- a/src/ui/settings/components/DeepgramSettings.ts +++ b/src/ui/settings/components/DeepgramSettings.ts @@ -304,7 +304,7 @@ export class DeepgramSettings { this.updateUIAfterModelChange(); if (this.selectedModel) { - new Notice(`Selected model: ${this.selectedModel.name}`); + new Notice('Model selected.'); } } @@ -606,7 +606,7 @@ export class DeepgramSettings { const primaryList = noteEl.createEl('ul'); [ - 'Files larger than 50MB may experience timeout errors', + 'Files larger than 50 megabytes may experience timeout errors', 'Auto-chunking splits files into manageable pieces', 'Each chunk is processed separately and results are merged', ].forEach((item) => { diff --git a/src/ui/settings/components/DeepgramUIBuilder.ts b/src/ui/settings/components/DeepgramUIBuilder.ts index f9f2bce..22edc06 100644 --- a/src/ui/settings/components/DeepgramUIBuilder.ts +++ b/src/ui/settings/components/DeepgramUIBuilder.ts @@ -168,7 +168,7 @@ export class DeepgramUIBuilder { const warningEl = container.querySelector(`.budget-warning`) || container.createEl('p', { cls: 'budget-warning' }); - warningEl.textContent = `⚠️ Exceeds monthly budget of $${budget}`; + warningEl.textContent = `Exceeds monthly budget of $${budget}`; warningEl.classList.add(UI_CONSTANTS.CLASSES.WARNING); } } diff --git a/src/ui/settings/components/ProviderSettings.ts b/src/ui/settings/components/ProviderSettings.ts index 3d151d8..19f4b03 100644 --- a/src/ui/settings/components/ProviderSettings.ts +++ b/src/ui/settings/components/ProviderSettings.ts @@ -80,9 +80,9 @@ export class ProviderSettings { .setDesc('Choose a specific provider or use automatic selection') .addDropdown((dropdown) => { dropdown - .addOption('auto', '🤖 Automatic (recommended)') - .addOption('whisper', '🎯 OpenAI Whisper') - .addOption('deepgram', '🚀 Deepgram') + .addOption('auto', 'Automatic (recommended)') + .addOption('whisper', 'General transcription') + .addOption('deepgram', 'Fast transcription') .setValue(this.currentProvider) .onChange(async (value) => { if (this.isProviderValue(value)) { @@ -111,18 +111,18 @@ export class ProviderSettings { this.renderSingleApiKey( apiKeysContainer, 'whisper', - 'API key for OpenAI', - 'Enter your API key for OpenAI (starts with sk-)', - 'sk-...' + 'General provider API key', + 'Enter your API key (starts with sk-)', + 'Enter sk-...' ); // Deepgram API Key this.renderSingleApiKey( apiKeysContainer, 'deepgram', - 'Deepgram API key', - 'Enter your deepgram API key', - 'your-deepgram-api-key' + 'Fast provider API key', + 'Enter your API key', + 'Enter your API key...' ); } @@ -219,11 +219,11 @@ export class ProviderSettings { .setDesc('How should the system choose between providers?') .addDropdown((dropdown) => { dropdown - .addOption(SelectionStrategy.COST_OPTIMIZED, '💰 Cost-optimized') - .addOption(SelectionStrategy.PERFORMANCE_OPTIMIZED, '⚡ Performance-optimized') - .addOption(SelectionStrategy.QUALITY_OPTIMIZED, '✨ Quality-optimized') - .addOption(SelectionStrategy.ROUND_ROBIN, '🔄 Round-robin') - .addOption(SelectionStrategy.AB_TEST, '🧪 A/B tests') + .addOption(SelectionStrategy.COST_OPTIMIZED, 'Cost-optimized') + .addOption(SelectionStrategy.PERFORMANCE_OPTIMIZED, 'Performance-optimized') + .addOption(SelectionStrategy.QUALITY_OPTIMIZED, 'Quality-optimized') + .addOption(SelectionStrategy.ROUND_ROBIN, 'Round-robin') + .addOption(SelectionStrategy.AB_TEST, 'Split testing') .setValue( this.plugin.settings.selectionStrategy || SelectionStrategy.PERFORMANCE_OPTIMIZED @@ -282,7 +282,7 @@ export class ProviderSettings { const abTestEl = containerEl.createDiv({ cls: 'sn-ab-test-settings' }); new Setting(abTestEl) - .setName('Enable A/B tests') + .setName('Enable split testing') .setDesc('Compare providers to find the best one for your use case') .addToggle((toggle) => { toggle @@ -320,8 +320,8 @@ export class ProviderSettings { // 분할 비율 표시 const displayEl = containerEl.createDiv({ cls: 'sn-split-display' }); - displayEl.createEl('span', { text: `Whisper: ${currentSplit}%` }); - displayEl.createEl('span', { text: `Deepgram: ${100 - currentSplit}%` }); + displayEl.createEl('span', { text: `General: ${currentSplit}%` }); + displayEl.createEl('span', { text: `Fast: ${100 - currentSplit}%` }); }); } @@ -349,7 +349,7 @@ export class ProviderSettings { private renderMetrics(containerEl: HTMLElement): void { const metricsEl = containerEl.createDiv({ cls: 'sn-metrics-container' }); - metricsEl.createEl('h4', { text: '📊 Performance metrics' }); + metricsEl.createEl('h4', { text: 'Performance metrics' }); // 각 Provider별 메트릭 this.renderProviderMetrics(metricsEl, 'whisper'); @@ -407,17 +407,17 @@ export class ProviderSettings { */ private renderComparisonChart(containerEl: HTMLElement): void { const chartEl = containerEl.createDiv({ cls: 'sn-comparison-chart' }); - chartEl.createEl('h5', { text: '📈 Provider comparison' }); + chartEl.createEl('h5', { text: 'Provider comparison' }); // 간단한 막대 차트 (실제로는 Chart.js 등 사용 권장) const chartContent = chartEl.createDiv({ cls: 'sn-chart-content' }); const bars = chartContent.createDiv({ cls: 'sn-chart-bars' }); const whisperBar = bars.createDiv({ cls: 'sn-chart-bar sn-chart-bar--whisper' }); - whisperBar.createEl('span', { cls: 'sn-bar-label', text: 'Whisper' }); + whisperBar.createEl('span', { cls: 'sn-bar-label', text: 'General' }); const deepgramBar = bars.createDiv({ cls: 'sn-chart-bar sn-chart-bar--deepgram' }); - deepgramBar.createEl('span', { cls: 'sn-bar-label', text: 'Deepgram' }); + deepgramBar.createEl('span', { cls: 'sn-bar-label', text: 'Fast' }); const legend = chartContent.createDiv({ cls: 'sn-chart-legend' }); legend.createEl('span', { text: 'Overall performance score' }); @@ -434,10 +434,10 @@ export class ProviderSettings { if (whisperConnected || deepgramConnected) { statusEl.addClass('sn-connection-status--connected'); - statusEl.setText('✅ connected'); + statusEl.setText('Connected'); } else { statusEl.addClass('sn-connection-status--disconnected'); - statusEl.setText('⚠️ no providers configured'); + statusEl.setText('No providers configured'); } } @@ -575,9 +575,9 @@ export class ProviderSettings { */ private showProviderInfo(provider: string): void { const info: Record = { - auto: '🤖 System will automatically select the best provider based on performance and availability', - whisper: '🎯 OpenAI Whisper - high accuracy, supports 50+ languages', - deepgram: '🚀 Deepgram - fast real-time transcription with excellent accuracy', + auto: 'The system will automatically select the best provider based on performance and availability.', + whisper: 'Balanced transcription with strong multilingual support.', + deepgram: 'Fast transcription with strong real-time performance.', }; new Notice(info[provider] || 'Provider selected'); @@ -588,11 +588,11 @@ export class ProviderSettings { */ private showStrategyInfo(strategy: string): void { const info: Record = { - [SelectionStrategy.COST_OPTIMIZED]: '💰 Will choose the most cost-effective provider', - [SelectionStrategy.PERFORMANCE_OPTIMIZED]: '⚡ Will choose the fastest provider', - [SelectionStrategy.QUALITY_OPTIMIZED]: '✨ Will choose the most accurate provider', - [SelectionStrategy.ROUND_ROBIN]: '🔄 Will alternate between providers equally', - [SelectionStrategy.AB_TEST]: '🧪 Will split traffic for comparison', + [SelectionStrategy.COST_OPTIMIZED]: 'Will choose the most cost-effective provider.', + [SelectionStrategy.PERFORMANCE_OPTIMIZED]: 'Will choose the fastest provider.', + [SelectionStrategy.QUALITY_OPTIMIZED]: 'Will choose the most accurate provider.', + [SelectionStrategy.ROUND_ROBIN]: 'Will alternate between providers equally.', + [SelectionStrategy.AB_TEST]: 'Will split traffic for comparison.', }; new Notice(info[strategy] || 'Strategy selected'); @@ -603,8 +603,8 @@ export class ProviderSettings { */ private getProviderDisplayName(provider: TranscriptionProvider): string { const names: Record = { - whisper: 'OpenAI Whisper', - deepgram: 'Deepgram', + whisper: 'General transcription', + deepgram: 'Fast transcription', }; return names[provider] || provider; } diff --git a/src/ui/settings/components/ShortcutSettings.ts b/src/ui/settings/components/ShortcutSettings.ts index e27038b..8e19513 100644 --- a/src/ui/settings/components/ShortcutSettings.ts +++ b/src/ui/settings/components/ShortcutSettings.ts @@ -150,7 +150,7 @@ export class ShortcutSettings { if (conflicts.length > 0) { const conflictEl = containerEl.createDiv({ cls: 'shortcut-conflicts' }); - conflictEl.createEl('h4', { text: '⚠️ Shortcut conflicts detected' }); + conflictEl.createEl('h4', { text: 'Shortcut conflicts detected' }); const conflictList = conflictEl.createEl('ul'); conflicts.forEach((conflict) => { @@ -485,7 +485,7 @@ class ShortcutModal extends Modal { this.isRecording = true; this.recordedKeys.clear(); - button.setButtonText('Recording... (Esc to cancel)'); + button.setButtonText('Recording... (press escape to cancel)'); button.buttonEl.addClass('is-recording'); // 키 이벤트 리스너 diff --git a/src/ui/settings/provider/components/AdvancedSettingsPanel.ts b/src/ui/settings/provider/components/AdvancedSettingsPanel.ts index fd7c944..313e6e4 100644 --- a/src/ui/settings/provider/components/AdvancedSettingsPanel.ts +++ b/src/ui/settings/provider/components/AdvancedSettingsPanel.ts @@ -63,7 +63,7 @@ export class AdvancedSettingsPanel { const headerEl = containerEl.createDiv({ cls: 'advanced-panel-header' }); headerEl.createEl('h4', { - text: '⚙️ advanced configuration', + text: 'Advanced configuration', cls: 'advanced-title', }); @@ -96,11 +96,11 @@ export class AdvancedSettingsPanel { .setDesc('How the system selects providers when in auto mode') .addDropdown((dropdown) => { dropdown - .addOption(SelectionStrategy.PERFORMANCE_OPTIMIZED, '⚡ performance first') - .addOption(SelectionStrategy.COST_OPTIMIZED, '💰 cost optimized') - .addOption(SelectionStrategy.QUALITY_OPTIMIZED, '✨ quality first') - .addOption(SelectionStrategy.ROUND_ROBIN, '🔄 round robin') - .addOption(SelectionStrategy.AB_TEST, '🧪 a/b testing') + .addOption(SelectionStrategy.PERFORMANCE_OPTIMIZED, 'Performance first') + .addOption(SelectionStrategy.COST_OPTIMIZED, 'Cost-optimized') + .addOption(SelectionStrategy.QUALITY_OPTIMIZED, 'Quality first') + .addOption(SelectionStrategy.ROUND_ROBIN, 'Round-robin') + .addOption(SelectionStrategy.AB_TEST, 'Split testing') .setValue( this.plugin.settings.selectionStrategy || SelectionStrategy.PERFORMANCE_OPTIMIZED @@ -206,7 +206,7 @@ export class AdvancedSettingsPanel { // Monthly Budget new Setting(sectionEl) .setName('Monthly budget') - .setDesc('Maximum monthly spending in usd (leave empty for unlimited)') + .setDesc('Maximum monthly spending in dollars (leave empty for unlimited)') .addText((text) => { text.setPlaceholder('50.00') .setValue(this.plugin.settings.monthlyBudget?.toString() || '') @@ -298,7 +298,7 @@ export class AdvancedSettingsPanel { // Post-processing new Setting(sectionEl) .setName('Enable post-processing') - .setDesc('Apply nlp corrections to improve accuracy') + .setDesc('Apply text corrections to improve accuracy') .addToggle((toggle) => { toggle .setValue(this.plugin.settings.enablePostProcessing || true) @@ -321,11 +321,11 @@ export class AdvancedSettingsPanel { * A/B Testing 섹션 */ private renderABTestingSection(containerEl: HTMLElement): void { - const sectionEl = this.createSection(containerEl, 'A/B tests', 'ab-test-section'); + const sectionEl = this.createSection(containerEl, 'Split testing', 'ab-test-section'); // Enable A/B Testing new Setting(sectionEl) - .setName('Enable a/b testing') + .setName('Enable split testing') .setDesc('Compare providers to find optimal configuration') .addToggle((toggle) => { toggle.setValue(this.abTestEnabled).onChange(async (value) => { @@ -399,7 +399,7 @@ export class AdvancedSettingsPanel { // Test Results Button new Setting(sectionEl) .setName('View results') - .setDesc('See current a/b test results') + .setDesc('See current test results') .addButton((button) => { button .setButtonText('View results') @@ -880,7 +880,7 @@ export class AdvancedSettingsPanel { */ private showABTestResults(): void { // TODO: Implement A/B test results modal - new Notice('A/b test results coming soon.'); + new Notice('Test results are coming soon.'); } /**