Projekt-Importer um JSON/CSV Importer analog zu Assemblies erweitern

This commit is contained in:
Marcel Diegelmann 2025-06-24 09:42:12 +02:00
parent 2066d20edf
commit ecbc8b4e80
18 changed files with 3112 additions and 55 deletions

View file

@ -46,14 +46,16 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use function Symfony\Component\Translation\t;
#[Route(path: '/project')]
class ProjectController extends AbstractController
{
public function __construct(private readonly DataTableFactory $dataTableFactory)
{
public function __construct(
private readonly DataTableFactory $dataTableFactory,
private readonly TranslatorInterface $translator,
) {
}
#[Route(path: '/{id}/info', name: 'project_info', requirements: ['id' => '\d+'])]
@ -147,6 +149,8 @@ class ProjectController extends AbstractController
'label' => 'project.bom_import.type',
'required' => true,
'choices' => [
'project.bom_import.type.json' => 'json',
'project.bom_import.type.csv' => 'csv',
'project.bom_import.type.kicad_pcbnew' => 'kicad_pcbnew',
'project.bom_import.type.kicad_schematic' => 'kicad_schematic',
'project.bom_import.type.generic_csv' => 'generic_csv',
@ -189,17 +193,20 @@ class ProjectController extends AbstractController
}
// For PCB imports, proceed directly
$entries = $BOMImporter->importFileIntoProject($form->get('file')->getData(), $project, [
'type' => $import_type,
$importerResult = $BOMImporter->importFileIntoProject($form->get('file')->getData(), $project, [
'type' => $form->get('type')->getData(),
]);
// Validate the project entries
$errors = $validator->validateProperty($project, 'bom_entries');
// If no validation errors occurred, save the changes and redirect to edit page
if (count($errors) === 0) {
//If no validation errors occured, save the changes and redirect to edit page
if (count ($errors) === 0 && $importerResult->getViolations()->count() === 0) {
$entries = $importerResult->getBomEntries();
$this->addFlash('success', t('project.bom_import.flash.success', ['%count%' => count($entries)]));
$entityManager->flush();
return $this->redirectToRoute('project_edit', ['id' => $project->getID()]);
}
@ -211,10 +218,29 @@ class ProjectController extends AbstractController
}
}
$jsonTemplate = [
[
"quantity" => 1.0,
"name" => $this->translator->trans('project.bom_import.template.entry.name'),
"part" => [
"id" => null,
"ipn" => $this->translator->trans('project.bom_import.template.entry.part.ipn'),
"mpnr" => $this->translator->trans('project.bom_import.template.entry.part.mpnr'),
"name" => $this->translator->trans('project.bom_import.template.entry.part.name'),
"manufacturer" => [
"id" => null,
"name" => $this->translator->trans('project.bom_import.template.entry.part.manufacturer.name')
],
]
]
];
return $this->render('projects/import_bom.html.twig', [
'project' => $project,
'jsonTemplate' => $jsonTemplate,
'form' => $form,
'errors' => $errors ?? null,
'validationErrors' => $errors ?? null,
'importerErrors' => isset($importerResult) ? $importerResult->getViolations() : null,
]);
}

View file

@ -36,6 +36,7 @@ use ApiPlatform\OpenApi\Model\Operation;
use ApiPlatform\Serializer\Filter\PropertyFilter;
use App\ApiPlatform\Filter\LikeFilter;
use App\Entity\Contracts\TimeStampableInterface;
use App\Repository\DBElementRepository;
use App\Validator\UniqueValidatableInterface;
use Doctrine\DBAL\Types\Types;
use App\Entity\Base\AbstractDBElement;
@ -54,7 +55,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
* The ProjectBOMEntry class represents an entry in a project's BOM.
*/
#[ORM\HasLifecycleCallbacks]
#[ORM\Entity]
#[ORM\Entity(repositoryClass: DBElementRepository::class)]
#[ORM\Table('project_bom_entries')]
#[ApiResource(
operations: [

View file

@ -87,7 +87,7 @@ class BOMImporter
$this->partRepository = $entityManager->getRepository(Part::class);
$this->manufacturerRepository = $entityManager->getRepository(Manufacturer::class);
$this->categoryRepository = $entityManager->getRepository(Category::class);
$this->projectBOMEntryRepository = $entityManager->getRepository(Project::class);
$this->projectBOMEntryRepository = $entityManager->getRepository(ProjectBOMEntry::class);
$this->assemblyBOMEntryRepository = $entityManager->getRepository(AssemblyBOMEntry::class);
$this->translator = $translator;
}
@ -111,18 +111,19 @@ class BOMImporter
/**
* Converts the given file into an array of BOM entries using the given options and save them into the given project.
* The changes are not saved into the database yet.
* @return ProjectBOMEntry[]
*/
public function importFileIntoProject(File $file, Project $project, array $options): array
public function importFileIntoProject(UploadedFile $file, Project $project, array $options): ImporterResult
{
$bom_entries = $this->fileToBOMEntries($file, $options);
$importerResult = $this->fileToImporterResult($file, $options);
//Assign the bom_entries to the project
foreach ($bom_entries as $bom_entry) {
$project->addBomEntry($bom_entry);
if ($importerResult->getViolations()->count() === 0) {
//Assign the bom_entries to the project
foreach ($importerResult->getBomEntries() as $bomEntry) {
$project->addBomEntry($bomEntry);
}
}
return $bom_entries;
return $importerResult;
}
/**
@ -202,7 +203,7 @@ class BOMImporter
$fileExtension,
[
'%extension%' => $fileExtension,
'%importType%' => $this->translator->trans('assembly.bom_import.type.'.$options['type']),
'%importType%' => $this->translator->trans($objectType === ProjectBOMEntry::class ? 'project.bom_import.type.'.$options['type'] : 'assembly.bom_import.type.'.$options['type']),
'%allowedExtensions%' => implode(', ', $validExtensions),
]
));
@ -711,7 +712,7 @@ class BOMImporter
$category = $categoryIdValid ? $this->categoryRepository->findOneBy(['id' => $entry['part']['category']['id']]) : null;
$category = $category ?? ($categoryNameValid ? $this->categoryRepository->findOneBy(['name' => trim($entry['part']['category']['name'])]) : null);
if (($categoryIdValid || $categoryNameValid) && $category === null) {
if (($categoryIdValid || $categoryNameValid)) {
$value = sprintf(
'category.id: %s, category.name: %s',
isset($entry['part']['category']['id']) && $entry['part']['category']['id'] !== null ? '<strong>' . $entry['part']['category']['id'] . '</strong>' : '-',
@ -748,12 +749,12 @@ class BOMImporter
$part->setDescription($partDescription);
}
if ($manufacturer !== null && $manufacturer->getID() !== $part->getManufacturerID()) {
if ($manufacturer !== null && $manufacturer->getID() !== $part->getManufacturer()->getID()) {
//When updating the associated parts, take over to a assembly of the manufacturer of the part.
$part->setManufacturer($manufacturer);
}
if ($category !== null && $category->getID() !== $part->getCategoryID()) {
if ($category !== null && $category->getID() !== $part->getCategory()->getID()) {
//When updating the associated parts to a assembly, take over the category of the part.
$part->setCategory($category);
}
@ -771,11 +772,26 @@ class BOMImporter
}
}
} else {
$bomEntry = new ProjectBOMEntry();
$bomEntry = $this->projectBOMEntryRepository->findOneBy(['part' => $part]);
if ($bomEntry === null) {
if (isset($entry['name']) && $entry['name'] !== '') {
$bomEntry = $this->projectBOMEntryRepository->findOneBy(['name' => $entry['name']]);
}
if ($bomEntry === null) {
$bomEntry = new ProjectBOMEntry();
}
}
}
$bomEntry->setQuantity((float) $entry['quantity']);
$bomEntry->setName($entry['name'] ?? '');
if (isset($entry['name'])) {
$bomEntry->setName(trim($entry['name']) === '' ? null : trim ($entry['name']));
} else {
$bomEntry->setName(null);
}
$bomEntry->setPart($part);

View file

@ -29,7 +29,6 @@
{% endif %}
{% endblock %}
{% block card_title %}
<i class="fa-solid fa-file-import fa-fw"></i>
{% trans %}assembly.import_bom{% endtrans %}{% if assembly %}: <i>{{ assembly.name }}</i>{% endif %}

View file

@ -3,29 +3,107 @@
{% block title %}{% trans %}project.import_bom{% endtrans %}{% endblock %}
{% block before_card %}
{% if errors %}
{% if validationErrors or importerErrors %}
<div class="alert alert-danger">
<h4><i class="fa-solid fa-exclamation-triangle fa-fw"></i> {% trans %}parts.import.errors.title{% endtrans %}</h4>
<ul>
{% for violation in errors %}
<li>
<b>{{ violation.propertyPath }}: </b>
{{ violation.message|trans(violation.parameters, 'validators') }}
</li>
{% endfor %}
{% if validationErrors %}
{% for violation in validationErrors %}
<li>
<b>{{ violation.propertyPath }}: </b>
{{ violation.message|trans(violation.parameters, 'validators') }}
</li>
{% endfor %}
{% endif %}
{% if importerErrors %}
{% for violation in importerErrors %}
<li>
<b>{{ violation.propertyPath }}: </b>
{{ violation.message|trans(violation.parameters, 'validators')|raw }}
</li>
{% endfor %}
{% endif %}
</ul>
</div>
{% endif %}
{% endblock %}
{% block card_title %}
<i class="fa-solid fa-file-import fa-fw"></i>
{% trans %}project.import_bom{% endtrans %}{% if project %}: <i>{{ project.name }}</i>{% endif %}
{% endblock %}
{% block card_content %}
{{ form(form) }}
{% endblock %}
{% block additional_content %}
<div class="container-fluid row d-flex align-items-stretch pe-0 me-0">
<div class="col-md-12 col-lg-6 ps-0 mt-3 d-flex">
<div class="card border-secondary flex-grow-1 overflow-auto">
<div class="card-header bg-secondary text-white">
{% trans %}project.import_bom.template.header.json{% endtrans %}
</div>
<div class="card-body">
<pre>{{ jsonTemplate|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_UNICODE')) }}</pre>
{{ 'project.bom_import.template.json.table'|trans|raw }}
</div>
</div>
</div>
<div class="col-md-12 col-lg-6 ps-0 mt-3 d-flex">
<div class="card border-secondary flex-grow-1 overflow-auto">
<div class="card-header bg-secondary text-white">
{% trans %}project.import_bom.template.header.csv{% endtrans %}
</div>
<div class="card-body">
{{ 'project.bom_import.template.csv.exptected_columns'|trans }}
<pre>quantity;name;part_id;part_mpnr;part_ipn;part_name;part_manufacturer_id;part_manufacturer_name</pre>
<ul>
<li>quantity</li>
<li>name</li>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
{{ 'project.bom_import.template.csv.table'|trans|raw }}
</div>
</div>
</div>
<div class="col-md-12 col-lg-6 ps-0 mt-3 d-flex overflow-auto">
<div class="card border-secondary flex-grow-1 overflow-auto">
<div class="card-header bg-secondary text-white">
{% trans %}project.import_bom.template.header.kicad_pcbnew{% endtrans %}
</div>
<div class="card-body">
{{ 'project.bom_import.template.kicad_pcbnew.exptected_columns'|trans }}
<pre>Id;Designator;Package;Quantity;Designation;Supplier and ref</pre>
<ul>
<li>Id</li>
<li>Designator</li>
<li>Package</li>
<li>Quantity</li>
<li>Designation</li>
<li>Supplier and ref</li>
<li>Note</li>
<li>Footprint</li>
<li>Value</li>
<li>Footprint</li>
</ul>
{{ 'project.bom_import.template.kicad_pcbnew.exptected_columns.note'|trans|raw }}
{{ 'project.bom_import.template.kicad_pcbnew.table'|trans|raw }}
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -11046,6 +11046,18 @@ Element 3</target>
<target>Typ</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11064,6 +11076,319 @@ Element 3</target>
<target>Výběrem této možnosti odstraníte všechny existující položky BOM v projektu a přepíšete je importovaným souborem BOM!</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Šablona importu JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Šablona importu CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Šablona importu CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Název komponenty v projektu</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Jedinečné číslo produktu u výrobce</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Jedinečné IPN součásti</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Jedinečný název součásti</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Jedinečný název výrobce</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Pole</th>
<th>Podmínka</th>
<th>Datový typ</th>
<th>Popis</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Povinné</td>
<td>Desetinné číslo (Float)</td>
<td>Musí být zadáno a obsahovat desetinnou hodnotu (Float), která je větší než 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Pokud je přítomen, musí být neprázdný řetězec. Název položky v kusovníku.</td>
</tr>
<tr>
<td>part</td>
<td>Volitelné</td>
<td>Objekt/Array</td>
<td>
Pokud je potřeba přiřadit součástku, musí to být objekt/pole a musí být vyplněno alespoň jedno z následujících polí:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Volitelné</td>
<td>Celé číslo (Integer)</td>
<td>Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID součástky v Part-DB.</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Neprázdný řetězec, pokud není uvedeno part.id, part.ipn nebo part.name.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Neprázdný řetězec, pokud není uvedeno part.id, part.mpnr nebo part.name.</td>
</tr>
<tr>
<td>part.name</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Neprázdný řetězec, pokud není uvedeno part.id, part.mpnr nebo part.ipn.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Volitelné</td>
<td>Objekt/Array</td>
<td>
Pokud má být upraven výrobce součástky nebo pokud má být součástka nalezena jednoznačně na základě part.mpnr, musí to být objekt/pole a musí být vyplněno alespoň jedno z následujících polí:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Volitelné</td>
<td>Celé číslo (Integer)</td>
<td>Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID výrobce.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Neprázdný řetězec, pokud není uvedeno manufacturer.id.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Možné sloupce:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Sloupec</th>
<th>Podmínka</th>
<th>Datový typ</th>
<th>Popis</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Povinné</td>
<td>Desetinné číslo (Float)</td>
<td>Musí být uvedeno a obsahovat hodnotu desetinného čísla (Float) větší než 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Název položky v kusovníku.</td>
</tr>
<tr>
<td colspan="3"><strong>Sloupce začínající part_</strong></td>
<td>
Pokud má být přiřazena součástka, musí být uveden a vyplněn alespoň jeden z následujících sloupců:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Volitelné</td>
<td>Celé číslo (Integer)</td>
<td>Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID součástky v Part-DB.</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_ipn nebo part_name.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_mpnr nebo part_name.</td>
</tr>
<tr>
<td>part_name</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Musí být uvedeno, pokud nejsou vyplněny sloupce part_id, part_mpnr nebo part_ipn.</td>
</tr>
<tr>
<td colspan="3"><strong>Sloupce začínající part_manufacturer_</strong></td>
<td>
Pokud má být upraven výrobce dílu nebo má být díl jednoznačně identifikován podle hodnoty part_mpnr, musí být uveden a vyplněn alespoň jeden z následujících sloupců:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Volitelné</td>
<td>Celé číslo (Integer)</td>
<td>Celé číslo (Integer) > 0. Odpovídá internímu číselnému ID výrobce.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Musí být uvedeno, pokud není vyplněn sloupec part_manufacturer_id.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Očekávané sloupce:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Poznámka:</strong> Nedochází k přiřazení ke konkrétním součástkám ze správy kategorií.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Pole</th>
<th>Podmínka</th>
<th>Datový typ</th>
<th>Popis</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Volitelné</td>
<td>Celé číslo (Integer)</td>
<td>Volný údaj. Jedinečné identifikační číslo pro každou součástku.</td>
</tr>
<tr>
<td>Designator</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Volný údaj. Jedinečný referenční označovač součástky na desce plošných spojů, např. „R1“ pro odpor 1.<br>Je převzat do osazovacího názvu záznamu součástky.</td>
</tr>
<tr>
<td>Package</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Volný údaj. Pouzdro nebo tvar součástky, např. „0805“ pro SMD odpory.<br>Pro záznam součástky není převzato.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Povinné pole</td>
<td>Celé číslo (Integer)</td>
<td>Počet identických komponent, které jsou potřebné k vytvoření instance.<br>Je převzat jako počet položky komponenty.</td>
</tr>
<tr>
<td>Designation</td>
<td>Povinné pole</td>
<td>Řetězec (String)</td>
<td>Popis nebo funkce součástky, např. hodnota odporu „10kΩ“ nebo kapacita kondenzátoru „100nF“.<br>Je převzato do názvu záznamu součástky.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Volitelné</td>
<td>Řetězec (String)</td>
<td>Volný údaj. Může obsahovat např. distribuční specifickou hodnotu.<br>Je převzato jako poznámka ke záznamu součástky.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="6ZefVTs" name="project.bom_import.flash.invalid_file">
<segment state="translated">
<source>project.bom_import.flash.invalid_file</source>

View file

@ -11078,6 +11078,18 @@ Oversættelsen
<target>Typ</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="._nn_MY" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11090,6 +11102,319 @@ Oversættelsen
<target>let eksisterende styklisteposter før import</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>JSON-importskabelon</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>CSV-importskabelon</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>CSV-importskabelon (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Komponentens navn i projektet</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Unikt produktnummer hos producenten</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Komponentens unikke IPN</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Komponentens unikke navn</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Producentens unikke navn</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Felt</th>
<th>Betingelse</th>
<th>Datatype</th>
<th>Beskrivelse</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Obligatorisk</td>
<td>Decimaltal (Float)</td>
<td>Skal være angivet og skal indeholde en decimaltalsværdi (Float), der er større end 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Valgfrit</td>
<td>String</td>
<td>Hvis til stede, skal det være en ikke-tom streng. Navnet på posten i stykliste.</td>
</tr>
<tr>
<td>part</td>
<td>Valgfrit</td>
<td>Objekt/Array</td>
<td>
Hvis en komponent skal knyttes, skal det være et objekt/array, og mindst ét af felterne skal udfyldes:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Valgfrit</td>
<td>Heltal (Integer)</td>
<td>Heltal (Integer) > 0. Svarer til det interne numeriske ID for komponenten i Part-DB.</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Valgfrit</td>
<td>String</td>
<td>En ikke-tom streng, hvis hverken part.id, part.ipn eller part.name er angivet.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Valgfrit</td>
<td>String</td>
<td>En ikke-tom streng, hvis hverken part.id, part.mpnr eller part.name er angivet.</td>
</tr>
<tr>
<td>part.name</td>
<td>Valgfrit</td>
<td>String</td>
<td>En ikke-tom streng, hvis hverken part.id, part.mpnr eller part.ipn er angivet.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Valgfrit</td>
<td>Objekt/Array</td>
<td>
Hvis en komponents producent skal justeres, eller hvis komponenten skal findes entydigt via part.mpnr, skal det være et objekt/array, og mindst ét af felterne skal udfyldes:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Valgfrit</td>
<td>Heltal (Integer)</td>
<td>Heltal (Integer) > 0. Svarer til producentens interne numeriske ID.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Valgfrit</td>
<td>String</td>
<td>En ikke-tom streng, hvis manufacturer.id ikke er angivet.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="aK4i2aT" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Mulige kolonner:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Kolonne</th>
<th>Betingelse</th>
<th>Datatype</th>
<th>Beskrivelse</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Obligatorisk</td>
<td>Decimaltal (Float)</td>
<td>Skal være angivet og indeholde en decimaltalsværdi (Float), som er større end 0,0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Hvis tilgængelig, skal det være en ikke-tom streng. Navnet på elementet inden for stykliste.</td>
</tr>
<tr>
<td colspan="3"><strong>Kolonner, der begynder med part_</strong></td>
<td>
Hvis en komponent skal tildeles, skal mindst én af følgende kolonner være angivet og udfyldt:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Valgfri</td>
<td>Heltal (Integer)</td>
<td>Heltal (Integer) > 0. Svarer til den interne numeriske ID for komponenten i Part-DB.</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Valgfri</td>
<td>Streng (String)</td>
<td>Skal angives, hvis kolonnerne part_id, part_ipn eller part_name ikke er udfyldt.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Valgfri</td>
<td>Streng (String)</td>
<td>Skal angives, hvis kolonnerne part_id, part_mpnr eller part_name ikke er udfyldt.</td>
</tr>
<tr>
<td>part_name</td>
<td>Valgfri</td>
<td>Streng (String)</td>
<td>Skal angives, hvis kolonnerne part_id, part_mpnr eller part_ipn ikke er udfyldt.</td>
</tr>
<tr>
<td colspan="3"><strong>Kolonner, der begynder med part_manufacturer_</strong></td>
<td>
Hvis komponentens producent skal ændres eller identificeres entydigt baseret på part_mpnr, skal mindst én af følgende kolonner være angivet og udfyldt:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Valgfri</td>
<td>Heltal (Integer)</td>
<td>Heltal (Integer) > 0. Svarer til den interne numeriske ID for producenten.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Valgfri</td>
<td>Streng (String)</td>
<td>Skal angives, hvis kolonnen part_manufacturer_id ikke er udfyldt.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Forventede kolonner:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Bemærk:</strong> Der sker ingen tilknytning til specifikke komponenter fra kategoristyringen.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Felt</th>
<th>Betingelse</th>
<th>Datatype</th>
<th>Beskrivelse</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Valgfrit</td>
<td>Heltal (Integer)</td>
<td>Fri opgave. Et entydigt identifikationsnummer for hver komponent.</td>
</tr>
<tr>
<td>Designator</td>
<td>Valgfrit</td>
<td>Streng (String)</td>
<td>Fri opgave. En entydig referencemarkering for komponenten på PCB'et, fx "R1" for modstand 1.<br>Bliver overført til monteringsnavnet på komponentindgangen.</td>
</tr>
<tr>
<td>Package</td>
<td>Valgfrit</td>
<td>Streng (String)</td>
<td>Fri opgave. Komponentens pakning eller form, fx "0805" for SMD-modstande.<br>Bliver ikke overført til komponentindgangen.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Obligatorisk felt</td>
<td>Heltal (Integer)</td>
<td>Antallet af identiske komponenter, der kræves for at oprette en instans.<br>Overtages som antallet af komponentposter.</td>
</tr>
<tr>
<td>Designation</td>
<td>Obligatorisk felt</td>
<td>Streng (String)</td>
<td>Beskrivelse eller funktion af komponenten, fx modstandsværdi "10kΩ" eller kondensatorværdi "100nF".<br>Bliver overført til komponentindgangens navn.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Valgfrit</td>
<td>Streng (String)</td>
<td>Fri opgave. Kan eksempelvis indeholde en distributørspecifik værdi.<br>Bliver overført som en note til komponentindgangen.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="ijGhrbQ" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12777,13 +13102,13 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Mulige kolonner:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>
@ -12808,7 +13133,7 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver
<td>name</td>
<td>Valgfrit</td>
<td>Streng</td>
<td>Navnet på posten inden for samlingen.</td>
<td>Navnet på posten inden for stykliste.</td>
</tr>
<tr>
<td colspan="3"><strong>Kolonner, der starter med part_</strong></td>

View file

@ -11138,6 +11138,18 @@ Element 1 -&gt; Element 1.2</target>
<target>Typ</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11156,6 +11168,319 @@ Element 1 -&gt; Element 1.2</target>
<target>Wenn diese Option ausgewählt ist, werden alle bereits im Projekt existierenden BOM-Einträge gelöscht und mit den importierten BOM-Daten überschrieben.</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Import-Vorlage JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Import-Vorlage CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Import-Vorlage CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Name des Bauteils im Projekt</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Eindeutige Produktnummer innerhalb des Herstellers</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Eideutige IPN des Bauteils</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Eindeutiger Name des Bauteils</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Eindeutiger Name des Herstellers</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Feld</th>
<th>Bedingung</th>
<th>Datentyp</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Pflichtfeld</td>
<td>Gleitkommazahl (Float)</td>
<td>Muss gegeben sein und enthält einen Gleitkommawert (Float), der größer als 0.0 ist.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Stückliste.</td>
</tr>
<tr>
<td>part</td>
<td>Optional</td>
<td>Objekt/Array</td>
<td>
Falls ein Bauteil zugeordnet werden soll, muss es ein Objekt/Array und mindestens eines der Felder ausgefüllt sein:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Optional</td>
<td>Ganzzahl (Integer)</td>
<td>Ganzzahl (Integer) > 0. Entspricht der Part-DB internen numerischen ID des Bauteils.</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Optional</td>
<td>String</td>
<td>Nicht-leerer String, falls keine part.id-, part-ipn- bzw. part.name-Angabe gegeben ist.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Optional</td>
<td>String</td>
<td>Nicht-leerer String, falls keine part.id-, part.mpnr bzw. part.name-Angabe gegeben ist.</td>
</tr>
<tr>
<td>part.name</td>
<td>Optional</td>
<td>String</td>
<td>Nicht-leerer String, falls keine part.id-, part.mpnr- bzw. part.ipn-Angabe gegeben ist.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Optional</td>
<td>Objekt/Array</td>
<td>
Falls der Hersteller eines Bauteils mit angepasst werden oder das Bauteil anhand der part.mpnr-Angabe eindeutig gesucht werden soll, muss es ein Objekt/Array und mindestens eines der Felder ausgefüllt sein:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Optional</td>
<td>Ganzzahl (Integer)</td>
<td>Ganzzahl (Integer) > 0. Entspricht der internen numerischen ID des Herstellers.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Optional</td>
<td>String</td>
<td>Nicht-leerer String, falls keine manufacturer.id-Angabe gegeben ist.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Mögliche Spalten:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Spalte</th>
<th>Bedingung</th>
<th>Datentyp</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Pflichtfeld</td>
<td>Gleitkommazahl (Float)</td>
<td>Muss gegeben sein und enthält einen Gleitkommawert (Float), der größer als 0.0 ist.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Name des Eintrags innerhalb der Stückliste.</td>
</tr>
<tr>
<td colspan="3"><strong>Spalten beginnend mit part_</strong></td>
<td>
Falls ein Bauteil zugeordnet werden soll, muss eine der folgenden Spalten gegeben und ausgefüllt sein:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Optional</td>
<td>Ganzzahl (Integer)</td>
<td>Ganzzahl (Integer) > 0. Entspricht der Part-DB internen numerischen ID des Bauteils.</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Optional</td>
<td>String</td>
<td>Anzugeben, falls keine part_id-, part_ipn- bzw. part_name-Spalte ausgefüllt gegeben ist.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Optional</td>
<td>String</td>
<td>Anzugeben, falls keine part_id-, part_mpnr- bzw. part_name-Spalte ausgefüllt gegeben ist.</td>
</tr>
<tr>
<td>part_name</td>
<td>Optional</td>
<td>String</td>
<td>Anzugeben, falls keine part_id-, part_mpnr- bzw. part_ipn-Spalte ausgefüllt gegeben ist.</td>
</tr>
<tr>
<td colspan="3"><strong>Spalten beginnend mit part_manufacturer_</strong></td>
<td>
Falls der Hersteller eines Bauteils mit angepasst werden oder das Bauteil anhand der part_mpnr-Angabe eindeutig gesucht werden soll, muss eine der folgenden Spalten gegeben und ausgefüllt sein:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Optional</td>
<td>Ganzzahl (Integer)</td>
<td>Ganzzahl (Integer) > 0. Entspricht der internen numerischen ID des Herstellers.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Optional</td>
<td>String</td>
<td>Anzugeben, falls keine part_manufacturer_id-Spalte ausgefüllt gegeben ist.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Erwartete Spalten:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Hinweis:</strong> Es findet keine Zuordnung zu konkreten Bauteilen aus der Kategorie-Verwaltung statt.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Feld</th>
<th>Bedingung</th>
<th>Datentyp</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Optional</td>
<td>Ganzzahl (Integer)</td>
<td>Offene Angabe. Eine eindeutige Identifikationsnummer für jedes Bauteil.</td>
</tr>
<tr>
<td>Designator</td>
<td>Optional</td>
<td>String</td>
<td>Offene Angabe. Ein eindeutiger Referenzbezeichner des Bauteils auf der Leiterplatte, z.B. „R1“ für Widerstand 1.<br>Wird in den Bestückungsnamen des Bauteil-Eintrags übernommen.</td>
</tr>
<tr>
<td>Package</td>
<td>Optional</td>
<td>String</td>
<td>Offene Angabe. Das Gehäuse oder die Bauform des Bauteils, z.B. „0805“ für SMD-Widerstände.<br>Wird für ein Bauteil-Eintrag nicht übernommen.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Pflichtfeld</td>
<td>Ganzzahl (Integer)</td>
<td>Anzahl der identischen Bauteile, die benötigt werden, um eine Instanz zu erstellen.<br>Wird als Anzahl des Bauteil-Eintrags übernommen.</td>
</tr>
<tr>
<td>Designation</td>
<td>Pflichtfeld</td>
<td>String</td>
<td>Beschreibung oder Funktion des Bauteils, z.B. Widerstandswert „10kΩ“ oder Kondensatorwert „100nF“.<br>Wird in den Namen des Bauteil-Eintrags übernommen.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Optional</td>
<td>String</td>
<td>Offene Angabe. Kann z.B. Distributor spezifischen Wert enthalten.<br>Wird als Notiz zum Bauteil-Eintrag übernommen.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="6ZefVTs" name="project.bom_import.flash.invalid_file">
<segment state="translated">
<source>project.bom_import.flash.invalid_file</source>
@ -13410,7 +13735,7 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Baugruppe.</td>
<td>Falls vorhanden, muss es ein nicht-leerer String sein. Name des Eintrags innerhalb der Stückliste.</td>
</tr>
<tr>
<td>part</td>
@ -13510,13 +13835,13 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Mögliche Spalten:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -2116,13 +2116,13 @@
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Δυνατές στήλες:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -11139,6 +11139,18 @@ Element 1 -&gt; Element 1.2</target>
<target>Type</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11151,6 +11163,319 @@ Element 1 -&gt; Element 1.2</target>
<target>Clear existing BOM entries before importing</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>JSON Import Template</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>CSV Import Template</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>CSV Import Template (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Component name in the project</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Unique product number within the manufacturer</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Unique IPN of the component</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Unique name of the component</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Unique name of the manufacturer</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Field</th>
<th>Condition</th>
<th>Data Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Required</td>
<td>Decimal (Float)</td>
<td>Must be provided and contains a decimal value (Float) greater than 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>If present, it must be a non-empty string. The name of the entry within the bill of materials.</td>
</tr>
<tr>
<td>part</td>
<td>Optional</td>
<td>Object/Array</td>
<td>
If a component is to be assigned, it must be an object/array, and at least one of the following fields must be filled in:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Corresponds to the internal numeric ID of the component in the Part-DB.</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Optional</td>
<td>String</td>
<td>A non-empty string if no part.id, part.ipn, or part.name is provided.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Optional</td>
<td>String</td>
<td>A non-empty string if no part.id, part.mpnr, or part.name is provided.</td>
</tr>
<tr>
<td>part.name</td>
<td>Optional</td>
<td>String</td>
<td>A non-empty string if no part.id, part.mpnr, or part.ipn is provided.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Optional</td>
<td>Object/Array</td>
<td>
If a component's manufacturer is to be adjusted, or the component is to be unambiguously identified based on part.mpnr, it must be an object/array, and at least one of the following fields must be filled in:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Corresponds to the internal numeric ID of the manufacturer.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Optional</td>
<td>String</td>
<td>A non-empty string if no manufacturer.id is provided.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Possible columns:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Column</th>
<th>Condition</th>
<th>Data Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Required</td>
<td>Floating-point number (Float)</td>
<td>Must be provided and contain a floating-point value (Float) greater than 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>If available, it must be a non-empty string. The name of the entry within the bill of materials.</td>
</tr>
<tr>
<td colspan="3"><strong>Columns starting with part_</strong></td>
<td>
If a component is to be assigned, at least one of the following columns must be provided and filled in:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Corresponds to the internal numeric ID of the component in the Part-DB.</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Optional</td>
<td>String</td>
<td>Must be provided if the part_id, part_ipn, or part_name columns are not filled in.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Optional</td>
<td>String</td>
<td>Must be provided if the part_id, part_mpnr, or part_name columns are not filled in.</td>
</tr>
<tr>
<td>part_name</td>
<td>Optional</td>
<td>String</td>
<td>Must be provided if the part_id, part_mpnr, or part_ipn columns are not filled in.</td>
</tr>
<tr>
<td colspan="3"><strong>Columns starting with part_manufacturer_</strong></td>
<td>
If the manufacturer of a component is to be adjusted or if the component is to be uniquely identified based on the part_mpnr, at least one of the following columns must be provided and filled in:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Corresponds to the internal numeric ID of the manufacturer.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Optional</td>
<td>String</td>
<td>Must be provided if the part_manufacturer_id column is not filled in.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Expected columns:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Note:</strong> No assignment to specific components from the category management is performed.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Field</th>
<th>Condition</th>
<th>Data type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Optional</td>
<td>Integer</td>
<td>Free entry. A unique identification number for each component.</td>
</tr>
<tr>
<td>Designator</td>
<td>Optional</td>
<td>String</td>
<td>Free entry. A unique reference identifier of the component on the PCB, e.g., "R1" for resistor 1.<br>It is adopted into the assembly name of the component entry.</td>
</tr>
<tr>
<td>Package</td>
<td>Optional</td>
<td>String</td>
<td>Free entry. The housing or package type of the component, e.g., "0805" for SMD resistors.<br>It is not adopted into the component entry.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Mandatory</td>
<td>Integer</td>
<td>The number of identical components required to create an instance.<br>It is adopted as the quantity of the entry.</td>
</tr>
<tr>
<td>Designation</td>
<td>Mandatory</td>
<td>String</td>
<td>Description or function of the component, e.g., resistor value "10kΩ" or capacitor value "100nF".<br>It is adopted into the name of the component entry.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Optional</td>
<td>String</td>
<td>Free entry. Can contain a distributor-specific value, for example.<br>It is adopted as a note to the component entry.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="MDJdKXv" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>

View file

@ -11076,6 +11076,18 @@ Elemento 3</target>
<target>Tipo</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11088,6 +11100,319 @@ Elemento 3</target>
<target>Eliminar entradas BOM existentes antes de importar</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Plantilla de importación JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Plantilla de importación CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Plantilla de importación CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Nombre del componente en el proyecto</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Número de producto único del fabricante</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>IPN único del componente</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Nombre único del componente</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Nombre único del fabricante</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Campo</th>
<th>Condición</th>
<th>Tipo de Datos</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Requerido</td>
<td>Decimal (Float)</td>
<td>Debe ser proporcionado y contener un valor decimal (Float) mayor que 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Si está presente, debe ser una cadena no vacía. El nombre del elemento dentro de la lista de materiales.</td>
</tr>
<tr>
<td>part</td>
<td>Opcional</td>
<td>Objeto/Array</td>
<td>
Si se debe asignar un componente, debe ser un objeto/array, y al menos uno de los siguientes campos debe estar cumplimentado:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Opcional</td>
<td>Entero (Integer)</td>
<td>Entero (Integer) &gt; 0. Corresponde al ID numérico interno del componente en la base de datos de componentes (Part-DB).</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Una cadena no vacía si no se proporciona part.id, part.ipn o part.name.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Una cadena no vacía si no se proporciona part.id, part.mpnr o part.name.</td>
</tr>
<tr>
<td>part.name</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Una cadena no vacía si no se proporciona part.id, part.mpnr o part.ipn.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Opcional</td>
<td>Objeto/Array</td>
<td>
Si se debe ajustar el fabricante de un componente, o si el componente debe identificarse de manera unívoca en base a part.mpnr, debe ser un objeto/array, y al menos uno de los siguientes campos debe estar cumplimentado:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Opcional</td>
<td>Entero (Integer)</td>
<td>Entero (Integer) &gt; 0. Corresponde al ID numérico interno del fabricante.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Una cadena no vacía si no se proporciona manufacturer.id.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Columnas posibles:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Columna</th>
<th>Condición</th>
<th>Tipo de dato</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Obligatoria</td>
<td>Número decimal (Float)</td>
<td>Debe proporcionarse y contener un valor decimal (Float) mayor que 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Si está disponible, debe ser una cadena no vacía. El nombre del elemento dentro de la lista de materiales.</td>
</tr>
<tr>
<td colspan="3"><strong>Columnas que comienzan con part_</strong></td>
<td>
Si se va a asignar un componente, al menos una de las siguientes columnas debe proporcionarse y completarse:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Opcional</td>
<td>Entero</td>
<td>Entero > 0. Corresponde al ID numérico interno del componente en la base de datos de partes (Part-DB).</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Debe proporcionarse si las columnas part_id, part_ipn o part_name no están completas.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Debe proporcionarse si las columnas part_id, part_mpnr o part_name no están completas.</td>
</tr>
<tr>
<td>part_name</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Debe proporcionarse si las columnas part_id, part_mpnr o part_ipn no están completas.</td>
</tr>
<tr>
<td colspan="3"><strong>Columnas que comienzan con part_manufacturer_</strong></td>
<td>
Si el fabricante de un componente debe ajustarse o si el componente debe identificarse de forma única según el valor part_mpnr, al menos una de las siguientes columnas debe proporcionarse y completarse:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Opcional</td>
<td>Entero</td>
<td>Entero > 0. Corresponde al ID numérico interno del fabricante.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Debe proporcionarse si la columna part_manufacturer_id no está completa.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Columnas esperadas:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Nota:</strong> No se realiza ninguna asignación a componentes específicos desde la gestión de categorías.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Campo</th>
<th>Condición</th>
<th>Tipo de dato</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Opcional</td>
<td>Entero</td>
<td>Entrada libre. Un número de identificación único para cada componente.</td>
</tr>
<tr>
<td>Designator</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Entrada libre. Un identificador de referencia único del componente en el PCB, por ejemplo, "R1" para la resistencia 1.<br>Se adopta en el nombre de ensamblaje del registro del componente.</td>
</tr>
<tr>
<td>Package</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Entrada libre. El encapsulado o tipo de la carcasa del componente, por ejemplo, "0805" para resistencias SMD.<br>No se adopta en el registro del componente.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Obligatorio</td>
<td>Entero</td>
<td>El número de componentes idénticos necesarios para crear una instancia.<br>Se toma como la cantidad de la entrada del componente.</td>
</tr>
<tr>
<td>Designation</td>
<td>Obligatorio</td>
<td>Cadena (String)</td>
<td>Descripción o función del componente, por ejemplo, valor de resistencia "10kΩ" o valor de condensador "100nF".<br>Se adopta en el nombre del registro del componente.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Opcional</td>
<td>Cadena (String)</td>
<td>Entrada libre. Puede contener, por ejemplo, un valor específico del distribuidor.<br>Se adopta como una nota en el registro del componente.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="MDJdKXv" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12949,13 +13274,13 @@ Por favor ten en cuenta que no puedes personificar a un usuario deshabilitado. S
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Columnas posibles:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -9481,6 +9481,18 @@ exemple de ville</target>
<target>CSV pour un assemblage</target>
</segment>
</unit>
<unit id="hRLz1qd" name="assembly.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="assembly.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="clXFAdN" name="assembly.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>assembly.bom_import.type.kicad_pcbnew</source>

View file

@ -11078,6 +11078,18 @@ Element 3</target>
<target>Tipo</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11090,6 +11102,319 @@ Element 3</target>
<target>Cancellare le voci della BOM (lista dei materiali) esistenti prima dell'importazione</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Modello di importazione JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Modello di importazione CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Modello di importazione CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Nome del componente nel progetto</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Codice prodotto unico del produttore</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>IPN unico del componente</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Nome unico del componente</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Nome unico del produttore</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Campo</th>
<th>Condizione</th>
<th>Tipo di Dati</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Obbligatorio</td>
<td>Decimale (Float)</td>
<td>Deve essere fornito e contenere un valore decimale (Float) maggiore di 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Se presente, deve essere una stringa non vuota. Il nome dell'elemento all'interno della distinta materiali.</td>
</tr>
<tr>
<td>part</td>
<td>Opzionale</td>
<td>Oggetto/Array</td>
<td>
Se un componente deve essere assegnato, deve essere un oggetto/array e almeno uno dei seguenti campi deve essere compilato:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Opzionale</td>
<td>Intero (Integer)</td>
<td>Intero (Integer) &gt; 0. Corrisponde all'ID numerico interno del componente nel database delle parti (Part-DB).</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Una stringa non vuota se non sono forniti part.id, part.ipn o part.name.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Una stringa non vuota se non sono forniti part.id, part.mpnr o part.name.</td>
</tr>
<tr>
<td>part.name</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Una stringa non vuota se non sono forniti part.id, part.mpnr o part.ipn.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Opzionale</td>
<td>Oggetto/Array</td>
<td>
Se il produttore di un componente deve essere modificato o se è necessario identificare univocamente il componente basandosi su part.mpnr, deve essere un oggetto/array e almeno uno dei seguenti campi deve essere compilato:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Opzionale</td>
<td>Intero (Integer)</td>
<td>Intero (Integer) &gt; 0. Corrisponde all'ID numerico interno del produttore.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Una stringa non vuota se non è fornito manufacturer.id.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Colonne possibili:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Colonna</th>
<th>Condizione</th>
<th>Tipo di dato</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Obbligatoria</td>
<td>Numero decimale (Float)</td>
<td>Deve essere fornita e contenere un valore decimale (Float) maggiore di 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Se disponibile, deve essere una stringa non vuota. Il nome della voce all'interno della distinta base.</td>
</tr>
<tr>
<td colspan="3"><strong>Colonne che iniziano con part_</strong></td>
<td>
Se un componente deve essere assegnato, almeno una delle seguenti colonne deve essere fornita e compilata:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Opzionale</td>
<td>Intero (Integer)</td>
<td>Intero > 0. Corrisponde all'ID numerico interno del componente nel database delle parti (Part-DB).</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Deve essere fornita se le colonne part_id, part_ipn o part_name non sono compilate.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Deve essere fornita se le colonne part_id, part_mpnr o part_name non sono compilate.</td>
</tr>
<tr>
<td>part_name</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Deve essere fornita se le colonne part_id, part_mpnr o part_ipn non sono compilate.</td>
</tr>
<tr>
<td colspan="3"><strong>Colonne che iniziano con part_manufacturer_</strong></td>
<td>
Se il produttore di un componente deve essere modificato o il componente deve essere identificato univocamente in base al valore part_mpnr, almeno una delle seguenti colonne deve essere fornita e compilata:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Opzionale</td>
<td>Intero (Integer)</td>
<td>Intero > 0. Corrisponde all'ID numerico interno del produttore.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Opzionale</td>
<td>Stringa (String)</td>
<td>Deve essere fornita se la colonna part_manufacturer_id non è compilata.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Colonne previste:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Nota:</strong> Non viene effettuata alcuna associazione con componenti specifici dalla gestione delle categorie.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Campo</th>
<th>Condizione</th>
<th>Tipo di dato</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Opzionale</td>
<td>Numero intero</td>
<td>Valore libero. Un numero identificativo univoco per ciascun componente.</td>
</tr>
<tr>
<td>Designator</td>
<td>Opzionale</td>
<td>Stringa</td>
<td>Valore libero. Un identificatore di riferimento univoco del componente sul PCB, ad esempio "R1" per il resistore 1.<br>Viene trasferito nel nome di montaggio del record del componente.</td>
</tr>
<tr>
<td>Package</td>
<td>Opzionale</td>
<td>Stringa</td>
<td>Valore libero. L'involucro o la forma del componente, ad esempio "0805" per i resistori SMD.<br>Non viene trasferito nel record del componente.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Campo obbligatorio</td>
<td>Numero intero</td>
<td>Il numero dei componenti identici necessari per creare un'istanza.<br>Registrato come il numero della voce del componente.</td>
</tr>
<tr>
<td>Designation</td>
<td>Campo obbligatorio</td>
<td>Stringa</td>
<td>Descrizione o funzione del componente, ad esempio valore del resistore "10kΩ" o valore del condensatore "100nF".<br>Viene trasferita nel nome del record del componente.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Opzionale</td>
<td>Stringa</td>
<td>Valore libero. Può contenere ad esempio un valore specifico del distributore.<br>Viene trasferito come nota nel record del componente.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="MDJdKXv" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12927,13 +13252,13 @@ Notare che non è possibile impersonare un utente disattivato. Quando si prova a
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Colonne possibili:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -9403,13 +9403,13 @@ Exampletown</target>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>可能なカラム:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -1341,13 +1341,13 @@
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Mogelijke kolommen:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -11081,6 +11081,18 @@ Element 3</target>
<target>Typ</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11093,6 +11105,319 @@ Element 3</target>
<target>Wyczyść istniejące wpisy BOM przed importem</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Szablon importu JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Szablon importu CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Szablon importu CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Nazwa komponentu w projekcie</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Unikalny numer produktu producenta</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Unikalny IPN komponentu</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Unikalna nazwa komponentu</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Unikalna nazwa producenta</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Pole</th>
<th>Warunek</th>
<th>Typ Danych</th>
<th>Opis</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Wymagane</td>
<td>Dziesiętny (Float)</td>
<td>Musi być podane i zawierać wartość dziesiętną (Float) większą niż 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Opcjonalne</td>
<td>Ciąg (String)</td>
<td>Jeśli jest obecny, musi być niepustym ciągiem znaków. Nazwa elementu w wykazie materiałów.</td>
</tr>
<tr>
<td>part</td>
<td>Opcjonalne</td>
<td>Obiekt/Tablica</td>
<td>
Jeśli komponent musi być przypisany, musi być obiektem/tablą i co najmniej jedno z następujących pól musi zostać wypełnione:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Opcjonalne</td>
<td>Całkowity (Integer)</td>
<td>Całkowity (Integer) &gt; 0. Odpowiada wewnętrznemu numerycznemu identyfikatorowi komponentu w bazie danych części (Part-DB).</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Opcjonalne</td>
<td>Ciag (String)</td>
<td>Niepusty ciąg, jeśli part.id, part.ipn ani part.name nie zostały podane.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Opcjonalne</td>
<td>Ciag (String)</td>
<td>Niepusty ciąg, jeśli part.id, part.mpnr ani part.name nie zostały podane.</td>
</tr>
<tr>
<td>part.name</td>
<td>Opcjonalne</td>
<td>Ciag (String)</td>
<td>Niepusty ciąg, jeśli part.id, part.mpnr ani part.ipn nie zostały podane.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Opcjonalne</td>
<td>Obiekt/Tablica</td>
<td>
Jeśli producent komponentu musi zostać dostosowany lub komponent musi zostać jednoznacznie zidentyfikowany na podstawie part.mpnr, musi być obiektem/tablą, a co najmniej jedno z następujących pól musi zostać wypełnione:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Opcjonalne</td>
<td>Całkowity (Integer)</td>
<td>Całkowity (Integer) &gt; 0. Odpowiada wewnętrznemu numerycznemu identyfikatorowi producenta.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Opcjonalne</td>
<td>Ciag (String)</td>
<td>Niepusty ciąg, jeśli manufacturer.id nie został podany.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="aK4i2aT" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Możliwe kolumny:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Kolumna</th>
<th>Warunek</th>
<th>Typ danych</th>
<th>Opis</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Wymagana</td>
<td>Liczba zmiennoprzecinkowa (Float)</td>
<td>Liczba identycznych komponentów potrzebnych do utworzenia instancji.<br>Traktowane jako liczba wpisów komponentu.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Jeśli dostępny, musi być niepustym ciągiem znaków. Nazwa elementu w wykazie materiałów.</td>
</tr>
<tr>
<td colspan="3"><strong>Kolumny zaczynające się od part_</strong></td>
<td>
Jeśli ma zostać przypisany komponent, co najmniej jedna z poniższych kolumn musi zostać podana i uzupełniona:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Opcjonalna</td>
<td>Liczba całkowita (Integer)</td>
<td>Liczba całkowita > 0. Odpowiada wewnętrznemu ID numerycznemu komponentu w Part-DB.</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Opcjonalna</td>
<td>Cišg znaków (String)</td>
<td>Musi być podana, jeśli kolumny part_id, part_ipn ani part_name nie są podane.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Opcjonalna</td>
<td>Cišg znaków (String)</td>
<td>Musi być podana, jeśli kolumny part_id, part_mpnr ani part_name nie są podane.</td>
</tr>
<tr>
<td>part_name</td>
<td>Opcjonalna</td>
<td>Cišg znaków (String)</td>
<td>Musi być podana, jeśli kolumny part_id, part_mpnr ani part_ipn nie są podane.</td>
</tr>
<tr>
<td colspan="3"><strong>Kolumny zaczynające się od part_manufacturer_</strong></td>
<td>
Jeśli producent komponentu ma zostać zmieniony lub komponent ma zostać jednoznacznie zidentyfikowany na podstawie wartości part_mpnr, co najmniej jedna z poniższych kolumn musi zostać podana i uzupełniona:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Opcjonalna</td>
<td>Liczba całkowita (Integer)</td>
<td>Liczba całkowita > 0. Odpowiada wewnętrznemu numerycznemu ID producenta.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Opcjonalna</td>
<td>Cišg znaków (String)</td>
<td>Musi być podana, jeśli kolumna part_manufacturer_id nie jest uzupełniona.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Oczekiwane kolumny:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Uwaga:</strong> Nie następuje przypisanie do konkretnych komponentów z zarządzania kategoriami.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Pole</th>
<th>Warunek</th>
<th>Typ danych</th>
<th>Opis</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Opcjonalne</td>
<td>Liczba całkowita (Integer)</td>
<td>Dowolna wartość. Unikalny numer identyfikacyjny dla każdego komponentu.</td>
</tr>
<tr>
<td>Designator</td>
<td>Opcjonalne</td>
<td>String</td>
<td>Dowolna wartość. Unikalny identyfikator referencyjny komponentu na płytce PCB, np. „R1” dla rezystora 1.<br>Zostaje przeniesiony do nazwy montażowej wpisu komponentu.</td>
</tr>
<tr>
<td>Package</td>
<td>Opcjonalne</td>
<td>String</td>
<td>Dowolna wartość. Obudowa lub typ komponentu, np. „0805” dla rezystorów SMD.<br>Nie zostaje przeniesiony do wpisu komponentu.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Pole obowiązkowe</td>
<td>Liczba całkowita (Integer)</td>
<td>Liczba identycznych komponentów potrzebnych do stworzenia instancji zestawu.<br>Zostaje przeniesiona jako ilość wpisu komponentu.</td>
</tr>
<tr>
<td>Designation</td>
<td>Pole obowiązkowe</td>
<td>String</td>
<td>Opis lub funkcja komponentu, np. wartość rezystora „10kΩ” lub wartość kondensatora „100nF”.<br>Zostaje przeniesiony do nazwy wpisu komponentu.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Opcjonalne</td>
<td>String</td>
<td>Dowolna wartość. Może zawierać np. wartość specyficzną dla dystrybutora.<br>Zostaje przeniesiona jako notatka do wpisu komponentu.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="MDJdKXv" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12804,13 +13129,13 @@ Należy pamiętać, że nie możesz udawać nieaktywnych użytkowników. Jeśli
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Możliwe kolumny:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -11085,6 +11085,18 @@
<target>Тип</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="tNnYa0u" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11097,6 +11109,319 @@
<target>Удалить существующие записи BOM перед импортом.</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>Шаблон импорта JSON</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>Шаблон импорта CSV</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>Шаблон импорта CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>Название компонента в проекте</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>Уникальный номер продукта производителя</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>Уникальный IPN компонента</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>Уникальное название компонента</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>Уникальное название производителя</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Поле</th>
<th>Условие</th>
<th>Тип данных</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Обязательно</td>
<td>Дробное число (Float)</td>
<td>Должно быть указано и содержать дробное значение (Float), большее 0.0.</td>
</tr>
<tr>
<td>name</td>
<td>Опционально</td>
<td>Строка (String)</td>
<td>Если присутствует, должно быть непустой строкой. Название элемента в спецификации материалов.</td>
</tr>
<tr>
<td>part</td>
<td>Опционально</td>
<td>Объект/Массив</td>
<td>
Если необходимо назначить компонент, он должен быть объектом/массивом, и должно быть заполнено хотя бы одно из следующих полей:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Опционально</td>
<td>Целое число (Integer)</td>
<td>Целое число (Integer) &gt; 0. Соответствует внутреннему числовому идентификатору компонента в базе данных компонентов (Part-DB).</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Опционально</td>
<td>Строка (String)</td>
<td>Непустая строка, если не указаны part.id, part.ipn или part.name.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Опционально</td>
<td>Строка (String)</td>
<td>Непустая строка, если не указаны part.id, part.mpnr или part.name.</td>
</tr>
<tr>
<td>part.name</td>
<td>Опционально</td>
<td>Строка (String)</td>
<td>Непустая строка, если не указаны part.id, part.mpnr или part.ipn.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Опционально</td>
<td>Объект/Массив</td>
<td>
Если необходимо указать производителя компонента или однозначно идентифицировать компонент на основе part.mpnr, он должен быть объектом/массивом, и хотя бы одно из следующих полей должно быть заполнено:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>Опционально</td>
<td>Целое число (Integer)</td>
<td>Целое число (Integer) &gt; 0. Соответствует внутреннему числовому идентификатору производителя.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Опционально</td>
<td>Строка (String)</td>
<td>Непустая строка, если manufacturer.id не указан.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>Возможные колонки:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Колонка</th>
<th>Условие</th>
<th>Тип данных</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>Обязательная</td>
<td>Число с плавающей запятой (Float)</td>
<td>Количество идентичных компонентов, необходимых для создания экземпляра.<br>Считается количеством записей компонента.</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>Если доступно, должна быть непустая строка. Название элемента в спецификации материалов.</td>
</tr>
<tr>
<td colspan="3"><strong>Колонки, начинающиеся с part_</strong></td>
<td>
Если нужно назначить компонент, должна быть указана и заполнена по крайней мере одна из следующих колонок:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>Необязательная</td>
<td>Целое число (Integer)</td>
<td>Целое > 0. Соответствует внутреннему числовому ID компонента в базе данных компонентов (Part-DB).</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>Необязательная</td>
<td>Строка (String)</td>
<td>Должна быть указана, если колонки part_id, part_ipn или part_name не заполнены.</td>
</tr>
<tr>
<td>part_ipn</td>
<td>Необязательная</td>
<td>Строка (String)</td>
<td>Должна быть указана, если колонки part_id, part_mpnr или part_name не заполнены.</td>
</tr>
<tr>
<td>part_name</td>
<td>Необязательная</td>
<td>Строка (String)</td>
<td>Должна быть указана, если колонки part_id, part_mpnr или part_ipn не заполнены.</td>
</tr>
<tr>
<td colspan="3"><strong>Колонки, начинающиеся с part_manufacturer_</strong></td>
<td>
Если требуется указать производителя компонента или уникально идентифицировать компонент на основе значения part_mpnr, должна быть указана и заполнена по крайней мере одна из следующих колонок:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>Необязательная</td>
<td>Целое число (Integer)</td>
<td>Целое > 0. Соответствует внутреннему числовому ID производителя.</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>Необязательная</td>
<td>Строка (String)</td>
<td>Должна быть указана, если колонка part_manufacturer_id не заполнена.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Ожидаемые столбцы:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Примечание:</strong> Не выполняется привязка к конкретным компонентам из управления категориями.</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>Поле</th>
<th>Условие</th>
<th>Тип данных</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>Необязательно</td>
<td>Целое число (Integer)</td>
<td>Свободный ввод. Уникальный идентификационный номер для каждого компонента.</td>
</tr>
<tr>
<td>Designator</td>
<td>Необязательно</td>
<td>Строка (String)</td>
<td>Свободный ввод. Уникальный идентификатор компонента на печатной плате, например, «R1» для резистора 1.<br>Добавляется в название сборочного узла записи компонента.</td>
</tr>
<tr>
<td>Package</td>
<td>Необязательно</td>
<td>Строка (String)</td>
<td>Свободный ввод. Корпус или тип компонента, например, «0805» для SMD резисторов.<br>Не добавляется в запись компонента.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Обязательно</td>
<td>Целое число (Integer)</td>
<td>Число идентичных компонентов, необходимых для создания экземпляра сборки.<br>Добавляется как количество записи компонента.</td>
</tr>
<tr>
<td>Designation</td>
<td>Обязательно</td>
<td>Строка (String)</td>
<td>Описание или функция компонента, например, значение резистора «10kΩ» или значение конденсатора «100nF».<br>Добавляется в название записи компонента.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Необязательно</td>
<td>Строка (String)</td>
<td>Свободный ввод. Может содержать дистрибьюторское значение, например.<br>Добавляется как примечание к записи компонента.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="MDJdKXv" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12904,13 +13229,13 @@
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>Возможные столбцы:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>

View file

@ -11084,6 +11084,18 @@ Element 3</target>
<target>Type</target>
</segment>
</unit>
<unit id="hRLz1qd" name="project.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON</target>
</segment>
</unit>
<unit id="k9JWt2P" name="project.bom_import.type.csv">
<segment state="translated">
<source>assembly.bom_import.type.csv</source>
<target>CSV</target>
</segment>
</unit>
<unit id="._nn_MY" name="project.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>project.bom_import.type.kicad_pcbnew</source>
@ -11096,6 +11108,319 @@ Element 3</target>
<target>导入前删除现有BOM条目</target>
</segment>
</unit>
<unit id="h8zHL1o" name="project.import_bom.template.header.json">
<segment>
<source>project.import_bom.template.header.json</source>
<target>JSON导入模板</target>
</segment>
</unit>
<unit id="i9yIJ4B" name="project.import_bom.template.header.csv">
<segment>
<source>project.import_bom.template.header.csv</source>
<target>CSV导入模板</target>
</segment>
</unit>
<unit id="9PmGE2C" name="project.import_bom.template.header.kicad_pcbnew">
<segment>
<source>project.import_bom.template.header.kicad_pcbnew</source>
<target>CSV导入模板KiCAD Pcbnew BOM</target>
</segment>
</unit>
<unit id="vG3DXq1" name="project.bom_import.template.entry.name">
<segment>
<source>project.bom_import.template.entry.name</source>
<target>项目中的组件名称</target>
</segment>
</unit>
<unit id="rQ4BUt5" name="project.bom_import.template.entry.part.mpnr">
<segment>
<source>project.bom_import.template.entry.part.mpnr</source>
<target>制造商的唯一产品编号</target>
</segment>
</unit>
<unit id="zHbY5V3" name="project.bom_import.template.entry.part.ipn">
<segment>
<source>project.bom_import.template.entry.part.ipn</source>
<target>唯一的组件IPN</target>
</segment>
</unit>
<unit id="UhW5M9o" name="project.bom_import.template.entry.part.name">
<segment>
<source>project.bom_import.template.entry.part.name</source>
<target>组件唯一名称</target>
</segment>
</unit>
<unit id="9U5b1Rc" name="project.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>project.bom_import.template.entry.part.manufacturer.name</source>
<target>制造商唯一名称</target>
</segment>
</unit>
<unit id="4fU9rO2" name="project.bom_import.template.json.table">
<segment>
<source>project.bom_import.template.json.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>字段</th>
<th>条件</th>
<th>数据类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>必填</td>
<td>小数 (Float)</td>
<td>必须提供,并包含大于 0.0 的小数值 (Float)。</td>
</tr>
<tr>
<td>name</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果存在,必须是非空字符串。物料清单中元素的名称。</td>
</tr>
<tr>
<td>part</td>
<td>可选</td>
<td>对象/数组</td>
<td>
如果需要分配组件,则必须是对象/数组,并且以下字段中的至少一个必须填写:
<ul>
<li>part.id</li>
<li>part.mpnr</li>
<li>part.ipn</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>可选</td>
<td>整数 (Integer)</td>
<td>整数 (Integer) &gt; 0。对应于零件数据库 (Part-DB) 中组件的内部数字 ID。</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果未提供 part.id、part.ipn 或 part.name则为非空字符串。</td>
</tr>
<tr>
<td>part.ipn</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果未提供 part.id、part.mpnr 或 part.name则为非空字符串。</td>
</tr>
<tr>
<td>part.name</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果未提供 part.id、part.mpnr 或 part.ipn则为非空字符串。</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>可选</td>
<td>对象/数组</td>
<td>
如果需要调整组件的制造商,或者需要基于 part.mpnr 唯一标识组件,则必须是对象/数组,并且以下字段中的至少一个必须填写:
<ul>
<li>manufacturer.id</li>
<li>manufacturer.name</li>
</ul>
</td>
</tr>
<tr>
<td>manufacturer.id</td>
<td>可选</td>
<td>整数 (Integer)</td>
<td>整数 (Integer) &gt; 0。对应于制造商的内部数字 ID。</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果未提供 manufacturer.id则为非空字符串。</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="aK4i2aT" name="project.bom_import.template.csv.exptected_columns">
<segment>
<source>project.bom_import.template.csv.exptected_columns</source>
<target>可能的列:</target>
</segment>
</unit>
<unit id="Red8MLw" name="project.bom_import.template.csv.table">
<segment>
<source>project.bom_import.template.csv.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>列</th>
<th>条件</th>
<th>数据类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>quantity</td>
<td>必填</td>
<td>浮点数 (Float)</td>
<td>创建一个实例所需的相同组件数量。<br>记录为组件条目的数量。</td>
</tr>
<tr>
<td>name</td>
<td>Optional</td>
<td>String</td>
<td>如果可用,则必须是非空字符串。材料清单中项目的名称。</td>
</tr>
<tr>
<td colspan="3"><strong>以 part_ 开头的列</strong></td>
<td>
如果需要分配一个组件,必须提供并填写以下列之一:
<ul>
<li>part_id</li>
<li>part_mpnr</li>
<li>part_ipn</li>
<li>part_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_id</td>
<td>可选</td>
<td>整数 (Integer)</td>
<td>整数 > 0。对应于零件数据库 (Part-DB) 中组件的内部数字 ID。</td>
</tr>
<tr>
<td>part_mpnr</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果 part_id、part_ipn 或 part_name 列未填写,则必须提供此列。</td>
</tr>
<tr>
<td>part_ipn</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果 part_id、part_mpnr 或 part_name 列未填写,则必须提供此列。</td>
</tr>
<tr>
<td>part_name</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果 part_id、part_mpnr 或 part_ipn 列未填写,则必须提供此列。</td>
</tr>
<tr>
<td colspan="3"><strong>以 part_manufacturer_ 开头的列</strong></td>
<td>
如果需要调整组件的制造商,或者组件需要根据 part_mpnr 值唯一标识,必须提供并填写以下列之一:
<ul>
<li>part_manufacturer_id</li>
<li>part_manufacturer_name</li>
</ul>
</td>
</tr>
<tr>
<td>part_manufacturer_id</td>
<td>可选</td>
<td>整数 (Integer)</td>
<td>整数 > 0。对应于制造商的内部数字 ID。</td>
</tr>
<tr>
<td>part_manufacturer_name</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>如果 part_manufacturer_id 列未填写,则必须提供此列。</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="o0u7vGe" name="project.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>预期的列:</target>
</segment>
</unit>
<unit id="bKWoLeT" name="project.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>project.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>注意:</strong>分类管理中不会执行与特定组件的映射。</p>
]]>
</target>
</segment>
</unit>
<unit id="aki9R3e" name="project.bom_import.template.kicad_pcbnew.table">
<segment>
<source>project.bom_import.template.kicad_pcbnew.table</source>
<target>
<![CDATA[
<table class="table table-bordered table-striped">
<thead class="thead-dark">
<tr>
<th>字段</th>
<th>条件</th>
<th>数据类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>Id</td>
<td>可选</td>
<td>整数</td>
<td>自由输入。每个组件的唯一标识编号。</td>
</tr>
<tr>
<td>Designator</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>自由输入。PCB 上组件的唯一参考标识符例如“R1”代表电阻 1。<br>会被采用到组件记录的装配名称中。</td>
</tr>
<tr>
<td>Package</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>自由输入。组件的封装或形状,例如 "0805" 表示 SMD 电阻。<br>不会被采用到组件记录中。</td>
</tr>
<tr>
<td>Quantity</td>
<td>必填</td>
<td>整数</td>
<td>创建组件实例所需的相同组件的数量。<br>会被采用为组件记录的数量。</td>
</tr>
<tr>
<td>Designation</td>
<td>必填</td>
<td>字符串 (String)</td>
<td>组件的描述或功能,例如电阻值 “10kΩ” 或电容值 “100nF”。<br>会被采用到组件记录的名称中。</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>可选</td>
<td>字符串 (String)</td>
<td>自由输入。例如,可以包含供应商的特定值。<br>会被采用为组件记录的备注。</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="ijGhrbQ" name="project.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>project.bom_import.clear_existing_bom.help</source>
@ -12789,13 +13114,13 @@ Element 3</target>
</target>
</segment>
</unit>
<unit id="bH5Qi1Z" name="assembly.bom_import.template.csv.exptected_columns">
<unit id="aK4i2aT" name="assembly.bom_import.template.csv.exptected_columns">
<segment>
<source>assembly.bom_import.template.csv.exptected_columns</source>
<target>可用列:</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.csv.table">
<unit id="a8UhiwR" name="assembly.bom_import.template.csv.table">
<segment>
<source>assembly.bom_import.template.csv.table</source>
<target>