Compare commits

..

No commits in common. "62f321607171fb043a437f5888d42bd0ed2b0a90" and "be03d1f503d9fa21f6270ac1ccc91bacefb7fbf2" have entirely different histories.

17 changed files with 113 additions and 364 deletions

View file

@ -1 +1 @@
2.14.0
2.13.4

12
composer.lock generated
View file

@ -5172,16 +5172,16 @@
},
{
"name": "jbtronics/2fa-webauthn",
"version": "v3.0.2",
"version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/jbtronics/2fa-webauthn.git",
"reference": "9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22"
"reference": "542424bcc51f06932cbecfd7b75afbb5e107c9ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jbtronics/2fa-webauthn/zipball/9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22",
"reference": "9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22",
"url": "https://api.github.com/repos/jbtronics/2fa-webauthn/zipball/542424bcc51f06932cbecfd7b75afbb5e107c9ce",
"reference": "542424bcc51f06932cbecfd7b75afbb5e107c9ce",
"shasum": ""
},
"require": {
@ -5226,9 +5226,9 @@
],
"support": {
"issues": "https://github.com/jbtronics/2fa-webauthn/issues",
"source": "https://github.com/jbtronics/2fa-webauthn/tree/v3.0.2"
"source": "https://github.com/jbtronics/2fa-webauthn/tree/v3.0.0"
},
"time": "2026-07-27T20:24:28+00:00"
"time": "2025-08-14T15:12:48+00:00"
},
{
"name": "jbtronics/dompdf-font-loader-bundle",

View file

@ -1,46 +0,0 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use App\Migration\AbstractMultiPlatformMigration;
use Doctrine\DBAL\Schema\Schema;
final class Version20260713120000 extends AbstractMultiPlatformMigration
{
public function getDescription(): string
{
return 'Add eda_symbol_visibility nullable boolean column to parameters table (controls the "visible" flag of the exported KiCad field)';
}
public function mySQLUp(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters ADD eda_symbol_visibility TINYINT(1) DEFAULT NULL');
}
public function mySQLDown(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility');
}
public function sqLiteUp(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters ADD COLUMN eda_symbol_visibility BOOLEAN DEFAULT NULL');
}
public function sqLiteDown(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility');
}
public function postgreSQLUp(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters ADD eda_symbol_visibility BOOLEAN DEFAULT NULL');
}
public function postgreSQLDown(Schema $schema): void
{
$this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility');
}
}

View file

@ -179,14 +179,6 @@ abstract class AbstractParameter extends AbstractNamedDBElement implements Uniqu
#[ORM\Column(type: Types::BOOLEAN, nullable: true, options: ['default' => null])]
protected ?bool $eda_visibility = null;
/**
* @var bool|null Whether the exported EDA field should be visible in the schematic symbol
* (sets the KiCad field's "visible" flag). Null means use system default.
*/
#[Groups(['full', 'parameter:read', 'parameter:write', 'import'])]
#[ORM\Column(type: Types::BOOLEAN, nullable: true, options: ['default' => null])]
protected ?bool $eda_symbol_visibility = null;
/**
* Mapping is done in subclasses.
*
@ -501,21 +493,6 @@ abstract class AbstractParameter extends AbstractNamedDBElement implements Uniqu
return $this;
}
public function isEdaSymbolVisibility(): ?bool
{
return $this->eda_symbol_visibility;
}
/**
* @return $this
*/
public function setEdaSymbolVisibility(?bool $eda_symbol_visibility): self
{
$this->eda_symbol_visibility = $eda_symbol_visibility;
return $this;
}
public function getComparableFields(): array
{
return ['name' => $this->name, 'group' => $this->group, 'element' => $this->element?->getId()];

View file

@ -156,11 +156,6 @@ class ParameterType extends AbstractType
'label' => false,
'required' => false,
]);
$builder->add('eda_symbol_visibility', TriStateCheckboxType::class, [
'label' => false,
'required' => false,
]);
}
}

View file

@ -341,9 +341,7 @@ class KiCadHelper
$fieldName = $parameter->getName();
//Don't overwrite hardcoded fields
if (!isset($result['fields'][$fieldName])) {
//Whether the field should be visible in the schematic symbol (explicit, or system default when null)
$symbolVisibility = $parameter->isEdaSymbolVisibility() ?? $this->kiCadEDASettings->defaultParameterSymbolVisibility;
$result['fields'][$fieldName] = $this->createField($parameter->getFormattedValue(), $symbolVisibility);
$result['fields'][$fieldName] = $this->createField($parameter->getFormattedValue());
}
}
}

View file

@ -242,11 +242,7 @@ final readonly class ProjectBuildHelper
* taking bulk pricing into account for N builds.
*/
private function getBomEntryUnitPrice(ProjectBOMEntry $entry, int $number_of_builds, ?Currency $currency): ?BigDecimal
{
if ($entry->getPart() && $entry->getPart()->getBuiltProject() instanceof Project){
return $this->calculateTotalBuildPrice($entry->getPart()->getBuiltProject(), 1, $entry->getPriceCurrency());
}
{
if ($entry->getPart() instanceof Part) {
$total_qty = $entry->getQuantity() * $number_of_builds;
$min_order = $this->pricedetailHelper->getMinOrderAmount($entry->getPart());

View file

@ -56,13 +56,6 @@ class KiCadEDASettings
)]
public bool $defaultParameterVisibility = false;
#[SettingsParameter(
label: new TM("settings.misc.kicad_eda.default_parameter_symbol_visibility"),
description: new TM("settings.misc.kicad_eda.default_parameter_symbol_visibility.help"),
)]
public bool $defaultParameterSymbolVisibility = false;
#[SettingsParameter(
label: new TM("settings.misc.kicad_eda.default_orderdetails_visibility"),
description: new TM("settings.misc.kicad_eda.default_orderdetails_visibility.help"),

View file

@ -58,7 +58,7 @@
</tr>
<tr>
<td>{% trans %}log.target{% endtrans %}</td>
<td>{{ target_html|raw }}</td>
<td>{{ target_html|sanitize_html }}</td>
</tr>
</table>

View file

@ -15,7 +15,6 @@
<th>{% trans %}specifications.text{% endtrans %}</th>
<th>{% trans %}specifications.group{% endtrans %}</th>
<th title="{% trans %}specifications.eda_visibility.help{% endtrans %}"><i class="fas fa-bolt fa-fw"></i></th>
<th title="{% trans %}specifications.eda_symbol_visibility.help{% endtrans %}"><i class="fas fa-eye fa-fw"></i></th>
<th></th>
</tr>
</thead>

View file

@ -83,9 +83,6 @@
{% if form.eda_visibility is defined %}
<td class="text-center">{{ form_widget(form.eda_visibility) }}</td>
{% endif %}
{% if form.eda_symbol_visibility is defined %}
<td class="text-center">{{ form_widget(form.eda_symbol_visibility) }}</td>
{% endif %}
<td>
<button type="button" class="btn btn-danger btn-sm order_btn_delete position-relative {% if form.parent.vars.allow_delete is defined and not form.parent.vars.allow_delete %}disabled{% endif %}"
{{ collection.delete_btn() }} title="{% trans %}orderdetail.delete{% endtrans %}">

View file

@ -389,37 +389,6 @@ final class KiCadHelperTest extends KernelTestCase
self::assertArrayHasKey('Voltage Rating', $result['fields']);
self::assertSame('3.3 V', $result['fields']['Voltage Rating']['value']);
//Without an explicit symbol visibility the field defaults to not being shown in the symbol
self::assertSame('False', $result['fields']['Voltage Rating']['visible']);
}
/**
* Test that a parameter with eda_symbol_visibility=true is marked visible in the symbol.
*/
public function testParameterWithSymbolVisibilityIsVisibleInSymbol(): void
{
$category = $this->em->find(Category::class, 1);
$part = new Part();
$part->setName('Part with Symbol-Visible Parameter');
$part->setCategory($category);
$param = new PartParameter();
$param->setName('Voltage Rating');
$param->setValueTypical(3.3);
$param->setUnit('V');
$param->setEdaVisibility(true);
$param->setEdaSymbolVisibility(true);
$part->addParameter($param);
$this->em->persist($part);
$this->em->flush();
$result = $this->helper->getKiCADPart($part);
self::assertArrayHasKey('Voltage Rating', $result['fields']);
self::assertSame('3.3 V', $result['fields']['Voltage Rating']['value']);
self::assertSame('True', $result['fields']['Voltage Rating']['visible']);
}
/**

View file

@ -208,33 +208,6 @@ final class ProjectBuildHelperTest extends WebTestCase
$this->assertTrue(BigDecimal::of('6.00')->isEqualTo($result));
}
public function testCalculateTotalBuildPriceWithBuildPartFromSubproject(): void
{
$project = new Project();
$entry = new ProjectBOMEntry();
$entry->setPart($this->makePartWithPrice(1.50));
$entry->setQuantity(4);
$project->addBomEntry($entry);
$subproject = new Project();
$subentry = new ProjectBOMEntry();
$subentry->setPart($this->makePartWithPrice(3.5));
$subentry->setQuantity(3);
$subproject->addBomEntry($subentry);
$part = new Part();
$entry2 = new ProjectBOMEntry();
$entry2->setPart($part);
$entry2->setQuantity(2);
$part->setBuiltProject($subproject);
$project->addBomEntry($entry2);
// 4 × 1.50 + 2 x (3 x 3.5) = 27.00 for 1 build
$result = $this->service->calculateTotalBuildPrice($project, 1);
$this->assertNotNull($result);
$this->assertTrue(BigDecimal::of('27.00')->isEqualTo($result));
}
public function testCalculateUnitBuildPriceEqualsTotal(): void
{
$project = new Project();

View file

@ -410,8 +410,8 @@
<segment state="translated">
<source>user.edit.tfa.disable_tfa_message</source>
<target>Dies wird &lt;b&gt;alle aktiven Zwei-Faktor-Authentifizierungsmethoden des Nutzers deaktivieren&lt;/b&gt; und die &lt;b&gt;Backupcodes löschen&lt;/b&gt;! &lt;br&gt;
Der Benutzer wird alle Zwei-Faktor-Authentifizierungsmethoden neu einrichten müssen und neue Backupcodes ausdrucken müssen! &lt;br&gt;&lt;br&gt;
&lt;b&gt;Führen Sie dies nur durch, wenn Sie über die Identität des (um Hilfe suchenden) Benutzers absolut sicher sind, da ansonsten eine Kompromittierung des Accounts durch einen Angreifer erfolgen könnte!&lt;/b&gt;</target>
Der Benutzer wird alle Zwei-Faktor-Authentifizierungmethoden neu einrichten müssen und neue Backupcodes ausdrucken müssen! &lt;br&gt;&lt;br&gt;
&lt;b&gt;Führen sie dies nur durch, wenn Sie über die Identität des (um Hilfe suchenden) Benutzers absolut sicher sind, da ansonsten eine Kompromittierung des Accounts durch einen Angreifer erfolgen könnte!&lt;/b&gt;</target>
</segment>
</unit>
<unit id="APsHYu0" name="user.edit.tfa.disable_tfa.btn">
@ -489,7 +489,7 @@ Der Benutzer wird alle Zwei-Faktor-Authentifizierungsmethoden neu einrichten mü
<unit id="BtSvnI0" name="entity.delete.confirm_title">
<segment state="translated">
<source>entity.delete.confirm_title</source>
<target>Wollen Sie das Element %name% wirklich löschen?</target>
<target>Wollen sie das Element %name% wirklich löschen?</target>
</segment>
</unit>
<unit id="WR9DNyZ" name="entity.delete.message">
@ -647,12 +647,6 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<target>Diesen Parameter als EDA Feld exportieren</target>
</segment>
</unit>
<unit id="Nx6h9XW" name="specifications.eda_symbol_visibility.help">
<segment state="translated">
<source>specifications.eda_symbol_visibility.help</source>
<target>Diesen Parameter im Schaltplansymbol sichtbar machen</target>
</segment>
</unit>
<unit id="XclPxI9" name="specification.create">
<segment state="translated">
<source>specification.create</source>
@ -680,7 +674,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="maYlJO8" name="part_list.loading.message">
<segment state="translated">
<source>part_list.loading.message</source>
<target>Dies kann einen Moment dauern. Wenn diese Nachricht längere Zeit bestehen bleibt, versuchen Sie die Seite erneut zu laden.</target>
<target>Dies kann einen Moment dauern. Wenn diese Nachricht längere Zeit bestehen bleibt, versuchen sie die Seite erneut zu laden.</target>
</segment>
</unit>
<unit id="wKzcAZd" name="vendor.base.javascript_hint">
@ -704,7 +698,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="LN0dVIE" name="loading.message">
<segment state="translated">
<source>loading.message</source>
<target>Dies kann einen Moment dauern. Sollte diese Nachricht bestehen bleiben, dann laden Sie die Seite erneut.</target>
<target>Dies kann einen Moment dauern. Sollte diese Nachricht bestehen bleiben, dann laden sie die Seite erneut.</target>
</segment>
</unit>
<unit id="8I0Kqhw" name="loading.bar">
@ -818,7 +812,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="bVL1K4d" name="homepage.help.text">
<segment state="translated">
<source>homepage.help.text</source>
<target>Hilfe und Tipps finden Sie im &lt;a class="link-external" rel="noopener" target="_blank" href="%href%"&gt;Wiki&lt;/a&gt; der GitHub Seite.</target>
<target>Hilfe und Tipps finden sie im &lt;a class="link-external" rel="noopener" target="_blank" href="%href%"&gt;Wiki&lt;/a&gt; der GitHub Seite.</target>
</segment>
</unit>
<unit id="dnirx4v" name="homepage.forum.caption">
@ -1079,7 +1073,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="7.yHB9w" name="part.edit.tab.advanced.ipn.partIncrementHeader">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.partIncrementHeader</source>
<target>Vorschläge mit numerischem Teil-Inkrement</target>
<target>Vorschläge mit numerischen Teil-Inkrement</target>
</segment>
</unit>
<unit id="H1o.JFb" name="part.edit.tab.advanced.ipn.prefix.description.current-increment">
@ -1121,13 +1115,13 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="a6_204L" name="part.edit.tab.advanced.ipn.prefix.hierarchical.increment">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.hierarchical.increment</source>
<target>IPN-Präfixe mit hierarchischer Kategorienreihenfolge der Elternpräfixe und ein teilspezifisches Inkrement</target>
<target>IPN-Präfixe mit hierarchischer Kategorienreihenfolge der Elternpräfixe und ein teilsspezifisches Inkrement</target>
</segment>
</unit>
<unit id="VS8w2qp" name="part.edit.tab.advanced.ipn.prefix.not_saved">
<segment state="translated">
<source>part.edit.tab.advanced.ipn.prefix.not_saved</source>
<target>Bitte erstellen Sie zuerst ein Bauteil und weisen Sie dieses einer Kategorie zu: mit vorhandenen Kategorien und deren eigenem IPN-Präfix kann die IPN-Angabe für das jeweilige Teil automatisch vorgeschlagen werden</target>
<target>Bitte erstellen Sie zuerst ein Bauteil und weisen Sie dieses einer Kategorie zu: mit vorhandenen Kategorien und derene eigenen IPN-Präfix kann die IPN-Angabe für das jeweilige Teil automatisch vorgeschlagen werden</target>
</segment>
</unit>
<unit id="c3S4jwK" name="part.edit.tab.part_lots">
@ -1679,7 +1673,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="2LvyOme" name="tfa.check.code.help">
<segment state="translated">
<source>tfa.check.code.help</source>
<target>Geben Sie hier den 6-stelligen Code aus Ihrer Authenticator App ein oder einen Ihrer Backupcodes, wenn der Authenticator nicht verfügbar ist.</target>
<target>Geben Sie hier den 6-stelligen Code aus ihrer Authenticator App ein oder einen ihrer Backupcodes, wenn der Authenticator nicht verfügbar ist.</target>
</segment>
</unit>
<unit id="cynL4Ju" name="login.title">
@ -1997,7 +1991,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="MhULnmd" name="tfa_backup.codes.help">
<segment state="translated">
<source>tfa_backup.codes.help</source>
<target>Wenn Sie keinen Zugriff auf Ihr Gerät mit der Authenticator App mehr haben sollten (Smartphone verloren, Datenverlust, etc.) können Sie einen dieser Codes benutzen, um Zugriff auf Ihren Account zu erhalten und evtl. eine neue Authenticator App einzurichten. Jeder dieser Codes lässt sich einmal einsetzen, es empfiehlt sich benutzte Codes zu streichen. Jeder mit Zugriff auf diese Codes kann potentiell auf Ihren Account zugreifen, daher bewahren Sie sie an einem sicheren Ort auf.</target>
<target>Wenn Sie keinen Zugriff auf ihr Gerät mit der Authenticator App mehr haben sollten (Smartphone verloren, Datenverlust, etc.) können Sie einen dieser Codes benutzen, um Zugriff auf ihren Account zu erhalten und evtl. eine neue Authenticator App einzurichten. Jeder dieser Codes lässt sich einmal einsetzen, es empfiehlt sich benutzte Codes zu streichen. Jeder mit Zugriff auf diese Codes kann potentiell auf ihren Account zugreifen, daher bewahren Sie sie an einem sicheren Ort auf.</target>
</segment>
</unit>
<unit id="Bb1CfFr" name="tfa_backup.username">
@ -2063,7 +2057,7 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="YUvPIMf" name="group.label">
<segment state="translated">
<source>group.label</source>
<target>Gruppe</target>
<target>Group</target>
</segment>
</unit>
<unit id="6KVtnw_" name="user.permissions">
@ -2135,8 +2129,8 @@ Subelemente werden beim Löschen nach oben verschoben.</target>
<unit id="d1qp0Zo" name="tfa_google.disable.confirm_message">
<segment state="translated">
<source>tfa_google.disable.confirm_message</source>
<target>Wenn Sie die Authenticator App deaktivieren, werden alle Backupcodes gelöscht, daher müssen Sie sie evtl. neu ausdrucken.&lt;br&gt;
Beachten Sie außerdem, dass Ihr Account ohne Zwei-Faktor-Authentifizierung nicht mehr so gut gegen Angreifer geschützt ist!</target>
<target>Wenn Sie die Authenticator App deaktivieren, werden alle Backupcodes gelöscht, daher sie müssen sie evtl. neu ausdrucken.&lt;br&gt;
Beachten Sie außerdem, dass ihr Account ohne Zwei-Faktor-Authentifizierung nicht mehr so gut gegen Angreifer geschützt ist!</target>
</segment>
</unit>
<unit id="yu9MSt5" name="tfa_google.disabled_message">
@ -2166,7 +2160,7 @@ Beachten Sie außerdem, dass Ihr Account ohne Zwei-Faktor-Authentifizierung nich
<unit id="3fS0adj" name="tfa_google.step.download_backup">
<segment state="translated">
<source>tfa_google.step.download_backup</source>
<target>Drucken Sie Ihre Backupcodes aus und lagern Sie sie an einem sicheren Ort</target>
<target>Drucken Sie ihre Backupcodes aus und lagern sie an einem sicheren Ort</target>
</segment>
</unit>
<unit id="GwP5l.J" name="tfa_google.manual_setup">
@ -2214,7 +2208,7 @@ Beachten Sie außerdem, dass Ihr Account ohne Zwei-Faktor-Authentifizierung nich
<unit id="JfAWdYn" name="tfa_backup.explanation">
<segment state="translated">
<source>tfa_backup.explanation</source>
<target>Mithilfe dieser Backupcodes können Sie auf Ihren Account zugreifen, selbst wenn Sie das Gerät mit der Authenticator App verlieren sollten. Drucken Sie die Codes aus und bewahren Sie sie an einem sicheren Ort auf.</target>
<target>Mithilfe dieser Backupcodes können Sie auf ihren Account zugreifen, selbst wenn Sie das Gerät mit der Authenticator App verlieren sollten. Drucken Sie die Codes aus und bewahren Sie sie an einem sicheren Ort auf.</target>
</segment>
</unit>
<unit id="rL_dWDY" name="tfa_backup.reset_codes.confirm_title">
@ -2305,7 +2299,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="YJL675Z" name="tfa_trustedDevices.invalidate.confirm_message">
<segment state="translated">
<source>tfa_trustedDevices.invalidate.confirm_message</source>
<target>Sie werden auf allen Rechnern erneut eine Zwei-Faktor-Authentifizierung durchführen müssen. Achten Sie darauf, dass Sie Ihr Zwei-Faktor-Gerät zur Hand haben.</target>
<target>Sie werden auf allen Rechnern erneut eine Zwei-Faktor-Authentifizierung durchführen müssen. Achten Sie darauf, dass Sie ihr Zwei-Faktor-Gerät zur Hand haben.</target>
</segment>
</unit>
<unit id="pXHUh_h" name="tfa_trustedDevices.invalidate.btn">
@ -2431,7 +2425,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="_cDBy1s" name="entity.edit_flash.invalid">
<segment state="translated">
<source>entity.edit_flash.invalid</source>
<target>Änderungen konnten nicht gespeichert werden! Prüfen Sie Ihre Eingaben!</target>
<target>Änderungen konnten nicht gespeichert werden! Prüfen Sie ihre Eingaben!</target>
</segment>
</unit>
<unit id="vJr16w7" name="entity.created_flash">
@ -2443,7 +2437,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="_H9ego6" name="entity.created_flash.invalid">
<segment state="translated">
<source>entity.created_flash.invalid</source>
<target>Element konnte nicht angelegt werden! Prüfen Sie Ihre Eingaben!</target>
<target>Element konnte nicht angelegt werden! Prüfen Sie ihre Eingaben!</target>
</segment>
</unit>
<unit id="pzsUrS4" name="attachment_type.deleted">
@ -2533,7 +2527,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
</notes>
<segment state="translated">
<source>log.undo.do_undelete_before</source>
<target>Sie müssen das Element zuerst wiederherstellen bevor Sie diese Änderung rückgängig machen können!</target>
<target>Sie müssen das Element zuerst wiederherstellen bevor sie diese Änderung rückgängig machen können!</target>
</segment>
</unit>
<unit id="joq2rah" name="log.undo.log_type_invalid">
@ -2566,7 +2560,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="YhbpKMM" name="part.created_flash.invalid">
<segment state="translated">
<source>part.created_flash.invalid</source>
<target>Fehler beim Anlegen: Überprüfen Sie Ihre Eingaben!</target>
<target>Fehler beim Anlegen: Überprüfen Sie ihre Eingaben!</target>
</segment>
</unit>
<unit id="b4W9LjP" name="scan.qr_not_found">
@ -2614,7 +2608,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="dT3xOQw" name="pw_reset.new_pw.error">
<segment state="translated">
<source>pw_reset.new_pw.error</source>
<target>Benutzername oder Token ungültig! Überprüfen Sie Ihre Eingaben.</target>
<target>Benutzername oder Token ungültig! Überprüfen Sie ihre Eingaben.</target>
</segment>
</unit>
<unit id="oXWCfpb" name="pw_reset.new_pw.success">
@ -2644,7 +2638,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="JXsEzjd" name="tfa_u2f.u2f_delete.access_denied">
<segment state="translated">
<source>tfa_u2f.u2f_delete.access_denied</source>
<target>Sie können nur Ihre eigenen Sicherheitsschlüssel löschen!</target>
<target>Sie können nur ihre eigenen Sicherheitsschlüssel löschen!</target>
</segment>
</unit>
<unit id="IHQWMw5" name="tfa.u2f.u2f_delete.success">
@ -2962,13 +2956,13 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="Q_myBuD" name="eda.status.symbol_set">
<segment state="translated">
<source>eda.status.symbol_set</source>
<target>KiCad-Symbol gesetzt</target>
<target>KiCad Symbol gesetzt</target>
</segment>
</unit>
<unit id="QGLfvit" name="eda.status.footprint_set">
<segment state="translated">
<source>eda.status.footprint_set</source>
<target>KiCad-Footprint gesetzt</target>
<target>KiCad Footprint gesetzt</target>
</segment>
</unit>
<unit id="hkze9M." name="eda.status.reference_set">
@ -2980,13 +2974,13 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="OTXbAfL" name="eda.status.complete">
<segment state="translated">
<source>eda.status.complete</source>
<target>EDA-Felder vollständig (Symbol, Footprint, Referenz)</target>
<target>EDA Felder vollständig (Symbol, Footprint, Referenz)</target>
</segment>
</unit>
<unit id="z9E5RB." name="eda.status.partial">
<segment state="translated">
<source>eda.status.partial</source>
<target>EDA-Felder teilweise gesetzt</target>
<target>EDA Felder teilweise gesetzt</target>
</segment>
</unit>
<unit id="bMkafCp" name="flash.login_successful">
@ -3178,7 +3172,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="JxoUNuJ" name="label_options.lines_mode.help">
<segment state="translated">
<source>label_options.lines_mode.help</source>
<target>Wenn Sie hier Twig auswählen, wird das Contentfeld als Twig-Template interpretiert. Weitere Hilfe gibt es in der &lt;a href="https://twig.symfony.com/doc/3.x/templates.html"&gt;Twig-Dokumentation&lt;/a&gt; und dem &lt;a href="https://docs.part-db.de/usage/labels.html#twig-mode"&gt;Wiki&lt;/a&gt;.</target>
<target>Wenn Sie hier Twig auswählen, wird das Contentfeld als Twig-Template interpretiert. Weitere Hilfe gibt es in der &lt;a href="https://twig.symfony.com/doc/3.x/templates.html"&gt;Twig Dokumentation&lt;/a&gt; und dem &lt;a href="https://docs.part-db.de/usage/labels.html#twig-mode"&gt;Wiki&lt;/a&gt;.</target>
</segment>
</unit>
<unit id="isvxbiX" name="label_options.page_size.label">
@ -3655,7 +3649,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
<unit id="jcKsYZ0" name="markdown.loading">
<segment state="translated">
<source>markdown.loading</source>
<target>Lade Markdown. Wenn diese längere Zeit bestehen bleibt, versuchen Sie die Website erneut zu laden!</target>
<target>Lade Markdown. Wenn diese längere Zeit bestehen bleibt, versuchen sie die Website erneut zu laden!</target>
</segment>
</unit>
<unit id="GU0AvHP" name="pw_reset.email.subject">
@ -4323,7 +4317,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
</notes>
<segment state="translated">
<source>category.edit.disable_footprints.help</source>
<target>Wenn diese Option aktiviert ist, ist die Footprint-Eigenschaft für alle Bauteile in dieser Kategorie deaktiviert.</target>
<target>Wenn diese Option aktiviert ist, ist die Footprint-Eigenschaft für alle Bauteile in dieser Kategorie, deaktiviert.</target>
</segment>
</unit>
<unit id="JWHe4Hi" name="category.edit.disable_manufacturers">
@ -4343,7 +4337,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
</notes>
<segment state="translated">
<source>category.edit.disable_manufacturers.help</source>
<target>Wenn diese Option aktiviert ist, ist die Hersteller-Eigenschaft für alle Bauteile in dieser Kategorie deaktiviert.</target>
<target>Wenn diese Option aktiviert ist, ist die Hersteller Eigenschaft für alle Bauteile in dieser Kategorie, deaktiviert.</target>
</segment>
</unit>
<unit id="g_gRbhu" name="category.edit.disable_autodatasheets">
@ -4550,7 +4544,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
</notes>
<segment state="translated">
<source>company.edit.auto_product_url</source>
<target>Produkt-URL</target>
<target>Produkt URL</target>
</segment>
</unit>
<unit id="GgV7KA6" name="company.edit.auto_product_url.help">
@ -4580,7 +4574,7 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr
</notes>
<segment state="translated">
<source>currency.edit.iso_code</source>
<target>ISO-Code</target>
<target>ISO Code</target>
</segment>
</unit>
<unit id="riG2jA5" name="currency.edit.exchange_rate">
@ -4668,7 +4662,7 @@ Element 1 -&gt; Element 1.2</target>
</notes>
<segment state="translated">
<source>measurement_unit.edit.use_si_prefix</source>
<target>Benutze SI-Prefixe</target>
<target>Benutze SI Prefixe</target>
</segment>
</unit>
<unit id="vvnrMJA" name="measurement_unit.edit.use_si_prefix.help">
@ -4678,7 +4672,7 @@ Element 1 -&gt; Element 1.2</target>
</notes>
<segment state="translated">
<source>measurement_unit.edit.use_si_prefix.help</source>
<target>Wenn diese Option aktiviert ist, werden bei Ausgabe der Zahlen SI-Prefixe benutzt (z.B. 1,2kg anstatt 1200g)</target>
<target>Wenn diese Option aktiviert ist, werden bei Ausgabe der Zahlen SI Prefixe benutzt (z.B. 1,2kg anstatt 1200g)</target>
</segment>
</unit>
<unit id="gPCdcst" name="measurement_unit.edit.unit_symbol">
@ -6602,7 +6596,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="lv4PVt2" name="filter.bulk_import_job.status.stopped">
<segment state="translated">
<source>filter.bulk_import_job.status.stopped</source>
<target>Gestoppt</target>
<target>Stopped</target>
</segment>
</unit>
<unit id="0qKD5hC" name="filter.bulk_import_job.status.failed">
@ -6734,7 +6728,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="FCRoT6l" name="filter.parameter_value_constraint.operator.GREATER_EQUAL_RANGE">
<segment state="translated">
<source>filter.parameter_value_constraint.operator.GREATER_EQUAL_RANGE</source>
<target>Größer gleich dem Wertebereich</target>
<target>Größer gleich der Wertebereich</target>
</segment>
</unit>
<unit id="6T0tThe" name="filter.parameter_value_constraint.operator.LESS_THAN_RANGE">
@ -6746,7 +6740,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="4ZMf_IM" name="filter.parameter_value_constraint.operator.LESS_EQUAL_RANGE">
<segment state="translated">
<source>filter.parameter_value_constraint.operator.LESS_EQUAL_RANGE</source>
<target>Kleiner gleich dem Wertebereich</target>
<target>Kleiner gleich der Wertebereich</target>
</segment>
</unit>
<unit id="Xo4sRNx" name="filter.parameter_value_constraint.operator.RANGE_IN_RANGE">
@ -6968,7 +6962,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="y43.78W" name="permission.preset.editor.desc">
<segment state="translated">
<source>permission.preset.editor.desc</source>
<target>Bearbeiten von Bauteilen und Datenstrukturen erlauben</target>
<target>Erlauben Bauteile und Datenstrukturen zu bearbeiten</target>
</segment>
</unit>
<unit id="4b.u_RZ" name="permission.preset.admin">
@ -7004,7 +6998,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="jnDXhpi" name="user.edit.permission_success">
<segment state="translated">
<source>user.edit.permission_success</source>
<target>Berechtigungsvorlage erfolgreich angewendet. Prüfen Sie, dass die neuen Berechtigungen Ihrer Erwartung entsprechen.</target>
<target>Berechtigungsvorlage erfolgreich angewendet. Prüfen Sie, dass die neuen Berechtigungen ihrer Erwartung entsprechen.</target>
</segment>
</unit>
<unit id="Yia.nsG" name="perm.group.data">
@ -7124,7 +7118,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="uok31Te" name="project.bom.delete.confirm">
<segment state="translated">
<source>project.bom.delete.confirm</source>
<target>Wollen Sie diesen BOM-Eintrag wirklich löschen?</target>
<target>Wollen sie diesen BOM-Eintrag wirklich löschen?</target>
</segment>
</unit>
<unit id="hpPkHYF" name="project.add_parts_to_project">
@ -7253,12 +7247,6 @@ Element 1 -&gt; Element 1.2</target>
<target>BOM-Einträge hinzufügen</target>
</segment>
</unit>
<unit id=".kp4e.H" name="project.bom.export_csv">
<segment state="translated">
<source>project.bom.export_csv</source>
<target>Als CSV exportieren</target>
</segment>
</unit>
<unit id="mo8KjGV" name="project.info.info.label">
<segment state="translated">
<source>project.info.info.label</source>
@ -7502,7 +7490,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="iuSpPbg" name="project.builds.check_project_status">
<segment state="translated">
<source>project.builds.check_project_status</source>
<target>Der aktuelle Projektstatus ist &lt;b&gt;"%project_status%"&lt;/b&gt;. Sie sollten überprüfen, ob Sie das Projekt mit diesem Status wirklich bauen wollen!</target>
<target>Der aktuelle Projektstatus ist &lt;b&gt;"%project_status%"&lt;/b&gt;. Sie sollten überprüfen, ob sie das Projekt mit diesem Status wirklich bauen wollen!</target>
</segment>
</unit>
<unit id="Y7vSSxi" name="project.builds.following_bom_entries_miss_instock_n">
@ -7814,7 +7802,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="lLXp.Sn" name="log.element_edited.changed_fields.disable_autodatasheets">
<segment state="translated">
<source>log.element_edited.changed_fields.disable_autodatasheets</source>
<target>Deaktiviere automatische Datenblatt-Links</target>
<target>Deaktiviere Automatische Datenblatt-Links</target>
</segment>
</unit>
<unit id="fCDSKXJ" name="log.element_edited.changed_fields.disable_properties">
@ -7946,7 +7934,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="YcyvkgJ" name="log.element_edited.changed_fields.iso_code">
<segment state="translated">
<source>log.element_edited.changed_fields.iso_code</source>
<target>ISO-Code</target>
<target>ISO Code</target>
</segment>
</unit>
<unit id="wFzQD92" name="log.element_edited.changed_fields.unit">
@ -8264,7 +8252,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="J0_jYnW" name="parts.import.flash.error">
<segment state="translated">
<source>parts.import.flash.error</source>
<target>Es sind Fehler während des Imports aufgetreten. Dies ist vermutlich durch fehlerhafte Daten verursacht.</target>
<target>Es sind Fehler während des Exports aufgetreten. Dies ist vermutlich durch fehlerhafte Daten verursacht.</target>
</segment>
</unit>
<unit id="07X4Us1" name="parts.import.format.auto">
@ -8282,7 +8270,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="Wp1kHtK" name="parts.import.flash.error.invalid_file">
<segment state="translated">
<source>parts.import.flash.error.invalid_file</source>
<target>Datei fehlerhaft / falsch formatiert. Überprüfen Sie, dass Sie das richtige Format gewählt haben.</target>
<target>Datei fehlerhaft / falsch formatiert. Überprüfen Sie, dass sie das richtige Format gewählt haben.</target>
</segment>
</unit>
<unit id="5qhQXjJ" name="parts.import.part_category.label">
@ -10085,7 +10073,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<unit id="X5.rQdO" name="settings.misc.kicad_eda.datasheet_link">
<segment state="translated">
<source>settings.misc.kicad_eda.datasheet_link</source>
<target>Datenblatt-Feld verlinkt auf PDF</target>
<target>Datasheet Feld verlinkt auf PDF</target>
</segment>
</unit>
<unit id="Fm1QTCs" name="settings.misc.kicad_eda.datasheet_link.help">
@ -10163,13 +10151,13 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<unit id="bABze6_" name="settings.misc.kicad_eda.editor.default_footprints">
<segment state="translated">
<source>settings.misc.kicad_eda.editor.default_footprints</source>
<target>Standard-Footprint-Liste</target>
<target>Standard Footprint-Liste</target>
</segment>
</unit>
<unit id="3Ycxg5M" name="settings.misc.kicad_eda.editor.default_symbols">
<segment state="translated">
<source>settings.misc.kicad_eda.editor.default_symbols</source>
<target>Standardsymbolliste</target>
<target>Standardsymboliste</target>
</segment>
</unit>
<unit id="ADK3.8x" name="settings.misc.kicad_eda.editor.default_files_help">
@ -11663,7 +11651,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<unit id="SNkUbfh" name="info_providers.bulk_import.confirm_stop_job">
<segment state="translated">
<source>info_providers.bulk_import.confirm_stop_job</source>
<target>Sind Sie sicher, dass Sie diesen Auftrag anhalten wollen?</target>
<target>Sind sie sicher, dass sie diesen Auftrag anhalten wollen?</target>
</segment>
</unit>
<unit id="dlO_h_K" name="part.filter.in_bulk_import_job">
@ -11867,7 +11855,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<unit id="xIZ_mEX" name="project.builds.no_bom_entries">
<segment state="translated">
<source>project.builds.no_bom_entries</source>
<target>Das Projekt hat keine BOM-Einträge</target>
<target>Das Projekt hat keine BOM Einträge</target>
</segment>
</unit>
<unit id="pCKgjIr" name="settings.behavior.sidebar.data_structure_nodes_table_include_children">
@ -11885,8 +11873,8 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<unit id="Gdlnmav" name="info_providers.search.error.oauth_reconnect">
<segment state="translated">
<source>info_providers.search.error.oauth_reconnect</source>
<target>Folgende Informationsquelle benötigt eine erneute OAuth-Verbindung: %provider%
Dies ist auf der Informationsquellen-Übersichtsseite möglich.</target>
<target>Folgende Informationsquelle benötigt eine OAuth Neu-Verbindung: %provider%
Dies ist auf der Informationsquellen Übersichtsseite möglich.</target>
</segment>
</unit>
<unit id="L4nq52R" name="settings.misc.ipn_suggest.useDuplicateDescription.help">
@ -12180,7 +12168,7 @@ Buerklin-API-Authentication-Server:
<unit id="RFhwYWd" name="info_providers.search.error.transport_exception">
<segment state="translated">
<source>info_providers.search.error.transport_exception</source>
<target>Transportfehler beim Abrufen von Informationen von den Anbietern. Überprüfen Sie, ob Ihr Server über einen Internetzugang verfügt. Weitere Informationen finden Sie in den Serverprotokollen.</target>
<target>Transportfehler beim Abrufen von Informationen von den Anbietern. Überprüfen Sie, ob Ihr Server über einen Internetzugang verfügt. Weitere Informationen finden Sie in den Serverprotokollen. Transportfehler beim Abrufen von Informationen von den Anbietern. Überprüfen Sie, ob Ihr Server über einen Internetzugang verfügt. Weitere Informationen finden Sie in den Serverprotokollen.</target>
</segment>
</unit>
<unit id="PExOL_J" name="update_manager.title">
@ -12318,7 +12306,7 @@ Buerklin-API-Authentication-Server:
<unit id="jQSkEnc" name="update_manager.update_to_latest">
<segment state="translated">
<source>update_manager.update_to_latest</source>
<target>Auf neueste Version aktualisieren</target>
<target>Update to latest version</target>
</segment>
</unit>
<unit id="BLqqNYf" name="update_manager.update_to_specific">
@ -12336,7 +12324,7 @@ Buerklin-API-Authentication-Server:
<unit id="cTzUzRc" name="update_manager.up_to_date">
<segment state="translated">
<source>update_manager.up_to_date</source>
<target>Aktuell</target>
<target>Up to date</target>
</segment>
</unit>
<unit id="4twG2aT" name="update_manager.newer">
@ -12630,7 +12618,7 @@ Buerklin-API-Authentication-Server:
<unit id="b.ubGIM" name="update_manager.progress.do_not_close">
<segment state="translated">
<source>update_manager.progress.do_not_close</source>
<target>Bitte schließen Sie die Seite nicht, während das Update läuft. Das Update wird fortgeführt sogar wenn Sie diese Seite schließen, aber Sie werden nicht in der Lage sein, den Fortschritt zu beobachten.</target>
<target>Bitte schließen Sie die Seite nicht, während das Update läuft. Das Update wird fortgeführt sogar wenn Sie diese Seite schließen, aber Sie werden nicht inn der Lage sein, den Fortschritt zu beobachten.</target>
</segment>
</unit>
<unit id="SQxsQbQ" name="update_manager.progress.auto_refresh">
@ -12672,13 +12660,13 @@ Buerklin-API-Authentication-Server:
<unit id="quoDXGW" name="update_manager.progress.downgrade_do_not_close">
<segment state="translated">
<source>update_manager.progress.downgrade_do_not_close</source>
<target>Bitte schließen Sie die Seite nicht, während das Downgrade läuft. Das Update wird fortgeführt sogar wenn Sie diese Seite schließen, aber Sie werden nicht in der Lage sein, den Fortschritt zu beobachten.</target>
<target>Bitte schließen Sie die Seite nicht, während das Downgrade läuft. Das Update wird fortgeführt sogar wenn Sie diese Seite schließen, aber Sie werden nicht inn der Lage sein, den Fortschritt zu beobachten.</target>
</segment>
</unit>
<unit id="k056kqg" name="update_manager.confirm_downgrade">
<segment state="translated">
<source>update_manager.confirm_downgrade</source>
<target>Sind Sie sicher, dass Sie Part-DB downgraden wollen? Dies wird auf eine ältere Version zurück gesetzt. Es wird ein Backup vor dem Downgrade erstellt.</target>
<target>Sind Sie sicher, dass sie Part-DB downgraden wollen? Dies wird auf eine ältere Version zurück gesetzt. Es wird ein Backup vor dem Downgrade erstellt.</target>
</segment>
</unit>
<unit id="FqMFu60" name="update_manager.downgrade_removes_update_manager">
@ -12702,13 +12690,13 @@ Buerklin-API-Authentication-Server:
<unit id="sKf8kah" name="update_manager.restore_confirm_message">
<segment state="translated">
<source>update_manager.restore_confirm_message</source>
<target>Sind Sie sicher, dass Sie Ihre Datenbank von diesem Backup wiederherstellen möchten?</target>
<target>Sind Sie sicher dass die ihre Datenbank von diesem Backup wiederherstellen möchten?</target>
</segment>
</unit>
<unit id="iCc3vNw" name="update_manager.restore_confirm_warning">
<segment state="translated">
<source>update_manager.restore_confirm_warning</source>
<target>WARNUNG: Dies wird Ihre aktuelle Datenbank überschreiben. Diese Aktion kann nicht rückgängig gemacht werden! Stellen Sie sicher, dass Sie ein aktuelles Backup haben, bevor Sie fortfahren.</target>
<target>WARNUNG: Dies wird ihre aktuelle Datenbank überschreiben. Diese Aktion kann nicht rückgängig gemacht werden! Stellen Sie sicher dass sie ein aktuelles Backup haben, bevor Sie fortfahren.</target>
</segment>
</unit>
<unit id="Tsaqpw6" name="update_manager.web_updates_disabled">
@ -13047,18 +13035,6 @@ Buerklin-API-Authentication-Server:
<target>EDA-Sichtbarkeit für alle [Part]-Parameter, die keine explizite Sichtbarkeit gesetzt haben. Wenn aktiviert, sind alle Parameter standardmäßig in der EDA-Software sichtbar.</target>
</segment>
</unit>
<unit id="XchzDpI" name="settings.misc.kicad_eda.default_parameter_symbol_visibility">
<segment state="translated">
<source>settings.misc.kicad_eda.default_parameter_symbol_visibility</source>
<target>Standard-Symbolsichtbarkeit für Parameter</target>
</segment>
</unit>
<unit id="zLHkPCx" name="settings.misc.kicad_eda.default_parameter_symbol_visibility.help">
<segment state="translated">
<source>settings.misc.kicad_eda.default_parameter_symbol_visibility.help</source>
<target>Legt fest, ob exportierte [Part]-Parameterfelder, für die keine explizite Symbol-Sichtbarkeit gesetzt wurde, im Schaltplansymbol angezeigt werden (das „visible“-Flag des KiCad-Feldes). Betrifft nur Parameter, die bereits als EDA-Felder exportiert werden.</target>
</segment>
</unit>
<unit id="J6pYnaC" name="settings.misc.kicad_eda.default_orderdetails_visibility">
<segment state="translated">
<source>settings.misc.kicad_eda.default_orderdetails_visibility</source>
@ -13737,36 +13713,6 @@ Buerklin-API-Authentication-Server:
<target>Sie können diesen zufällig generierten Wert verwenden (geben Sie ihn niemandem weiter):</target>
</segment>
</unit>
<unit id="pJfdMQU" name="search.extensive_matching">
<segment state="translated">
<source>search.extensive_matching</source>
<target>Erweiterte Übereinstimmung</target>
</segment>
</unit>
<unit id="YO2ZB66" name="search.permit_wildcards">
<segment state="translated">
<source>search.permit_wildcards</source>
<target>&lt;code&gt;%&lt;/code&gt; und &lt;code&gt;_&lt;/code&gt; als Platzhalter behandeln</target>
</segment>
</unit>
<unit id="_nxvnMn" name="search.regexmatching.help">
<segment state="translated">
<source>search.regexmatching.help</source>
<target>Verwenden Sie reguläre Ausdrücke wie "^\w{3,5}", um nach Teilen zu suchen. Umschließende Schrägstriche sind nicht erforderlich.</target>
</segment>
</unit>
<unit id="mry8ytG" name="search.extensive_matching.help">
<segment state="translated">
<source>search.extensive_matching.help</source>
<target>Der Suchbegriff wird in Teile zerlegt, und ein Treffer liegt vor, wenn jeder Teil in irgendeinem Feld enthalten ist. Ohne diesen Modus muss der vollständige Suchbegriff in einem einzigen Feld enthalten sein.</target>
</segment>
</unit>
<unit id="zLnKtwP" name="search.permit_wildcards.help">
<segment state="translated">
<source>search.permit_wildcards.help</source>
<target>Wenn aktiviert, wird _ als Platzhalter für ein Zeichen behandelt und % als Platzhalter für null oder mehr Zeichen.</target>
</segment>
</unit>
<unit id="OP7MacF" name="system.trusted_hosts.unconfigured.title">
<segment state="translated">
<source>system.trusted_hosts.unconfigured.title</source>
@ -13845,35 +13791,5 @@ Buerklin-API-Authentication-Server:
<target>Warnung: Das Ändern der Werte an dieser Stelle kann den Mechanismus zum Abrufen von Informationen beeinträchtigen! Sie sollten nach Möglichkeit die Funktion „Von Informationsquelle aktualisieren“ verwenden.</target>
</segment>
</unit>
<unit id="bNrxe9i" name="perm.api.use_mcp">
<segment state="translated">
<source>perm.api.use_mcp</source>
<target>MCP-Tools verwenden (für KI-Agenten)</target>
</segment>
</unit>
<unit id="ced_8yl" name="api.api_endpoints.mcp_url">
<segment state="translated">
<source>api.api_endpoints.mcp_url</source>
<target>MCP-Endpunkt</target>
</segment>
</unit>
<unit id="a1wK4h_" name="info_providers.capabilities.parameters">
<segment state="translated">
<source>info_providers.capabilities.parameters</source>
<target>Parameter</target>
</segment>
</unit>
<unit id="QivC_me" name="info_providers.expensive">
<segment state="translated">
<source>info_providers.expensive</source>
<target>Kostenintensiv</target>
</segment>
</unit>
<unit id="Hiw406i" name="info_providers.expensive.tooltip">
<segment state="translated">
<source>info_providers.expensive.tooltip</source>
<target>Die Verwendung dieses Informationsanbieters kann zusätzliche Kosten verursachen oder unterliegt sehr strengen Ratenlimits.</target>
</segment>
</unit>
</file>
</xliff>

View file

@ -648,12 +648,6 @@ Sub elements will be moved upwards.</target>
<target>Export this parameter as an EDA field</target>
</segment>
</unit>
<unit id="Nx6h9XW" name="specifications.eda_symbol_visibility.help">
<segment state="translated">
<source>specifications.eda_symbol_visibility.help</source>
<target>Make this parameter field visible in the schematic symbol</target>
</segment>
</unit>
<unit id="XclPxI9" name="specification.create">
<segment state="translated">
<source>specification.create</source>
@ -705,7 +699,7 @@ Sub elements will be moved upwards.</target>
<unit id="LN0dVIE" name="loading.message">
<segment state="translated">
<source>loading.message</source>
<target>This can take a while. If this message stays for a long time, try to reload the page.</target>
<target>This can take a while. If this messages stays for a long time, try to reload the page.</target>
</segment>
</unit>
<unit id="8I0Kqhw" name="loading.bar">
@ -819,7 +813,7 @@ Sub elements will be moved upwards.</target>
<unit id="bVL1K4d" name="homepage.help.text">
<segment state="translated">
<source>homepage.help.text</source>
<target>Help and tips can be found in the Wiki on the &lt;a href="%href%" class="link-external" target="_blank"&gt;GitHub page&lt;/a&gt;</target>
<target>Help and tips can be found in Wiki the &lt;a href="%href%" class="link-external" target="_blank"&gt;GitHub page&lt;/a&gt;</target>
</segment>
</unit>
<unit id="dnirx4v" name="homepage.forum.caption">
@ -2426,13 +2420,13 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
<unit id="kgA0kPC" name="entity.edit_flash">
<segment state="translated">
<source>entity.edit_flash</source>
<target>Changes saved successfully.</target>
<target>Changes saved successful.</target>
</segment>
</unit>
<unit id="_cDBy1s" name="entity.edit_flash.invalid">
<segment state="translated">
<source>entity.edit_flash.invalid</source>
<target>Can not save changes. Please check your input!</target>
<target>Can not save changed. Please check your input!</target>
</segment>
</unit>
<unit id="vJr16w7" name="entity.created_flash">
@ -2456,7 +2450,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
<unit id="vlktMB1" name="csfr_invalid">
<segment state="translated">
<source>csfr_invalid</source>
<target>CSRF Token invalid. Please reload this page or contact an administrator if this message stays.</target>
<target>CSFR Token invalid. Please reload this page or contact an administrator if this message stays.</target>
</segment>
</unit>
<unit id="GFvuxVv" name="label_generator.no_entities_found">
@ -2555,7 +2549,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
<unit id="XFmvSsv" name="part.deleted">
<segment state="translated">
<source>part.deleted</source>
<target>Part deleted successfully.</target>
<target>Part deleted successful.</target>
</segment>
</unit>
<unit id="iKciX31" name="part.created_flash">
@ -4054,7 +4048,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
</notes>
<segment state="translated">
<source>validator.noneofitschild.self</source>
<target>An element can not be its own parent.</target>
<target>A element can not be its own parent.</target>
</segment>
</unit>
<unit id="W90LyFQ" name="validator.noneofitschild.children">
@ -6129,7 +6123,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="uxw7_77" name="group.edit.enforce_2fa.help">
<segment state="translated">
<source>group.edit.enforce_2fa.help</source>
<target>If this option is enabled, every direct member of this group has to configure at least one second-factor for authentication. Recommended for administrative groups with many permissions.</target>
<target>If this option is enabled, every direct member of this group, has to configure at least one second-factor for authentication. Recommended for administrative groups with many permissions.</target>
</segment>
</unit>
<unit id="NwsYm0P" name="selectpicker.nothing_selected">
@ -6369,7 +6363,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="CdphPiM" name="tools.reel_calc.explanation">
<segment state="translated">
<source>tools.reel_calc.explanation</source>
<target>This calculator gives you an estimation, how many parts are remaining on an SMD reel. Measure the noted dimensions on the reel (or use the presets) and click "Update" to get a result.</target>
<target>This calculator gives you an estimation, how many parts are remaining on an SMD reel. Measure the noted the dimensions on the reel (or use the presets) and click "Update" to get a result.</target>
</segment>
</unit>
<unit id="21dEh63" name="perm.tools.reel_calculator">
@ -7605,7 +7599,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id="DL.TreI" name="category.edit.partname_regex.help">
<segment state="translated">
<source>category.edit.partname_regex.help</source>
<target>A PCRE-compatible regular expression, which a part name has to match.</target>
<target>A PCRE-compatible regular expression, which a part name have to match.</target>
</segment>
</unit>
<unit id="f3gkGc9" name="category.edit.part_ipn_prefix.help">
@ -8307,7 +8301,7 @@ Element 1 -&gt; Element 1.2</target>
<unit id=".TjGPnB" name="import.create_unknown_datastructures.help">
<segment state="translated">
<source>import.create_unknown_datastructures.help</source>
<target>If this is selected, data structures (like categories, footprints, etc.) which do not exist in the database yet, will be automatically created. If this is not selected, only existing data structures will be used, and if no matching data structure is found, the part will get assigned nothing</target>
<target>If this is selected, data structures (like categories, footprints, etc.) which does not exist in the database yet, will be automatically created. If this is not selected, only existing data structures will be used, and if no matching data structure is found, the part will get assigned nothing</target>
</segment>
</unit>
<unit id="y_rsaV8" name="import.path_delimiter">
@ -9257,7 +9251,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
<unit id="22Y3GfL" name="part_lot.edit.vendor_barcode.help">
<segment state="translated">
<source>part_lot.edit.vendor_barcode.help</source>
<target>If this lot already has a barcode (e.g. put there by the vendor), you can input its content here, to easily scan it.</target>
<target>If this lot already have a barcode (e.g. put there by the vendor), you can input its content here, to easily scan it.</target>
</segment>
</unit>
<unit id="tFAtJBM" name="scan_dialog.mode.vendor">
@ -10080,7 +10074,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
<unit id="w07P3Dt" name="settings.misc.kicad_eda.category_depth.help">
<segment state="translated">
<source>settings.misc.kicad_eda.category_depth.help</source>
<target>This value determines the depth of the category tree, that is visible inside KiCad. 0 means that only the top level categories are visible. Set to a value &gt; 0 to show more levels. Set to -1, to show all parts of Part-DB inside a single category in KiCad.</target>
<target>This value determines the depth of the category tree, that is visible inside KiCad. 0 means that only the top level categories are visible. Set to a value &gt; 0 to show more levels. Set to -1, to show all parts of Part-DB inside a sigle cnategory in KiCad.</target>
</segment>
</unit>
<unit id="X5.rQdO" name="settings.misc.kicad_eda.datasheet_link">
@ -12134,7 +12128,7 @@ Please note that this system is currently experimental, and the synonyms defined
<unit id="Akh9iFg" name="settings.misc.ipn_suggest.globalPrefix.help">
<segment state="translated">
<source>settings.misc.ipn_suggest.globalPrefix.help</source>
<target>If enabled, an option to generate IPN with this global prefix, shared across parts in all categories.</target>
<target>If enabled, an option for to generate IPN with this global prefix, shared across parts in all categories.</target>
</segment>
</unit>
<unit id="MxKRRx_" name="datatable.datatable.lengthMenu">
@ -12872,7 +12866,7 @@ Buerklin-API Authentication server:
<unit id="Pu8juaH" name="settings.ips.generic_web_provider.enabled.help">
<segment state="translated">
<source>settings.ips.generic_web_provider.enabled.help</source>
<target>When the provider is enabled, users can make requests to arbitrary websites on behalf of the Part-DB server. Only enable this, if you are aware of the potential consequences.</target>
<target>When the provider is enabled, users can make requests to arbitary websites on behalf of the Part-DB server. Only enable this, if you are aware of the potential consequences.</target>
</segment>
</unit>
<unit id="IvIOYcn" name="info_providers.from_url.title">
@ -13046,19 +13040,7 @@ Buerklin-API Authentication server:
<unit id="Z78QunV" name="settings.misc.kicad_eda.default_parameter_visibility.help">
<segment state="translated">
<source>settings.misc.kicad_eda.default_parameter_visibility.help</source>
<target>EDA visibility for all [part] parameters that do not have an explicit visibility set. When enabled all parameters will be visible in the EDA software by default.</target>
</segment>
</unit>
<unit id="XchzDpI" name="settings.misc.kicad_eda.default_parameter_symbol_visibility">
<segment state="translated">
<source>settings.misc.kicad_eda.default_parameter_symbol_visibility</source>
<target>Default symbol visibility of parameters</target>
</segment>
</unit>
<unit id="zLHkPCx" name="settings.misc.kicad_eda.default_parameter_symbol_visibility.help">
<segment state="translated">
<source>settings.misc.kicad_eda.default_parameter_symbol_visibility.help</source>
<target>Whether exported [part] parameter fields that do not have an explicit symbol visibility set are shown in the schematic symbol (the KiCad field's "visible" flag). Only affects parameters that are already exported as EDA fields.</target>
<target>EDA visibility for all [part] parameters who does not have an explicit visibility set. When enabled all parameters will be visible in the EDA software by default.</target>
</segment>
</unit>
<unit id="J6pYnaC" name="settings.misc.kicad_eda.default_orderdetails_visibility">
@ -13070,7 +13052,7 @@ Buerklin-API Authentication server:
<unit id="Hiye4C." name="settings.misc.kicad_eda.default_orderdetails_visibility.help">
<segment state="translated">
<source>settings.misc.kicad_eda.default_orderdetails_visibility.help</source>
<target>EDA visibility for all purchase infos that do not have an explicit visibility set. When enabled all purchase infos will be visible in the EDA software by default.</target>
<target>EDA visibility for all purchase infos who does not have an explicit visibility set. When enabled all purchase infos will be visible in the EDA software by default.</target>
</segment>
</unit>
<unit id="aEgd0if" name="label_scanner.open">
@ -13646,7 +13628,7 @@ Buerklin-API Authentication server:
<unit id="wILs7pS" name="settings.ips.ai_extractor.description">
<segment state="translated">
<source>settings.ips.ai_extractor.description</source>
<target>This info provider uses a large language model (LLM) to extract detailed part information from arbitrary shop URLs.</target>
<target>This info provider uses an large language model (LLM) to extract detailed part information from arbitary shop URLs.</target>
</segment>
</unit>
<unit id="1ShZ.1i" name="settings.ai.openrouter.help">
@ -13767,7 +13749,7 @@ Buerklin-API Authentication server:
<segment>
<source>search.permit_wildcards.help</source>
<target>If enabled, _ is treated as a wildcard for one character and % is treated as a wildcard for zero or more characters.</target>
</segment>
</segment>
</unit>
<unit id="OP7MacF" name="system.trusted_hosts.unconfigured.title">
<segment state="translated">
@ -13844,7 +13826,7 @@ Buerklin-API Authentication server:
<unit id="yIK_Wtj" name="part.edit.provider_reference.warning">
<segment state="translated">
<source>part.edit.provider_reference.warning</source>
<target>Warning: Changing values here can break the info retrieval mechanism! You should use the "update from info provider" functionality whenever possible.</target>
<target>Warning: Changing values here can break the info retrieval mechanism! You should use the "update from info provider" functionality whenever possible.</target>
</segment>
</unit>
<unit id="bNrxe9i" name="perm.api.use_mcp">

View file

@ -10,7 +10,7 @@
<unit id="v8HkcJB" name="structural.entity.unique_name">
<segment state="translated">
<source>structural.entity.unique_name</source>
<target>Es kann auf jeder Ebene nur ein Objekt mit dem gleichen Namen geben!</target>
<target>Es kann auf jeder Ebene nur ein Objekt mit dem gleichem Namen geben!</target>
</segment>
</unit>
<unit id="dW7b2B_" name="parameters.validator.min_lesser_typical">
@ -49,7 +49,7 @@
</notes>
<segment state="translated">
<source>validator.noneofitschild.self</source>
<target>Ein Element kann nicht sein eigenes übergeordnetes Element sein!</target>
<target>Ein Element kann nicht sein eigenenes übergeordnetes Element sein!</target>
</segment>
</unit>
<unit id="W90LyFQ" name="validator.noneofitschild.children">
@ -82,7 +82,7 @@
<unit id="eeEjB4s" name="validator.part_lot.location_full">
<segment state="translated">
<source>validator.part_lot.location_full</source>
<target>Der Lagerort ist voll, daher können keine neuen Teile hinzugefügt werden.</target>
<target>Der Lagerort ist voll, daher können keine neue Teile hinzugefügt werden.</target>
</segment>
</unit>
<unit id="2yWi8eP" name="validator.part_lot.single_part">
@ -94,7 +94,7 @@
<unit id="A.TFhbb" name="validator.attachment.must_not_be_null">
<segment state="translated">
<source>validator.attachment.must_not_be_null</source>
<target>Sie müssen einen Dateityp auswählen!</target>
<target>Sie müssen ein Dateitypen auswählen!</target>
</segment>
</unit>
<unit id=".lqKoij" name="validator.orderdetail.supplier_must_not_be_null">
@ -106,7 +106,7 @@
<unit id="bcNZzK." name="validator.measurement_unit.use_si_prefix_needs_unit">
<segment state="translated">
<source>validator.measurement_unit.use_si_prefix_needs_unit</source>
<target>Um SI-Prefixe zu aktivieren, müssen Sie ein Einheitensymbol setzen!</target>
<target>Um SI-Prefixe zu aktivieren, müssen Sie einen Einheitensymbol setzen!</target>
</segment>
</unit>
<unit id="gZ5FFL1" name="part.ipn.must_be_unique">
@ -124,7 +124,7 @@
<unit id="5CEup_N" name="project.bom_entry.name_already_in_bom">
<segment state="translated">
<source>project.bom_entry.name_already_in_bom</source>
<target>Es gibt bereits einen BOM-Eintrag mit diesem Namen!</target>
<target>Es gibt bereits einen BOM Eintrag mit diesem Namen!</target>
</segment>
</unit>
<unit id="jB3B50E" name="project.bom_entry.part_already_in_bom">
@ -190,7 +190,7 @@
<unit id="TzySicw" name="validator.part_lot.owner_must_not_be_anonymous">
<segment state="translated">
<source>validator.part_lot.owner_must_not_be_anonymous</source>
<target>Der Eigentümer darf nicht der anonyme Benutzer sein!</target>
<target>Der Eigentümer darf nicht der anonymous Benutzer sein!</target>
</segment>
</unit>
<unit id="GthNWUb" name="validator.part_association.must_set_an_value_if_type_is_other">
@ -214,13 +214,13 @@
<unit id="HbI5bga" name="validator.part_lot.vendor_barcode_must_be_unique">
<segment state="translated">
<source>validator.part_lot.vendor_barcode_must_be_unique</source>
<target>Dieser Lieferanten-Barcode-Wert wird bereits bei einem anderen Bestand verwendet. Der Barcode muss eindeutig sein!</target>
<target>Dieser Lieferanten Barcode Wert wird bereits bei einem anderen Bestand verwendet. Der Barcode muss eindeutig sein!</target>
</segment>
</unit>
<unit id="ufQJh7E" name="validator.year_2038_bug_on_32bit">
<segment state="translated">
<source>validator.year_2038_bug_on_32bit</source>
<target>Aufgrund technischer Beschränkungen ist es nicht möglich, ein Datum nach dem 19.01.2038 auf 32-Bit-Systemen auszuwählen!</target>
<target>Aufgrund technischer Beschränkungen ist es nicht möglich, ein Datum nach dem 19.01.2038 auf 32-Bit Systemen auszuwählen!</target>
</segment>
</unit>
<unit id="iM9yb_p" name="validator.fileSize.invalidFormat">
@ -238,13 +238,13 @@
<unit id="m4gp2P_" name="validator.google_code.wrong_code">
<segment state="translated">
<source>validator.google_code.wrong_code</source>
<target>Ungültiger Code. Überprüfen Sie, ob die Authenticator-App korrekt eingerichtet ist und ob der Server und das Gerät beide die korrekte Uhrzeit eingestellt haben.</target>
<target>Ungültiger Code. Überprüfen Sie, ob die Authenticator App korrekt eingerichtet ist und ob der Server und das Gerät beide die korrekte Uhrzeit eingestellt haben.</target>
</segment>
</unit>
<unit id="I330cr5" name="settings.synonyms.type_synonyms.collection_type.duplicate">
<segment state="translated">
<source>settings.synonyms.type_synonyms.collection_type.duplicate</source>
<target>Es existiert bereits eine Übersetzung für diesen Typ und diese Sprache!</target>
<target>Es existiert bereits eine Übersetzung für diesen Typ und Sprache!</target>
</segment>
</unit>
<unit id="zT_j_oQ" name="validator.invalid_gtin">

View file

@ -100,7 +100,7 @@
<unit id=".lqKoij" name="validator.orderdetail.supplier_must_not_be_null">
<segment state="translated">
<source>validator.orderdetail.supplier_must_not_be_null</source>
<target>You must select a supplier!</target>
<target>You must select an supplier!</target>
</segment>
</unit>
<unit id="bcNZzK." name="validator.measurement_unit.use_si_prefix_needs_unit">
@ -124,7 +124,7 @@
<unit id="5CEup_N" name="project.bom_entry.name_already_in_bom">
<segment state="translated">
<source>project.bom_entry.name_already_in_bom</source>
<target>There is already a BOM entry with this name!</target>
<target>There is already an BOM entry with this name!</target>
</segment>
</unit>
<unit id="jB3B50E" name="project.bom_entry.part_already_in_bom">
@ -136,19 +136,19 @@
<unit id="NdkzP1n" name="project.bom_entry.mountnames_quantity_mismatch">
<segment state="translated">
<source>project.bom_entry.mountnames_quantity_mismatch</source>
<target>The number of mountnames has to match the BOM's quantity!</target>
<target>The number of mountnames has to match the BOMs quantity!</target>
</segment>
</unit>
<unit id="8teRCgR" name="project.bom_entry.can_not_add_own_builds_part">
<segment state="translated">
<source>project.bom_entry.can_not_add_own_builds_part</source>
<target>You can not add a project's own build part to the BOM.</target>
<target>You can not add a project's own builds part to the BOM.</target>
</segment>
</unit>
<unit id="asBxPxe" name="project.bom_has_to_include_all_subelement_parts">
<segment state="translated">
<source>project.bom_has_to_include_all_subelement_parts</source>
<target>The project BOM has to include all subprojects' build parts. Part %part_name% of project %project_name% missing!</target>
<target>The project BOM has to include all subprojects builds parts. Part %part_name% of project %project_name% missing!</target>
</segment>
</unit>
<unit id="uxaE9Ct" name="project.bom_entry.price_not_allowed_on_parts">
@ -220,7 +220,7 @@
<unit id="ufQJh7E" name="validator.year_2038_bug_on_32bit">
<segment state="translated">
<source>validator.year_2038_bug_on_32bit</source>
<target>Due to technical limitations, it is not possible to select dates after 2038-01-19 on 32-bit systems!</target>
<target>Due to technical limitations, it is not possible to select dates after the 2038-01-19 on 32-bit systems!</target>
</segment>
</unit>
<unit id="iM9yb_p" name="validator.fileSize.invalidFormat">
@ -238,7 +238,7 @@
<unit id="m4gp2P_" name="validator.google_code.wrong_code">
<segment state="translated">
<source>validator.google_code.wrong_code</source>
<target>Invalid code. Check that your authenticator app is set up correctly and that both the server and authentication device have the time set correctly.</target>
<target>Invalid code. Check that your authenticator app is set up correctly and that both the server and authentication device has the time set correctly.</target>
</segment>
</unit>
<unit id="I330cr5" name="settings.synonyms.type_synonyms.collection_type.duplicate">
@ -250,25 +250,25 @@
<unit id="zT_j_oQ" name="validator.invalid_gtin">
<segment state="translated">
<source>validator.invalid_gtin</source>
<target>This is not a valid GTIN / EAN!</target>
<target>This is not an valid GTIN / EAN!</target>
</segment>
</unit>
<unit id="vnpejmb" name="info_providers.validation.provider_id_without_key">
<segment state="translated">
<source>info_providers.validation.provider_id_without_key</source>
<target>If you specify a provider ID, you also need to specify an info provider or remove both.</target>
<target>If you specify an provider ID, you also need to specify an info provider or remove both.</target>
</segment>
</unit>
<unit id="yFlA5OA" name="info_providers.validation.provider_url_without_key">
<segment state="translated">
<source>info_providers.validation.provider_url_without_key</source>
<target>If you specify a provider URL, you also need to specify an info provider.</target>
<target>If you specify an provider URL, you also need to specify an info provider.</target>
</segment>
</unit>
<unit id="gUHUXoV" name="info_providers.validation.provider_key_without_id">
<segment state="translated">
<source>info_providers.validation.provider_key_without_id</source>
<target>If you specify an info provider, you also need to provide a provider ID, or remove both.</target>
<target>If you specify an info provider, you also need to provide an provider id, or remove both.</target>
</segment>
</unit>
</file>