diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf
index c2a08273..51dfb292 100644
--- a/translations/messages.en.xlf
+++ b/translations/messages.en.xlf
@@ -12318,6 +12318,529 @@ Please note, that you can not impersonate a disabled user. If you try you will g
Profile saved!
+
+
+ settings.ips.element14
+ Element 14 / Farnell
+
+
+
+
+ settings.ips.element14.apiKey
+ API Key
+
+
+
+
+ settings.ips.element14.apiKey.help
+ You can register for an API key on <a href="https://partner.element14.com/">https://partner.element14.com/</a>.
+
+
+
+
+ settings.ips.element14.storeId
+ Store Domain
+
+
+
+
+ settings.ips.element14.storeId.help
+ 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.
+
+
+
+
+ settings.ips.tme
+ TME
+
+
+
+
+ settings.ips.tme.token
+ API Token
+
+
+
+
+ settings.ips.tme.token.help
+ You can get an API token and secret on <a href="https://developers.tme.eu/en/">https://developers.tme.eu/en/</a>.
+
+
+
+
+ settings.ips.tme.secret
+ API Secret
+
+
+
+
+ settings.ips.tme.currency
+ Currency
+
+
+
+
+ settings.ips.tme.language
+ Language
+
+
+
+
+ settings.ips.tme.country
+ Country
+
+
+
+
+ settings.ips.tme.grossPrices
+ Get gross prices (including tax)
+
+
+
+
+ settings.ips.mouser
+ Mouser
+
+
+
+
+ settings.ips.mouser.apiKey
+ API key
+
+
+
+
+ settings.ips.mouser.apiKey.help
+ You can register for an API key on <a href="https://eu.mouser.com/api-hub/">https://eu.mouser.com/api-hub/</a>.
+
+
+
+
+ settings.ips.mouser.searchLimit
+ Search limit
+
+
+
+
+ settings.ips.mouser.searchLimit.help
+ The maximum amount of results for a single search. Can not be higher than 50.
+
+
+
+
+ settings.ips.mouser.searchOptions
+ Search filters
+
+
+
+
+ settings.ips.mouser.searchOptions.help
+ This allows you to only show parts with a certain availability and/or compliance.
+
+
+
+
+ settings.ips.mouser.searchOptions.none
+ No filter
+
+
+
+
+ settings.ips.mouser.searchOptions.rohs
+ Only RoHS compliant parts
+
+
+
+
+ settings.ips.mouser.searchOptions.inStock
+ Only in stock parts
+
+
+
+
+ settings.ips.mouser.searchOptions.rohsAndInStock
+ Only in stock, RoHS compliant parts
+
+
+
+
+ settings.ips.lcsc
+ LCSC
+
+
+
+
+ settings.ips.lcsc.help
+ Warning: LCSC does not provide an official API. This provider utilizes the webshop API. LCSC did not intend the use of this API, and it could break any time, so use it on your own risk.
+
+
+
+
+ settings.ips.lcsc.enabled
+ Enable
+
+
+
+
+ settings.ips.lcsc.currency
+ Currency
+
+
+
+
+ settings.system.attachments
+ Attachments & Files
+
+
+
+
+ settings.system.attachments.maxFileSize
+ Maximum file size
+
+
+
+
+ settings.system.attachments.maxFileSize.help
+ The maximum size of files that can be uploaded. Please note that this is also limited by PHP configuration.
+
+
+
+
+ settings.system.attachments.allowDownloads
+ Allow downloading of external files
+
+
+
+
+ settings.system.attachments.allowDownloads.help
+ 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>
+
+
+
+
+ settings.system.attachments.downloadByDefault
+ Download new attachment URLs by default
+
+
+
+
+ settings.system.customization
+ Customization
+
+
+
+
+ settings.system.customization.instanceName
+ Instance name
+
+
+
+
+ settings.system.customization.instanceName.help
+ Name of this Part-DB installation. The value is shown in nav bar and titles.
+
+
+
+
+ settings.system.customization.banner
+ Homepage banner
+
+
+
+
+ settings.system.history
+ History log
+
+
+
+
+ settings.system.history.saveChangedFields
+ Save which fields of an element were changed in log entries
+
+
+
+
+ settings.system.history.saveOldData
+ Save the old data in log entries on element changes
+
+
+
+
+ settings.system.history.saveNewData
+ Save the new data in log entries on element change/creation
+
+
+
+
+ settings.system.history.saveRemovedData
+ Save removed data in log entries on element deletion
+
+
+
+
+ settings.system.customization.theme
+ Global theme
+
+
+
+
+ settings.system.history.enforceComments
+ Enforce comments for action types
+
+
+
+
+ settings.system.history.enforceComments.description
+ With this option, you can specify for which actions, users are enforced to give a reason, which will be logged in history.
+
+
+
+
+ settings.system.history.enforceComments.type.part_edit
+ Part edit
+
+
+
+
+ settings.system.history.enforceComments.type.part_create
+ Part creation
+
+
+
+
+ settings.system.history.enforceComments.type.part_delete
+ Part deletion
+
+
+
+
+ settings.system.history.enforceComments.type.part_stock_operation
+ Part stock operation
+
+
+
+
+ settings.system.history.enforceComments.type.datastructure_edit
+ Data structure edit
+
+
+
+
+ settings.system.history.enforceComments.type.datastructure_create
+ Data structure creation
+
+
+
+
+ settings.system.history.enforceComments.type.datastructure_delete
+ Data structure deletion
+
+
+
+
+ settings.system.privacy.useGravatar
+ Use Gravatar avatars
+
+
+
+
+ settings.system.privacy.useGravatar.description
+ If a user does not have an avatar image specified, use the avatar from Gravatar based on the user email. This causes the browser to load pictures from a third-party!
+
+
+
+
+ settings.system.privacy.checkForUpdates
+ Check for Part-DB updates
+
+
+
+
+ settings.system.privacy.checkForUpdates.description
+ Part-DB regularly checks if a new version is available on GitHub. Disable this here, if you do not want this or if your server can not connect to the internet.
+
+
+
+
+ settings.system.localization.locale
+ Default language / locale
+
+
+
+
+ settings.system.localization
+ Localization
+
+
+
+
+ settings.system.localization.timezone
+ Default timezone
+
+
+
+
+ settings.system.localization.base_currency
+ Base currency
+
+
+
+
+ settings.system.localization.base_currency_description
+ 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>
+
+
+
+
+ settings.system.privacy
+ Privacy
+
+
+
+
+ settings.title
+ Server settings
+
+
+
+
+ settings.misc.kicad_eda
+ KiCAD integration
+
+
+
+
+ settings.misc.kicad_eda.category_depth
+ Category depth
+
+
+
+
+ settings.misc.kicad_eda.category_depth.help
+ 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.
+
+
+
+
+ settings.behavior.sidebar
+ Sidebar
+
+
+
+
+ settings.behavior.sidebar.items
+ Sidebar items
+
+
+
+
+ settings.behavior.sidebar.items.help
+ The menus which appear at the sidebar by default. Order of items can be changed via drag & drop.
+
+
+
+
+ settings.behavior.sidebar.rootNodeEnabled
+ Use root node
+
+
+
+
+ settings.behavior.sidebar.rootNodeEnabled.help
+ If this is enabled, all top-level categories, footprints, etc. will be put under a single root node. If disabled, the top-level categories will be put directly into the menu.
+
+
+
+
+ settings.behavior.sidebar.rootNodeExpanded
+ Expand root node by default
+
+
+
+
+ settings.behavior.table
+ Tables
+
+
+
+
+ settings.behavior.table.default_page_size
+ Default page size
+
+
+
+
+ settings.behavior.table.default_page_size.help
+ The default page size on full page tables. Set to -1 to show all items by default without pagination.
+
+
+
+
+ settings.behavior.table.parts_default_columns
+ Default columns for part tables
+
+
+
+
+ settings.behavior.table.parts_default_columns.help
+ The columns to show by default in part tables. Order of items can be changed via drag & drop.
+
+
+
+
+ settings.ips.oemsecrets
+ OEMSecrets
+
+
+
+
+ settings.ips.oemsecrets.keepZeroPrices
+ Keep distributors with zero prices
+
+
+
+
+ settings.ips.oemsecrets.keepZeroPrices.help
+ If this is not set, distributors where the prices are 0 will be discarded as invalid
+
+
+
+
+ settings.ips.oemsecrets.parseParams
+ Extract parameters from description
+
+
+
+
+ settings.ips.oemsecrets.parseParams.help
+ If enabled, the provider tries to convert the unstructured descriptions of OEMSecrets into structured parameters. Each parameter in the description should have the form "...;name1:value1;name2:value2"
+
+
+
+
+ settings.ips.oemsecrets.sortMode
+ Result sort mode
+
+
+
+
+ settings.ips.oemsecrets.sortMode.N
+ None
+
+
+
+
+ settings.ips.oemsecrets.sortMode.C
+ Completeness (prioritize items with detailed information)
+
+
+
+
+ settings.ips.oemsecrets.sortMode.M
+ Completeness & Manufacturer name
+
+ entity.export.flash.error.no_entities
@@ -12372,5 +12895,167 @@ Please note, that you can not impersonate a disabled user. If you try you will g
This part contains more than one stock. Change the location by hand to select, which stock to choose.
+
+
+ settings.ips.reichelt
+ Reichelt
+
+
+
+
+ settings.ips.reichelt.help
+ Reichelt.com offers no official API, so this info provider webscrapes the website to extract info. It could break at any time, use it at your own risk.
+
+
+
+
+ settings.ips.reichelt.include_vat
+ Include VAT in prices
+
+
+
+
+ settings.ips.pollin
+ Pollin
+
+
+
+
+ settings.ips.pollin.help
+ Pollin.de offers no official API, so this info provider webscrapes the website to extract info. It could break at any time, use it at your own risk.
+
+
+
+
+ settings.behavior.sidebar.rootNodeRedirectsToNewEntity
+ Root nodes redirect to new entity pages
+
+
+
+
+ settings.ips.digikey
+ Digikey
+
+
+
+
+ settings.ips.digikey.client_id
+ Client ID
+
+
+
+
+ settings.ips.digikey.secret
+ Secret
+
+
+
+
+ settings.ips.octopart
+ Octopart / Nexar
+
+
+
+
+ settings.ips.octopart.searchLimit
+ Number of results
+
+
+
+
+ settings.ips.octopart.searchLimit.help
+ The number of results to get from Octopart while searching (please note that this counts towards your API limits)
+
+
+
+
+ settings.ips.octopart.onlyAuthorizedSellers
+ Only authorized sellers
+
+
+
+
+ settings.ips.octopart.onlyAuthorizedSellers.help
+ Set to false to include non-authorized offers in the results
+
+
+
+
+ settings.misc.exchange_rate
+ Money exchange rates
+
+
+
+
+ settings.misc.exchange_rate.fixer_api_key
+ Fixer.io API Key
+
+
+
+
+ settings.misc.exchange_rate.fixer_api_key.help
+ If you need exchange rates between non-euro currencies, you can input an API key from fixer.io here.
+
+
+
+
+ settings.behavior.part_info
+ Part info page
+
+
+
+
+ settings.behavior.part_info.show_part_image_overlay
+ Show image overlay
+
+
+
+
+ settings.behavior.part_info.show_part_image_overlay.help
+ Show the image overlay with attachment details on hovering over the part image gallery.
+
+
+
+
+ perm.config.change_system_settings
+ Change system settings
+
+
+
+
+ tree.tools.system.settings
+ System settings
+
+
+
+
+ settings.tooltip.overrideable_by_env
+ The value of this parameter can be overridden by setting the environment variable "%env%".
+
+
+
+
+ settings.flash.saved
+ Settings saved successfully.
+
+
+
+
+ settings.flash.invalid
+ Settings are invalid. Please check your input!
+
+
+
+
+ info_providers.settings.title
+ Info provider settings
+
+
+
+
+ form.apikey.redacted
+ Redacted for security reasons
+
+