mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-04-23 23:09:36 +00:00
Added feature for part IPN suggest with category prefixes (#1054)
* Erweiterungstätigkeiten zur IPN-Vorschlagsliste anhand von Präfixen aus den Kategorien * Umstellung Migrationen bzgl. Multi-Plattform-Support. Zunächst MySQL, SQLite Statements integrieren. * Postgre Statements integrieren * SQL-Formatierung in Migration verbessern * Erweitere IPN-Suggest um Bauteilbeschreibung. Die Implementierung berücksichtigt nun zusätzlich die Bauteilbeschreibung zu maximal 150 Zeichen Länge für die Generierung von IPN-Vorschlägen und Inkrementen. * Anpassungen aus Analyse vornehmen * IPN-Validierung für Parts überarbeiten * IPN-Vorschlagslogik um Konfiguration erweitert * Anpassungen aus phpstan Analyse * IPN-Vorschlagslogik erweitert und Bauteil-IPN vereindeutigt Die IPN-Logik wurde um eine Konfiguration zur automatischen Suffix-Anfügung und die Berücksichtigung von doppelten Beschreibungen bei Bedarf ergänzt. Zudem wurde das Datenmodell angepasst, um eine eindeutige Speicherung der IPN zu gewährleisten. * Regex-Konfigurationsmöglichkeit für IPN-Vorschläge einführen Die Einstellungen für die IPN-Vorschlagslogik wurden um eine Regex-Validierung und eine Hilfetext-Konfiguration erweitert. Tests und Änderungen an den Formularoptionen wurden implementiert. * Match range assert and form limits in suggestPartDigits * Keep existing behavior with autoAppend suffix by default * Show the regex hint in the browser validation notice. * Improved translations * Removed unnecessary service definition * Removed german comments --------- Co-authored-by: Marcel Diegelmann <marcel.diegelmann@gmail.com> Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
This commit is contained in:
parent
14a4f1f437
commit
771857e014
34 changed files with 2791 additions and 115 deletions
|
|
@ -242,7 +242,7 @@
|
|||
</notes>
|
||||
<segment state="final">
|
||||
<source>part.info.timetravel_hint</source>
|
||||
<target>This is how the part appeared before %timestamp%. <i>Please note that this feature is experimental, so the info may not be correct.</i></target>
|
||||
<target><![CDATA[This is how the part appeared before %timestamp%. <i>Please note that this feature is experimental, so the info may not be correct.</i>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="3exvSpl" name="standard.label">
|
||||
|
|
@ -737,10 +737,10 @@
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>user.edit.tfa.disable_tfa_message</source>
|
||||
<target>This will disable <b>all active two-factor authentication methods of the user</b> and delete the <b>backup codes</b>!
|
||||
<br>
|
||||
The user will have to set up all two-factor authentication methods again and print new backup codes! <br><br>
|
||||
<b>Only do this if you are absolutely sure about the identity of the user (seeking help), otherwise the account could be compromised by an attacker!</b></target>
|
||||
<target><![CDATA[This will disable <b>all active two-factor authentication methods of the user</b> and delete the <b>backup codes</b>!
|
||||
<br>
|
||||
The user will have to set up all two-factor authentication methods again and print new backup codes! <br><br>
|
||||
<b>Only do this if you are absolutely sure about the identity of the user (seeking help), otherwise the account could be compromised by an attacker!</b>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="APsHYu0" name="user.edit.tfa.disable_tfa.btn">
|
||||
|
|
@ -891,9 +891,9 @@ The user will have to set up all two-factor authentication methods again and pri
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>entity.delete.message</source>
|
||||
<target>This can not be undone!
|
||||
<br>
|
||||
Sub elements will be moved upwards.</target>
|
||||
<target><![CDATA[This can not be undone!
|
||||
<br>
|
||||
Sub elements will be moved upwards.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="2tKAqHw" name="entity.delete">
|
||||
|
|
@ -1447,7 +1447,7 @@ Sub elements will be moved upwards.</target>
|
|||
</notes>
|
||||
<segment state="final">
|
||||
<source>homepage.github.text</source>
|
||||
<target>Source, downloads, bug reports, to-do-list etc. can be found on <a href="%href%" class="link-external" target="_blank">GitHub project page</a></target>
|
||||
<target><![CDATA[Source, downloads, bug reports, to-do-list etc. can be found on <a href="%href%" class="link-external" target="_blank">GitHub project page</a>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="D5OKsgU" name="homepage.help.caption">
|
||||
|
|
@ -1469,7 +1469,7 @@ Sub elements will be moved upwards.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>homepage.help.text</source>
|
||||
<target>Help and tips can be found in Wiki the <a href="%href%" class="link-external" target="_blank">GitHub page</a></target>
|
||||
<target><![CDATA[Help and tips can be found in Wiki the <a href="%href%" class="link-external" target="_blank">GitHub page</a>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="dnirx4v" name="homepage.forum.caption">
|
||||
|
|
@ -1711,7 +1711,7 @@ Sub elements will be moved upwards.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>email.pw_reset.fallback</source>
|
||||
<target>If this does not work for you, go to <a href="%url%">%url%</a> and enter the following info</target>
|
||||
<target><![CDATA[If this does not work for you, go to <a href="%url%">%url%</a> and enter the following info]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="DduL9Hu" name="email.pw_reset.username">
|
||||
|
|
@ -1741,7 +1741,7 @@ Sub elements will be moved upwards.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>email.pw_reset.valid_unit %date%</source>
|
||||
<target>The reset token will be valid until <i>%date%</i>.</target>
|
||||
<target><![CDATA[The reset token will be valid until <i>%date%</i>.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="8sBnjRy" name="orderdetail.delete">
|
||||
|
|
@ -1848,6 +1848,66 @@ Sub elements will be moved upwards.</target>
|
|||
<target>Advanced</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="_iVXTDt" name="part.edit.tab.advanced.ipn.commonSectionHeader">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.commonSectionHeader</source>
|
||||
<target>Suggestions without part increment</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="7.yHB9w" name="part.edit.tab.advanced.ipn.partIncrementHeader">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.partIncrementHeader</source>
|
||||
<target>Suggestions with numeric part increment</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="H1o.JFb" name="part.edit.tab.advanced.ipn.prefix.description.current-increment">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.description.current-increment</source>
|
||||
<target>Current IPN specification of the part</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="wt.Rn7C" name="part.edit.tab.advanced.ipn.prefix.description.increment">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.description.increment</source>
|
||||
<target>Next possible IPN specification based on an identical part description</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="RXA8jNa" name="part.edit.tab.advanced.ipn.prefix_empty.direct_category">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix_empty.direct_category</source>
|
||||
<target>IPN prefix of direct category empty, specify one in category "%name%"</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="fdSIyqC" name="part.edit.tab.advanced.ipn.prefix.direct_category">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.direct_category</source>
|
||||
<target>IPN prefix of direct category</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="0l7ST7C" name="part.edit.tab.advanced.ipn.prefix.direct_category.increment">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.direct_category.increment</source>
|
||||
<target>IPN prefix of direct category and part-specific increment</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1Y9qoug" name="part.edit.tab.advanced.ipn.prefix.hierarchical.no_increment">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.hierarchical.no_increment</source>
|
||||
<target>IPN prefixes with hierarchical category order of parent-prefix(es)</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="a6_204L" name="part.edit.tab.advanced.ipn.prefix.hierarchical.increment">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.hierarchical.increment</source>
|
||||
<target>IPN prefixes with hierarchical category order of parent-prefix(es) and part-specific increment</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="VS8w2qp" name="part.edit.tab.advanced.ipn.prefix.not_saved">
|
||||
<segment state="translated">
|
||||
<source>part.edit.tab.advanced.ipn.prefix.not_saved</source>
|
||||
<target>Please create part at first and assign it to a category: with existing categories and their own IPN prefix, the IPN for the part can be suggested automatically</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="c3S4jwK" name="part.edit.tab.part_lots">
|
||||
<notes>
|
||||
<note category="file-source" priority="1">Part-DB1\templates\Parts\edit\edit_part_info.html.twig:40</note>
|
||||
|
|
@ -3584,8 +3644,8 @@ Sub elements will be moved upwards.</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>tfa_google.disable.confirm_message</source>
|
||||
<target>If you disable the Authenticator App, all backup codes will be deleted, so you may need to reprint them.<br>
|
||||
Also note that without two-factor authentication, your account is no longer as well protected against attackers!</target>
|
||||
<target><![CDATA[If you disable the Authenticator App, all backup codes will be deleted, so you may need to reprint them.<br>
|
||||
Also note that without two-factor authentication, your account is no longer as well protected against attackers!]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="yu9MSt5" name="tfa_google.disabled_message">
|
||||
|
|
@ -3605,7 +3665,7 @@ Also note that without two-factor authentication, your account is no longer as w
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>tfa_google.step.download</source>
|
||||
<target>Download an authenticator app (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> oder <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>)</target>
|
||||
<target><![CDATA[Download an authenticator app (e.g. <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a> oder <a class="link-external" target="_blank" href="https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp">FreeOTP Authenticator</a>)]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="eriwJoR" name="tfa_google.step.scan">
|
||||
|
|
@ -3847,8 +3907,8 @@ Also note that without two-factor authentication, your account is no longer as w
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>tfa_trustedDevices.explanation</source>
|
||||
<target>When checking the second factor, the current computer can be marked as trustworthy, so no more two-factor checks on this computer are needed.
|
||||
If you have done this incorrectly or if a computer is no longer trusted, you can reset the status of <i>all </i>computers here.</target>
|
||||
<target><![CDATA[When checking the second factor, the current computer can be marked as trustworthy, so no more two-factor checks on this computer are needed.
|
||||
If you have done this incorrectly or if a computer is no longer trusted, you can reset the status of <i>all </i>computers here.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="FZINq8z" name="tfa_trustedDevices.invalidate.confirm_title">
|
||||
|
|
@ -5325,7 +5385,7 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>label_options.lines_mode.help</source>
|
||||
<target>If you select Twig here, the content field is interpreted as Twig template. See <a href="https://twig.symfony.com/doc/3.x/templates.html">Twig documentation</a> and <a href="https://docs.part-db.de/usage/labels.html#twig-mode">Wiki</a> for more information.</target>
|
||||
<target><![CDATA[If you select Twig here, the content field is interpreted as Twig template. See <a href="https://twig.symfony.com/doc/3.x/templates.html">Twig documentation</a> and <a href="https://docs.part-db.de/usage/labels.html#twig-mode">Wiki</a> for more information.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="isvxbiX" name="label_options.page_size.label">
|
||||
|
|
@ -6989,6 +7049,12 @@ If you have done this incorrectly or if a computer is no longer trusted, you can
|
|||
<target>Name filter</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="a37rx0r" name="category.edit.part_ipn_prefix">
|
||||
<segment state="translated">
|
||||
<source>category.edit.part_ipn_prefix</source>
|
||||
<target>Part IPN Prefix</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="yY_ld.7" name="category.edit.default_description">
|
||||
<notes>
|
||||
<note priority="1">obsolete</note>
|
||||
|
|
@ -7187,15 +7253,15 @@ Exampletown</target>
|
|||
</notes>
|
||||
<segment state="translated">
|
||||
<source>mass_creation.lines.placeholder</source>
|
||||
<target>Element 1
|
||||
<target><![CDATA[Element 1
|
||||
Element 1.1
|
||||
Element 1.1.1
|
||||
Element 1.2
|
||||
Element 2
|
||||
Element 3
|
||||
|
||||
Element 1 -> Element 1.1
|
||||
Element 1 -> Element 1.2</target>
|
||||
Element 1 -> Element 1.1
|
||||
Element 1 -> Element 1.2]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="TWSqPFi" name="entity.mass_creation.btn">
|
||||
|
|
@ -9480,25 +9546,25 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="r4vDLAt" name="filter.parameter_value_constraint.operator.<">
|
||||
<segment state="translated">
|
||||
<source>filter.parameter_value_constraint.operator.<</source>
|
||||
<target>Typ. Value <</target>
|
||||
<target><![CDATA[Typ. Value <]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="X9SA3UP" name="filter.parameter_value_constraint.operator.>">
|
||||
<segment state="translated">
|
||||
<source>filter.parameter_value_constraint.operator.></source>
|
||||
<target>Typ. Value ></target>
|
||||
<target><![CDATA[Typ. Value >]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="BQGaoQS" name="filter.parameter_value_constraint.operator.<=">
|
||||
<segment state="translated">
|
||||
<source>filter.parameter_value_constraint.operator.<=</source>
|
||||
<target>Typ. Value <=</target>
|
||||
<target><![CDATA[Typ. Value <=]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="2ha3P6g" name="filter.parameter_value_constraint.operator.>=">
|
||||
<segment state="translated">
|
||||
<source>filter.parameter_value_constraint.operator.>=</source>
|
||||
<target>Typ. Value >=</target>
|
||||
<target><![CDATA[Typ. Value >=]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="4DaBace" name="filter.parameter_value_constraint.operator.BETWEEN">
|
||||
|
|
@ -9606,7 +9672,7 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="4tHhDtU" name="parts_list.search.searching_for">
|
||||
<segment state="translated">
|
||||
<source>parts_list.search.searching_for</source>
|
||||
<target>Searching parts with keyword <b>%keyword%</b></target>
|
||||
<target><![CDATA[Searching parts with keyword <b>%keyword%</b>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="4vomKLa" name="parts_list.search_options.caption">
|
||||
|
|
@ -10266,13 +10332,13 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="NdZ1t7a" name="project.builds.number_of_builds_possible">
|
||||
<segment state="translated">
|
||||
<source>project.builds.number_of_builds_possible</source>
|
||||
<target>You have enough stocked to build <b>%max_builds%</b> builds of this project.</target>
|
||||
<target><![CDATA[You have enough stocked to build <b>%max_builds%</b> builds of this project.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="iuSpPbg" name="project.builds.check_project_status">
|
||||
<segment state="translated">
|
||||
<source>project.builds.check_project_status</source>
|
||||
<target>The current project status is <b>"%project_status%"</b>. You should check if you really want to build the project with this status!</target>
|
||||
<target><![CDATA[The current project status is <b>"%project_status%"</b>. You should check if you really want to build the project with this status!]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Y7vSSxi" name="project.builds.following_bom_entries_miss_instock_n">
|
||||
|
|
@ -10365,16 +10431,28 @@ Element 1 -> Element 1.2</target>
|
|||
<target>e.g "/Capacitor \d+ nF/i"</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="5zV57Ks" name="category.edit.part_ipn_prefix.placeholder">
|
||||
<segment state="translated">
|
||||
<source>category.edit.part_ipn_prefix.placeholder</source>
|
||||
<target>e.g "B12A"</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="DL.TreI" name="category.edit.partname_regex.help">
|
||||
<segment state="translated">
|
||||
<source>category.edit.partname_regex.help</source>
|
||||
<target>A PCRE-compatible regular expression, which a part name have to match.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="f3gkGc9" name="category.edit.part_ipn_prefix.help">
|
||||
<segment state="translated">
|
||||
<source>category.edit.part_ipn_prefix.help</source>
|
||||
<target>A prefix suggested when entering the IPN of a part.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="GzqIwHH" name="entity.select.add_hint">
|
||||
<segment state="translated">
|
||||
<source>entity.select.add_hint</source>
|
||||
<target>Use -> to create nested structures, e.g. "Node 1->Node 1.1"</target>
|
||||
<target><![CDATA[Use -> to create nested structures, e.g. "Node 1->Node 1.1"]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="S4CxO.T" name="entity.select.group.new_not_added_to_DB">
|
||||
|
|
@ -10398,13 +10476,13 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="XLnXtsR" name="homepage.first_steps.introduction">
|
||||
<segment state="translated">
|
||||
<source>homepage.first_steps.introduction</source>
|
||||
<target>Your database is still empty. You might want to read the <a href="%url%">documentation</a> or start to creating the following data structures:</target>
|
||||
<target><![CDATA[Your database is still empty. You might want to read the <a href="%url%">documentation</a> or start to creating the following data structures:]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Q79MOIk" name="homepage.first_steps.create_part">
|
||||
<segment state="translated">
|
||||
<source>homepage.first_steps.create_part</source>
|
||||
<target>Or you can directly <a href="%url%">create a new part</a>.</target>
|
||||
<target><![CDATA[Or you can directly <a href="%url%">create a new part</a>.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="vplYq4f" name="homepage.first_steps.hide_hint">
|
||||
|
|
@ -10416,7 +10494,7 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="MJoZl4f" name="homepage.forum.text">
|
||||
<segment state="translated">
|
||||
<source>homepage.forum.text</source>
|
||||
<target>For questions about Part-DB use the <a href="%href%" class="link-external" target="_blank">discussion forum</a></target>
|
||||
<target><![CDATA[For questions about Part-DB use the <a href="%href%" class="link-external" target="_blank">discussion forum</a>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="YsukbnK" name="log.element_edited.changed_fields.category">
|
||||
|
|
@ -11082,7 +11160,7 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="p_IxB9K" name="parts.import.help_documentation">
|
||||
<segment state="translated">
|
||||
<source>parts.import.help_documentation</source>
|
||||
<target>See the <a href="%link%">documentation</a> for more information on the file format.</target>
|
||||
<target><![CDATA[See the <a href="%link%">documentation</a> for more information on the file format.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="awbvhVq" name="parts.import.help">
|
||||
|
|
@ -11274,7 +11352,7 @@ Element 1 -> Element 1.2</target>
|
|||
<unit id="o5u.Nnz" name="part.filter.lessThanDesired">
|
||||
<segment state="translated">
|
||||
<source>part.filter.lessThanDesired</source>
|
||||
<target>In stock less than desired (total amount < min. amount)</target>
|
||||
<target><![CDATA[In stock less than desired (total amount < min. amount)]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="YN9eLcZ" name="part.filter.lotOwner">
|
||||
|
|
@ -12086,13 +12164,13 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="i68lU5x" name="part.merge.confirm.title">
|
||||
<segment state="translated">
|
||||
<source>part.merge.confirm.title</source>
|
||||
<target>Do you really want to merge <b>%other%</b> into <b>%target%</b>?</target>
|
||||
<target><![CDATA[Do you really want to merge <b>%other%</b> into <b>%target%</b>?]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="k0anzYV" name="part.merge.confirm.message">
|
||||
<segment state="translated">
|
||||
<source>part.merge.confirm.message</source>
|
||||
<target><b>%other%</b> will be deleted, and the part will be saved with the shown information.</target>
|
||||
<target><![CDATA[<b>%other%</b> will be deleted, and the part will be saved with the shown information.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="mmW5Yl1" name="part.info.merge_modal.title">
|
||||
|
|
@ -12446,7 +12524,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="p7LGAIX" name="settings.ips.element14.apiKey.help">
|
||||
<segment state="translated">
|
||||
<source>settings.ips.element14.apiKey.help</source>
|
||||
<target>You can register for an API key on <a href="https://partner.element14.com/">https://partner.element14.com/</a>.</target>
|
||||
<target><![CDATA[You can register for an API key on <a href="https://partner.element14.com/">https://partner.element14.com/</a>.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="ZdUHpZc" name="settings.ips.element14.storeId">
|
||||
|
|
@ -12458,7 +12536,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="XXGUxF6" name="settings.ips.element14.storeId.help">
|
||||
<segment state="translated">
|
||||
<source>settings.ips.element14.storeId.help</source>
|
||||
<target>The store domain to retrieve the data from. This decides the language and currency of results. See <a href="https://partner.element14.com/docs/Product_Search_API_REST__Description">here</a> for a list of valid domains.</target>
|
||||
<target><![CDATA[The store domain to retrieve the data from. This decides the language and currency of results. See <a href="https://partner.element14.com/docs/Product_Search_API_REST__Description">here</a> for a list of valid domains.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="WKWZIm2" name="settings.ips.tme">
|
||||
|
|
@ -12476,7 +12554,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="_pYLrPT" name="settings.ips.tme.token.help">
|
||||
<segment state="translated">
|
||||
<source>settings.ips.tme.token.help</source>
|
||||
<target>You can get an API token and secret on <a href="https://developers.tme.eu/en/">https://developers.tme.eu/en/</a>.</target>
|
||||
<target><![CDATA[You can get an API token and secret on <a href="https://developers.tme.eu/en/">https://developers.tme.eu/en/</a>.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="yswx4bq" name="settings.ips.tme.secret">
|
||||
|
|
@ -12524,7 +12602,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="gu.JlpT" name="settings.ips.mouser.apiKey.help">
|
||||
<segment state="translated">
|
||||
<source>settings.ips.mouser.apiKey.help</source>
|
||||
<target>You can register for an API key on <a href="https://eu.mouser.com/api-hub/">https://eu.mouser.com/api-hub/</a>.</target>
|
||||
<target><![CDATA[You can register for an API key on <a href="https://eu.mouser.com/api-hub/">https://eu.mouser.com/api-hub/</a>.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Q66CNjw" name="settings.ips.mouser.searchLimit">
|
||||
|
|
@ -12602,7 +12680,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="kKv0J3." name="settings.system.attachments">
|
||||
<segment state="translated">
|
||||
<source>settings.system.attachments</source>
|
||||
<target>Attachments & Files</target>
|
||||
<target><![CDATA[Attachments & Files]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="dsRff8T" name="settings.system.attachments.maxFileSize">
|
||||
|
|
@ -12626,7 +12704,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="T.PBu5P" name="settings.system.attachments.allowDownloads.help">
|
||||
<segment state="translated">
|
||||
<source>settings.system.attachments.allowDownloads.help</source>
|
||||
<target>With this option users can download external files into Part-DB by providing an URL. <b>Attention: This can be a security issue, as it might allow users to access intranet ressources via Part-DB!</b></target>
|
||||
<target><![CDATA[With this option users can download external files into Part-DB by providing an URL. <b>Attention: This can be a security issue, as it might allow users to access intranet ressources via Part-DB!</b>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id=".OyihML" name="settings.system.attachments.downloadByDefault">
|
||||
|
|
@ -12800,8 +12878,8 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="0GRlEe5" name="settings.system.localization.base_currency_description">
|
||||
<segment state="translated">
|
||||
<source>settings.system.localization.base_currency_description</source>
|
||||
<target>The currency that is used to store price information and exchange rates in. This currency is assumed, when no currency is set for a price information.
|
||||
<b>Please note that the currencies are not converted, when changing this value. So changing the default currency after you already added price information, will result in wrong prices!</b></target>
|
||||
<target><![CDATA[The currency that is used to store price information and exchange rates in. This currency is assumed, when no currency is set for a price information.
|
||||
<b>Please note that the currencies are not converted, when changing this value. So changing the default currency after you already added price information, will result in wrong prices!</b>]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="cvpTUeY" name="settings.system.privacy">
|
||||
|
|
@ -12831,7 +12909,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="w07P3Dt" name="settings.misc.kicad_eda.category_depth.help">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.kicad_eda.category_depth.help</source>
|
||||
<target>This value determines the depth of the category tree, that is visible inside KiCad. 0 means that only the top level categories are visible. Set to a value > 0 to show more levels. Set to -1, to show all parts of Part-DB inside a sigle cnategory in KiCad.</target>
|
||||
<target><![CDATA[This value determines the depth of the category tree, that is visible inside KiCad. 0 means that only the top level categories are visible. Set to a value > 0 to show more levels. Set to -1, to show all parts of Part-DB inside a sigle cnategory in KiCad.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="VwvmcWE" name="settings.behavior.sidebar">
|
||||
|
|
@ -12849,7 +12927,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="jc0JTvL" name="settings.behavior.sidebar.items.help">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.sidebar.items.help</source>
|
||||
<target>The menus which appear at the sidebar by default. Order of items can be changed via drag & drop.</target>
|
||||
<target><![CDATA[The menus which appear at the sidebar by default. Order of items can be changed via drag & drop.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gVSWDkE" name="settings.behavior.sidebar.rootNodeEnabled">
|
||||
|
|
@ -12897,7 +12975,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="SUD8H3b" name="settings.behavior.table.parts_default_columns.help">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.table.parts_default_columns.help</source>
|
||||
<target>The columns to show by default in part tables. Order of items can be changed via drag & drop.</target>
|
||||
<target><![CDATA[The columns to show by default in part tables. Order of items can be changed via drag & drop.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="hazr_g5" name="settings.ips.oemsecrets">
|
||||
|
|
@ -12951,7 +13029,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="KLJYfJ0" name="settings.ips.oemsecrets.sortMode.M">
|
||||
<segment state="translated">
|
||||
<source>settings.ips.oemsecrets.sortMode.M</source>
|
||||
<target>Completeness & Manufacturer name</target>
|
||||
<target><![CDATA[Completeness & Manufacturer name]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="8C9ijHM" name="entity.export.flash.error.no_entities">
|
||||
|
|
@ -13110,6 +13188,54 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<target>If you need exchange rates between non-euro currencies, you can input an API key from fixer.io here.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="yBc_psK" name="settings.misc.ipn_suggest">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest</source>
|
||||
<target>Part IPN Suggest</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="rMHQxvM" name="settings.misc.ipn_suggest.regex">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.regex</source>
|
||||
<target>Regex</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="jGPeETQ" name="settings.misc.ipn_suggest.regex_help">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.regex_help</source>
|
||||
<target>Help text</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="gsSNHJd" name="settings.misc.ipn_suggest.regex_help_description">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.regex_help_description</source>
|
||||
<target>Define your own user help text for the Regex format specification.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="irHQep1" name="settings.misc.ipn_suggest.autoAppendSuffix">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.autoAppendSuffix</source>
|
||||
<target>Add incremental suffix to IPN, if the value is already used by another part</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="MHvNzxt" name="settings.misc.ipn_suggest.suggestPartDigits">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.suggestPartDigits</source>
|
||||
<target>Increment Digits</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="kH.lU0y" name="settings.misc.ipn_suggest.useDuplicateDescription">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.useDuplicateDescription</source>
|
||||
<target>Use part description to find next available IPN</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="1RN3Xwz" name="settings.misc.ipn_suggest.suggestPartDigits.help">
|
||||
<segment state="translated">
|
||||
<source>settings.misc.ipn_suggest.suggestPartDigits.help</source>
|
||||
<target>The number of digits used for the incremental numbering of parts in the IPN (Internal Part Number) suggestion system.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Ffr5xYM" name="settings.behavior.part_info">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.part_info</source>
|
||||
|
|
@ -13563,7 +13689,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<unit id="FsrRdkp" name="settings.behavior.homepage.items.help">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.homepage.items.help</source>
|
||||
<target>The items to show at the homepage. Order can be changed via drag & drop.</target>
|
||||
<target><![CDATA[The items to show at the homepage. Order can be changed via drag & drop.]]></target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="CYw3_pS" name="settings.system.customization.showVersionOnHomepage">
|
||||
|
|
@ -14330,5 +14456,17 @@ You can do this in the provider info list.</target>
|
|||
You can do this in the provider info list.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="L4nq52R" name="settings.misc.ipn_suggest.useDuplicateDescription.help">
|
||||
<segment>
|
||||
<source>settings.misc.ipn_suggest.useDuplicateDescription.help</source>
|
||||
<target>When enabled, the part’s description is used to find existing parts with the same description and to determine the next available IPN by incrementing their numeric suffix for the suggestion list.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="NIw6dtz" name="settings.misc.ipn_suggest.regex.help">
|
||||
<segment>
|
||||
<source>settings.misc.ipn_suggest.regex.help</source>
|
||||
<target>A PCRE-compatible regular expression every IPN has to fulfill. Leave empty to allow all everything as IPN. </target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue