Skip to content

Commit af98fc1

Browse files
committed
Added translations to AI settings
1 parent 368dd14 commit af98fc1

6 files changed

Lines changed: 67 additions & 38 deletions

File tree

src/Services/InfoProviderSystem/Providers/AIInfoExtractor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function getProviderInfo(): array
6060
return [
6161
'name' => 'AI Information Extractor',
6262
'description' => 'Extract part info from any URL using OpenRouter LLM',
63-
'url' => 'https://openrouter.ai',
63+
//'url' => 'https://openrouter.ai',
6464
'disabled_help' => 'Configure OpenRouter API key in settings',
6565
'settings_class' => AIExtractorSettings::class,
6666
];
@@ -73,7 +73,7 @@ public function getProviderKey(): string
7373

7474
public function isActive(): bool
7575
{
76-
return $this->settings->platform !== null && $this->settings->model !== '';
76+
return $this->settings->platform !== null && $this->settings->model !== null && $this->settings->model !== '';
7777
}
7878

7979
public function searchByKeyword(string $keyword): array
@@ -171,7 +171,7 @@ private function callLLM(string $htmlContent, string $url): array
171171
$aiPlatform = $this->AIPlatformRegistry->getPlatform($this->settings->platform ?? throw new \RuntimeException('No AI platform selected') );
172172

173173
//'openai/gpt-5-mini'
174-
$result = $aiPlatform->invoke($this->settings->model, $input, [
174+
$result = $aiPlatform->invoke($this->settings->model ?? throw new \RuntimeException('No model selected'), $input, [
175175
'response_format' => [
176176
'type' => 'json_schema',
177177
'json_schema' => $this->jsonSchemaConverter->getJSONSchema(),

src/Settings/AISettings/AISettings.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
use Jbtronics\SettingsBundle\Settings\SettingsTrait;
3030
use Symfony\Component\Translation\TranslatableMessage as TM;
3131

32-
#[Settings(label: new TM("settings.ai"), description: "settings.ai.help")]
32+
#[Settings(label: new TM("settings.ai"))]
3333
#[SettingsIcon("fa-brain")]
3434
class AISettings
3535
{

src/Settings/AISettings/LMStudioSettings.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
use Symfony\Component\Form\Extension\Core\Type\UrlType;
3434
use Symfony\Component\Translation\TranslatableMessage as TM;
3535

36-
#[Settings(name: 'ai_lmstudio', label: new TM("settings.ai.openrouter"), description: "settings.ai.lmstudio.help")]
37-
#[SettingsIcon("fa-brain")]
36+
#[Settings(name: 'ai_lmstudio', label: new TM("settings.ai.lmstudio"))]
37+
#[SettingsIcon("fa-robot")]
3838
class LMStudioSettings implements AIPlatformSettingsInterface
3939
{
4040
use SettingsTrait;

src/Settings/AISettings/OpenRouterSettings.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
use Symfony\Component\Translation\TranslatableMessage as TM;
3434

3535
#[Settings(name: 'ai_openrouter', label: new TM("settings.ai.openrouter"), description: "settings.ai.openrouter.help")]
36-
#[SettingsIcon("fa-brain")]
36+
#[SettingsIcon("fa-robot")]
3737
class OpenRouterSettings implements AIPlatformSettingsInterface
3838
{
3939
use SettingsTrait;

src/Settings/InfoProviderSystem/AIExtractorSettings.php

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,25 @@
3535
use Symfony\Component\Translation\TranslatableMessage as TM;
3636

3737
#[Settings(name: "ai_extractor", label: new TM("settings.ips.ai_extractor"), description: new TM("settings.ips.ai_extractor.description"))]
38-
#[SettingsIcon("fa-robot")]
38+
#[SettingsIcon("fa-plug")]
3939
class AIExtractorSettings
4040
{
4141
private const MODEL_SELECTOR_LABEL = 'ai_extractor';
4242

4343
use SettingsTrait;
4444

45-
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.ai_platform"), description: new TM("settings.ips.ai_extractor.ai_platform.help"),
45+
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.ai_platform"),
4646
formType: AiPlatformChoiceType::class, formOptions: ['platform_selector_label' => self::MODEL_SELECTOR_LABEL],
47-
envVar: "string:PROVIDER_AI_EXTRACTOR_API_KEY", envVarMode: EnvVarMode::OVERWRITE
4847
)]
4948
public ?AIPlatforms $platform = null;
5049

51-
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.model"), description: new TM("settings.ips.ai_extractor.model.description"),
50+
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.model"), description: new TM("settings.ips.ai_extractor.model.help"),
5251
formType: AiModelsType::class, formOptions: ['platform_selector' => self::MODEL_SELECTOR_LABEL, 'filter_capability' => Capability::OUTPUT_STRUCTURED],
53-
envVar: "string:PROVIDER_AI_EXTRACTOR_MODEL", envVarMode: EnvVarMode::OVERWRITE
5452
)]
55-
public string $model = 'z-ai/glm-4.7';
53+
public ?string $model = null;
5654

57-
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.enabled"), description: new TM("settings.ips.ai_extractor.enabled.description"),
58-
envVar: "bool:PROVIDER_AI_EXTRACTOR_ENABLED", envVarMode: EnvVarMode::OVERWRITE
59-
)]
60-
public bool $enabled = false;
61-
62-
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.max_content_length"), description: new TM("settings.ips.ai_extractor.max_content_length.description"),
63-
envVar: "int:PROVIDER_AI_EXTRACTOR_MAX_CONTENT_LENGTH", envVarMode: EnvVarMode::OVERWRITE
55+
#[SettingsParameter(label: new TM("settings.ips.ai_extractor.max_content_length"),
56+
description: new TM("settings.ips.ai_extractor.max_content_length.description"),
6457
)]
6558
public int $maxContentLength = 50000;
6659
}

translations/messages.en.xlf

Lines changed: 54 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2780,7 +2780,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
27802780
<target>Name</target>
27812781
</segment>
27822782
</unit>
2783-
<unit id="sIvAlUe" name="part.table.si_value">
2783+
<unit id="A1bHPnR" name="part.table.si_value">
27842784
<segment state="translated">
27852785
<source>part.table.si_value</source>
27862786
<target>SI Value</target>
@@ -7218,13 +7218,13 @@ Element 1 -&gt; Element 1.2</target>
72187218
<target>Subprojects</target>
72197219
</segment>
72207220
</unit>
7221-
<unit id="prjTtlBP" name="project.info.total_build_price">
7221+
<unit id="_NstC62" name="project.info.total_build_price">
72227222
<segment state="translated">
72237223
<source>project.info.total_build_price</source>
72247224
<target>Total build price</target>
72257225
</segment>
72267226
</unit>
7227-
<unit id="prjUntBP" name="project.info.per_unit_price">
7227+
<unit id="Oof1G0D" name="project.info.per_unit_price">
72287228
<segment state="translated">
72297229
<source>project.info.per_unit_price</source>
72307230
<target>per unit</target>
@@ -7254,7 +7254,7 @@ Element 1 -&gt; Element 1.2</target>
72547254
<target>Price</target>
72557255
</segment>
72567256
</unit>
7257-
<unit id="bomExPrc" name="project.bom.ext_price">
7257+
<unit id="gLWQ4cF" name="project.bom.ext_price">
72587258
<segment state="translated">
72597259
<source>project.bom.ext_price</source>
72607260
<target>Extended Price</target>
@@ -10053,85 +10053,85 @@ Please note, that you can not impersonate a disabled user. If you try you will g
1005310053
<target>When enabled, the datasheet field in KiCad will link to the actual PDF file (if found). When disabled, it will link to the Part-DB page instead. The Part-DB page link is always available as a separate "Part-DB URL" field.</target>
1005410054
</segment>
1005510055
</unit>
10056-
<unit id="e2e7mR1" name="settings.misc.kicad_eda.editor.title">
10056+
<unit id="h2ChJ6Y" name="settings.misc.kicad_eda.editor.title">
1005710057
<segment state="translated">
1005810058
<source>settings.misc.kicad_eda.editor.title</source>
1005910059
<target>KiCad autocomplete lists</target>
1006010060
</segment>
1006110061
</unit>
10062-
<unit id="qjv1VVx" name="settings.misc.kicad_eda.editor.link">
10062+
<unit id="C97hNXL" name="settings.misc.kicad_eda.editor.link">
1006310063
<segment state="translated">
1006410064
<source>settings.misc.kicad_eda.editor.link</source>
1006510065
<target>Autocomplete settings</target>
1006610066
</segment>
1006710067
</unit>
10068-
<unit id="f0qkcqg" name="settings.misc.kicad_eda.editor.description">
10068+
<unit id="pJeX5wZ" name="settings.misc.kicad_eda.editor.description">
1006910069
<segment state="translated">
1007010070
<source>settings.misc.kicad_eda.editor.description</source>
1007110071
<target>Configure whether KiCad autocomplete uses the autogenerated default lists or your custom override files. The custom files are editable here, while the default files are shown read-only for reference.</target>
1007210072
</segment>
1007310073
</unit>
10074-
<unit id="AS3yDlb" name="settings.misc.kicad_eda.editor.footprints">
10074+
<unit id="mumlQUV" name="settings.misc.kicad_eda.editor.footprints">
1007510075
<segment state="translated">
1007610076
<source>settings.misc.kicad_eda.editor.footprints</source>
1007710077
<target>Footprints list</target>
1007810078
</segment>
1007910079
</unit>
10080-
<unit id="Jj_YR7n" name="settings.misc.kicad_eda.editor.footprints.help">
10080+
<unit id="6VCC6T8" name="settings.misc.kicad_eda.editor.footprints.help">
1008110081
<segment state="translated">
1008210082
<source>settings.misc.kicad_eda.editor.footprints.help</source>
1008310083
<target>One entry per line. Used as autocomplete suggestions for KiCad footprint fields.</target>
1008410084
</segment>
1008510085
</unit>
10086-
<unit id="ELd3KQK" name="settings.misc.kicad_eda.editor.symbols">
10086+
<unit id="3EPsJaG" name="settings.misc.kicad_eda.editor.symbols">
1008710087
<segment state="translated">
1008810088
<source>settings.misc.kicad_eda.editor.symbols</source>
1008910089
<target>Symbols list</target>
1009010090
</segment>
1009110091
</unit>
10092-
<unit id="A9TOJgM" name="settings.misc.kicad_eda.editor.symbols.help">
10092+
<unit id="8JyqD1f" name="settings.misc.kicad_eda.editor.symbols.help">
1009310093
<segment state="translated">
1009410094
<source>settings.misc.kicad_eda.editor.symbols.help</source>
1009510095
<target>One entry per line. Used as autocomplete suggestions for KiCad symbol fields.</target>
1009610096
</segment>
1009710097
</unit>
10098-
<unit id="tWYlL0u" name="settings.misc.kicad_eda.use_custom_list">
10098+
<unit id="Ops1y13" name="settings.misc.kicad_eda.use_custom_list">
1009910099
<segment state="translated">
1010010100
<source>settings.misc.kicad_eda.use_custom_list</source>
1010110101
<target>Use custom autocomplete lists</target>
1010210102
</segment>
1010310103
</unit>
10104-
<unit id="v0LK7n6" name="settings.misc.kicad_eda.use_custom_list.help">
10104+
<unit id="AjQJzDB" name="settings.misc.kicad_eda.use_custom_list.help">
1010510105
<segment state="translated">
1010610106
<source>settings.misc.kicad_eda.use_custom_list.help</source>
1010710107
<target>When enabled, KiCad autocomplete uses public/kicad/footprints_custom.txt and public/kicad/symbols_custom.txt instead of the autogenerated default files.</target>
1010810108
</segment>
1010910109
</unit>
10110-
<unit id="Yl_fqfV" name="settings.misc.kicad_eda.editor.custom_footprints">
10110+
<unit id="TfJvNLm" name="settings.misc.kicad_eda.editor.custom_footprints">
1011110111
<segment state="translated">
1011210112
<source>settings.misc.kicad_eda.editor.custom_footprints</source>
1011310113
<target>Custom footprints list</target>
1011410114
</segment>
1011510115
</unit>
10116-
<unit id="GuD2JcQ" name="settings.misc.kicad_eda.editor.custom_symbols">
10116+
<unit id="6nsnYiB" name="settings.misc.kicad_eda.editor.custom_symbols">
1011710117
<segment state="translated">
1011810118
<source>settings.misc.kicad_eda.editor.custom_symbols</source>
1011910119
<target>Custom symbols list</target>
1012010120
</segment>
1012110121
</unit>
10122-
<unit id="k6m9b5F" name="settings.misc.kicad_eda.editor.default_footprints">
10122+
<unit id="bABze6_" name="settings.misc.kicad_eda.editor.default_footprints">
1012310123
<segment state="translated">
1012410124
<source>settings.misc.kicad_eda.editor.default_footprints</source>
1012510125
<target>Default footprints list</target>
1012610126
</segment>
1012710127
</unit>
10128-
<unit id="bKkF8mM" name="settings.misc.kicad_eda.editor.default_symbols">
10128+
<unit id="3Ycxg5M" name="settings.misc.kicad_eda.editor.default_symbols">
1012910129
<segment state="translated">
1013010130
<source>settings.misc.kicad_eda.editor.default_symbols</source>
1013110131
<target>Default symbols list</target>
1013210132
</segment>
1013310133
</unit>
10134-
<unit id="mIj_i4E" name="settings.misc.kicad_eda.editor.default_files_help">
10134+
<unit id="ADK3.8x" name="settings.misc.kicad_eda.editor.default_files_help">
1013510135
<segment state="translated">
1013610136
<source>settings.misc.kicad_eda.editor.default_files_help</source>
1013710137
<target>Autogenerated file shown for reference only. Changes must be made in the custom list.</target>
@@ -13067,5 +13067,41 @@ Buerklin-API Authentication server:
1306713067
<target>Mapping error: Check if you have selected the right delimiter!</target>
1306813068
</segment>
1306913069
</unit>
13070+
<unit id="zl1XJq0" name="settings.ai">
13071+
<segment>
13072+
<source>settings.ai</source>
13073+
<target>AI</target>
13074+
</segment>
13075+
</unit>
13076+
<unit id="NqxqdyX" name="settings.ai.openrouter">
13077+
<segment>
13078+
<source>settings.ai.openrouter</source>
13079+
<target>OpenRouter</target>
13080+
</segment>
13081+
</unit>
13082+
<unit id="tWtvoDT" name="settings.ai.lmstudio">
13083+
<segment>
13084+
<source>settings.ai.lmstudio</source>
13085+
<target>LMStudio</target>
13086+
</segment>
13087+
</unit>
13088+
<unit id="foBzBG2" name="settings.ips.ai_extractor.model">
13089+
<segment>
13090+
<source>settings.ips.ai_extractor.model</source>
13091+
<target>AI Model</target>
13092+
</segment>
13093+
</unit>
13094+
<unit id="PbXBTZO" name="settings.ips.ai_extractor.ai_platform">
13095+
<segment>
13096+
<source>settings.ips.ai_extractor.ai_platform</source>
13097+
<target>AI Platform</target>
13098+
</segment>
13099+
</unit>
13100+
<unit id="axA7_TL" name="settings.ips.ai_extractor.model.help">
13101+
<segment>
13102+
<source>settings.ips.ai_extractor.model.help</source>
13103+
<target>The AI model that should be used for extraction. Must support structured output.</target>
13104+
</segment>
13105+
</unit>
1307013106
</file>
1307113107
</xliff>

0 commit comments

Comments
 (0)