Assemblies einführen

This commit is contained in:
Marcel Diegelmann 2025-03-19 08:13:45 +01:00
parent e1418dfdc1
commit 6fa960df42
107 changed files with 14101 additions and 96 deletions

View file

@ -4741,6 +4741,18 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
<target>Name</target>
</segment>
</unit>
<unit id="FV7YOW6" name="part.table.name.value.for_part">
<segment state="translated">
<source>part.table.name.value.for_part</source>
<target>%value% (Part)</target>
</segment>
</unit>
<unit id="GW8ZOX7" name="part.table.name.value.for_assembly">
<segment state="translated">
<source>part.table.name.value.for_assembly</source>
<target>%value% (Assembly)</target>
</segment>
</unit>
<unit id="rW_SFJE" name="part.table.id">
<notes>
<note category="file-source" priority="1">Part-DB1\src\DataTables\PartsDataTable.php:178</note>
@ -9861,6 +9873,18 @@ Element 1 -&gt; Element 1.2</target>
<target>Part</target>
</segment>
</unit>
<unit id="KJuXVR5" name="project.bom.assembly">
<segment state="translated">
<source>project.bom.assembly</source>
<target>Assembly</target>
</segment>
</unit>
<unit id="LKvYWS6" name="project.bom.partOrAssembly">
<segment state="translated">
<source>project.bom.partOrAssembly</source>
<target>Selection</target>
</segment>
</unit>
<unit id="kGqIirz" name="project.bom.add_entry">
<segment state="translated">
<source>project.bom.add_entry</source>
@ -9939,6 +9963,42 @@ Element 1 -&gt; Element 1.2</target>
<target>Archived</target>
</segment>
</unit>
<unit id="hIIFtI1" name="assembly.edit.status">
<segment state="translated">
<source>assembly.edit.status</source>
<target>Project status</target>
</segment>
</unit>
<unit id="zRd.psv" name="assembly.status.draft">
<segment state="translated">
<source>assembly.status.draft</source>
<target>Draft</target>
</segment>
</unit>
<unit id="_U8bb1t" name="assembly.status.planning">
<segment state="translated">
<source>assembly.status.planning</source>
<target>Planning</target>
</segment>
</unit>
<unit id="GgUh7RT" name="assembly.status.in_production">
<segment state="translated">
<source>assembly.status.in_production</source>
<target>In production</target>
</segment>
</unit>
<unit id="IluD8iU" name="assembly.status.finished">
<segment state="translated">
<source>assembly.status.finished</source>
<target>Finished</target>
</segment>
</unit>
<unit id="Mybkd1s" name="assembly.status.archived">
<segment state="translated">
<source>assembly.status.archived</source>
<target>Archived</target>
</segment>
</unit>
<unit id="9GtmqC1" name="part.new_build_part.error.build_part_already_exists">
<segment state="translated">
<source>part.new_build_part.error.build_part_already_exists</source>
@ -10215,6 +10275,12 @@ Element 1 -&gt; Element 1.2</target>
<target>stocked</target>
</segment>
</unit>
<unit id="gHU1vgc" name="project.builds.no_stock">
<segment state="translated">
<source>project.builds.no_stock</source>
<target>no stock specified</target>
</segment>
</unit>
<unit id="s5DQlqF" name="project.builds.needed">
<segment state="translated">
<source>project.builds.needed</source>
@ -10287,6 +10353,12 @@ Element 1 -&gt; Element 1.2</target>
<target>Target lot</target>
</segment>
</unit>
<unit id="OsmK1Iv" name="project.build.builds_part_lot_label">
<segment state="translated">
<source>project.build.builds_part_lot_label</source>
<target>%name% (%quantity% needed)</target>
</segment>
</unit>
<unit id="5DTAvWG" name="project.builds.number_of_builds">
<segment state="translated">
<source>project.builds.number_of_builds</source>
@ -12930,6 +13002,622 @@ Please note, that you can not impersonate a disabled user. If you try you will g
<target>View external version</target>
</segment>
</unit>
<unit id="G2sXzh7" name="assembly.label">
<segment>
<source>assembly.label</source>
<target>Assembly</target>
</segment>
</unit>
<unit id="dL51AVa" name="assembly.caption">
<segment>
<source>assembly.caption</source>
<target>Assembly</target>
</segment>
</unit>
<unit id="dipIGt4" name="assembly_bom_entry.label">
<segment>
<source>assembly_bom_entry.label</source>
<target>Parts</target>
</segment>
</unit>
<unit id="G_rlE3w" name="perm.assemblies">
<segment>
<source>perm.assemblies</source>
<target>Assemblies</target>
</segment>
</unit>
<unit id="TvHlYfl" name="assembly.labelp">
<segment>
<source>assembly.labelp</source>
<target>Assemblies</target>
</segment>
</unit>
<unit id="gyRGdfv" name="assembly.edit">
<segment>
<source>assembly.edit</source>
<target>Edit assembly</target>
</segment>
</unit>
<unit id="4Tdtoj_" name="assembly.new">
<segment>
<source>assembly.new</source>
<target>New assembly</target>
</segment>
</unit>
<unit id="M51YUE." name="assembly.edit.associated_build_part">
<segment>
<source>assembly.edit.associated_build_part</source>
<target>Associated builds part</target>
</segment>
</unit>
<unit id="nH9R9f." name="assembly.edit.associated_build_part.add">
<segment>
<source>assembly.edit.associated_build_part.add</source>
<target>Add builds part</target>
</segment>
</unit>
<unit id="oVfOk.i" name="assembly.edit.associated_build.hint">
<segment>
<source>assembly.edit.associated_build.hint</source>
<target>This part represents the builds of this assembly. To indicate if built instances are required. If not, the number of pieces regarding the assembly are only used for the build of the respective project.</target>
</segment>
</unit>
<unit id="_wZ_JZY" name="assembly.edit.bom.import_bom">
<segment>
<source>assembly.edit.bom.import_bom</source>
<target>Import BOM</target>
</segment>
</unit>
<unit id="vsmgKMw" name="log.database_updated.failed">
<segment>
<source>log.database_updated.failed</source>
<target>__log.database_updated.failed</target>
</segment>
</unit>
<unit id="GcQrTTE" name="log.database_updated.old_version">
<segment>
<source>log.database_updated.old_version</source>
<target>__log.database_updated.old_version</target>
</segment>
</unit>
<unit id="JJF47vK" name="log.database_updated.new_version">
<segment>
<source>log.database_updated.new_version</source>
<target>__log.database_updated.new_version</target>
</segment>
</unit>
<unit id="iVHS_sh" name="tree.tools.edit.assemblies">
<segment>
<source>tree.tools.edit.assemblies</source>
<target>Assemblies</target>
</segment>
</unit>
<unit id="naAMjcH" name="assembly.bom_import.flash.success">
<segment>
<source>assembly.bom_import.flash.success</source>
<target>Imported %count% parts in assembly successfully.</target>
</segment>
</unit>
<unit id="ScQhV.o" name="assembly.bom_import.flash.invalid_entries">
<segment>
<source>assembly.bom_import.flash.invalid_entries</source>
<target>Validation error! Please check your data!</target>
</segment>
</unit>
<unit id="luj_uCZ" name="assembly.bom_import.flash.invalid_file">
<segment>
<source>assembly.bom_import.flash.invalid_file</source>
<target>File could not be imported. Please check that you have selected the right file type. Error message: %message%</target>
</segment>
</unit>
<unit id="u7SYWcB" name="assembly.bom.quantity">
<segment>
<source>assembly.bom.quantity</source>
<target>Quantity</target>
</segment>
</unit>
<unit id="D7dPvPL" name="assembly.bom.mountnames">
<segment>
<source>assembly.bom.mountnames</source>
<target>Mount names</target>
</segment>
</unit>
<unit id="rswC4eS" name="assembly.bom.instockAmount">
<segment state="translated">
<source>assembly.bom.instockAmount</source>
<target>Stocked amount</target>
</segment>
</unit>
<unit id="oNutri3" name="assembly.info.title">
<segment>
<source>assembly.info.title</source>
<target>Assembly info</target>
</segment>
</unit>
<unit id="aO1rzVQ" name="assembly.info.info.label">
<segment>
<source>assembly.info.info.label</source>
<target>Info</target>
</segment>
</unit>
<unit id="9dOByT_" name="assembly.info.sub_assemblies.label">
<segment>
<source>assembly.info.sub_assemblies.label</source>
<target>Sub-assemblies</target>
</segment>
</unit>
<unit id="Hmf0EwN" name="assembly.info.builds.label">
<segment>
<source>assembly.info.builds.label</source>
<target>Build</target>
</segment>
</unit>
<unit id="z3F4Rcu" name="assembly.info.bom_add_parts">
<segment>
<source>assembly.info.bom_add_parts</source>
<target>Add part entries</target>
</segment>
</unit>
<unit id="ZbDTUTS" name="assembly.builds.check_assembly_status">
<segment>
<source>assembly.builds.check_assembly_status</source>
<target><![CDATA[The current assembly status is <b>"%assembly_status%"</b>. You should check if you really want to build the assembly with this status!]]></target>
</segment>
</unit>
<unit id="xq1Soad" name="assembly.builds.build_not_possible">
<segment>
<source>assembly.builds.build_not_possible</source>
<target>Build not possible: Parts not stocked</target>
</segment>
</unit>
<unit id="njRyDHQ" name="assembly.builds.following_bom_entries_miss_instock">
<segment>
<source>assembly.builds.following_bom_entries_miss_instock</source>
<target>You do not have enough parts stocked to build this assembly %number_of_builds% times. The following parts have missing instock:</target>
</segment>
</unit>
<unit id="sp7Z0MS" name="assembly.builds.build_possible">
<segment>
<source>assembly.builds.build_possible</source>
<target>Build possible</target>
</segment>
</unit>
<unit id="1uZzdEl" name="assembly.builds.number_of_builds_possible">
<segment>
<source>assembly.builds.number_of_builds_possible</source>
<target><![CDATA[You have enough stocked to build <b>%max_builds%</b> builds of this assembly.]]></target>
</segment>
</unit>
<unit id="pW6QLXf" name="assembly.builds.number_of_builds">
<segment>
<source>assembly.builds.number_of_builds</source>
<target>Build amount</target>
</segment>
</unit>
<unit id="mtJqT_a" name="assembly.build.btn_build">
<segment>
<source>assembly.build.btn_build</source>
<target>Build</target>
</segment>
</unit>
<unit id="LFSVVcP" name="assembly.builds.no_stocked_builds">
<segment>
<source>assembly.builds.no_stocked_builds</source>
<target>Number of stocked builds</target>
</segment>
</unit>
<unit id="dGFHutJ" name="assembly.info.bom_entries_count">
<segment>
<source>assembly.info.bom_entries_count</source>
<target>Part entries</target>
</segment>
</unit>
<unit id="xJ7oBM4" name="assembly.info.sub_assemblies_count">
<segment>
<source>assembly.info.sub_assemblies_count</source>
<target>Sub-assemblies</target>
</segment>
</unit>
<unit id="HZYhTlb" name="assembly.builds.stocked">
<segment>
<source>assembly.builds.stocked</source>
<target>stocked</target>
</segment>
</unit>
<unit id="9EG0PLW" name="assembly.builds.needed">
<segment>
<source>assembly.builds.needed</source>
<target>needed</target>
</segment>
</unit>
<unit id="tgs_7u9" name="assembly.add_parts_to_assembly">
<segment>
<source>assembly.add_parts_to_assembly</source>
<target>Add parts to assembly</target>
</segment>
</unit>
<unit id="PPsM0Dg" name="assembly.bom.name">
<segment>
<source>assembly.bom.name</source>
<target>Name</target>
</segment>
</unit>
<unit id="nUEs.ld" name="assembly.bom.comment">
<segment>
<source>assembly.bom.comment</source>
<target>Notes</target>
</segment>
</unit>
<unit id="87YpQ_u" name="assembly.builds.following_bom_entries_miss_instock_n">
<segment>
<source>assembly.builds.following_bom_entries_miss_instock_n</source>
<target>You do not have enough parts stocked to build this assembly %number_of_builds% times. The following parts have missing instock:</target>
</segment>
</unit>
<unit id="JlQhDdS" name="assembly.build.help">
<segment>
<source>assembly.build.help</source>
<target>Choose from which part lots the stock to build this assembly should be taken (and in which amount). Check the checkbox for each part, when you are finished withdrawing the parts, or use the top checkbox to check all boxes at once.</target>
</segment>
</unit>
<unit id="iP5_QVj" name="assembly.build.required_qty">
<segment>
<source>assembly.build.required_qty</source>
<target>Required quantity</target>
</segment>
</unit>
<unit id="UJpD7n6" name="assembly.import_bom">
<segment>
<source>assembly.import_bom</source>
<target>Import BOM for project</target>
</segment>
</unit>
<unit id="WTasGao" name="assembly.bom.part">
<segment>
<source>assembly.bom.part</source>
<target>Part</target>
</segment>
</unit>
<unit id="jHKh8Zp" name="assembly.bom.add_entry">
<segment>
<source>assembly.bom.add_entry</source>
<target>Add entry</target>
</segment>
</unit>
<unit id="RsZ77df" name="assembly.bom.price">
<segment>
<source>assembly.bom.price</source>
<target>Price</target>
</segment>
</unit>
<unit id="63adIrC" name="assembly.build.dont_check_quantity">
<segment state="translated">
<source>assembly.build.dont_check_quantity</source>
<target>Do not check quantities</target>
</segment>
</unit>
<unit id="O0DP6tK" name="assembly.build.dont_check_quantity.help">
<segment state="translated">
<source>assembly.build.dont_check_quantity.help</source>
<target>If this option is selected, the given withdraw quantities are used as given, no matter if more or less parts are actually required to build this assembly.</target>
</segment>
</unit>
<unit id="9bc0nzK" name="assembly.build.add_builds_to_builds_part">
<segment state="translated">
<source>assembly.build.add_builds_to_builds_part</source>
<target>Add builds to assembly builds part</target>
</segment>
</unit>
<unit id="nl.jtSx" name="assembly.bom_import.type">
<segment state="translated">
<source>assembly.bom_import.type</source>
<target>Type</target>
</segment>
</unit>
<unit id="LtbSLHx" name="assembly.bom_import.type.json">
<segment state="translated">
<source>assembly.bom_import.type.json</source>
<target>JSON for one assembly</target>
</segment>
</unit>
<unit id="clXFAdN" name="assembly.bom_import.type.kicad_pcbnew">
<segment state="translated">
<source>assembly.bom_import.type.kicad_pcbnew</source>
<target>CSV (KiCAD Pcbnew BOM)</target>
</segment>
</unit>
<unit id="0IekETE" name="assembly.bom_import.clear_existing_bom">
<segment state="translated">
<source>assembly.bom_import.clear_existing_bom</source>
<target>Clear existing part entries before importing</target>
</segment>
</unit>
<unit id="S4QY6pA" name="assembly.bom_import.clear_existing_bom.help">
<segment state="translated">
<source>assembly.bom_import.clear_existing_bom.help</source>
<target>Selecting this option will remove all existing part entries in the assembly and overwrite them with the imported part data!</target>
</segment>
</unit>
<unit id="RVNWPsh" name="assembly.import_bom.template.header.json">
<segment>
<source>assembly.import_bom.template.header.json</source>
<target>Import template JSON format for one assembly</target>
</segment>
</unit>
<unit id="RVNWPsh" name="assembly.import_bom.template.header.kicad_pcbnew">
<segment>
<source>assembly.import_bom.template.header.kicad_pcbnew</source>
<target>Import template CSV format (KiCAD Pcbnew BOM) for one assembly</target>
</segment>
</unit>
<unit id="aLomVVS" name="assembly.bom_import.template.entry.name">
<segment>
<source>assembly.bom_import.template.entry.name</source>
<target>Name of the part in the assembly</target>
</segment>
</unit>
<unit id="o4ZcLfV" name="assembly.bom_import.template.entry.part.mpnr">
<segment>
<source>assembly.bom_import.template.entry.part.mpnr</source>
<target>Unique product number within the manufacturer</target>
</segment>
</unit>
<unit id="n3YbKeU" name="assembly.bom_import.template.entry.part.ipn">
<segment>
<source>assembly.bom_import.template.entry.part.ipn</source>
<target>Unique IPN of the part</target>
</segment>
</unit>
<unit id="l2SYJP5" name="assembly.bom_import.template.entry.part.name">
<segment>
<source>assembly.bom_import.template.entry.part.name</source>
<target>Unique name of the part</target>
</segment>
</unit>
<unit id="VgXQ1xW" name="assembly.bom_import.template.entry.part.manufacturer.name">
<segment>
<source>assembly.bom_import.template.entry.part.manufacturer.name</source>
<target>Unique name of the manufacturer</target>
</segment>
</unit>
<unit id="MpB.o_L" name="assembly.bom_import.template.entry.part.category.name">
<segment>
<source>assembly.bom_import.template.entry.part.category.name</source>
<target>Unique name of the category</target>
</segment>
</unit>
<unit id="NIcfgj84" name="assembly.bom_import.template.json.table">
<segment>
<source>assembly.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>Floating point (Float)</td>
<td>Must be provided and contains a floating-point 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.</td>
</tr>
<tr>
<td>part</td>
<td>Optional</td>
<td>Object/Array</td>
<td>
If provided, it must be an object/array and at least one of the fields must be filled:
<ul>
<li>part.id</li>
<li>part.name</li>
</ul>
</td>
</tr>
<tr>
<td>part.id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Matches the Part-DB internal numeric ID of the component.</td>
</tr>
<tr>
<td>part.name</td>
<td>Optional</td>
<td>String</td>
<td>Non-empty string if no part.mpnr or part.ipn is provided.</td>
</tr>
<tr>
<td>part.mpnr</td>
<td>Optional</td>
<td>String</td>
<td>Non-empty string if no part.name or part.ipn is provided.</td>
</tr>
<tr>
<td>part.ipn</td>
<td>Optional</td>
<td>String</td>
<td>Non-empty string if no part.name or part.mpnr is provided.</td>
</tr>
<tr>
<td>part.description</td>
<td>Optional</td>
<td>String or null</td>
<td>If present, it must be a non-empty string or null.</td>
</tr>
<tr>
<td>part.manufacturer</td>
<td>Optional</td>
<td>Object/Array</td>
<td>
If present, it must be an object/array and at least one of the fields must be filled:
<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. Matches the internal numeric ID of the manufacturer.</td>
</tr>
<tr>
<td>manufacturer.name</td>
<td>Optional</td>
<td>String</td>
<td>Non-empty string if no manufacturer.id is provided.</td>
</tr>
<tr>
<td>part.category</td>
<td>Optional</td>
<td>Object/Array</td>
<td>
If present, it must be an object/array and at least one of the fields must be filled:
<ul>
<li>category.id</li>
<li>category.name</li>
</ul>
</td>
</tr>
<tr>
<td>category.id</td>
<td>Optional</td>
<td>Integer</td>
<td>Integer > 0. Matches the internal numeric ID of the component's category.</td>
</tr>
<tr>
<td>category.name</td>
<td>Optional</td>
<td>String</td>
<td>Non-empty string if no category.id is provided.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="cU1bfDa" name="assembly.bom_import.template.kicad_pcbnew.exptected_columns">
<segment>
<source>assembly.bom_import.template.kicad_pcbnew.exptected_columns</source>
<target>Expected Columns:</target>
</segment>
</unit>
<unit id="gvaB1sb" name="assembly.bom_import.template.kicad_pcbnew.exptected_columns.note">
<segment>
<source>assembly.bom_import.template.kicad_pcbnew.exptected_columns.note</source>
<target>
<![CDATA[
<p><strong>Note:</strong> No mapping is performed with specific components from category management.</p>
]]>
</target>
</segment>
</unit>
<unit id="translationUnit5" name="assembly.bom_import.template.kicad_pcbnew.table">
<segment>
<source>assembly.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-form field. A unique identification number for each component.</td>
</tr>
<tr>
<td>Designator</td>
<td>Optional</td>
<td>String</td>
<td>Free-form field. A unique reference designator of the component on the PCB, e.g., “R1” for resistor 1. Used for naming the placement in the component group.</td>
</tr>
<tr>
<td>Package</td>
<td>Optional</td>
<td>String</td>
<td>Free-form field. The casing or form factor of the component, e.g., “0805” for SMD resistors.</td>
</tr>
<tr>
<td>Quantity</td>
<td>Required</td>
<td>Integer</td>
<td>The number of identical components required to create a single instance of an assembly.</td>
</tr>
<tr>
<td>Designation</td>
<td>Required</td>
<td>String</td>
<td>The description or function of the component, e.g., resistor value “10kΩ” or capacitor value “100nF.” Used for the name in the BOM entry.</td>
</tr>
<tr>
<td>Supplier and ref</td>
<td>Optional</td>
<td>String</td>
<td>Free-form field. May include, for example, specific distributor information.</td>
</tr>
</tbody>
</table>
]]>
</target>
</segment>
</unit>
<unit id="QiZM3zY" name="typeahead.parts.part.name">
<segment>
<source>typeahead.parts.part.name</source>
<target>%name% (Part)</target>
</segment>
</unit>
<unit id="WhYL2yX" name="typeahead.parts.assembly.name">
<segment>
<source>typeahead.parts.assembly.name</source>
<target>%name% (Assembly)</target>
</segment>
</unit>
<unit id="4cgba2c" name="projects.build.form.part">
<segment>
<source>projects.build.form.part</source>
<target>Part "%name%"</target>
</segment>
</unit>
<unit id="1bCA1zb" name="projects.build.form.assembly">
<segment>
<source>projects.build.form.assembly</source>
<target>Assembly "%name%"</target>
</segment>
</unit>
<unit id="2cDB2ac" name="projects.build.form.assembly.bom.entry">
<segment>
<source>projects.build.form.assembly.bom.entry</source>
<target>%name% (%quantity% needed)</target>
</segment>
</unit>
<unit id="3dEC3bd" name="projects.build.form.assembly.bom.entry.no.stock">
<segment>
<source>projects.build.form.assembly.bom.entry.no.stock</source>
<target>not in stock</target>
</segment>
</unit>
<unit id="X9HUFrv" name="part.table.actions.error">
<segment state="translated">
<source>part.table.actions.error</source>