From c7bbfb24c5f6ad1891d7e261a05a72f97c5e320c Mon Sep 17 00:00:00 2001 From: Mark Robert Coleman Date: Thu, 2 Apr 2026 01:19:43 +0200 Subject: [PATCH 01/27] Fix single {module} token rejection at nested module bay depth (#21740) * Fix single {module} token rejection at nested depth (#20474) A module type with a single {module} placeholder in component template names could not be installed in a nested module bay (depth > 1) because the form validation required an exact match between the token count and the tree depth. This resolves the issue by treating a single {module} token as a reference to the immediate parent bay's position, regardless of nesting depth. Multi-token behavior is unchanged. Refactors resolve_name() and resolve_label() into a shared _resolve_module_placeholder() helper to eliminate duplication. Fixes: #20474 * Address review feedback for PR #21740 (fixes #20474) - Rebase on latest main to resolve merge conflicts - Extract shared module bay traversal and {module} token resolution into dcim/utils.py (get_module_bay_positions, resolve_module_placeholder) - Update ModuleCommonForm, ModularComponentTemplateModel, and ModuleBayTemplate to use shared utility functions - Add {module} token validation to ModuleSerializer.validate() so the API enforces the same rules as the UI form - Remove duplicated _get_module_bay_tree (form) and _get_module_tree (model) methods in favor of the shared routine --- netbox/dcim/api/serializers_/devices.py | 57 ++++++++++++++- netbox/dcim/forms/common.py | 32 ++------- .../dcim/models/device_component_templates.py | 33 +++------ netbox/dcim/tests/test_models.py | 71 +++++++++++++++++++ netbox/dcim/utils.py | 48 +++++++++++++ 5 files changed, 191 insertions(+), 50 deletions(-) diff --git a/netbox/dcim/api/serializers_/devices.py b/netbox/dcim/api/serializers_/devices.py index 7be8e42c9..1154374c1 100644 --- a/netbox/dcim/api/serializers_/devices.py +++ b/netbox/dcim/api/serializers_/devices.py @@ -6,8 +6,9 @@ from drf_spectacular.utils import extend_schema_field from rest_framework import serializers from dcim.choices import * -from dcim.constants import MACADDRESS_ASSIGNMENT_MODELS +from dcim.constants import MACADDRESS_ASSIGNMENT_MODELS, MODULE_TOKEN from dcim.models import Device, DeviceBay, MACAddress, Module, VirtualDeviceContext +from dcim.utils import get_module_bay_positions, resolve_module_placeholder from extras.api.serializers_.configtemplates import ConfigTemplateSerializer from ipam.api.serializers_.ip import IPAddressSerializer from netbox.api.fields import ChoiceField, ContentTypeField, RelatedObjectCountField @@ -159,6 +160,60 @@ class ModuleSerializer(PrimaryModelSerializer): ] brief_fields = ('id', 'url', 'display', 'device', 'module_bay', 'module_type', 'description') + def validate(self, data): + data = super().validate(data) + + if self.nested: + return data + + # Skip validation for existing modules (updates) + if self.instance is not None: + return data + + module_bay = data.get('module_bay') + module_type = data.get('module_type') + device = data.get('device') + + if not all((module_bay, module_type, device)): + return data + + positions = get_module_bay_positions(module_bay) + + for templates, component_attribute in [ + ("consoleporttemplates", "consoleports"), + ("consoleserverporttemplates", "consoleserverports"), + ("interfacetemplates", "interfaces"), + ("powerporttemplates", "powerports"), + ("poweroutlettemplates", "poweroutlets"), + ("rearporttemplates", "rearports"), + ("frontporttemplates", "frontports"), + ]: + installed_components = { + component.name: component for component in getattr(device, component_attribute).all() + } + + for template in getattr(module_type, templates).all(): + resolved_name = template.name + if MODULE_TOKEN in template.name: + if not module_bay.position: + raise serializers.ValidationError( + _("Cannot install module with placeholder values in a module bay with no position defined.") + ) + try: + resolved_name = resolve_module_placeholder(template.name, positions) + except ValueError as e: + raise serializers.ValidationError(str(e)) + + if resolved_name in installed_components: + raise serializers.ValidationError( + _("A {model} named {name} already exists").format( + model=template.component_model.__name__, + name=resolved_name + ) + ) + + return data + class MACAddressSerializer(PrimaryModelSerializer): assigned_object_type = ContentTypeField( diff --git a/netbox/dcim/forms/common.py b/netbox/dcim/forms/common.py index a3a781be5..162fd6213 100644 --- a/netbox/dcim/forms/common.py +++ b/netbox/dcim/forms/common.py @@ -3,6 +3,7 @@ from django.utils.translation import gettext_lazy as _ from dcim.choices import * from dcim.constants import * +from dcim.utils import get_module_bay_positions, resolve_module_placeholder from utilities.forms import get_field_value __all__ = ( @@ -70,18 +71,6 @@ class InterfaceCommonForm(forms.Form): class ModuleCommonForm(forms.Form): - def _get_module_bay_tree(self, module_bay): - module_bays = [] - while module_bay: - module_bays.append(module_bay) - if module_bay.module: - module_bay = module_bay.module.module_bay - else: - module_bay = None - - module_bays.reverse() - return module_bays - def clean(self): super().clean() @@ -100,7 +89,7 @@ class ModuleCommonForm(forms.Form): self.instance._disable_replication = True return - module_bays = self._get_module_bay_tree(module_bay) + positions = get_module_bay_positions(module_bay) for templates, component_attribute in [ ("consoleporttemplates", "consoleports"), @@ -119,25 +108,16 @@ class ModuleCommonForm(forms.Form): # Get the templates for the module type. for template in getattr(module_type, templates).all(): resolved_name = template.name - # Installing modules with placeholders require that the bay has a position value if MODULE_TOKEN in template.name: if not module_bay.position: raise forms.ValidationError( _("Cannot install module with placeholder values in a module bay with no position defined.") ) - if len(module_bays) != template.name.count(MODULE_TOKEN): - raise forms.ValidationError( - _( - "Cannot install module with placeholder values in a module bay tree {level} in tree " - "but {tokens} placeholders given." - ).format( - level=len(module_bays), tokens=template.name.count(MODULE_TOKEN) - ) - ) - - for module_bay in module_bays: - resolved_name = resolved_name.replace(MODULE_TOKEN, module_bay.position, 1) + try: + resolved_name = resolve_module_placeholder(template.name, positions) + except ValueError as e: + raise forms.ValidationError(str(e)) existing_item = installed_components.get(resolved_name) diff --git a/netbox/dcim/models/device_component_templates.py b/netbox/dcim/models/device_component_templates.py index 08d52d6eb..ff5df9721 100644 --- a/netbox/dcim/models/device_component_templates.py +++ b/netbox/dcim/models/device_component_templates.py @@ -9,6 +9,7 @@ from dcim.choices import * from dcim.constants import * from dcim.models.base import PortMappingBase from dcim.models.mixins import InterfaceValidationMixin +from dcim.utils import get_module_bay_positions, resolve_module_placeholder from netbox.models import ChangeLoggedModel from utilities.fields import ColorField, NaturalOrderingField from utilities.mptt import TreeManager @@ -165,31 +166,15 @@ class ModularComponentTemplateModel(ComponentTemplateModel): _("A component template must be associated with either a device type or a module type.") ) - def _get_module_tree(self, module): - modules = [] - while module: - modules.append(module) - if module.module_bay: - module = module.module_bay.module - else: - module = None - - modules.reverse() - return modules - - def _resolve_module_placeholder(self, value, module): - if MODULE_TOKEN not in value or not module: - return value - modules = self._get_module_tree(module) - for m in modules: - value = value.replace(MODULE_TOKEN, m.module_bay.position, 1) - return value - def resolve_name(self, module): - return self._resolve_module_placeholder(self.name, module) + if MODULE_TOKEN not in self.name or not module: + return self.name + return resolve_module_placeholder(self.name, get_module_bay_positions(module.module_bay)) def resolve_label(self, module): - return self._resolve_module_placeholder(self.label, module) + if MODULE_TOKEN not in self.label or not module: + return self.label + return resolve_module_placeholder(self.label, get_module_bay_positions(module.module_bay)) class ConsolePortTemplate(ModularComponentTemplateModel): @@ -720,7 +705,9 @@ class ModuleBayTemplate(ModularComponentTemplateModel): verbose_name_plural = _('module bay templates') def resolve_position(self, module): - return self._resolve_module_placeholder(self.position, module) + if MODULE_TOKEN not in self.position or not module: + return self.position + return resolve_module_placeholder(self.position, get_module_bay_positions(module.module_bay)) def instantiate(self, **kwargs): return self.component_model( diff --git a/netbox/dcim/tests/test_models.py b/netbox/dcim/tests/test_models.py index efb2a356e..f676ae5df 100644 --- a/netbox/dcim/tests/test_models.py +++ b/netbox/dcim/tests/test_models.py @@ -893,6 +893,77 @@ class ModuleBayTestCase(TestCase): nested_bay = module.modulebays.get(name='Sub-bay 1-1') self.assertEqual(nested_bay.position, '1-1') + @tag('regression') # #20474 + def test_single_module_token_at_nested_depth(self): + """ + A module type with a single {module} token should install at depth > 1 + without raising a token count mismatch error, resolving to the immediate + parent bay's position. + """ + manufacturer = Manufacturer.objects.first() + site = Site.objects.first() + device_role = DeviceRole.objects.first() + + device_type = DeviceType.objects.create( + manufacturer=manufacturer, + model='Chassis with Rear Card', + slug='chassis-with-rear-card' + ) + ModuleBayTemplate.objects.create( + device_type=device_type, + name='Rear card slot', + position='1' + ) + + rear_card_type = ModuleType.objects.create( + manufacturer=manufacturer, + model='Rear Card' + ) + ModuleBayTemplate.objects.create( + module_type=rear_card_type, + name='SFP slot 1', + position='1' + ) + ModuleBayTemplate.objects.create( + module_type=rear_card_type, + name='SFP slot 2', + position='2' + ) + + sfp_type = ModuleType.objects.create( + manufacturer=manufacturer, + model='SFP Module' + ) + InterfaceTemplate.objects.create( + module_type=sfp_type, + name='SFP {module}', + type=InterfaceTypeChoices.TYPE_10GE_SFP_PLUS + ) + + device = Device.objects.create( + name='Test Chassis', + device_type=device_type, + role=device_role, + site=site + ) + + rear_card_bay = device.modulebays.get(name='Rear card slot') + rear_card = Module.objects.create( + device=device, + module_bay=rear_card_bay, + module_type=rear_card_type + ) + + sfp_bay = rear_card.modulebays.get(name='SFP slot 2') + sfp_module = Module.objects.create( + device=device, + module_bay=sfp_bay, + module_type=sfp_type + ) + + interface = sfp_module.interfaces.first() + self.assertEqual(interface.name, 'SFP 2') + @tag('regression') # #20912 def test_module_bay_parent_cleared_when_module_removed(self): """Test that the parent field is properly cleared when a module bay's module assignment is removed""" diff --git a/netbox/dcim/utils.py b/netbox/dcim/utils.py index 5dcc20035..fc4bae02c 100644 --- a/netbox/dcim/utils.py +++ b/netbox/dcim/utils.py @@ -3,6 +3,9 @@ from collections import defaultdict from django.apps import apps from django.contrib.contenttypes.models import ContentType from django.db import router, transaction +from django.utils.translation import gettext as _ + +from dcim.constants import MODULE_TOKEN def compile_path_node(ct_id, object_id): @@ -33,6 +36,51 @@ def path_node_to_object(repr): return ct.model_class().objects.filter(pk=object_id).first() +def get_module_bay_positions(module_bay): + """ + Given a module bay, traverse up the module hierarchy and return + a list of bay position strings from root to leaf. + """ + positions = [] + while module_bay: + positions.append(module_bay.position) + if module_bay.module: + module_bay = module_bay.module.module_bay + else: + module_bay = None + positions.reverse() + return positions + + +def resolve_module_placeholder(value, positions): + """ + Resolve {module} placeholder tokens in a string using the given + list of module bay positions (ordered root to leaf). + + A single {module} token resolves to the leaf (immediate parent) bay's position. + Multiple tokens must match the tree depth and resolve level-by-level. + + Returns the resolved string. + Raises ValueError if token count is greater than 1 and doesn't match tree depth. + """ + if MODULE_TOKEN not in value: + return value + + token_count = value.count(MODULE_TOKEN) + if token_count == 1: + return value.replace(MODULE_TOKEN, positions[-1]) + if token_count == len(positions): + for pos in positions: + value = value.replace(MODULE_TOKEN, pos, 1) + return value + raise ValueError( + _("Cannot install module with placeholder values in a module bay tree " + "{level} levels deep but {tokens} placeholders given.").format( + level=len(positions), tokens=token_count + ) + ) + + def create_cablepaths(objects): """ Create CablePaths for all paths originating from the specified set of nodes. From f6eb5dda0fbe23be575b2ce2e21bd3adec245ce9 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 05:30:39 +0000 Subject: [PATCH 02/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 336 +++++++++---------- 1 file changed, 168 insertions(+), 168 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 86ab63fdb..032569739 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-01 05:38+0000\n" +"POT-Creation-Date: 2026-04-02 05:30+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1246,9 +1246,9 @@ msgid "Group Assignment" msgstr "" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 #: netbox/dcim/models/device_components.py:573 #: netbox/dcim/models/device_components.py:1156 #: netbox/dcim/models/device_components.py:1204 @@ -1285,8 +1285,8 @@ msgstr "" #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1381,7 +1381,7 @@ msgstr "" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 netbox/extras/models/customfields.py:149 @@ -1413,7 +1413,7 @@ msgstr "" #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 netbox/dcim/models/devices.py:533 #: netbox/dcim/models/devices.py:1144 netbox/dcim/models/devices.py:1213 #: netbox/dcim/models/modules.py:35 netbox/dcim/models/power.py:39 @@ -1507,8 +1507,8 @@ msgstr "" msgid "virtual circuits" msgstr "" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "" @@ -2276,13 +2276,13 @@ msgid "Config revision #{id}" msgstr "" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 #: netbox/dcim/models/device_components.py:370 #: netbox/dcim/models/device_components.py:397 #: netbox/dcim/models/device_components.py:428 @@ -2302,7 +2302,7 @@ msgid "URL" msgstr "" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 +#: netbox/dcim/models/device_component_templates.py:417 #: netbox/dcim/models/device_components.py:605 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 @@ -2371,7 +2371,7 @@ msgstr "" msgid "File path relative to the data source's root" msgstr "" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 msgid "size" msgstr "" @@ -2826,11 +2826,22 @@ msgstr "" msgid "Interface mode does not support tagged vlans" msgstr "" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "" @@ -3076,7 +3087,7 @@ msgstr "" #: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "" @@ -3696,7 +3707,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 #: netbox/virtualization/forms/filtersets.py:191 #: netbox/virtualization/forms/filtersets.py:245 @@ -3862,7 +3873,7 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 #: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3873,8 +3884,8 @@ msgstr "" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 @@ -3901,7 +3912,7 @@ msgid "L2VPN (ID)" msgstr "" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 #: netbox/virtualization/forms/filtersets.py:255 @@ -4465,7 +4476,7 @@ msgid "Maximum draw" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 +#: netbox/dcim/models/device_component_templates.py:267 #: netbox/dcim/models/device_components.py:440 msgid "Maximum power draw (watts)" msgstr "" @@ -4475,7 +4486,7 @@ msgid "Allocated draw" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 +#: netbox/dcim/models/device_component_templates.py:274 #: netbox/dcim/models/device_components.py:447 msgid "Allocated power draw (watts)" msgstr "" @@ -4491,23 +4502,23 @@ msgid "Feed leg" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "" @@ -4523,7 +4534,7 @@ msgid "Module" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "" @@ -4534,7 +4545,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "" @@ -4562,7 +4573,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:213 #: netbox/virtualization/forms/bulk_import.py:191 #: netbox/virtualization/forms/model_forms.py:331 msgid "Untagged VLAN" @@ -4597,14 +4608,14 @@ msgid "Wireless LAN group" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 @@ -4627,7 +4638,7 @@ msgid "PoE" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:237 #: netbox/virtualization/forms/model_forms.py:371 msgid "Related Interfaces" msgstr "" @@ -5220,42 +5231,24 @@ msgstr "" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:615 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:190 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " "parent device/VM, or they must be global" msgstr "" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5359,7 +5352,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "" @@ -5375,11 +5368,11 @@ msgid "Mgmt only" msgstr "" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 #: netbox/virtualization/forms/filtersets.py:260 msgid "802.1Q mode" msgstr "" @@ -5396,7 +5389,7 @@ msgstr "" msgid "Channel width (MHz)" msgstr "" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "" @@ -5769,7 +5762,7 @@ msgid "profile" msgstr "" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5887,225 +5880,225 @@ msgstr "" msgid "All links must match first link type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " "attached to a module type." msgstr "" -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "" -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "" -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:278 +#: netbox/dcim/models/device_component_templates.py:263 #: netbox/dcim/models/device_components.py:436 msgid "maximum draw" msgstr "" -#: netbox/dcim/models/device_component_templates.py:285 +#: netbox/dcim/models/device_component_templates.py:270 #: netbox/dcim/models/device_components.py:443 msgid "allocated draw" msgstr "" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:316 +#: netbox/dcim/models/device_component_templates.py:301 #: netbox/dcim/models/device_components.py:463 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" -#: netbox/dcim/models/device_component_templates.py:354 +#: netbox/dcim/models/device_component_templates.py:339 #: netbox/dcim/models/device_components.py:565 msgid "feed leg" msgstr "" -#: netbox/dcim/models/device_component_templates.py:359 +#: netbox/dcim/models/device_component_templates.py:344 #: netbox/dcim/models/device_components.py:570 msgid "Phase (for three-phase feeds)" msgstr "" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_component_templates.py:422 #: netbox/dcim/models/device_components.py:774 msgid "management only" msgstr "" -#: netbox/dcim/models/device_component_templates.py:445 +#: netbox/dcim/models/device_component_templates.py:430 #: netbox/dcim/models/device_components.py:639 msgid "bridge interface" msgstr "" -#: netbox/dcim/models/device_component_templates.py:466 +#: netbox/dcim/models/device_component_templates.py:451 #: netbox/dcim/models/device_components.py:800 msgid "wireless role" msgstr "" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 #: netbox/dcim/models/device_components.py:1160 #: netbox/dcim/models/device_components.py:1208 msgid "positions" msgstr "" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " "templates ({count})" msgstr "" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " "templates ({count})" msgstr "" -#: netbox/dcim/models/device_component_templates.py:710 +#: netbox/dcim/models/device_component_templates.py:695 #: netbox/dcim/models/device_components.py:1255 msgid "position" msgstr "" -#: netbox/dcim/models/device_component_templates.py:713 +#: netbox/dcim/models/device_component_templates.py:698 #: netbox/dcim/models/device_components.py:1258 msgid "Identifier to reference when renaming installed components" msgstr "" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " "allow device bays." msgstr "" -#: netbox/dcim/models/device_component_templates.py:820 +#: netbox/dcim/models/device_component_templates.py:807 #: netbox/dcim/models/device_components.py:1415 msgid "part ID" msgstr "" -#: netbox/dcim/models/device_component_templates.py:822 +#: netbox/dcim/models/device_component_templates.py:809 #: netbox/dcim/models/device_components.py:1417 msgid "Manufacturer-assigned part identifier" msgstr "" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "" @@ -6234,7 +6227,7 @@ msgid "tagged VLANs" msgstr "" #: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -7549,7 +7542,7 @@ msgstr "" msgid "FHRP Groups" msgstr "" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7565,7 +7558,7 @@ msgstr "" msgid "VDCs" msgstr "" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "" @@ -7875,18 +7868,25 @@ msgstr "" msgid "Primary for interface" msgstr "" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8000,7 +8000,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "" @@ -9004,7 +9004,7 @@ msgstr "" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "" @@ -10368,7 +10368,7 @@ msgstr "" msgid "IP address (ID)" msgstr "" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "" @@ -10474,7 +10474,7 @@ msgstr "" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "" @@ -10487,7 +10487,7 @@ msgstr "" msgid "Treat as populated" msgstr "" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "" @@ -10989,190 +10989,190 @@ msgid "" "({aggregate})." msgstr "" -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "" -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "" -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" msgstr "" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "" From f2d8ae29c2960d923847b58b23cda5fff8ff8e06 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 2 Apr 2026 05:42:14 -0700 Subject: [PATCH 03/27] 21701 Allow scripts to be uploaded via post to API (#21756) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * #21701 allow upload script via API * #21701 allow upload script via API * add extra test * change to use Script api endpoint * ruff fix * review feedback: * review feedback: * review feedback: * Fix permission check, perform_create delegation, and test mock setup - destroy() now checks extras.delete_script (queryset is Script.objects.all()) - create() delegates to self.perform_create() instead of calling serializer.save() directly - Add comment explaining why update/partial_update intentionally return 405 - Fix test_upload_script_module: set mock_storage.save.return_value so file_path receives a real string after the _save_upload return-value fix; add DB existence check Co-Authored-By: Claude Sonnet 4.6 * Return 400 instead of 500 on duplicate script module upload Catch IntegrityError from the unique (file_root, file_path) constraint and re-raise as a ValidationError so the API returns a 400 with a clear message rather than a 500. Co-Authored-By: Claude Sonnet 4.6 * Validate upload_file + data_source conflict for multipart requests DRF 3.16 Serializer.get_value() uses parse_html_dict() or empty for all HTML/multipart input. A flat key like data_source=2 produces an empty dict ({}), which is falsy, so it falls back to empty and the nested field is silently skipped. data.get('data_source') is therefore always None in multipart requests, bypassing the conflict check. Fix: also check self.initial_data for data_source and data_file in all three guards in validate(), so the raw submitted value is detected even when DRF's HTML parser drops the deserialized object. Add test_upload_with_data_source_fails to cover the multipart conflict path explicitly. Co-Authored-By: Claude Sonnet 4.6 * Require data_file when data_source is specified data_source alone is not a valid creation payload — a data_file must also be provided to identify which file within the source to sync. Add the corresponding validation error and a test to cover the case. Co-Authored-By: Claude Sonnet 4.6 * Align ManagedFileForm validation with API serializer rules Add the missing checks to ManagedFileForm.clean(): - upload_file + data_source is rejected (matches API) - data_source without data_file is rejected with a specific message - Update the 'nothing provided' error to mention data source + data file Co-Authored-By: Claude Sonnet 4.6 * Revert "Align ManagedFileForm validation with API serializer rules" This reverts commit f0ac7c3bd2fbdbde2bc14acf0f9026508ff289f9. * Align API validation messages with UI; restore complete checks - Match UI error messages for upload+data_file conflict and no-source case - Keep API-only guards for upload+data_source and data_source-without-data_file - Restore test_upload_with_data_source_fails Co-Authored-By: Claude Sonnet 4.6 * Run source/file conflict checks before super().validate() / full_clean() super().validate() calls full_clean() on the model instance, which raises a unique-constraint error for (file_root, file_path) when file_path is empty (e.g. data_source-only requests). Move the conflict guards above the super() call so they produce clear, actionable error messages before full_clean() has a chance to surface confusing database-level errors. Co-Authored-By: Claude Sonnet 4.6 * destroy() deletes ScriptModule, not Script DELETE /api/extras/scripts// now deletes the entire ScriptModule (matching the UI's delete view), including modules with no Script children (e.g. sync hasn't run yet). Permission check updated to delete_scriptmodule. The queryset restriction for destroy is removed since the module is deleted via script.module, not super().destroy(). Co-Authored-By: Claude Sonnet 4.6 * review feedback: * cleanup * cleanup * cleanup * cleanup * change to ScriptModule * change to ScriptModule * change to ScriptModule * update docs * cleanup * restore file * cleanup * cleanup * cleanup * cleanup * cleanup * keep only upload functionality * cleanup * cleanup * cleanup * change to scripts/upload api * cleanup * cleanup * cleanup * cleanup --------- Co-authored-by: Claude Sonnet 4.6 --- docs/customization/custom-scripts.md | 12 +++++ netbox/extras/api/serializers_/scripts.py | 55 ++++++++++++++++++++++- netbox/extras/api/urls.py | 1 + netbox/extras/api/views.py | 8 +++- netbox/extras/tests/test_api.py | 53 ++++++++++++++++++++++ 5 files changed, 126 insertions(+), 3 deletions(-) diff --git a/docs/customization/custom-scripts.md b/docs/customization/custom-scripts.md index add8fafb1..0947a2c94 100644 --- a/docs/customization/custom-scripts.md +++ b/docs/customization/custom-scripts.md @@ -384,6 +384,18 @@ A calendar date. Returns a `datetime.date` object. A complete date & time. Returns a `datetime.datetime` object. +## Uploading Scripts via the API + +Script modules can be uploaded to NetBox via the REST API by sending a `multipart/form-data` POST request to `/api/extras/scripts/upload/`. The caller must have the `extras.add_scriptmodule` and `core.add_managedfile` permissions. + +```no-highlight +curl -X POST \ +-H "Authorization: Token $TOKEN" \ +-H "Accept: application/json; indent=4" \ +-F "file=@/path/to/myscript.py" \ +http://netbox/api/extras/scripts/upload/ +``` + ## Running Custom Scripts !!! note diff --git a/netbox/extras/api/serializers_/scripts.py b/netbox/extras/api/serializers_/scripts.py index a7d5b9c2a..9f0afe3f1 100644 --- a/netbox/extras/api/serializers_/scripts.py +++ b/netbox/extras/api/serializers_/scripts.py @@ -1,19 +1,70 @@ -from django.utils.translation import gettext as _ +import logging + +from django.core.files.storage import storages +from django.db import IntegrityError +from django.utils.translation import gettext_lazy as _ from drf_spectacular.utils import extend_schema_field from rest_framework import serializers from core.api.serializers_.jobs import JobSerializer -from extras.models import Script +from core.choices import ManagedFileRootPathChoices +from extras.models import Script, ScriptModule from netbox.api.serializers import ValidatedModelSerializer from utilities.datetime import local_now +logger = logging.getLogger(__name__) + __all__ = ( 'ScriptDetailSerializer', 'ScriptInputSerializer', + 'ScriptModuleSerializer', 'ScriptSerializer', ) +class ScriptModuleSerializer(ValidatedModelSerializer): + file = serializers.FileField(write_only=True) + file_path = serializers.CharField(read_only=True) + + class Meta: + model = ScriptModule + fields = ['id', 'display', 'file_path', 'file', 'created', 'last_updated'] + brief_fields = ('id', 'display') + + def validate(self, data): + # ScriptModule.save() sets file_root; inject it here so full_clean() succeeds. + # Pop 'file' before model instantiation — ScriptModule has no such field. + file = data.pop('file', None) + data['file_root'] = ManagedFileRootPathChoices.SCRIPTS + data = super().validate(data) + data.pop('file_root', None) + if file is not None: + data['file'] = file + return data + + def create(self, validated_data): + file = validated_data.pop('file') + storage = storages.create_storage(storages.backends["scripts"]) + validated_data['file_path'] = storage.save(file.name, file) + created = False + try: + instance = super().create(validated_data) + created = True + return instance + except IntegrityError as e: + if 'file_path' in str(e): + raise serializers.ValidationError( + _("A script module with this file name already exists.") + ) + raise + finally: + if not created and (file_path := validated_data.get('file_path')): + try: + storage.delete(file_path) + except Exception: + logger.warning(f"Failed to delete orphaned script file '{file_path}' from storage.") + + class ScriptSerializer(ValidatedModelSerializer): description = serializers.SerializerMethodField(read_only=True) vars = serializers.SerializerMethodField(read_only=True) diff --git a/netbox/extras/api/urls.py b/netbox/extras/api/urls.py index 9478fbeb2..cd1a9f683 100644 --- a/netbox/extras/api/urls.py +++ b/netbox/extras/api/urls.py @@ -26,6 +26,7 @@ router.register('journal-entries', views.JournalEntryViewSet) router.register('config-contexts', views.ConfigContextViewSet) router.register('config-context-profiles', views.ConfigContextProfileViewSet) router.register('config-templates', views.ConfigTemplateViewSet) +router.register('scripts/upload', views.ScriptModuleViewSet) router.register('scripts', views.ScriptViewSet, basename='script') app_name = 'extras-api' diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index e72ad1ab5..5a2c03212 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -6,7 +6,7 @@ from rest_framework import status from rest_framework.decorators import action from rest_framework.exceptions import PermissionDenied from rest_framework.generics import RetrieveUpdateDestroyAPIView -from rest_framework.mixins import ListModelMixin, RetrieveModelMixin +from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.routers import APIRootView @@ -21,6 +21,7 @@ from netbox.api.features import SyncedDataMixin from netbox.api.metadata import ContentTypeMetadata from netbox.api.renderers import TextRenderer from netbox.api.viewsets import BaseViewSet, NetBoxModelViewSet +from netbox.api.viewsets.mixins import ObjectValidationMixin from utilities.exceptions import RQWorkerNotRunningException from utilities.request import copy_safe_request @@ -264,6 +265,11 @@ class ConfigTemplateViewSet(SyncedDataMixin, ConfigTemplateRenderMixin, NetBoxMo # Scripts # +class ScriptModuleViewSet(ObjectValidationMixin, CreateModelMixin, BaseViewSet): + queryset = ScriptModule.objects.all() + serializer_class = serializers.ScriptModuleSerializer + + @extend_schema_view( update=extend_schema(request=serializers.ScriptInputSerializer), partial_update=extend_schema(request=serializers.ScriptInputSerializer), diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index 1c4996bcc..c85433982 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -1,7 +1,9 @@ import datetime import hashlib +from unittest.mock import MagicMock, patch from django.contrib.contenttypes.models import ContentType +from django.core.files.uploadedfile import SimpleUploadedFile from django.urls import reverse from django.utils.timezone import make_aware, now from rest_framework import status @@ -1384,3 +1386,54 @@ class NotificationTest(APIViewTestCases.APIViewTestCase): 'event_type': OBJECT_DELETED, }, ] + + +class ScriptModuleTest(APITestCase): + """ + Tests for the POST /api/extras/scripts/upload/ endpoint. + + ScriptModule is a proxy of core.ManagedFile (a different app) so the standard + APIViewTestCases mixins cannot be used directly. All tests use add_permissions() + with explicit Django model-level permissions. + """ + + def setUp(self): + super().setUp() + self.url = reverse('extras-api:scriptmodule-list') # /api/extras/scripts/upload/ + + def test_upload_script_module_without_permission(self): + script_content = b"from extras.scripts import Script\nclass TestScript(Script):\n pass\n" + upload_file = SimpleUploadedFile('test_upload.py', script_content, content_type='text/plain') + response = self.client.post( + self.url, + {'file': upload_file}, + format='multipart', + **self.header, + ) + self.assertHttpStatus(response, status.HTTP_403_FORBIDDEN) + + def test_upload_script_module(self): + # ScriptModule is a proxy of core.ManagedFile; both permissions required. + self.add_permissions('extras.add_scriptmodule', 'core.add_managedfile') + script_content = b"from extras.scripts import Script\nclass TestScript(Script):\n pass\n" + upload_file = SimpleUploadedFile('test_upload.py', script_content, content_type='text/plain') + mock_storage = MagicMock() + mock_storage.save.return_value = 'test_upload.py' + with patch('extras.api.serializers_.scripts.storages') as mock_storages: + mock_storages.create_storage.return_value = mock_storage + mock_storages.backends = {'scripts': {}} + response = self.client.post( + self.url, + {'file': upload_file}, + format='multipart', + **self.header, + ) + self.assertHttpStatus(response, status.HTTP_201_CREATED) + self.assertEqual(response.data['file_path'], 'test_upload.py') + mock_storage.save.assert_called_once() + self.assertTrue(ScriptModule.objects.filter(file_path='test_upload.py').exists()) + + def test_upload_script_module_without_file_fails(self): + self.add_permissions('extras.add_scriptmodule', 'core.add_managedfile') + response = self.client.post(self.url, {}, format='json', **self.header) + self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) From 57556e3fdb17a14fcf68136f5d1d39e09511add6 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Thu, 2 Apr 2026 20:17:08 +0200 Subject: [PATCH 04/27] fix(tables): Correct sortable column definitions across tables Fix broken sorting metadata caused by incorrect accessors, field references, and naming mismatches in several table definitions. Update accessor paths for provider_account and device order_by; add order_by mapping for the is_active property column; correct field name typos such as termination_count to terminations_count; rename the ssl_validation column to ssl_verification to match the model field; and mark computed columns as orderable=False where sorting is not supported. Fixes #21825 --- netbox/circuits/tables/virtual_circuits.py | 3 ++- netbox/core/tables/config.py | 1 + netbox/dcim/tables/devices.py | 2 +- netbox/dcim/tables/modules.py | 4 +++- netbox/extras/tables/tables.py | 5 +++-- netbox/ipam/tables/vlans.py | 2 +- netbox/vpn/tables/tunnels.py | 2 +- 7 files changed, 12 insertions(+), 7 deletions(-) diff --git a/netbox/circuits/tables/virtual_circuits.py b/netbox/circuits/tables/virtual_circuits.py index 43f03675b..84bbebf33 100644 --- a/netbox/circuits/tables/virtual_circuits.py +++ b/netbox/circuits/tables/virtual_circuits.py @@ -95,6 +95,7 @@ class VirtualCircuitTerminationTable(NetBoxTable): verbose_name=_('Provider network') ) provider_account = tables.Column( + accessor=tables.A('virtual_circuit__provider_account'), linkify=True, verbose_name=_('Account') ) @@ -112,7 +113,7 @@ class VirtualCircuitTerminationTable(NetBoxTable): class Meta(NetBoxTable.Meta): model = VirtualCircuitTermination fields = ( - 'pk', 'id', 'virtual_circuit', 'provider', 'provider_network', 'provider_account', 'role', 'interfaces', + 'pk', 'id', 'virtual_circuit', 'provider', 'provider_network', 'provider_account', 'role', 'interface', 'description', 'created', 'last_updated', 'actions', ) default_columns = ( diff --git a/netbox/core/tables/config.py b/netbox/core/tables/config.py index 018d89edf..0562f9199 100644 --- a/netbox/core/tables/config.py +++ b/netbox/core/tables/config.py @@ -19,6 +19,7 @@ REVISION_BUTTONS = """ class ConfigRevisionTable(NetBoxTable): is_active = columns.BooleanColumn( verbose_name=_('Is Active'), + accessor='active', false_mark=None ) actions = columns.ActionsColumn( diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index e6985a780..67f7baad7 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -1149,7 +1149,7 @@ class VirtualDeviceContextTable(TenancyColumnsMixin, PrimaryModelTable): ) device = tables.Column( verbose_name=_('Device'), - order_by=('device___name',), + order_by=('device__name',), linkify=True ) status = columns.ChoiceFieldColumn( diff --git a/netbox/dcim/tables/modules.py b/netbox/dcim/tables/modules.py index 8e857072c..948c7a664 100644 --- a/netbox/dcim/tables/modules.py +++ b/netbox/dcim/tables/modules.py @@ -56,7 +56,9 @@ class ModuleTypeTable(PrimaryModelTable): template_code=WEIGHT, order_by=('_abs_weight', 'weight_unit') ) - attributes = columns.DictColumn() + attributes = columns.DictColumn( + orderable=False, + ) module_count = columns.LinkedCountColumn( viewname='dcim:module_list', url_params={'module_type_id': 'pk'}, diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index cc1165e7c..3ca68a922 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -417,6 +417,7 @@ class NotificationTable(NetBoxTable): icon = columns.TemplateColumn( template_code=NOTIFICATION_ICON, accessor=tables.A('event'), + orderable=False, attrs={ 'td': {'class': 'w-1'}, 'th': {'class': 'w-1'}, @@ -479,8 +480,8 @@ class WebhookTable(NetBoxTable): verbose_name=_('Name'), linkify=True ) - ssl_validation = columns.BooleanColumn( - verbose_name=_('SSL Validation') + ssl_verification = columns.BooleanColumn( + verbose_name=_('SSL Verification'), ) owner = tables.Column( linkify=True, diff --git a/netbox/ipam/tables/vlans.py b/netbox/ipam/tables/vlans.py index 2082ea616..1727faeaa 100644 --- a/netbox/ipam/tables/vlans.py +++ b/netbox/ipam/tables/vlans.py @@ -247,6 +247,6 @@ class VLANTranslationRuleTable(NetBoxTable): class Meta(NetBoxTable.Meta): model = VLANTranslationRule fields = ( - 'pk', 'id', 'name', 'policy', 'local_vid', 'remote_vid', 'description', 'tags', 'created', 'last_updated', + 'pk', 'id', 'policy', 'local_vid', 'remote_vid', 'description', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'policy', 'local_vid', 'remote_vid', 'description') diff --git a/netbox/vpn/tables/tunnels.py b/netbox/vpn/tables/tunnels.py index d1a4fc7c9..605a56b42 100644 --- a/netbox/vpn/tables/tunnels.py +++ b/netbox/vpn/tables/tunnels.py @@ -66,7 +66,7 @@ class TunnelTable(TenancyColumnsMixin, ContactsColumnMixin, PrimaryModelTable): model = Tunnel fields = ( 'pk', 'id', 'name', 'group', 'status', 'encapsulation', 'ipsec_profile', 'tenant', 'tenant_group', - 'tunnel_id', 'termination_count', 'description', 'contacts', 'comments', 'tags', 'created', + 'tunnel_id', 'terminations_count', 'description', 'contacts', 'comments', 'tags', 'created', 'last_updated', ) default_columns = ('pk', 'name', 'group', 'status', 'encapsulation', 'tenant', 'terminations_count') From 40eec679d99493bcbc0268571af12eabab246473 Mon Sep 17 00:00:00 2001 From: bctiemann Date: Thu, 2 Apr 2026 17:09:53 -0400 Subject: [PATCH 05/27] Fixes: #21696 - Upgrade to django-rq==4.0.1 (#21805) --- netbox/core/api/views.py | 8 ++++---- netbox/core/tests/test_views.py | 16 ++++++++-------- netbox/core/utils.py | 20 ++++++++++---------- netbox/core/views.py | 8 ++++---- netbox/netbox/configuration_testing.py | 4 ++++ netbox/netbox/settings.py | 1 + requirements.txt | 2 +- 7 files changed, 32 insertions(+), 27 deletions(-) diff --git a/netbox/core/api/views.py b/netbox/core/api/views.py index bea332f1b..7d5e21f20 100644 --- a/netbox/core/api/views.py +++ b/netbox/core/api/views.py @@ -2,7 +2,7 @@ from django.http import Http404, HttpResponse from django.shortcuts import get_object_or_404 from django.utils.translation import gettext_lazy as _ from django_rq.queues import get_redis_connection -from django_rq.settings import QUEUES_LIST +from django_rq.settings import get_queues_list from django_rq.utils import get_statistics from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import OpenApiParameter, extend_schema @@ -195,7 +195,7 @@ class BackgroundWorkerViewSet(BaseRQViewSet): return 'Background Workers' def get_data(self): - config = QUEUES_LIST[0] + config = get_queues_list()[0] return Worker.all(get_redis_connection(config['connection_config'])) @extend_schema( @@ -205,7 +205,7 @@ class BackgroundWorkerViewSet(BaseRQViewSet): ) def retrieve(self, request, name): # all the RQ queues should use the same connection - config = QUEUES_LIST[0] + config = get_queues_list()[0] workers = Worker.all(get_redis_connection(config['connection_config'])) worker = next((item for item in workers if item.name == name), None) if not worker: @@ -229,7 +229,7 @@ class BackgroundTaskViewSet(BaseRQViewSet): return get_rq_jobs() def get_task_from_id(self, task_id): - config = QUEUES_LIST[0] + config = get_queues_list()[0] task = RQ_Job.fetch(task_id, connection=get_redis_connection(config['connection_config'])) if not task: raise Http404 diff --git a/netbox/core/tests/test_views.py b/netbox/core/tests/test_views.py index f4254a299..82838a576 100644 --- a/netbox/core/tests/test_views.py +++ b/netbox/core/tests/test_views.py @@ -6,7 +6,7 @@ from datetime import datetime from django.urls import reverse from django.utils import timezone from django_rq import get_queue -from django_rq.settings import QUEUES_MAP +from django_rq.settings import get_queues_map from django_rq.workers import get_worker from rq.job import Job as RQ_Job from rq.job import JobStatus @@ -189,7 +189,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_list_default(self): queue = get_queue('default') queue.enqueue(self.dummy_job_default) - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] response = self.client.get(reverse('core:background_task_list', args=[queue_index, 'queued'])) self.assertEqual(response.status_code, 200) @@ -198,7 +198,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_list_high(self): queue = get_queue('high') queue.enqueue(self.dummy_job_high) - queue_index = QUEUES_MAP['high'] + queue_index = get_queues_map()['high'] response = self.client.get(reverse('core:background_task_list', args=[queue_index, 'queued'])) self.assertEqual(response.status_code, 200) @@ -207,7 +207,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_list_finished(self): queue = get_queue('default') job = queue.enqueue(self.dummy_job_default) - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] registry = FinishedJobRegistry(queue.name, queue.connection) registry.add(job, 2) @@ -218,7 +218,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_list_failed(self): queue = get_queue('default') job = queue.enqueue(self.dummy_job_default) - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] registry = FailedJobRegistry(queue.name, queue.connection) registry.add(job, 2) @@ -229,7 +229,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_scheduled(self): queue = get_queue('default') queue.enqueue_at(datetime.now(), self.dummy_job_default) - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] response = self.client.get(reverse('core:background_task_list', args=[queue_index, 'scheduled'])) self.assertEqual(response.status_code, 200) @@ -238,7 +238,7 @@ class BackgroundTaskTestCase(TestCase): def test_background_tasks_list_deferred(self): queue = get_queue('default') job = queue.enqueue(self.dummy_job_default) - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] registry = DeferredJobRegistry(queue.name, queue.connection) registry.add(job, 2) @@ -335,7 +335,7 @@ class BackgroundTaskTestCase(TestCase): worker2 = get_worker('high') worker2.register_birth() - queue_index = QUEUES_MAP['default'] + queue_index = get_queues_map()['default'] response = self.client.get(reverse('core:worker_list', args=[queue_index])) self.assertEqual(response.status_code, 200) self.assertIn(str(worker1.name), str(response.content)) diff --git a/netbox/core/utils.py b/netbox/core/utils.py index d5be09b49..1ef6e5136 100644 --- a/netbox/core/utils.py +++ b/netbox/core/utils.py @@ -1,7 +1,7 @@ from django.http import Http404 from django.utils.translation import gettext_lazy as _ from django_rq.queues import get_queue, get_queue_by_index, get_redis_connection -from django_rq.settings import QUEUES_LIST, QUEUES_MAP +from django_rq.settings import get_queues_list, get_queues_map from django_rq.utils import get_jobs, stop_jobs from rq import requeue_job from rq.exceptions import NoSuchJobError @@ -31,7 +31,7 @@ def get_rq_jobs(): """ jobs = set() - for queue in QUEUES_LIST: + for queue in get_queues_list(): queue = get_queue(queue['name']) jobs.update(queue.get_jobs()) @@ -78,13 +78,13 @@ def delete_rq_job(job_id): """ Delete the specified RQ job. """ - config = QUEUES_LIST[0] + config = get_queues_list()[0] try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: raise Http404(_("Job {job_id} not found").format(job_id=job_id)) - queue_index = QUEUES_MAP[job.origin] + queue_index = get_queues_map()[job.origin] queue = get_queue_by_index(queue_index) # Remove job id from queue and delete the actual job @@ -96,13 +96,13 @@ def requeue_rq_job(job_id): """ Requeue the specified RQ job. """ - config = QUEUES_LIST[0] + config = get_queues_list()[0] try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: raise Http404(_("Job {id} not found.").format(id=job_id)) - queue_index = QUEUES_MAP[job.origin] + queue_index = get_queues_map()[job.origin] queue = get_queue_by_index(queue_index) requeue_job(job_id, connection=queue.connection, serializer=queue.serializer) @@ -112,13 +112,13 @@ def enqueue_rq_job(job_id): """ Enqueue the specified RQ job. """ - config = QUEUES_LIST[0] + config = get_queues_list()[0] try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: raise Http404(_("Job {id} not found.").format(id=job_id)) - queue_index = QUEUES_MAP[job.origin] + queue_index = get_queues_map()[job.origin] queue = get_queue_by_index(queue_index) try: @@ -144,13 +144,13 @@ def stop_rq_job(job_id): """ Stop the specified RQ job. """ - config = QUEUES_LIST[0] + config = get_queues_list()[0] try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: raise Http404(_("Job {job_id} not found").format(job_id=job_id)) - queue_index = QUEUES_MAP[job.origin] + queue_index = get_queues_map()[job.origin] queue = get_queue_by_index(queue_index) return stop_jobs(queue, job_id)[0] diff --git a/netbox/core/views.py b/netbox/core/views.py index 780e0957c..9fcfdf728 100644 --- a/netbox/core/views.py +++ b/netbox/core/views.py @@ -14,7 +14,7 @@ from django.urls import reverse from django.utils.translation import gettext_lazy as _ from django.views.generic import View from django_rq.queues import get_connection, get_queue_by_index, get_redis_connection -from django_rq.settings import QUEUES_LIST, QUEUES_MAP +from django_rq.settings import get_queues_list, get_queues_map from django_rq.utils import get_statistics from rq.exceptions import NoSuchJobError from rq.job import Job as RQ_Job @@ -524,13 +524,13 @@ class BackgroundTaskView(BaseRQView): def get(self, request, job_id): # all the RQ queues should use the same connection - config = QUEUES_LIST[0] + config = get_queues_list()[0] try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: raise Http404(_("Job {job_id} not found").format(job_id=job_id)) - queue_index = QUEUES_MAP[job.origin] + queue_index = get_queues_map()[job.origin] queue = get_queue_by_index(queue_index) try: @@ -640,7 +640,7 @@ class WorkerView(BaseRQView): def get(self, request, key): # all the RQ queues should use the same connection - config = QUEUES_LIST[0] + config = get_queues_list()[0] worker = Worker.find_by_key('rq:worker:' + key, connection=get_redis_connection(config['connection_config'])) # Convert microseconds to milliseconds worker.total_working_time = worker.total_working_time / 1000 diff --git a/netbox/netbox/configuration_testing.py b/netbox/netbox/configuration_testing.py index 3e552e944..3ac9c2642 100644 --- a/netbox/netbox/configuration_testing.py +++ b/netbox/netbox/configuration_testing.py @@ -20,6 +20,10 @@ PLUGINS = [ 'netbox.tests.dummy_plugin', ] +RQ = { + 'COMMIT_MODE': 'auto', +} + REDIS = { 'tasks': { 'HOST': 'localhost', diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 90c9f8334..0840f0149 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -168,6 +168,7 @@ REMOTE_AUTH_USER_FIRST_NAME = getattr(configuration, 'REMOTE_AUTH_USER_FIRST_NAM REMOTE_AUTH_USER_LAST_NAME = getattr(configuration, 'REMOTE_AUTH_USER_LAST_NAME', 'HTTP_REMOTE_USER_LAST_NAME') # Required by extras/migrations/0109_script_models.py REPORTS_ROOT = getattr(configuration, 'REPORTS_ROOT', os.path.join(BASE_DIR, 'reports')).rstrip('/') +RQ = getattr(configuration, 'RQ', {}) RQ_DEFAULT_TIMEOUT = getattr(configuration, 'RQ_DEFAULT_TIMEOUT', 300) RQ_RETRY_INTERVAL = getattr(configuration, 'RQ_RETRY_INTERVAL', 60) RQ_RETRY_MAX = getattr(configuration, 'RQ_RETRY_MAX', 0) diff --git a/requirements.txt b/requirements.txt index 89c0590f2..c6fdbb5c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ django-pglocks==1.0.4 django-prometheus==2.4.1 django-redis==6.0.0 django-rich==2.2.0 -django-rq==3.2.2 +django-rq==4.0.1 django-storages==1.14.6 django-tables2==2.8.0 django-taggit==6.1.0 From a19daa54664d3dd8b28fca67c9369f36aa6be453 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 2 Apr 2026 17:30:49 -0400 Subject: [PATCH 06/27] Fixes #21095: Add IEC unit labels support and rename humanize helpers to be unit-agnostic (#21789) --- .../panels/cluster_resources.html | 4 +- .../panels/virtual_machine_resources.html | 4 +- .../virtualdisk/attrs/size.html | 2 +- netbox/utilities/forms/utils.py | 8 +++ netbox/utilities/templatetags/helpers.py | 50 +++++++++++-------- netbox/utilities/tests/test_forms.py | 19 ++++++- netbox/utilities/tests/test_templatetags.py | 44 ++++++++++++++++ netbox/virtualization/forms/bulk_edit.py | 21 ++++++-- netbox/virtualization/forms/filtersets.py | 10 +++- netbox/virtualization/forms/model_forms.py | 12 +++++ .../virtualization/models/virtualmachines.py | 6 +-- .../virtualization/tables/virtualmachines.py | 9 ++-- 12 files changed, 153 insertions(+), 36 deletions(-) diff --git a/netbox/templates/virtualization/panels/cluster_resources.html b/netbox/templates/virtualization/panels/cluster_resources.html index bdaec3d89..6b5b4da4a 100644 --- a/netbox/templates/virtualization/panels/cluster_resources.html +++ b/netbox/templates/virtualization/panels/cluster_resources.html @@ -12,7 +12,7 @@ {% trans "Memory" %} {% if memory_sum %} - {{ memory_sum|humanize_ram_megabytes }} + {{ memory_sum|humanize_ram_capacity }} {% else %} {{ ''|placeholder }} {% endif %} @@ -24,7 +24,7 @@ {% if disk_sum %} - {{ disk_sum|humanize_disk_megabytes }} + {{ disk_sum|humanize_disk_capacity }} {% else %} {{ ''|placeholder }} {% endif %} diff --git a/netbox/templates/virtualization/panels/virtual_machine_resources.html b/netbox/templates/virtualization/panels/virtual_machine_resources.html index b0ad7c07e..f944a87e7 100644 --- a/netbox/templates/virtualization/panels/virtual_machine_resources.html +++ b/netbox/templates/virtualization/panels/virtual_machine_resources.html @@ -12,7 +12,7 @@ {% trans "Memory" %} {% if object.memory %} - {{ object.memory|humanize_ram_megabytes }} + {{ object.memory|humanize_ram_capacity }} {% else %} {{ ''|placeholder }} {% endif %} @@ -24,7 +24,7 @@ {% if object.disk %} - {{ object.disk|humanize_disk_megabytes }} + {{ object.disk|humanize_disk_capacity }} {% else %} {{ ''|placeholder }} {% endif %} diff --git a/netbox/templates/virtualization/virtualdisk/attrs/size.html b/netbox/templates/virtualization/virtualdisk/attrs/size.html index 1185dbc20..2fc58919b 100644 --- a/netbox/templates/virtualization/virtualdisk/attrs/size.html +++ b/netbox/templates/virtualization/virtualdisk/attrs/size.html @@ -1,2 +1,2 @@ {% load helpers %} -{{ value|humanize_disk_megabytes }} +{{ value|humanize_disk_capacity }} diff --git a/netbox/utilities/forms/utils.py b/netbox/utilities/forms/utils.py index 1ed13cb9c..77a0f230b 100644 --- a/netbox/utilities/forms/utils.py +++ b/netbox/utilities/forms/utils.py @@ -14,6 +14,7 @@ __all__ = ( 'expand_alphanumeric_pattern', 'expand_ipaddress_pattern', 'form_from_model', + 'get_capacity_unit_label', 'get_field_value', 'get_selected_values', 'parse_alphanumeric_range', @@ -130,6 +131,13 @@ def expand_ipaddress_pattern(string, family): yield ''.join([lead, format(i, 'x' if family == 6 else 'd'), remnant]) +def get_capacity_unit_label(divisor=1000): + """ + Return the appropriate base unit label: 'MiB' for binary (1024), 'MB' for decimal (1000). + """ + return 'MiB' if divisor == 1024 else 'MB' + + def get_field_value(form, field_name): """ Return the current bound or initial value associated with a form field, prior to calling diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index 0a77b9cab..fbe2d9d12 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -20,8 +20,8 @@ __all__ = ( 'divide', 'get_item', 'get_key', - 'humanize_disk_megabytes', - 'humanize_ram_megabytes', + 'humanize_disk_capacity', + 'humanize_ram_capacity', 'humanize_speed', 'icon_from_status', 'kg_to_pounds', @@ -208,42 +208,52 @@ def humanize_speed(speed): return '{} Kbps'.format(speed) -def _humanize_megabytes(mb, divisor=1000): +def _humanize_capacity(value, divisor=1000): """ - Express a number of megabytes in the most suitable unit (e.g. gigabytes, terabytes, etc.). + Express a capacity value in the most suitable unit (e.g. GB, TiB, etc.). + + The value is treated as a unitless base-unit quantity; the divisor determines + both the scaling thresholds and the label convention: + - 1000: SI labels (MB, GB, TB, PB) + - 1024: IEC labels (MiB, GiB, TiB, PiB) """ - if not mb: + if not value: return "" + if divisor == 1024: + labels = ('MiB', 'GiB', 'TiB', 'PiB') + else: + labels = ('MB', 'GB', 'TB', 'PB') + PB_SIZE = divisor**3 TB_SIZE = divisor**2 GB_SIZE = divisor - if mb >= PB_SIZE: - return f"{mb / PB_SIZE:.2f} PB" - if mb >= TB_SIZE: - return f"{mb / TB_SIZE:.2f} TB" - if mb >= GB_SIZE: - return f"{mb / GB_SIZE:.2f} GB" - return f"{mb} MB" + if value >= PB_SIZE: + return f"{value / PB_SIZE:.2f} {labels[3]}" + if value >= TB_SIZE: + return f"{value / TB_SIZE:.2f} {labels[2]}" + if value >= GB_SIZE: + return f"{value / GB_SIZE:.2f} {labels[1]}" + return f"{value} {labels[0]}" @register.filter() -def humanize_disk_megabytes(mb): +def humanize_disk_capacity(value): """ - Express a number of megabytes in the most suitable unit (e.g. gigabytes, terabytes, etc.). - Use the DISK_BASE_UNIT setting to determine the divisor. Default is 1000. + Express a disk capacity in the most suitable unit, using the DISK_BASE_UNIT + setting to select SI (MB/GB) or IEC (MiB/GiB) labels. """ - return _humanize_megabytes(mb, DISK_BASE_UNIT) + return _humanize_capacity(value, DISK_BASE_UNIT) @register.filter() -def humanize_ram_megabytes(mb): +def humanize_ram_capacity(value): """ - Express a number of megabytes in the most suitable unit (e.g. gigabytes, terabytes, etc.). - Use the RAM_BASE_UNIT setting to determine the divisor. Default is 1000. + Express a RAM capacity in the most suitable unit, using the RAM_BASE_UNIT + setting to select SI (MB/GB) or IEC (MiB/GiB) labels. """ - return _humanize_megabytes(mb, RAM_BASE_UNIT) + return _humanize_capacity(value, RAM_BASE_UNIT) @register.filter() diff --git a/netbox/utilities/tests/test_forms.py b/netbox/utilities/tests/test_forms.py index 2224cc195..1521373a9 100644 --- a/netbox/utilities/tests/test_forms.py +++ b/netbox/utilities/tests/test_forms.py @@ -6,7 +6,12 @@ from netbox.choices import ImportFormatChoices from utilities.forms.bulk_import import BulkImportForm from utilities.forms.fields.csv import CSVSelectWidget from utilities.forms.forms import BulkRenameForm -from utilities.forms.utils import expand_alphanumeric_pattern, expand_ipaddress_pattern, get_field_value +from utilities.forms.utils import ( + expand_alphanumeric_pattern, + expand_ipaddress_pattern, + get_capacity_unit_label, + get_field_value, +) from utilities.forms.widgets.select import AvailableOptions, SelectedOptions @@ -550,3 +555,15 @@ class SelectMultipleWidgetTest(TestCase): self.assertEqual(widget.choices[0][1], [(2, 'Option 2')]) self.assertEqual(widget.choices[1][0], 'Group B') self.assertEqual(widget.choices[1][1], [(3, 'Option 3')]) + + +class GetCapacityUnitLabelTest(TestCase): + """ + Test the get_capacity_unit_label function for correct base unit label. + """ + + def test_si_label(self): + self.assertEqual(get_capacity_unit_label(1000), 'MB') + + def test_iec_label(self): + self.assertEqual(get_capacity_unit_label(1024), 'MiB') diff --git a/netbox/utilities/tests/test_templatetags.py b/netbox/utilities/tests/test_templatetags.py index 876eed215..570e2595f 100644 --- a/netbox/utilities/tests/test_templatetags.py +++ b/netbox/utilities/tests/test_templatetags.py @@ -3,6 +3,7 @@ from unittest.mock import patch from django.test import TestCase, override_settings from utilities.templatetags.builtins.tags import static_with_params +from utilities.templatetags.helpers import _humanize_capacity class StaticWithParamsTest(TestCase): @@ -46,3 +47,46 @@ class StaticWithParamsTest(TestCase): # Check that new parameter value is used self.assertIn('v=new_version', result) self.assertNotIn('v=old_version', result) + + +class HumanizeCapacityTest(TestCase): + """ + Test the _humanize_capacity function for correct SI/IEC unit label selection. + """ + + # Tests with divisor=1000 (SI/decimal units) + + def test_si_megabytes(self): + self.assertEqual(_humanize_capacity(500, divisor=1000), '500 MB') + + def test_si_gigabytes(self): + self.assertEqual(_humanize_capacity(2000, divisor=1000), '2.00 GB') + + def test_si_terabytes(self): + self.assertEqual(_humanize_capacity(2000000, divisor=1000), '2.00 TB') + + def test_si_petabytes(self): + self.assertEqual(_humanize_capacity(2000000000, divisor=1000), '2.00 PB') + + # Tests with divisor=1024 (IEC/binary units) + + def test_iec_megabytes(self): + self.assertEqual(_humanize_capacity(500, divisor=1024), '500 MiB') + + def test_iec_gigabytes(self): + self.assertEqual(_humanize_capacity(2048, divisor=1024), '2.00 GiB') + + def test_iec_terabytes(self): + self.assertEqual(_humanize_capacity(2097152, divisor=1024), '2.00 TiB') + + def test_iec_petabytes(self): + self.assertEqual(_humanize_capacity(2147483648, divisor=1024), '2.00 PiB') + + # Edge cases + + def test_empty_value(self): + self.assertEqual(_humanize_capacity(0, divisor=1000), '') + self.assertEqual(_humanize_capacity(None, divisor=1000), '') + + def test_default_divisor_is_1000(self): + self.assertEqual(_humanize_capacity(2000), '2.00 GB') diff --git a/netbox/virtualization/forms/bulk_edit.py b/netbox/virtualization/forms/bulk_edit.py index 1bd463811..f8868d8d3 100644 --- a/netbox/virtualization/forms/bulk_edit.py +++ b/netbox/virtualization/forms/bulk_edit.py @@ -1,4 +1,5 @@ from django import forms +from django.conf import settings from django.utils.translation import gettext_lazy as _ from dcim.choices import InterfaceModeChoices @@ -13,6 +14,7 @@ from tenancy.models import Tenant from utilities.forms import BulkRenameForm, add_blank_choice from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField from utilities.forms.rendering import FieldSet +from utilities.forms.utils import get_capacity_unit_label from utilities.forms.widgets import BulkEditNullBooleanSelect from virtualization.choices import * from virtualization.models import * @@ -138,11 +140,11 @@ class VirtualMachineBulkEditForm(PrimaryModelBulkEditForm): ) memory = forms.IntegerField( required=False, - label=_('Memory (MB)') + label=_('Memory') ) disk = forms.IntegerField( required=False, - label=_('Disk (MB)') + label=_('Disk') ) config_template = DynamicModelChoiceField( queryset=ConfigTemplate.objects.all(), @@ -159,6 +161,13 @@ class VirtualMachineBulkEditForm(PrimaryModelBulkEditForm): 'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'vcpus', 'memory', 'disk', 'description', 'comments', ) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Set unit labels based on configured RAM_BASE_UNIT / DISK_BASE_UNIT (MB vs MiB) + self.fields['memory'].label = _('Memory ({unit})').format(unit=get_capacity_unit_label(settings.RAM_BASE_UNIT)) + self.fields['disk'].label = _('Disk ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT)) + class VMInterfaceBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm): virtual_machine = forms.ModelChoiceField( @@ -304,7 +313,7 @@ class VirtualDiskBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm): ) size = forms.IntegerField( required=False, - label=_('Size (MB)') + label=_('Size') ) description = forms.CharField( label=_('Description'), @@ -318,6 +327,12 @@ class VirtualDiskBulkEditForm(OwnerMixin, NetBoxModelBulkEditForm): ) nullable_fields = ('description',) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Set unit label based on configured DISK_BASE_UNIT (MB vs MiB) + self.fields['size'].label = _('Size ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT)) + class VirtualDiskBulkRenameForm(BulkRenameForm): pk = forms.ModelMultipleChoiceField( diff --git a/netbox/virtualization/forms/filtersets.py b/netbox/virtualization/forms/filtersets.py index 5b1b44cb6..94b2a4dd6 100644 --- a/netbox/virtualization/forms/filtersets.py +++ b/netbox/virtualization/forms/filtersets.py @@ -1,4 +1,5 @@ from django import forms +from django.conf import settings from django.utils.translation import gettext_lazy as _ from dcim.choices import * @@ -12,6 +13,7 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField from utilities.forms.rendering import FieldSet +from utilities.forms.utils import get_capacity_unit_label from virtualization.choices import * from virtualization.models import * from vpn.models import L2VPN @@ -281,8 +283,14 @@ class VirtualDiskFilterForm(OwnerFilterMixin, NetBoxModelFilterSetForm): label=_('Virtual machine') ) size = forms.IntegerField( - label=_('Size (MB)'), + label=_('Size'), required=False, min_value=1 ) tag = TagFilterField(model) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Set unit label based on configured DISK_BASE_UNIT (MB vs MiB) + self.fields['size'].label = _('Size ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT)) diff --git a/netbox/virtualization/forms/model_forms.py b/netbox/virtualization/forms/model_forms.py index 99bd49823..85883a6ec 100644 --- a/netbox/virtualization/forms/model_forms.py +++ b/netbox/virtualization/forms/model_forms.py @@ -1,5 +1,6 @@ from django import forms from django.apps import apps +from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ @@ -16,6 +17,7 @@ from tenancy.forms import TenancyForm from utilities.forms import ConfirmationForm from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, JSONField from utilities.forms.rendering import FieldSet +from utilities.forms.utils import get_capacity_unit_label from utilities.forms.widgets import HTMXSelect from virtualization.models import * @@ -236,6 +238,10 @@ class VirtualMachineForm(TenancyForm, PrimaryModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + # Set unit labels based on configured RAM_BASE_UNIT / DISK_BASE_UNIT (MB vs MiB) + self.fields['memory'].label = _('Memory ({unit})').format(unit=get_capacity_unit_label(settings.RAM_BASE_UNIT)) + self.fields['disk'].label = _('Disk ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT)) + if self.instance.pk: # Disable the disk field if one or more VirtualDisks have been created @@ -401,3 +407,9 @@ class VirtualDiskForm(VMComponentForm): fields = [ 'virtual_machine', 'name', 'size', 'description', 'owner', 'tags', ] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Set unit label based on configured DISK_BASE_UNIT (MB vs MiB) + self.fields['size'].label = _('Size ({unit})').format(unit=get_capacity_unit_label(settings.DISK_BASE_UNIT)) diff --git a/netbox/virtualization/models/virtualmachines.py b/netbox/virtualization/models/virtualmachines.py index 5a0f1e9b3..288585552 100644 --- a/netbox/virtualization/models/virtualmachines.py +++ b/netbox/virtualization/models/virtualmachines.py @@ -121,12 +121,12 @@ class VirtualMachine(ContactsMixin, ImageAttachmentsMixin, RenderConfigMixin, Co memory = models.PositiveIntegerField( blank=True, null=True, - verbose_name=_('memory (MB)') + verbose_name=_('memory') ) disk = models.PositiveIntegerField( blank=True, null=True, - verbose_name=_('disk (MB)') + verbose_name=_('disk') ) serial = models.CharField( verbose_name=_('serial number'), @@ -425,7 +425,7 @@ class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin): class VirtualDisk(ComponentModel, TrackingModelMixin): size = models.PositiveIntegerField( - verbose_name=_('size (MB)'), + verbose_name=_('size'), ) class Meta(ComponentModel.Meta): diff --git a/netbox/virtualization/tables/virtualmachines.py b/netbox/virtualization/tables/virtualmachines.py index d218392c4..819ec6c9c 100644 --- a/netbox/virtualization/tables/virtualmachines.py +++ b/netbox/virtualization/tables/virtualmachines.py @@ -4,7 +4,7 @@ from django.utils.translation import gettext_lazy as _ from dcim.tables.devices import BaseInterfaceTable from netbox.tables import NetBoxTable, PrimaryModelTable, columns from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin -from utilities.templatetags.helpers import humanize_disk_megabytes +from utilities.templatetags.helpers import humanize_disk_capacity, humanize_ram_capacity from virtualization.models import VirtualDisk, VirtualMachine, VMInterface from .template_code import * @@ -93,8 +93,11 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, PrimaryModel 'pk', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'vcpus', 'memory', 'disk', 'primary_ip', ) + def render_memory(self, value): + return humanize_ram_capacity(value) + def render_disk(self, value): - return humanize_disk_megabytes(value) + return humanize_disk_capacity(value) # @@ -184,7 +187,7 @@ class VirtualDiskTable(NetBoxTable): } def render_size(self, value): - return humanize_disk_megabytes(value) + return humanize_disk_capacity(value) class VirtualMachineVirtualDiskTable(VirtualDiskTable): From 34098bb20a720ed8c9fe677844c4ee81ddcc7bdd Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Thu, 2 Apr 2026 16:33:35 -0500 Subject: [PATCH 07/27] Fixes #21760: Add 1C2P:2C1P breakout cable profile (#21824) * Add Breakout1C2Px2C1PCableProfile class * Add BREAKOUT_1C2P_2C1P choice * Add new CableProfileChoices (BREAKOUT_1C2P_2C1P) --------- Co-authored-by: Paulo Santos --- netbox/dcim/cable_profiles.py | 15 +++++++++++++++ netbox/dcim/choices.py | 2 ++ netbox/dcim/models/cables.py | 1 + 3 files changed, 18 insertions(+) diff --git a/netbox/dcim/cable_profiles.py b/netbox/dcim/cable_profiles.py index 8d5e787a3..8945370f2 100644 --- a/netbox/dcim/cable_profiles.py +++ b/netbox/dcim/cable_profiles.py @@ -254,6 +254,21 @@ class Trunk8C4PCableProfile(BaseCableProfile): b_connectors = a_connectors +class Breakout1C2Px2C1PCableProfile(BaseCableProfile): + a_connectors = { + 1: 2, + } + b_connectors = { + 1: 1, + 2: 1, + } + _mapping = { + (1, 1): (1, 1), + (1, 2): (2, 1), + (2, 1): (1, 2), + } + + class Breakout1C4Px4C1PCableProfile(BaseCableProfile): a_connectors = { 1: 4, diff --git a/netbox/dcim/choices.py b/netbox/dcim/choices.py index 5aedd3031..514d4aedf 100644 --- a/netbox/dcim/choices.py +++ b/netbox/dcim/choices.py @@ -1776,6 +1776,7 @@ class CableProfileChoices(ChoiceSet): TRUNK_4C8P = 'trunk-4c8p' TRUNK_8C4P = 'trunk-8c4p' # Breakouts + BREAKOUT_1C2P_2C1P = 'breakout-1c2p-2c1p' BREAKOUT_1C4P_4C1P = 'breakout-1c4p-4c1p' BREAKOUT_1C6P_6C1P = 'breakout-1c6p-6c1p' BREAKOUT_2C4P_8C1P_SHUFFLE = 'breakout-2c4p-8c1p-shuffle' @@ -1815,6 +1816,7 @@ class CableProfileChoices(ChoiceSet): ( _('Breakout'), ( + (BREAKOUT_1C2P_2C1P, _('1C2P:2C1P breakout')), (BREAKOUT_1C4P_4C1P, _('1C4P:4C1P breakout')), (BREAKOUT_1C6P_6C1P, _('1C6P:6C1P breakout')), (BREAKOUT_2C4P_8C1P_SHUFFLE, _('2C4P:8C1P breakout (shuffle)')), diff --git a/netbox/dcim/models/cables.py b/netbox/dcim/models/cables.py index 7f43221b0..8ceb36c85 100644 --- a/netbox/dcim/models/cables.py +++ b/netbox/dcim/models/cables.py @@ -160,6 +160,7 @@ class Cable(PrimaryModel): CableProfileChoices.TRUNK_4C6P: cable_profiles.Trunk4C6PCableProfile, CableProfileChoices.TRUNK_4C8P: cable_profiles.Trunk4C8PCableProfile, CableProfileChoices.TRUNK_8C4P: cable_profiles.Trunk8C4PCableProfile, + CableProfileChoices.BREAKOUT_1C2P_2C1P: cable_profiles.Breakout1C2Px2C1PCableProfile, CableProfileChoices.BREAKOUT_1C4P_4C1P: cable_profiles.Breakout1C4Px4C1PCableProfile, CableProfileChoices.BREAKOUT_1C6P_6C1P: cable_profiles.Breakout1C6Px6C1PCableProfile, CableProfileChoices.BREAKOUT_2C4P_8C1P_SHUFFLE: cable_profiles.Breakout2C4Px8C1PShuffleCableProfile, From b4ee2cf447a351bbacb5b19cf9182fb25a2e83ac Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Fri, 3 Apr 2026 00:49:42 +0200 Subject: [PATCH 08/27] fix(dcim): Refresh stale CablePath references during serialization (#21815) Cable edits can delete and recreate CablePath rows while endpoint instances remain in memory. Deferred event serialization can then encounter a stale `_path` reference and raise `CablePath.DoesNotExist`. Refresh stale `_path` references through `PathEndpoint.path` and route internal callers through that accessor. Update `EventContext` to track the latest serialization source for coalesced duplicate enqueues, while eagerly freezing delete-event payloads before row removal. Also avoid mutating `event_rule.action_data` when merging the event payload. Fixes #21498 --- netbox/dcim/api/serializers_/base.py | 10 ++- netbox/dcim/models/device_components.py | 52 +++++++++++--- netbox/dcim/tests/test_models.py | 60 ++++++++++++++++ netbox/extras/events.py | 76 ++++++++++++++++---- netbox/extras/tests/test_event_rules.py | 94 +++++++++++++++++++++++++ 5 files changed, 267 insertions(+), 25 deletions(-) diff --git a/netbox/dcim/api/serializers_/base.py b/netbox/dcim/api/serializers_/base.py index c60454937..9120ec109 100644 --- a/netbox/dcim/api/serializers_/base.py +++ b/netbox/dcim/api/serializers_/base.py @@ -38,7 +38,15 @@ class ConnectedEndpointsSerializer(serializers.ModelSerializer): @extend_schema_field(serializers.BooleanField) def get_connected_endpoints_reachable(self, obj): - return obj._path and obj._path.is_complete and obj._path.is_active + """ + Return whether the connected endpoints are reachable via a complete, active cable path. + """ + # Use the public `path` accessor rather than dereferencing `_path` + # directly. `path` already handles the stale in-memory relation case + # that can occur while CablePath rows are rebuilt during cable edits. + if path := obj.path: + return path.is_complete and path.is_active + return False class PortSerializer(serializers.ModelSerializer): diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 09dc02ae9..75a26e25e 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -2,7 +2,7 @@ from functools import cached_property from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.contrib.postgres.fields import ArrayField -from django.core.exceptions import ValidationError +from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.db.models import Sum @@ -307,11 +307,12 @@ class PathEndpoint(models.Model): `connected_endpoints()` is a convenience method for returning the destination of the associated CablePath, if any. """ + _path = models.ForeignKey( to='dcim.CablePath', on_delete=models.SET_NULL, null=True, - blank=True + blank=True, ) class Meta: @@ -323,11 +324,14 @@ class PathEndpoint(models.Model): # Construct the complete path (including e.g. bridged interfaces) while origin is not None: - - if origin._path is None: + # Go through the public accessor rather than dereferencing `_path` + # directly. During cable edits, CablePath rows can be deleted and + # recreated while this endpoint instance is still in memory. + cable_path = origin.path + if cable_path is None: break - path.extend(origin._path.path_objects) + path.extend(cable_path.path_objects) # If the path ends at a non-connected pass-through port, pad out the link and far-end terminations if len(path) % 3 == 1: @@ -336,8 +340,8 @@ class PathEndpoint(models.Model): elif len(path) % 3 == 2: path.insert(-1, []) - # Check for a bridged relationship to continue the trace - destinations = origin._path.destinations + # Check for a bridged relationship to continue the trace. + destinations = cable_path.destinations if len(destinations) == 1: origin = getattr(destinations[0], 'bridge', None) else: @@ -348,14 +352,42 @@ class PathEndpoint(models.Model): @property def path(self): - return self._path + """ + Return this endpoint's current CablePath, if any. + + `_path` is a denormalized reference that is updated from CablePath + save/delete handlers, including queryset.update() calls on origin + endpoints. That means an already-instantiated endpoint can briefly hold + a stale in-memory `_path` relation while the database already points to + a different CablePath (or to no path at all). + + If the cached relation points to a CablePath that has just been + deleted, refresh only the `_path` field from the database and retry. + This keeps the fix cheap and narrowly scoped to the denormalized FK. + """ + if self._path_id is None: + return None + + try: + return self._path + except ObjectDoesNotExist: + # Refresh only the denormalized FK instead of the whole model. + # The expected problem here is in-memory staleness during path + # rebuilds, not persistent database corruption. + self.refresh_from_db(fields=['_path']) + return self._path if self._path_id else None @cached_property def connected_endpoints(self): """ - Caching accessor for the attached CablePath's destination (if any) + Caching accessor for the attached CablePath's destinations (if any). + + Always route through `path` so stale in-memory `_path` references are + repaired before we cache the result for the lifetime of this instance. """ - return self._path.destinations if self._path else [] + if cable_path := self.path: + return cable_path.destinations + return [] # diff --git a/netbox/dcim/tests/test_models.py b/netbox/dcim/tests/test_models.py index f676ae5df..1c0aa04c3 100644 --- a/netbox/dcim/tests/test_models.py +++ b/netbox/dcim/tests/test_models.py @@ -5,6 +5,7 @@ from circuits.models import * from core.models import ObjectType from dcim.choices import * from dcim.models import * +from extras.events import serialize_for_event from extras.models import CustomField from ipam.models import Prefix from netbox.choices import WeightUnitChoices @@ -1345,6 +1346,65 @@ class CableTestCase(TestCase): self.assertEqual(a_terms, [interface1]) self.assertEqual(b_terms, [interface2]) + @tag('regression') # #21498 + def test_path_refreshes_replaced_cablepath_reference(self): + """ + An already-instantiated interface should refresh its denormalized + `_path` foreign key when the referenced CablePath row has been + replaced in the database. + """ + stale_interface = Interface.objects.get(device__name='TestDevice1', name='eth0') + old_path = CablePath.objects.get(pk=stale_interface._path_id) + + new_path = CablePath( + path=old_path.path, + is_active=old_path.is_active, + is_complete=old_path.is_complete, + is_split=old_path.is_split, + ) + old_path_id = old_path.pk + old_path.delete() + new_path.save() + + # The old CablePath no longer exists + self.assertFalse(CablePath.objects.filter(pk=old_path_id).exists()) + + # The already-instantiated interface still points to the deleted path + # until the accessor refreshes `_path` from the database. + self.assertEqual(stale_interface._path_id, old_path_id) + self.assertEqual(stale_interface.path.pk, new_path.pk) + + @tag('regression') # #21498 + def test_serialize_for_event_handles_stale_cablepath_reference_after_retermination(self): + """ + Serializing an interface whose previously cached `_path` row has been + deleted during cable retermination must not raise. + """ + stale_interface = Interface.objects.get(device__name='TestDevice2', name='eth0') + old_path_id = stale_interface._path_id + new_peer = Interface.objects.get(device__name='TestDevice2', name='eth1') + cable = stale_interface.cable + + self.assertIsNotNone(cable) + self.assertIsNotNone(old_path_id) + self.assertEqual(stale_interface.cable_end, 'B') + + cable.b_terminations = [new_peer] + cable.save() + + # The old CablePath was deleted during retrace. + self.assertFalse(CablePath.objects.filter(pk=old_path_id).exists()) + + # The stale in-memory instance still holds the deleted FK value. + self.assertEqual(stale_interface._path_id, old_path_id) + + # Serialization must not raise ObjectDoesNotExist. Because this interface + # was the former B-side termination, it is now disconnected. + data = serialize_for_event(stale_interface) + self.assertIsNone(data['connected_endpoints']) + self.assertIsNone(data['connected_endpoints_type']) + self.assertFalse(data['connected_endpoints_reachable']) + class VirtualDeviceContextTestCase(TestCase): diff --git a/netbox/extras/events.py b/netbox/extras/events.py index 782b29633..55e8b83e7 100644 --- a/netbox/extras/events.py +++ b/netbox/extras/events.py @@ -25,16 +25,54 @@ logger = logging.getLogger('netbox.events_processor') class EventContext(UserDict): """ - A custom dictionary that automatically serializes its associated object on demand. + Dictionary-compatible wrapper for queued events that lazily serializes + ``event['data']`` on first access. + + Backward-compatible with the plain-dict interface expected by existing + EVENTS_PIPELINE consumers. When the same object is enqueued more than once + in a single request, the serialization source is updated so consumers see + the latest state. """ - # We're emulating a dictionary here (rather than using a custom class) because prior to NetBox v4.5.2, events were - # queued as dictionaries for processing by handles in EVENTS_PIPELINE. We need to avoid introducing any breaking - # changes until a suitable minor release. + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Track which model instance should be serialized if/when `data` is + # requested. This may be refreshed on duplicate enqueue, while leaving + # the public `object` entry untouched for compatibility. + self._serialization_source = None + if 'object' in self: + self._serialization_source = super().__getitem__('object') + + def refresh_serialization_source(self, instance): + """ + Point lazy serialization at a fresher instance, invalidating any + already-materialized ``data``. + """ + self._serialization_source = instance + # UserDict.__contains__ checks the backing dict directly, so `in` + # does not trigger __getitem__'s lazy serialization. + if 'data' in self: + del self['data'] + + def freeze_data(self, instance): + """ + Eagerly serialize and cache the payload for delete events, where the + object may become inaccessible after deletion. + """ + super().__setitem__('data', serialize_for_event(instance)) + self._serialization_source = None + def __getitem__(self, item): if item == 'data' and 'data' not in self: - data = serialize_for_event(self['object']) - self.__setitem__('data', data) + # Materialize the payload only when an event consumer asks for it. + # + # On coalesced events, use the latest explicitly queued instance so + # webhooks/scripts/notifications observe the final queued state for + # that object within the request. + source = self._serialization_source or super().__getitem__('object') + super().__setitem__('data', serialize_for_event(source)) + return super().__getitem__(item) @@ -76,8 +114,9 @@ def get_snapshots(instance, event_type): def enqueue_event(queue, instance, request, event_type): """ - Enqueue a serialized representation of a created/updated/deleted object for the processing of - events once the request has completed. + Enqueue (or coalesce) an event for a created/updated/deleted object. + + Events are processed after the request completes. """ # Bail if this type of object does not support event rules if not has_feature(instance, 'event_rules'): @@ -88,11 +127,18 @@ def enqueue_event(queue, instance, request, event_type): assert instance.pk is not None key = f'{app_label}.{model_name}:{instance.pk}' + if key in queue: queue[key]['snapshots']['postchange'] = get_snapshots(instance, event_type)['postchange'] - # If the object is being deleted, update any prior "update" event to "delete" + + # If the object is being deleted, convert any prior update event into a + # delete event and freeze the payload before the object (or related + # rows) become inaccessible. if event_type == OBJECT_DELETED: queue[key]['event_type'] = event_type + else: + # Keep the public `object` entry stable for compatibility. + queue[key].refresh_serialization_source(instance) else: queue[key] = EventContext( object_type=ObjectType.objects.get_for_model(instance), @@ -106,9 +152,11 @@ def enqueue_event(queue, instance, request, event_type): username=request.user.username, # DEPRECATED, will be removed in NetBox v4.7.0 request_id=request.id, # DEPRECATED, will be removed in NetBox v4.7.0 ) - # Force serialization of objects prior to them actually being deleted + + # For delete events, eagerly serialize the payload before the row is gone. + # This covers both first-time enqueues and coalesced update→delete promotions. if event_type == OBJECT_DELETED: - queue[key]['data'] = serialize_for_event(instance) + queue[key].freeze_data(instance) def process_event_rules(event_rules, object_type, event): @@ -133,9 +181,9 @@ def process_event_rules(event_rules, object_type, event): if not event_rule.eval_conditions(event['data']): continue - # Compile event data - event_data = event_rule.action_data or {} - event_data.update(event['data']) + # Merge rule-specific action_data with the event payload. + # Copy to avoid mutating the rule's stored action_data dict. + event_data = {**(event_rule.action_data or {}), **event['data']} # Webhooks if event_rule.action_type == EventRuleActionChoices.WEBHOOK: diff --git a/netbox/extras/tests/test_event_rules.py b/netbox/extras/tests/test_event_rules.py index b6abf4c85..ae3f802c3 100644 --- a/netbox/extras/tests/test_event_rules.py +++ b/netbox/extras/tests/test_event_rules.py @@ -1,8 +1,10 @@ import json import uuid +from unittest import skipIf from unittest.mock import Mock, patch import django_rq +from django.conf import settings from django.http import HttpResponse from django.test import RequestFactory from django.urls import reverse @@ -343,6 +345,7 @@ class EventRuleTest(APITestCase): self.assertEqual(job.kwargs['snapshots']['prechange']['name'], sites[i].name) self.assertEqual(job.kwargs['snapshots']['prechange']['tags'], ['Bar', 'Foo']) + @skipIf('netbox.tests.dummy_plugin' not in settings.PLUGINS, 'dummy_plugin not in settings.PLUGINS') def test_send_webhook(self): request_id = uuid.uuid4() @@ -426,6 +429,97 @@ class EventRuleTest(APITestCase): self.assertEqual(job.kwargs['object_type'], script_type) self.assertEqual(job.kwargs['username'], self.user.username) + def test_duplicate_enqueue_refreshes_lazy_payload(self): + """ + When the same object is enqueued more than once in a single request, + lazy serialization should use the most recently enqueued instance while + preserving the original event['object'] reference. + """ + request = RequestFactory().get(reverse('dcim:site_add')) + request.id = uuid.uuid4() + request.user = self.user + + site = Site.objects.create(name='Site 1', slug='site-1') + stale_site = Site.objects.get(pk=site.pk) + + queue = {} + enqueue_event(queue, stale_site, request, OBJECT_UPDATED) + + event = queue[f'dcim.site:{site.pk}'] + + # Data should not be materialized yet (lazy serialization) + self.assertNotIn('data', event.data) + + fresh_site = Site.objects.get(pk=site.pk) + fresh_site.description = 'foo' + fresh_site.save() + + enqueue_event(queue, fresh_site, request, OBJECT_UPDATED) + + # The original object reference should be preserved + self.assertIs(event['object'], stale_site) + + # But serialized data should reflect the fresher instance + self.assertEqual(event['data']['description'], 'foo') + self.assertEqual(event['snapshots']['postchange']['description'], 'foo') + + def test_duplicate_enqueue_invalidates_materialized_data(self): + """ + If event['data'] has already been materialized before a second enqueue + for the same object, the stale payload should be discarded and rebuilt + from the fresher instance on next access. + """ + request = RequestFactory().get(reverse('dcim:site_add')) + request.id = uuid.uuid4() + request.user = self.user + + site = Site.objects.create(name='Site 1', slug='site-1') + + queue = {} + enqueue_event(queue, site, request, OBJECT_UPDATED) + + event = queue[f'dcim.site:{site.pk}'] + + # Force early materialization + self.assertEqual(event['data']['description'], '') + + # Now update and re-enqueue + fresh_site = Site.objects.get(pk=site.pk) + fresh_site.description = 'updated' + fresh_site.save() + + enqueue_event(queue, fresh_site, request, OBJECT_UPDATED) + + # Stale data should have been invalidated; new access should reflect update + self.assertEqual(event['data']['description'], 'updated') + + def test_update_then_delete_enqueue_freezes_payload(self): + """ + When an update event is coalesced with a subsequent delete, the event + type should be promoted to OBJECT_DELETED and the payload should be + eagerly frozen (since the object will be inaccessible after deletion). + """ + request = RequestFactory().get(reverse('dcim:site_add')) + request.id = uuid.uuid4() + request.user = self.user + + site = Site.objects.create(name='Site 1', slug='site-1') + + queue = {} + enqueue_event(queue, site, request, OBJECT_UPDATED) + + event = queue[f'dcim.site:{site.pk}'] + + enqueue_event(queue, site, request, OBJECT_DELETED) + + # Event type should have been promoted + self.assertEqual(event['event_type'], OBJECT_DELETED) + + # Data should already be materialized (frozen), not lazy + self.assertIn('data', event.data) + self.assertEqual(event['data']['name'], 'Site 1') + self.assertIsNone(event['snapshots']['postchange']) + def test_duplicate_triggers(self): """ Test for erroneous duplicate event triggers resulting from saving an object multiple times From 49ba0dd4953460717b598a369e054afdfdb1c328 Mon Sep 17 00:00:00 2001 From: bctiemann Date: Thu, 2 Apr 2026 19:17:49 -0400 Subject: [PATCH 09/27] Fix filtering of object-type custom fields when "is empty" is selected (#21829) --- netbox/utilities/forms/widgets/modifiers.py | 17 +++-- netbox/utilities/templatetags/helpers.py | 29 ++++++++ .../utilities/tests/test_filter_modifiers.py | 74 ++++++++++++++++++- 3 files changed, 113 insertions(+), 7 deletions(-) diff --git a/netbox/utilities/forms/widgets/modifiers.py b/netbox/utilities/forms/widgets/modifiers.py index e289adc97..1fb19e1db 100644 --- a/netbox/utilities/forms/widgets/modifiers.py +++ b/netbox/utilities/forms/widgets/modifiers.py @@ -48,11 +48,13 @@ class FilterModifierWidget(forms.Widget): Just the value string for form validation. The modifier is reconstructed during rendering from the query parameter names. """ - # Special handling for empty - check if field__empty exists + # Special handling for empty modifier: return None so the underlying field does not + # attempt to validate 'true'/'false' as a field value (e.g. a model PK). The + # `__empty` query parameter is consumed directly by the filterset and by + # `applied_filters`, so no value from the field itself is needed here. empty_param = f"{name}__empty" if empty_param in data: - # Return the boolean value for empty lookup - return data.get(empty_param) + return None # Try exact field name first value = self.original_widget.value_from_datadict(data, files, name) @@ -113,8 +115,13 @@ class FilterModifierWidget(forms.Widget): # Build a minimal choice list with just the selected values choices = [] if pk_values: - selected_objects = original_choices.queryset.filter(pk__in=pk_values) - choices = [(obj.pk, str(obj)) for obj in selected_objects] + try: + selected_objects = original_choices.queryset.filter(pk__in=pk_values) + choices = [(obj.pk, str(obj)) for obj in selected_objects] + except (ValueError, TypeError): + # pk_values may contain non-PK strings (e.g. 'true'/'false' from the + # empty modifier); silently skip rendering selected choices in that case. + pass # Re-add the "None" option if it was selected via the null choice value if settings.FILTERS_NULL_CHOICE_VALUE in values: diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index fbe2d9d12..945e442de 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -491,6 +491,35 @@ def applied_filters(context, model, form, query_params): 'link_text': link_text, }) + # Handle empty modifier pills separately. `FilterModifierWidget.value_from_datadict()` + # returns None for fields with a `field__empty` query parameter so that the underlying + # form field does not attempt to validate 'true'/'false' as a real field value (which + # would raise a ValidationError for ModelChoiceField). Because the value is None, these + # fields never appear in `form.changed_data`, so we build their pills directly from the + # query parameters here. + for param_name, param_value in query_params.items(): + if not param_name.endswith('__empty'): + continue + field_name = param_name[:-len('__empty')] + if field_name not in form.fields or field_name == 'filter_id': + continue + + querydict = query_params.copy() + querydict.pop(param_name) + label = form.fields[field_name].label or field_name + + if param_value.lower() in ('true', '1'): + link_text = f'{label} {_("is empty")}' + else: + link_text = f'{label} {_("is not empty")}' + + applied_filters.append({ + 'name': param_name, + 'value': param_value, + 'link_url': f'?{querydict.urlencode()}', + 'link_text': link_text, + }) + save_link = None if user.has_perm('extras.add_savedfilter') and 'filter_id' not in context['request'].GET: object_type = ObjectType.objects.get_for_model(model).pk diff --git a/netbox/utilities/tests/test_filter_modifiers.py b/netbox/utilities/tests/test_filter_modifiers.py index 0bc6eb4c3..4bf2e88ab 100644 --- a/netbox/utilities/tests/test_filter_modifiers.py +++ b/netbox/utilities/tests/test_filter_modifiers.py @@ -6,8 +6,11 @@ from django.template import Context from django.test import RequestFactory, TestCase import dcim.filtersets # noqa: F401 - Import to register Device filterset -from dcim.forms.filtersets import DeviceFilterForm -from dcim.models import Device +from core.models import ObjectType +from dcim.forms.filtersets import DeviceFilterForm, SiteFilterForm +from dcim.models import Device, Manufacturer, Site +from extras.choices import CustomFieldTypeChoices +from extras.models import CustomField from netbox.filtersets import BaseFilterSet from tenancy.models import Tenant from users.models import User @@ -338,3 +341,70 @@ class EmptyLookupTest(TestCase): self.assertGreater(len(result['applied_filters']), 0) filter_pill = result['applied_filters'][0] self.assertIn('not empty', filter_pill['link_text'].lower()) + + +class ObjectCustomFieldEmptyLookupTest(TestCase): + """ + Regression test for https://github.com/netbox-community/netbox/issues/21535. + + Rendering a filter form with an object-type custom field and the __empty modifier + must not raise a ValueError or produce a form validation error. + Filter pills must still appear for the empty modifier. + """ + + @classmethod + def setUpTestData(cls): + cls.user = User.objects.create(username='test_user_obj_cf') + site_type = ObjectType.objects.get_for_model(Site) + cf = CustomField( + name='test_obj_cf', + type=CustomFieldTypeChoices.TYPE_OBJECT, + related_object_type=ObjectType.objects.get_for_model(Manufacturer), + ) + cf.save() + cf.object_types.set([site_type]) + + def _make_form_and_result(self, querystring): + query_params = QueryDict(querystring) + form = SiteFilterForm(query_params) + request = RequestFactory().get('/', query_params) + request.user = self.user + context = Context({'request': request}) + result = applied_filters(context, Site, form, query_params) + return form, result + + def test_render_form_with_empty_true_no_error(self): + """Rendering SiteFilterForm with cf__empty=true must not raise ValueError.""" + query_params = QueryDict('cf_test_obj_cf__empty=true') + form = SiteFilterForm(query_params) + try: + str(form['cf_test_obj_cf']) + except ValueError as e: + self.fail(f"Rendering object-type custom field with __empty=true raised ValueError: {e}") + + def test_render_form_with_empty_false_no_error(self): + """Rendering SiteFilterForm with cf__empty=false must not raise ValueError.""" + query_params = QueryDict('cf_test_obj_cf__empty=false') + form = SiteFilterForm(query_params) + try: + str(form['cf_test_obj_cf']) + except ValueError as e: + self.fail(f"Rendering object-type custom field with __empty=false raised ValueError: {e}") + + def test_no_validation_error_on_empty_true(self): + """The filter form must not have a validation error for the field when __empty=true.""" + form, _ = self._make_form_and_result('cf_test_obj_cf__empty=true') + form.is_valid() + self.assertNotIn('cf_test_obj_cf', form.errors) + + def test_filter_pill_appears_for_empty_true(self): + """A filter pill showing 'is empty' must be generated for an object-type CF with __empty=true.""" + _, result = self._make_form_and_result('cf_test_obj_cf__empty=true') + self.assertGreater(len(result['applied_filters']), 0) + self.assertIn('empty', result['applied_filters'][0]['link_text'].lower()) + + def test_filter_pill_appears_for_empty_false(self): + """A filter pill showing 'is not empty' must be generated for an object-type CF with __empty=false.""" + _, result = self._make_form_and_result('cf_test_obj_cf__empty=false') + self.assertGreater(len(result['applied_filters']), 0) + self.assertIn('not empty', result['applied_filters'][0]['link_text'].lower()) From f058ee3d605a56c95b2834886f05433406cbbe1a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 05:31:13 +0000 Subject: [PATCH 10/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 927 ++++++++++--------- 1 file changed, 471 insertions(+), 456 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 032569739..4f23adf76 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-02 05:30+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,9 +41,9 @@ msgstr "" #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1959 -#: netbox/dcim/choices.py:2017 netbox/dcim/choices.py:2084 -#: netbox/dcim/choices.py:2106 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -57,8 +57,8 @@ msgstr "" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2016 netbox/dcim/choices.py:2083 -#: netbox/dcim/choices.py:2105 netbox/extras/tables/tables.py:643 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 #: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 #: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 #: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 @@ -69,8 +69,8 @@ msgid "Active" msgstr "" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2015 -#: netbox/dcim/choices.py:2085 netbox/dcim/choices.py:2104 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "" @@ -83,7 +83,7 @@ msgstr "" msgid "Decommissioned" msgstr "" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2028 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -195,13 +195,13 @@ msgstr "" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -457,7 +457,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:553 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 #: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "" @@ -495,15 +495,15 @@ msgstr "" #: netbox/dcim/forms/object_import.py:85 netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:579 netbox/extras/ui/panels.py:133 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 #: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -549,7 +549,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -565,12 +565,12 @@ msgstr "" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -628,12 +628,12 @@ msgstr "" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -718,10 +718,10 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -746,8 +746,8 @@ msgstr "" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -781,8 +781,8 @@ msgstr "" #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "" @@ -885,10 +885,10 @@ msgstr "" #: netbox/templates/wireless/panels/wirelesslink_interface.html:20 #: netbox/tenancy/forms/bulk_edit.py:136 netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -976,7 +976,7 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -989,7 +989,7 @@ msgstr "" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1028,8 +1028,8 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1083,12 +1083,12 @@ msgstr "" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1113,9 +1113,9 @@ msgstr "" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1139,9 +1139,9 @@ msgstr "" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "" @@ -1158,9 +1158,9 @@ msgstr "" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "" @@ -1168,7 +1168,7 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:87 netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "" @@ -1205,10 +1205,10 @@ msgstr "" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1249,10 +1249,10 @@ msgstr "" #: netbox/dcim/models/device_component_templates.py:328 #: netbox/dcim/models/device_component_templates.py:563 #: netbox/dcim/models/device_component_templates.py:636 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1279,8 +1279,8 @@ msgstr "" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 @@ -1544,10 +1544,10 @@ msgstr "" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:549 netbox/extras/tables/tables.py:597 -#: netbox/extras/tables/tables.py:639 netbox/extras/tables/tables.py:669 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1574,8 +1574,8 @@ msgstr "" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1658,7 +1658,7 @@ msgstr "" msgid "Terminations" msgstr "" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1692,7 +1692,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1702,10 +1702,10 @@ msgstr "" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1778,7 +1778,7 @@ msgstr "" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2108 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "" @@ -1838,8 +1838,8 @@ msgid "30 days" msgstr "" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:743 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 @@ -1958,7 +1958,7 @@ msgid "User name" msgstr "" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2066 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -1967,13 +1967,13 @@ msgstr "" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:521 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "" @@ -2000,8 +2000,8 @@ msgstr "" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:601 netbox/extras/tables/tables.py:631 -#: netbox/extras/tables/tables.py:673 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" @@ -2026,8 +2026,8 @@ msgstr "" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:748 netbox/tenancy/tables/contacts.py:84 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 #: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "" @@ -2073,7 +2073,7 @@ msgstr "" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2082,8 +2082,8 @@ msgid "User" msgstr "" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:786 -#: netbox/extras/tables/tables.py:841 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "" @@ -2133,7 +2133,7 @@ msgstr "" msgid "Rack Elevations" msgstr "" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1937 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2283,13 +2283,13 @@ msgstr "" #: netbox/dcim/models/device_component_templates.py:412 #: netbox/dcim/models/device_component_templates.py:558 #: netbox/dcim/models/device_component_templates.py:631 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 netbox/dcim/models/power.py:101 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 netbox/dcim/models/power.py:101 #: netbox/extras/models/customfields.py:102 netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 msgid "type" @@ -2297,13 +2297,13 @@ msgstr "" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:851 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "" #: netbox/core/models/data.py:60 #: netbox/dcim/models/device_component_templates.py:417 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2363,7 +2363,7 @@ msgstr "" msgid "last updated" msgstr "" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "" @@ -2372,6 +2372,7 @@ msgid "File path relative to the data source's root" msgstr "" #: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "" @@ -2520,10 +2521,10 @@ msgstr "" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:513 netbox/extras/tables/tables.py:584 -#: netbox/extras/tables/tables.py:753 netbox/extras/tables/tables.py:794 -#: netbox/extras/tables/tables.py:848 netbox/extras/ui/panels.py:383 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 #: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" @@ -2534,7 +2535,7 @@ msgid "Request ID" msgstr "" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:797 netbox/extras/tables/tables.py:854 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "" @@ -2563,7 +2564,7 @@ msgstr "" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:574 netbox/extras/tables/tables.py:819 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2579,8 +2580,8 @@ msgstr "" msgid "Log Entries" msgstr "" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:791 -#: netbox/extras/tables/tables.py:845 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "" @@ -2700,8 +2701,8 @@ msgid "Backend" msgstr "" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:605 netbox/extras/tables/tables.py:635 -#: netbox/extras/tables/tables.py:677 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 #: netbox/templates/extras/object_render_config.html:23 @@ -2865,8 +2866,8 @@ msgid "Staging" msgstr "" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1960 -#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "" @@ -2932,7 +2933,7 @@ msgstr "" msgid "Millimeters" msgstr "" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1982 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "" @@ -2974,9 +2975,9 @@ msgstr "" #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3004,7 +3005,7 @@ msgid "Rear" msgstr "" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2107 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "" @@ -3099,9 +3100,9 @@ msgstr "" #: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "" @@ -3242,188 +3243,192 @@ msgstr "" msgid "Fiber Optic" msgstr "" -#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1943 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "" -#: netbox/dcim/choices.py:1789 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "" -#: netbox/dcim/choices.py:1790 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "" -#: netbox/dcim/choices.py:1791 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "" -#: netbox/dcim/choices.py:1793 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "" -#: netbox/dcim/choices.py:1808 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "" -#: netbox/dcim/choices.py:1809 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "" -#: netbox/dcim/choices.py:1810 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "" -#: netbox/dcim/choices.py:1812 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "" -#: netbox/dcim/choices.py:1816 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "" -#: netbox/dcim/choices.py:1818 -msgid "1C4P:4C1P breakout" -msgstr "" - #: netbox/dcim/choices.py:1819 -msgid "1C6P:6C1P breakout" +msgid "1C2P:2C1P breakout" msgstr "" #: netbox/dcim/choices.py:1820 +msgid "1C4P:4C1P breakout" +msgstr "" + +#: netbox/dcim/choices.py:1821 +msgid "1C6P:6C1P breakout" +msgstr "" + +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "" -#: netbox/dcim/choices.py:1878 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "" -#: netbox/dcim/choices.py:1892 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "" -#: netbox/dcim/choices.py:1899 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "" -#: netbox/dcim/choices.py:1914 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "" -#: netbox/dcim/choices.py:1925 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "" -#: netbox/dcim/choices.py:1933 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "" -#: netbox/dcim/choices.py:1958 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "" -#: netbox/dcim/choices.py:1977 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "" -#: netbox/dcim/choices.py:1978 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "" -#: netbox/dcim/choices.py:1979 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "" -#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "" -#: netbox/dcim/choices.py:1981 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "" -#: netbox/dcim/choices.py:2029 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "" -#: netbox/dcim/choices.py:2050 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "" -#: netbox/dcim/choices.py:2051 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "" -#: netbox/dcim/choices.py:2067 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 #: netbox/templates/extras/customfield/attrs/search_weight.html:1 #: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "" -#: netbox/dcim/choices.py:2068 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "" @@ -3709,15 +3714,15 @@ msgstr "" #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 #: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "" @@ -3855,7 +3860,7 @@ msgid "Is primary" msgstr "" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "" @@ -3872,7 +3877,7 @@ msgstr "" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 +#: netbox/dcim/models/device_components.py:899 #: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 @@ -3890,12 +3895,12 @@ msgstr "" #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "" @@ -3915,7 +3920,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -3929,11 +3934,11 @@ msgstr "" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "" @@ -3980,7 +3985,7 @@ msgstr "" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "" @@ -4108,7 +4113,7 @@ msgstr "" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4263,7 +4268,7 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "" @@ -4315,7 +4320,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 netbox/extras/forms/model_forms.py:626 -#: netbox/extras/tables/tables.py:628 netbox/templates/account/base.html:7 +#: netbox/extras/tables/tables.py:629 netbox/templates/account/base.html:7 #: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 #: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 msgid "Profile" @@ -4327,7 +4332,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "" @@ -4350,8 +4355,8 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "" @@ -4373,10 +4378,10 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "" @@ -4388,13 +4393,13 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4402,7 +4407,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "" @@ -4477,7 +4482,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1018 #: netbox/dcim/models/device_component_templates.py:267 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "" @@ -4487,7 +4492,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1024 #: netbox/dcim/models/device_component_templates.py:274 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "" @@ -4510,7 +4515,7 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 #: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:489 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "" @@ -4518,7 +4523,7 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 #: netbox/dcim/models/device_component_templates.py:444 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:490 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "" @@ -4552,7 +4557,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4565,25 +4570,25 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "" @@ -4598,7 +4603,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "" @@ -4619,15 +4624,15 @@ msgstr "" #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "" @@ -4638,16 +4643,16 @@ msgid "PoE" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "" @@ -4925,13 +4930,13 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "" @@ -5072,13 +5077,13 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "" @@ -5231,8 +5236,8 @@ msgstr "" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "" -#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "" @@ -5336,7 +5341,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "" @@ -5359,7 +5364,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:756 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "" @@ -5368,12 +5373,12 @@ msgid "Mgmt only" msgstr "" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:515 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "" #: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "" @@ -5439,9 +5444,9 @@ msgstr "" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 netbox/wireless/forms/filtersets.py:42 #: netbox/wireless/forms/model_forms.py:55 @@ -5695,11 +5700,11 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5784,99 +5789,99 @@ msgstr "" msgid "cables" msgstr "" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "" -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "" -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " "connected." msgstr "" -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " "{cable_pk}" msgstr "" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "" @@ -5925,12 +5930,12 @@ msgid "console server port templates" msgstr "" #: netbox/dcim/models/device_component_templates.py:263 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "" #: netbox/dcim/models/device_component_templates.py:270 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "" @@ -5943,18 +5948,18 @@ msgid "power port templates" msgstr "" #: netbox/dcim/models/device_component_templates.py:301 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" #: netbox/dcim/models/device_component_templates.py:339 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "" #: netbox/dcim/models/device_component_templates.py:344 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "" @@ -5977,17 +5982,17 @@ msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" #: netbox/dcim/models/device_component_templates.py:422 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "" #: netbox/dcim/models/device_component_templates.py:430 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "" #: netbox/dcim/models/device_component_templates.py:451 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "" @@ -6016,8 +6021,8 @@ msgstr "" #: netbox/dcim/models/device_component_templates.py:567 #: netbox/dcim/models/device_component_templates.py:640 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "" @@ -6052,12 +6057,12 @@ msgid "" msgstr "" #: netbox/dcim/models/device_component_templates.py:695 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "" #: netbox/dcim/models/device_component_templates.py:698 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" @@ -6085,12 +6090,12 @@ msgid "" msgstr "" #: netbox/dcim/models/device_component_templates.py:807 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "" #: netbox/dcim/models/device_component_templates.py:809 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "" @@ -6151,82 +6156,82 @@ msgstr "" msgid "{class_name} models must declare a parent_object property" msgstr "" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "" -#: netbox/dcim/models/device_components.py:661 +#: netbox/dcim/models/device_components.py:693 #: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 @@ -6235,295 +6240,295 @@ msgstr "" msgid "Q-in-Q SVLAN" msgstr "" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "" -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface ({interface})." msgstr "" -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "" -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "" -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " "({device})" msgstr "" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "" -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " "({device})." msgstr "" -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "" -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "" -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "" -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "" -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of " "virtual chassis {virtual_chassis}." msgstr "" -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "" -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "" -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent device, or it must be global." msgstr "" -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " "({count})" msgstr "" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports " "({count})" msgstr "" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "" -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "" -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "" -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "" -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" @@ -7364,10 +7369,10 @@ msgstr "" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:721 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7482,7 +7487,7 @@ msgstr "" msgid "Device Site" msgstr "" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "" @@ -7631,7 +7636,7 @@ msgid "Module Types" msgstr "" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:716 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "" @@ -7732,7 +7737,7 @@ msgstr "" msgid "Module Bays" msgstr "" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "" @@ -7810,7 +7815,7 @@ msgstr "" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "" @@ -7820,7 +7825,7 @@ msgid "Maximum weight" msgstr "" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "" @@ -7928,7 +7933,7 @@ msgstr "" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 #: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "" @@ -7937,7 +7942,7 @@ msgstr "" msgid "Render Config" msgstr "" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:726 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8009,12 +8014,16 @@ msgstr "" msgid "Changing the type of custom fields is not supported." msgstr "" -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "" + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "" -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "" @@ -8331,12 +8340,12 @@ msgstr "" msgid "Show your personal bookmarks" msgstr "" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "" @@ -8356,7 +8365,7 @@ msgid "Group (name)" msgstr "" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "" @@ -8636,7 +8645,7 @@ msgstr "" msgid "The classification of entry" msgstr "" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:759 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 #: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 @@ -9807,7 +9816,7 @@ msgstr "" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:518 netbox/extras/tables/tables.py:556 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 #: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 netbox/users/tables.py:110 msgid "Object Types" @@ -9851,9 +9860,9 @@ msgstr "" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:530 netbox/extras/tables/tables.py:560 -#: netbox/extras/tables/tables.py:651 netbox/extras/tables/tables.py:703 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -9873,24 +9882,24 @@ msgstr "" msgid "New Window" msgstr "" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:689 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:692 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:695 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:698 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:610 -#: netbox/extras/tables/tables.py:647 netbox/extras/tables/tables.py:682 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "" @@ -9905,7 +9914,9 @@ msgstr "" #: netbox/extras/tables/tables.py:292 #: netbox/templates/extras/panels/imageattachment_file.html:18 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "" @@ -9913,36 +9924,36 @@ msgstr "" msgid "Table Name" msgstr "" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" msgstr "" -#: netbox/extras/tables/tables.py:524 netbox/extras/ui/panels.py:370 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "" -#: netbox/extras/tables/tables.py:685 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "" -#: netbox/extras/tables/tables.py:711 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "" -#: netbox/extras/tables/tables.py:764 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "" -#: netbox/extras/tables/tables.py:783 netbox/extras/tables/tables.py:835 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "" -#: netbox/extras/tables/tables.py:838 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "" @@ -12651,67 +12662,67 @@ msgstr "" msgid "Cannot delete stores from registry" msgstr "" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "" @@ -14899,6 +14910,7 @@ msgstr "" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "" @@ -14908,8 +14920,8 @@ msgid "Disk Space" msgstr "" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "" @@ -15905,50 +15917,50 @@ msgid "" "the object's change log for details." msgstr "" -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "" -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " "({begin})." msgstr "" -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "" -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "" @@ -15963,7 +15975,7 @@ msgstr "" msgid "Missing required value for static query param: '{static_params}'" msgstr "" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "" @@ -16154,29 +16166,41 @@ msgstr "" msgid "Cluster (ID)" msgstr "" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" msgstr "" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" msgstr "" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" msgstr "" #: netbox/virtualization/forms/bulk_import.py:45 @@ -16199,38 +16223,33 @@ msgstr "" msgid "Assigned device within cluster" msgstr "" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " "cluster ({cluster_scope})" msgstr "" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "" @@ -16274,11 +16293,11 @@ msgid "start on boot" msgstr "" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" +msgid "memory" msgstr "" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" +msgid "disk" msgstr "" #: netbox/virtualization/models/virtualmachines.py:173 @@ -16350,10 +16369,6 @@ msgid "" "interface's parent virtual machine, or it must be global." msgstr "" -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "" From e07a5966aeb062a804b531c4c70e4dae6a65a384 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Fri, 3 Apr 2026 15:36:42 +0200 Subject: [PATCH 11/27] feat(dcim): Support decimal Gbps/Tbps output in humanize_speed Update the humanize_speed template filter to always use the largest appropriate unit, even when the result is not a whole number. Previously, values like 2500000 Kbps rendered as "2500 Mbps" instead of "2.5 Gbps", and 1600000000 Kbps rendered as "1600 Gbps" instead of "1.6 Tbps". Fixes #21795 --- netbox/utilities/templatetags/helpers.py | 52 +++++++++---- netbox/utilities/tests/test_templatetags.py | 86 ++++++++++++++++++++- 2 files changed, 124 insertions(+), 14 deletions(-) diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index 945e442de..4a29792f7 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -186,26 +186,52 @@ def action_url(parser, token): return ActionURLNode(model, action, kwargs, asvar) +def _format_speed(speed, divisor, unit): + """ + Format a speed value with a given divisor and unit. + + Handles decimal values and strips trailing zeros for clean output. + """ + whole, remainder = divmod(speed, divisor) + if remainder == 0: + return f'{whole} {unit}' + + # Divisors are powers of 10, so len(str(divisor)) - 1 matches the decimal precision. + precision = len(str(divisor)) - 1 + fraction = f'{remainder:0{precision}d}'.rstrip('0') + return f'{whole}.{fraction} {unit}' + + @register.filter() def humanize_speed(speed): """ - Humanize speeds given in Kbps. Examples: + Humanize speeds given in Kbps, always using the largest appropriate unit. - 1544 => "1.544 Mbps" - 100000 => "100 Mbps" - 10000000 => "10 Gbps" + Decimal values are displayed when the result is not a whole number; + trailing zeros after the decimal point are stripped for clean output. + + Examples: + + 1_544 => "1.544 Mbps" + 100_000 => "100 Mbps" + 1_000_000 => "1 Gbps" + 2_500_000 => "2.5 Gbps" + 10_000_000 => "10 Gbps" + 800_000_000 => "800 Gbps" + 1_600_000_000 => "1.6 Tbps" """ if not speed: return '' - if speed >= 1000000000 and speed % 1000000000 == 0: - return '{} Tbps'.format(int(speed / 1000000000)) - if speed >= 1000000 and speed % 1000000 == 0: - return '{} Gbps'.format(int(speed / 1000000)) - if speed >= 1000 and speed % 1000 == 0: - return '{} Mbps'.format(int(speed / 1000)) - if speed >= 1000: - return '{} Mbps'.format(float(speed) / 1000) - return '{} Kbps'.format(speed) + + speed = int(speed) + + if speed >= 1_000_000_000: + return _format_speed(speed, 1_000_000_000, 'Tbps') + if speed >= 1_000_000: + return _format_speed(speed, 1_000_000, 'Gbps') + if speed >= 1_000: + return _format_speed(speed, 1_000, 'Mbps') + return f'{speed} Kbps' def _humanize_capacity(value, divisor=1000): diff --git a/netbox/utilities/tests/test_templatetags.py b/netbox/utilities/tests/test_templatetags.py index 570e2595f..5f16649d3 100644 --- a/netbox/utilities/tests/test_templatetags.py +++ b/netbox/utilities/tests/test_templatetags.py @@ -3,7 +3,7 @@ from unittest.mock import patch from django.test import TestCase, override_settings from utilities.templatetags.builtins.tags import static_with_params -from utilities.templatetags.helpers import _humanize_capacity +from utilities.templatetags.helpers import _humanize_capacity, humanize_speed class StaticWithParamsTest(TestCase): @@ -90,3 +90,87 @@ class HumanizeCapacityTest(TestCase): def test_default_divisor_is_1000(self): self.assertEqual(_humanize_capacity(2000), '2.00 GB') + + +class HumanizeSpeedTest(TestCase): + """ + Test the humanize_speed filter for correct unit selection and decimal formatting. + """ + + # Falsy / empty inputs + + def test_none(self): + self.assertEqual(humanize_speed(None), '') + + def test_zero(self): + self.assertEqual(humanize_speed(0), '') + + def test_empty_string(self): + self.assertEqual(humanize_speed(''), '') + + # Kbps (below 1000) + + def test_kbps(self): + self.assertEqual(humanize_speed(100), '100 Kbps') + + def test_kbps_low(self): + self.assertEqual(humanize_speed(1), '1 Kbps') + + # Mbps (1,000 – 999,999) + + def test_mbps_whole(self): + self.assertEqual(humanize_speed(100_000), '100 Mbps') + + def test_mbps_decimal(self): + self.assertEqual(humanize_speed(1_544), '1.544 Mbps') + + def test_mbps_10(self): + self.assertEqual(humanize_speed(10_000), '10 Mbps') + + # Gbps (1,000,000 – 999,999,999) + + def test_gbps_whole(self): + self.assertEqual(humanize_speed(1_000_000), '1 Gbps') + + def test_gbps_decimal(self): + self.assertEqual(humanize_speed(2_500_000), '2.5 Gbps') + + def test_gbps_10(self): + self.assertEqual(humanize_speed(10_000_000), '10 Gbps') + + def test_gbps_25(self): + self.assertEqual(humanize_speed(25_000_000), '25 Gbps') + + def test_gbps_40(self): + self.assertEqual(humanize_speed(40_000_000), '40 Gbps') + + def test_gbps_100(self): + self.assertEqual(humanize_speed(100_000_000), '100 Gbps') + + def test_gbps_400(self): + self.assertEqual(humanize_speed(400_000_000), '400 Gbps') + + def test_gbps_800(self): + self.assertEqual(humanize_speed(800_000_000), '800 Gbps') + + # Tbps (1,000,000,000+) + + def test_tbps_whole(self): + self.assertEqual(humanize_speed(1_000_000_000), '1 Tbps') + + def test_tbps_decimal(self): + self.assertEqual(humanize_speed(1_600_000_000), '1.6 Tbps') + + # Edge cases + + def test_string_input(self): + """Ensure string values are cast to int correctly.""" + self.assertEqual(humanize_speed('2500000'), '2.5 Gbps') + + def test_non_round_remainder_preserved(self): + """Ensure fractional parts with interior zeros are preserved.""" + self.assertEqual(humanize_speed(1_001_000), '1.001 Gbps') + + def test_trailing_zeros_stripped(self): + """Ensure trailing fractional zeros are stripped (5.500 → 5.5).""" + self.assertEqual(humanize_speed(5_500_000), '5.5 Gbps') From fecd4e2f971701904f4fa7b0ec35e1e73650358b Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 3 Apr 2026 11:55:47 -0400 Subject: [PATCH 12/27] Closes #21839: Document the RQ configuration parameter --- docs/configuration/miscellaneous.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/configuration/miscellaneous.md b/docs/configuration/miscellaneous.md index 4ad3ba6ac..2aa429aa5 100644 --- a/docs/configuration/miscellaneous.md +++ b/docs/configuration/miscellaneous.md @@ -220,6 +220,14 @@ This parameter defines the URL of the repository that will be checked for new Ne --- +## RQ + +Default: `{}` (Empty) + +This is a wrapper for passing global configuration parameters to [Django RQ](https://github.com/rq/django-rq) to customize its behavior. It is employed within NetBox primarily to alter conditions during testing. + +--- + ## RQ_DEFAULT_TIMEOUT Default: `300` From d0651f6474f10e889cacb6fa39f2dce034a8fa3a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 3 Apr 2026 12:24:24 -0400 Subject: [PATCH 13/27] Release v4.5.7 (#21838) --- .../ISSUE_TEMPLATE/01-feature_request.yaml | 2 +- .github/ISSUE_TEMPLATE/02-bug_report.yaml | 2 +- .github/ISSUE_TEMPLATE/03-performance.yaml | 2 +- base_requirements.txt | 3 +- contrib/openapi.json | 174 +- docs/release-notes/version-4.5.md | 26 + netbox/release.yaml | 4 +- netbox/translations/cs/LC_MESSAGES/django.mo | Bin 262422 -> 261872 bytes netbox/translations/cs/LC_MESSAGES/django.po | 1894 ++++++++-------- netbox/translations/da/LC_MESSAGES/django.mo | Bin 254257 -> 253757 bytes netbox/translations/da/LC_MESSAGES/django.po | 1896 ++++++++-------- netbox/translations/de/LC_MESSAGES/django.mo | Bin 267669 -> 267184 bytes netbox/translations/de/LC_MESSAGES/django.po | 1900 ++++++++-------- netbox/translations/es/LC_MESSAGES/django.mo | Bin 269733 -> 269197 bytes netbox/translations/es/LC_MESSAGES/django.po | 1898 ++++++++-------- netbox/translations/fr/LC_MESSAGES/django.mo | Bin 271872 -> 271328 bytes netbox/translations/fr/LC_MESSAGES/django.po | 1919 ++++++++--------- netbox/translations/it/LC_MESSAGES/django.mo | Bin 267286 -> 266754 bytes netbox/translations/it/LC_MESSAGES/django.po | 1897 ++++++++-------- netbox/translations/ja/LC_MESSAGES/django.mo | Bin 288039 -> 287526 bytes netbox/translations/ja/LC_MESSAGES/django.po | 1892 ++++++++-------- netbox/translations/lv/LC_MESSAGES/django.mo | Bin 261752 -> 261240 bytes netbox/translations/lv/LC_MESSAGES/django.po | 1896 ++++++++-------- netbox/translations/nl/LC_MESSAGES/django.mo | Bin 262943 -> 262459 bytes netbox/translations/nl/LC_MESSAGES/django.po | 1898 ++++++++-------- netbox/translations/pl/LC_MESSAGES/django.mo | Bin 265543 -> 265001 bytes netbox/translations/pl/LC_MESSAGES/django.po | 1896 ++++++++-------- netbox/translations/pt/LC_MESSAGES/django.mo | Bin 265260 -> 264743 bytes netbox/translations/pt/LC_MESSAGES/django.po | 1898 ++++++++-------- netbox/translations/ru/LC_MESSAGES/django.mo | Bin 341188 -> 340596 bytes netbox/translations/ru/LC_MESSAGES/django.po | 1896 ++++++++-------- netbox/translations/tr/LC_MESSAGES/django.mo | Bin 258627 -> 258116 bytes netbox/translations/tr/LC_MESSAGES/django.po | 1894 ++++++++-------- netbox/translations/uk/LC_MESSAGES/django.mo | Bin 340048 -> 339352 bytes netbox/translations/uk/LC_MESSAGES/django.po | 1894 ++++++++-------- netbox/translations/zh/LC_MESSAGES/django.mo | Bin 239720 -> 239236 bytes netbox/translations/zh/LC_MESSAGES/django.po | 1891 ++++++++-------- pyproject.toml | 2 +- requirements.txt | 8 +- 39 files changed, 13574 insertions(+), 15108 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml index f66b88a47..b31d6d31b 100644 --- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml @@ -15,7 +15,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.5.6 + placeholder: v4.5.7 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml index 445893e0c..4581cef4a 100644 --- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml @@ -27,7 +27,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.5.6 + placeholder: v4.5.7 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/03-performance.yaml b/.github/ISSUE_TEMPLATE/03-performance.yaml index fcea8cb08..ab59898e2 100644 --- a/.github/ISSUE_TEMPLATE/03-performance.yaml +++ b/.github/ISSUE_TEMPLATE/03-performance.yaml @@ -8,7 +8,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.5.6 + placeholder: v4.5.7 validations: required: true - type: dropdown diff --git a/base_requirements.txt b/base_requirements.txt index 6489c3ab4..5c0fe3a75 100644 --- a/base_requirements.txt +++ b/base_requirements.txt @@ -47,8 +47,7 @@ django-rich # Django integration for RQ (Reqis queuing) # https://github.com/rq/django-rq/blob/master/CHANGELOG.md -# See https://github.com/netbox-community/netbox/issues/21696 -django-rq<4.0 +django-rq # Provides a variety of storage backends # https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst diff --git a/contrib/openapi.json b/contrib/openapi.json index e7f4819b6..edd3dee35 100644 --- a/contrib/openapi.json +++ b/contrib/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "NetBox REST API", - "version": "4.5.6", + "version": "4.5.7", "license": { "name": "Apache v2 License" } @@ -25468,7 +25468,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25488,7 +25488,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25501,7 +25501,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25514,7 +25514,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25527,7 +25527,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25540,7 +25540,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25553,7 +25553,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25566,7 +25566,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25579,7 +25579,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25592,7 +25592,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25605,7 +25605,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -25618,7 +25618,7 @@ "type": "array", "items": { "type": "string", - "x-spec-enum-id": "5e0f85310f0184ea" + "x-spec-enum-id": "f566e6df6572f5d0" } }, "explode": true, @@ -138591,6 +138591,50 @@ } } }, + "/api/extras/scripts/upload/": { + "post": { + "operationId": "extras_scripts_upload_create", + "description": "Post a list of script module objects.", + "tags": [ + "extras" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScriptModuleRequest" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ScriptModuleRequest" + } + } + }, + "required": true + }, + "security": [ + { + "cookieAuth": [] + }, + { + "tokenAuth": [] + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScriptModule" + } + } + }, + "description": "" + } + } + } + }, "/api/extras/subscriptions/": { "get": { "operationId": "extras_subscriptions_list", @@ -228046,13 +228090,14 @@ "trunk-4c6p", "trunk-4c8p", "trunk-8c4p", + "breakout-1c2p-2c1p", "breakout-1c4p-4c1p", "breakout-1c6p-6c1p", "breakout-2c4p-8c1p-shuffle" ], "type": "string", - "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", - "x-spec-enum-id": "5e0f85310f0184ea" + "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c2p-2c1p` - 1C2P:2C1P breakout\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", + "x-spec-enum-id": "f566e6df6572f5d0" }, "label": { "type": "string", @@ -228078,6 +228123,7 @@ "4C6P trunk", "4C8P trunk", "8C4P trunk", + "1C2P:2C1P breakout", "1C4P:4C1P breakout", "1C6P:6C1P breakout", "2C4P:8C1P breakout (shuffle)" @@ -228282,13 +228328,14 @@ "trunk-4c6p", "trunk-4c8p", "trunk-8c4p", + "breakout-1c2p-2c1p", "breakout-1c4p-4c1p", "breakout-1c6p-6c1p", "breakout-2c4p-8c1p-shuffle" ], "type": "string", - "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", - "x-spec-enum-id": "5e0f85310f0184ea" + "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c2p-2c1p` - 1C2P:2C1P breakout\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", + "x-spec-enum-id": "f566e6df6572f5d0" }, "tenant": { "oneOf": [ @@ -254488,8 +254535,7 @@ "size": { "type": "integer", "maximum": 2147483647, - "minimum": 0, - "title": "Size (MB)" + "minimum": 0 }, "owner": { "oneOf": [ @@ -254774,14 +254820,15 @@ "trunk-4c6p", "trunk-4c8p", "trunk-8c4p", + "breakout-1c2p-2c1p", "breakout-1c4p-4c1p", "breakout-1c6p-6c1p", "breakout-2c4p-8c1p-shuffle", "" ], "type": "string", - "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", - "x-spec-enum-id": "5e0f85310f0184ea" + "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c2p-2c1p` - 1C2P:2C1P breakout\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", + "x-spec-enum-id": "f566e6df6572f5d0" }, "tenant": { "oneOf": [ @@ -262819,15 +262866,13 @@ "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Memory (MB)" + "nullable": true }, "disk": { "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Disk (MB)" + "nullable": true }, "description": { "type": "string", @@ -270340,6 +270385,56 @@ "data" ] }, + "ScriptModule": { + "type": "object", + "description": "Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during\nvalidation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)", + "properties": { + "id": { + "type": "integer", + "readOnly": true + }, + "display": { + "type": "string", + "readOnly": true + }, + "file_path": { + "type": "string", + "readOnly": true + }, + "created": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_updated": { + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + } + }, + "required": [ + "created", + "display", + "file_path", + "id", + "last_updated" + ] + }, + "ScriptModuleRequest": { + "type": "object", + "description": "Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during\nvalidation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)", + "properties": { + "file": { + "type": "string", + "format": "binary", + "writeOnly": true + } + }, + "required": [ + "file" + ] + }, "Service": { "type": "object", "description": "Base serializer class for models inheriting from PrimaryModel.", @@ -275384,8 +275479,7 @@ "size": { "type": "integer", "maximum": 2147483647, - "minimum": 0, - "title": "Size (MB)" + "minimum": 0 }, "owner": { "allOf": [ @@ -275456,8 +275550,7 @@ "size": { "type": "integer", "maximum": 2147483647, - "minimum": 0, - "title": "Size (MB)" + "minimum": 0 }, "owner": { "oneOf": [ @@ -275662,15 +275755,13 @@ "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Memory (MB)" + "nullable": true }, "disk": { "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Disk (MB)" + "nullable": true }, "description": { "type": "string", @@ -275926,15 +276017,13 @@ "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Memory (MB)" + "nullable": true }, "disk": { "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Disk (MB)" + "nullable": true }, "description": { "type": "string", @@ -277220,14 +277309,15 @@ "trunk-4c6p", "trunk-4c8p", "trunk-8c4p", + "breakout-1c2p-2c1p", "breakout-1c4p-4c1p", "breakout-1c6p-6c1p", "breakout-2c4p-8c1p-shuffle", "" ], "type": "string", - "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", - "x-spec-enum-id": "5e0f85310f0184ea" + "description": "* `single-1c1p` - 1C1P\n* `single-1c2p` - 1C2P\n* `single-1c4p` - 1C4P\n* `single-1c6p` - 1C6P\n* `single-1c8p` - 1C8P\n* `single-1c12p` - 1C12P\n* `single-1c16p` - 1C16P\n* `trunk-2c1p` - 2C1P trunk\n* `trunk-2c2p` - 2C2P trunk\n* `trunk-2c4p` - 2C4P trunk\n* `trunk-2c4p-shuffle` - 2C4P trunk (shuffle)\n* `trunk-2c6p` - 2C6P trunk\n* `trunk-2c8p` - 2C8P trunk\n* `trunk-2c12p` - 2C12P trunk\n* `trunk-4c1p` - 4C1P trunk\n* `trunk-4c2p` - 4C2P trunk\n* `trunk-4c4p` - 4C4P trunk\n* `trunk-4c4p-shuffle` - 4C4P trunk (shuffle)\n* `trunk-4c6p` - 4C6P trunk\n* `trunk-4c8p` - 4C8P trunk\n* `trunk-8c4p` - 8C4P trunk\n* `breakout-1c2p-2c1p` - 1C2P:2C1P breakout\n* `breakout-1c4p-4c1p` - 1C4P:4C1P breakout\n* `breakout-1c6p-6c1p` - 1C6P:6C1P breakout\n* `breakout-2c4p-8c1p-shuffle` - 2C4P:8C1P breakout (shuffle)", + "x-spec-enum-id": "f566e6df6572f5d0" }, "tenant": { "oneOf": [ @@ -285520,15 +285610,13 @@ "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Memory (MB)" + "nullable": true }, "disk": { "type": "integer", "maximum": 2147483647, "minimum": 0, - "nullable": true, - "title": "Disk (MB)" + "nullable": true }, "description": { "type": "string", diff --git a/docs/release-notes/version-4.5.md b/docs/release-notes/version-4.5.md index 2557d0806..c662053be 100644 --- a/docs/release-notes/version-4.5.md +++ b/docs/release-notes/version-4.5.md @@ -1,5 +1,31 @@ # NetBox v4.5 +## v4.5.7 (2026-04-03) + +### Enhancements + +* [#21095](https://github.com/netbox-community/netbox/issues/21095) - Adopt IEC unit labels (e.g. GiB) for virtual machine resources +* [#21696](https://github.com/netbox-community/netbox/issues/21696) - Add support for django-rq 4.0 and introduce `RQ` configuration parameter +* [#21701](https://github.com/netbox-community/netbox/issues/21701) - Support uploading custom scripts via the REST API (`/api/extras/scripts/upload/`) +* [#21760](https://github.com/netbox-community/netbox/issues/21760) - Add a 1C2P:2C1P breakout cable profile + +### Performance Improvements + +* [#21655](https://github.com/netbox-community/netbox/issues/21655) - Optimize queries for object and multi-object type custom fields + +### Bug Fixes + +* [#20474](https://github.com/netbox-community/netbox/issues/20474) - Fix installation of modules with placeholder values in component names +* [#21498](https://github.com/netbox-community/netbox/issues/21498) - Fix server error triggered by event rules referencing deleted objects +* [#21533](https://github.com/netbox-community/netbox/issues/21533) - Ensure read-only fields are included in REST API responses upon object creation +* [#21535](https://github.com/netbox-community/netbox/issues/21535) - Fix filtering of object-type custom fields when "is empty" is selected +* [#21784](https://github.com/netbox-community/netbox/issues/21784) - Fix `AttributeError` exception when sorting a table as an anonymous user +* [#21808](https://github.com/netbox-community/netbox/issues/21808) - Fix `RelatedObjectDoesNotExist` exception when viewing an interface with a virtual circuit termination +* [#21810](https://github.com/netbox-community/netbox/issues/21810) - Fix `AttributeError` exception when viewing virtual chassis member +* [#21825](https://github.com/netbox-community/netbox/issues/21825) - Fix sorting by broken columns in several object lists + +--- + ## v4.5.6 (2026-03-31) ### Enhancements diff --git a/netbox/release.yaml b/netbox/release.yaml index 10dd40164..0aeeebac8 100644 --- a/netbox/release.yaml +++ b/netbox/release.yaml @@ -1,3 +1,3 @@ -version: "4.5.6" +version: "4.5.7" edition: "Community" -published: "2026-03-31" +published: "2026-04-03" diff --git a/netbox/translations/cs/LC_MESSAGES/django.mo b/netbox/translations/cs/LC_MESSAGES/django.mo index 998b9add32c0c54c05668b61f09da8557999bc84..0096ebce7cd292d2197068dc54ff7177e696e60f 100644 GIT binary patch delta 74654 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 U*z%A*FZ>!u2zmU$FIV*c1C|26x&QzG delta 74971 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 diff --git a/netbox/translations/cs/LC_MESSAGES/django.po b/netbox/translations/cs/LC_MESSAGES/django.po index a97b762a6..cba2f216e 100644 --- a/netbox/translations/cs/LC_MESSAGES/django.po +++ b/netbox/translations/cs/LC_MESSAGES/django.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n" @@ -52,9 +52,9 @@ msgstr "Vaše heslo bylo úspěšně změněno." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -68,21 +68,20 @@ msgstr "Zajišťování" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Aktivní" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Vypnuto" @@ -95,7 +94,7 @@ msgstr "Zrušení přidělování" msgid "Decommissioned" msgstr "Vyřazeno z provozu" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -207,13 +206,13 @@ msgstr "Skupina lokalit (zkratka)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -337,7 +336,7 @@ msgstr "Vyhledávání" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -471,8 +470,8 @@ msgstr "ID služby" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Barva" @@ -483,7 +482,7 @@ msgstr "Barva" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -511,15 +510,15 @@ msgstr "Barva" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -565,7 +564,7 @@ msgstr "Účet poskytovatele" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -581,12 +580,12 @@ msgstr "Účet poskytovatele" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -644,12 +643,12 @@ msgstr "Stav" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -734,10 +733,10 @@ msgstr "Parametry služby" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -762,8 +761,8 @@ msgstr "Atributy" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -786,30 +785,19 @@ msgstr "Tenanti" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Popis" @@ -861,7 +849,7 @@ msgstr "Podrobnosti o zakončení" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -915,10 +903,10 @@ msgstr "Síť poskytovatele" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1006,7 +994,7 @@ msgstr "Provozní role" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1019,7 +1007,7 @@ msgstr "Provozní role" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1058,8 +1046,8 @@ msgstr "Rozhraní" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1113,12 +1101,12 @@ msgstr "Lokace" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1143,9 +1131,9 @@ msgstr "Vlastnictví" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1169,9 +1157,9 @@ msgstr "Kontakty" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Region" @@ -1188,9 +1176,9 @@ msgstr "Region" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Skupina lokalit " @@ -1199,7 +1187,7 @@ msgstr "Skupina lokalit " #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Účet" @@ -1208,9 +1196,9 @@ msgid "Term Side" msgstr "Strana termínu" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1238,10 +1226,10 @@ msgstr "Přiřazení" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1282,13 +1270,13 @@ msgid "Group Assignment" msgstr "Skupinové přiřazení" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1315,14 +1303,14 @@ msgstr "Jedinečné ID okruhu" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1417,7 +1405,7 @@ msgstr "ID propojovacího panelu a číslo portu/ů" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1450,7 +1438,7 @@ msgstr "Ukončení obvodu se musí připojit k zakončujícímu objektu." #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1545,8 +1533,8 @@ msgstr "virtuální obvod" msgid "virtual circuits" msgstr "virtuální obvody" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "role" @@ -1583,10 +1571,10 @@ msgstr "zakončení virtuálních okruhů" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1594,26 +1582,14 @@ msgstr "zakončení virtuálních okruhů" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1626,8 +1602,8 @@ msgstr "zakončení virtuálních okruhů" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1711,7 +1687,7 @@ msgstr "Počet ASN" msgid "Terminations" msgstr "Zakončení" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1745,7 +1721,7 @@ msgstr "Zakončení" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1755,10 +1731,10 @@ msgstr "Zakončení" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1832,7 +1808,7 @@ msgstr "Dokončeno" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Selhalo" @@ -1892,14 +1868,13 @@ msgid "30 days" msgstr "30 dní" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2013,7 +1988,7 @@ msgid "User name" msgstr "Uživatelské jméno" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2022,17 +1997,13 @@ msgstr "Uživatelské jméno" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Povoleno" @@ -2042,12 +2013,11 @@ msgid "Sync interval" msgstr "Interval synchronizace" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parametry" @@ -2060,16 +2030,15 @@ msgstr "Ignorovat pravidla" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Zdroj dat" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Soubor" @@ -2087,10 +2056,9 @@ msgstr "Stvoření" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Typ objektu" @@ -2135,9 +2103,7 @@ msgstr "Dokončeno dříve" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2146,8 +2112,8 @@ msgid "User" msgstr "Uživatel" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Čas" @@ -2160,8 +2126,7 @@ msgid "Before" msgstr "Před" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Akce" @@ -2200,7 +2165,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Přehled stojanů" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2343,20 +2308,20 @@ msgid "Config revision #{id}" msgstr "Revize konfigurace #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2365,13 +2330,13 @@ msgstr "typ" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2436,7 +2401,7 @@ msgstr "" msgid "last updated" msgstr "naposledy aktualizováno" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "cesta" @@ -2444,7 +2409,8 @@ msgstr "cesta" msgid "File path relative to the data source's root" msgstr "Cesta k souboru vzhledem ke kořenovému zdroji dat." -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "velikost" @@ -2593,12 +2559,11 @@ msgstr "Celé jméno" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Objekt" @@ -2608,7 +2573,7 @@ msgid "Request ID" msgstr "ID požadavku" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Zpráva" @@ -2637,7 +2602,7 @@ msgstr "Naposledy aktualizováno" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2653,8 +2618,8 @@ msgstr "Interval" msgid "Log Entries" msgstr "Záznamy protokolu" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Úroveň" @@ -2774,11 +2739,10 @@ msgid "Backend" msgstr "Backend" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2837,8 +2801,7 @@ msgstr "Úloha #{id} k synchronizaci {datasource} zařazena do fronty." #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Údaje" @@ -2903,11 +2866,24 @@ msgstr "Režim rozhraní nepodporuje neoznačený vlan" msgid "Interface mode does not support tagged vlans" msgstr "Režim rozhraní nepodporuje označené vlany" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Pozice (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Nelze nainstalovat modul se zástupnými hodnotami do pozice modulu bez " +"definované polohy." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "{model} pojmenovaný {name} již existuje" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "ID objektu" @@ -2935,8 +2911,8 @@ msgid "Staging" msgstr "Inscenace" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Vyřazení z provozu" @@ -3002,7 +2978,7 @@ msgstr "Zastaralé" msgid "Millimeters" msgstr "Milimetry" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Palce" @@ -3039,14 +3015,14 @@ msgstr "Zatuchlý" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3074,7 +3050,7 @@ msgid "Rear" msgstr "Zadní" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Inscenovaný" @@ -3107,7 +3083,7 @@ msgid "Top to bottom" msgstr "Shora dolů" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Pasivní" @@ -3136,8 +3112,8 @@ msgid "Proprietary" msgstr "Proprietární" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Ostatní" @@ -3150,350 +3126,354 @@ msgstr "ITA/Mezinárodní" msgid "Physical" msgstr "Fyzické" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtuální" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Bezdrátové" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Virtuální rozhraní" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Most" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Agregační skupina (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "FastEthernet (100 Mb/s)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "GigabitEthernet (1 Gb/s)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "Ethernet 2,5/5 Gb/s" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "Ethernet s rychlostí 10 Gb/s" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "Ethernet 25 Gb/s" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "Ethernet 40 Gb/s" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "Ethernet s rychlostí 50 Gb/s" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "Ethernet 100 Gb/s" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "Ethernet 200 Gb/s" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "Ethernet 400 Gb/s" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 Gb/s Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "Ethernet 1,6 Tb/s" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Zásuvné vysílače a přijímače" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Ethernet propojovací deska" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Buněčný" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Sériový" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Koaxiální" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Stohování" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Poloviční" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Plný" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Auto" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Přístupový" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Značkovaný" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Značkovaný (Vše)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "Norma IEEE" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Pasivní 24V (2 páry)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Pasivní 24V (4 páry)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Pasivní 48V (2 páry)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Pasivní 48V (4 páry)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "měď" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Optická vlákna" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Single" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1C1P" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1C4P" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "1C6P" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "1C8P" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1C12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Kufr" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P kufr" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P kufr" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P kufr" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "2C4P kufr (zamíchané)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "2C6P kufr" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "2C8P kufr" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P kufr" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P kufr" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P kufr" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P kufr" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P kufr (zamíchané)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P kufr" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P kufr" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P kufr" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Útěk" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P: 2C1P únik" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P: 4C1P únik" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P: 6C1P únik" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P: 8C1P breakout (náhodné)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Měď - kroucený pár (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Měď - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Měď - koaxiální" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Fiber - Multimode" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Fiber - Single-mode" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Vlákno - Ostatní" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Připojeno" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Kilometry" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Metry" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Centimetry" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Míle" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Stopy" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Zdvojený" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Jednofázový" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Třífázový" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Zakázané" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "vadný" @@ -3777,17 +3757,17 @@ msgstr "Je plná hloubka" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC adresa" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Má primární IP" @@ -3925,7 +3905,7 @@ msgid "Is primary" msgstr "Je primární" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "Režim 802.1Q" @@ -3942,8 +3922,8 @@ msgstr "Přiřazené VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3954,18 +3934,18 @@ msgstr "Přiřazené VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3982,10 +3962,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -3999,11 +3979,11 @@ msgstr "Zásady překladu VLAN (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "Zásady překladu VLAN" @@ -4050,7 +4030,7 @@ msgstr "Primární MAC adresa (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Primární MAC adresa" @@ -4110,7 +4090,7 @@ msgstr "Napájecí panel (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4180,7 +4160,7 @@ msgstr "Časové pásmo" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4251,11 +4231,6 @@ msgstr "Hloubka montáže" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Hmotnost" @@ -4288,7 +4263,7 @@ msgstr "Vnější rozměry" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Rozměry" @@ -4340,7 +4315,7 @@ msgstr "Proudění vzduchu" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Stojan" @@ -4393,11 +4368,10 @@ msgstr "Schéma" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profil" @@ -4407,7 +4381,7 @@ msgstr "Profil" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Typ modulu" @@ -4430,8 +4404,8 @@ msgstr "Role virtuálního počítače" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Konfigurační šablona" @@ -4453,10 +4427,10 @@ msgstr "Role zařízení" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Platforma" @@ -4468,13 +4442,13 @@ msgstr "Platforma" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4482,7 +4456,7 @@ msgstr "Klastr" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Konfigurace" @@ -4506,7 +4480,7 @@ msgstr "Typ modulu" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Štítek" @@ -4556,8 +4530,8 @@ msgid "Maximum draw" msgstr "Maximální příkon" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Maximální příkon (W)" @@ -4566,8 +4540,8 @@ msgid "Allocated draw" msgstr "Přidělený příkon" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Přidělený příkon (W)" @@ -4582,23 +4556,23 @@ msgid "Feed leg" msgstr "Napájecí větev" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Pouze správa" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "Režim PoE" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "Typ PoE" @@ -4614,7 +4588,7 @@ msgid "Module" msgstr "Modul" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "Agregační skupina" @@ -4625,14 +4599,14 @@ msgstr "Kontexty virtuálních zařízení" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Rychlost" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4645,25 +4619,25 @@ msgstr "Režim" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "Skupina VLAN" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "Neznačené VLAN" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Označené VLAN" @@ -4678,7 +4652,7 @@ msgstr "Odstranit označené VLANy" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Služba VLAN služby Q-in-Q" @@ -4688,26 +4662,26 @@ msgid "Wireless LAN group" msgstr "Skupina bezdrátových sítí" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Bezdrátové LAN sítě" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Adresování" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Operace" @@ -4718,16 +4692,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Související rozhraní" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "Přepínání 802.1Q" @@ -5010,13 +4984,13 @@ msgstr "Elektrická fáze (pro třífázové obvody)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Nadřazené rozhraní" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Přemostěné rozhraní" @@ -5159,13 +5133,13 @@ msgstr "Nadřazené zařízení přiřazeného rozhraní (pokud existuje)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Virtuální stroj" @@ -5322,13 +5296,13 @@ msgstr "Primární IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "IPv6 adresa s délkou předpony, např. 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5337,33 +5311,11 @@ msgstr "" "Označené VLAN ({vlans}) musí patřit ke stejné lokalitě jako nadřazené " "zařízení/VM rozhraní, nebo musí být globální" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Nelze nainstalovat modul se zástupnými hodnotami do pozice modulu bez " -"definované polohy." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Nelze nainstalovat modul se zástupnými hodnotami do stromu modulu {level} na" -" stromě, ale {tokens} zadané zástupné symboly." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Nelze adoptovat {model} {name}, protože již patří do modulu" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "{model} pojmenovaný {name} již existuje" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5451,7 +5403,7 @@ msgstr "Má kontexty virtuálních zařízení" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Skupina klastru" @@ -5467,7 +5419,7 @@ msgstr "Obsazeno" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Připojení" @@ -5475,8 +5427,7 @@ msgstr "Připojení" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Druh" @@ -5485,12 +5436,12 @@ msgid "Mgmt only" msgstr "Pouze správa" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "Režim 802.1Q" @@ -5506,7 +5457,7 @@ msgstr "Frekvence kanálu (MHz)" msgid "Channel width (MHz)" msgstr "Šířka kanálu (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Vysílací výkon (dBm)" @@ -5556,9 +5507,9 @@ msgstr "Typ rozsahu" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5830,11 +5781,11 @@ msgstr "Rozhraní VM" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5904,7 +5855,7 @@ msgid "profile" msgstr "profil" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5926,40 +5877,40 @@ msgstr "kabel" msgid "cables" msgstr "kabely" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Při nastavování délky kabelu je nutné zadat jednotku" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "Při vytváření nového kabelu je nutné definovat zakončení A a B." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "Nelze připojit různé typy zakončení ke stejnému konci kabelu." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Nekompatibilní typy ukončení: {type_a} a {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "Koncovky A a B se nemohou připojit ke stejnému objektu." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "konec" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "zakončení kabelu" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "zakončení kabelů" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -5967,7 +5918,7 @@ msgid "" msgstr "" "Nelze připojit kabel {obj_parent} > {obj} protože je označen jako připojený." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5976,57 +5927,57 @@ msgstr "" "Nalezeno duplicitní ukončení pro {app_label}.{model} {termination_id}: kabel" " {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kabely nelze zakončit v {type_display} rozhraní" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Zakončení okruhů připojené k síti poskytovatele nemusí být kabelovány." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "je aktivní" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "je kompletní" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "je rozdělen" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "trasa kabelu" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "trasy kabelů" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Všechny původní zakončení musí být připojeny ke stejnému odkazu" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "Všechny zakončení středního rozpětí musí mít stejný typ zakončení" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "Všechna zakončení středního rozpětí musí mít stejný nadřazený objekt" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Všechny linky musí být kabelové nebo bezdrátové" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Všechny odkazy musí odpovídat prvnímu typu odkazu" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6035,23 +5986,23 @@ msgstr "" "{module} je akceptován jako náhrada za pozici modulu, když je připojen k " "typu modulu." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Fyzický popisek" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Šablony komponent nelze přesunout na jiný typ zařízení." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "" "Šablonu komponenty nelze přidružit zároveň k typu zařízení a k typu modulu." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6059,131 +6010,131 @@ msgstr "" "Šablona komponenty musí být přiřazena buď k typu zařízení, nebo k typu " "modulu." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "šablona portu konzoly" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "šablony portů konzoly" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "šablona portu konzolového serveru" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "šablony portů konzolového serveru" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maximální příkon" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "přidělený příkon" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "šablona napájecího portu" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "šablony napájecích portů" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "Přidělený příkon nesmí překročit maximální příkon ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "napájecí větev" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fáze (pro třífázové napájení)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "šablona elektrické zásuvky" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "šablony zásuvek" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Rodičovský napájecí port ({power_port}) musí patřit ke stejnému typu " "zařízení" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Rodičovský napájecí port ({power_port}) musí patřit ke stejnému typu modulu" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "pouze řízení" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "rozhraní mostu" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "bezdrátová role" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "šablona rozhraní" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "šablony rozhraní" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Rozhraní můstku ({bridge}) musí patřit ke stejnému typu zařízení" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Rozhraní můstku ({bridge}) musí patřit ke stejnému typu modulu" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Zadní port ({rear_port}) musí patřit ke stejnému typu zařízení" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "pozice" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "šablona předního portu" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "šablony předního portu" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6192,15 +6143,15 @@ msgstr "" "Počet pozic nesmí být menší než počet mapovaných šablon zadních portů " "({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "šablona zadního portu" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "šablony zadních portů" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6209,35 +6160,35 @@ msgstr "" "Počet pozic nesmí být menší než počet mapovaných šablon předních portů " "({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "pozice" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identifikátor, na který se má odkazovat při přejmenování nainstalovaných " "komponent" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "šablona moduární šachty" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "šablony modulárních šachet" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "šablona pozice zařízení" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "šablony rozvaděčů zařízení" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6246,21 +6197,21 @@ msgstr "" "Role dílčího zařízení typu zařízení ({device_type}) musí být nastaveno na " "„rodič“, aby bylo možné povolit pozice zařízení." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID součásti" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identifikátor součásti přiřazený výrobcem" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "šablona položky inventáře" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "šablony položek inventáře" @@ -6313,84 +6264,84 @@ msgstr "Pozice zakončení kabelu nesmí být nastaveny bez kabelu." msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modely musí deklarovat vlastnost parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Fyzický typ portu" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "rychlost" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Rychlost portu v bitech za sekundu" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "konzolový port" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "konzolové porty" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "port konzolového serveru" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "porty konzolového serveru" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "napájecí port" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "napájecí porty" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "elektrická zásuvka" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "elektrické zásuvky" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Rodičovský napájecí port ({power_port}) musí patřit ke stejnému zařízení" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "režim" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Strategie označování IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "nadřazené rozhraní" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "neoznačené VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "označené VLAN" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6398,92 +6349,92 @@ msgstr "označené VLAN" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "primární MAC adresa" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Pouze rozhraní Q-in-Q mohou specifikovat službu VLAN." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " "({interface})." msgstr "MAC adresa {mac_address} je přiřazen k jinému rozhraní ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "nadřazená MAS" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Toto rozhraní se používá pouze pro správu mimo pásmo" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "Rychlost (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "duplexní" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64bitový celosvětový název" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "bezdrátový kanál" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "frekvence kanálu (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Vyplněno vybraným kanálem (pokud je nastaven)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "vysílací výkon (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "bezdrátové sítě LAN" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "rozhraní" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "rozhraní" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} Rozhraní nemůže mít připojený kabel." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} rozhraní nelze označit jako připojená." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Rozhraní nemůže být svým vlastním rodičem." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "K nadřazenému rozhraní lze přiřadit pouze virtuální rozhraní." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6491,7 +6442,7 @@ msgid "" msgstr "" "Vybrané nadřazené rozhraní ({interface}) patří k jinému zařízení ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6500,7 +6451,7 @@ msgstr "" "Vybrané nadřazené rozhraní ({interface}) patří {device}, která není součástí" " virtuálního podvozku {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6508,7 +6459,7 @@ msgid "" msgstr "" "Vybrané rozhraní můstku ({bridge}) patří k jinému zařízení ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6517,21 +6468,21 @@ msgstr "" "Vybrané rozhraní můstku ({interface}) patří {device}, která není součástí " "virtuálního podvozku {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Virtuální rozhraní nemohou mít nadřazené rozhraní LAG." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Rozhraní MAS nemůže být vlastním rodičem." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "Vybrané rozhraní LAG ({lag}) patří k jinému zařízení ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6540,31 +6491,31 @@ msgstr "" "Vybrané rozhraní LAG ({lag}) patří {device}, která není součástí virtuálního" " podvozku {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanál lze nastavit pouze na bezdrátových rozhraních." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "Frekvence kanálu může být nastavena pouze na bezdrátových rozhraních." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Nelze určit vlastní frekvenci s vybraným kanálem." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "Šířku kanálu lze nastavit pouze na bezdrátových rozhraních." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Nelze určit vlastní šířku s vybraným kanálem." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Režim rozhraní nepodporuje neoznačený vlan." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6573,20 +6524,20 @@ msgstr "" "Neznačená VLAN ({untagged_vlan}) musí patřit ke stejné lokalitě jako " "nadřazené zařízení rozhraní, nebo musí být globální." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Zadní port ({rear_port}) musí patřit ke stejnému zařízení" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "přední port" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "přední porty" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6594,15 +6545,15 @@ msgid "" msgstr "" "Počet pozic nesmí být menší než počet mapovaných zadních portů ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "zadní port" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "zadní porty" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6610,97 +6561,97 @@ msgid "" msgstr "" "Počet pozic nesmí být menší než počet mapovaných předních portů ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "přihrádka modulů" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "pozice modulů" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Pozice modulu nemůže patřit k modulu nainstalovanému v ní." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "pozice zařízení" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "pozice zařízení" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Tento typ zařízení ({device_type}) nepodporuje pozice zařízení." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Nelze nainstalovat zařízení do sebe." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "" "Nelze nainstalovat určené zařízení; zařízení je již nainstalováno {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "role položky inventáře" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "role položek zásob" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "sériové číslo" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "štítek majetku" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Jedinečná značka použitá k identifikaci této položky" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "objeveny" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Tato položka byla automaticky objevena" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "položka inventáře" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "inventární položky" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Nelze přiřadit sebe jako rodiče." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Nadřazená položka inventáře nepatří do stejného zařízení." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Nelze přesunout položku inventáře se závislými podřízenými" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Nelze přiřadit skladovou položku ke komponentě na jiném zařízení" @@ -7578,10 +7529,10 @@ msgstr "Dosažitelný" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7593,8 +7544,7 @@ msgid "VMs" msgstr "Virtuální stroje" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7697,7 +7647,7 @@ msgstr "Umístění zařízení" msgid "Device Site" msgstr "Lokalita zařízení" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Modulová přihrádka" @@ -7757,7 +7707,7 @@ msgstr "MAC adresy" msgid "FHRP Groups" msgstr "Skupiny FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7773,7 +7723,7 @@ msgstr "Pouze správa" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Virtuální obvod" @@ -7846,7 +7796,7 @@ msgid "Module Types" msgstr "Typy modulů" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platformy" @@ -7947,7 +7897,7 @@ msgstr "Pozice pro zařízení" msgid "Module Bays" msgstr "Modulové pozice" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Počet modulů" @@ -8025,7 +7975,7 @@ msgstr "{} milimetry" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Sériové číslo" @@ -8035,7 +7985,7 @@ msgid "Maximum weight" msgstr "Maximální hmotnost" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Řízení" @@ -8083,18 +8033,27 @@ msgstr "{} A" msgid "Primary for interface" msgstr "Primární pro rozhraní" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Virtuální členy šasi" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Využití energie" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Překlad VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Nelze nainstalovat modul se zástupnými hodnotami do stromu modulu {level} " +"úrovně hluboké, ale {tokens} zadané zástupné symboly." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8135,9 +8094,8 @@ msgid "Application Services" msgstr "Aplikační služby" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Kontext konfigurace" @@ -8146,7 +8104,7 @@ msgstr "Kontext konfigurace" msgid "Render Config" msgstr "Konfigurace rendrování" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8209,7 +8167,7 @@ msgstr "Nelze odebrat hlavní zařízení {device} z virtuálního podvozku." msgid "Removed {device} from virtual chassis {chassis}" msgstr "Odstraněno {device} z virtuálního šasi {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Neznámý související objekt (y): {name}" @@ -8218,12 +8176,16 @@ msgstr "Neznámý související objekt (y): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Změna typu vlastních polí není podporována." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Modul skriptu s tímto názvem souboru již existuje." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Plánování není pro tento skript povoleno." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Naplánovaný čas musí být v budoucnu." @@ -8400,8 +8362,7 @@ msgid "White" msgstr "Bílá" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webový háček" @@ -8544,12 +8505,12 @@ msgstr "Záložky" msgid "Show your personal bookmarks" msgstr "Zobrazit své osobní záložky" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Neznámý typ akce pro pravidlo události: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Nelze importovat kanál událostí {name} chyba: {error}" @@ -8569,7 +8530,7 @@ msgid "Group (name)" msgstr "Skupina (název)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Typ clusteru" @@ -8589,7 +8550,7 @@ msgid "Tenant group (slug)" msgstr "Skupina nájemců (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Značka" @@ -8602,29 +8563,30 @@ msgid "Has local config context data" msgstr "Má místní kontextová data konfigurace" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Název skupiny" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Požadováno" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Musí být jedinečný" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Uživatelské rozhraní viditelné" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Upravitelné uživatelské rozhraní" @@ -8633,10 +8595,12 @@ msgid "Is cloneable" msgstr "Je klonovatelný" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimální hodnota" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maximální hodnota" @@ -8645,8 +8609,7 @@ msgid "Validation regex" msgstr "Ověření regex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Chování" @@ -8660,7 +8623,8 @@ msgstr "Třída tlačítek" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Typ MIME" @@ -8682,31 +8646,29 @@ msgstr "Jako příloha" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Sdílené" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Metoda HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Adresa URL užitečného zatížení" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Ověření SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Tajemství" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Cesta k souboru CA" @@ -8855,9 +8817,9 @@ msgstr "Typ přiřazeného objektu" msgid "The classification of entry" msgstr "Klasifikace vstupu" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8866,12 +8828,12 @@ msgid "Comments" msgstr "Komentáře" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Uživatelé" @@ -8880,9 +8842,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Uživatelská jména oddělená čárkami, uzavřená dvojitými uvozovkami" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8927,6 +8888,7 @@ msgid "Content types" msgstr "Typy obsahu" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Typ obsahu HTTP" @@ -8998,7 +8960,7 @@ msgstr "Skupiny nájemců" msgid "The type(s) of object that have this custom field" msgstr "Typ (y) objektu, který má toto vlastní pole" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Výchozí hodnota" @@ -9007,7 +8969,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Typ souvisejícího objektu (pouze pro pole objektu/více objektů)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Související filtr objektů" @@ -9015,8 +8976,7 @@ msgstr "Související filtr objektů" msgid "Specify query parameters as a JSON object." msgstr "Zadejte parametry dotazu jako objekt JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Vlastní pole" @@ -9047,12 +9007,11 @@ msgstr "" "Zadejte jednu volbu na řádek. Pro každou volbu lze zadat volitelný popisek " "přidáním dvojtečky. Příklad:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Sada možností vlastního pole" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Vlastní odkaz" @@ -9082,8 +9041,7 @@ msgstr "" msgid "Template code" msgstr "Kód šablony" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Šablona exportu" @@ -9092,14 +9050,13 @@ msgstr "Šablona exportu" msgid "Template content is populated from the remote source selected below." msgstr "Obsah šablony je vyplněn ze vzdáleného zdroje vybraného níže." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Uložený filtr" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Objednávání" @@ -9123,13 +9080,11 @@ msgstr "Vybrané sloupce" msgid "A notification group specify at least one user or group." msgstr "Skupina oznámení určuje alespoň jednoho uživatele nebo skupinu." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP požadavek" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9149,8 +9104,7 @@ msgstr "" "Zadejte parametry, které chcete předat akci v JSON Formát." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Pravidlo události" @@ -9162,8 +9116,7 @@ msgstr "Spouštěče" msgid "Notification group" msgstr "Skupina oznámení" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Konfigurovat kontextový profil" @@ -9253,7 +9206,7 @@ msgstr "kontextové profily konfigurace" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "váha" @@ -9802,7 +9755,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Povolit ověření certifikátu SSL. Zakázat s opatrností!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Cesta k souboru CA" @@ -10106,9 +10059,8 @@ msgstr "Odmítnout" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10131,7 +10083,6 @@ msgid "Related Object Type" msgstr "Typ souvisejícího objektu" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Sada výběru" @@ -10140,12 +10091,10 @@ msgid "Is Cloneable" msgstr "Je klonovatelný" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimální hodnota" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maximální hodnota" @@ -10155,9 +10104,9 @@ msgstr "Ověření Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10174,50 +10123,44 @@ msgid "Order Alphabetically" msgstr "Řadit abecedně" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nové okno" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Typ MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Název souboru" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Přípona souboru" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Jako příloha" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Synchronizováno" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Obrázek" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Název souboru" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Velikost" @@ -10225,38 +10168,36 @@ msgstr "Velikost" msgid "Table Name" msgstr "Název tabulky" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Číst" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" msgstr "Ověření SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Typy událostí" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automatická synchronizace povolena" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Role zařízení" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Komentáře (krátký)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linka" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Metoda" @@ -10269,7 +10210,7 @@ msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "" "Zkuste widget znovu nakonfigurovat, nebo jej odeberte z řídicího panelu." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10282,11 +10223,78 @@ msgstr "" msgid "Custom Fields" msgstr "Vlastní pole" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Připojit obrázek" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonovatelný" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Hmotnost displeje" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Ověřovací pravidla" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Regulární výraz" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Související objekty" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Použito" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Příloha" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Přiřazené modely" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Konfigurace tabulky" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Zobrazené sloupce" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Skupina oznámení" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Povolené typy objektů" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Typy označených položek" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Příloha obrázku" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Nadřazený objekt" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Zápis do deníku" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10324,32 +10332,68 @@ msgstr "Neplatný atribut“{name}„na vyžádání" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Neplatný atribut“{name}„pro {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Text odkazu" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL odkazu" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Parametry prostředí" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Šablona" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Další záhlaví" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Šablona těla" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Podmínky" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Označené objekty" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON Schéma" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Při vykreslování šablony došlo k chybě: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Váš řídicí panel byl resetován." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Přidán widget: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Aktualizovaný widget: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Odstraněný widget: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Chyba při mazání widgetu: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Nelze spustit skript: Proces RQ Worker není spuštěn." @@ -10581,7 +10625,7 @@ msgstr "Skupina FHRP (ID)" msgid "IP address (ID)" msgstr "IP adresa (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP adresa" @@ -10687,7 +10731,7 @@ msgstr "Je bazén" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Zacházejte jako plně využívané" @@ -10700,7 +10744,7 @@ msgstr "Přiřazení VLAN" msgid "Treat as populated" msgstr "Zacházejte s osídlenými" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Název DNS" @@ -11222,181 +11266,181 @@ msgstr "" "Předpony nemohou překrývat agregáty. {prefix} pokrývá existující agregát " "({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "rolí" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "předpona" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Síť IPv4 nebo IPv6 s maskou" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Provozní stav této předpony" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Primární funkce této předpony" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "je bazén" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Všechny IP adresy v rámci této prefixy jsou považovány za použitelné" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "použitá značka" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "předpony" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Nelze vytvořit předponu s maskou /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "globální tabulka" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Duplicitní předpona nalezena v {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "Počáteční adresa" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Adresa IPv4 nebo IPv6 (s maskou)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "koncová adresa" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Provozní stav tohoto rozsahu" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Primární funkce tohoto rozsahu" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "značka obsazena" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Zabránit vytváření IP adres v tomto rozsahu" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Nahlásit prostor jako plně využitý" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Rozsah IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Rozsahy IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Počáteční a koncová verze IP adresy se musí shodovat" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Počáteční a koncová maska IP adresy se musí shodovat" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Koncová adresa musí být větší než počáteční adresa ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Definované adresy se překrývají s rozsahem {overlapping_range} na VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Definovaný rozsah přesahuje maximální podporovanou velikost ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adresa" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Provozní stav tohoto IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Funkční role tohoto IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (uvnitř)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "IP, pro kterou je tato adresa „vnější“ IP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Název hostitele nebo FQDN (nerozlišuje velká a malá písmena)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP adresy" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Nelze vytvořit IP adresu s maskou /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} je síťové ID, které nemusí být přiřazeno rozhraní." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip} je vysílací adresa, která nemusí být přiřazena k rozhraní." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Duplicitní adresa IP nalezena v {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Nelze vytvořit IP adresu {ip} vnitřní rozsah {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11404,7 +11448,7 @@ msgstr "" "Nelze znovu přiřadit adresu IP, pokud je určena jako primární IP pro " "nadřazený objekt" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11412,7 +11456,7 @@ msgstr "" "Nelze znovu přiřadit IP adresu, pokud je určena jako IP OOB pro nadřazený " "objekt" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Stav SLAAC lze přiřadit pouze adresám IPv6" @@ -11988,8 +12032,9 @@ msgstr "Šedá" msgid "Dark Grey" msgstr "Tmavě šedá" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Výchozí" @@ -12914,67 +12959,67 @@ msgstr "Po inicializaci nelze do registru přidat úložiště" msgid "Cannot delete stores from registry" msgstr "Nelze odstranit obchody z registru" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Čeština" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Dánština" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Němčina" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Angličtina" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Španělština" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Francouzština" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italština" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japonština" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Lotyška" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Holandština" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Polština" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Portugalština" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Ruština" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Turečtina" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukrajinština" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Čínština" @@ -13002,6 +13047,7 @@ msgid "Field" msgstr "Pole" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Hodnota" @@ -13033,11 +13079,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS souřadnice" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Související objekty" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13282,7 +13323,6 @@ msgid "Toggle All" msgstr "Přepnout vše" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "tabulka" @@ -13338,13 +13378,9 @@ msgstr "Přiřazené skupiny" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13352,6 +13388,7 @@ msgstr "Přiřazené skupiny" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Žádný" @@ -13514,7 +13551,7 @@ msgid "Changed" msgstr "Změněno" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bajtů" @@ -13567,12 +13604,11 @@ msgid "Job retention" msgstr "Zachování pracovních míst" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Datový soubor přidružený k tomuto objektu byl smazán" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Synchronizovaná data" @@ -14253,12 +14289,6 @@ msgstr "Přidat stojan" msgid "Add Site" msgstr "Přidat web" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Příloha" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14414,82 +14444,10 @@ msgstr "" "zkontrolovat připojením k databázi pomocí přihlašovacích údajů NetBoxu a " "zadáním dotazu na %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON Schéma" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Parametry prostředí" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Šablona" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Název skupiny" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Musí být jedinečný" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonovatelný" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Výchozí hodnota" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Hledat Hmotnost" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filtrování logiky" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Hmotnost displeje" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Uživatelské rozhraní viditelné" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Upravitelné uživatelské rozhraní" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Ověřovací pravidla" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Regulární výraz" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Třída tlačítek" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Přiřazené modely" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Text odkazu" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL odkazu" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "volby" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14560,10 +14518,6 @@ msgstr "Při načítání kanálu RSS došlo k problému" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Podmínky" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Naplánováno na" @@ -14585,14 +14539,6 @@ msgstr "Výstup" msgid "Download" msgstr "Ke stažení" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Příloha obrázku" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Nadřazený objekt" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Načítání" @@ -14641,24 +14587,6 @@ msgstr "" "Začít od vytvoření skriptu z nahraného" " souboru nebo zdroje dat." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Zápis do deníku" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Vytvořil" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Skupina oznámení" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Žádné přiřazení" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Místní kontext konfigurace přepíše všechny zdrojové kontexty" @@ -14714,6 +14642,16 @@ msgstr "Výstup šablony je prázdný" msgid "No configuration template has been assigned." msgstr "Nebyla přiřazena žádná šablona konfigurace." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Žádné přiřazení" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Jakýkoliv" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14750,14 +14688,6 @@ msgstr "Prahová hodnota protokolu" msgid "All" msgstr "Vše" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Konfigurace tabulky" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Zobrazené sloupce" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14775,46 +14705,6 @@ msgstr "Pohyb nahoru" msgid "Move Down" msgstr "Přesuňte se dolů" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Označené položky" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Povolené typy objektů" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Jakýkoliv" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Typy označených položek" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Označené objekty" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Metoda HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Typ obsahu HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Ověření SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Další záhlaví" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Šablona těla" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Hromadná tvorba" @@ -14887,10 +14777,6 @@ msgstr "Možnosti pole" msgid "Accessor" msgstr "Přídavný" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "volby" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Hodnota importu" @@ -15401,6 +15287,7 @@ msgstr "Virtuální procesory" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Paměť" @@ -15410,8 +15297,8 @@ msgid "Disk Space" msgstr "Místo na disku" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Zdroje" @@ -16462,13 +16349,13 @@ msgstr "" "Tento objekt byl od vykreslování formuláře změněn. Podrobnosti naleznete v " "protokolu změn objektu." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Rozsah“{value}„je neplatný." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16477,39 +16364,39 @@ msgstr "" "Neplatný rozsah: Koncová hodnota ({end}) musí být větší než počáteční " "hodnota ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Duplicitní nebo konfliktní záhlaví sloupce pro“{field}„" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Duplicitní nebo konfliktní záhlaví sloupce pro“{header}„" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Řádek {row}: Očekávané {count_expected} sloupce, ale nalezeny {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Neočekávané záhlaví sloupce“{field}„nalezeno." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Sloupec“{field}„není příbuzný objekt; nelze použít tečky" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Neplatný atribut souvisejícího objektu pro sloupec“{field}„: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Požadovaná záhlaví sloupce“{header}„nenalezeno." @@ -16526,7 +16413,7 @@ msgid "Missing required value for static query param: '{static_params}'" msgstr "" "Chybí požadovaná hodnota pro parametr statického dotazu: '{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automaticky nastaveno)" @@ -16724,30 +16611,42 @@ msgstr "Typ clusteru (ID)" msgid "Cluster (ID)" msgstr "Klastr (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Spusťte při spuštění" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "VCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Paměť (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disk" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disk (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Paměť ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Velikost (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disk ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Velikost ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16769,15 +16668,15 @@ msgstr "Přiřazený cluster" msgid "Assigned device within cluster" msgstr "Přiřazené zařízení v rámci clusteru" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Typ clusteru" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Skupina klastru" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16786,25 +16685,20 @@ msgstr "" "{device} Patří k jinému {scope_field} ({device_scope}) než klastr " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Volitelně připojte tento virtuální počítač ke konkrétnímu hostitelskému " "zařízení v rámci clusteru" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Lokalita/Klastr" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Velikost disku je spravována připojením virtuálních disků." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disk" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "typ clusteru" @@ -16852,12 +16746,12 @@ msgid "start on boot" msgstr "začít při zavádění" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "Paměť (MB)" +msgid "memory" +msgstr "paměť" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disk (MB)" +msgid "disk" +msgstr "disk" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16938,10 +16832,6 @@ msgstr "" "Neznačená VLAN ({untagged_vlan}) musí patřit ke stejnému webu jako nadřazený" " virtuální stroj rozhraní, nebo musí být globální." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "velikost (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "virtuální disk" diff --git a/netbox/translations/da/LC_MESSAGES/django.mo b/netbox/translations/da/LC_MESSAGES/django.mo index 4d2f7af440562d4e8ad12259c54ae61b0780b694..4ac351632ad6840b5e3c83cd6a017eec19392c47 100644 GIT binary patch delta 74623 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

CQ^Pzk$3Jr#qY5{`vRIK$>EpgOe4=z+4| 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 Qe>$K-SkJag0sW)=KX|1CkN^Mx delta 75020 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

)St+n)sGILo-o z_IJU|=+8qH_zx@zGj4R=4ckFostr*0$SLR#?`-7x*ERcrLN{BYO-}2xzznQQLpg>( zwRAXCfay?$tu*~U<5}Ck3svYlC_A6cPG=H9UD~2h?+tY}^Za|BR}{L52HD0esJnF| z)GOdcsGIH$R6)_VH~}(1wYWIU4ST|Ja1~U+e?i@BKcN!G+v;>C0A^v`!OcWB-z=y~ zS3q5(y-=6n2-LlB7RoN_Hm6gGVNTXrp>E1%P&Zc~RDnI94mJ_$0E?k+=6$d_JPviq z-3hikCrAP1SQpB$i?I*X-9H5S!%W39_oZIp-%qQ=)23&$AD^OGN@MOv~>mBZwl4H4p7&A2-GE* zYWgL%-U;=lbP|@-`~OoWx(PGvc3M^vs*pNRFGQ`NUhBI+b!Z^eC7KPDV4-m%)TKB8 z^-_KW>MNh)P}lk=RAB*ooX>zoU>ZIDEtu4SL!s{aYfzWqhcVJ#r-0Z{mm&q!-J2Hb z8Wu5q87RL>P%W-)`ewFn4b{QUPzM|a-8$h^+gJ$Inr%=oJQtx_`VQ)5inPypsZIjb zk@QfV$ODzIFjPm%L3OkqRL8nNU9z!I1uTYX;f{Sg|NcyFnc_RtW0-2cbC(x{x@oFH zC9DN?Z?u3)7y^|r)YikHIyA{R1Im7$aXFOVMkv4C`+5HL*qk1ghn;p%Slz@(*(}Q40@2U5b-X0k1+; z`WWin@h_-r{SE4bz6YHEQK0tYLcKtxG<{Limxqd98>)~-PzUP@bq~2mGEvJHm_eAW z&)NF9t$#vwCeb0MumGq4`Jhf(4XThKdnkYI#Pe{Txt<3fa0eQ~_0?3U2^)ZQDY1suxt8F;IRJp*k=Ns#B|>=imQq zH^p(NYkSGoH=r)f6R5}N2UI5#A9Vtxhg#=?Dx|pSD?t@r4=QmpTepQeNM|U&KG5^| ze*_b?b^_GhJ`XCuMyQ)7%(x%Q?if^{%TOn|3st~Ns7vq(Dsj|f&VF2DN~rh&uo5hO zjOSl18;wG57PFyRb`h!**P!BdEveHPngxPB{CCpjw*-%0CBG z+#*nZrJ?7Zv2_DC6Wu(4P!)AGgPu@<219jV0@QOmAL^di3U%T$P8pGce#DGJ_r@(4=BGY zrhj653)P8lQ1N|Ec?#g~f0(GnDWOh~!I&HB?X)-}^BC~=eNdO?3)Bg}Lj{g-+6fd3%0DTT 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 F{|94HP^ {obj} because it is marked as " @@ -5969,7 +5920,7 @@ msgstr "" "Kan ikke tilslutte et kabel til {obj_parent} > {obj} fordi det er markeret " "som tilsluttet." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5978,61 +5929,61 @@ msgstr "" "Duplikat opsigelse fundet for {app_label}.{model} {termination_id}: kabel " "{cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kabler kan ikke afsluttes til {type_display} grænseflader" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Kredsløbsterminationer, der er knyttet til et leverandørnetværk, er muligvis" " ikke kablet." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "er aktiv" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "er komplet" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "er splittet" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "kabelbane" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "kabelstier" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Alle terminationer med oprindelsesstatus skal være knyttet til det samme " "link" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "Alle mellemspændingsterminationer skal have samme termineringstype" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Alle mellemspændingsafslutninger skal have det samme overordnede objekt" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Alle links skal være kabel eller trådløse" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Alle links skal matche den første linktype" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6041,16 +5992,16 @@ msgstr "" "{module} accepteres som erstatning for modulpladsens position, når den er " "knyttet til en modultype." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Fysisk etiket" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Komponentskabeloner kan ikke flyttes til en anden enhedstype." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6058,7 +6009,7 @@ msgstr "" "En komponentskabelon kan ikke knyttes til både en enhedstype og en " "modultype." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6066,130 +6017,130 @@ msgstr "" "En komponentskabelon skal være tilknyttet enten en enhedstype eller en " "modultype." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "skabelon til konsolport" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "konsolportskabeloner" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "skabelon til konsolserverport" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "skabeloner til konsolserverportskabeloner" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maksimal trækning" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "tildelt lodtrækning" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "strømstikskabelon" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "strømstikskabeloner" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Tildelt lodtrækning kan ikke overstige den maksimale trækning " "({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "foderben" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fase (til trefasefoedninger)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "Strømudtag skabelon" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "strømudtagsskabeloner" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "Hovedstrømstik ({power_port}) skal tilhøre samme enhedstype" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "Hovedstrømstik ({power_port}) skal tilhøre samme modultype" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "Kun ledelse" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "brogrænseflade" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "trådløs rolle" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "grænseflade skabelon" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "interface skabeloner" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Brogrænseflade ({bridge}) skal tilhøre samme enhedstype" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Brogrænseflade ({bridge}) skal tilhøre samme modultype" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Bageste port ({rear_port}) skal tilhøre samme enhedstype" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "positioner" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "skabelon til frontport" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "frontportskabeloner" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6198,15 +6149,15 @@ msgstr "" "Antallet af positioner kan ikke være mindre end antallet af kortlagte " "bageste portskabeloner ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "bagport skabelon" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "bageste portskabeloner" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6215,34 +6166,34 @@ msgstr "" "Antallet af positioner kan ikke være mindre end antallet af kortlagte " "frontportskabeloner ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "position" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identifikator, der skal refereres til, når installerede komponenter omdøbes" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "modulbugtsskabelon" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "modulbugtsskabeloner" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "skabelon til enhedsplads" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "skabeloner til enhedsplads" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6251,21 +6202,21 @@ msgstr "" "Underenhedsrolle for enhedstypen ({device_type}) skal indstilles til " "„forælder“ for at tillade enhedspladser." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "del-ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Producenttildelt artikel-id" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "lagervareskabelon" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "lagervareskabeloner" @@ -6318,83 +6269,83 @@ msgstr "Kabelafslutningspositioner må ikke indstilles uden et kabel." msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modeller skal erklære en parent_object egenskab" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Fysisk porttype" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "hastighed" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Porthastighed i bit pr. sekund" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "konsolport" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "konsolporte" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "Konsolserverport" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "konsolserverporte" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "strømstik" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "strømstik" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "strømudtag" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "strømudtag" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "Hovedstrømstik ({power_port}) skal tilhøre den samme enhed" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "tilstand" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q-mærkningsstrategi" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "forældregrænseflade" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "umærket VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "mærkede VLAN'er" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6402,15 +6353,15 @@ msgstr "mærkede VLAN'er" msgid "Q-in-Q SVLAN" msgstr "Q-i-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "primær MAC-adresse" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Kun Q-in-Q-grænseflader kan angive et service-VLAN." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6418,77 +6369,77 @@ msgid "" msgstr "" "MAC-adresse {mac_address} er tildelt en anden grænseflade ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "forældreLAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Denne grænseflade bruges kun til administration uden for båndet" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "hastighed (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "duplex" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-bit verdensomspændende navn" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "trådløs kanal" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "kanalfrekvens (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Udfyldt af valgt kanal (hvis indstillet)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "sendeeffekt (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "trådløse LAN" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "grænseflade" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "grænseflader" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} grænseflader kan ikke have et kabel tilsluttet." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} grænseflader kan ikke markeres som tilsluttet." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "En grænseflade kan ikke være sin egen forælder." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Kun virtuelle grænseflader kan tildeles en overordnet grænseflade." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6497,7 +6448,7 @@ msgstr "" "Den valgte overordnede grænseflade ({interface}) tilhører en anden enhed " "({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6506,7 +6457,7 @@ msgstr "" "Den valgte overordnede grænseflade ({interface}) tilhører {device}, som ikke" " er en del af det virtuelle chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6514,7 +6465,7 @@ msgid "" msgstr "" "Den valgte brogrænseflade ({bridge}) tilhører en anden enhed ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6523,22 +6474,22 @@ msgstr "" "Den valgte brogrænseflade ({interface}) tilhører {device}, som ikke er en " "del af det virtuelle chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Virtuelle grænseflader kan ikke have en overordnet LAG-grænseflade." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "En LAG-grænseflade kan ikke være dens egen overordnede." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "" "Den valgte LAG-grænseflade ({lag}) tilhører en anden enhed ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6547,31 +6498,31 @@ msgstr "" "Den valgte LAG-grænseflade ({lag}) tilhører {device}, som ikke er en del af " "det virtuelle chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanal kan kun indstilles på trådløse grænseflader." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "Kanalfrekvensen kan kun indstilles på trådløse grænseflader." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Kan ikke angive brugerdefineret frekvens med valgt kanal." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "Kanalbredden kan kun indstilles på trådløse grænseflader." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Kan ikke angive brugerdefineret bredde med valgt kanal." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Interface-tilstand understøtter ikke et umærket vlan." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6580,20 +6531,20 @@ msgstr "" "Den umærkede VLAN ({untagged_vlan}) skal tilhøre det samme område som " "grænsefladens overordnede enhed, eller det skal være globalt." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Bageste port ({rear_port}) skal tilhøre den samme enhed" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "Frontport" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "frontporte" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6602,15 +6553,15 @@ msgstr "" "Antallet af positioner kan ikke være mindre end antallet af kortlagte " "bagporte ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "bageste port" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "bageste porte" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6619,37 +6570,37 @@ msgstr "" "Antallet af positioner kan ikke være mindre end antallet af kortlagte " "frontporte ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "modulplads" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "modulpladser" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "En modulplads kan ikke tilhøre et modul, der er installeret i den." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "enhedsplads" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "enhedsbugter" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Denne type enhed ({device_type}) understøtter ikke enhedsbugter." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Kan ikke installere en enhed i sig selv." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6657,60 +6608,60 @@ msgstr "" "Kan ikke installere den angivne enhed; enheden er allerede installeret i " "{bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "lagervarerolle" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "lagervareroller" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "serienummer" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "aktivmærke" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Et unikt tag, der bruges til at identificere dette element" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "opdaget" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Dette element blev automatisk opdaget" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "lagerpost" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "lagervarer" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Kan ikke tildele mig selv som forælder." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Overordnet lagervare tilhører ikke den samme enhed." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Kan ikke flytte en lagervare med afhængige underordnede" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Kan ikke tildele lagervare til komponent på en anden enhed" @@ -7593,10 +7544,10 @@ msgstr "Tilgængelig" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7608,8 +7559,7 @@ msgid "VMs" msgstr "VM'er" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7712,7 +7662,7 @@ msgstr "Enhedens placering" msgid "Device Site" msgstr "Enhedswebsted" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Modulbugt" @@ -7772,7 +7722,7 @@ msgstr "MAC-adresser" msgid "FHRP Groups" msgstr "FHRP Grupper" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7788,7 +7738,7 @@ msgstr "Kun ledelse" msgid "VDCs" msgstr "VDC'er" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Virtuelt kredsløb" @@ -7861,7 +7811,7 @@ msgid "Module Types" msgstr "Modultyper" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platforme" @@ -7962,7 +7912,7 @@ msgstr "Enhedsbugter" msgid "Module Bays" msgstr "Modulbugter" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Modulantal" @@ -8040,7 +7990,7 @@ msgstr "{} millimeter" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Serienummer" @@ -8050,7 +8000,7 @@ msgid "Maximum weight" msgstr "Maksimal vægt" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Ledelse" @@ -8098,18 +8048,27 @@ msgstr "{} A" msgid "Primary for interface" msgstr "Primær til grænseflade" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Virtuelle chassismedlemmer" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Strømforbrug" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN oversættelse" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Kan ikke installere modul med pladsholderværdier i et modullaurbærtræ " +"{level} niveauer dybe, men {tokens} pladsholdere givet." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8150,9 +8109,8 @@ msgid "Application Services" msgstr "Applikationstjenester" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Konfigurationskontekst" @@ -8161,7 +8119,7 @@ msgstr "Konfigurationskontekst" msgid "Render Config" msgstr "Gengivelseskonfiguration" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8224,7 +8182,7 @@ msgstr "Kan ikke fjerne masterenheden {device} fra det virtuelle chassis." msgid "Removed {device} from virtual chassis {chassis}" msgstr "Fjernet {device} fra virtuelt chassis {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Ukendt relateret objekt (er): {name}" @@ -8233,12 +8191,16 @@ msgstr "Ukendt relateret objekt (er): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Ændring af typen af brugerdefinerede felter understøttes ikke." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Der findes allerede et script-modul med dette filnavn." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Planlægning er ikke aktiveret for dette script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Planlagt tid skal være i fremtiden." @@ -8415,8 +8377,7 @@ msgid "White" msgstr "Hvid" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8560,12 +8521,12 @@ msgstr "Bogmærker" msgid "Show your personal bookmarks" msgstr "Vis dine personlige bogmærker" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Ukendt handlingstype for en hændelsesregel: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Kan ikke importere hændelsespipeline {name} fejl: {error}" @@ -8585,7 +8546,7 @@ msgid "Group (name)" msgstr "Gruppe (navn)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Klyngetype" @@ -8605,7 +8566,7 @@ msgid "Tenant group (slug)" msgstr "Lejergruppe (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Mærke" @@ -8618,29 +8579,30 @@ msgid "Has local config context data" msgstr "Har lokale konfigurationskontekstdata" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Gruppenavn" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Påkrævet" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Skal være unik" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "UI synlig" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Brugergrænseflade redigerbar" @@ -8649,10 +8611,12 @@ msgid "Is cloneable" msgstr "Kan klones" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimumsværdi" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maksimal værdi" @@ -8661,8 +8625,7 @@ msgid "Validation regex" msgstr "Validering regex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Adfærd" @@ -8676,7 +8639,8 @@ msgstr "Knapklasse" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME-type" @@ -8698,31 +8662,29 @@ msgstr "Som vedhæftet fil" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Delt" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP-metode" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Nyttelast-URL" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL verifikation" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Hemmelighed" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA-filsti" @@ -8872,9 +8834,9 @@ msgstr "Tildelt objekttype" msgid "The classification of entry" msgstr "Klassificering af indrejse" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8883,12 +8845,12 @@ msgid "Comments" msgstr "Bemærkninger" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Brugere" @@ -8897,9 +8859,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Brugernavne adskilt af kommaer, indkapslet med dobbelte anførselstegn" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8944,6 +8905,7 @@ msgid "Content types" msgstr "Indholdstyper" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP-indholdstype" @@ -9015,7 +8977,7 @@ msgstr "Lejergrupper" msgid "The type(s) of object that have this custom field" msgstr "Type (r) af objekt, der har dette brugerdefinerede felt" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Standardværdi" @@ -9024,7 +8986,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Type af det relaterede objekt (kun for objekt-/flerobjektfelter)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Relateret objektfilter" @@ -9032,8 +8993,7 @@ msgstr "Relateret objektfilter" msgid "Specify query parameters as a JSON object." msgstr "Angiv forespørgselsparametre som et JSON-objekt." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Brugerdefineret felt" @@ -9064,12 +9024,11 @@ msgstr "" "Indtast et valg pr. linje. Der kan angives en valgfri etiket for hvert valg " "ved at tilføje det med et kolon. Eksempel:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Brugerdefineret feltvalgssæt" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Brugerdefineret link" @@ -9097,8 +9056,7 @@ msgstr "Jinja2 skabelonkode til linket URL. Henvis objektet som {example}." msgid "Template code" msgstr "Skabelonkode" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Eksport skabelon" @@ -9109,14 +9067,13 @@ msgstr "" "Skabelonindhold udfyldes fra den fjerntliggende kilde, der er valgt " "nedenfor." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Gemt filter" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Bestilling" @@ -9140,13 +9097,11 @@ msgstr "Udvalgte kolonner" msgid "A notification group specify at least one user or group." msgstr "En meddelelsesgruppe angiver mindst én bruger eller gruppe." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP-anmodning" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9166,8 +9121,7 @@ msgstr "" "Indtast parametre, der skal overføres til handlingen i JSON formatere." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Begivenhedsregel" @@ -9179,8 +9133,7 @@ msgstr "Udløsere" msgid "Notification group" msgstr "Meddelelsesgruppe" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Konfigurer kontekstprofil" @@ -9271,7 +9224,7 @@ msgstr "konfig-kontekstprofiler" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "vægt" @@ -9827,7 +9780,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Aktivér SSL-certifikatbekræftelse. Deaktiver med forsigtighed!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA-filsti" @@ -10128,9 +10081,8 @@ msgstr "Afvis" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10153,7 +10105,6 @@ msgid "Related Object Type" msgstr "Relateret objekttype" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Valgsæt" @@ -10162,12 +10113,10 @@ msgid "Is Cloneable" msgstr "Kan klones" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimumsværdi" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maksimal værdi" @@ -10177,9 +10126,9 @@ msgstr "Validering Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10196,50 +10145,44 @@ msgid "Order Alphabetically" msgstr "Ordre alfabetisk" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nyt vindue" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME-type" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Filnavn" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Filendelse" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Som vedhæftet fil" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Synkroniseret" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Billede" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Filnavn" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Størrelse" @@ -10247,38 +10190,36 @@ msgstr "Størrelse" msgid "Table Name" msgstr "Tabelnavn" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Læs" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL Validering" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL-bekræftelse" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Begivenhedstyper" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automatisk synkronisering aktiveret" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Enhedsroller" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Kommentarer (kort)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linje" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Fremgangsmåde" @@ -10290,7 +10231,7 @@ msgstr "Der opstod en fejl under forsøget på at gengive denne widget:" msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "Prøv at omkonfigurere widgeten, eller fjern den fra dit dashboard." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10303,11 +10244,78 @@ msgstr "Prøv at omkonfigurere widgeten, eller fjern den fra dit dashboard." msgid "Custom Fields" msgstr "Brugerdefinerede felter" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Vedhæft et billede" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonbar" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Skærmvægt" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Valideringsregler" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Regulært udtryk" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Relaterede objekter" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Brugt af" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Vedhæftet fil" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Tildelte modeller" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Tabelkonfiguration" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Viste kolonner" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Meddelelsesgruppe" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Tilladte objekttyper" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Mærkede varetyper" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Billedvedhæftning" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Overordnet objekt" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Journalindtastning" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10345,32 +10353,68 @@ msgstr "Ugyldig attribut“{name}„på forespørgsel" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Ugyldig attribut“{name}„til {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Linktekst" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "Link URL" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Miljøparametre" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Skabelon" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Yderligere overskrifter" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Kropsskabelon" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Betingelser" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Mærkede objekter" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON-skema" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Der opstod en fejl under gengivelse af skabelonen: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Dit dashboard er blevet nulstillet." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Tilføjet widget: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Opdateret widget: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Slettet widget: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Fejl ved sletning af widget: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Kan ikke køre script: RQ-arbejderprocessen kører ikke." @@ -10602,7 +10646,7 @@ msgstr "FHRP-gruppen (ID)" msgid "IP address (ID)" msgstr "IP-adresse (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP adresse" @@ -10708,7 +10752,7 @@ msgstr "Er en pool" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Behandl som fuldt udnyttet" @@ -10721,7 +10765,7 @@ msgstr "VLAN-tildeling" msgid "Treat as populated" msgstr "Behandl som befolket" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS-navn" @@ -11243,184 +11287,184 @@ msgstr "" "Præfikser kan ikke overlappe aggregater. {prefix} dækker et eksisterende " "aggregat ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "roller" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "præfiks" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "IPv4- eller IPv6-netværk med maske" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Driftsstatus for dette præfiks" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Den primære funktion af dette præfiks" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "er en pool" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Alle IP-adresser inden for dette præfiks betragtes som brugbare" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "brugt mærke" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "præfikser" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Kan ikke oprette præfiks med /0-maske." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "global tabel" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Duplikat præfiks fundet i {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "startadresse" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4- eller IPv6-adresse (med maske)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "slutadresse" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Driftsstatus for denne rækkevidde" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Den primære funktion af dette interval" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "mærke befolket" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Forhindre oprettelse af IP-adresser inden for dette interval" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Rapportplads som fuldt udnyttet" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP-rækkevidde" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP-intervaller" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Startende og afsluttende IP-adresseversioner skal matche" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Startende og afsluttende IP-adressemasker skal matche" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Slutadressen skal være større end startadressen ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Definerede adresser overlapper med rækkevidde {overlapping_range} i VRF " "{vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Defineret interval overstiger den maksimale understøttede størrelse " "({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adresse" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Den operationelle status for denne IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Den funktionelle rolle af denne IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (indvendigt)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "Den IP, som denne adresse er den „eksterne“ IP for" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Værtsnavn eller FQDN (skelner ikke mellem store og små bogstaver)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP-adresser" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Kan ikke oprette IP-adresse med /0-maske." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} er et netværks-id, som muligvis ikke tildeles en grænseflade." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" "{ip} er en udsendelsesadresse, som muligvis ikke tildeles en grænseflade." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Duplikat IP-adresse fundet i {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Kan ikke oprette IP-adresse {ip} inden for rækkevidde {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11428,7 +11472,7 @@ msgstr "" "Kan ikke omtildele IP-adresse, mens den er angivet som den primære IP for " "det overordnede objekt" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11436,7 +11480,7 @@ msgstr "" "Kan ikke omtildele IP-adresse, mens den er angivet som OOB-IP for det " "overordnede objekt" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Kun IPv6-adresser kan tildeles SLAAC-status" @@ -12016,8 +12060,9 @@ msgstr "Grå" msgid "Dark Grey" msgstr "Mørkegrå" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Standard" @@ -12947,67 +12992,67 @@ msgstr "" msgid "Cannot delete stores from registry" msgstr "Kan ikke slette butikker fra registreringsdatabasen" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Tjekkisk" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "dansk" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Tysk" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "engelsk" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "spansk" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "franskmænd" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italiensk" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japansk" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Lettisk" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Hollandsk" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Polere" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "portugisisk" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Russisk" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Tyrkisk" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukrainsk" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "kinesisk" @@ -13035,6 +13080,7 @@ msgid "Field" msgstr "Mark" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Værdi" @@ -13066,11 +13112,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS-koordinater" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Relaterede objekter" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13316,7 +13357,6 @@ msgid "Toggle All" msgstr "Skift alle" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabel" @@ -13372,13 +13412,9 @@ msgstr "Tildelte grupper" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13386,6 +13422,7 @@ msgstr "Tildelte grupper" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Ingen" @@ -13548,7 +13585,7 @@ msgid "Changed" msgstr "Ændret" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bytes" @@ -13601,12 +13638,11 @@ msgid "Job retention" msgstr "Jobfastholdelse" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Datafilen, der er knyttet til dette objekt, er blevet slettet" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Data synkroniseret" @@ -14289,12 +14325,6 @@ msgstr "Tilføj Rack" msgid "Add Site" msgstr "Tilføj område" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Vedhæftet fil" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14451,82 +14481,10 @@ msgstr "" "legitimationsoplysninger og sende en forespørgsel til " "%(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON-skema" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Miljøparametre" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Skabelon" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Gruppenavn" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Skal være unik" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonbar" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Standardværdi" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Søg Vægt" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filterlogik" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Skærmvægt" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Brugergrænseflade Synlig" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Brugergrænseflade Redigerbar" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Valideringsregler" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Regelmæssigt udtryk" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Knapklasse" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Tildelte modeller" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Linktekst" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "Link URL" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "valg" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14597,10 +14555,6 @@ msgstr "Der opstod et problem med at hente RSS-feedet" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Betingelser" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Planlagt til" @@ -14622,14 +14576,6 @@ msgstr "Udgang" msgid "Download" msgstr "Hent" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Billedvedhæftning" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Overordnet objekt" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Indlæser" @@ -14678,24 +14624,6 @@ msgstr "" "Kom i gang med Oprettelse af et script" " fra en uploadet fil eller datakilde." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Journalindtastning" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Oprettet af" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Meddelelsesgruppe" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Ingen tildelt" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Den lokale konfigurationskontekst overskriver alle kildekontekster" @@ -14751,6 +14679,16 @@ msgstr "Skabelonoutput er tom" msgid "No configuration template has been assigned." msgstr "Der er ikke tildelt nogen konfigurationsskabelon." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Ingen tildelt" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Enhver" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14787,14 +14725,6 @@ msgstr "Logtærskel" msgid "All" msgstr "Alle" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Tabelkonfiguration" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Viste kolonner" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14812,46 +14742,6 @@ msgstr "Flyt op" msgid "Move Down" msgstr "Flyt ned" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Mærkede varer" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Tilladte objekttyper" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Enhver" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Mærkede varetyper" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Mærkede objekter" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP-metode" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP-indholdstype" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL Bekræftelse" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Yderligere overskrifter" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Kropsskabelon" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Masseoprettelse" @@ -14924,10 +14814,6 @@ msgstr "Feltindstillinger" msgid "Accessor" msgstr "Tilbehør" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "valg" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Importværdi" @@ -15436,6 +15322,7 @@ msgstr "Virtuelle CPU'er" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Hukommelse" @@ -15445,8 +15332,8 @@ msgid "Disk Space" msgstr "Diskplads" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Ressourcer" @@ -16501,13 +16388,13 @@ msgstr "" "Dette objekt er blevet ændret, siden formularen blev gengivet. Se objektets " "ændringslog for detaljer." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Rækkevidde“{value}„er ugyldig." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16516,38 +16403,38 @@ msgstr "" "Ugyldigt område: Slutværdi ({end}) skal være større end startværdien " "({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Duplikat eller modstridende kolonneoverskrift for“{field}„" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Duplikat eller modstridende kolonneoverskrift for“{header}„" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Række {row}: Forventet {count_expected} kolonner, men fundet {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Uventet kolonneoverskrift“{field}„fundet." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Kolonne“{field}„er ikke et beslægtet objekt; kan ikke bruge prikker" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Ugyldig relateret objektattribut for kolonne“{field}„: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Påkrævet kolonneoverskrift“{header}„Ikke fundet." @@ -16564,7 +16451,7 @@ msgid "Missing required value for static query param: '{static_params}'" msgstr "" "Mangler påkrævet værdi for statisk forespørgselsparam: '{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automatisk indstillet)" @@ -16763,30 +16650,42 @@ msgstr "Klyngetype (ID)" msgid "Cluster (ID)" msgstr "Klynge (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Start ved opstart" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU'er" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Hukommelse (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disken" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disk (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Hukommelse ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Størrelse (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disk ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Størrelse ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16808,15 +16707,15 @@ msgstr "Tildelt klynge" msgid "Assigned device within cluster" msgstr "Tildelt enhed inden for klynge" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Klyngetype" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Klyngegruppe" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16825,23 +16724,18 @@ msgstr "" "{device} tilhører en anden {scope_field} ({device_scope}) end klyngen " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "Fastgør eventuelt denne VM til en bestemt værtsenhed i klyngen" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Område/Cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Diskstørrelse styres via vedhæftning af virtuelle diske." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disken" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "klyngetype" @@ -16889,12 +16783,12 @@ msgid "start on boot" msgstr "start på opstart" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "hukommelse (MB)" +msgid "memory" +msgstr "hukommelse" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disk (MB)" +msgid "disk" +msgstr "diskette" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16974,10 +16868,6 @@ msgstr "" "Den umærkede VLAN ({untagged_vlan}) skal tilhøre det samme område som " "grænsefladens overordnede virtuelle maskine, eller den skal være global." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "størrelse (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "virtuel disk" diff --git a/netbox/translations/de/LC_MESSAGES/django.mo b/netbox/translations/de/LC_MESSAGES/django.mo index 35b9ab0d2f6a08bc677669fe5067f1411b17e75d..1eb21057506d0a04cd64a3d2cb670f08d2de3c17 100644 GIT binary patch delta 74666 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 Qm*22Rp%Eg4n;i5100lS|o&W#< delta 75046 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 DQTHc_ diff --git a/netbox/translations/de/LC_MESSAGES/django.po b/netbox/translations/de/LC_MESSAGES/django.po index 00dfbe247..28982c430 100644 --- a/netbox/translations/de/LC_MESSAGES/django.po +++ b/netbox/translations/de/LC_MESSAGES/django.po @@ -10,17 +10,17 @@ # haagehan, 2024 # Robin Reinhardt, 2025 # Niklas, 2025 -# chbally, 2026 # Jeremy Stretch, 2026 +# chbally, 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" -"Last-Translator: Jeremy Stretch, 2026\n" +"Last-Translator: chbally, 2026\n" "Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -52,9 +52,9 @@ msgstr "Dein Passwort wurde erfolgreich geändert." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -68,21 +68,20 @@ msgstr "Provisionierung" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Aktiv" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Offline" @@ -95,7 +94,7 @@ msgstr "Deprovisionierung" msgid "Decommissioned" msgstr "Stillgelegt" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -207,13 +206,13 @@ msgstr "Standortgruppe (URL-Slug)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -337,7 +336,7 @@ msgstr "Suche" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -471,8 +470,8 @@ msgstr "Dienst ID" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Farbe" @@ -483,7 +482,7 @@ msgstr "Farbe" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -511,15 +510,15 @@ msgstr "Farbe" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -565,7 +564,7 @@ msgstr "Providerkonto" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -581,12 +580,12 @@ msgstr "Providerkonto" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -644,12 +643,12 @@ msgstr "Status" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -734,10 +733,10 @@ msgstr "Service Parameter" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -762,8 +761,8 @@ msgstr "Attribute" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -786,30 +785,19 @@ msgstr "Mandantenverhältnis" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Beschreibung" @@ -861,7 +849,7 @@ msgstr "Einzelheiten zum Abschlusspunkt" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -915,10 +903,10 @@ msgstr "Providernetzwerk" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1006,7 +994,7 @@ msgstr "Operative Rolle" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1019,7 +1007,7 @@ msgstr "Operative Rolle" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1058,8 +1046,8 @@ msgstr "Schnittstelle" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1113,12 +1101,12 @@ msgstr "Lokation" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1143,9 +1131,9 @@ msgstr "Verantwortlichkeit" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1169,9 +1157,9 @@ msgstr "Kontakte" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Region" @@ -1188,9 +1176,9 @@ msgstr "Region" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Standortgruppe" @@ -1199,7 +1187,7 @@ msgstr "Standortgruppe" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Konto" @@ -1208,9 +1196,9 @@ msgid "Term Side" msgstr "Terminationsseite" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1238,10 +1226,10 @@ msgstr "Zuweisung" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1282,13 +1270,13 @@ msgid "Group Assignment" msgstr "Gruppenzuweisung" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1315,14 +1303,14 @@ msgstr "Eindeutige Transportnetz-ID" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1418,7 +1406,7 @@ msgstr "Patchpanel-ID und Anschlussnummer(n)" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1452,7 +1440,7 @@ msgstr "" #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1547,8 +1535,8 @@ msgstr "virtuelle Verbindung" msgid "virtual circuits" msgstr "virtuelle Verbindungen" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "Rolle" @@ -1585,10 +1573,10 @@ msgstr "virtuelle Verbindungsabschlüsse" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1596,26 +1584,14 @@ msgstr "virtuelle Verbindungsabschlüsse" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1628,8 +1604,8 @@ msgstr "virtuelle Verbindungsabschlüsse" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1713,7 +1689,7 @@ msgstr "ASN-Anzahl" msgid "Terminations" msgstr "Abschlusspunkte" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1747,7 +1723,7 @@ msgstr "Abschlusspunkte" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1757,10 +1733,10 @@ msgstr "Abschlusspunkte" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1835,7 +1811,7 @@ msgstr "Abgeschlossen" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Fehlgeschlagen" @@ -1895,14 +1871,13 @@ msgid "30 days" msgstr "30 Tage" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2016,7 +1991,7 @@ msgid "User name" msgstr "Benutzername" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2025,17 +2000,13 @@ msgstr "Benutzername" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Aktiviert" @@ -2045,12 +2016,11 @@ msgid "Sync interval" msgstr "Synchronisierungsintervall" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parameter" @@ -2063,16 +2033,15 @@ msgstr "Regeln ignorieren" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Datenquelle" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Datei" @@ -2090,10 +2059,9 @@ msgstr "Erstellung" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Objekttyp" @@ -2138,9 +2106,7 @@ msgstr "Abgeschlossen vor" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2149,8 +2115,8 @@ msgid "User" msgstr "Nutzer" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Zeit" @@ -2163,8 +2129,7 @@ msgid "Before" msgstr "Vorher" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Aktion" @@ -2205,7 +2170,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Rackübersichten" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2351,20 +2316,20 @@ msgid "Config revision #{id}" msgstr "Konfigurationsrevision #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2373,13 +2338,13 @@ msgstr "Typ" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2445,7 +2410,7 @@ msgstr "" msgid "last updated" msgstr "zuletzt aktualisiert" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "Pfad" @@ -2453,7 +2418,8 @@ msgstr "Pfad" msgid "File path relative to the data source's root" msgstr "Dateipfad relativ zum Stammverzeichnis des Daten Verzeichnisses" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "Größe" @@ -2608,12 +2574,11 @@ msgstr "Vollständiger Name" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Objekt" @@ -2623,7 +2588,7 @@ msgid "Request ID" msgstr "Anfragen-ID" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Nachricht" @@ -2652,7 +2617,7 @@ msgstr "Letzte Aktualisierung" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2668,8 +2633,8 @@ msgstr "Intervall" msgid "Log Entries" msgstr "Logeinträge" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Stufe" @@ -2789,11 +2754,10 @@ msgid "Backend" msgstr "Backend" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2852,8 +2816,7 @@ msgstr "Warteschlangen Job {id}beim Synchronisieren {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Daten" @@ -2918,11 +2881,24 @@ msgstr "Der Schnittstellenmodus unterstützt kein ungetaggtes VLAN" msgid "Interface mode does not support tagged vlans" msgstr "Der Schnittstellenmodus unterstützt keine getaggten VLANs" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Position (HE)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Das Modul mit Platzhalterwerten kann nicht in einem Modulschacht ohne " +"definierte Position installiert werden." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "Ein {model} genannt {name} existiert bereits" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "Einrichtungs-ID" @@ -2950,8 +2926,8 @@ msgid "Staging" msgstr "Bereitstellung" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Außerbetriebnahme" @@ -3017,7 +2993,7 @@ msgstr "Veraltet" msgid "Millimeters" msgstr "Millimeter" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Zoll" @@ -3054,14 +3030,14 @@ msgstr "Abgestanden" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3089,7 +3065,7 @@ msgid "Rear" msgstr "Rückseite" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Vorbereitet" @@ -3122,7 +3098,7 @@ msgid "Top to bottom" msgstr "Von oben nach unten" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Passiv" @@ -3151,8 +3127,8 @@ msgid "Proprietary" msgstr "Propritär" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Andere" @@ -3165,350 +3141,354 @@ msgstr "ITA/International" msgid "Physical" msgstr "Physikalisch" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtuell" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Funknetze" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Virtuelle Schnittstellen" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Bridge" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Link Aggregation Group (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "FastEthernet (100 Mbit/s)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "Gigabit-Ethernet (1 Gbit/s)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2,5/5 Gbit/s Ethernet" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10-Gbit/s-Ethernet" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25-Gbit/s-Ethernet" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40-Gbit/s-Ethernet" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50-Gbit/s-Ethernet" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100 Gbit/s Ethernet" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200 Gbit/s Ethernet" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400-Gbit/s-Ethernet" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 Gbit/s Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "1,6 Tbit/s Ethernet" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Steckbare Transceiver" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Backplane-Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Mobilfunk" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Seriell" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Koaxial" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Stapelnd" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Halb" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Voll" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Automatisch" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Untagged" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Tagged" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Tagged (Alle)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q in Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "IEEE-Standard" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Passiv 24 V (2 Paare)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Passiv 24 V (4 Paare)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Passiv 48 V (2 Paare)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Passiv 48 V (4 Paare)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Kupfer" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Glasfaser" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Einzeln" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1C1P" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1C4P" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "1C6P" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "1C8P" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1C12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Trunk" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P trunk" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P trunk" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P trunk" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "2C4P trunk (shuffle)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "2C6P trunk" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "2C8P trunk" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P trunk" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P trunk" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P trunk" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P trunk" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P trunk (shuffle)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P trunk" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P trunk" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P trunk" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Breakout" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P:2C1P-Breakout" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P:4C1P breakout" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P:6C1P breakout" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P:8C1P breakout (shuffle)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Kupfer — Twisted Pair (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Kupfer - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Kupfer - Koaxial" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Glasfaser — Multimode" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Glasfaser — Singlemode" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Glasfaser - Andere" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Verbunden" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Kilometer" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Meter" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Zentimeter" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Meilen" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Fuß" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Redundant" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Einphasig" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Dreiphasig" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Deaktiviert" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Fehlerhaft" @@ -3792,17 +3772,17 @@ msgstr "Hat volle Tiefe" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC-Adresse" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Hat eine primäre IP" @@ -3940,7 +3920,7 @@ msgid "Is primary" msgstr "Ist primär" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "802.1Q-Modus" @@ -3957,8 +3937,8 @@ msgstr "Zugewiesene VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3969,18 +3949,18 @@ msgstr "Zugewiesene VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3997,10 +3977,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -4014,11 +3994,11 @@ msgstr "VLAN-Übersetzungsrichtlinie (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "VLAN-Übersetzungsrichtlinie" @@ -4066,7 +4046,7 @@ msgstr "Primäre MAC-Adresse (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Primäre MAC-Adresse" @@ -4126,7 +4106,7 @@ msgstr "Stromverteiler (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4196,7 +4176,7 @@ msgstr "Zeitzone" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4267,11 +4247,6 @@ msgstr "Einbautiefe" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Gewicht" @@ -4304,7 +4279,7 @@ msgstr "Äußere Abmessungen" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Abmessungen" @@ -4356,7 +4331,7 @@ msgstr "Luftstrom" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Rack" @@ -4409,11 +4384,10 @@ msgstr "Schema" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profil" @@ -4423,7 +4397,7 @@ msgstr "Profil" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Modultyp" @@ -4446,8 +4420,8 @@ msgstr "VM-Rolle" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Konfigurationsvorlage" @@ -4469,10 +4443,10 @@ msgstr "Geräterolle" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Betriebssystem" @@ -4484,13 +4458,13 @@ msgstr "Betriebssystem" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4498,7 +4472,7 @@ msgstr "Cluster" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Konfiguration" @@ -4522,7 +4496,7 @@ msgstr "Modultyp" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Label" @@ -4572,8 +4546,8 @@ msgid "Maximum draw" msgstr "Maximale Auslastung" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Maximale Leistungsaufnahme (Watt)" @@ -4582,8 +4556,8 @@ msgid "Allocated draw" msgstr "Zugewiesene Leistungsaufnahme" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Zugewiesene Leistungsaufnahme (Watt)" @@ -4598,23 +4572,23 @@ msgid "Feed leg" msgstr "Phasenlage" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Nur Management" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "PoE-Modus" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "PoE-Typ" @@ -4630,7 +4604,7 @@ msgid "Module" msgstr "Modul" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4641,14 +4615,14 @@ msgstr "Virtual Device Contexts" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Geschwindigkeit" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4661,25 +4635,25 @@ msgstr "Modus" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "VLAN-Gruppe" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "Untagged VLAN" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Getaggte VLANs" @@ -4694,7 +4668,7 @@ msgstr "Getaggte VLANs entfernen" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Q-in-Q-Dienst-VLAN" @@ -4704,26 +4678,26 @@ msgid "Wireless LAN group" msgstr "WLAN-Gruppe" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "WLANs" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Adressierung" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Dienst / Port" @@ -4734,16 +4708,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Verwandte Schnittstellen" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "802.1Q-Switching" @@ -5032,13 +5006,13 @@ msgstr "Elektrische Phase (für dreiphasige Stromkreise)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Übergeordnete Schnittstelle" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Überbrückte Schnittstelle" @@ -5187,13 +5161,13 @@ msgstr "Übergeordnetes Gerät der zugewiesenen Schnittstelle (falls vorhanden)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Virtuelle Maschine" @@ -5352,13 +5326,13 @@ msgstr "Primäre IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "IPv6-Adresse mit Präfixlänge, z. B. 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5368,34 +5342,12 @@ msgstr "" "übergeordnete Gerät/die übergeordnete VM der Schnittstelle, oder sie müssen " "global sein" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Das Modul mit Platzhalterwerten kann nicht in einem Modulschacht ohne " -"definierte Position installiert werden." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Modul mit Platzhalterwerten kann nicht in einem Modul-Baytree installiert " -"werden {level} in einem Baum, aber {tokens} Platzhalter angegeben." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "" "Kann nicht {model} {name} aufnehmenm, da es schon zu einem Modul gehört" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "Ein {model} genannt {name} existiert bereits" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5483,7 +5435,7 @@ msgstr "Hat Virtual Device Contexts" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Clustergruppe" @@ -5499,7 +5451,7 @@ msgstr "Belegt" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Verbindung" @@ -5507,8 +5459,7 @@ msgstr "Verbindung" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Art" @@ -5517,12 +5468,12 @@ msgid "Mgmt only" msgstr "Nur Verwaltung" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "802.1Q-Modus" @@ -5538,7 +5489,7 @@ msgstr "Kanalfrequenz (MHz)" msgid "Channel width (MHz)" msgstr "Kanalbreite (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Sendeleistung (dBm)" @@ -5588,9 +5539,9 @@ msgstr "Art des Geltungsbereichs" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5870,11 +5821,11 @@ msgstr "VM-Schnittstelle" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5946,7 +5897,7 @@ msgid "profile" msgstr "Profil" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5968,45 +5919,45 @@ msgstr "Kabel" msgid "cables" msgstr "Kabel" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Bei der Eingabe einer Kabellänge muss eine Einheit angegeben werden" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "" "Beim Erstellen eines neuen Kabels müssen A- und B-Anschlüsse definiert " "werden." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Verschiedene Anschlusstypen können nicht an dasselbe Kabelende angeschlossen" " werden." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Inkompatible Verbindungssarten: {type_a} und {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "" "A- und B-Anschlüsse können nicht mit demselben Objekt verbunden werden." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "Ende" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "Kabelabschlusspunkt" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "Kabelabschlusspunkte" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -6015,7 +5966,7 @@ msgstr "" "Es kann kein Kabel angeschlossen werden an {obj_parent} > {obj} weil es als " "verbunden markiert ist." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6024,62 +5975,62 @@ msgstr "" "Doppelte Terminierung gefunden für {app_label}.{model} {termination_id}: " "Kabel {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kabel können nicht an {type_display} Schnittstellen terminiert werden" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Transportnetzabschlüsse, die an ein Provider-Netzwerk angeschlossen sind, " "sind möglicherweise nicht verkabelt." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "ist aktiv" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "ist abgeschlossen" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "ist aufgeteilt" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "Kabelweg" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "Kabelwege" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Alle ursprünglichen Verbindungsabschlüsse müssen an denselben Link angehängt" " werden" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Alle Mid-Span-Verbindungsabschlüsse müssen denselben Abschlusstyp haben" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Ein Verbindungsabschluss muss an einem Abschlussobjekt verbunden werden." -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Alle Verbindungen müssen verkabelt oder drahtlos sein" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Alle Links müssen dem ersten Linktyp entsprechen" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6088,18 +6039,18 @@ msgstr "" "{module} wird als Ersatz für die Position des Modulschachts akzeptiert, wenn" " es an einen Modultyp angehängt wird." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Physisches Label" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Komponentenvorlagen können nicht auf einen anderen Gerätetyp verschoben " "werden." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6107,7 +6058,7 @@ msgstr "" "Eine Komponentenvorlage kann nicht gleichzeitig einem Gerätetyp und einem " "Modultyp zugeordnet werden." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6115,134 +6066,134 @@ msgstr "" "Eine Komponentenvorlage muss entweder einem Gerätetyp oder einem Modultyp " "zugeordnet sein." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "Vorlage für Konsolenanschluss" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "Vorlagen für Konsolenanschlüsse" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "Portvorlage für Konsolenserver" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "Portvorlagen für Konsolenserver" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maximale Leistungsaufnahme" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "zugewiesene Leistungsaufnahme" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "Vorlage für Stromanschluss" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "Vorlagen für Stromanschlüsse" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Die zugewiesene Leistungsaufnahme darf die maximale Leistung " "({maximum_draw}W) nicht überschreiten." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "Phasenlage" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Phase (bei dreiphasiger Stromzufuhr)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "Vorlage für Stromabgang" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "Vorlagen für Steckdosen" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Übergeordneter Stromanschluss ({power_port}) muss zum gleichen Gerätetyp " "gehören" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Übergeordneter Stromanschluss ({power_port}) muss zum gleichen Modultyp " "gehören" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "Nur Verwaltung" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "Bridge-Schnittstelle" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "WLAN Rolle" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "Schnittstellenvorlage" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "Schnittstellenvorlagen" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Bridge-Schnittstelle ({bridge}) muss zum gleichen Gerätetyp gehören" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Bridge-Schnittstelle ({bridge}) muss zum gleichen Modultyp gehören" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Rückanschluss ({rear_port}) muss zum gleichen Gerätetyp gehören" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "Positionen" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "Frontanschluss-Vorlage" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "Frontanschluss-Vorlagen" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6251,15 +6202,15 @@ msgstr "" "Die Anzahl der Positionen darf nicht kleiner sein als die Anzahl der " "zugewiesenen Ports für den Rückanschluss ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "Vorlage für den Rückanschluss" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "Vorlagen für Rückanschlüsse" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6268,34 +6219,34 @@ msgstr "" "Die Anzahl der Positionen darf nicht kleiner sein als die Anzahl " "zugewiesenen Ports der Frontanschlüsse ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "Position" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Bezeichner, auf den beim Umbenennen installierter Komponenten verwiesen wird" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "Vorlage für Moduleinsatz" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "Vorlagen für Moduleinsätze" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "Vorlage für Geräteeinsatz" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "Vorlagen für Geräteeinsätze" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6304,21 +6255,21 @@ msgstr "" "Untergeräterolle des Gerätetyps ({device_type}) muss auf „Übergeordnet“ " "gesetzt sein, um Geräteschächte zuzulassen." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "Teile-ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Vom Hersteller zugewiesene Teile-ID" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "Vorlage für Inventarartikel" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "Vorlagen für Inventarartikel" @@ -6377,84 +6328,84 @@ msgid "{class_name} models must declare a parent_object property" msgstr "" "{class_name} Modelle müssen eine parent_object-Eigenschaft deklarieren" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Physischer Anschlusstyp" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "Geschwindigkeit" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Anschlussgeschwindigkeit in Bit pro Sekunde" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "Konsolenanschluss" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "Konsolenanschlüsse" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "Konsolenserveranschluss" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "Konsolenserveranschlüsse" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "Stromanschluss" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "Stromanschlüsse" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "Stromabgang" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "Steckdosen" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Übergeordneter Stromanschluss ({power_port}) muss zum selben Gerät gehören" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "Modus" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q-Tagging-Strategie" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "übergeordnete Schnittstelle" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "untagged VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "tagged VLANs" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6462,15 +6413,15 @@ msgstr "tagged VLANs" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q-SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "primäre MAC-Adresse" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Nur Q-in-Q-Schnittstellen können ein Service-VLAN angeben." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6479,82 +6430,82 @@ msgstr "" "MAC-Adresse {mac_address} ist einer anderen Schnittstelle zugewiesen " "({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "übergeordnete LAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Diese Schnittstelle wird nur für Out-of-Band-Verwaltung verwendet" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "Geschwindigkeit (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "Duplex" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "Weltweiter 64-Bit-Name" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "WLAN Kanal" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "Kanalfrequenz (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Wird vom ausgewählten Kanal aufgefüllt (falls gesetzt)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "Sendeleistung (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "WLANs" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "Schnittstelle" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "Schnittstellen" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "" "{display_type} An Schnittstellen kann kein Kabel angeschlossen werden." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" "{display_type} Schnittstellen können nicht als verbunden markiert werden." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "" "Eine Schnittstelle kann nicht seine eigene übergeordnete Schnittstelle sein." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Nur virtuelle Schnittstellen können einer übergeordneten Schnittstelle " "zugewiesen werden." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6563,7 +6514,7 @@ msgstr "" "Die ausgewählte übergeordnete Schnittstelle ({interface}) gehört zu einem " "anderen Gerät ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6572,7 +6523,7 @@ msgstr "" "Die ausgewählte übergeordnete Schnittstelle ({interface}) gehört zu " "{device}, das nicht Teil des virtuellen Chassis ist {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6581,7 +6532,7 @@ msgstr "" "Die gewählte Bridge-Schnittstelle ({bridge}) gehört zu einem anderen Gerät " "({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6590,17 +6541,17 @@ msgstr "" "Die gewählte Bridge-Schnittstelle ({interface}) gehört zu {device}, das " "nicht Teil des virtuellen Chassis {virtual_chassis}ist." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "" "Virtuelle Schnittstellen können keine übergeordnete LAG-Schnittstelle haben." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "" "Eine LAG-Schnittstelle nicht seine eigene übergeordnete Schnittstelle sein." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6608,7 +6559,7 @@ msgstr "" "Die gewählte LAG-Schnittstelle ({lag}) gehört zu einem anderen Gerät " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6617,37 +6568,37 @@ msgstr "" "Die gewählte LAG-Schnittstelle ({lag}) gehört zu {device}, das nicht Teil " "des virtuellen Chassis {virtual_chassis} ist." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Der Kanal kann nur an drahtlosen Schnittstellen eingestellt werden." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "Die Kanalfrequenz kann nur an drahtlosen Schnittstellen eingestellt werden." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "Bei ausgewähltem Kanal kann keine benutzerdefinierte Frequenz angegeben " "werden." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "Die Kanalbreite kann nur an drahtlosen Schnittstellen eingestellt werden." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Bei ausgewähltem Kanal kann keine benutzerdefinierte Breite angegeben " "werden." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Der Schnittstellenmodus unterstützt kein ungetaggtes VLAN ." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6656,20 +6607,20 @@ msgstr "" "Das untagged VLAN ({untagged_vlan}) muss zu demselben Standort gehören wie " "das übergeordnete Gerät der Schnittstelle, oder es muss global sein." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Rückanschluss ({rear_port}) muss zum selben Gerät gehören" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "Frontanschluss" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "Frontanschlüsse" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6678,15 +6629,15 @@ msgstr "" "Die Anzahl der Positionen darf nicht kleiner sein als die Anzahl der " "zugewiesenen Rückanschlüsse ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "Rückanschluss" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "Rückanschlüsse" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6695,38 +6646,38 @@ msgstr "" "Die Anzahl der Positionen darf nicht kleiner sein als die Anzahl der " "zugewiesenen Frontanschlüsse ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "Moduleinsatz" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "Moduleinsätze" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Ein Modulschacht kann nicht zu einem darin installierten Modul gehören." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "Geräteeinsatz" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "Geräteeinsätze" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Dieser Gerätetyp ({device_type}) unterstützt keine Geräteeinsätze." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Ein Gerät kann nicht in sich selbst installiert werden." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6734,64 +6685,64 @@ msgstr "" "Das angegebene Gerät kann nicht installiert werden; Das Gerät ist bereits " "installiert in {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "Inventarartikelrolle" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "Inventarartikelrollen" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "Seriennummer" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "Asset-Tag" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "" "Ein eindeutiges Etikett, das zur Identifizierung dieses Artikels verwendet " "wird" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "erkannt" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Dieser Artikel wurde automatisch erkannt" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "Inventarartikel" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "Inventarartikel" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Kann sich nicht als übergeordnetes Objekt zuweisen." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Der Artikel im übergeordneten Inventar gehört nicht zum selben Gerät." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "" "Ein Inventargegenstand mit untergeordneten Inventargegenständen kann nicht " "bewegt werden" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Inventargegenstand kann nicht einer Komponente auf einem anderen Gerät " @@ -7711,10 +7662,10 @@ msgstr "Erreichbar" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7726,8 +7677,7 @@ msgid "VMs" msgstr "VMs" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7830,7 +7780,7 @@ msgstr "Lokation des Geräts" msgid "Device Site" msgstr "Geräte Standort" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Moduleinsatz" @@ -7890,7 +7840,7 @@ msgstr "MAC-Adressen" msgid "FHRP Groups" msgstr "FHRP-Gruppen" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7906,7 +7856,7 @@ msgstr "Nur zur Verwaltung" msgid "VDCs" msgstr "VDCs" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Virtuelle Verbindung" @@ -7979,7 +7929,7 @@ msgid "Module Types" msgstr "Modultypen" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Betriebssysteme" @@ -8080,7 +8030,7 @@ msgstr "Geräteeinsätze" msgid "Module Bays" msgstr "Moduleinsätze" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Anzahl der Module" @@ -8158,7 +8108,7 @@ msgstr "{} Millimeter" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Seriennummer" @@ -8168,7 +8118,7 @@ msgid "Maximum weight" msgstr "Maximales Gewicht" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Management" @@ -8216,18 +8166,27 @@ msgstr "{}A" msgid "Primary for interface" msgstr "Primär für diese Schnittstelle" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Mitglieder des virtuellen Gehäuses" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Energienutzung" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN-Übersetzung" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Modul mit Platzhalterwerten kann nicht in einem Modul-Baytree installiert " +"werden {level} Stufen tief aber {tokens} Platzhalter angegeben." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8268,9 +8227,8 @@ msgid "Application Services" msgstr "Anwendungsdienste" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Konfigurationsvorlage" @@ -8279,7 +8237,7 @@ msgstr "Konfigurationsvorlage" msgid "Render Config" msgstr "Konfiguration rendern" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8344,7 +8302,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "{device} vom virtuellen Gehäuse {chassis} entfernt." -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Unbekanntes verwandtes Objekt (e): {name}" @@ -8354,12 +8312,16 @@ msgid "Changing the type of custom fields is not supported." msgstr "" "Das Ändern des Typs von benutzerdefinierten Feldern wird nicht unterstützt." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Ein Skriptmodul mit diesem Dateinamen ist bereits vorhanden." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Die Planung ist für dieses Skript nicht aktiviert." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Die geplante Zeit muss in der Zukunft liegen." @@ -8536,8 +8498,7 @@ msgid "White" msgstr "Weiß" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8686,12 +8647,12 @@ msgstr "Lesezeichen" msgid "Show your personal bookmarks" msgstr "Zeige persönliche Lesezeichen an" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Unbekannter Aktionstyp für eine Ereignisregel: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Ereignispipeline kann nicht importiert werden {name} Fehler: {error}" @@ -8711,7 +8672,7 @@ msgid "Group (name)" msgstr "Gruppe (Name)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Clustertyp" @@ -8731,7 +8692,7 @@ msgid "Tenant group (slug)" msgstr "Mandantengruppe (URL-Slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Schlagwort" @@ -8744,29 +8705,30 @@ msgid "Has local config context data" msgstr "Hat lokale Konfigurationskontextdaten" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Name der Gruppe" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Erforderlich" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Muss einzigartig sein" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "UI sichtbar" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "UI editierbar" @@ -8775,10 +8737,12 @@ msgid "Is cloneable" msgstr "Ist klonbar" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimaler Wert" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maximaler Wert" @@ -8787,8 +8751,7 @@ msgid "Validation regex" msgstr "Regex für die Überprüfung" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Verhalten" @@ -8802,7 +8765,8 @@ msgstr "Button-Klasse" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME-Typ" @@ -8824,31 +8788,29 @@ msgstr "Als Anlage" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Geteilt" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP-Method" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Payload-URL" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL-Verifizierung" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Secret" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA-Dateipfad" @@ -9005,9 +8967,9 @@ msgstr "Zugewiesener Objekttyp" msgid "The classification of entry" msgstr "Die Klassifizierung des Eintrags" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -9016,12 +8978,12 @@ msgid "Comments" msgstr "Kommentare" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Benutzer" @@ -9032,9 +8994,8 @@ msgstr "" "Anführungszeichen" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9080,6 +9041,7 @@ msgid "Content types" msgstr "Inhaltstypen" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP-Inhaltstyp" @@ -9151,7 +9113,7 @@ msgstr "Mandantengruppen" msgid "The type(s) of object that have this custom field" msgstr "Die Objekttypen, die dieses benutzerdefinierte Feld haben" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Vorgabewert" @@ -9160,7 +9122,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Typ des zugehörigen Objekts (nur für Objekt-/Mehrfachobjektfelder)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filter für verwandte Objekte" @@ -9168,8 +9129,7 @@ msgstr "Filter für verwandte Objekte" msgid "Specify query parameters as a JSON object." msgstr "Geben Sie Abfrageparameter als JSON-Objekt an." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Benutzerdefiniertes Feld" @@ -9202,12 +9162,11 @@ msgstr "" "Bezeichnung angegeben werden, indem ein Doppelpunkt angehängt wird. " "Beispiel:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Benutzerdefinierter Feldauswahl" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Benutzerdefinierter Link" @@ -9238,8 +9197,7 @@ msgstr "" msgid "Template code" msgstr "Vorlagencode" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Vorlage exportieren" @@ -9249,14 +9207,13 @@ msgid "Template content is populated from the remote source selected below." msgstr "" "Der Vorlageninhalt wird aus der unten ausgewählten Remote-Quelle gefüllt." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Gespeicherter Filter" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Sortierung" @@ -9282,13 +9239,11 @@ msgstr "" "Eine Benachrichtigungsgruppe muss mindestens einen Benutzer oder eine Gruppe" " haben." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP-Request" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9310,8 +9265,7 @@ msgstr "" "Geben Sie Parameter ein, die an die Aktion übergeben werden sollen, in JSON formatiert." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Ereignisregel" @@ -9323,8 +9277,7 @@ msgstr "Trigger" msgid "Notification group" msgstr "Benachrichtigungsgruppe" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Config-Kontextprofil" @@ -9417,7 +9370,7 @@ msgstr "Config-Kontextprofile" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "Gewicht" @@ -9987,7 +9940,7 @@ msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" "Aktivieren Sie die SSL-Zertifikatsüberprüfung. Mit Vorsicht deaktivieren!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA-Dateipfad" @@ -10294,9 +10247,8 @@ msgstr "Abweisen" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10319,7 +10271,6 @@ msgid "Related Object Type" msgstr "Verwandter Objekttyp" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Auswahlset" @@ -10328,12 +10279,10 @@ msgid "Is Cloneable" msgstr "Ist klonbar" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimaler Wert" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maximaler Wert" @@ -10343,9 +10292,9 @@ msgstr "Überprüfung Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10362,50 +10311,44 @@ msgid "Order Alphabetically" msgstr "Alphabetisch sortieren" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Neues Fenster" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME-Typ" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Dateiname" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Dateiendung" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Als Anlage" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Synchronisiert" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Bild" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Dateiname" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Größe" @@ -10413,38 +10356,36 @@ msgstr "Größe" msgid "Table Name" msgstr "Tabellenname" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Lesen" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL-Validierung" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL-Überprüfung" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Ereignistypen" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automatische Synchronisation aktiviert" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Geräterollen" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Kommentare (Kurz)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linie" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Methode" @@ -10458,7 +10399,7 @@ msgstr "" "Bitte versuchen Sie, das Widget neu zu konfigurieren oder entfernen Sie es " "aus Ihrem Dashboard." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10471,11 +10412,78 @@ msgstr "" msgid "Custom Fields" msgstr "Benutzerdefinierte Felder" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Ein Bild anhängen" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonbar" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Gewicht anzeigen" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Validierungsregeln" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Regulärer Ausdruck (RegEx)" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Verwandte Objekte" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Verwendet von" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Anlage" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Zugewiesene Modelle" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Tabellen-Konfiguration" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "angezeigte Spalten" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Benachrichtigungsgruppe" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Erlaubte Objekttypen" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Artikeltypen mit Tags" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Bildanhang" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Übergeordnetes Objekt" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Journaleintrag" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10516,32 +10524,68 @@ msgstr "Ungültiges Attribut \"{name}\" zur Anfrage" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Ungültiges Attribut “{name}\" für {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Linktext" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "Link-URL" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Umgebungsparameter" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Vorlage" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Zusätzliche Header" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Body Template" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Dienst" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Getaggte Objekte" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON-Schema" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Ein Fehler ist beim Rendern der Vorlage aufgetreten: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Ihr Dashboard wurde zurückgesetzt." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Hinzugefügtes Widget:" -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Aktualisiertes Widget: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Gelöschtes Widget: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Fehler beim Löschen des Widgets: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "" "Das Skript kann nicht ausgeführt werden: Der RQ-Worker-Prozess läuft nicht." @@ -10778,7 +10822,7 @@ msgstr "FHRP-Gruppe (ID)" msgid "IP address (ID)" msgstr "IP-Adresse (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP-Adresse" @@ -10884,7 +10928,7 @@ msgstr "Ist ein Pool" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Als voll ausgelastet behandeln" @@ -10897,7 +10941,7 @@ msgstr "VLAN-Zuweisung" msgid "Treat as populated" msgstr "Als besetzt behandeln" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS-Name" @@ -11430,172 +11474,172 @@ msgstr "" "Präfixe können Aggregate nicht überlappen. {prefix} deckt ein vorhandenes " "Aggregat ab ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "Rollen" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "Prefix" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "IPv4- oder IPv6-Netzwerk mit Maske" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Betriebsstatus dieses Prefixes" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Die Hauptfunktion dieses Prefixes" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "ist ein Pool" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" "Alle IP-Adressen (inklusive Netzwerk- und Broadcast-Adresse) innerhalb " "dieses Prefixes werden als nutzbar betrachtet" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "als verwendet markieren" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "Prefixe" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Prefix mit der Maske /0 kann nicht erstellt werden." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "globale Tabelle" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Doppeltes Prefix gefunden in {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "Startadresse" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4- oder IPv6-Adresse (mit Maske)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "Endadresse" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Betriebsstatus dieses Bereichs" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Die Hauptfunktion dieses Bereichs" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "als gefüllt markieren" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "" "Verhindern Sie die Erstellung von IP-Adressen innerhalb dieses Bereichs" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Der Report Speicherplatz als voll ausgelastet" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP-Bereich" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP-Bereiche" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Die Versionen der Anfangs- und Endadresse müssen übereinstimmen" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Die Masken für Start- und Endadressen müssen übereinstimmen" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "Die Endadresse muss größer als die Startadresse sein ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Definierte Adressen überschneiden sich mit dem Bereich {overlapping_range} " "im VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Der definierte Bereich überschreitet die maximal unterstützte Größe " "({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "Adresse" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Der Betriebsstatus dieser IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Die funktionale Rolle dieser IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (innen)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "Die IP, für die diese Adresse die „externe“ IP ist" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Hostname oder FQDN (Groß- und Kleinschreibung nicht beachten)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP-Adressen" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Die IP-Adresse mit der Maske /0 kann nicht erstellt werden." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} ist eine Netzwerk-ID, die keiner Schnittstelle zugewiesen werden darf." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." @@ -11603,18 +11647,18 @@ msgstr "" "{ip} ist eine Broadcast-Adresse, die keiner Schnittstelle zugewiesen werden " "darf." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Doppelte IP-Adresse gefunden in {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "" "IP-Adresse kann nicht erstellt werden {ip} innerhalb der Range{range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11622,7 +11666,7 @@ msgstr "" "Die IP-Adresse kann nicht neu zugewiesen werden, solange sie als primäre IP " "für das übergeordnete Objekt festgelegt ist" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11630,7 +11674,7 @@ msgstr "" "Die IP-Adresse kann nicht neu zugewiesen werden, solange sie als OOB-IP für " "das übergeordnete Objekt festgelegt ist" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Nur IPv6-Adressen kann der SLAAC-Status zugewiesen werden" @@ -12210,8 +12254,9 @@ msgstr "Grau" msgid "Dark Grey" msgstr "Dunkelgrau" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Standard" @@ -13153,67 +13198,67 @@ msgstr "" msgid "Cannot delete stores from registry" msgstr "Stores können nicht aus der Registrierung gelöscht werden" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Tschechisch" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Dänisch" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Deutsch" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Englisch" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Spanisch" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Französisch" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italenisch" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japanisch" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "lettisch" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Niederländisch" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Polnisch" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Portugiesisch" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Russisch" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Türkisch" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukrainisch" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Chinesisch" @@ -13241,6 +13286,7 @@ msgid "Field" msgstr "Feld" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Wert" @@ -13272,11 +13318,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS-Koordinaten" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Verwandte Objekte" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13526,7 +13567,6 @@ msgid "Toggle All" msgstr "Alles umschalten" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabelle" @@ -13582,13 +13622,9 @@ msgstr "Zugewiesene Gruppen" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13596,6 +13632,7 @@ msgstr "Zugewiesene Gruppen" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Keine" @@ -13758,7 +13795,7 @@ msgid "Changed" msgstr "Geändert" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "Bytes" @@ -13811,12 +13848,11 @@ msgid "Job retention" msgstr "Beibehaltung der Arbeitsplätze" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Die mit diesem Objekt verknüpfte Datei wurde gelöscht" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Daten synchronisiert" @@ -14501,12 +14537,6 @@ msgstr "Rack hinzufügen" msgid "Add Site" msgstr "Standort hinzufügen" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Anlage" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14665,82 +14695,10 @@ msgstr "" "NetBox eine Verbindung zur Datenbank herstellen und eine Abfrage für " "ausführen %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON-Schema" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Umgebungsparameter" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Vorlage" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Name der Gruppe" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Muss einzigartig sein" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonbar" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Standardwert" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Gewichtung in Suche" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filterlogik" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Gewicht anzeigen" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "UI Sichtbar" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "UI editierbar" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Validierungsregeln" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Regulärer Ausdruck" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Button-Klasse" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Zugewiesene Modelle" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Linktext" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "Link-URL" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "Auswahlmöglichkeiten" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14813,10 +14771,6 @@ msgstr "Beim Abrufen des RSS-Feeds ist ein Problem aufgetreten" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Dienst" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Geplant für" @@ -14838,14 +14792,6 @@ msgstr "Ausgabe" msgid "Download" msgstr "Herunterladen" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Bildanhang" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Übergeordnetes Objekt" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Wird geladen" @@ -14894,24 +14840,6 @@ msgstr "" "Fangen Sie an mit ein Skript erstellen" " aus einer hochgeladenen Datei oder Datenquelle." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Journaleintrag" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Erstellt von" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Benachrichtigungsgruppe" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Keine zugewiesen" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Der lokale Config-Kontext überschreibt alle Quellkontexte" @@ -14967,6 +14895,16 @@ msgstr "Die Vorlagenausgabe ist leer" msgid "No configuration template has been assigned." msgstr "Es wurde keine Konfigurationsvorlage zugewiesen." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Keine zugewiesen" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Irgendein" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -15003,14 +14941,6 @@ msgstr "Schwellenwert protokollieren" msgid "All" msgstr "Alle" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Tabellen-Konfiguration" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "angezeigte Spalten" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -15028,46 +14958,6 @@ msgstr "Nach oben bewegen" msgid "Move Down" msgstr "Nach unten bewegen" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Getaggte Artikel" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Erlaubte Objekttypen" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Irgendein" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Artikeltypen mit Tags" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Getaggte Objekte" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP-Methode" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP-Inhaltstyp" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL-Verifizierung" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Zusätzliche Header" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Body Template" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Massenerstellung" @@ -15141,10 +15031,6 @@ msgstr "Feldeigenschaften" msgid "Accessor" msgstr "Datentyp" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "Auswahlmöglichkeiten" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Wert importieren" @@ -15656,6 +15542,7 @@ msgstr "Virtuelle CPUs" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Arbeitsspeicher" @@ -15665,8 +15552,8 @@ msgid "Disk Space" msgstr "Speicherplatz" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Ressourcen" @@ -16745,13 +16632,13 @@ msgstr "" "Dieses Objekt wurde seit dem Rendern des Formulars geändert. Einzelheiten " "entnehmen Sie bitte dem Änderungsprotokoll des Objekts." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Bereich “{value}\" ist ungültig." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16760,40 +16647,40 @@ msgstr "" "Ungültiger Bereich: Der Endwert ({end}) muss größer als der Anfangswert " "({begin}) sein." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Doppelte oder widersprüchliche Spaltenüberschrift für“{field}“" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Doppelte oder widersprüchliche Spaltenüberschrift für“{header}“" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Reihe {row}: {count_expected} Spalten erwartet, aber {count_found} gefunden" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Unerwartete Spaltenüberschrift“{field}„gefunden." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "" "Spalte“{field}\"ist kein verwandtes Objekt; Punkte können nicht verwendet " "werden" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Ungültiges verwandtes Objektattribut für Spalte“{field}\": {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Erforderliche Spaltenüberschrift“{header}„nicht gefunden." @@ -16812,7 +16699,7 @@ msgstr "" "Fehlender erforderlicher Wert für den statischen Abfrageparameter: " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automatisch eingestellt)" @@ -17013,30 +16900,42 @@ msgstr "Clustertyp (ID)" msgid "Cluster (ID)" msgstr "Cluster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Beim Booten starten" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPUs" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Speicher (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Festplatte" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Festplatte (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Speicher ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Größe (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Festplatte ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Größe ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -17058,15 +16957,15 @@ msgstr "Zugewiesener Cluster" msgid "Assigned device within cluster" msgstr "Zugewiesenes Gerät innerhalb des Clusters" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Cluster-Typ" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Clustergruppe" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -17075,27 +16974,22 @@ msgstr "" "{device} gehört zu einem anderen {scope_field} ({device_scope}) als der " "Cluster ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Verbinden Sie diese VM optional an ein bestimmtes Host-Gerät innerhalb des " "Clusters an" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Standort/Cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "Die Festplattengröße wird durch das Anhängen virtueller Festplatten " "verwaltet." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Festplatte" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "Clustertyp" @@ -17143,12 +17037,12 @@ msgid "start on boot" msgstr "beim Booten starten" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "Speicher (MB)" +msgid "memory" +msgstr "Speicher " #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "Festplatte (MB)" +msgid "disk" +msgstr "Festplatte" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17236,10 +17130,6 @@ msgstr "" "wie die übergeordnete virtuelle Maschine der Schnittstelle, oder sie muss " "global sein." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "Größe (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "virtuelle Festplatte" diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo index 50a79bb9e0f629780e7c30179af9a3467d6e9d74..6550b92ba5281f90986dadc01c856c695bafe9ce 100644 GIT binary patch delta 74683 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 {obj} because it is marked as " @@ -5999,7 +5949,7 @@ msgstr "" "No se puede conectar un cable a {obj_parent} > {obj} porque está marcado " "como conectado." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6008,61 +5958,61 @@ msgstr "" "Se encontró una terminación duplicada para {app_label}.{model} " "{termination_id}: cable {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Los cables no se pueden terminar en {type_display} interfaz" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Es posible que las terminaciones de circuito conectadas a la red de un " "proveedor no estén cableadas." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "está activo" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "está completo" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "está dividido" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "ruta de cable" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "rutas de cable" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Todas las terminaciones originarias deben adjuntarse al mismo enlace" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Todas las terminaciones de tramo intermedio deben tener el mismo tipo de " "terminación" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Todas las terminaciones intermedias deben tener el mismo objeto principal" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Todos los enlaces deben ser por cable o inalámbricos" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Todos los enlaces deben coincidir con el primer tipo de enlace" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6071,18 +6021,18 @@ msgstr "" "{module} se acepta como sustituto de la posición del compartimiento del " "módulo cuando se conecta a un tipo de módulo." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Etiqueta física" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Las plantillas de componentes no se pueden mover a un tipo de dispositivo " "diferente." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6090,7 +6040,7 @@ msgstr "" "Una plantilla de componente no se puede asociar a un tipo de dispositivo ni " "a un tipo de módulo." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6098,135 +6048,135 @@ msgstr "" "Una plantilla de componente debe estar asociada a un tipo de dispositivo o a" " un tipo de módulo." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "plantilla de puerto de consola" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "plantillas de puertos de consola" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "plantilla de puerto de servidor de consola" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "plantillas de puertos de servidor de consola" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "sorteo máximo" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "sorteo asignado" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "plantilla de puerto de alimentación" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "plantillas de puertos de alimentación" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "El sorteo asignado no puede superar el sorteo máximo ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "pierna de alimentación" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fase (para alimentaciones trifásicas)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "plantilla de toma de corriente" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "plantillas de tomas de corriente" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Puerto de alimentación principal ({power_port}) debe pertenecer al mismo " "tipo de dispositivo" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Puerto de alimentación principal ({power_port}) debe pertenecer al mismo " "tipo de módulo" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "solo administración" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "interfaz de puente" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "función inalámbrica" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "plantilla de interfaz" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "plantillas de interfaz" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Interfaz de puente ({bridge}) debe pertenecer al mismo tipo de dispositivo" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Interfaz de puente ({bridge}) debe pertenecer al mismo tipo de módulo" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" "Puerto trasero ({rear_port}) debe pertenecer al mismo tipo de dispositivo" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "posiciones" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "plantilla de puerto frontal" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "plantillas de puertos frontales" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6235,15 +6185,15 @@ msgstr "" "El número de posiciones no puede ser inferior al número de plantillas de " "puertos traseros mapeadas ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "plantilla de puerto trasero" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "plantillas de puertos traseros" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6252,35 +6202,35 @@ msgstr "" "El número de posiciones no puede ser inferior al número de plantillas de " "puertos frontales mapeadas ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "posición" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identificador al que se debe hacer referencia al cambiar el nombre de los " "componentes instalados" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "plantilla de bahía de módulos" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "plantillas de compartimentos de módulos" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "plantilla de compartimento de dispositivos" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "plantillas de compartimentos de dispositivos" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6290,21 +6240,21 @@ msgstr "" "configurarse como «principal» para permitir compartimentos para " "dispositivos." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID de pieza" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identificador de pieza asignado por el fabricante" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "plantilla de artículos de inventario" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "plantillas de artículos de inventario" @@ -6361,85 +6311,85 @@ msgstr "" msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} los modelos deben declarar una propiedad parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Tipo de puerto físico" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "velocidad" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Velocidad de puerto en bits por segundo" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "puerto de consola" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "puertos de consola" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "puerto de servidor de consola" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "puertos de servidor de consola" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "puerto de alimentación" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "puertos de alimentación" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "toma de corriente" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "tomas de corriente" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Puerto de alimentación principal ({power_port}) debe pertenecer al mismo " "dispositivo" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "modo" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Estrategia de etiquetado IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "interfaz principal" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN sin etiquetar" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "VLAN etiquetadas" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6447,15 +6397,15 @@ msgstr "VLAN etiquetadas" msgid "Q-in-Q SVLAN" msgstr "SVLAN Q-in-Q" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "dirección MAC principal" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Solo las interfaces Q-in-Q pueden especificar una VLAN de servicio." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6464,77 +6414,77 @@ msgstr "" "Dirección MAC {mac_address} está asignado a una interfaz diferente " "({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "LAG principal" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Esta interfaz se usa solo para la administración fuera de banda" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "velocidad (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "dúplex" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "Nombre mundial de 64 bits" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "canal inalámbrico" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "frecuencia de canal (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Se rellena por el canal seleccionado (si está configurado)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "potencia de transmisión (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "LAN inalámbricas" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interfaz" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfaz" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} las interfaces no pueden tener un cable conectado." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} las interfaces no se pueden marcar como conectadas." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Una interfaz no puede ser su propia interfaz principal." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Solo se pueden asignar interfaces virtuales a una interfaz principal." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6543,7 +6493,7 @@ msgstr "" "La interfaz principal seleccionada ({interface}) pertenece a un dispositivo " "diferente ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6552,7 +6502,7 @@ msgstr "" "La interfaz principal seleccionada ({interface}) pertenece a {device}, que " "no forma parte del chasis virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6561,7 +6511,7 @@ msgstr "" "La interfaz de puente seleccionada ({bridge}) pertenece a un dispositivo " "diferente ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6570,15 +6520,15 @@ msgstr "" "La interfaz de puente seleccionada ({interface}) pertenece a {device}, que " "no forma parte del chasis virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Las interfaces virtuales no pueden tener una interfaz LAG principal." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Una interfaz LAG no puede ser su propia interfaz principal." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6586,7 +6536,7 @@ msgstr "" "La interfaz LAG seleccionada ({lag}) pertenece a un dispositivo diferente " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6595,37 +6545,37 @@ msgstr "" "La interfaz LAG seleccionada ({lag}) pertenece a {device}, que no forma " "parte del chasis virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "El canal solo se puede configurar en las interfaces inalámbricas." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "La frecuencia del canal solo se puede configurar en las interfaces " "inalámbricas." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "No se puede especificar la frecuencia personalizada con el canal " "seleccionado." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "El ancho del canal solo se puede establecer en las interfaces inalámbricas." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "No se puede especificar un ancho personalizado con el canal seleccionado." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "El modo de interfaz no admite una vlan sin etiquetas." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6634,20 +6584,20 @@ msgstr "" "La VLAN sin etiquetar ({untagged_vlan}) debe pertenecer al mismo sitio que " "el dispositivo principal de la interfaz o debe ser global." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Puerto trasero ({rear_port}) debe pertenecer al mismo dispositivo" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "puerto frontal" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "puertos frontales" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6656,15 +6606,15 @@ msgstr "" "El número de posiciones no puede ser inferior al número de puertos traseros " "mapeados ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "puerto trasero" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "puertos traseros" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6673,40 +6623,40 @@ msgstr "" "El número de posiciones no puede ser inferior al número de puertos frontales" " mapeados ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "compartimiento de módulos" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "compartimentos de módulos" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Una bahía de módulos no puede pertenecer a un módulo instalado en ella." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "compartimiento de dispositivos" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "compartimentos para dispositivos" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Este tipo de dispositivo ({device_type}) no admite compartimentos para " "dispositivos." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "No se puede instalar un dispositivo en sí mismo." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6714,61 +6664,61 @@ msgstr "" "No se puede instalar el dispositivo especificado; el dispositivo ya está " "instalado en {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "rol de artículo de inventario" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "roles de artículos de inventario" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "número de serie" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "etiqueta de activo" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Una etiqueta única que se utiliza para identificar este artículo" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "descubierto" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Este artículo se descubrió automáticamente" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "artículo de inventario" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "artículos de inventario" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "No se puede asignar a sí mismo como padre." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "" "El artículo del inventario principal no pertenece al mismo dispositivo." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "No se puede mover un artículo del inventario con hijos a cargo" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "No se puede asignar un artículo de inventario a un componente de otro " @@ -7674,10 +7624,10 @@ msgstr "Accesible" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7689,8 +7639,7 @@ msgid "VMs" msgstr "VM" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7793,7 +7742,7 @@ msgstr "Ubicación del dispositivo" msgid "Device Site" msgstr "Sitio del dispositivo" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Bahía de módulos" @@ -7853,7 +7802,7 @@ msgstr "Direcciones MAC" msgid "FHRP Groups" msgstr "Grupos FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7869,7 +7818,7 @@ msgstr "Solo administración" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Circuito virtual" @@ -7942,7 +7891,7 @@ msgid "Module Types" msgstr "Tipos de módulos" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Plataformas" @@ -8043,7 +7992,7 @@ msgstr "Bahías de dispositivos" msgid "Module Bays" msgstr "Bahías de módulos" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Recuento de módulos" @@ -8121,7 +8070,7 @@ msgstr "{} milímetros" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Número de serie" @@ -8131,7 +8080,7 @@ msgid "Maximum weight" msgstr "Peso máximo" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Administración" @@ -8179,18 +8128,28 @@ msgstr "{} A" msgid "Primary for interface" msgstr "Principal para la interfaz" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Miembros de chasis virtuales" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Utilización de energía" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Traducción de VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"No se puede instalar el módulo con valores de marcador de posición en un " +"árbol de compartimentos de módulos {level} niveles profundos, pero {tokens} " +"marcadores de posición dados." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8231,9 +8190,8 @@ msgid "Application Services" msgstr "Servicios de aplicaciones" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Contexto de configuración" @@ -8242,7 +8200,7 @@ msgstr "Contexto de configuración" msgid "Render Config" msgstr "Configuración de renderizado" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8307,7 +8265,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "Eliminado {device} desde un chasis virtual {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Objeto (s) relacionado (s) desconocido (s): {name}" @@ -8316,12 +8274,16 @@ msgstr "Objeto (s) relacionado (s) desconocido (s): {name}" msgid "Changing the type of custom fields is not supported." msgstr "No se admite cambiar el tipo de campos personalizados." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Ya existe un módulo de script con este nombre de archivo." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "La programación no está habilitada para este script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "La hora programada debe estar en el futuro." @@ -8498,8 +8460,7 @@ msgid "White" msgstr "blanco" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8647,12 +8608,12 @@ msgstr "Marcadores" msgid "Show your personal bookmarks" msgstr "Muestra tus marcadores personales" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Tipo de acción desconocido para una regla de evento: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "No se puede importar la canalización de eventos {name} error: {error}" @@ -8672,7 +8633,7 @@ msgid "Group (name)" msgstr "Grupo (nombre)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Tipo de clúster" @@ -8692,7 +8653,7 @@ msgid "Tenant group (slug)" msgstr "Grupo de inquilinos (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Etiqueta" @@ -8705,29 +8666,30 @@ msgid "Has local config context data" msgstr "Tiene datos de contexto de configuración local" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Nombre del grupo" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Obligatorio" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Debe ser único" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Interfaz de usuario visible" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Interfaz de usuario editable" @@ -8736,10 +8698,12 @@ msgid "Is cloneable" msgstr "Es clonable" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Valor mínimo" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Valor máximo" @@ -8748,8 +8712,7 @@ msgid "Validation regex" msgstr "Regex de validación" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Comportamiento" @@ -8763,7 +8726,8 @@ msgstr "Clase de botones" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Tipo MIME" @@ -8785,31 +8749,29 @@ msgstr "Como archivo adjunto" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Compartido" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Método HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL de carga" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Verificación SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Secreto" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Ruta del archivo CA" @@ -8961,9 +8923,9 @@ msgstr "Tipo de objeto asignado" msgid "The classification of entry" msgstr "La clasificación de entrada" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8972,12 +8934,12 @@ msgid "Comments" msgstr "Comentarios" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "usuarios" @@ -8986,9 +8948,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Nombres de usuario separados por comas y entre comillas dobles" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9033,6 +8994,7 @@ msgid "Content types" msgstr "Tipos de contenido" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Tipo de contenido HTTP" @@ -9104,7 +9066,7 @@ msgstr "Grupos de inquilinos" msgid "The type(s) of object that have this custom field" msgstr "Los tipos de objeto que tienen este campo personalizado" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Valor predeterminado" @@ -9113,7 +9075,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Tipo del objeto relacionado (solo para campos de objeto/multiobjeto)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filtro de objetos relacionados" @@ -9121,8 +9082,7 @@ msgstr "Filtro de objetos relacionados" msgid "Specify query parameters as a JSON object." msgstr "Especifique los parámetros de consulta como un objeto JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Campo personalizado" @@ -9154,12 +9114,11 @@ msgstr "" "Introduzca una opción por línea. Se puede especificar una etiqueta opcional " "para cada elección añadiendo dos puntos. Ejemplo:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Opciones de campo personalizadas" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Vínculo personalizado" @@ -9190,8 +9149,7 @@ msgstr "" msgid "Template code" msgstr "Código de plantilla" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Plantilla de exportación" @@ -9202,14 +9160,13 @@ msgstr "" "El contenido de la plantilla se rellena desde la fuente remota seleccionada " "a continuación." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Filtro guardado" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Pedido" @@ -9233,13 +9190,11 @@ msgstr "Columnas seleccionadas" msgid "A notification group specify at least one user or group." msgstr "Un grupo de notificaciones especifica al menos un usuario o grupo." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Solicitud HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9261,8 +9216,7 @@ msgstr "" "Introduzca los parámetros para pasar a la acción en JSON formato." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Regla del evento" @@ -9274,8 +9228,7 @@ msgstr "Disparadores" msgid "Notification group" msgstr "Grupo de notificaciones" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Perfil de contexto de configuración" @@ -9370,7 +9323,7 @@ msgstr "perfiles de contexto de configuración" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "peso" @@ -9937,7 +9890,7 @@ msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" "Habilita la verificación del certificado SSL. ¡Desactívala con precaución!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Ruta del archivo CA" @@ -10245,9 +10198,8 @@ msgstr "Descartar" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10270,7 +10222,6 @@ msgid "Related Object Type" msgstr "Tipo de objeto relacionado" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Set de elección" @@ -10279,12 +10230,10 @@ msgid "Is Cloneable" msgstr "Se puede clonar" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Valor mínimo" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Valor máximo" @@ -10294,9 +10243,9 @@ msgstr "Regex de validación" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10313,50 +10262,44 @@ msgid "Order Alphabetically" msgstr "Ordenar alfabéticamente" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Ventana nueva" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Tipo MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Nombre del archivo" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Extensión de archivo" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Como archivo adjunto" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Sincronizado" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Imagen" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Nombre de archivo" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Tamaño" @@ -10364,38 +10307,36 @@ msgstr "Tamaño" msgid "Table Name" msgstr "Nombre de tabla" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Leer" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Validación SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Verificación SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Tipos de eventos" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Sincronización automática habilitada" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Funciones del dispositivo" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Comentarios (cortos)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Línea" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Método" @@ -10407,7 +10348,7 @@ msgstr "Se ha producido un error al intentar renderizar este widget:" msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "Intente reconfigurar el widget o elimínelo de su panel de control." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10420,11 +10361,78 @@ msgstr "Intente reconfigurar el widget o elimínelo de su panel de control." msgid "Custom Fields" msgstr "Campos personalizados" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Adjunta una imagen" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Clonable" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Peso de la pantalla" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Reglas de validación" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Expresión regular" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Objetos relacionados" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Utilizado por" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Fijación" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Modelos asignados" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Configuración de tabla" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Columnas mostradas" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Grupo de notificaciones" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Tipos de objetos permitidos" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Tipos de artículos etiquetados" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Adjuntar imagen" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Objeto principal" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Entrada de diario" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10462,32 +10470,68 @@ msgstr "Atributo no válido»{name}«para solicitar" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Atributo no válido»{name}«para {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Texto del enlace" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL del enlace" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Parámetros del entorno" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "plantilla" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Encabezados adicionales" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Plantilla corporal" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Condiciones" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Objetos etiquetados" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Esquema JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Se ha producido un error al renderizar la plantilla: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Tu panel de control se ha restablecido." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Widget añadido: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Widget actualizado: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Widget eliminado: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Error al eliminar el widget: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "" "No se puede ejecutar el script: el proceso de trabajo de RQ no se está " @@ -10722,7 +10766,7 @@ msgstr "Grupo FHRP (ID)" msgid "IP address (ID)" msgstr "Dirección IP (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "dirección IP" @@ -10828,7 +10872,7 @@ msgstr "Es una piscina" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Tratar como si se hubiera utilizado por completo" @@ -10841,7 +10885,7 @@ msgstr "Asignación de VLAN" msgid "Treat as populated" msgstr "Tratar como poblado" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Nombre DNS" @@ -11375,168 +11419,168 @@ msgstr "" "Los prefijos no pueden superponerse a los agregados. {prefix} cubre un " "agregado existente ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "papeles" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefijo" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Red IPv4 o IPv6 con máscara" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Estado operativo de este prefijo" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "La función principal de este prefijo" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "es una piscina" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" "Todas las direcciones IP incluidas en este prefijo se consideran " "utilizables." -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "marca utilizada" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefijos" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "No se puede crear un prefijo con la máscara /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "tabla global" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Se encuentra un prefijo duplicado en {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "dirección de inicio" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Dirección IPv4 o IPv6 (con máscara)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "dirección final" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Estado operativo de esta gama" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "La función principal de esta gama" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "marca poblada" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Impedir la creación de direcciones IP dentro de este rango" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Indique el espacio se ha utilizado en su totalidad" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Rango IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Intervalos de IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Las versiones de la dirección IP inicial y final deben coincidir" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Las máscaras de direcciones IP iniciales y finales deben coincidir" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "La dirección final debe ser mayor que la dirección inicial ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Las direcciones definidas se superponen con el rango {overlapping_range} en " "VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "El rango definido supera el tamaño máximo admitido ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "dirección" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "El estado operativo de esta IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "La función funcional de esta propiedad intelectual" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (interior)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "La IP para la que esta dirección es la IP «externa»" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Nombre de host o FQDN (no distingue mayúsculas de minúsculas)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "direcciones IP" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "No se puede crear una dirección IP con la máscara /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} es un ID de red, que no puede asignarse a una interfaz." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." @@ -11544,17 +11588,17 @@ msgstr "" "{ip} es una dirección de transmisión, que puede no estar asignada a una " "interfaz." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Se encontró una dirección IP duplicada en {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "No se puede crear la dirección IP {ip} rango interior {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11562,7 +11606,7 @@ msgstr "" "No se puede reasignar la dirección IP mientras esté designada como la IP " "principal del objeto principal" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11570,7 +11614,7 @@ msgstr "" "No se puede reasignar la dirección IP mientras esté designada como IP OOB " "para el objeto principal" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Solo a las direcciones IPv6 se les puede asignar el estado SLAAC" @@ -12153,8 +12197,9 @@ msgstr "Gris" msgid "Dark Grey" msgstr "Gris oscuro" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Predeterminado" @@ -13093,67 +13138,67 @@ msgstr "No se pueden agregar tiendas al registro después de la inicialización" msgid "Cannot delete stores from registry" msgstr "No se pueden eliminar las tiendas del registro" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "checa" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "danés" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "alemán" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Inglés" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Español" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "francesa" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "italiano" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "japonés" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "letón" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "holandesa" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "polaco" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "portugués" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "rusa" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "turca" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "ucraniana" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "chino" @@ -13181,6 +13226,7 @@ msgid "Field" msgstr "Campo" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Valor" @@ -13212,11 +13258,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Coordenadas GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Objetos relacionados" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13466,7 +13507,6 @@ msgid "Toggle All" msgstr "Alternar todo" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabla" @@ -13522,13 +13562,9 @@ msgstr "Grupos asignados" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13536,6 +13572,7 @@ msgstr "Grupos asignados" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Ninguna" @@ -13698,7 +13735,7 @@ msgid "Changed" msgstr "Cambiado" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bytes" @@ -13751,12 +13788,11 @@ msgid "Job retention" msgstr "Retención de empleo" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Se ha eliminado el archivo de datos asociado a este objeto" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Datos sincronizados" @@ -14442,12 +14478,6 @@ msgstr "Añadir estante" msgid "Add Site" msgstr "Agregar sitio" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Fijación" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14604,82 +14634,10 @@ msgstr "" "comprobarlo conectándose a la base de datos con las credenciales de NetBox y" " realizando una consulta para %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Esquema JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Parámetros del entorno" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "plantilla" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Nombre del grupo" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Debe ser único" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Clonable" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Valor predeterminado" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Peso de búsqueda" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Lógica de filtros" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Peso de la pantalla" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Interfaz de usuario visible" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Interfaz de usuario editable" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Reglas de validación" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Expresión regular" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Clase de botones" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Modelos asignados" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Texto del enlace" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL del enlace" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "opciones" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14752,10 +14710,6 @@ msgstr "Se ha producido un problema al obtener la fuente RSS" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Condiciones" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Programado para" @@ -14777,14 +14731,6 @@ msgstr "Salida" msgid "Download" msgstr "Descargar" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Adjuntar imagen" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Objeto principal" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Cargando" @@ -14833,24 +14779,6 @@ msgstr "" "Comience por crear un guion desde un " "archivo o fuente de datos cargados." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Entrada de diario" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Creado por" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Grupo de notificaciones" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "No se ha asignado ninguno" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "" @@ -14907,6 +14835,16 @@ msgstr "La salida de la plantilla está vacía" msgid "No configuration template has been assigned." msgstr "No se ha asignado ninguna plantilla de configuración." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "No se ha asignado ninguno" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Cualquier" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14943,14 +14881,6 @@ msgstr "Umbral de registro" msgid "All" msgstr "Todas" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Configuración de tabla" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Columnas mostradas" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14968,46 +14898,6 @@ msgstr "Muévete hacia arriba" msgid "Move Down" msgstr "Muévete hacia abajo" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Artículos etiquetados" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Tipos de objetos permitidos" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Cualquier" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Tipos de artículos etiquetados" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Objetos etiquetados" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Método HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Tipo de contenido HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Verificación SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Encabezados adicionales" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Plantilla corporal" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Creación masiva" @@ -15080,10 +14970,6 @@ msgstr "Opciones de campo" msgid "Accessor" msgstr "Accesor" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "opciones" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Valor de importación" @@ -15596,6 +15482,7 @@ msgstr "CPUs virtuales" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Memoria" @@ -15605,8 +15492,8 @@ msgid "Disk Space" msgstr "Espacio en disco" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Recursos" @@ -16681,13 +16568,13 @@ msgstr "" "Este objeto se ha modificado desde que se renderizó el formulario. Consulte " "el registro de cambios del objeto para obtener más información." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Gama»{value}«no es válido." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16696,41 +16583,41 @@ msgstr "" "Intervalo no válido: valor final ({end}) debe ser mayor que el valor inicial" " ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Cabecera de columna duplicada o conflictiva para»{field}»" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Cabecera de columna duplicada o conflictiva para»{header}»" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Fila {row}: Esperado {count_expected} columnas pero encontradas " "{count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Encabezado de columna inesperado»{field}«encontrado." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Columna»{field}\"no es un objeto relacionado; no puede usar puntos" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Atributo de objeto relacionado no válido para la columna»{field}«: " "{to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Encabezado de columna obligatorio»{header}«no se encontró." @@ -16749,7 +16636,7 @@ msgstr "" "Falta el valor requerido para el parámetro de consulta estática: " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(configurado automáticamente)" @@ -16948,30 +16835,42 @@ msgstr "Tipo de clúster (ID)" msgid "Cluster (ID)" msgstr "Clúster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Comenzar desde el arranque" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "CPU virtuales" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Memoria (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disco" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disco (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Memoria ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Tamaño (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disco ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Talla ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16993,15 +16892,15 @@ msgstr "Clúster asignado" msgid "Assigned device within cluster" msgstr "Dispositivo asignado dentro del clúster" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Tipo de clúster" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Grupo de clústeres" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -17010,26 +16909,21 @@ msgstr "" "{device} pertenece a una persona diferente {scope_field} ({device_scope}) " "que el clúster ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Si lo desea, puede anclar esta máquina virtual a un dispositivo host " "específico dentro del clúster" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Sitio/Clúster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "El tamaño del disco se administra mediante la conexión de discos virtuales." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disco" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "tipo de clúster" @@ -17077,12 +16971,12 @@ msgid "start on boot" msgstr "iniciar en el arranque" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "memoria (MB)" +msgid "memory" +msgstr "memoria" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disco (MB)" +msgid "disk" +msgstr "disco" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17167,10 +17061,6 @@ msgstr "" "La VLAN sin etiquetar ({untagged_vlan}) debe pertenecer al mismo sitio que " "la máquina virtual principal de la interfaz o debe ser global." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "tamaño (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "disco virtual" diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo index 1967204aacf2c161eba7483aaf035050e5c07a39..e141b0f5bdcfcade902c3629ad9567bfd5379a04 100644 GIT binary patch delta 74842 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 HP6_`%P@wSs delta 75172 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 {obj} because it is marked as " @@ -6015,7 +5966,7 @@ msgstr "" "Impossible de connecter un câble à {obj_parent} > {obj} car il est marqué " "comme connecté." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6024,61 +5975,61 @@ msgstr "" "Un doublon de terminaison a été trouvé pour {app_label}.{model} " "{termination_id}: câble {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Les câbles ne peuvent pas être raccordés à {type_display} interfaces" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Les terminaisons de circuit connectées au réseau d'un fournisseur peuvent ne" " pas être câblées." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "est actif" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "est terminé" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "est divisé" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "chemin de câble" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "chemins de câbles" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Toutes les terminaisons d'origine doivent être jointes au même lien" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Toutes les terminaisons à mi-distance doivent avoir le même type de " "terminaison" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Toutes les terminaisons à mi-travée doivent avoir le même objet parent" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Toutes les liaisons doivent être câblées ou sans fil" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Tous les liens doivent correspondre au premier type de lien" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6087,18 +6038,18 @@ msgstr "" "{module} est accepté en remplacement de la position de la baie du module " "lorsqu'il est fixé à un type de module." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Etiquette physique" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Les modèles de composants ne peuvent pas être déplacés vers un autre type " "d'appareil." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6106,7 +6057,7 @@ msgstr "" "Un modèle de composant ne peut pas être associé à la fois à un type " "d'appareil et à un type de module." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6114,133 +6065,133 @@ msgstr "" "Un modèle de composant doit être associé à un type d'appareil ou à un type " "de module." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "modèle de port de console" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "modèles de ports de console" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "modèle de port de serveur de console" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "modèles de ports de serveur de console" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "tirage maximum" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "tirage au sort alloué" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "modèle de port d'alimentation" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "modèles de ports d'alimentation" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Le tirage alloué ne peut pas dépasser le tirage maximum ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "patte d'alimentation" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Phase (pour les alimentations triphasées)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "modèle de prise de courant" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "modèles de prises de courant" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Port d'alimentation parent ({power_port}) doit appartenir au même type " "d'appareil" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Port d'alimentation parent ({power_port}) doit appartenir au même type de " "module" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "gestion uniquement" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "interface de pont" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "rôle sans fil" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "modèle d'interface" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "modèles d'interface" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Interface de pont ({bridge}) doit appartenir au même type d'appareil" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Interface de pont ({bridge}) doit appartenir au même type de module" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Port arrière ({rear_port}) doit appartenir au même type d'appareil" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "positions" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "modèle de port avant" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "modèles de port avant" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6249,15 +6200,15 @@ msgstr "" "Le nombre de positions ne peut pas être inférieur au nombre de modèles de " "ports arrière mappés ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "modèle de port arrière" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "modèles de port arrière" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6266,34 +6217,34 @@ msgstr "" "Le nombre de positions ne peut pas être inférieur au nombre de modèles de " "ports frontaux mappés ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "position" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identifiant à référencer lors du changement de nom des composants installés" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "modèle de baie modulaire" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "modèles de baies de modules" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "modèle de baie pour appareils" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "modèles de baies d'appareils" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6302,21 +6253,21 @@ msgstr "" "Rôle du sous-appareil du type d'appareil ({device_type}) doit être défini " "sur « parent » pour autoriser les baies de périphériques." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID de pièce" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identifiant de pièce attribué par le fabricant" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "modèle d'article d'inventaire" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "modèles d'articles d'inventaire" @@ -6375,84 +6326,84 @@ msgstr "" msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} les modèles doivent déclarer une propriété parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Type de port physique" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "vitesse" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Vitesse du port en bits par seconde" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "port de console" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "ports de console" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "port du serveur de console" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "ports du serveur de console" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "port d'alimentation" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "ports d'alimentation" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "prise de courant" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "prises de courant" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Port d'alimentation parent ({power_port}) doit appartenir au même appareil" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "mode" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Stratégie de marquage IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "interface parente" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN non étiqueté" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "VLAN étiquetés" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6460,15 +6411,15 @@ msgstr "VLAN étiquetés" msgid "Q-in-Q SVLAN" msgstr "SVLAN Q-in-Q" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "adresse MAC principale" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Seules les interfaces Q-in-Q peuvent spécifier un VLAN de service." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6477,81 +6428,81 @@ msgstr "" "Adresse MAC {mac_address} est attribué à une interface différente " "({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "GAL parent" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Cette interface est utilisée uniquement pour la gestion hors bande" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "vitesse (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "duplex" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "Nom mondial 64 bits" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "canal sans fil" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "fréquence du canal (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Rempli par la chaîne sélectionnée (si définie)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "puissance de transmission (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "réseaux locaux sans fil" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interface" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfaces" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "" "{display_type} les interfaces ne peuvent pas être connectées à un câble." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" "{display_type} les interfaces ne peuvent pas être marquées comme connectées." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Une interface ne peut pas être son propre parent." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Seules les interfaces virtuelles peuvent être attribuées à une interface " "parent." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6560,7 +6511,7 @@ msgstr "" "L'interface parent sélectionnée ({interface}) appartient à un autre appareil" " ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6569,7 +6520,7 @@ msgstr "" "L'interface parent sélectionnée ({interface}) appartient à {device}, qui ne " "fait pas partie du châssis virtuel {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6578,7 +6529,7 @@ msgstr "" "L'interface de pont sélectionnée ({bridge}) appartient à un autre appareil " "({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6587,16 +6538,16 @@ msgstr "" "L'interface de pont sélectionnée ({interface}) appartient à {device}, qui ne" " fait pas partie du châssis virtuel {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "" "Les interfaces virtuelles ne peuvent pas avoir d'interface LAG parente." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Une interface LAG ne peut pas être son propre parent." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6604,7 +6555,7 @@ msgstr "" "L'interface LAG sélectionnée ({lag}) appartient à un autre appareil " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6613,36 +6564,36 @@ msgstr "" "L'interface LAG sélectionnée ({lag}) appartient à {device}, qui ne fait pas " "partie du châssis virtuel {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Le canal ne peut être défini que sur les interfaces sans fil." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "La fréquence des canaux ne peut être réglée que sur les interfaces sans fil." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "Impossible de spécifier une fréquence personnalisée avec le canal " "sélectionné." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "La largeur de canal ne peut être réglée que sur les interfaces sans fil." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Impossible de spécifier une largeur personnalisée avec le canal sélectionné." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Le mode Interface ne prend pas en charge un VLAN non balisé." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6651,20 +6602,20 @@ msgstr "" "Le VLAN non étiqueté ({untagged_vlan}) doit appartenir au même site que " "l'appareil parent de l'interface, ou il doit être global." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Port arrière ({rear_port}) doit appartenir au même appareil" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "port avant" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "ports avant" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6673,15 +6624,15 @@ msgstr "" "Le nombre de positions ne peut pas être inférieur au nombre de ports arrière" " mappés ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "port arrière" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "ports arrière" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6690,40 +6641,40 @@ msgstr "" "Le nombre de positions ne peut pas être inférieur au nombre de ports " "frontaux mappés ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "baie modulaire" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "baies de modules" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Une baie de modules ne peut pas appartenir à un module qui y est installé." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "baie pour appareils" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "baies pour appareils" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Ce type d'appareil ({device_type}) ne prend pas en charge les baies pour " "appareils." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Impossible d'installer un appareil sur lui-même." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6731,60 +6682,60 @@ msgstr "" "Impossible d'installer le périphérique spécifié ; le périphérique est déjà " "installé dans {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "rôle des articles d'inventaire" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "rôles des articles d'inventaire" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "numéro de série" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "étiquette d'actif" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Une étiquette unique utilisée pour identifier cet article" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "découvert" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Cet objet a été découvert automatiquement" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "article d'inventaire" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "articles d'inventaire" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Impossible de s'attribuer le statut de parent." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "L'article d'inventaire parent n'appartient pas au même appareil." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Impossible de déplacer un article en stock avec des enfants à charge" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Impossible d'attribuer un article d'inventaire à un composant sur un autre " @@ -7689,10 +7640,10 @@ msgstr "Joignable" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7704,8 +7655,7 @@ msgid "VMs" msgstr "machines virtuelles" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7808,7 +7758,7 @@ msgstr "Emplacement de l'appareil" msgid "Device Site" msgstr "Site de l'appareil" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Module Bay" @@ -7868,7 +7818,7 @@ msgstr "Adresses MAC" msgid "FHRP Groups" msgstr "Groupes FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7884,7 +7834,7 @@ msgstr "Gestion uniquement" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Circuit virtuel" @@ -7957,7 +7907,7 @@ msgid "Module Types" msgstr "Types de modules" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Plateformes" @@ -8058,7 +8008,7 @@ msgstr "Baies pour appareils" msgid "Module Bays" msgstr "Baies pour modules" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Nombre de modules" @@ -8136,7 +8086,7 @@ msgstr "{} millimètres" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Numéro de série" @@ -8146,7 +8096,7 @@ msgid "Maximum weight" msgstr "Poids maximum" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Gestion" @@ -8194,18 +8144,28 @@ msgstr "{} UNE" msgid "Primary for interface" msgstr "Principale pour l'interface" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Membres virtuels du châssis" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Utilisation de l'énergie" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Traduction VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Impossible d'installer le module avec des valeurs d'espace réservé dans une " +"arborescence de modules {level} niveaux profonds mais {tokens} espaces " +"réservés donnés." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8246,9 +8206,8 @@ msgid "Application Services" msgstr "Services d'application" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Contexte de configuration" @@ -8257,7 +8216,7 @@ msgstr "Contexte de configuration" msgid "Render Config" msgstr "Configuration du rendu" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8322,7 +8281,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "Supprimé {device} depuis un châssis virtuel {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Objet associé inconnu: {name}" @@ -8332,12 +8291,16 @@ msgid "Changing the type of custom fields is not supported." msgstr "" "La modification du type de champs personnalisés n'est pas prise en charge." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Un module de script portant ce nom de fichier existe déjà." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "La planification n'est pas activée pour ce script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "L'heure prévue doit se situer dans le futur." @@ -8514,8 +8477,7 @@ msgid "White" msgstr "Blanc" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8667,12 +8629,12 @@ msgstr "Signets" msgid "Show your personal bookmarks" msgstr "Afficher vos favoris personnels" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Type d'action inconnu pour une règle d'événement : {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "" @@ -8693,7 +8655,7 @@ msgid "Group (name)" msgstr "Groupe (nom)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Type de cluster" @@ -8713,7 +8675,7 @@ msgid "Tenant group (slug)" msgstr "Groupe d'entités (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Étiquette" @@ -8726,29 +8688,30 @@ msgid "Has local config context data" msgstr "Possède des données contextuelles de configuration locales" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Nom du groupe" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Obligatoire" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Doit être unique" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Interface utilisateur visible" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Interface utilisateur modifiable" @@ -8757,10 +8720,12 @@ msgid "Is cloneable" msgstr "Est cloneable" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Valeur minimale" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Valeur maximale" @@ -8769,8 +8734,7 @@ msgid "Validation regex" msgstr "Regex de validation" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Comportement" @@ -8784,7 +8748,8 @@ msgstr "Classe de boutons" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Type MIME" @@ -8806,31 +8771,29 @@ msgstr "En pièce jointe" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Partagé" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Méthode HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL de charge utile" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Vérification SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Secret" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "chemin du fichier CA" @@ -8981,9 +8944,9 @@ msgstr "Type d'objet attribué" msgid "The classification of entry" msgstr "La classification de l'entrée" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8992,12 +8955,12 @@ msgid "Comments" msgstr "Commentaires" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Utilisateurs" @@ -9007,9 +8970,8 @@ msgstr "" "Noms d'utilisateur séparés par des virgules, encadrés par des guillemets" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9054,6 +9016,7 @@ msgid "Content types" msgstr "Types de contenu" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Type de contenu HTTP" @@ -9125,7 +9088,7 @@ msgstr "Groupes d'entités" msgid "The type(s) of object that have this custom field" msgstr "Le ou les types d'objets dotés de ce champ personnalisé" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Valeur par défaut" @@ -9135,7 +9098,6 @@ msgstr "" "Type de l'objet associé (pour les champs objet/multi-objets uniquement)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filtre d'objets associés" @@ -9143,8 +9105,7 @@ msgstr "Filtre d'objets associés" msgid "Specify query parameters as a JSON object." msgstr "Spécifiez les paramètres de requête sous la forme d'un objet JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Champ personnalisé" @@ -9176,12 +9137,11 @@ msgstr "" "Entrez un choix par ligne. Une étiquette facultative peut être spécifiée " "pour chaque choix en l'ajoutant par deux points. Exemple :" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Ensemble de choix de champs personnalisés" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Lien personnalisé" @@ -9211,8 +9171,7 @@ msgstr "" msgid "Template code" msgstr "Code du modèle" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Modèle d'exportation" @@ -9223,14 +9182,13 @@ msgstr "" "Le contenu du modèle est renseigné à partir de la source distante " "sélectionnée ci-dessous." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Filtre enregistré" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Commander" @@ -9255,13 +9213,11 @@ msgid "A notification group specify at least one user or group." msgstr "" "Un groupe de notifications spécifie au moins un utilisateur ou un groupe." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Requête HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SLL" @@ -9281,8 +9237,7 @@ msgstr "" "Entrez les paramètres à transmettre à l'action dans JSON format." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Règle de l'événement" @@ -9294,8 +9249,7 @@ msgstr "éléments déclencheurs" msgid "Notification group" msgstr "Groupe de notifications" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Profil de contexte de configuration" @@ -9395,7 +9349,7 @@ msgstr "profils de contexte de configuration" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "poids" @@ -9967,7 +9921,7 @@ msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" "Activez la vérification des certificats SSL. Désactivez avec précaution !" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Chemin du fichier CA" @@ -10276,9 +10230,8 @@ msgstr "Rejeter" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10301,7 +10254,6 @@ msgid "Related Object Type" msgstr "Type d'objet associé" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Coffret Choice" @@ -10310,12 +10262,10 @@ msgid "Is Cloneable" msgstr "Est clonable" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Valeur minimale" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Valeur maximale" @@ -10325,9 +10275,9 @@ msgstr "Regex de validation" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10344,50 +10294,44 @@ msgid "Order Alphabetically" msgstr "Ordre alphabétique" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nouvelle fenêtre" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Type MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Nom du fichier" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Extension de fichier" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "En tant que pièce jointe" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Synchronisé" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Image" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Nom de fichier" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Taille" @@ -10395,38 +10339,36 @@ msgstr "Taille" msgid "Table Name" msgstr "Nom de la table" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Lisez" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Validation SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Vérification SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Types d'événements" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Synchronisation automatique activée" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Rôles d'appareils" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Commentaires (courts)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Ligne" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Méthode" @@ -10440,7 +10382,7 @@ msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "" "Essayez de reconfigurer le widget ou supprimez-le de votre tableau de bord." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10453,11 +10395,78 @@ msgstr "" msgid "Custom Fields" msgstr "Champs personnalisés" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Joindre une image" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Clonable" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Poids de l'écran" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Règles de validation" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Expression régulière" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Objets associés" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Utilisé par" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Pièce jointe" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Modèles associés" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Configuration du tableau" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Colonnes affichées" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Groupe de notifications" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Types d'objets autorisés" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Types d'articles étiquetés" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Pièce jointe d'image" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Objet parent" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Entrée de journal" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10496,32 +10505,68 @@ msgstr "Attribut non valide »{name}« pour demande" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Attribut non valide »{name}« pour {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Texte du lien" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL du lien" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Paramètres de l'environnement" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Modèle" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "En-têtes supplémentaires" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Modèle du corps du message" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Les conditions" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Objets étiquetés" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Schéma JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Une erreur s'est produite lors du rendu du modèle : {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Votre tableau de bord a été réinitialisé." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Widget ajouté : " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Widget mis à jour : " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Widget supprimé : " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Erreur lors de la suppression du widget : " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "" "Impossible d'exécuter le script : le processus de travail RQ n'est pas en " @@ -10756,7 +10801,7 @@ msgstr "Groupe FHRP (ID)" msgid "IP address (ID)" msgstr "Adresse IP (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "Adresse IP" @@ -10862,7 +10907,7 @@ msgstr "C'est une plage d'adresses" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Traiter comme entièrement utilisé" @@ -10875,7 +10920,7 @@ msgstr "Attribution de VLAN" msgid "Treat as populated" msgstr "Traiter comme peuplé" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Nom DNS" @@ -11407,172 +11452,172 @@ msgstr "" "Les préfixes ne peuvent pas chevaucher des agrégats. {prefix} couvre un " "agrégat existant ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "rôles" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "préfixe" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Réseau IPv4 ou IPv6 avec masque" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "État opérationnel de ce préfixe" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "La fonction principale de ce préfixe" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "est une plage d'adresses" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" "Toutes les adresses IP comprises dans ce préfixe sont considérées comme " "utilisables" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "marquer comme utilisé" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "préfixes" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Impossible de créer un préfixe avec le masque /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "tableau global" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Préfixe dupliqué trouvé dans {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "adresse de départ" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Adresse IPv4 ou IPv6 (avec masque)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "adresse finale" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "État opérationnel de cette plage" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "La principale fonction de cette gamme" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "marquer comme peuplé" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Empêcher la création d'adresses IP dans cette plage" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Signaler que l'espace est pleinement utilisé" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "plage IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Plages IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Les versions des adresses IP de début et de fin doivent correspondre" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Les masques d'adresse IP de début et de fin doivent correspondre" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "L'adresse de fin doit être supérieure à l'adresse de début ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Les adresses définies se chevauchent avec la plage {overlapping_range} en " "VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "La plage définie dépasse la taille maximale prise en charge ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adresse" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "L'état opérationnel de cette adresse IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Le rôle fonctionnel de cette propriété intellectuelle" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (intérieur)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "" "L'adresse IP pour laquelle cette adresse est l'adresse IP « extérieure »" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Nom d'hôte ou FQDN (pas de distinction majuscules/minuscules)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "Adresses IP" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Impossible de créer une adresse IP avec le masque /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} est un identifiant réseau, qui ne peut pas être attribué à une " "interface." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." @@ -11580,17 +11625,17 @@ msgstr "" "{ip} est une adresse de diffusion, qui ne peut pas être attribuée à une " "interface." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Adresse IP dupliquée trouvée dans {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Impossible de créer une adresse IP {ip} gamme intérieure {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11598,7 +11643,7 @@ msgstr "" "Impossible de réattribuer l'adresse IP lorsqu'elle est désignée comme " "adresse IP principale pour l'objet parent" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11606,7 +11651,7 @@ msgstr "" "Impossible de réattribuer l'adresse IP alors qu'elle est désignée comme " "adresse IP OOB pour l'objet parent" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "" "Seules les adresses IPv6 peuvent être de type SLAAC (Configuration " @@ -12196,8 +12241,9 @@ msgstr "gris" msgid "Dark Grey" msgstr "gris foncé" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Par défaut" @@ -12796,11 +12842,11 @@ msgstr "Configurations" #: netbox/netbox/navigation/menu.py:336 msgid "Config Contexts" -msgstr "Contextes de configuration" +msgstr "Configuration des contextes" #: netbox/netbox/navigation/menu.py:337 msgid "Config Context Profiles" -msgstr "Configurez les profils de contexte" +msgstr "Configuration des profils contextuels" #: netbox/netbox/navigation/menu.py:338 msgid "Config Templates" @@ -12828,7 +12874,7 @@ msgstr "Filtres enregistrés" #: netbox/netbox/navigation/menu.py:356 msgid "Table Configs" -msgstr "Configurations de table" +msgstr "Configurations des tableaux" #: netbox/netbox/navigation/menu.py:358 msgid "Image Attachments" @@ -13064,7 +13110,7 @@ msgstr "La prise en charge de la traduction a été désactivée localement" #: netbox/netbox/preferences.py:43 msgid "NetBox Copilot" -msgstr "Copilote NetBox" +msgstr "Copilot NetBox" #: netbox/netbox/preferences.py:48 msgid "Enable the NetBox Copilot AI agent" @@ -13084,7 +13130,7 @@ msgstr "Emplacement du paginateur" #: netbox/netbox/preferences.py:60 msgid "Bottom" -msgstr "En bas" +msgstr "Bas" #: netbox/netbox/preferences.py:61 msgid "Top" @@ -13140,67 +13186,67 @@ msgstr "Impossible d'ajouter des magasins au registre après l'initialisation" msgid "Cannot delete stores from registry" msgstr "Impossible de supprimer des magasins du registre" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "tchèque" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "danois" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "allemand" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Anglais" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "espagnol" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "français" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "italien" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "japonais" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "letton" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "néerlandais" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "polonais" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "portugais" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "russe" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Turc" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukrainien" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "chinois" @@ -13228,6 +13274,7 @@ msgid "Field" msgstr "Champ" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Valeur" @@ -13259,11 +13306,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Coordonnées GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Objets associés" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13515,7 +13557,6 @@ msgid "Toggle All" msgstr "Tout afficher" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tableau" @@ -13571,13 +13612,9 @@ msgstr "Groupes associés" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13585,6 +13622,7 @@ msgstr "Groupes associés" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Aucune" @@ -13747,7 +13785,7 @@ msgid "Changed" msgstr "Modifié" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "octets" @@ -13800,12 +13838,11 @@ msgid "Job retention" msgstr "Maintien de l'emploi" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Le fichier de données associé à cet objet a été supprimé" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Données synchronisées" @@ -14490,12 +14527,6 @@ msgstr "Ajouter un baie" msgid "Add Site" msgstr "Ajouter un site" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Pièce jointe" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14654,82 +14685,10 @@ msgstr "" "des informations d'identification de NetBox et en lançant une requête pour " "%(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Schéma JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Paramètres de l'environnement" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Modèle" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Nom du groupe" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Doit être unique" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Clonable" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Valeur par défaut" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Poids de recherche" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Logique de recherche du filtre" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Poids de l'écran" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Interface utilisateur visible" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Interface utilisateur modifiable" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Règles de validation" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Expression rationnelle" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Classe de boutons" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Modèles associés" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Texte du lien" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL du lien" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "choix" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14802,10 +14761,6 @@ msgstr "Un problème s'est produit lors de la récupération du flux RSS" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Les conditions" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Planifié le" @@ -14827,14 +14782,6 @@ msgstr "sortie" msgid "Download" msgstr "Télécharger" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Pièce jointe d'image" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Objet parent" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Chargement" @@ -14883,24 +14830,6 @@ msgstr "" "Pour démarrer, créer un script à " "partir d'un fichier ou d'une source de données chargé." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Entrée de journal" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Créé par" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Groupe de notifications" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Aucune assignée" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Le contexte de configuration local remplace tous les contextes source" @@ -14956,6 +14885,16 @@ msgstr "La sortie du modèle est vide" msgid "No configuration template has been assigned." msgstr "Aucun modèle de configuration n'a été attribué." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Aucune assignée" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "N'importe lequel" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14992,14 +14931,6 @@ msgstr "Seuil de journalisation" msgid "All" msgstr "Tous" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Configuration du tableau" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Colonnes affichées" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -15017,46 +14948,6 @@ msgstr "Déplacer vers le haut" msgid "Move Down" msgstr "Déplacer vers le bas" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Articles étiquetés" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Types d'objets autorisés" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "N'importe lequel" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Types d'articles étiquetés" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Objets étiquetés" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Méthode HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Type de contenu HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Vérification SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "En-têtes supplémentaires" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Modèle du corps du message" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Création en masse" @@ -15129,10 +15020,6 @@ msgstr "Options de champ" msgid "Accessor" msgstr "Accesseur" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "choix" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Valeur d'importation" @@ -15645,6 +15532,7 @@ msgstr "Processeurs virtuels" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Mémoire" @@ -15654,8 +15542,8 @@ msgid "Disk Space" msgstr "Espace disque" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Ressources" @@ -16726,13 +16614,13 @@ msgstr "" "Cet objet a été modifié depuis le rendu du formulaire. Consultez le journal " "des modifications de l'objet pour plus de détails." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "La plage «{value}» n'est pas valide." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16741,42 +16629,42 @@ msgstr "" "Plage non valide : la valeur de fin ({end}) doit être supérieur à la valeur " "de départ ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "En-tête de colonne en double ou en conflit : «{field}»" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "En-tête de colonne en double ou en conflit : «{header}»" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Rangée {row}: il devrait y avoir {count_expected} colonnes mais il y en a " "{count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "En-tête de colonne non prévu : «{field}»." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "" "Colonne »{field}« n'est pas un objet apparenté ; ne peut pas utiliser de " "points" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Attribut d'objet associé non valide pour la colonne »{field}« : {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "En-tête de colonne obligatoire «{header}» introuvable." @@ -16795,7 +16683,7 @@ msgstr "" "Valeur requise manquante pour le paramètre de requête statique : " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(réglé automatiquement)" @@ -16993,30 +16881,42 @@ msgstr "Type de cluster (ID)" msgid "Cluster (ID)" msgstr "Cluster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Démarrez au démarrage" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "processeurs virtuels" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Mémoire (Mo)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disque" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disque (Mo)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Mémoire ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Taille (Mo)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disque ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Taille ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -17038,15 +16938,15 @@ msgstr "Cluster attribué" msgid "Assigned device within cluster" msgstr "Appareil attribué au sein du cluster" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Type de cluster" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Groupe Cluster" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -17055,25 +16955,20 @@ msgstr "" "{device} appartient à un autre {scope_field} ({device_scope}) plutôt que le " "cluster ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Épinglez éventuellement cette machine virtuelle à un périphérique hôte " "spécifique au sein du cluster" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Site/Cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "La taille du disque est gérée via la connexion de disques virtuels." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disque" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "type de cluster" @@ -17121,12 +17016,12 @@ msgid "start on boot" msgstr "démarrer au démarrage" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "mémoire (Mo)" +msgid "memory" +msgstr "mémoire" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disque (Mo)" +msgid "disk" +msgstr "disque" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17213,10 +17108,6 @@ msgstr "" "Le VLAN non étiqueté ({untagged_vlan}) doit appartenir au même site que la " "machine virtuelle parente de l'interface, ou il doit être global." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "taille (Mo)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "disque virtuel" diff --git a/netbox/translations/it/LC_MESSAGES/django.mo b/netbox/translations/it/LC_MESSAGES/django.mo index 54e59be1120179df44a8deb1be7bad855f06185c..df46e1a846b275022e53b3a5b8742900d415a3c8 100644 GIT binary patch delta 74631 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 SF|@!Bzxa_toB8|ii1B|(l^w4D delta 74970 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 diff --git a/netbox/translations/it/LC_MESSAGES/django.po b/netbox/translations/it/LC_MESSAGES/django.po index 8748142df..feacd992b 100644 --- a/netbox/translations/it/LC_MESSAGES/django.po +++ b/netbox/translations/it/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n" @@ -49,9 +49,9 @@ msgstr "La tua password è stata cambiata con successo." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -65,21 +65,20 @@ msgstr "Approvvigionamento" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Attivo" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Offline" @@ -92,7 +91,7 @@ msgstr "Deprovisioning" msgid "Decommissioned" msgstr "Dismesso" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -204,13 +203,13 @@ msgstr "Gruppo del sito (slug)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -334,7 +333,7 @@ msgstr "Cerca" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -468,8 +467,8 @@ msgstr "ID del servizio" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Colore" @@ -480,7 +479,7 @@ msgstr "Colore" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -508,15 +507,15 @@ msgstr "Colore" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -562,7 +561,7 @@ msgstr "Provider account " #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -578,12 +577,12 @@ msgstr "Provider account " #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -641,12 +640,12 @@ msgstr "Status" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -731,10 +730,10 @@ msgstr "Parametri del servizio" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -759,8 +758,8 @@ msgstr "Attributi" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -783,30 +782,19 @@ msgstr "Tenancy" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Descrizione" @@ -858,7 +846,7 @@ msgstr "Dettagli sulla cessazione" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -912,10 +900,10 @@ msgstr "Provider network" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1003,7 +991,7 @@ msgstr "Ruolo operativo" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1016,7 +1004,7 @@ msgstr "Ruolo operativo" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1055,8 +1043,8 @@ msgstr "Interfaccia" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1110,12 +1098,12 @@ msgstr "Locazione" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1140,9 +1128,9 @@ msgstr "Proprietà" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1166,9 +1154,9 @@ msgstr "Contatti" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Regione" @@ -1185,9 +1173,9 @@ msgstr "Regione" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Gruppo del sito" @@ -1196,7 +1184,7 @@ msgstr "Gruppo del sito" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Account" @@ -1205,9 +1193,9 @@ msgid "Term Side" msgstr "Lato del termine" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1235,10 +1223,10 @@ msgstr "Assegnazione" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1279,13 +1267,13 @@ msgid "Group Assignment" msgstr "Assegnazione di gruppo" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1312,14 +1300,14 @@ msgstr "ID univoco del circuito" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1414,7 +1402,7 @@ msgstr "ID del patch panel e numero/i di porta" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1448,7 +1436,7 @@ msgstr "" #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1543,8 +1531,8 @@ msgstr "circuito virtuale" msgid "virtual circuits" msgstr "circuiti virtuali" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "ruolo" @@ -1581,10 +1569,10 @@ msgstr "terminazioni di circuiti virtuali" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1592,26 +1580,14 @@ msgstr "terminazioni di circuiti virtuali" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1624,8 +1600,8 @@ msgstr "terminazioni di circuiti virtuali" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1709,7 +1685,7 @@ msgstr "Numero ASN" msgid "Terminations" msgstr "Terminazioni" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1743,7 +1719,7 @@ msgstr "Terminazioni" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1753,10 +1729,10 @@ msgstr "Terminazioni" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1832,7 +1808,7 @@ msgstr "Completato" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Fallito" @@ -1892,14 +1868,13 @@ msgid "30 days" msgstr "30 giorni" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2013,7 +1988,7 @@ msgid "User name" msgstr "Nome utente" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2022,17 +1997,13 @@ msgstr "Nome utente" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Abilitato" @@ -2042,12 +2013,11 @@ msgid "Sync interval" msgstr "Intervallo sincronizzazione" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parametri" @@ -2060,16 +2030,15 @@ msgstr "Ignora le regole" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Fonte dati" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "File" @@ -2087,10 +2056,9 @@ msgstr "Creazione" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Tipo di oggetto" @@ -2135,9 +2103,7 @@ msgstr "Completato prima" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2146,8 +2112,8 @@ msgid "User" msgstr "Utente" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Ora" @@ -2160,8 +2126,7 @@ msgid "Before" msgstr "Prima" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Azione" @@ -2200,7 +2165,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Elevazioni dei rack" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2346,20 +2311,20 @@ msgid "Config revision #{id}" msgstr "Revisione della configurazione #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2368,13 +2333,13 @@ msgstr "tipo" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2441,7 +2406,7 @@ msgstr "" msgid "last updated" msgstr "ultimo aggiornamento" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "sentiero" @@ -2449,7 +2414,8 @@ msgstr "sentiero" msgid "File path relative to the data source's root" msgstr "Percorso del file relativo alla radice dell'origine dati" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "taglia" @@ -2602,12 +2568,11 @@ msgstr "Nome completo" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Oggetto" @@ -2617,7 +2582,7 @@ msgid "Request ID" msgstr "ID della richiesta" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Messaggio" @@ -2646,7 +2611,7 @@ msgstr "Ultimo aggiornamento" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2662,8 +2627,8 @@ msgstr "Intervallo" msgid "Log Entries" msgstr "Voci di registro" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Livello" @@ -2783,11 +2748,10 @@ msgid "Backend" msgstr "Backend" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2846,8 +2810,7 @@ msgstr "Lavoro in coda #{id} da sincronizzare {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Dati" @@ -2912,11 +2875,24 @@ msgstr "La modalità interfaccia non supporta vlan senza tag" msgid "Interface mode does not support tagged vlans" msgstr "La modalità interfaccia non supporta le vlan con tag" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Posizione (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Impossibile installare un modulo con valori segnaposto in un alloggiamento " +"per moduli senza una posizione definita." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "UN {model} denominato {name} esiste già" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "ID struttura" @@ -2944,8 +2920,8 @@ msgid "Staging" msgstr "Messa in scena" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Smantellamento" @@ -3011,7 +2987,7 @@ msgstr "Obsoleto" msgid "Millimeters" msgstr "Millimetri" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Pollici" @@ -3048,14 +3024,14 @@ msgstr "Stantio" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3083,7 +3059,7 @@ msgid "Rear" msgstr "Posteriore" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Messo in scena" @@ -3116,7 +3092,7 @@ msgid "Top to bottom" msgstr "Dall'alto verso il basso" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Passivo" @@ -3145,8 +3121,8 @@ msgid "Proprietary" msgstr "Proprietario" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Altro" @@ -3159,350 +3135,354 @@ msgstr "ITA/Internazionale" msgid "Physical" msgstr "Fisico" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtuale" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Wireless" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Interfacce virtuali" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "ponte" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Link Aggregation Group (GAL)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "Fast Ethernet (100 Mbps)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "Gigabit Ethernet (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "Ethernet 2,5/5 Gbps" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "Ethernet a 10 Gbps" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "Ethernet a 25 Gbps" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "Ethernet a 40 Gbps" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "Ethernet a 50 Gbps" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "Ethernet 100 Gbps" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "Ethernet a 200 Gbps" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "Ethernet a 400 Gbps" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "Ethernet a 800 Gbps" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "Ethernet 1,6 Tbps" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Ricetrasmettitori collegabili" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Backplane Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Cellulare" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Seriale" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Coassiale" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "impilamento" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Metà" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Completo" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Auto" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Accesso" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Taggato" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Contrassegnati (tutti)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "Norma IEEE" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "24V passivo (2 coppie)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "24V passivo (4 coppie)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "48V passivo (2 coppie)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "48V passivo (4 coppie)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Rame" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Fibra ottica" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Singola" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1 PEZZO" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "12 PEZZI" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "14 PEZZI" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "16 PZ" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "18 TAZZINE" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1X12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1X16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Tronco" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "Baule 2C1P" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "Baule 2C2P" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "Baule 2C4P" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "Baule 2C4P (shuffle)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "Baule 2C6P" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "Baule 2C8P" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "Baule 2C12P" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "Baule 4C1P" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "Baule 4C2P" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "baule 4C4P" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "Trunk 4C4P (shuffle)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "Baule 4C6P" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "Baule 4C8P" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "baule 8C4P" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Breakout" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P: rottura 2C1P" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P: rottura 4C1P" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P: rottura 6C1P" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P:8C1P breakout (shuffle)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Rame - Coppia intrecciata (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Rame - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Rame - coassiale" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Fibra - multimodale" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Fibra - Monomodale" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Fibra - Altro" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Connesso" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Chilometri" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Metri" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Centimetri" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Miglia" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Piedi" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Ridondante" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Monofase" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Trifase" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Disabili" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Difettoso" @@ -3786,17 +3766,17 @@ msgstr "È a piena profondità" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "Indirizzo MAC" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Ha un IP primario" @@ -3934,7 +3914,7 @@ msgid "Is primary" msgstr "È primario" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "Modalità 802.1Q" @@ -3951,8 +3931,8 @@ msgstr "VID assegnato" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3963,18 +3943,18 @@ msgstr "VID assegnato" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3991,10 +3971,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -4008,11 +3988,11 @@ msgstr "Politica di traduzione VLAN (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "Politica di traduzione VLAN" @@ -4063,7 +4043,7 @@ msgstr "Indirizzo MAC (ID) primario" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Indirizzo MAC primario" @@ -4123,7 +4103,7 @@ msgstr "Pannello di alimentazione (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4193,7 +4173,7 @@ msgstr "Fuso orario" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4264,11 +4244,6 @@ msgstr "Profondità di montaggio" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Peso" @@ -4301,7 +4276,7 @@ msgstr "Dimensioni esterne" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Dimensioni" @@ -4353,7 +4328,7 @@ msgstr "Flusso d'aria" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "cremagliera" @@ -4406,11 +4381,10 @@ msgstr "Schema" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profilo" @@ -4420,7 +4394,7 @@ msgstr "Profilo" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Tipo di modulo" @@ -4443,8 +4417,8 @@ msgstr "Ruolo VM" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Modello di configurazione" @@ -4466,10 +4440,10 @@ msgstr "Ruolo del dispositivo" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "piattaforma" @@ -4481,13 +4455,13 @@ msgstr "piattaforma" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4495,7 +4469,7 @@ msgstr "Grappolo" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Configurazione" @@ -4519,7 +4493,7 @@ msgstr "Tipo di modulo" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Etichetta" @@ -4569,8 +4543,8 @@ msgid "Maximum draw" msgstr "Pareggio massimo" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Potenza massima assorbita (watt)" @@ -4579,8 +4553,8 @@ msgid "Allocated draw" msgstr "Pareggio assegnato" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Potenza assorbita allocata (watt)" @@ -4595,23 +4569,23 @@ msgid "Feed leg" msgstr "Gamba di alimentazione" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Solo gestione" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "modalità PoE" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "Tipo PoE" @@ -4627,7 +4601,7 @@ msgid "Module" msgstr "Modulo" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "RITARDO" @@ -4638,14 +4612,14 @@ msgstr "Contesti dei dispositivi virtuali" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Velocità" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4658,25 +4632,25 @@ msgstr "modalità" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "Gruppo VLAN" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "VLAN senza tag" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Taggato VLAN" @@ -4691,7 +4665,7 @@ msgstr "Rimuovi le VLAN contrassegnate" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "VLAN di servizio Q-in-Q" @@ -4701,26 +4675,26 @@ msgid "Wireless LAN group" msgstr "Gruppo LAN wireless" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "LAN wireless" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Indirizzamento" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Operazione" @@ -4731,16 +4705,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Interfacce correlate" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "Commutazione 802.1Q" @@ -5030,13 +5004,13 @@ msgstr "Fase elettrica (per circuiti trifase)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Interfaccia principale" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Interfaccia con ponte" @@ -5185,13 +5159,13 @@ msgstr "Dispositivo principale dell'interfaccia assegnata (se presente)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Macchina virtuale" @@ -5350,13 +5324,13 @@ msgstr "IPv6 primario" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "Indirizzo IPv6 con lunghezza del prefisso, ad esempio 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5366,33 +5340,11 @@ msgstr "" "dispositivo/macchina virtuale principale dell'interfaccia oppure devono " "essere globali" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Impossibile installare un modulo con valori segnaposto in un alloggiamento " -"per moduli senza una posizione definita." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Impossibile installare un modulo con valori segnaposto in un albero di " -"alloggiamento del modulo {level} in un albero ma {tokens} segnaposto dati." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Non può adottare {model} {name} in quanto appartiene già a un modulo" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "UN {model} denominato {name} esiste già" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5480,7 +5432,7 @@ msgstr "Dispone di contesti di dispositivi virtuali" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Gruppo Cluster" @@ -5496,7 +5448,7 @@ msgstr "Occupato" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Connessione" @@ -5504,8 +5456,7 @@ msgstr "Connessione" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Gentile" @@ -5514,12 +5465,12 @@ msgid "Mgmt only" msgstr "Solo gestione" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "modalità 802.1Q" @@ -5535,7 +5486,7 @@ msgstr "Frequenza del canale (MHz)" msgid "Channel width (MHz)" msgstr "Larghezza del canale (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Potenza di trasmissione (dBm)" @@ -5586,9 +5537,9 @@ msgstr "Tipo di ambito" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5866,11 +5817,11 @@ msgstr "Interfaccia VM" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5942,7 +5893,7 @@ msgid "profile" msgstr "profilo" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5964,44 +5915,44 @@ msgstr "cavo" msgid "cables" msgstr "cavi" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "" "È necessario specificare un'unità quando si imposta la lunghezza del cavo" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "" "È necessario definire le terminazioni A e B quando si crea un nuovo cavo." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Non è possibile collegare tipi di terminazione diversi alla stessa estremità" " del cavo." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Tipi di terminazione incompatibili: {type_a} e {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "Le terminazioni A e B non possono connettersi allo stesso oggetto." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "fine" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "terminazione del cavo" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "terminazioni dei cavi" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -6010,7 +5961,7 @@ msgstr "" "Non è possibile collegare un cavo a {obj_parent} > {obj} perché è " "contrassegnato come connesso." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6019,61 +5970,61 @@ msgstr "" "È stata rilevata una terminazione duplicata per {app_label}.{model} " "{termination_id}: cavo {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "I cavi non possono essere terminati {type_display} interfacce" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Le terminazioni dei circuiti collegate alla rete di un provider potrebbero " "non essere cablate." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "è attivo" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "è completo" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "è diviso" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "percorso via cavo" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "percorsi via cavo" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Tutte le terminazioni originarie devono essere allegate allo stesso link" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Tutte le terminazioni mid-span devono avere lo stesso tipo di terminazione" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Tutte le terminazioni mid-span devono avere lo stesso oggetto principale" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Tutti i collegamenti devono essere via cavo o wireless" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Tutti i link devono corrispondere al primo tipo di link" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6082,18 +6033,18 @@ msgstr "" "{module} è accettato come sostituto della posizione dell'alloggiamento del " "modulo quando è collegato a un tipo di modulo." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Etichetta fisica" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "I modelli di componente non possono essere spostati su un tipo di " "dispositivo diverso." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6101,7 +6052,7 @@ msgstr "" "Un modello di componente non può essere associato sia a un tipo di " "dispositivo che a un tipo di modulo." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6109,139 +6060,139 @@ msgstr "" "Un modello di componente deve essere associato a un tipo di dispositivo o a " "un tipo di modulo." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "modello di porta console" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "modelli di porte per console" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "modello di porta console server" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "modelli di porte per console server" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "pareggio massimo" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "pareggio assegnato" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "modello di porta di alimentazione" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "modelli di porte di alimentazione" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Il pareggio assegnato non può superare il pareggio massimo " "({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "gamba di alimentazione" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fase (per alimentazioni trifase)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "modello di presa di corrente" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "modelli di prese di corrente" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Porta di alimentazione principale ({power_port}) deve appartenere allo " "stesso tipo di dispositivo" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Porta di alimentazione principale ({power_port}) deve appartenere allo " "stesso tipo di modulo" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "solo gestione" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "interfaccia bridge" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "ruolo wireless" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "modello di interfaccia" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "modelli di interfaccia" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Interfaccia bridge ({bridge}) deve appartenere allo stesso tipo di " "dispositivo" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "" "Interfaccia bridge ({bridge}) deve appartenere allo stesso tipo di modulo" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" "Porta posteriore ({rear_port}) deve appartenere allo stesso tipo di " "dispositivo" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "posizioni" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "modello di porta anteriore" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "modelli di porte anteriori" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6250,15 +6201,15 @@ msgstr "" "Il numero di posizioni non può essere inferiore al numero di modelli di " "porte posteriori mappati ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "modello di porta posteriore" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "modelli di porte posteriori" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6267,35 +6218,35 @@ msgstr "" "Il numero di posizioni non può essere inferiore al numero di modelli di " "porte frontali mappati ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "posizione" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identificatore a cui fare riferimento quando si rinominano i componenti " "installati" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "modello di alloggiamento del modulo" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "modelli module bay" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "modello di alloggiamento per dispositivi" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "modelli di alloggiamento per dispositivi" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6304,21 +6255,21 @@ msgstr "" "Ruolo del tipo di dispositivo secondario ({device_type}) deve essere " "impostato su «principale» per consentire gli alloggiamenti dei dispositivi." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID della parte" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identificativo del pezzo assegnato dal produttore" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "modello di articolo di inventario" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "modelli di articoli di inventario" @@ -6379,85 +6330,85 @@ msgstr "" msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} i modelli devono dichiarare una proprietà parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Tipo di porta fisica" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "velocità" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Velocità della porta in bit al secondo" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "porta console" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "porte console" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "porta console server" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "porte console server" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "porta di alimentazione" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "porte di alimentazione" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "presa di corrente" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "prese di corrente" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Porta di alimentazione principale ({power_port}) deve appartenere allo " "stesso dispositivo" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "modalità" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Strategia di etichettatura IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "interfaccia principale" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN senza tag" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "VLAN contrassegnate" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6465,15 +6416,15 @@ msgstr "VLAN contrassegnate" msgid "Q-in-Q SVLAN" msgstr "SVLAN Q-in-Q" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "indirizzo MAC primario" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Solo le interfacce Q-in-Q possono specificare una VLAN di servizio." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6482,81 +6433,81 @@ msgstr "" "Indirizzo MAC {mac_address} è assegnato a un'interfaccia diversa " "({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "GAL capogruppo" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Questa interfaccia viene utilizzata solo per la gestione fuori banda" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "velocità (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "bifamiliare" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "Nome mondiale a 64 bit" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "canale wireless" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "frequenza del canale (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Popolato dal canale selezionato (se impostato)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "potenza di trasmissione (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "LAN wireless" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interfaccia" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfacce" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} alle interfacce non è possibile collegare un cavo." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" "{display_type} le interfacce non possono essere contrassegnate come " "connesse." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Un'interfaccia non può essere la propria madre." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Solo le interfacce virtuali possono essere assegnate a un'interfaccia " "principale." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6565,7 +6516,7 @@ msgstr "" "L'interfaccia principale selezionata ({interface}) appartiene a un " "dispositivo diverso ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6574,7 +6525,7 @@ msgstr "" "L'interfaccia principale selezionata ({interface}) appartiene a {device}, " "che non fa parte dello chassis virtuale {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6583,7 +6534,7 @@ msgstr "" "L'interfaccia bridge selezionata ({bridge}) appartiene a un dispositivo " "diverso ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6592,16 +6543,16 @@ msgstr "" "L'interfaccia bridge selezionata ({interface}) appartiene a {device}, che " "non fa parte dello chassis virtuale {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "" "Le interfacce virtuali non possono avere un'interfaccia LAG principale." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Un'interfaccia LAG non può essere la propria interfaccia principale." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6609,7 +6560,7 @@ msgstr "" "L'interfaccia LAG selezionata ({lag}) appartiene a un dispositivo diverso " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6618,37 +6569,37 @@ msgstr "" "L'interfaccia LAG selezionata ({lag}) appartiene a {device}, che non fa " "parte dello chassis virtuale {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Il canale può essere impostato solo su interfacce wireless." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "La frequenza del canale può essere impostata solo sulle interfacce wireless." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "Impossibile specificare una frequenza personalizzata con il canale " "selezionato." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "La larghezza del canale può essere impostata solo sulle interfacce wireless." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Impossibile specificare una larghezza personalizzata con il canale " "selezionato." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "La modalità interfaccia non supporta un vlan senza tag." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6657,21 +6608,21 @@ msgstr "" "La VLAN senza tag ({untagged_vlan}) deve appartenere allo stesso sito del " "dispositivo principale dell'interfaccia o deve essere globale." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "" "Porta posteriore ({rear_port}) deve appartenere allo stesso dispositivo" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "porta anteriore" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "porte anteriori" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6680,15 +6631,15 @@ msgstr "" "Il numero di posizioni non può essere inferiore al numero di porte " "posteriori mappate ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "porta posteriore" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "porte posteriori" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6697,41 +6648,41 @@ msgstr "" "Il numero di posizioni non può essere inferiore al numero di porte frontali " "mappate ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "alloggiamento per moduli" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "alloggiamenti per moduli" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Un alloggiamento per moduli non può appartenere a un modulo installato al " "suo interno." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "alloggiamento per dispositivi" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "alloggiamenti per dispositivi" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Questo tipo di dispositivo ({device_type}) non supporta gli alloggiamenti " "per dispositivi." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Impossibile installare un dispositivo su se stesso." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6739,62 +6690,62 @@ msgstr "" "Impossibile installare il dispositivo specificato; il dispositivo è già " "installato in {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "ruolo dell'articolo di inventario" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "ruoli degli articoli di inventario" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "numero di serie" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "etichetta dell'asset" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Un tag univoco utilizzato per identificare questo articolo" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "scoperto" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Questo articolo è stato scoperto automaticamente" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "articolo di inventario" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "articoli di inventario" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Non può assegnarsi come genitore." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "" "L'articolo dell'inventario principale non appartiene allo stesso " "dispositivo." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Impossibile spostare un articolo dell'inventario con figli a carico" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Impossibile assegnare un articolo di inventario a un componente su un altro " @@ -7701,10 +7652,10 @@ msgstr "Raggiungibile" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7716,8 +7667,7 @@ msgid "VMs" msgstr "VM" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7820,7 +7770,7 @@ msgstr "Posizione del dispositivo" msgid "Device Site" msgstr "Sito del dispositivo" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Modulo Bay" @@ -7880,7 +7830,7 @@ msgstr "Indirizzi MAC" msgid "FHRP Groups" msgstr "Gruppi FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7896,7 +7846,7 @@ msgstr "Solo gestione" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Circuito virtuale" @@ -7969,7 +7919,7 @@ msgid "Module Types" msgstr "Tipi di moduli" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "piattaforme" @@ -8070,7 +8020,7 @@ msgstr "Alloggiamenti per dispositivi" msgid "Module Bays" msgstr "Baie per moduli" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Numero moduli" @@ -8148,7 +8098,7 @@ msgstr "{} millimetri" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Numero di serie" @@ -8158,7 +8108,7 @@ msgid "Maximum weight" msgstr "Peso massimo" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Direzione" @@ -8206,18 +8156,28 @@ msgstr "{} UN" msgid "Primary for interface" msgstr "Principale per l'interfaccia" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Membri dello chassis virtuale" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Utilizzo dell'energia" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Traduzione VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Impossibile installare un modulo con valori segnaposto in un albero di " +"alloggiamento del modulo {level} livelli profondi ma {tokens} segnaposto " +"dati." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8258,9 +8218,8 @@ msgid "Application Services" msgstr "Servizi applicativi" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Contesto di configurazione" @@ -8269,7 +8228,7 @@ msgstr "Contesto di configurazione" msgid "Render Config" msgstr "Configurazione del rendering" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8333,7 +8292,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "Rimosso {device} da chassis virtuale {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Oggetti correlati sconosciuti: {name}" @@ -8342,12 +8301,16 @@ msgstr "Oggetti correlati sconosciuti: {name}" msgid "Changing the type of custom fields is not supported." msgstr "La modifica del tipo di campi personalizzati non è supportata." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Esiste già un modulo di script con questo nome di file." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "La pianificazione non è abilitata per questo script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "L'orario programmato deve essere futuro." @@ -8524,8 +8487,7 @@ msgid "White" msgstr "bianco" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8678,12 +8640,12 @@ msgstr "Segnalibri" msgid "Show your personal bookmarks" msgstr "Mostra i tuoi segnalibri personali" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Tipo di azione sconosciuto per una regola di evento: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Impossibile importare la pipeline di eventi {name} errore: {error}" @@ -8703,7 +8665,7 @@ msgid "Group (name)" msgstr "Gruppo (nome)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Tipo di cluster" @@ -8723,7 +8685,7 @@ msgid "Tenant group (slug)" msgstr "Gruppo di inquilini (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Etichetta" @@ -8736,29 +8698,30 @@ msgid "Has local config context data" msgstr "Dispone di dati di contesto di configurazione locali" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Nome del gruppo" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Richiesto" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Deve essere unico" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Interfaccia utente visibile" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Interfaccia utente modificabile" @@ -8767,10 +8730,12 @@ msgid "Is cloneable" msgstr "È clonabile" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Valore minimo" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Valore massimo" @@ -8779,8 +8744,7 @@ msgid "Validation regex" msgstr "Regex di convalida" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Comportamento" @@ -8794,7 +8758,8 @@ msgstr "Classe Button" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Tipo MIME" @@ -8816,31 +8781,29 @@ msgstr "Come allegato" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Condiviso" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Metodo HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL del payload" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Verifica SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Segreto" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Percorso del file CA" @@ -8992,9 +8955,9 @@ msgstr "Tipo di oggetto assegnato" msgid "The classification of entry" msgstr "La classificazione degli ingressi" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -9003,12 +8966,12 @@ msgid "Comments" msgstr "Commenti" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Utenti" @@ -9017,9 +8980,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Nomi utente separati da virgole, racchiusi tra virgolette" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9064,6 +9026,7 @@ msgid "Content types" msgstr "Tipi di contenuto" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Tipo di contenuto HTTP" @@ -9135,7 +9098,7 @@ msgstr "Gruppi di inquilini" msgid "The type(s) of object that have this custom field" msgstr "I tipi di oggetto che hanno questo campo personalizzato" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Valore predefinito" @@ -9144,7 +9107,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Tipo di oggetto correlato (solo per i campi oggetto/multioggetto)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filtro oggetto correlato" @@ -9152,8 +9114,7 @@ msgstr "Filtro oggetto correlato" msgid "Specify query parameters as a JSON object." msgstr "Specifica i parametri della query come oggetto JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Campo personalizzato" @@ -9185,12 +9146,11 @@ msgstr "" "Inserisci una scelta per riga. È possibile specificare un'etichetta " "opzionale per ciascuna scelta aggiungendola con i due punti. Esempio:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Set di scelta dei campi personalizzati" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Link personalizzato" @@ -9221,8 +9181,7 @@ msgstr "" msgid "Template code" msgstr "Codice modello" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Modello di esportazione" @@ -9233,14 +9192,13 @@ msgstr "" "Il contenuto del modello viene compilato dalla fonte remota selezionata di " "seguito." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Filtro salvato" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Ordinazione" @@ -9264,13 +9222,11 @@ msgstr "Colonne selezionate" msgid "A notification group specify at least one user or group." msgstr "Un gruppo di notifiche specifica almeno un utente o un gruppo." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Richiesta HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9291,8 +9247,7 @@ msgstr "" "Inserisci i parametri da passare all'azione in JSON formato." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Regola dell'evento" @@ -9304,8 +9259,7 @@ msgstr "Trigger" msgid "Notification group" msgstr "Gruppo di notifiche" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Profilo del contesto di configurazione" @@ -9399,7 +9353,7 @@ msgstr "profili di contesto di configurazione" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "peso" @@ -9964,7 +9918,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Abilita la verifica del certificato SSL. Disabilita con cautela!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Percorso del file CA" @@ -10273,9 +10227,8 @@ msgstr "Ignora" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10298,7 +10251,6 @@ msgid "Related Object Type" msgstr "Tipo di oggetto correlato" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Set di scelta" @@ -10307,12 +10259,10 @@ msgid "Is Cloneable" msgstr "È clonabile" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Valore minimo" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Valore massimo" @@ -10322,9 +10272,9 @@ msgstr "Validazione Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10341,50 +10291,44 @@ msgid "Order Alphabetically" msgstr "Ordina alfabeticamente" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nuova finestra" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Tipo MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Nome del file" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Estensione del file" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Come allegato" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Sincronizzato" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Immagine" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Nome del file" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Taglia" @@ -10392,38 +10336,36 @@ msgstr "Taglia" msgid "Table Name" msgstr "Nome tabella" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Leggi" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Validazione SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Verifica SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Tipi di eventi" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Sincronizzazione automatica abilitata" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Ruoli dei dispositivi" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Commenti (brevi)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linea" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Metodo" @@ -10437,7 +10379,7 @@ msgstr "" msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "Prova a riconfigurare il widget o a rimuoverlo dalla dashboard." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10450,11 +10392,78 @@ msgstr "Prova a riconfigurare il widget o a rimuoverlo dalla dashboard." msgid "Custom Fields" msgstr "Campi personalizzati" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Allega un'immagine" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Clonabile" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Peso dello schermo" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Regole di convalida" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Espressione regolare" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Oggetti correlati" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Usato da" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Allegato" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Modelli assegnati" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Configurazione della tabella" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Colonne visualizzate" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Gruppo di notifiche" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Tipi di oggetti consentiti" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Tipi di articoli con tag" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Allegato immagine" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Oggetto padre" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Inserimento nel diario" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10492,32 +10501,68 @@ msgstr "Attributo non valido»{name}\"per richiesta" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Attributo non valido»{name}\"per {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Testo del link" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL del collegamento" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Parametri ambientali" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Modello" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Intestazioni aggiuntive" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Modello di corpo" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Condizioni" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Oggetti taggati" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Schema JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Si è verificato un errore durante il rendering del modello: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "La tua dashboard è stata reimpostata." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Widget aggiunto: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Widget aggiornato: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Widget eliminato: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Errore durante l'eliminazione del widget: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "" "Impossibile eseguire lo script: processo di lavoro RQ non in esecuzione." @@ -10753,7 +10798,7 @@ msgstr "Gruppo FHRP (ID)" msgid "IP address (ID)" msgstr "Indirizzo IP (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "indirizzo IP" @@ -10859,7 +10904,7 @@ msgstr "È una piscina" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Trattare come completamente utilizzato" @@ -10872,7 +10917,7 @@ msgstr "Assegnazione VLAN" msgid "Treat as populated" msgstr "Tratta come popolato" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Nome DNS" @@ -11403,113 +11448,113 @@ msgstr "" "I prefissi non possono sovrapporsi agli aggregati. {prefix} copre un " "aggregato esistente ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "ruoli" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefisso" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Rete IPv4 o IPv6 con maschera" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Stato operativo di questo prefisso" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "La funzione principale di questo prefisso" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "è una piscina" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" "Tutti gli indirizzi IP all'interno di questo prefisso sono considerati " "utilizzabili" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "marchio utilizzato" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefissi" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Impossibile creare un prefisso con la maschera /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "tabella globale" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Prefisso duplicato trovato in {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "indirizzo iniziale" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Indirizzo IPv4 o IPv6 (con maschera)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "indirizzo finale" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Stato operativo di questa gamma" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "La funzione principale di questa gamma" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "contrassegno popolato" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "" "Impedire la creazione di indirizzi IP all'interno di questo intervallo" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Segnala lo spazio come completamente utilizzato" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Intervallo IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Intervalli IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Le versioni iniziali e finali degli indirizzi IP devono corrispondere" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Le maschere di indirizzo IP iniziale e finale devono corrispondere" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" @@ -11517,57 +11562,57 @@ msgstr "" "L'indirizzo finale deve essere maggiore dell'indirizzo iniziale " "({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Gli indirizzi definiti si sovrappongono all'intervallo {overlapping_range} " "in VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "L'intervallo definito supera la dimensione massima supportata ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "indirizzo" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Lo stato operativo di questo IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Il ruolo funzionale di questo IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (interno)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "L'IP per il quale questo indirizzo è l'IP «esterno»" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Nome host o FQDN (senza distinzione tra maiuscole e minuscole)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "Indirizzi IP" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Impossibile creare un indirizzo IP con la maschera /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} è un ID di rete, che non può essere assegnato a un'interfaccia." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." @@ -11575,17 +11620,17 @@ msgstr "" "{ip} è un indirizzo di trasmissione, che non può essere assegnato a " "un'interfaccia." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Indirizzo IP duplicato trovato in {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Impossibile creare l'indirizzo IP {ip} gamma interna {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11593,7 +11638,7 @@ msgstr "" "Impossibile riassegnare l'indirizzo IP mentre è designato come IP primario " "per l'oggetto padre" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11601,7 +11646,7 @@ msgstr "" "Impossibile riassegnare l'indirizzo IP mentre è designato come IP OOB per " "l'oggetto padre" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Solo agli indirizzi IPv6 può essere assegnato lo stato SLAAC" @@ -12188,8 +12233,9 @@ msgstr "Grigio" msgid "Dark Grey" msgstr "Grigio scuro" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Predefinito" @@ -13131,67 +13177,67 @@ msgstr "Impossibile aggiungere negozi al registro dopo l'inizializzazione" msgid "Cannot delete stores from registry" msgstr "Impossibile eliminare i negozi dal registro" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "cechi" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "danese" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Tedesco" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Inglese" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "spagnolo" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Francese" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italiano" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Giapponese" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "lettone" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Olandese" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Polacco" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "portoghese" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Russo" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "turco" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "ucraino" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Cinese" @@ -13219,6 +13265,7 @@ msgid "Field" msgstr "Campo" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Valore" @@ -13250,11 +13297,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Coordinate GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Oggetti correlati" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13501,7 +13543,6 @@ msgid "Toggle All" msgstr "Attiva tutto" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tavolo" @@ -13557,13 +13598,9 @@ msgstr "Gruppi assegnati" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13571,6 +13608,7 @@ msgstr "Gruppi assegnati" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Nessuna" @@ -13733,7 +13771,7 @@ msgid "Changed" msgstr "Modificato" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "byte" @@ -13786,12 +13824,11 @@ msgid "Job retention" msgstr "Conservazione del lavoro" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Il file di dati associato a questo oggetto è stato eliminato" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Dati sincronizzati" @@ -14475,12 +14512,6 @@ msgstr "Aggiungi rack" msgid "Add Site" msgstr "Aggiungi sito" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Allegato" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14639,82 +14670,10 @@ msgstr "" "verificarlo connettendoti al database utilizzando le credenziali di NetBox " "ed eseguendo una richiesta per %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Schema JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Parametri ambientali" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Modello" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Nome del gruppo" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Deve essere unico" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Clonabile" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Valore predefinito" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Cerca peso" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Logica del filtro" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Peso dello schermo" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Interfaccia utente visibile" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Interfaccia utente modificabile" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Regole di convalida" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Espressione regolare" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Classe Button" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Modelli assegnati" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Testo del link" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL del collegamento" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "scelte" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14787,10 +14746,6 @@ msgstr "Si è verificato un problema durante il recupero del feed RSS" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Condizioni" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Previsto per" @@ -14812,14 +14767,6 @@ msgstr "Uscita" msgid "Download" msgstr "Scarica" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Allegato immagine" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Oggetto principale" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Caricamento" @@ -14868,24 +14815,6 @@ msgstr "" "Inizia da creazione di uno script da " "un file o da una fonte di dati caricati." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Inserimento nel diario" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Creato da" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Gruppo di notifiche" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Nessuno assegnato" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "" @@ -14942,6 +14871,16 @@ msgstr "L'output del modello è vuoto" msgid "No configuration template has been assigned." msgstr "Non è stato assegnato alcun modello di configurazione." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Nessuno assegnato" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Qualsiasi" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14978,14 +14917,6 @@ msgstr "Soglia di log" msgid "All" msgstr "Tutti" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Configurazione della tabella" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Colonne visualizzate" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -15003,46 +14934,6 @@ msgstr "Sposta verso l'alto" msgid "Move Down" msgstr "Sposta verso il basso" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Oggetti con tag" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Tipi di oggetti consentiti" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Qualsiasi" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Tipi di articoli con tag" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Oggetti taggati" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Metodo HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Tipo di contenuto HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Verifica SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Intestazioni aggiuntive" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Modello di corpo" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Creazione in blocco" @@ -15115,10 +15006,6 @@ msgstr "Opzioni di campo" msgid "Accessor" msgstr "Accessor" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "scelte" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Valore di importazione" @@ -15632,6 +15519,7 @@ msgstr "CPU virtuali" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Memoria" @@ -15641,8 +15529,8 @@ msgid "Disk Space" msgstr "Spazio su disco" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Risorse" @@ -16708,13 +16596,13 @@ msgstr "" "Questo oggetto è stato modificato dopo il rendering del modulo. Per i " "dettagli, consulta il registro delle modifiche dell'oggetto." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Gamma»{value}\"non è valido." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16723,39 +16611,39 @@ msgstr "" "Intervallo non valido: valore finale ({end}) deve essere maggiore del valore" " iniziale ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Intestazione di colonna duplicata o in conflitto per»{field}»" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Intestazione di colonna duplicata o in conflitto per»{header}»" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Fila {row}: Previsto {count_expected} colonne ma trovate {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Intestazione di colonna inaspettata»{field}«trovato." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Colonna»{field}\"non è un oggetto correlato; non può usare punti" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Attributo oggetto correlato non valido per la colonna»{field}«: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Intestazione di colonna obbligatoria»{header}\"non trovato." @@ -16774,7 +16662,7 @@ msgstr "" "Valore obbligatorio mancante per il parametro di query statica: " "'{static_params}»" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(impostato automaticamente)" @@ -16973,30 +16861,42 @@ msgstr "Tipo di cluster (ID)" msgid "Cluster (ID)" msgstr "Cluster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Inizia all'avvio" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Memoria (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disco" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disco (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Memoria ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Dimensioni (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disco ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Dimensioni ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -17018,15 +16918,15 @@ msgstr "Cluster assegnato" msgid "Assigned device within cluster" msgstr "Dispositivo assegnato all'interno del cluster" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Tipo di cluster" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Gruppo Cluster" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -17035,27 +16935,22 @@ msgstr "" "{device} appartiene a un altro {scope_field} ({device_scope}) rispetto al " "cluster ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Facoltativamente, aggiungi questa VM a un dispositivo host specifico " "all'interno del cluster" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Sito/cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "La dimensione del disco viene gestita tramite il collegamento di dischi " "virtuali." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disco" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "tipo di cluster" @@ -17103,12 +16998,12 @@ msgid "start on boot" msgstr "avvio all'avvio" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "memoria (MB)" +msgid "memory" +msgstr "memoria" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disco (MB)" +msgid "disk" +msgstr "disco" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17194,10 +17089,6 @@ msgstr "" "La VLAN senza tag ({untagged_vlan}) deve appartenere allo stesso sito della " "macchina virtuale principale dell'interfaccia o deve essere globale." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "dimensione (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "disco virtuale" diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo index 3415a3bfe543cc7ffcffbb5a970239efa2e971f2..a416c84311fd9629da45c4f5cb87eb37fcd0efad 100644 GIT binary patch delta 74745 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

+0fnJLq-`k}qF0n<|`6 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

^Zoy6ocIbI$uGGR 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 R?h(IeemdP#HT|2!`yZ^S^+Nyv diff --git a/netbox/translations/ja/LC_MESSAGES/django.po b/netbox/translations/ja/LC_MESSAGES/django.po index 68825346c..d9e6e1703 100644 --- a/netbox/translations/ja/LC_MESSAGES/django.po +++ b/netbox/translations/ja/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n" @@ -46,9 +46,9 @@ msgstr "パスワードは正常に変更されました。" #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -62,21 +62,20 @@ msgstr "プロビジョニング" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "アクティブ" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "オフライン" @@ -89,7 +88,7 @@ msgstr "デプロビジョニング" msgid "Decommissioned" msgstr "廃止" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -201,13 +200,13 @@ msgstr "サイトグループ (slug)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -331,7 +330,7 @@ msgstr "検索" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -465,8 +464,8 @@ msgstr "サービス ID" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "色" @@ -477,7 +476,7 @@ msgstr "色" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -505,15 +504,15 @@ msgstr "色" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -559,7 +558,7 @@ msgstr "プロバイダアカウント" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -575,12 +574,12 @@ msgstr "プロバイダアカウント" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -638,12 +637,12 @@ msgstr "ステータス" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -728,10 +727,10 @@ msgstr "サービス情報" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -756,8 +755,8 @@ msgstr "属性" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -780,30 +779,19 @@ msgstr "テナンシー" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "説明" @@ -855,7 +843,7 @@ msgstr "終端詳細" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -909,10 +897,10 @@ msgstr "プロバイダネットワーク" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1000,7 +988,7 @@ msgstr "運用上のロール" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1013,7 +1001,7 @@ msgstr "運用上のロール" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1052,8 +1040,8 @@ msgstr "インタフェース" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1107,12 +1095,12 @@ msgstr "ロケーション" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1137,9 +1125,9 @@ msgstr "所有権" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1163,9 +1151,9 @@ msgstr "連絡先" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "リージョン" @@ -1182,9 +1170,9 @@ msgstr "リージョン" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "サイトグループ" @@ -1193,7 +1181,7 @@ msgstr "サイトグループ" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "アカウント" @@ -1202,9 +1190,9 @@ msgid "Term Side" msgstr "タームサイド" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1232,10 +1220,10 @@ msgstr "割当" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1276,13 +1264,13 @@ msgid "Group Assignment" msgstr "グループ割当" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1309,14 +1297,14 @@ msgstr "一意な回線 ID" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1411,7 +1399,7 @@ msgstr "パッチパネル ID とポート番号" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1444,7 +1432,7 @@ msgstr "回路終端は終端オブジェクトに接続する必要がありま #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1539,8 +1527,8 @@ msgstr "仮想回線" msgid "virtual circuits" msgstr "仮想回線" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "ロール" @@ -1577,10 +1565,10 @@ msgstr "仮想回線終端" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1588,26 +1576,14 @@ msgstr "仮想回線終端" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1620,8 +1596,8 @@ msgstr "仮想回線終端" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1705,7 +1681,7 @@ msgstr "ASN 数" msgid "Terminations" msgstr "終端" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1739,7 +1715,7 @@ msgstr "終端" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1749,10 +1725,10 @@ msgstr "終端" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1826,7 +1802,7 @@ msgstr "完了" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "失敗" @@ -1886,14 +1862,13 @@ msgid "30 days" msgstr "30 日毎" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2007,7 +1982,7 @@ msgid "User name" msgstr "ユーザ名" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2016,17 +1991,13 @@ msgstr "ユーザ名" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "有効" @@ -2036,12 +2007,11 @@ msgid "Sync interval" msgstr "同期間隔" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "パラメータ" @@ -2054,16 +2024,15 @@ msgstr "ignoreルール" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "データソース" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "ファイル" @@ -2081,10 +2050,9 @@ msgstr "作成" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "オブジェクトタイプ" @@ -2129,9 +2097,7 @@ msgstr "以前に完了" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2140,8 +2106,8 @@ msgid "User" msgstr "ユーザ" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "時間" @@ -2154,8 +2120,7 @@ msgid "Before" msgstr "以前" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "アクション" @@ -2193,7 +2158,7 @@ msgstr "同期するファイルをアップロードするか、データファ msgid "Rack Elevations" msgstr "ラック図" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2336,20 +2301,20 @@ msgid "Config revision #{id}" msgstr "設定履歴 #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2358,13 +2323,13 @@ msgstr "タイプ" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2424,7 +2389,7 @@ msgstr "バックエンドの初期化中にエラーが発生しました。依 msgid "last updated" msgstr "最終更新日時" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "パス" @@ -2432,7 +2397,8 @@ msgstr "パス" msgid "File path relative to the data source's root" msgstr "データソースのルートを基準にしたファイルパス" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "サイズ" @@ -2581,12 +2547,11 @@ msgstr "フルネーム" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "オブジェクト" @@ -2596,7 +2561,7 @@ msgid "Request ID" msgstr "リクエスト ID" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "メッセージ" @@ -2625,7 +2590,7 @@ msgstr "最終更新日" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2641,8 +2606,8 @@ msgstr "間隔" msgid "Log Entries" msgstr "ログエントリ" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "レベル" @@ -2762,11 +2727,10 @@ msgid "Backend" msgstr "バックエンド" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2825,8 +2789,7 @@ msgstr "キューに入っているジョブ #{id} 同期するには {datasourc #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "データ" @@ -2891,11 +2854,22 @@ msgstr "インターフェイスモードはタグなし VLAN をサポートし msgid "Interface mode does not support tagged vlans" msgstr "インターフェイスモードはタグ付き VLAN をサポートしていません" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "ポジション (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "位置が定義されていないモジュールベイには、プレースホルダー値のあるモジュールを挿入できません。" + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "{model} {name} は既に存在しています" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "ファシリティ ID" @@ -2919,8 +2893,8 @@ msgid "Staging" msgstr "ステージング" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "廃止" @@ -2986,7 +2960,7 @@ msgstr "廃止済" msgid "Millimeters" msgstr "ミリメートル" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "インチ" @@ -3023,14 +2997,14 @@ msgstr "古い" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3058,7 +3032,7 @@ msgid "Rear" msgstr "背面" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "検証" @@ -3091,7 +3065,7 @@ msgid "Top to bottom" msgstr "上から下へ" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "パッシブ" @@ -3120,8 +3094,8 @@ msgid "Proprietary" msgstr "独自規格" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "その他" @@ -3134,350 +3108,354 @@ msgstr "ITA/International" msgid "Physical" msgstr "物理" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "仮想" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "無線" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "仮想インタフェース" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "ブリッジ" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "リンクアグリゲーション (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "ファストイーサネット (100 Mbps)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "ギガビットイーサネット (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2.5/5 ギガビット/秒イーサネット" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10 ギガビットイーサネット" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25 ギガビットイーサネット" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40 ギガビットイーサネット" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50 ギガビットイーサネット" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100 ギガビットイーサネット" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200 ギガビット/秒イーサネット" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400 ギガビットイーサネット" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 ギガビット/秒イーサネット" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "1.6 Tbps イーサネット" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "プラガブルトランシーバー" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "バックプレーンイーサネット" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "セルラー" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "シリアル" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "同軸" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "スタック" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "半二重" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "全二重" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "自動" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "アクセス" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "タグ付き" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "タグ付き (全て)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "IEEE スタンダード" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "パッシブ 24V (2ペア)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "パッシブ 24V (4ペア)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "パッシブ 48V (2ペア)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "パッシブ 48V (4ペア)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "カッパー" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "光ファイバー" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "シングル" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1CP" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1CP" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "16CP" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "18CP" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "トランク" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P トランク" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P トランク" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P トランク" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "2C4P トランク (シャッフル)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "26CP トランク" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "28CP トランク" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P トランク" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P トランク" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P トランク" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P トランク" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P トランク (シャッフル)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P トランク" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P トランク" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P トランク" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "ブレイクアウト" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P: 2C1P ブレークアウト" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P: 4C1P ブレークアウト" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P: 6C1P ブレークアウト" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P: 8C1P ブレークアウト (シャッフル)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "銅線-ツイストペア (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "銅-トワイナックス (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "銅-同軸" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "ファイバ-マルチモード" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "ファイバ-シングルモード" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "ファイバー-その他" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "接続済" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "キロメートル" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "メートル" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "センチメートル" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "マイル" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "フィート" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "冗長" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "単相" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "三相" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "無効" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "不良" @@ -3761,17 +3739,17 @@ msgstr "奥行きをすべて使う" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC アドレス" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "プライマリ IP がある" @@ -3909,7 +3887,7 @@ msgid "Is primary" msgstr "プライマリ" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "802.1Q モード" @@ -3926,8 +3904,8 @@ msgstr "割当 VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3938,18 +3916,18 @@ msgstr "割当 VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3966,10 +3944,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -3983,11 +3961,11 @@ msgstr "VLAN 変換ポリシー (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "VLAN 変換ポリシー" @@ -4034,7 +4012,7 @@ msgstr "プライマリ MAC アドレス (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "プライマリ MAC アドレス" @@ -4094,7 +4072,7 @@ msgstr "電源盤 (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4162,7 +4140,7 @@ msgstr "タイムゾーン" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4233,11 +4211,6 @@ msgstr "取り付け奥行き" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "重量" @@ -4270,7 +4243,7 @@ msgstr "外形寸法" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "寸法" @@ -4322,7 +4295,7 @@ msgstr "エアフロー" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "ラック" @@ -4375,11 +4348,10 @@ msgstr "スキーマ" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "プロフィール" @@ -4389,7 +4361,7 @@ msgstr "プロフィール" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "モジュールタイプ" @@ -4412,8 +4384,8 @@ msgstr "VMのロール" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "設定テンプレート" @@ -4435,10 +4407,10 @@ msgstr "デバイスロール" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "プラットフォーム" @@ -4450,13 +4422,13 @@ msgstr "プラットフォーム" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4464,7 +4436,7 @@ msgstr "クラスタ" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "設定" @@ -4488,7 +4460,7 @@ msgstr "モジュールタイプ" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "ラベル" @@ -4538,8 +4510,8 @@ msgid "Maximum draw" msgstr "最大消費電力" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "最大消費電力 (ワット)" @@ -4548,8 +4520,8 @@ msgid "Allocated draw" msgstr "割当電力" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "割当消費電力 (ワット)" @@ -4564,23 +4536,23 @@ msgid "Feed leg" msgstr "供給端子" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "管理のみ" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "PoE モード" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "PoE タイプ" @@ -4596,7 +4568,7 @@ msgid "Module" msgstr "モジュール" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4607,14 +4579,14 @@ msgstr "仮想デバイスコンテキスト" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "速度" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4627,25 +4599,25 @@ msgstr "モード" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "VLAN グループ" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "タグなし VLAN" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "タグ付き VLAN" @@ -4660,7 +4632,7 @@ msgstr "タグ付 VLAN の削除" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Q-in-Q サービス VLAN" @@ -4670,26 +4642,26 @@ msgid "Wireless LAN group" msgstr "無線 LAN グループ" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "無線 LAN" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "アドレス" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "オペレーション" @@ -4700,16 +4672,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "関連インタフェース" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "802.1Q スイッチング" @@ -4988,13 +4960,13 @@ msgstr "電気位相 (三相回路用)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "親インタフェース" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "ブリッジインタフェース" @@ -5135,13 +5107,13 @@ msgstr "割当インタフェースの親デバイス (存在する場合)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "仮想マシン" @@ -5294,44 +5266,24 @@ msgstr "プライマリ IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "プレフィックス長のある IPv6 アドレス、例:2001: db8:: 1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " "parent device/VM, or they must be global" msgstr "タグ付き VLAN ({vlans}) はインタフェースの親デバイス/VMと同サイトに属しているか、グローバルである必要があります" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "位置が定義されていないモジュールベイには、プレースホルダー値のあるモジュールを挿入できません。" - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"モジュールベイツリーの{level}レベルにはプレースホルダ値のあるモジュールをインストールできませんが、 " -"{tokens}個のプレースホルダが与えられています。" - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr " {model} {name} は既にモジュールに属しているので採用できません" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "{model} {name} は既に存在しています" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5419,7 +5371,7 @@ msgstr "仮想デバイスコンテキストがある" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "クラスタグループ" @@ -5435,7 +5387,7 @@ msgstr "専有済" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "接続" @@ -5443,8 +5395,7 @@ msgstr "接続" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "種類" @@ -5453,12 +5404,12 @@ msgid "Mgmt only" msgstr "管理のみ" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "802.1Q モード" @@ -5474,7 +5425,7 @@ msgstr "チャネル周波数 (MHz)" msgid "Channel width (MHz)" msgstr "チャネル幅 (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "送信出力 (dBm)" @@ -5524,9 +5475,9 @@ msgstr "スコープタイプ" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5790,11 +5741,11 @@ msgstr "VM インターフェイス" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5859,7 +5810,7 @@ msgid "profile" msgstr "プロフィール" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5881,300 +5832,300 @@ msgstr "ケーブル" msgid "cables" msgstr "ケーブル" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "ケーブル長を設定するときは単位を指定する必要があります" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "新しいケーブルを作成するときは、A 終端と B 終端を定義する必要があります。" -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "ケーブルの同じ端に異なる終端タイプを接続することはできません。" -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "互換性のない終端タイプ: {type_a} そして {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "A 端子と B 端子を同じオブジェクトに接続することはできません。" -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "端" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "ケーブル終端" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "ケーブル終端" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " "connected." msgstr "にケーブルを接続できません {obj_parent} > {obj} 接続済みとマークされているからです。" -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " "{cable_pk}" msgstr "{app_label}の重複終了が見つかりました 。{model} {termination_id}: ケーブル {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "ケーブルは終端できません {type_display} インターフェース" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "プロバイダーネットワークに接続されている回線終端はケーブル接続できない場合があります。" -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "アクティブ" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "完了" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "分割" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "ケーブル経路" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "ケーブル経路" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "元の端子はすべて同じリンクに接続する必要があります" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "ミッドスパン終端はすべて同じ終端タイプでなければなりません" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "すべてのミッドスパン終端には同じ親オブジェクトが必要です" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "すべてのリンクはケーブルまたはワイヤレスでなければなりません" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "すべてのリンクは最初のリンクタイプと一致する必要があります" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " "attached to a module type." msgstr "{module} は、モジュールタイプに取り付けられる場合、モジュールベイ位置の代わりとして使用できます。" -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "物理ラベル" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "構成要素テンプレートを別のデバイスタイプに移動することはできません。" -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "構成要素テンプレートをデバイスタイプとモジュールタイプの両方に関連付けることはできません。" -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "構成要素テンプレートは、デバイスタイプまたはモジュールタイプのいずれかに関連付ける必要があります。" -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "コンソールポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "コンソールポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "コンソールサーバポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "コンソールサーバポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "最大消費電力" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "割当消費電力" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "電源ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "電源ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "割当消費電力は最大消費電力 ({maximum_draw}W) を超えることはできません。" -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "供給端子" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "電力相 (三相電源用)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "電源コンセントテンプレート" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "電源コンセントテンプレート" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "親電源ポート ({power_port}) は同じデバイスタイプに属している必要があります" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "親電源ポート ({power_port}) は同じモジュールタイプに属している必要があります" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "管理のみ" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "ブリッジインタフェース" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "無線ロール" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "インタフェーステンプレート" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "インタフェーステンプレート" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "ブリッジインタフェース ({bridge}) は同じデバイスタイプに属している必要があります" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "ブリッジインタフェース ({bridge}) は同じモジュールタイプに属している必要があります" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "リアポート ({rear_port}) は同じデバイスタイプに属している必要があります" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "位置" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "前面ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "前面ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " "templates ({count})" msgstr "位置の数は、マップされた背面ポートテンプレートの数より少なくすることはできません ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "背面ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "背面ポートテンプレート" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " "templates ({count})" msgstr "位置の数は、マップされたフロントポートテンプレートの数より少なくすることはできません ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "位置" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "取付済み構成要素名を変更する際に参照する識別子" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "モジュールベイテンプレート" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "モジュールベイテンプレート" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "デバイスベイテンプレート" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "デバイスベイテンプレート" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6182,21 +6133,21 @@ msgid "" msgstr "" "デバイスベイを許可するためには、デバイスタイプ ({device_type}) のサブデバイスロールを「parent」に設定する必要があります。" -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "パーツ ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "メーカ指定の部品識別子" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "在庫品目テンプレート" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "在庫品目テンプレート" @@ -6249,83 +6200,83 @@ msgstr "ケーブルなしではケーブルの終端位置を設定しないで msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} モデルは親オブジェクトプロパティを宣言しなければなりません" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "物理ポートタイプ" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "速度" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "ポート速度 (bps)" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "コンソールポート" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "コンソールポート" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "コンソールサーバポート" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "コンソールサーバポート" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "電源ポート" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "電源ポート" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "電源コンセント" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "電源コンセント" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "親電源ポート ({power_port}) は同じデバイスに属している必要があります" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "モード" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q タギング戦略" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "親インタフェース" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "タグなし VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "タグ付き VLAN" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6333,99 +6284,99 @@ msgstr "タグ付き VLAN" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "プライマリ MAC アドレス" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Q-in-Q インターフェイスのみがサービス VLAN を指定できます。" -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " "({interface})." msgstr "MAC アドレス {mac_address} 別のインターフェースに割り当てられている ({interface})。" -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "親ラグ" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "このインタフェースは帯域外管理にのみ使用されます。" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "速度 (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "デュプレックス" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64 ビットのWWN (World Wide Name)" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "無線チャネル" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "チャネル周波数 (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "選択したチャンネルによって設定されます (設定されている場合)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "送信パワー (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "無線 LAN" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "インタフェース" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "インタフェース" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} インタフェースにはケーブルを接続できません。" -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} インタフェースは接続済みとしてマークできません。" -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "インタフェースを自身の親にすることはできません。" -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "親インタフェースに割り当てることができるのは仮想インタフェースだけです。" -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " "({device})" msgstr "選択した親インタフェース ({interface}) は別のデバイス ({device}) に属しています" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6434,14 +6385,14 @@ msgstr "" "選択した親インタフェース ({interface}) が属する {device} " "は、バーチャルシャーシ{virtual_chassis}には含まれていません。 。" -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " "({device})." msgstr "選択したブリッジインタフェース ({bridge}) は別のデバイス ({device}) に属しています。" -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6450,21 +6401,21 @@ msgstr "" "選択したブリッジインタフェース ({interface}) が属する " "{device}は、バーチャルシャーシ{virtual_chassis}には含まれていません。 " -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "仮想インタフェースは親 LAG インタフェースを持つことはできません。" -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "LAG インタフェースを自身の親にすることはできません。" -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "選択した LAG インタフェース ({lag}) は別のデバイス ({device}) に属しています。" -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6473,31 +6424,31 @@ msgstr "" "選択した LAG インタフェース ({lag}) が属する {device}は、バーチャルシャーシには含まれていません " "{virtual_chassis}。" -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "チャネルは無線インタフェースでのみ設定できます。" -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "チャネル周波数は、無線インタフェースでのみ設定できます。" -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "選択したチャンネルではカスタム周波数を指定できません。" -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "チャネル幅は無線インタフェースでのみ設定できます。" -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "選択したチャンネルではカスタム幅を指定できません。" -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "インターフェイスモードはタグなし VLAN をサポートしていません。" -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6505,131 +6456,131 @@ msgid "" msgstr "" "タグ無し VLAN ({untagged_vlan}) はインタフェースの親デバイスと同じサイトに属しているか、グローバルである必要があります。" -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "背面ポート ({rear_port}) は同じデバイスに属している必要があります" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "前面ポート" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "前面ポート" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " "({count})" msgstr "位置の数は、マップされた背面ポートの数より少なくすることはできません ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "背面ポート" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "背面ポート" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" " ({count})" msgstr "位置の数は、マップされたフロントポートの数より少なくすることはできません ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "モジュールベイ" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "モジュールベイ" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "モジュールベイは、その中に取り付けられているモジュールに属することはできません。" -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "デバイスベイ" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "デバイスベイ" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "このタイプ ({device_type}) のデバイスは、デバイスベイをサポートしていません。" -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "デバイスをそれ自体に挿入することはできません。" -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "指定されたデバイスは取付できません。デバイスは既に {bay} に取付られています 。" -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "在庫品目ロール" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "在庫品目ロール" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "シリアル番号" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "アセットタグ" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "この部品を識別するために使用される一意のタグ" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "自動検出" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "このアイテムは自動的に検出されました" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "在庫品目" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "在庫品目" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "自分を親として割り当てることはできません。" -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "親在庫品目は同じデバイスに属していません。" -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "子を持つ在庫品目は移動できません" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "在庫品目を別のデバイスの構成要素に割り当てることはできません" @@ -7479,10 +7430,10 @@ msgstr "到達可能" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7494,8 +7445,7 @@ msgid "VMs" msgstr "VM" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7598,7 +7548,7 @@ msgstr "デバイスの場所" msgid "Device Site" msgstr "デバイスサイト" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "モジュールベイ" @@ -7658,7 +7608,7 @@ msgstr "MAC アドレス" msgid "FHRP Groups" msgstr "FHRP グループ" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7674,7 +7624,7 @@ msgstr "管理のみ" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "仮想回線" @@ -7747,7 +7697,7 @@ msgid "Module Types" msgstr "モジュールタイプ" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "プラットフォーム" @@ -7848,7 +7798,7 @@ msgstr "デバイスベイ" msgid "Module Bays" msgstr "モジュールベイ" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "モジュール数" @@ -7926,7 +7876,7 @@ msgstr "{} ミリメートル" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "シリアル番号" @@ -7936,7 +7886,7 @@ msgid "Maximum weight" msgstr "最大重量" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "マネジメント" @@ -7984,18 +7934,27 @@ msgstr "{} A" msgid "Primary for interface" msgstr "インターフェイスのプライマリ" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "バーチャルシャーシメンバー" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "電力使用率" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN トランスレーション" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"モジュールベイツリーにプレースホルダ値のあるモジュールをインストールできない {level} レベルは深いが {tokens} " +"プレースホルダーが与えられました。" + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8036,9 +7995,8 @@ msgid "Application Services" msgstr "アプリケーションサービス" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "コンフィグコンテキスト" @@ -8047,7 +8005,7 @@ msgstr "コンフィグコンテキスト" msgid "Render Config" msgstr "レンダーコンフィグ" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8110,7 +8068,7 @@ msgstr "マスターデバイスを削除できません {device} バーチャ msgid "Removed {device} from virtual chassis {chassis}" msgstr "削除済み {device} バーチャルシャーシから {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "不明な関連オブジェクト: {name}" @@ -8119,12 +8077,16 @@ msgstr "不明な関連オブジェクト: {name}" msgid "Changing the type of custom fields is not supported." msgstr "カスタムフィールドのタイプの変更はサポートされていません。" -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "このファイル名のスクリプトモジュールは既に存在します。" + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "このスクリプトではスケジューリングが有効になっていません。" -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "予定時刻は将来の時刻でなければなりません。" @@ -8301,8 +8263,7 @@ msgid "White" msgstr "白" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8443,12 +8404,12 @@ msgstr "ブックマーク" msgid "Show your personal bookmarks" msgstr "個人用のブックマークを表示する" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "イベントルールのアクションタイプが不明です: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "イベントパイプラインをインポートできません {name} エラー: {error}" @@ -8468,7 +8429,7 @@ msgid "Group (name)" msgstr "グループ (名前)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "クラスタタイプ" @@ -8488,7 +8449,7 @@ msgid "Tenant group (slug)" msgstr "テナントグループ (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "タグ" @@ -8501,29 +8462,30 @@ msgid "Has local config context data" msgstr "ローカル設定コンテキストがある" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "グループ名" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "必須" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "一意でなければならない" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "UI で表示される" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "UI で編集可能" @@ -8532,10 +8494,12 @@ msgid "Is cloneable" msgstr "複製可能" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "最小値" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "最大値" @@ -8544,8 +8508,7 @@ msgid "Validation regex" msgstr "検証正規表現" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "動作" @@ -8559,7 +8522,8 @@ msgstr "ボタンクラス" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIMEタイプ" @@ -8581,31 +8545,29 @@ msgstr "添付ファイルとして" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "共有" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP メソッド" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "ペイロード URL" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL 検証" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "シークレット" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA ファイルパス" @@ -8752,9 +8714,9 @@ msgstr "割当オブジェクトタイプ" msgid "The classification of entry" msgstr "エントリの分類" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8763,12 +8725,12 @@ msgid "Comments" msgstr "コメント" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "ユーザ" @@ -8777,9 +8739,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "二重引用符で囲んだカンマ区切りのユーザ名" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8824,6 +8785,7 @@ msgid "Content types" msgstr "コンテンツタイプ" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP content type" @@ -8895,7 +8857,7 @@ msgstr "テナントグループ" msgid "The type(s) of object that have this custom field" msgstr "このカスタムフィールドを持つオブジェクトのタイプ" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "既定値" @@ -8904,7 +8866,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "関連オブジェクトのタイプ (オブジェクト/マルチオブジェクトフィールドのみ)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "関連オブジェクトフィルタ" @@ -8912,8 +8873,7 @@ msgstr "関連オブジェクトフィルタ" msgid "Specify query parameters as a JSON object." msgstr "クエリパラメータを JSON オブジェクトとして指定します。" -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "カスタムフィールド" @@ -8939,12 +8899,11 @@ msgid "" "choice by appending it with a colon. Example:" msgstr "1 行に 1 つの選択肢を入力します。必要に応じて、各選択肢にコロンを付けることで、ラベルを指定できます。例:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "カスタムフィールド選択セット" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "カスタムリンク" @@ -8972,8 +8931,7 @@ msgstr "リンク URL の Jinja2 テンプレートコード。オブジェク msgid "Template code" msgstr "テンプレートコード" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "エクスポートテンプレート" @@ -8982,14 +8940,13 @@ msgstr "エクスポートテンプレート" msgid "Template content is populated from the remote source selected below." msgstr "選択したリモートソースから、テンプレートコンテンツが入力されます。" -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "保存済みフィルタ" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "注文" @@ -9011,13 +8968,11 @@ msgstr "選択した列" msgid "A notification group specify at least one user or group." msgstr "通知グループには、少なくとも 1 人のユーザまたはグループを指定します。" -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP リクエスト" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9035,8 +8990,7 @@ msgid "" "href=\"https://json.org/\">JSON format." msgstr "JSON フォーマットでアクションに渡すパラメータを入力してください。" -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "イベントルール" @@ -9048,8 +9002,7 @@ msgstr "トリガー" msgid "Notification group" msgstr "通知グループ" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "設定コンテキストプロファイル" @@ -9139,7 +9092,7 @@ msgstr "設定コンテキストプロファイル" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "重量" @@ -9662,7 +9615,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "SSL 証明書検証を有効にします。注意して無効にしてください。" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA ファイルパス" @@ -9961,9 +9914,8 @@ msgstr "却下" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -9986,7 +9938,6 @@ msgid "Related Object Type" msgstr "関連オブジェクトタイプ" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "チョイスセット" @@ -9995,12 +9946,10 @@ msgid "Is Cloneable" msgstr "複製可能" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "最小値" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "最大値" @@ -10010,9 +9959,9 @@ msgstr "検証正規表現" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10029,50 +9978,44 @@ msgid "Order Alphabetically" msgstr "アルファベット順に並べる" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "新規ウィンドウ" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "マイムタイプ" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "ファイル名" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "ファイル拡張子" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "添付ファイルとして" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "同期済み" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "画像" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "ファイル名" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "サイズ" @@ -10080,38 +10023,36 @@ msgstr "サイズ" msgid "Table Name" msgstr "テーブル名" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "読む" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL バリデーション" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL 検証" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "イベントタイプ" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "自動同期有効" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "デバイスロール" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "コメント (ショート)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "ライン" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "メソッド" @@ -10123,7 +10064,7 @@ msgstr "このウィジェットをレンダリングしようとしたときに msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "ウィジェットを再設定するか、ダッシュボードから削除してください。" -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10136,11 +10077,78 @@ msgstr "ウィジェットを再設定するか、ダッシュボードから削 msgid "Custom Fields" msgstr "カスタムフィールド" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "画像を添付" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "クローン可能" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "ディスプレイ重量" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "検証ルール" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "正規表現" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "関連オブジェクト" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "使用者" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "アタッチメント" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "割当モデル" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "テーブル構成" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "表示されている列" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "通知グループ" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "許可されるオブジェクトタイプ" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "タグ付きアイテムタイプ" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "添付画像" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "親オブジェクト" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "ジャーナルエントリ" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10178,32 +10186,68 @@ msgstr "属性が無効です」{name}「」(リクエスト用)" msgid "Invalid attribute \"{name}\" for {model}" msgstr "{model}において{name}属性は無効です" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "リンクテキスト" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "リンク URL" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "環境パラメータ" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "テンプレート" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "その他のヘッダー" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "ボディテンプレート" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "条件" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "タグ付きオブジェクト" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON スキーマ" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "テンプレートをレンダリング中にエラーが発生しました: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "ダッシュボードがリセットされました。" -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "ウィジェットの追加: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "ウィジェットの更新: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "削除したウィジェット: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "ウィジェットの削除中にエラーが発生しました: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "スクリプトを実行できません:RQ ワーカープロセスが実行されていません。" @@ -10434,7 +10478,7 @@ msgstr "FHRP グループ (ID)" msgid "IP address (ID)" msgstr "IP アドレス (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP アドレス" @@ -10540,7 +10584,7 @@ msgstr "プールです" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "すべて使用済として扱う" @@ -10553,7 +10597,7 @@ msgstr "VLAN アサイメント" msgid "Treat as populated" msgstr "入力済みとして扱う" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS ネーム" @@ -11056,191 +11100,191 @@ msgid "" "({aggregate})." msgstr "プレフィックスは集約と重複できません。 {prefix} は既存の集約 ({aggregate}) に含まれます。" -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "ロール" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "プレフィックス" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "マスク付きの IPv4 または IPv6 ネットワーク" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "このプレフィックスの動作ステータス" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "このプレフィックスの主な機能" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "プールか" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "このプレフィックス内のすべての IP アドレスが使用可能と見なされます。" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "使用済み" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "プレフィックス" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "/0 マスクではプレフィックスを作成できません。" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "グローバルテーブル" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "重複したプレフィックスが見つかりました {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "開始アドレス" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4 または IPv6 アドレス (マスク付き)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "終了アドレス" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "この範囲の動作状況" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "この範囲の主な機能" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "マークが入力されました" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "このレンジの IP アドレスの作成を防ぐ" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "レポートスペースがフル稼働中" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP アドレス範囲" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP アドレス範囲" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "開始・終了 IP アドレスのバージョンが一致している必要があります" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "開始・終了 IP アドレスマスクは一致する必要があります" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "終了アドレスは開始アドレスより大きくなければなりません ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "VRF{vrf}において、定義されたアドレスが範囲{overlapping_range}と重複しています " -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "定義された範囲がサポートされている最大サイズを超えています ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "アドレス" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "この IP の動作ステータス" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "この IP の役割" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (インサイド)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "このアドレスが「アウトサイド」IPであるIP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "ホスト名または FQDN (大文字と小文字は区別されません)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP アドレス" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "/0 マスクで IP アドレスを作成することはできません。" -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} はネットワーク ID のため、インタフェースに割り当てることはできません。" -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip} はブロードキャストアドレスのため、インタフェースに割り当てることはできません。" -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "重複した IP アドレスが見つかりました {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "レンジ {range}内のIP アドレス{ip}を作成できません。" -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "親オブジェクトのプライマリ IP として指定されている間は IP アドレスを再割り当てできません" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" msgstr "親オブジェクトの OOB IP として指定されている間は IP アドレスを再割り当てできません" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "SLAAC ステータスを割り当てることができるのは IPv6 アドレスのみです" @@ -11803,8 +11847,9 @@ msgstr "グレー" msgid "Dark Grey" msgstr "ダークグレー" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "デフォルト" @@ -12723,67 +12768,67 @@ msgstr "初期化後にストアをレジストリに追加できません" msgid "Cannot delete stores from registry" msgstr "レジストリからストアを削除できません" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "チェコ語" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "デンマーク語" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "ドイツ語" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "英語" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "スペイン語" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "フランス語" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "イタリア語" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "日本語" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "ラトビア語" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "オランダ語" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "ポーランド語" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "ポルトガル語" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "ロシア語" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "トルコ語" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "ウクライナ語" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "中国語" @@ -12811,6 +12856,7 @@ msgid "Field" msgstr "フィールド" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "値" @@ -12840,11 +12886,6 @@ msgstr "最大アイテム数の値が無効です: {max_items}!正の整数か msgid "GPS coordinates" msgstr "GPS 座標" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "関連オブジェクト" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13083,7 +13124,6 @@ msgid "Toggle All" msgstr "すべて切り替え" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "テーブル" @@ -13139,13 +13179,9 @@ msgstr "割当グループ" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13153,6 +13189,7 @@ msgstr "割当グループ" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "なし" @@ -13315,7 +13352,7 @@ msgid "Changed" msgstr "変更日" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "バイト" @@ -13368,12 +13405,11 @@ msgid "Job retention" msgstr "ジョブの維持" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "このオブジェクトに関連するデータファイルは削除されました" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "データ同期済み" @@ -14052,12 +14088,6 @@ msgstr "ラックを追加" msgid "Add Site" msgstr "サイトを追加" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "アタッチメント" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14200,82 +14230,10 @@ msgstr "" "PostgreSQL バージョン 14 以降が使用されていることを確認してください。これを確認するには、NetBox " "の認証情報を使用してデータベースに接続し、次のクエリを実行します。 %(sql_query)s。" -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON スキーマ" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "環境パラメータ" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "テンプレート" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "グループ名" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "ユニークでなければならない" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "クローン可能" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "既定値" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "検索重量" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "フィルタロジック" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "ディスプレイ重量" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "UI が表示される" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "UI 編集可能" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "検証ルール" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "正規表現" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "ボタンクラス" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "割当モデル" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "リンクテキスト" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "リンク URL" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "選択肢" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14340,10 +14298,6 @@ msgstr "RSS フィードの取得中に問題が発生しました" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "条件" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "予定日" @@ -14365,14 +14319,6 @@ msgstr "出力" msgid "Download" msgstr "ダウンロード" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "添付画像" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "親オブジェクト" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "読み込み中" @@ -14421,24 +14367,6 @@ msgstr "" "始めてみよう スクリプトの作成 " "アップロードされたファイルまたはデータソースから。" -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "ジャーナルエントリ" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "作成者" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "通知グループ" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "割り当てなし" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "ローカル設定コンテキストはすべてのソースコンテキストを上書きします" @@ -14494,6 +14422,16 @@ msgstr "テンプレート出力が空です" msgid "No configuration template has been assigned." msgstr "設定テンプレートは割り当てられていません。" +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "割り当てなし" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "任意" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14530,14 +14468,6 @@ msgstr "ログ閾値" msgid "All" msgstr "すべて" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "テーブル構成" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "表示されている列" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14555,46 +14485,6 @@ msgstr "上へ移動" msgid "Move Down" msgstr "下に移動" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "タグ付きアイテム" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "許可されるオブジェクトタイプ" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "任意" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "タグ付きアイテムタイプ" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "タグ付きオブジェクト" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP メソッド" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP コンテンツタイプ" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL 検証" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "その他のヘッダー" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "ボディテンプレート" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "一括作成" @@ -14667,10 +14557,6 @@ msgstr "フィールドオプション" msgid "Accessor" msgstr "アクセサ" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "選択肢" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "インポート値" @@ -15171,6 +15057,7 @@ msgstr "バーチャル CPU" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "メモリー" @@ -15180,8 +15067,8 @@ msgid "Disk Space" msgstr "ディスク容量" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "リソース" @@ -16199,50 +16086,50 @@ msgid "" "the object's change log for details." msgstr "このオブジェクトは、フォームがレンダリングされてから変更されました。詳細については、オブジェクトの変更ログを参照してください。" -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "レンジ」{value}「は無効です。" -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " "({begin})." msgstr "範囲が無効です:終了値 ({end}) は開始値 ({begin}) より大きくなければなりません。" -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "「」の列ヘッダーが重複しているか、重複しています{field}」" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "「」の列ヘッダーが重複しているか、重複しています{header}」" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "行 {row}: 期待 {count_expected} 列が見つかりましたが {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "予期しない列ヘッダー」{field}「が見つかりました。" -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "コラム」{field}\"は関連オブジェクトではありません。ドットは使用できません" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "列 \"の関連オブジェクト属性が無効です{field}「: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "必須の列ヘッダー」{header}「が見つかりません。" @@ -16257,7 +16144,7 @@ msgstr "動的クエリパラメータに必要な値が見つかりません:'{ msgid "Missing required value for static query param: '{static_params}'" msgstr "静的クエリパラメータに必要な値が見つかりません:'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(自動設定)" @@ -16450,30 +16337,42 @@ msgstr "クラスタタイプ (ID)" msgid "Cluster (ID)" msgstr "クラスタ (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "起動時に開始" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "メモリ (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "ディスク" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "ディスク (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "メモリ ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "サイズ (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "ディスク ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "サイズ ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16495,15 +16394,15 @@ msgstr "割り当て済みクラスタ" msgid "Assigned device within cluster" msgstr "クラスタ内の割り当て済みデバイス" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "クラスタタイプ" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "クラスタグループ" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16511,23 +16410,18 @@ msgid "" msgstr "" "{device} 別のものに属する {scope_field} ({device_scope}) よりもクラスタ ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "オプションで、この VM をクラスタ内の特定のホストデバイスにピン留めできます。" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "サイト/クラスタ" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "ディスクサイズは、仮想ディスクのアタッチメントによって管理されます。" -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "ディスク" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "クラスタタイプ" @@ -16571,12 +16465,12 @@ msgid "start on boot" msgstr "起動時に開始" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "メモリ (MB)" +msgid "memory" +msgstr "メモリ" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "ディスク (MB)" +msgid "disk" +msgstr "ディスクに書き込みます" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16650,10 +16544,6 @@ msgstr "" "タグが付いていない VLAN ({untagged_vlan}) " "はインタフェースの親仮想マシンと同じサイトに属しているか、またはグローバルである必要があります。" -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "サイズ (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "仮想ディスク" diff --git a/netbox/translations/lv/LC_MESSAGES/django.mo b/netbox/translations/lv/LC_MESSAGES/django.mo index ddc3688885aa3443145eca8febc54e9215cc359a..bf8121f26454007402c3eeaffa3fdc7dd4a042c0 100644 GIT binary patch delta 74725 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 V^E(+aG{#fEZIMFx)od$b{6BlEt~vk! delta 75070 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 VqQnU5-<6FDaZcd;E58-7{tseR0I&c6 diff --git a/netbox/translations/lv/LC_MESSAGES/django.po b/netbox/translations/lv/LC_MESSAGES/django.po index 614164d09..33a49ffef 100644 --- a/netbox/translations/lv/LC_MESSAGES/django.po +++ b/netbox/translations/lv/LC_MESSAGES/django.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Latvian (https://app.transifex.com/netbox-community/teams/178115/lv/)\n" @@ -46,9 +46,9 @@ msgstr "Jūsu parole ir veiksmīgi nomainīta." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -62,21 +62,20 @@ msgstr "Ierīkošana" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Aktīvs" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Bezsaistē" @@ -89,7 +88,7 @@ msgstr "Demontāža" msgid "Decommissioned" msgstr "Demontēts" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -201,13 +200,13 @@ msgstr "Vietu grupa (URL identifikators)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -331,7 +330,7 @@ msgstr "Meklēt" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -465,8 +464,8 @@ msgstr "Pakalpojuma ID" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Krāsa" @@ -477,7 +476,7 @@ msgstr "Krāsa" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -505,15 +504,15 @@ msgstr "Krāsa" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -559,7 +558,7 @@ msgstr "Pakalpojuma sniedzēja konts" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -575,12 +574,12 @@ msgstr "Pakalpojuma sniedzēja konts" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -638,12 +637,12 @@ msgstr "Statuss" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -728,10 +727,10 @@ msgstr "Pakalpojuma parametri" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -756,8 +755,8 @@ msgstr "Atribūti" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -780,30 +779,19 @@ msgstr "Īrēšana" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Apraksts" @@ -855,7 +843,7 @@ msgstr "Savienojuma detaļas" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -909,10 +897,10 @@ msgstr "Pakalpojuma sniedzēja tīkls" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1000,7 +988,7 @@ msgstr "Darbības loma" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1013,7 +1001,7 @@ msgstr "Darbības loma" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1052,8 +1040,8 @@ msgstr "Interfeiss " #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1107,12 +1095,12 @@ msgstr "Telpa" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1137,9 +1125,9 @@ msgstr "Īpašumtiesības" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1163,9 +1151,9 @@ msgstr "Kontaktpersonas" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Reģions" @@ -1182,9 +1170,9 @@ msgstr "Reģions" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Vietu grupa" @@ -1193,7 +1181,7 @@ msgstr "Vietu grupa" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Konts" @@ -1202,9 +1190,9 @@ msgid "Term Side" msgstr "Termina puse" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1232,10 +1220,10 @@ msgstr "Sasaiste" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1276,13 +1264,13 @@ msgid "Group Assignment" msgstr "Grupu sasaiste" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1309,14 +1297,14 @@ msgstr "Unikāls pieslēguma ID" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1411,7 +1399,7 @@ msgstr "Patch paneļa ID un porta numurs (-i)" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1444,7 +1432,7 @@ msgstr "Pieslēguma savienojums jāpievieno savienojošam objektam." #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1539,8 +1527,8 @@ msgstr "virtuāls pieslēgums" msgid "virtual circuits" msgstr "virtuālie pieslēgumi" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "loma" @@ -1577,10 +1565,10 @@ msgstr "virtuāla pieslēguma savienojumi" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1588,26 +1576,14 @@ msgstr "virtuāla pieslēguma savienojumi" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1620,8 +1596,8 @@ msgstr "virtuāla pieslēguma savienojumi" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1705,7 +1681,7 @@ msgstr "ASN skaits" msgid "Terminations" msgstr "Savienojumi" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1739,7 +1715,7 @@ msgstr "Savienojumi" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1749,10 +1725,10 @@ msgstr "Savienojumi" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1826,7 +1802,7 @@ msgstr "Pabeigts" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Neizdevās" @@ -1886,14 +1862,13 @@ msgid "30 days" msgstr "30 dienas" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2007,7 +1982,7 @@ msgid "User name" msgstr "Lietotāja vārds" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2016,17 +1991,13 @@ msgstr "Lietotāja vārds" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Iespējots" @@ -2036,12 +2007,11 @@ msgid "Sync interval" msgstr "Sinhronizācijas intervāls" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parametri" @@ -2054,16 +2024,15 @@ msgstr "Ignorēt kārtulas" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Datu avots" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Fails" @@ -2081,10 +2050,9 @@ msgstr "Radīšana" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Objekta tips" @@ -2129,9 +2097,7 @@ msgstr "Pabeigts pirms" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2140,8 +2106,8 @@ msgid "User" msgstr "Lietotājs" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Laiks" @@ -2154,8 +2120,7 @@ msgid "Before" msgstr "Pirms" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Darbība" @@ -2193,7 +2158,7 @@ msgstr "Jāaugšupielādē fails vai jāizvēlas sinhronizējamais datu fails" msgid "Rack Elevations" msgstr "Statņu izkārtojumi" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2336,20 +2301,20 @@ msgid "Config revision #{id}" msgstr "Konfigurācijas pārskatīšana #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2358,13 +2323,13 @@ msgstr "tips" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2427,7 +2392,7 @@ msgstr "Inicializējot aizmuguri, radās kļūda. Ir jāuzstāda atkarība: " msgid "last updated" msgstr "Pēdējo reizi atjaunināts" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "ceļš" @@ -2435,7 +2400,8 @@ msgstr "ceļš" msgid "File path relative to the data source's root" msgstr "Faila ceļš attiecībā pret datu avota sakni" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "izmērs" @@ -2584,12 +2550,11 @@ msgstr "Pilns vārds" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Objekts" @@ -2599,7 +2564,7 @@ msgid "Request ID" msgstr "Pieprasījuma ID" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Ziņojums" @@ -2628,7 +2593,7 @@ msgstr "Pēdējo reizi atjaunināts" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2644,8 +2609,8 @@ msgstr "Intervāls" msgid "Log Entries" msgstr "Žurnāla ieraksti" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Līmenis" @@ -2765,11 +2730,10 @@ msgid "Backend" msgstr "Aizmugurējā daļa" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2828,8 +2792,7 @@ msgstr "Rindā ievietotais uzdevums #{id} sinhronizēt {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Dati" @@ -2894,11 +2857,24 @@ msgstr "Interfeisa režīms neatbalsta netagotu vlan" msgid "Interface mode does not support tagged vlans" msgstr "Interfeisa režīms neatbalsta tagotus VLAN" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Pozīcija (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Nevar uzstādīt moduli ar pagaidu vērtībām moduļa nodalījumā bez noteiktas " +"pozīcijas." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "A {model} nosaukts {name} jau pastāv" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "Objekta ID" @@ -2926,8 +2902,8 @@ msgid "Staging" msgstr "Iestudējums" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Demontē" @@ -2993,7 +2969,7 @@ msgstr "Novecojis" msgid "Millimeters" msgstr "Milimetri" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "collas" @@ -3030,14 +3006,14 @@ msgstr "Novecojis" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3065,7 +3041,7 @@ msgid "Rear" msgstr "Aizmugurē" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Iestrāvēts" @@ -3098,7 +3074,7 @@ msgid "Top to bottom" msgstr "No augšas uz leju" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Pasīvs" @@ -3127,8 +3103,8 @@ msgid "Proprietary" msgstr "Patentēts" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Cits" @@ -3141,350 +3117,354 @@ msgstr "ITA/Starptautiskais" msgid "Physical" msgstr "Fiziskais" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtuāls" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Bezvadu radio" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Virtuālie interfeisi" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Tilts" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Link Aggregation Group (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "FastEthernet (100 Mb/s)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "GigabiteEthernet (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2.5/5 Gbps Ethernet" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10 Gbps Ethernet" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25 Gbps Ethernet" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40 Gbps Ethernet" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50 Gbps Ethernet" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100 Gbps Ethernet" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200 Gbps Ethernet" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400 Gbps Ethernet" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 Gbps Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "1.6 Tbps Ethernet" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Pluggable transceivers" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Backplane Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Mobilais" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Seriālais" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Koaksiālais" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Grēdošanas" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Half" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Full" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Auto" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Access" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Tagots" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Tagots (Visi)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "IEEE standarts" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Pasīvs 24V (2 pāri)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Pasīvs 24V (4 pāri)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Pasīvs 48V (2 pāri)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Pasīvs 48V (4 pāri)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Varš" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Optiskā šķiedra" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Viens" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1C1P" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1C4P" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "1C6P" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "1C8P" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1C12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Trunk" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P trunk" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P trunk" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P trunk" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "2C4P trunk (shuffle)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "2C6P trunk" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "2C8P trunk" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P trunk" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P trunk" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P trunk" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P trunk" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P trunk (shuffle)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P trunk" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P trunk" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P trunk" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Breakout" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P: 2C1P izlaušanās" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P:4C1P breakout" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P:6C1P breakout" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P:8C1P breakout (shuffle)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Varš - vītais pāris (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Varš - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Varš - koaksiāls" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Šķiedra - daudzmodu (MM)" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Šķiedra - vienmodas (SM)" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Šķiedra - Cits" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Pieslēgts" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Kilometri" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Metri" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Centimetri" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Jūdzes" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Pēdas" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Redundants" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Vienfāzes" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Trīsfāzu" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Atspējots" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Bojāts" @@ -3768,17 +3748,17 @@ msgstr "Ir pilna dziļuma" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC adrese" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Ir primārais IP" @@ -3916,7 +3896,7 @@ msgid "Is primary" msgstr "Ir primārais" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "802.1Q režīms" @@ -3933,8 +3913,8 @@ msgstr "Piešķirtais VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3945,18 +3925,18 @@ msgstr "Piešķirtais VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3973,10 +3953,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -3990,11 +3970,11 @@ msgstr "VLAN pārveides politika (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "VLAN pārveides politika" @@ -4041,7 +4021,7 @@ msgstr "Primārā MAC adrese (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Primārā MAC adrese" @@ -4101,7 +4081,7 @@ msgstr "Barošanas panelis (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4170,7 +4150,7 @@ msgstr "Laika josla" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4241,11 +4221,6 @@ msgstr "Montāžas dziļums" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Svars" @@ -4278,7 +4253,7 @@ msgstr "Ārējie izmēri" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Izmēri" @@ -4330,7 +4305,7 @@ msgstr "Gaisa plūsmas virziens" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Statne" @@ -4383,11 +4358,10 @@ msgstr "Shēma" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profils" @@ -4397,7 +4371,7 @@ msgstr "Profils" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Moduļa tips" @@ -4420,8 +4394,8 @@ msgstr "VM loma" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Konfigurācijas veidne" @@ -4443,10 +4417,10 @@ msgstr "iekārtas loma" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Platforma" @@ -4458,13 +4432,13 @@ msgstr "Platforma" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4472,7 +4446,7 @@ msgstr "Klasteris" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Konfigurācija" @@ -4496,7 +4470,7 @@ msgstr "Moduļa tips" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Etiķete" @@ -4546,8 +4520,8 @@ msgid "Maximum draw" msgstr "Maksimālā jauda" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Maksimālais jaudas patēriņš (vati)" @@ -4556,8 +4530,8 @@ msgid "Allocated draw" msgstr "Piešķirtā jauda" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Piešķirtais jaudas patēriņš (vati)" @@ -4572,23 +4546,23 @@ msgid "Feed leg" msgstr "Barošanas kāja" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Tikai vadība" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "PoE režīms" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "PoE tips" @@ -4604,7 +4578,7 @@ msgid "Module" msgstr "Modulis" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4615,14 +4589,14 @@ msgstr "Virtuālo iekārtu konteksti" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Ātrums" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4635,25 +4609,25 @@ msgstr "Režīms" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "VLAN grupa" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "Neatzīmēts VLAN" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Atzīmēti VLAN" @@ -4668,7 +4642,7 @@ msgstr "Noņemt atzīmētos VLAN" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Q-in-Q pakalpojums VLAN" @@ -4678,26 +4652,26 @@ msgid "Wireless LAN group" msgstr "Bezvadu tīkla grupa" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Bezvadu tīkli" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Adresošana" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Darbība" @@ -4708,16 +4682,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Saistītie interfeisi" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "802.1Q pārslēgšana" @@ -4998,13 +4972,13 @@ msgstr "Elektriskā fāze (trīsfāžu pieslēgumam)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Vecāk-interfeiss" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Tilta interfeiss" @@ -5149,13 +5123,13 @@ msgstr "Piešķirtā interfeisa vecāk-iekārta (ja tāda ir)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Virtuālā mašīna" @@ -5312,13 +5286,13 @@ msgstr "Primārais IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "IPv6 adrese ar prefiksa garumu, piemēram, 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5327,33 +5301,11 @@ msgstr "" "Tagotajiem VLANiem ({vlans}) jāpieder tai pašai vietai kurā ir interfeisa " "iekārta/VM, vai arī tiem jābūt globāliem" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Nevar uzstādīt moduli ar pagaidu vērtībām moduļa nodalījumā bez noteiktas " -"pozīcijas." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Nevar uzstādīt moduli ar pagaidu vērtībām moduļa nodalījuma kokā {level} " -"iekš koka, bet norādītas vērtības {tokens}." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Nevar adoptēt {model} {name} jo tas jau pieder modulim" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "A {model} nosaukts {name} jau pastāv" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5441,7 +5393,7 @@ msgstr "Ir virtuālo iekārtu konteksts" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Klasteru grupa" @@ -5457,7 +5409,7 @@ msgstr "Aizņemts" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Savienojums" @@ -5465,8 +5417,7 @@ msgstr "Savienojums" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Veids" @@ -5475,12 +5426,12 @@ msgid "Mgmt only" msgstr "Tikai MGMT" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "802.1Q režīms" @@ -5496,7 +5447,7 @@ msgstr "Kanāla frekvence (MHz)" msgid "Channel width (MHz)" msgstr "Kanāla platums (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Pārraides jauda (dBm)" @@ -5546,9 +5497,9 @@ msgstr "Darbības vēriena veids" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5820,11 +5771,11 @@ msgstr "VM interfeiss" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5895,7 +5846,7 @@ msgid "profile" msgstr "profils" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5917,41 +5868,41 @@ msgstr "kabelis" msgid "cables" msgstr "kabeļi" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Iestatot kabeļa garumu, jānorāda vienība" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "Veidojot jaunu kabeli, jādefinē A un B savienojumi." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Nevar savienot dažādus savienojumu veidus vienam un tam pašam kabeļa galam." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Nesaderīgi izbeigšanas veidi: {type_a} un {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "A un B beigas nevar savienot ar vienu un to pašu objektu." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "beigas" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "kabeļa savienojums" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "kabeļu savienojumi" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -5959,7 +5910,7 @@ msgid "" msgstr "" "Nevar savienot kabeli {obj_parent} > {obj} jo tas ir atzīmēts kā savienots." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5968,59 +5919,59 @@ msgstr "" "Atrasts savienojuma dublikāts {app_label}.{model} {termination_id}: kabelis " "{cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kabeļus nevar pārtraukt {type_display} interfeisi" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Pieslēguma savienojumi, kas pievienoti pakalpojumu sniedzēja tīklam, " "nedrīkst tikt savienoti ar kabeļiem." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "ir aktīvs" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "ir pabeigts" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "ir sadalīts" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "kabeļa ceļš" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "kabeļu ceļi" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Visiem izcelsmes izbeigumiem jābūt pievienotiem vienai un tai pašai saitei" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "Visiem vidēja termiņa beigām jābūt vienādam izbeigšanas veidam" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "Visiem vidēja termiņa beigām jābūt vienam un tam pašam mātesobjektam" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Visiem savienojumiem jābūt kabeļiem vai bezvadu" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Visiem savienojumiem jāatbilst pirmajam savienojuma veidam" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6029,23 +5980,23 @@ msgstr "" "{module} tiek pieņemts kā moduļa nodalījuma pozīcijas aizstājējs, ja tas ir " "pievienots moduļa tipam." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Fiziskā etiķete" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Komponentu veidnes nevar pārvietot uz citu iekārtas tipu." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "" "Komponenta veidni nevar saistīt gan ar iekārtas tipu, gan ar moduļa tipu." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6053,136 +6004,136 @@ msgstr "" "Komponenta veidnei jābūt saistītai vai nu ar iekārtas tipu, vai ar moduļa " "tipu." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "konsoles porta veidne" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "konsoles portu veidnes" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "konsoles servera porta veidne" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "konsoles servera portu veidnes" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maksimālā jauda" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "piešķirtā jauda" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "barošanas porta veidne" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "barošanas portu veidnes" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "Piešķirtā jauda nedrīkst pārsniegt maksimālo jaudu ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "barības kāja" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fāze (trīsfāžu padevēm)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "strāvas kontaktligzdas veidne" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "strāvas kontaktligzdas veidnes" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Vecāk-barošanas portam ({power_port}) jāpieder vienam un tam pašam iekārtas " "tipam" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Vecāku barošanas ports ({power_port}) jāpieder vienam un tam pašam moduļa " "tipam" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "tikai vadība" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "tilta interfeiss" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "bezvada loma" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "interfeisa veidne" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "interfeisa veidnes" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Tilta interfeisam ({bridge}) jāpieder vienam un tam pašam iekārtas tipam" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "" "Tilta interfeisam ({bridge}) jāpieder vienam un tam pašam moduļa tipam" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" "Aizmugurējam portam ({rear_port}) jāpieder vienam un tam pašam iekārtas " "tipam" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "pozīcijas" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "priekšējā porta veidne" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "priekšējo portu veidnes" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6191,15 +6142,15 @@ msgstr "" "Pozīciju skaits nedrīkst būt mazāks par kartēto aizmugurējo portu veidņu " "skaitu ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "aizmugurējā porta veidne" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "aizmugurējo portu veidnes" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6208,33 +6159,33 @@ msgstr "" "Pozīciju skaits nedrīkst būt mazāks par kartēto priekšējo portu veidņu " "skaitu ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "pozīcija" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "Identifikators, uz kuru jānorāda, pārdēvējot uzstādītos komponentus" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "moduļa līča veidne" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "moduļu līča veidnes" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "iekārtas nodalījuma veidne" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "iekārtas nodalījumu veidnes" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6243,21 +6194,21 @@ msgstr "" "Iekārtas tipa apakšiekārtas lomai ({device_type}) jābūt iestatītai uz " "“vecāku”, lai atļautu iekārtu nodalījumus." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "daļas ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Ražotāja piešķirtais detaļas identifikators" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "inventāra vienības veidne" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "inventāra vienību veidnes" @@ -6310,84 +6261,84 @@ msgstr "Kabeļa savienojuma pozīcijas nedrīkst iestatīt bez kabeļa." msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modeļiem ir jādeklarē parent_object rekvizīts" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Fiziskā porta tips" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "ātrums" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Porta ātrums bitos sekundē" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "konsoles ports" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "konsoles porti" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "konsoles servera ports" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "konsoles servera porti" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "strāvas ports" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "barošanas porti" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "strāvas kontaktligzda" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "strāvas kontaktligzdas" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Vecāk-barošanas portam ({power_port}) jāpieder vienai un tai pašai iekārtai" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "režīms" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q tagošanas stratēģija" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "vecāk-interfeiss" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "bez atzīmes VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "ar atzīmi VLAN" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6395,15 +6346,15 @@ msgstr "ar atzīmi VLAN" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "primārā MAC adrese" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Service VLAN var norādīt tikai Q-in-Q interfeisus." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6411,77 +6362,77 @@ msgid "" msgstr "" "MAC adrese {mac_address} ir piešķirta citam interfeisam ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "vecāk-LAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Šīs interfeiss tiek izmantots tikai OOB pārvaldībai" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "ātrums (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "duplekss" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-bitu World Wide Name" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "radio kanāls" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "kanāla frekvence (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Aizpildīts pēc izvēlētā kanāla (ja iestatīts)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "pārraides jauda (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "bezvadu tīkli" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interfeiss" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfeisi" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} saskarnēm nevar būt pievienots kabelis." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} interfeisus nevar atzīmēt kā savienotus." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Interfeiss nevar būt pats vecāks." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Vecāk-interfeisam var piešķirt tikai virtuālos interfeisus." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6489,7 +6440,7 @@ msgid "" msgstr "" "Izvēlētais vecāk-interfiess ({interface}) pieder citai iekārtai ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6498,7 +6449,7 @@ msgstr "" "Izvēlētais vecāk-interfeiss ({interface}) pieder {device}, kas nav daļa no " "virtuālās šasijas{virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6506,7 +6457,7 @@ msgid "" msgstr "" "Izvēlētais tilta interfeiss ({bridge}) pieder citai iekārtai ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6515,21 +6466,21 @@ msgstr "" "Izvēlētais tilta interfeiss ({interface}) pieder {device}, kas nav virtuālās" " šasijas sastāvdaļa {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Virtuālajiem interfeisiem nevar būt vecāk-LAG interfeiss." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "LAG interfeiss nevar būt pats vecāks." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "Izvēlētais LAG interfeiss ({lag}) pieder citai iekārtai ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6538,31 +6489,31 @@ msgstr "" "Izvēlētais LAG interfeiss ({lag}) pieder {device}, kas nav virtuālās šasijas" " sastāvdaļa {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanālu var iestatīt tikai bezvadu saskarnēs." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "Kanāla frekvenci var iestatīt tikai bezvadu saskarnēs." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Nevar norādīt pielāgoto frekvenci ar atlasīto kanālu." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "Kanāla platumu var iestatīt tikai bezvadu saskarnēs." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Nevar norādīt pielāgoto platumu ar atlasīto kanālu." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Interfeisa režīms neatbalsta netagotus vlan." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6571,21 +6522,21 @@ msgstr "" "Netagotajiem VLANiem ({untagged_vlan}) jāpieder tai pašai vietai, kurā ir " "interfeisa iekārta, vai arī tiem jābūt globāliem." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "" "Aizmugurējam portam ({rear_port}) jāpieder vienai un tai pašai iekārtai" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "priekšējais ports" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "priekšējās pieslēgvietas" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6594,15 +6545,15 @@ msgstr "" "Pozīciju skaits nedrīkst būt mazāks par kartēto aizmugurējo pieslēgvietu " "skaitu ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "aizmugurējais ports" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "aizmugurējie porti" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6611,96 +6562,96 @@ msgstr "" "Pozīciju skaits nedrīkst būt mazāks par kartēto priekšējo portu skaitu " "({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "moduļa nodalījums" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "moduļu nodalījumi" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Moduļa nodalījums nevar piederēt tajā uzstādītam modulim." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "iekārtas nodalījums" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "iekārtu nodalījumi" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Šāda veida iekārta ({device_type}) neatbalsta iekārtu nodalījumus." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Nevar uzstādīt ierīci sevī." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "Nevar uzstādīt norādīto iekārtu; iekārta jau ir uzstādīta{bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "inventāra vienības loma" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "inventāra vienību lomas" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "sērijas numurs" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "inventāra numurs" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Unikāls birka, ko izmanto, lai identificētu šo vienumu" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "atklāts" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Šis vienums tika automātiski atklāts" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "inventāra vienība" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "inventāra vienības" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Nevar sevi piešķirt kā vecāku." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Vecāk-inventāra vienība nepieder vienai un tai pašai iekārtai." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Nevar pārvietot inventāra vienumu ar apgādājamiem bērniem" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Nevar piešķirt inventāra vienumu komponentam citā ierīcē" @@ -7580,10 +7531,10 @@ msgstr "Sasniedzams" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7595,8 +7546,7 @@ msgid "VMs" msgstr "VM" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7699,7 +7649,7 @@ msgstr "Iekārtas atrašanās vieta" msgid "Device Site" msgstr "Iekārtas vieta" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Moduļa nodalījums" @@ -7759,7 +7709,7 @@ msgstr "MAC adreses" msgid "FHRP Groups" msgstr "FHRP grupas" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7775,7 +7725,7 @@ msgstr "Tikai vadība" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Virtuāls pieslēgums" @@ -7848,7 +7798,7 @@ msgid "Module Types" msgstr "Moduļu veidi" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platformas" @@ -7949,7 +7899,7 @@ msgstr "Iekārtas nodalījumi" msgid "Module Bays" msgstr "Moduļu nodalījumi" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Moduļu skaits" @@ -8027,7 +7977,7 @@ msgstr "{} milimetri" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Sērijas numurs" @@ -8037,7 +7987,7 @@ msgid "Maximum weight" msgstr "Maksimālais svars" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Vadība" @@ -8085,18 +8035,27 @@ msgstr "{}A" msgid "Primary for interface" msgstr "Primārais interfeiss" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Virtuālās šasijas locekļi" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Jaudas izmantošana" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN pārveide" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Nevar instalēt moduli ar vietturētāju vērtībām moduļa lauru kokā {level} " +"līmeņi dziļi, bet {tokens} norādītie vietturētāji." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8137,9 +8096,8 @@ msgid "Application Services" msgstr "Lietotnes servisi" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Konfigurācijas konteksts" @@ -8148,7 +8106,7 @@ msgstr "Konfigurācijas konteksts" msgid "Render Config" msgstr "Renderēšanas konfigurācija" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8211,7 +8169,7 @@ msgstr "Nevar noņemt galveno iekārtu{device} no virtuālās šasijas." msgid "Removed {device} from virtual chassis {chassis}" msgstr "Noņemts {device} no virtuālās šasijas {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Nezināms (-i) saistītais objekts (-i): {name}" @@ -8220,12 +8178,16 @@ msgstr "Nezināms (-i) saistītais objekts (-i): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Pielāgoto lauku veida maiņa netiek atbalstīta." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Skripta modulis ar šo faila nosaukumu jau pastāv." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Šim skriptam plānošana nav iespējota." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Plānotajam laikam jābūt nākotnē." @@ -8402,8 +8364,7 @@ msgid "White" msgstr "Balts" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8547,12 +8508,12 @@ msgstr "Grāmatzīmes" msgid "Show your personal bookmarks" msgstr "Parādiet savas personīgās grāmatzīmes" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Nezināms darbības veids notikuma kārtulai: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Nevar importēt notikumu cauruļvadu {name} kļūda: {error}" @@ -8572,7 +8533,7 @@ msgid "Group (name)" msgstr "Grupa (nosaukums)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Klasteru tips" @@ -8592,7 +8553,7 @@ msgid "Tenant group (slug)" msgstr "Nomnieku grupa (URL identifikators)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Birka" @@ -8605,29 +8566,30 @@ msgid "Has local config context data" msgstr "Ir lokālās konfigurācijas konteksta dati" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Grupas nosaukums" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Nepieciešams" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Jābūt unikālam" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Saskarne redzama" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Interfejs rediģējams" @@ -8636,10 +8598,12 @@ msgid "Is cloneable" msgstr "Ir klonējams" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimālā vērtība" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maksimālā vērtība" @@ -8648,8 +8612,7 @@ msgid "Validation regex" msgstr "Pārbaudes regex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Uzvedība" @@ -8663,7 +8626,8 @@ msgstr "Pogas klase" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME tips" @@ -8685,31 +8649,29 @@ msgstr "Kā pielikums" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Kopīgots" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP metode" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Lietderīgās slodzes URL" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL verifikācija" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Noslēpums" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA faila ceļš" @@ -8859,9 +8821,9 @@ msgstr "Piešķirtais objekta tips" msgid "The classification of entry" msgstr "Ierakstu klasifikācija" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8870,12 +8832,12 @@ msgid "Comments" msgstr "Komentāri" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Lietotāji" @@ -8884,9 +8846,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Lietotājvārdi, kas atdalīti ar komatiem, pārklāti ar dubultām pēdiņām" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8932,6 +8893,7 @@ msgid "Content types" msgstr "Satura veidi" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP satura veids" @@ -9003,7 +8965,7 @@ msgstr "Īrnieku grupas" msgid "The type(s) of object that have this custom field" msgstr "Objekta tips (-i), kam ir šis pielāgotais lauks" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Noklusējuma vērtība" @@ -9012,7 +8974,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Saistītā objekta tips (tikai objektu/vairāku objektu laukiem)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Saistīto objektu filtrs" @@ -9020,8 +8981,7 @@ msgstr "Saistīto objektu filtrs" msgid "Specify query parameters as a JSON object." msgstr "Norādiet vaicājuma parametrus kā JSON objektu." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Pielāgots lauks" @@ -9053,12 +9013,11 @@ msgstr "" "Ievadiet vienu izvēli katrā rindā. Katrai izvēlei var norādīt izvēles " "etiķeti, pievienojot to ar kolu. Piemērs:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Pielāgots lauka izvēles komplekts" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Pielāgota saite" @@ -9086,8 +9045,7 @@ msgstr "Jinja2 veidnes kods saites URL. Atsauciet objektu kā {example}." msgid "Template code" msgstr "Veidnes kods" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Eksportēšanas veidne" @@ -9096,14 +9054,13 @@ msgstr "Eksportēšanas veidne" msgid "Template content is populated from the remote source selected below." msgstr "Veidnes saturs tiek aizpildīts no tālāk atlasītā attālā avota." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Saglabātais filtrs" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Pasūtīšana" @@ -9127,13 +9084,11 @@ msgstr "Atlasītās kolonnas" msgid "A notification group specify at least one user or group." msgstr "Paziņojumu grupā norāda vismaz vienu lietotāju vai grupu." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP pieprasījums" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9153,8 +9108,7 @@ msgstr "" "Ievadiet parametrus, lai pārietu darbībai JSON formāts." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Notikumu kārtula" @@ -9166,8 +9120,7 @@ msgstr "Trigeri" msgid "Notification group" msgstr "Paziņojumu grupa" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Konfigurācijas konteksta profils" @@ -9257,7 +9210,7 @@ msgstr "konfigurēt konteksta profilus" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "svars" @@ -9804,7 +9757,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Iespējot SSL sertifikāta verifikāciju. Atspējojiet piesardzīgi!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA faila ceļš" @@ -10105,9 +10058,8 @@ msgstr "Atmest" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10130,7 +10082,6 @@ msgid "Related Object Type" msgstr "Saistītā objekta tips" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Izvēles komplekts" @@ -10139,12 +10090,10 @@ msgid "Is Cloneable" msgstr "Vai ir klonējams" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimālā vērtība" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maksimālā vērtība" @@ -10154,9 +10103,9 @@ msgstr "Pārbaudes Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10173,50 +10122,44 @@ msgid "Order Alphabetically" msgstr "Pasūtīt alfabētiskā secībā" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Jauns logs" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME tips" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Faila nosaukums" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Faila paplašinājums" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Kā pielikums" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Sinhronizēts" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Attēls" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Faila nosaukums" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Izmērs" @@ -10224,38 +10167,36 @@ msgstr "Izmērs" msgid "Table Name" msgstr "Tabulas nosaukums" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Lasīt" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL Pārbaude" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL verifikācija" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Pasākumu veidi" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automātiskā sinhronizācija iespējo" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Iekārtu lomas" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Komentāri (īsi)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Līnija" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Metode" @@ -10268,7 +10209,7 @@ msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "" "Lūdzu, mēģiniet pārkonfigurēt logrīku vai noņemt to no informācijas paneļa." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10281,11 +10222,78 @@ msgstr "" msgid "Custom Fields" msgstr "Pielāgoti lauki" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Pievienojiet attēlu" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonējams" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Displeja svars" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Pārbaudes kārtulas" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Regulāra izteiksme" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Saistītie objekti" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Izmanto" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Pielikums" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Piešķirtie modeļi" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Tabulas konfigurācija" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Parādītās kolonnas" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Paziņojumu grupa" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Atļautie objektu tipi" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Birkoto vienumu veidi" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Attēla pielikums" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Vecākais objekts" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Žurnāla ieraksts" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10323,32 +10331,68 @@ msgstr "Nederīgs atribūts”{name}“pēc pieprasījuma" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Nederīgs atribūts”{name}“par {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Saites teksts" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "Saites URL" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Vides parametri" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "veidne" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Papildu galvenes" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Ķermeņa veidne" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Nosacījumi" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Birkotie objekti" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON shēma" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Renderējot veidni, radās kļūda: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Jūsu informācijas panelis ir atiestatīts." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Pievienots logrīks: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Atjaunināts logrīks: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Dzēsts logrīks: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Kļūda dzēšot logrīku: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Nevar palaist skriptu: RQ darbinieka process netiek palaists." @@ -10580,7 +10624,7 @@ msgstr "FHRP grupa (ID)" msgid "IP address (ID)" msgstr "IP adrese (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP adrese" @@ -10686,7 +10730,7 @@ msgstr "Ir kopfonds" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Pieņemt kā pilnībā izmantotu" @@ -10699,7 +10743,7 @@ msgstr "VLAN sasaiste" msgid "Treat as populated" msgstr "Izturieties kā apdzīvotu" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS nosaukums" @@ -11219,194 +11263,194 @@ msgstr "" "Prefiksi nevar pārklāties ar agregētiem prefiksiem. {prefix} aptver esošu " "agregēto prefiksu ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "lomas" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefikss" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "IPv4 vai IPv6 tīkls ar masku" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Šī prefiksa darbības statuss" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Šī prefiksa primārā funkcija" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "ir kopfonds" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Visas IP adreses šajā prefiksā tiek uzskatītas par izmantojamām" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "atzīmēt kā izmantotu" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefiksi" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Nevar izveidot prefiksu ar /0 masku." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "globālā tabula" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Atrasts prefiksa dublikāts {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "sākuma adrese" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4 vai IPv6 adrese (ar masku)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "beigu adrese" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Šī diapazona darbības stāvoklis" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Šī diapazona galvenā funkcija" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "atzīme apdzīvota" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Novērst IP adrešu izveidi šajā diapazonā" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Ziņot par vietu, kā pilnībā izmantotu" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP diapazons" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP diapazoni" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Sākuma un beigu IP adreses versijām ir jāatbilst" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Sākuma un beigu IP adreses maskām jāsakrīt" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Noslēguma adresei jābūt lielākai par sākuma adresi ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Definētās adreses pārklājas ar diapazonu {overlapping_range} uz VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Noteiktais diapazons pārsniedz maksimālo atbalstīto izmēru ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adrese" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Šīs IP darbības statuss" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Šī IP funkcionālā loma" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (iekšpusē)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "IP, kuram šī adrese ir “ārējais” IP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Resursdatora nosaukums vai FQDN (nav reģistrjūtīgs)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP adreses" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Nevar izveidot IP adresi ar /0 masku." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} ir tīkla ID, kas var netikt piešķirts saskarnei." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip} ir apraides adrese, kuru nedrīkst piešķirt interfeisam." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Atrastas IP adreses dublikāts {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Nevar izveidot IP adresi {ip} iekšējais diapazons {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "" "Nevar mainīt IP adresi, kamēr tā ir apzīmēta kā mātes objekta primārais IP" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" msgstr "Nevar mainīt IP adresi, kamēr tā ir norādīta kā vecāk-objekta OOB IP" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "SLAAC statusu var piešķirt tikai IPv6 adresēm" @@ -11981,8 +12025,9 @@ msgstr "Pelēks" msgid "Dark Grey" msgstr "Tumši pelēks" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Noklusējums" @@ -12911,67 +12956,67 @@ msgstr "Pēc inicializācijas nevar pievienot veikalus reģistram" msgid "Cannot delete stores from registry" msgstr "Nevar izdzēst veikalus no reģistra" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Čehu valoda" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Dāņu valoda" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Vācu valoda" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Angļu valoda" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Spāņu valoda" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Franču valoda" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Itāļu valoda" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japāņu valoda" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Latviešu valoda" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Holandiešu valoda" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Poļu valoda" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Portugāļu valoda" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Krievu valoda" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Turku valoda" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukraiņu valoda" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Ķīniešu valoda" @@ -12999,6 +13044,7 @@ msgid "Field" msgstr "Lauks" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Vērtība" @@ -13030,11 +13076,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS koordinātes" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Saistītie objekti" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13280,7 +13321,6 @@ msgid "Toggle All" msgstr "Pārslēgt visu" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabula" @@ -13336,13 +13376,9 @@ msgstr "Piešķirtās grupas" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13350,6 +13386,7 @@ msgstr "Piešķirtās grupas" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Nav" @@ -13512,7 +13549,7 @@ msgid "Changed" msgstr "Mainīts" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "baiti" @@ -13565,12 +13602,11 @@ msgid "Job retention" msgstr "Uzdevumu saglabāšana" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Datu fails, kas saistīts ar šo objektu, ir izdzēsts" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Dati sinhronizēti" @@ -14255,12 +14291,6 @@ msgstr "Pievienot statni" msgid "Add Site" msgstr "Pievienot vietu" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Pielikums" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14415,82 +14445,10 @@ msgstr "" "var pārbaudīt, izveidojot savienojumu ar datu bāzi, izmantojot NetBox " "akreditācijas datus un izsniedzot vaicājumu %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON shēma" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Vides parametri" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "veidne" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Grupas nosaukums" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Jābūt unikālam" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonējams" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Noklusējuma vērtība" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Meklēšanas svars" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filtra loģika" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Displeja svars" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Saskarne redzama" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Rediģējams lietotāja interfeiss" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Pārbaudes kārtulas" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Regulāra izteiksme" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Pogas klase" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Piešķirtie modeļi" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Saites teksts" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "Saites URL" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "izvēles" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14561,10 +14519,6 @@ msgstr "Radās problēma, lejupielādējot RSS plūsmu" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Nosacījumi" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Plānots" @@ -14586,14 +14540,6 @@ msgstr "Izeja" msgid "Download" msgstr "Lejupielādēt" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Attēla pielikums" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Vecāku objekts" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Iekraušana" @@ -14642,24 +14588,6 @@ msgstr "" "Sāciet darbu skripta izveide no " "augšupielādētā faila vai datu avota." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Žurnāla ieraksts" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Izveidojis" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Paziņojumu grupa" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Neviens nav piešķirts" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Vietējās konfigurācijas konteksts pārraksta visus avota kontekstus" @@ -14715,6 +14643,16 @@ msgstr "Veidnes izvade ir tukša" msgid "No configuration template has been assigned." msgstr "Konfigurācijas veidne nav piešķirta." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Neviens nav piešķirts" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Jebkurš" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14751,14 +14689,6 @@ msgstr "Žurnāla slieksnis" msgid "All" msgstr "Viss" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Tabulas konfigurācija" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Parādītās kolonnas" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14776,46 +14706,6 @@ msgstr "Virzīties uz augšu" msgid "Move Down" msgstr "Pārvietoties uz leju" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Birkoti vienumi" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Atļautie objektu tipi" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Jebkurš" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Birkoto vienumu veidi" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Birkotie objekti" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP metode" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP satura veids" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL verifikācija" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Papildu galvenes" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Ķermeņa veidne" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Lielapjoma izveide" @@ -14889,10 +14779,6 @@ msgstr "Lauka opcijas" msgid "Accessor" msgstr "Aksesuārs" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "izvēles" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Importa vērtība" @@ -15402,6 +15288,7 @@ msgstr "Virtuālie CPU" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Atmiņa" @@ -15411,8 +15298,8 @@ msgid "Disk Space" msgstr "Diska vieta" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Resursi" @@ -16462,13 +16349,13 @@ msgstr "" "Šis objekts ir modificēts kopš izvedes no veidlapas. Lai iegūtu sīkāku " "informāciju, lūdzu, skatiet objekta vēsturē." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Diapazons”{value}“ir nederīgs." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16477,38 +16364,38 @@ msgstr "" "Nederīgs diapazons: beigu vērtība ({end}) jābūt lielākai par sākuma vērtību " "({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Dublēta vai konfliktējoša kolonnas galvene priekš”{field}“" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Dublēta vai konfliktējoša kolonnas galvene priekš”{header}“" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "rinda {row}: Paredzams {count_expected} kolonnas, bet atrastas {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Negaidīta kolonnas galvene”{field}“atrasts." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Kolonna”{field}“nav saistīts objekts; nevar izmantot punktus" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Nederīgs saistītā objekta atribūts kolonnai”{field}“: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Nepieciešamā kolonnas galvene”{header}“nav atrasts." @@ -16527,7 +16414,7 @@ msgstr "" "Trūkst nepieciešamās vērtības statiskā vaicājuma parametram: " "'{static_params}”" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automātiski iestatīts)" @@ -16724,30 +16611,42 @@ msgstr "Klasteru tips (ID)" msgid "Cluster (ID)" msgstr "Klasteris (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Ieslēgt ar sāknēšanu" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "VCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Atmiņa (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disks" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disks (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Atmiņa ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Izmērs (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disks ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Izmērs ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16769,15 +16668,15 @@ msgstr "Piešķirtais klasteris" msgid "Assigned device within cluster" msgstr "Klāsterim piešķirtā iekārta" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Klasteru tips" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Klasteru grupa" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16786,25 +16685,20 @@ msgstr "" "{device} pieder citam {scope_field} ({device_scope}) nekā klasteris " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Pēc izvēles piespraust šo virtuālo virtuālo mašīnu konkrētai resursdatora " "iekārtai klasterī" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Vieta/klāsteris" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Diska izmērs tiek pārvaldīts, pievienojot virtuālos diskus." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disks" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "klastera tips" @@ -16852,12 +16746,12 @@ msgid "start on boot" msgstr "ieslēgt sāknēšanas laikā" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "atmiņa (MB)" +msgid "memory" +msgstr "atmiņa" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disks (MB)" +msgid "disk" +msgstr "disks" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16937,10 +16831,6 @@ msgstr "" "Netagotais VLAN ({untagged_vlan}) jāpieder tai pašai vietai kā virtuālās " "mašīnas interfeisam, vai arī tam jābūt globālam." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "izmērs (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "virtuālais disks" diff --git a/netbox/translations/nl/LC_MESSAGES/django.mo b/netbox/translations/nl/LC_MESSAGES/django.mo index b43d10d02d7b37a609e9d6e81e345be67b7f6b36..16fa49b0f7df0e1572b3b9f68e307b41d069cb5f 100644 GIT binary patch delta 74638 zcmXWkcfgNT|G@FD+pGv>XWaJQd*Alnt5jxWRmv8=4WpqFN=6hd4M}NGMnXwLDjtM} z*+8Wv)$@LT&-wlFd!2KxbDi@!>$cL^S-b+@L`V33^pog*%t!h6=!{*6<@rm8`stXR^2+E)Yoi^u zMBDF%_BRMGr~kwqCUAQ6KD2`cG5L<1a$b@63vhTmarELk~I zqCNJ(>v1`D#EV!1+f)eynHYTqYf}D0v_RF+Zu_dqkeES%Gw=qwyAMaRRSV_SqSsaHafLi(E7ikBm4_(=O6U`Y&FCA&xhV$A(%|mA>lE}Ku6XMoq@q9pO9Z`QL%o|6ja*3f(&w(Dtg;3IR2YwoJ+S>qNo|z0u<}5N&8|EWZmK z$%E(|;c>P`UzMbf?+>Zu!1|85PH1I2HhklBn*UMrq&wnivg)sxI*dOg^I2zbg zG@w~%M~|TaJr}RPif*nA=qBER&d_PBgnywkRHja_J~kxZ5tE+xnIx*?Ml}B;R>4wr z!y0!(8|;S$G8_$TBHHlXXaEb*rCNdp`fe=$1U&_N(fhu^0eG@5=ih>M^+HEI(JAYX zZlW>hNXMcPPr=goI+nqG=mY5zHpTk&!~GM`=fxbf;~nUXevS_02Q={C>T~`xNMvge zp5^V(CAbOa<5+wOGdB#6)acJ$?yJWQe(iN9k(;pSna^`f27NC%-0pyBB59gVl+WNeS8(f57rj7*9C z_!v6%XVLS2F`A=AC@+94MKY02!V1;VhMUF;9nrU7Z*+!6qMPpybOiUr{L<)4(T(VR zA4iX(?~?Oq`_)>8Jb`6HNm z6r-CgcdM{Bile8ZCK_0;=m;$0`JYb0wSNK~;b*bJ5%e_t9?jM|JSPfaDavc10rWxd z8-osHTJ!-NP5y~^JxiM~bNR3qY(K?BO#KGe^R&Q!_v$*?BXDX`(z=m$k7^w>O)M*J$;(fjDy ze;Lb(`Xf5x%ALY)Z-$P%6S~=M zjQR0sz_Zb{oQqEVO0?rOG5;<)^&iIk7tzDWsYoVHlPE!joSnllse&G}uIRbF9xLI( zSiU*B8$DM4!_*9+0bSN5Y{J}VKt<5|%b}aF2iCw*sdCQWQWAEw1AX-VhfZOWuEAF5 z^^WM;--}M+LUfNjiJpRIqif^!jc7X`pfm6>dhEVJUsgG~WlB`0|3q67e*NBoK8n|1 z58RCzSiF09#t+2Wu@*r!g9UC3{6D?eha(eZ)k@t`^29Uup0R_SRTKLX6+jubXC#7 zZtBbVx8X$;*uanI)RyQM)~*7&7wVu>*aDr>PUw{PL?2W)qNm^%^u2!%x-?tS`#!>} zaWB@v6Y+Y{YdQb!?lRYgO;iufw?<#HebLwIt>_HBfNr+^XoJVGE?z_fsc~KCI0GF} zd$is(G~jvYCS8gS?CB&4kK3A9uoaE?Q*^WKM;ksB{R@5IT-HA{PzVjEEV|okV>xV& z4q!MA!WnoI9zkDHt*;Lcy5vw2PWfhZ%05IR{XBXQJ!Z$_^&B^Z^UrgZ=+Mb7aiCMbjr_0|3GK>QcBKWwgDlsJm{2_Ks%_9KJjLt4LpY4xD@U9S#-qf zVtxZUfSu?_zl!BQ#PV~||Ih*E8pyys|LG*Wp)T5RYji|C(2)#98=i!YXcpS>!)RcS zqf@#JYvc3irag$(%ReZzR}8IR9o@`zG1-&EFcN;Vy^Y>*_2AIaHRvWRgKn<6XrL|7 z50>ueNan=yCFl&Tj=qj=-uKXUK8fXr(Ir1QnDcLg|4^VghXk)dKPW0;4IG2b@kzAa zH|X`B(2-Xg8h!|Eh~`J5n{pyre>%F9bI~PUg$A~9Xfh-|js*wNNPk4%YL{a9RX2r* zOQB0qA02rcwBEI7N4KI4Pe*6+p?LifAynZ_x*bKDZLUb>!M8EsrMC&K_lCXo5XvDvx9b7_3a@p|M zakMHr(iUjL-J=6y`55&6JEQl->yO3!s+eCJOeQwPg5Btp9zY}e8Eq)-=Fm}YbViDy zBdLy_hF0iq?~KmmY;>yUp#ypv4Rkfy-dpJ2_yF_x{r@our|J-vz+cf%sjEhW4hv#c z@)gnJ(+_RnMl{fy(1xd=9nMBOd>HHFGIYkiM3?q^H1J$oYEzx@2usjY!19=GTU?Flm;1iur4!gGa~nKZ*ixoPv%h z8J&$z*+b~sK7o#4WpoYN!3K26wxRVtjMu+FM|wEse?*@rf1>p&jN$w{qFQ6ZYqJH~ z!HAe2kAC|tjpbjWo9igLS)AB5N7d~}A^MBhaN-G%n^S(1b!JQzKW zZONa*I@sXW@X2)x`qB6zI#Van&GrjAfIraVn)S9&o*xagShO0txtpVVXdt>rk`qXj zBk>Tr)^DIU?m#Q*tsl z%#SWzDNK4pJrZTGCHm{No6+(I(LffVYx@HF8r>MLe-W=AMjJeX*2_F8e6kflM_wHb zpanXRt~dm5n8f+_9B!t-wfzX4@;&IOC@?u}zLHpjd_%N+6uLJipbbt#Psao35`2i( z+k*yn2tAHxV|mUg;WQMS!uj_+)~CRRnxHp!L^oj{G_XgoD=tE3<~XL~uhOn z@;-Ft^34bx6h;FnkJhh+&Rkye*`PW>xrK&LSS%ghQt_YcEr*&a*>1tI(O+j}Gt* zCeulrC*f2Um=hwehW@Ig6*__&&`otyygnLzH{6AOOg@f2ieE?fz#ep$ABvug<-f=L ze`o+#+{gL1V&4108WlsQv@#k%T`Y%P(H~GIpaFf32DBgT@CZ8Pr_m+*4}IBOd4Je5 z#nF6qv|e*`PxQW@O=H0j3cPVrtT;RRI6A`T(9O3Ez41%5{&!df&!K@7e;{;J5#6K> z(E)ZsulI}BhoCcfN0NkVavxf81$wMrLO09WSpE(=;_YZ4yU`{42Az@f=#>70*30~0 zxPCdBFNL;OFv-4)CCq8%q53fHrtZ?(GE8i!$9d=c-* zbC^1I4~JcUFWTPQ=m58(FR8tFx##~l2_GEi(1!Cp62AFbqY+O>Z@3@b<;&11-GI*2 zRy4rR(3$uOz3*tu|AcP7KhYV@J}+Fq22;x19~LG*7~MQ~ zq9c10?O+KylP|{nKJ>wM0uA`bnEw?=k^cje9<#xZh6+>B{N3n?mY^ef3hm%!G{AS` z^{p|#Gv;@rfq#L%q`rxsMmO!B=n~|Z9|A8jpY!hxr77?&R}FjPD0JkT(a1kSJN_JP z_$#!b@6Z5$kJl3mLc>|n>sO*3r$=j|OV$#d!R`w<|5hAMfg_)cj`UIVd_Rq@*;;h% zKZw`ALyzsR=>3;14EJ4wzU3;TujjVt0EVCg9f>|~#-jteKS{z7Jd9Rcf=2c<8tGeT z2iwt+?~DF`27C@}=<>(HjO9l2g|RFaN84?U9?wqbo|u7Yn7oHXa}u-A5pKsC_&xgM z%lCK)q$V0bb95w~V|l+=J}j2sfzIG`H1LPw^%b%FWprTgA_Gq*c9F2buh9;^MR)Zt z=pOhpUeB~BG@KKyR}`JOifH}1X#HmBNZZHqJJA`Li7x5==>1P%F3=FQzB39PY)scoCaojU{0Z+=|bTpMbVgWGUz0b6%c= z$D}ISU^8rq-O)9UO0uF$p44cvD1q9Rzm~27v1gi&<>ZN0j)-tXhU=d+R+zS6Hj7o zEb>%%S0uZVs7k?|SOZt1yZQh+bw8sczkrS~=hI=Ti=&&ceDnsiqerm}K941FH&(=7 zFdYl64B!6^ktI$hhLLdB&&1OBGNyjA!Kvhb!g6@?s^G(D!|O2}_o0DY!1`GAnfTi= zG?0g|Gp@r5_#e8rDm-g{oWFJ?no%%1`XY8Ee+t`TgXc0OI$#ogQhtQa$Ysxm&+%f| zi+q1{ir2*aQS`n#FJwv##TnQFzeAV2%xaFU=f4RFPr)QK!nx?0uSa+7v1rj3!;`HS zx>U2VHNJ)Jg-hrXWqT>?i9%?g<3B zh~=N7_x*$($G_0cnEmCjcM3#HqNk|}db;YMr>@b<@%z6y1(hi1gzw=*^pmX4D`B(s zLq{+OUHb{>^+o6uZ@_yn%Npus;`xET<(9n~0(%M#d=0v(H=ylpe>E8@9EcT8qVMnD z(UIp~8#YU2w7erarNhwo{}gm2^RO;HhK}@ObgK8FGxI(Ah(3otS*yGjj^S-d60X@Q zbjsJG5pG5s-W9KZ7W3btQ+OP$_Y=AVf1-OO%eruU8>8)Zjrl=n{c-4%Zw5L;$yp?v zn)}g6A4AXoDs*$biFWumS})V<;l^C(Yd0_2aFLiV8}rrB`VG+l+n@vN8L!_E^2x-_ zB&>KlT5&qMi5@_waxog%)9A5z6&=A&tcagtI$l8ADf~tVxGZ{qWi-Ir==EkX-x0HT z{`-*dxb;sJ&~fw;^rf>9ZQwO@P2WXFvKyU&udx9hK|3t8KGaV~XRb2(*pJc&LBE_*XHR14jVP0ai2hmOQC^~{C(T?9h2k?H( z|BNol-!Y$MQ}`aZ3O$C6&_{4@%<%j#B4G#n(LfGk75pA6VxG<6dLwis8R$qlp#k+o z*K|O+QEf*J4z3NCdO!T&UK8CVx8N9@hqdq@bci*!g=g$AtW5qftchFEIsOfOG!^?Ge8lxY z5Agk16*pjCJc*65`SxVE;m+-@B5wushO_95l-v;xXmxZ(YNO>DG2b=jugBE6L1$zN zx~=a<2e=HKk(bcTu?d}#ZAlWoj{X-5&Y??^eP`Ha*PtV+i`U^uwBc=Npoh^8a(@`M zb8+JKm+fC_A>;nKQ)@XpM;S=fmVD0-Nx(DN7F`3?E&;W>_HwnOxtiCJk ziI(V0OhOxe0iA)j&_F+q<=>)9cNX1a|6)E5Zpn|sRM$gq?2gXJO-O`^@o2-dq6^Wf zTotcxL_6AzzL>v515Dc;W*|S>aS?O|DxmGvww(SGEn|i5(E;e%jfwfm=#8_{DSZ@O zs>jieR-u8v8S}f)0KY*yK94R{=1;(BTmd`>y zFS>T==rL=Bp5spF=A46W+IjK%LUdru(12H=oAFibi0eM%{JZJ?psK$7`L zcw<@gLak^sG_a1Cj-z7!LA3r$Xn=2{_ic-QhK~3k8tC_Ez0>HaI*$gN^{Z5XJpV~p zAs^as3ADi~=u|a8r>aA|enTuDiPoEnb~GEE;)kM(qEDlH;w5xxUXA%T@Ji4B+azpg zXR3fTkA8;+b`A~T5_-&Xe;qn1jb5*c2GAhpo1<&r5xwu)=xB7wX2k0Yu!QITX%ZE1 zD>_A|(NBzv=rPH+FYJvP=hjkIS+=0dZ0HBjQQKp2B)L#%tHfw7H#h}^hx(&^jq}p zc@eFb{}AWjsV;da{8p$jIz>a!U3?o_aT2UUZk9N6+g;G=R$vhkSl?)0IKXt79!}jBW8&bTh7x*WX3k z`w(68PtbuKK?6*lAYp@N(W(6#ZTN~K;Wvo|u|D~>SQ}@c50-W4W_&y5zeXE8giif2 zbO4vofn9Mlv|kndy;)Oa>5_>XNEqR5(edaxo`ObtFWT^f=n^bM16_#*uns+zpU32KmhU+=eQ&I_?p?+w9%Q1ES*OTzLe1Ki>5ZZC2@4_*wg+4&~qJi{}4vmh9PC%!A zMsyZBu(|R2qgamol32bKQ}6#BBwU*>(GeYw`7GaukrY4!N=K)@0=i_?(104E$F?Q9 zd9Ot`-7xHdi_krG3Oy|s(Li(k!1=eqd?XB@2-raa1 z_n_@O9P>}1_rHt=_zv36XYu+sKXCq2kx^hn7tyuNdMvDIel(DZXykR#EdL7~NuHA-;G*c0 ztp@sz=zvb~F!aH6CmO&!bnh&VJ{_;GMgvH0BH>6r#s+u*z47W(Ve=J5J1&PVRW0;- zt7vC*ruv{uF*G_39oW5S`;VdbKNHK>hkP=zlZ27)N1x5VgbRtwPKWX$=!j~d=ei9V zdAFFq0bR@CXh*li{4}(~d(iid5)2_GPb(28f#hAv?{yyC}j?0TUc zU5C~iguZsi#Pa!QfQzH6&<UG5qbJe!&Y(+m5mUdozx?NLAs^a6iI}e#t%G*h z9KEqCcEtf`{a51kx6moyf!5m>^Cz%B`3teU*Dv8O?hXBg^Y2S#2L+Y!BD$-~oe2#$ zM;}lf(DUC7eR&Lt<#(gIe-2i~Rp=?&gLUvEmcwFaLwl{!nd}G#AW+X{C!iUkd zT8OUQQuJ6okA4xYM~~-u^gLJlH3U)*H<9mvZq^*Xh5Ngsf!=@)E;$%FHj(q6((D1EjN7K;(%tNPq5jv1f=u2%EIzuPX zj?W_jB@>zd2o(!rH7=CK>ev%)@E$bc`_YCLqr3hsw4p8NN9U(#y*z)0DNaY98hViSD7XnBDXL2nk2DC{@6R1=_)jSOs6l5_l9_Vd6q~hPOt4vHu`C(ihMXzJcDq z6oVOj zpNg(|5)EttdjC_{2-je;HHlLsys_HFFycCB!-LVlMxzl=jLtwioQ670cg= z<=bQV*RlL3bjB`VRm}f4=iiQ7{T+@+2XtgzV!kKZLEq@j@%m&;Z8|iNdFTk2p(9)! z^KZrLA7CZQKac*64zS!M&c9P#<5K7-18txOmc@ZFKMS3S1!zOd(arP`I)Km7HUAo| zcO-f`dLDhSCH@Kb6-EP3Pm=HnRwddVJq0(RBV2%$@j3J(^$SdG9yEYo(SZL#&w2KL zL%sky!ZK(()ndK{dS53r;ABq{?(*x=k==*o@pbf5>mXY3JbL55*a@@#7k;Shfxb?+ zqo-saw#7funP|p4&n4`D&9Oh)-jYzBOst9(-asSXj@9wAnEwy$__9oCsgdT17Dv~- z3OXYV(GFXnBkqhfa3I>@JhYv~G5-{%{^HJR5>DM)=$h<6cj*^c4$q*QvOrpB;2Lzw zOQH2^M4Lq0qaF1|>s=qqM@A<^@5XGN|A$C8l7-j?pGHS?!U}i>JzjsH^>Sto0To8` z#nG9oj0RK}y{|>IJvuYpqW#f&!!Y$9?%z(rQ!ou(%ek?_a&+xp#B|&kJ%o1r54!s= z&k_R4gN`_V%$G(7QUML92HJ6bw7*ta(!%-g6)Rqc{-R+pX5dmBiidCzW@JrEZPKUF z8QG0~KYWJ}jc&QbBYxUx&5ue)I$7U34b)CP^6i5%g_!41LR8L^~{$Ba9#& z-Gt@Q@+#;quY(5C4zI_)=!n;$d*U5*VB669_MrXzFXofKkg(z(=m-**g$DAXFONc4 z6RV&B3_$A-MH{{a?eI?Y)ZBwraRu7pC-M4MX#GRz+Mh;dAep#G!cU`Ymxr0S9Nk=b z&>M=OfmB8#Z;tNf-spV;V}2<1Ab%?w&=$0vo#>|i5}m2zvHUz<<@-PFiZHVL(IV*P zDS-x10b64|^cj99Is*&Q5iUnNd=6dHSJ3<3!Bha43IH9*@p%2B*FFC^a)t`|(F*0! z1{z~o>=3;T?eH-)fG5!opGWJzj_!%AG5;mn-goH8|3CxDnky`IK}@>l6=Fd{v_i+2 zzXAPJx&k&9Z|p|{`Ubb-DXi)BE5m8{7CqjjbEhR{&pZvFMbq#7=kuJ%+XOh7P;ogXAaU63lW{TI!2t1sc!+wByWIr=`A{>tYr1 zx8jqy6suvwe4PJLBu3;55$?su$mh==D!hb^$sfQHSfD_dk$PwYebAr(XQCayi=Ovm z=${MZFBo1z4bbZ&V}3pw;I<@*W+cwzK&(?JE%hgq3vmGXAF&U1EF2no3hj6g*1<%P zFmrXW64?=05f`Apc6$#q@Ce#Z`ZZ~(kJy1|d2$sAEB=6`FQ@U zE=4!rVQhf~s)n__7Q2#Ph9mJu^jP+(7Wx^C9@iwMe*T|H!UxO4=nOoLS#c-&sQmY@H-^ntVseQxZ>EAbfmfchP6KYI<%zYXWA5uWYE(6y|E z>DUpyVKnBz8EE8l&<5tBkKXy{2p6LrKZ|z!ddzP@pO~MbPsIJ`yX2=D$xty<&G6*A z60MMqJ{jwvGt(y81r4AN+ChJG05?Y`VFvj*=s-S113wx)g)Z^0SR2bEYlXxYKwp)=40?PxTX#1&|RTQLLop-WY$L3l@0MC-Ld_r%TUOKcqa z2%nEG$vRAZ|8FGWT7HDC_19>FhtUAepfixGVQ4TP+CVzGi7KK2HNz^{8(sUm(e@Uj zd**3$$(}<4TZ^gxaQ9sj9*^B<#|P1XezF4og--cpjlzxBpbeEre~zz--ZuvS!s%#$ zlNyI9zYFbfHX7J`oPjSQ`=1ds2^FeD8$?@2yQ2->fUR&CI?~nX$i7B5?Ll{eO47`Ajd>y*kwxJ{Z z2Hi{N(Y3#-Sy-Z)=;wDkwBG^E7{6;bk^&=3qHntg(Y5^!?ch(egB;C62c^*a8leq# zkNKO?`=+D2eLlLBPoM*P7JWdyh0ehCWW4YdUQNLXbi{w7Q<^y=m_2$0Is>`U87PD< zK`He9^61DKqk*@L_KS|d>Xc7G15BW^do5L)jitbm!?g!U_;18afa*B|ry{vSoc8}7n%d<>oXH_@-& z&(VN>LIcUtHjKDnv?cnTa0}Y-GiZBnpquj}tbs?-M}6LQ;WRbJq!qf7aH@wzZ$TrU zfF8T$XveR_@-67*JcV}jGrIO^?L)m%=##T9+HNoORB=dk(eqk*(QH(f_`BDBB=4gm-+>kJJi0_Bx`roV9rV%N z3kPEIE)wqgqv(SpOSjNqZZwbrF<%OuiHc}oP0)Z^qsO)*dVg;;kb!8uq3FzvM%$Z; z&hTtxMw5w0NO&$+p_^t48u4Ltq`#pZWa=JnyaH`FAKGD2w1e{KUaE(l?`~+o!_cLh zj6Q82v=*(u6&>NH z=w>{Qw)-Et2XgfZ^$MdiRxU}xDXW3LE*r-S8L_-$%=bYX7>IT>I$oa~%kPaog0{01 z4e%*6z!%U!-ii60XnV>1BwVW>&_I4fXXFob>MrjaDwc>=MgyoH^Q~jPJKEumXnVuZ z_Qs$AO+sgO8ak5?A^{~63rRRtE72P_M&Cy_-A8ETpP?Om6Z6N=4t_%e{TF@kT-`4O zTo9e&(&+W7*b!Tzd*>l6O#g{zNZ8S)=m%)SyU;263Vn8eiw1fL4J7}yVY3!Pr?@JX z!e;0Q2c!3oius9XKS^{ZX5nS@pIB%Dm!nhr0vf=2w1F)#zZ+eeedvgOjMo#_h5K?w z3!@#CLj$RTwpSOO;S4l@c9?W+`o;>^M~9<<+>VZH2KwZBB$hvo2DSzbd_(kuSpI4B z0D8=hqk;d029m3P2&_$Hej}Xh8R(?axid!~*n&C1?ZBp&hS9Z&)A8H^uyiF~0}B?_kWIKs!8# z2Kp}=c+ML_c~P{yB0BTQ`Z3WqUg(3~FcjU*<6{1CbnTwQ)KsGlZ9)UyjgIJROdZpB z{TMos-_RMlfY$pLX^%huxiPGL9(3)?pd)G+Z4_LpS3tbgzAbsh|JPr4l@&(S~vj2musDZ>)fhux>1G9?LtS^{iz#F32%5W`XPGk_M(ygfR6M6Ix~rZp*$x#(sVSyvS>Ti(Rz*0 zj@w2%qwV%Y>kq}Go9mWXFcFRHF7&)VgkE0}%U?imT#q)i8SU_MOl?B+{uAhH`ginE zd-U z$IzMkCHeD;iuN?DDW4!Cq=5IsW zn-t4upaIW~<%^IROD2|+F!EPpg*VVmvKbx8$MO1}=-09QAUd*dWBwO3u-~I;H-*6R zpyh?ocFUoG)xy+2+}|)(Xd5r|j`{1+07jx6-4@HIq0jyYV)?^p!%JiSd2~Q;pfmdp z8o)NR<2`75`z`nVe~g4v_!~M!f1{fz+py43LA0TwXh7xAw_p{t!RoQRUd%T^Pf@Fw zzZSiJAlmUrG@yx?bhFJQ;bvKc2J#X*g4fXw-$rlPgr4i&@%ndY!za*y&!L+!ZFsov z3N+BX(R}DHGz!M+wTE;5y|G~|=!gc;9XLf%7x^ z{gCD6Fyf-<04k#G)<^5NyP5NEhu2b|gU}I-K&SS0bZsZ29nM5&WHCCGE6^Ey8J)q+ zXh(a|4!(`~U(wT&7!j`LjuuOjXij-$oQk8dAs)xdm_9Q6_PaCIB!3rH!gW{|zd`F= zJu3XlraAT}KLShOHgtx*$LsJf?18;TrzHks@>voMNMs)q{=gsu+mWA)8Mpjj;?4ME^ixCfZo9Qid6Yh%ny)l10=Fh}@+QhKwu85XE1F4N}zBcG??~87};n4}v znV9;AyB3gejbDxzK8o%~137^;HXa^0W?W6tB&-dXmpNu|?2KeM8 z&c7AbP+&tl(PQ;Lw4>uOe-Z5<`{cCLzj;^y?K?PxH1YHpADnK8c*t^YjQ;o4aKCK}jBDOuF7NVqw^#SAi4|T%U$Yz0U!Uzm z138b@yZnI=Xjyb*4bkhJ(UA{EAJLQ0nOTYs=#`k?f!5m}%YS)*^Pf7`4~7c`&`nnb zeXG?+XJ#nY!%67K)}R4w#|F4Rns;tERvpo|=v~nb=pOhTeLY`9_f(FDIFELi|DiCF zbaa>3#j@BOjd&QQ;hpjN4D`PHa1<_x<^Q6aE62lOCi9^k*FZb2haTtFSRdykNjS32 z=rQ~QJ7Tj(!dl&rK0uy8J3N8T$gk)WXPXx`VJFc%cCP~i0RlJOX2P4 z^JF2qN8X6;M3?pe+U^gS*N6Hk5_eMYHyY`r#c8Sk7JO^8!jdrckDzP2B>Ef{Cch4y zx!q`ohtXqs4&7v#mWDvDM3=BEx`Z{br02gi32z)8FHAujdK{`H+cK9k9;TCj6pW$>o zg3i>9E5ZlMSoEAfgg)zcqJe#mPW=hAz2C7WW_>C=km^UfKa~tOjHJM|y$js~bJ4Z> z8Xd{EXdu6#Q<(Yb5Xd#?6R;XuuN8W|54y&;paI{F)?0|yTaCVRHYQ298{fwYxHEbd z9ZBJp@dE<~lAnYIx({ved$hv~=+fm`6&kLDqsZ4pPt7v)`ZMT~Y(i%y`6US>Jcf?& zLd@rQCfs-p`T)>Eaz4y^6UxK4?6*{8a&xY~>=yRb&v@F_TWprknAOlJA@8*RO z_CiOp1dVtddR{l6fqj6E_)D~-Q)mEZWBxB}MLzLd_%v&cj&wGVvmn1^nfx6pt-MjP0Jc6bOY;~8`$*Q^c=)`*V6_LM(^-SB60hMK+@W~?px zWbK0XGY?aL|Nj{hj_g%*MDL+fz8gJ8htP&jp_}hl^cnvzItU8xIRB2Q@hf3uH=`96U`O1Fjwt7v5P2W0M*az0jyrK24u3Ut zbO0NXue~%#Z{ljtM%68ibv;Pv?7fp)wm z`VFQ6dn4EfCvbf^cEWt?!;}v~XY6KlCdZ*Od{-=gBuT=}wG>^Gm(fS>7VL-Lqo<(p zo8fvJbnUN0r~X#-G^|70c?Vs}T`|8OeU6+$15UgZ2G{|umz+hyju)V7_dMF+&*(Ay z6aB>c4?Ug@-VU3xJNn?d9_?Tdmc>bE!%w1{_9gTia1&Z@U(Ej!^2tQ@cfyE@qf=BH zow5w9ft}G~IUSwir8pV$ZU}qk0USyGO>~o{Zw!G~MDsP#0X4$n*czR&p;*iFKZ=AS zd@^468XfsJ=tz#Cf&CUuyc^aq7kWI4qBB@N+8C|h4Sm+%5X)~xm+l^PMi${P&;MEy zj<~>kVGT>6ugBWx6m~^NG8la>j6z2=7VT(ibPoE&TZm5ei`W^rVoAJmQ@FnddVf7k z{lk43Bph)!w84JSo6y~QI~w3!v3zcHF*?HM&>46et-l+se-Pc2C(wahK-<4!a~M#e z&76NnR+0ioRtb%)2KK~8*bW~;>wSgS;9<1>MfByA*b<%t&Corv4qciGTSFkV(EysG zGt)CVa%(cYR_~&~hL55VUqVNa>;2GiVKiR~eKJ-<18s&bReN;mhsNtuV*Y;YPx%V0 zgBP(2R^JxdnVuwJg@@1%PNL7~-($Z12Vu%up#gS}jzLewedvgui{=Q2xL3iaObl1;Ar))Vom9L=zyo){u_M;t~MfXm&9brbUL<1;< z-d7cEw*lH=5A?nPA)ic)C*h{K8@+KJI=ia$r|{fKV1i zL%kwsy|QQkwbASCqkYhJhoFJpj@G;9W6pmC5{oEs6K#nVKaB1}H`{S^)BKB0ZNA-M z2Fjrg*2B8k4l{5%`drwA?*2l6FjFoXO+VFqa92dfySD_=@h_3xsbc#QV9>pHy&tV3(+7mu#X5ujNhme6L6D_|8BkqK5lHO=X zL(!=mi$*#X?RYMh#b?kxu?wA%qv*&lqV>w`4fi!ck84--K{N~<@C>Zv`JYe18{WhE z_!WA5a(x+|*;Ub{7=p9$4m6;@FdeV>DjcgS=n@V>M?M;R;d|)X=lwbaS`4jMAFrnW zL`xFs*cY$EN!Swipi7c(U)Y2h=*+Z2XQn$kWBt+1HWJ;0W25(CYRRxI<*RT!o<;*0 zxIdo%Q6yZ$ap*|zMk_oTU50k_Jo@B%6J6^s(5e3(o!WoU4h#G*v{M?rUK_pM1)b^P zXnQmM$N9J8hbXYarPv*xL(BifS(x=e_0w{t~(u@*WI(pgcNrJ<#jZ z(Lm;-19%zTD<2-@{2R%y6u2oe9SRNSM;ojX^DWV-y$%g*3_7Bzcq1-A*Z3T|H2+{% z%>GT-+>pP%7WZs58F&AJNT#D|2 zE$9;NMBCkmuKf>~dafJ^A0Tzm_LKLJNGCB5`{HX@4Rag~KM&MLr+PZt;X<^7W$1`s zMjLt?+v5&&DRX}trn(3kSUv2BP0{Q3Av2#$EFh6i!OBpO*oHRv1v-MGSQ~#vm#E}- zVFY!t4*7f0XaC!1;J=`2UhMmDnrfj_J{Ns-Z$bmuhRr~=c5J08So2W#ORtbiNP^Zq@S z#DCCwCC-F_ltBkj`AjmbWd;T56!gWiI0@bLPogvMM$GRAiNJfO{bD1++^p_C)*|ThFs@DM`h5C>Y)*LjQN3Ry>aMqd;kq> zN%ZA-eG}U5SLi3+ar8l!<=3#3$$})TP!3(g`e;Do(1vHA4L^*I=&5-9m3aMaG{6th znL32l`yCx&rr$z)m!W$nA6i}-nJIq%L&C^fpdAlH9~h(1inpVW&MC2cJ{s8K=xTIr z-$6g+HlYDuLOZS&+}i8#I-mc`{F0~7MA%l1aJsDlK%nS zY}GG>DX)uewhrh6Y9Lm}5m*JEz;3u5o!R_=(41KhT-`54|tX#b62aC#h-|IsZ1)g#vFJfi^f6 ztKnT}1FvFc+=9-)2hm+Pk^JZAd2jc3XlF3`L>-B)^(^!O_W&B`<7hiC{muC|@mef+ zEBYQf1KZG<`80YE9mz@b82yQ^>E)L~{e0M(d62=KsP-FGuU;M@Li{o#Gnkh?`(hY>Pe@hGGf46Fogk zkpPm3btKX$*p4=I9Bt^wnEw+ilfQ&cVFh+V2G&6L#O?h5G@O7vaWbak$LKNp34Ok# zXUd#fx@PFoc1g+kyOxBTZfLwPE;=KY-;X{}7Nbk_Qp~>{ukS(|Jb*6QF?0aGpfhnX z=Ch=Q>v_<%FN{}s{>z)d+UO0RjWcquwV&!B;NqY137YpdWE8u&|TgHebn|s1D}X)#yM!9&n8JYg12LZo#vGXnrhTiSDh{XaMWcx9JY_I3|yf@O=J(OWW7wD3nLm$DFuLw)m4y%x#haThikie3O?Iaw@9&{!SqLH2s z6%v0(v*!#QUX6{oUKv~AaIB3lqBC_ETVwuQVM+RFUg> zKkXWTeaOFnK3D$5)W84TI$yZqTD*=6&tP3EU{9=*KXd92qvqf^@<*^O_9_te$`b5F z{&jRuWG@(ItOV94-vOK8-Pja2VGX=gkn``FRV@@ob`!c*>(D*$9=az!MPE|iL@%J5 z^XkIE^5`CFj2_Q6(Vpn;ABf&R8m%`QePYfl%=z~iET_O5H=zxGjGp@=Xh7%C8!tt( z6$$w~=p(rZ+EEFtjg|2*4n&uz*)`#q-h#G29$oVLk|caUyojCg6I_5riZUaac>SUs zTq+g<%2YfAdNtZmI=ZXt#C%tD=7yl>d|bRf7u}@Kp|9=j@p|$g3D4>8Xh(TUgx70+ z^g+}YU4nt=4Bd*&@lG6q8_`E|@$}Hn&FD2PBe^x57RU5b`yN1dX5ql3|UW3VQULpyvn`XahVUPS}?DCYNL z>d*gvCEg4yaezu=|tfjI2T5 zvRlxl`=Ko7-!=b<0vq@XUBevZf>&WJ@NsOaE|ifbmT#= zmqFXD8q4dWd#O|TWEk0?Sa36X!?frubgdr7n{htc&_y)xEEPgNFFG^Vpqs5VdVM~6 z{|fZJRnb>s`CCa6uGL0#s<)s^u?KxJevAHCUZ`Stu=GYBrT3vrvK?Kj-RNdKfOhmV zI-`H0?PjYK9?1pK&D{ch$tAmx@K}sOM?Mz4VG6ot51>=O3?0$yF~0@va38wsPooc< zw94Td?;3QsH$j)ACwhN>G~k<&fhH3ZLLxCM`WPC(v(Y!v0CvXw;pmxIo~ROLtRT8q z%HxCBA05DPG{6g32J=)6?bXH9@BcfKa5qmvr~Yv?falOn@)kNnyU`JRfzH$sw1boA z2rr^bnN}?3(>V)iFWuh*1+}X+8xKP zn7Mj*cl1O%T!9AsJhsGF(9?1@mY1p#0;+(?)B}cu5w*m0?24%;T68M9nP#Cgv=E({ zXX5pD&EeU35fWpbZ~D zJ3fxi*x%@qTvjVAMFF&4g_y5{t;x4V?|Tr(;Zx}MK)%|Xe=k(89j2-^8ps^%f{V~| zeGDJKE9-=Mi?I#)L)Z#S)eUdO;n<%1b1{Dg+mf$dFD%tW^jL34Kk+UlN!&)FZvF7> z_ACx2e-^uA&j!I&Xkfpi50oqo!zRsv&OqU4xoB;4b7r7>rzd(muSW+w9$m8J{UqGA ztI#QV0sU&-h8~-5(c|}5yq>2~n9|BPl=87y8o$IAcmZAWMvcSwKnL`64MUe^Cc1R< zkR|57|0CfIZ^R4R&=Kv4`NQaL{wew^`sH&0Z7^q(5O^W9;o8v_(QfDr+!!5>&fsmB z`uBgvk#I_8qML3pI^tK+wcml2@eEq;nx>f(gRlnn!bj1WI)=URA9U~ZY!;^cDRgGv zL67a1=m5@P9>4#yHV+*XK&QSXmc>D6!?V$~TaE_s7TUmWbd8V3>%XD{xFRETSQ2fg z30gh`UFyl`UYd@n_y0pAY;YO66l-IJ%`yKO+Ru%_CVMugL3(o&&3MNwE6n%%j?fyX@ObuIxHO@fuozbP~g$6nb4QvX!7al}A zUW5kvJR0c6c>P1P{+H3?EtBC#sS6bNb3lbw;fD6;`R;=mxD@U15Zcj?XhVOZ_g&UH zY_f{z0BWI|_EvPWjYnr_GCGjE(01k|V}%9SgMvlq&jY7$F6L~LIW`w(#QY7)NfilS3i71OZ=mc}7y zK(o=cTa7-^UdMiT5gk#_4&nam(0aF^BbFZM&6wYb zZl*6|{yQ|FGtsL%hWB}W^!^*rB^im{cPHB3{V~4;9r+7rfNL@JzyGr#7JP(8x)*KW z5ISY2(Y3#b&d_C@!f`4Vt&KiPJD~N3q8;3Uwlgi}ABZkQmt?tm{#TK3N?t(E_sh|( zXoFv)BRPh?E&o7AnyGU*HCLk@Rzt5hKsR5jnD2nL+Z#QGBhi4TVba9o@xofHLVg=I z!?S1r)w_fTQ!{k8-+$c~eXE^8pPUuC2793OreZoS#)Y_{E9c*cyLAgw z-5(vtVS9W8eZK5RH|1~WK>q8_ z`7cSLM2|20AB&SzoPnv(KqhcIrxZ znvk@I0d<|kPcE1ria~NRo(w{7^t-`jDMisC?sg;eEgOh zD&Yv26HbIWB?qDI`=hpg-sU%K{s`)k`x@$b@BwOL-)#LCbn7CB(8w_;1a-KO}PK%Fw_hu zLnU4arQZs5)gFR+pj?G2TeiZ9Nw%@m81>o^vx$ zD}O?DAYwD;T8IHvKw79)=7u^Y6``($rmz`o0~P2vRAHZC4j8_<^NmJ6s8iMvDt<4h zQ#KH)VD|_HdZNvQO85+F$Dg1QMhtZH$)NO^p!7wd?uwdFr>Gg!McftY_8MjL6;Ss3 zpf-9Ls*rn-Lfo#WX7Cm&pl=K3oW+Dyn5Tf+aeJt97XoEB2&$m*w!YA~3Th*pp*nKF zcmb-w2T(iz>d|xmMQZ7st3*%^IiM;o0d=nGn7*^=-NtE9tz89G&=%tXsN3xHue`5iPKZ_WL$0B2FC^|y_$p&Wid1&r9n*-0!Y`;<_HWQFo809(Qe zQ1)w~?6%qZVW`{jGE}Et!~QUQTeq_?q^+OlMnt+nD>HN;XbGhym2$oGx@72enKUR*xtD&;z3oO z4(j451{JtEED6U$?dUwzxqbi?dWzLW1x!f z+QLVu7o7;5owr;Wpc3|hx_^(s4YG$*;rK4j&I7tSfpb7@q%_nisSh*3R#3OyM5sHg*|1#8@#OF}0_U-0;92Xbr9a1@{PPw7Z{b;Bs-7?c3fr@hus^CXZJI>zS zxhTs+ZJ-9s3EM!=zyHr>kRHV{s03%BT74a=wNFg{2I}JZ0%e~j#CbWb0?RO82vyKi zs8bfMhjSOigo>9O>h8z{wSnBwtrk^hAcsaUHEa!a`;0ODEU1fY2~>f5p`K{Rp-$a7 zsQdj1RDu^!@!mt({e-&M{CYa4DiYMGNZ6D6Uj<}DQ6A=n72p6U$73)bJPTD&xL(ew ziDOI+l`s#~)n63q;;I5wa5K~QfjTv#O#e4j-tE1(|Fz>oDAd|#P*;Dv-p-DaKvkZ? z=Bc3`IO&b~p-xeGs7H5o(|3T{VSlKCCfIxtR0p@f{BWY;)hU)K0;lDzo0r0zpoQ7Bh)qE&c{HGHKAJA0H%X& zp*k}W=7n3J0>6ZMLjHgXkfonfcm=39HK5|uGq#3mbq}Zw4u&dZG^9YcYaRnRu7EOJ z57nAoQ0M*w%ndX4cM59)wX zS0M(fY!KA_Im);Is>R!39=IPW@h7N4e;cE44QZYL>Z(r#6)&sJ^Fnp51k4U=LUm{e zj7WahWCpsZWRzclX`=HMK6{r`Xhft>`;vnau%m&rD+))07jFq7L8bTG;2Fk9x zt@kyKfo?g@VIafRP=?!~E}Fft1iT8>i3Ee4z$u|xoCQi>0_rZQ2z8rQgDRjgRNP>w zxILgc*x%Mi4CelqVyYR=GlNx7E!qNg&JNl7WvGJh!%XmSpdAb~!*NiR&M_{6)tRq^x`@6(y>X~E)X(#$SWZLT4TXj|uO027 zF5VGParZ$Lblm1=p$fPL)tQHG26}Y9h3dq6D2E?VJM|gvIK+lJCCOk0mN-h;(p#u3ik-Ijr_`Ylinr=SYB3U!WeLp|BvK_!ef(&BiZEe3Tv)`i;G4XBPhf-2}Wq| z6Z4?%-z89w-fcENVe?xye+%XJ2Wp3YWBfe7M1HPs91q8?k&`gKf=4vHNkoJ zd=HjlnrtHXe_;mACOU5>=falEvrlq9WSVMx2rEcG+4*j{H}q$I9I6v9;3Sx2il1u@ zTmzM$-c;wk;~ZF;`DLiL?+K?les$aocA*#v^TJZo{XD<7qc<$c{4tyZ)6Q@TJplEp z_!9=e+%uh*={iuK>-B+3uodd6{{YLuOtYMiaJ#}R%qPME(7lI&Zl}*st;;mqdE4Cx zHfO#Twt~^;IE8hCt(o72MPQk^PGN(g67Pk2!2EzJpwQpW8=P)1J@d7&8oUDQ>;6wY z&q>%HR$<{R^oL32J3A{3<=6~r=ObYYxDVEX0SlbFpa;~WdKT2H>I+y0wq5Aw`TYR< z;3(!97CHGg!8)?^UF{N-DYejlz4I+m2-Iyf z4eFV{4(eh#1vmQeO)4zTeC0;R{skP&JkloTqu4P}FFqHbuJ-twot-v->f8z#0{=ig zFG99(|EFazaEtR|vJ~omUuE13_3n5#)cyP!>dEy3s=(-5op~mx^&;>LECrPy<~FCJ ziJ@NPGD1BGOTdJ%+BUai&>DpT^n^;#A9~)mLw!rN2xfu@pdQh$p$h#2^(q)?yOS_F zjKDl0)T1{ARKiR)FJSXBPzBa>Gf<+&P!)BCavTX`!Kt>s6zbXtg%RO#sDjT!6>t^G z?-o?TXU0#kCUf6Vrvr7M3h!Wa_h6ulZ6MU`w-qXY&kpC&858<3PX+^^Kh!l-%Jegg zbD*B_^I=oC3hG=(+UZ=Z1E5ajeyBX(A=il8Rc@Dav5bLzSU3mE!wS2d4orgam@k4l z1>2!^{?OK+8^1w4$|LV_9!zDSZo45c30w=4!{au83Ozsn%a5;nzJ-bmRbc_BMBShq z=0TmB-7por40V-%fwC*S&slE`bsG+Zy4a3F`QL$Q;eSxA_uub4*fPTOy8o*(P|JHj zU3^1fG&miqrHi3DunzjeLr{SpLtP_ppk57sK|Oe)9dHWD0M(HaP#1B3s62C_F1}UJ z^Y8y#7%0#os8(Huy2}57O6+^kDJ&t>JR{T&i_*AobxdEzYGha=nAVrUwFU_4?|Ua&gOS){v4_UpP^n%e#3mQ>JjJK7zTCGj)A%> zCcu(#4%FRp2dV=PkGLI!*C=#*eT8ay#G}qU4%8`01$9dDKviB6s$&(Q0yQ+Yg6c#k zsM~sgaT3%uv;-!GyP@JO zya>mgCu9KBHBk)e!PF2cZXlGsyAuPoco0+vCfLG!sB2&&l;aVo)}4lG?FHi%s8ewR zdRhu~d%lM9e{cHmC!F{(jVU1;al5iJ&}~-?Dp7Bk9=c&6xB{kzkDzX&2q&G}H4D@O zsS)e~2SC~V1GB?8r<|XvDFsU~?*z4h4N!TuLeJm-+|58cI0x0*>o7iiX7is=Esc8G zu}cSKmmTUFC@8q0Y%JsGXgG z>EJ)mAI3lHtmiXUfVw6c8aqP;9%k#)ZN37kz#T9fJO_1ZenGbq$3EvcW`w%03qd*j z1@(k$1J!{k(DS|k`ZGTT73ek03I9N~KIeJoksb(D&@!la+oAHEfkohx^W6XW83bH# zF2V*-J8A=UG4+Q!H6vhNI1#G#N1?9%E2e)Abx|h2=p+h&ijyB|Lsg(2-7TT6{t@sm zIQ1g;zwYO!D00EKP&@R$;h4$ZXrR;U*5F70f{Q^*GoVZiafbih0v%Q8uW61))wwF{r{SK<%tL z)B~qERKnJ_9t_puE>MN{gL*9(3e~xZFs9!BFJqvVY=gS}4nu!<73!k-0@d=wx10c3 zp`PIdp$e*HYyy?A4OF~tP*?jPDF0bd7v);0JO^P0-T#*v=zjkRl`zF^r$r^99BM=D zI2bB%7pO#IpmsDJsuPP$zZt3{dyR*oc6<`*Zn_WU{{nhG|NF>5x0Bx;Cs6{Zd2*=A zb3mQrGEe~;K^4>rsj^RpbSSr?Q|wo3l~GreGS!#gSLJg>Y}>@<@d_w-=V&>i~Yd4_%cDo zcNbxxfEA&x=6bde2-WINP=)n^x@t#46+9a%z#>~;4^_}U<9Vo#K7cClD^&bnP;nwY z^w8}}%s>}gW~hM0pb}SxI(N09uKMOsE$$1|p;^##J3;OEAe8@2s07cT5`Ke<=ljSh zJSx=18y6XZj;h ze&?VHz6I;+{{O&0JF5KH`E0it)Dv$Ml*4!^huKgU+a{=Uc?PP*PoYl9PpCNIo;Vvw z1k*Fm3blbcrf&|_ksi?V_rC@*(7785m2etV2Npu@a2u4vA*ev7jn|+GdI)t}{e-el z^whbg(n8tihU!c)V+E*FRP!nKzbbEqLapxrwe$W^j)S3EIS%R~T>y10tTP^m>cm5v z{|9x|$9v`^ObxZ6tj2;+iOWL8t@q6BBx;Ak(-Nov1EF>{-nbI#;yVoW;`9)z)%+J{ z&x=kxs6+{&cA6S0PFARn6tVS+P#dme>rLDY)cOv#FaXM7xN!PyEk1=Nd37MLGa zgjydA)wyXJP9@NE^1*$`3 zp{Em2*G3bl!g@n(U^-NyMNo-WK~F(Yr|`Jx&p_GT(p>ldBL*`37plds*G}RnP*;0u zsKiB~5>!Dwr86VM(aMt3f@8nnJz1?Ew|14^+WJp$eD?)romf1uTBU{jWf4Q0ScPu!ZAL z1zdnyzYX<3dI8nCUr>R=zjfxZp-xp|o9BWmpb(T@8K_RyfI4OEpb8rKmiu3cr=!r$ zmfFHDs3+P9sQdj1)K2~WaRS7JYIP2%i>U(Cj;cciu5WA&)!7iJ4UK@ZpA5B;S#AcZ za3NHHwZ?5w3HL!=<>zdEA1dHGs2%#eb2<|hs%f)ijdxD%Fu-)z0$d#BJ6P_3^D<=+Tur!Ap&-We)hZ_~S> z=lB1NWgv$cP&=Lv)yg$cE#3$fXcyFuk3rd=fwH>-mEb1SDSHHE_W`OS-=MA)zYmUI zQm8zsVHDl}Ic%Y@6wFJTK{aC|r~qxD0uO>};RvXX&4Rk^)<9h=8=yLI0Ltzh)XpD3 zZRj~v0q>#b|Ns3qMfi`-xs3z0!vLs)GD11#f!c8~sE(9|3S8avb)gDq1XXAUTki%{ zXdj!8gNirxBlo`o%|oGzS3x~mL!lflK^5{8D)C#WR)2un*$=4uKKdsoU^=LaGY8c3 zqPWd#Lv5rb^o5;_T|aUE>*@|cp`A>I3NXv&D~#)*cDBuU45np%9j1Z5pl-WVpPdIy z0jL6NLVau33i`tlP}j%`TMukMP9_5Cf`HDWL2MLUpht z)NNKBs-Tuo3Hw0h84b0;IZ)3B_bLXSi^UY@U>O#k!YMG*S7*K#=4I~t&H3!604&73 z2h0vP+WY~`!93}AM_&c@X5JrWhM%EMS-^ju|M=*36=Kj1#cJ3b#{c1bjNTI#XTBF! zhQDAXSn;P5V486qOo{#&Ob?&I5-`RuKUXhU9hQa1;ZPX;xAR%>WSCR$|1UGp#S#9G z^Fd@Rs6drqdDsmWg}Y!K_zmWU)wm>6!y!ZkT=xG_4!^F=)szByp==q(s3iK;91XBr&G9x&P?`P1d>qAf#bzkJ z0VJtL!4=W1M<-dxxEuOgibbxSR!C4d`hNw*0v4j-G>Tw-Z1J0J1CvvXE1_@AuD4;= z3jIE8ixGGXMb)uH-znff^hb$#-h8W}tIEdW(zV&xS7u$Z$3xElcmkdzL1BU?#vlp{ zl?fo(NZ^T#H!)5@klnQP6M-aUu>IG@xhaC*u;r>lvV_=2C+0XybOjb-t%+^y3*2nu z)@}m4W>VISzYsVoN!l>)WF6Q-@XG|8hi)MDEm_}1G5*kpwL(zRgd_`zb|Y!Q*emHU8p|PBgYzMZh=g4~Y-U-~I~1}J zeKGTEOY#F8DbRT(9KL+8;_@N!{}H!qj_rI3iyui=nt%gI5)szrl=QPMv^CElvp<4< zF5^<@4_T4nNfLtZUlib#GT7Cp8@p|TH^>uTHrU40-`^hVwKP`7pdN|K;uw_#lL+=5 zU07*nyFY8YR89A-h(l)EiVa9AvKT}>Nk2|eN0QI70@J!NTJNm6>eIrPEbb=2EsoX{ zu$s!darD9Qva%qr9C*G)#l|BP(t(4ApQ{+UIK(YVyhkJ|ZUxOJc5~KlVpEQ_TEul{ zVkZe%XoeBLmebXMBvDwL$at_N%*EU*&DiBY)*caPIh1rENk(kqnEgVMH#MIN*gPYV z8dY%$r5>T>lEoKN3*UJ`8K)*c*edB>0YAkLYj& z@58tP$6LlRv3mjkg1#h~z#+M2tscreA;rvh)UNTw`;Wsb`myW8Y_PuP@2{X;ZB?(K zLP<}8@1_%r*f_Zv9@ybCrNxOtfaAm;^TJ> zzM%u2{a0n+l|TlinU{h522EFTf{rIyU5VGFv;Fp_x^=7 zDLNVU3rO;S^#&9n>4ZK7ekb8I4oBF37E6>6AkYbR`xoqq?gBfz2)B|bGxoVC<_a-J zGoOZCR^ssKj_VcUY}iHNxW{^W3dn+Q%7`e=Tf16Jeg8eKI}@{|EcfIXgsUVEd+^FG zJj&pzKb+9jtAzjJ_Y{3i_BD$`asz*U*{iDqK9Y(?Ut5=sPrFSzNa26P_h=g!PtMZLMt-vY&M%}(?Vkm5E4q6|^ zygGW|T5C7oJeY?0BJ9%RUx3BfGbe}hiRs#rQAI&@l21=Gae|h}0|zVl25! z%^yksANG-0<3nwalp$<3_A!Le+v!sbVjaisFn0Vs3D_!ma76DV*Wt5V!SDrIiYH@~P*NWtlYWU}-sXMUsGyBXi2%8>y zi}irTc_fsKBR~aqSOMk@Q`B~(mSjGTUirb|ZL412F0Ucs4|YGDf(lqsC792~_b10GD_;Ij z30@m6BDkah#~Icya|)VzG~6rL)Uyq^&zYgt!jou*CDy!Zn6-^KWTtwr6vTEpfumWV zKUPG4eD;&J3HugnI7VA3qAre)SbWPo zI>o%DfVUL*7rU=Yq7Jr`2^5o-wHMeWCg~vbw>TnjjKcp4_IoK-A2^&rx0tvW7)P>V z>accNPwKWfUuIFVl7v6e<%WT_tE0@PkVrC#Kvl3k>P$Uf`?A&w`(Xr5%i3jZ5>Z@S z{00$wH0ygvcAWVk)@E>wVI06_-Ou?V*@?kGl#;s~0|@k)pprZ|^rDq7%{ChI%V93q zWLEq<3MhcS4IGExMq)O`wgv?ZV7$ou9~v=nyJ}NuJ)E}KxfzE;Fh?sYzeC_{jE@jt z1p%rvE`wgeC#)V>;J|egeRl#+q3FtX-lGy*Qiy`|VPad`&|dNt^sLxhj8_Do$kCUD zV&U685Hm4A!MNo&Y?sWRKrQY*s4)$!Al@J#?|GGiy*k#P<(2xhb?S zKKEH?|BmS2@2cQb$96Xx!-p6I+b%n?p4`Ur*sd=oSt-0XMSZ199Z9lPfsvVE?4wdx zadcT(mqfv~GsU@M*lwicSG&9VqufM*=;%{3E>0nbts_?m(mPDh`4n7~CN2J|0A9O-;Lnh3g@#V-o;Mt5wL*; z$PTkIPt0!fa!87h;8~dN9loMjZx;@gAak4OlJhDXl zEOvR;-f&zX)=%OVAnsIr^Lze@lMw#2#y06hgk1=97(dBc z=Jg5awt^~=U^;el%~v)HNWPo(Mx3rJmh5l6rEH6_SMFhugbw7zaWx4f6PcgDt|Du# z2pTVpz1H&(Fh2T79LubrQtZ4we(Uf%kNsElrLc>}xDm-G;5VJI_xa;5?;biQjs{7DJnKG5x46h zZ7GlP4E%#*Cye<^DjxZOeh7vKU<3k8pvd~RrjO4hPtfTf3v%N>m?DCmz^+sHOkwRm z=FRaLM$!lr#V7f$DgP^${dc#@BC@y;2T1_IBv&wAkE1{OhK|a$k?{$FuYoH}_W-*_ zBuP!+9CmtU!@k5x$68O;Vl)4TSYPq=$_u^!D~e(&i``j#&iEvSTt}aqPE55n7O;Z6 zj$$s>7ZE&*T_@6&Hv6k=YO4A4Q!M5`DEKUS?r=P1T!+qh&i^wU|CnO~YoCIRCBPL5 zibY}J2+|WLucRXJ5%cK+r?EZ-`%>(*EMtk5FWR`ON5c~jWnBtBO+m*ZkpDPA>td7! z=k6q55ARcWj5Ay@W3ZT&M`Vpr9Cb2D%j9X%KTU{{cd<5K0G4E{`513D4Ee$?t?Ua1L zFBd+ku}KPdu$gM`6vgdgLkk(7)+yr{!CbO|vHLRxbY$><U-6?im4Vy_MD^0L{_-w}Bmw7DnQH%!Ik7a!kYxC&RD+>EetTe=$#IeA$ zX?yyV^{wxeuvDlo1lE?%|34KZ0oN-nHL?*x(9E*{>ICkaHEo8?FNRo@S zTG%y1H;zJzvTnIuPnajPuH;5}-^N3%2zNgceK6~51RssVT#8wR;S)2;1ZQ$ALjMZe zb=WN>c^(plz%~@n9_H7aBdj#{R$|IGa2^{TiT;7U|G!Ap1qpbUgcHp;COe;w&X4&H z91=2?j3syywGH8COk9I0C<+{6e&LySFx$!4#b@m#h3&xa3O148e)QYeOmvE-j|4|4 ziNV5I5=)k2JkJ7Mx8Tl-^Yu1?ZxOg4ZQl=|e0cEF636!dr^oUBY9=n*iH| zOU9HV0hMlHkBwT{e zYwO?!(^m>__p;Zq57k~{vfrzKi7+0E<7pB~Zke;j`e*aMI95{te+ADYqlpob4J_oe z@OPp-@|yyp<9`ynr1;-plaf5%_woa9h#Mxb7IWFI4#Qs@kG*X+eNB9tTOipNWY;Yy z^g0D}W9 z@{RGtA%8pzs6w7w0UCeA=^Vy8SwBvYW$1cZcT*6zRd*V|?$znXFwSW>pG$$#@UPEY{+2{Lrtf z`fkBTVbF-(NdCg{3k3voJm6S{aaYy`!dWD}MG#3;5|*S}70@TKIM=mv#)+($>So&y zeOiwfr^##w>H054;AI^8>7&d9mpsRy2jg{&%du9IaS+F6#*#!N<&Rmq0@!_Z_+3en zdlc?N!i(6|wOG=xrI^1cay@YmGC#nkB<|;C6pI$!Bv5Jsw_{v{fH|2Oh|- zy7CdDCWYO=Z!2-?FkVY+NqBrC;`_@sR}+7Cc>-O+GXlysmQ2R=INq_-xae+R_=~YW zHm?a<9^Rs8Np}lYge0r1pe9DGR|_+)LaZFjI}xii8}iY6`4a>P-_Yl)u<+j!XK#_p)6 z+noRQC=#*o6~_<)OI{M7IYoW7-8CceeC)cSKZeaF0`$Q?7L>F?e~9@;)>4tMA;rwb zCqG9y);hog#M=aeNgRtOCqR0}J_I|%Tyg`4DikJ3 zNuX5BJHvSB_F|ij0{KZ>S0nUU;Bj=V=vXM6Ng>_PNuH53yltcezT;Rs!&=R#oc}rm z`G@vz!AX*ZU}0r0g`FkobQo5a5^%N!&0)S;Pe80Z79*Zcg>6P_xtOQK_8#k{DRili zp1;UZ77AmSjjG;IkXN3ek8i=EQov*8l8p{r>F`O5ZmSiSnBW;0w;=coV$H*D8S}*) z9T|V2I0-+C>WZVHmH!+;23XR+Najm>HsMeLu4Ly&ak^?n$hir&wb7kq_d7@w4I4>J zT3Y~J7v^m^K9QghaVE3&4WG*%D<19W6A*7CzV5dy#A6{66(vV;m_;9JYZ(H1Wh{Y` zP>@$vVxN@tZrI27Dq&(aGl$}uu$G>9z457ytt2LElBKLaa5m(2C7^(A7&TxqGlriX z8_(Ce7$(PX3A>qyh8p;5mH*$MnH882Rk|?6PO*gLi20S+2cf>x>Pf85tX;wW9C7;S z{l7m8D=@l=A|1y{j9N3_P8UY714&M7u24h;Re&4|Q$#215<6 zSPNegyp9z&(__UaVd&Db_M2FbtTU(0#+`(PSR}iOQ4b0!&s?&PWEDuzp0y{8eMlSw zn*^+HA<%rrTj4k6J+Ns{;rW@z!B+B`BNW{){4$WV5q70H7BH7YbnN(ZnYIf@&DBfb zZWd$(0c$azNuc`#InR-uV==9Bu_o!ny5y__*B!bj8A6Qp*i>em3;UbQ$6MTr6mk{) zV!i+SjPimlw4*xyaIHrcS&OFQ{0jX9x^v#vP7ydcx;xB2Qa~pBGg9O>0!KrC&x%r@ zhUg_VIR3Fy?XoyS_55FC%2zo5L$bmo{*MHk(09^KkzkIWtk+=oUb$pz{ji;50qb)r zn&RJ;g5F`+mTuI7Svl006WBduP=eTd@pIRv+KxCiWU|HrcE@lM$!3#m4Gtr*$%d{F zfotKMk8wNJeVE^7O){5_#3AT4=FiY~v5xM+{}uDObR-*jBw67L>^DXBJpXvGkZ3Fh z{ZM|Q5XlJJ=}6mIAoGhPJ!kV-Fdu=va)!iBNIKN~j!@_gY|2_vuU!sul(86n`R^L8 zmQ=lsonOPTt0g~5q9_<0BEet^i-FBe5_}-RZXzY(_-x%uioP&Me+zmHeS5~su|3Q& znuK2QLm!cOJJ^dH@7*N*g3&%Kl9T8lRX-uXEf&2Jg>^|T2cECK*j>Or9f4v}bYtwh zu+w?ih9l;F*2i0c*(px)PQ@^efsf<|e(t0g4qz~xBM(995wtM7EoDh%xX@a<41Hvd z(%3X6*-(5XQwdldeRjGv3F=B4!!DCB{Km16SRJhkjaffr1;x{6c~dYxM}o<)H^$Qm z_RNe^TBY+?4@Ys?S$~J~coNNEcLUHJqZogDS1B=ak>iK$d?@RZ7R39TB1*7H&zyLP zIPQ4=lJLg61er=hY z?X}aT|F`ikHdU}GNxTO56`|0Pa2-BXth0*wnE39#3^EWT9S)L7jN?<#G@Sk-P&;(< z(EYOA%4R3YURvUQBpJ@J5dVGz43BR$lAOV=4hLJox$=_Lyjj$KGwtD~96eCF} z$8(a5CFwZ=o~EUeUL?zj^LW<&qqRE-=#`d?hqL}0MM}60=Et@=%u0;v#2N!jS&rBg zeKm|f`{y5lF)EI;BoRsXVl;?E#n^=(&Yd|VE3E^^slG4ka|zT3N{U&r?MQUkb~y{b zzb#o*E1(cDt6JxFQ0P_tEKe>9xX)w*4yOp1onR+P_R)#$`Ffvrb-}SNYc;VSh23k| zihwz>4Ml&6qch`l*v5wAC}cAQL?&)T3b>8!TB6lJU(Yt>zK-!!9RIJ}4x_k8agv7| zb!|sK@To@;tx0r;L$aTOI--w2BCq7O-F`rq4|_=suTKA6rVLKusi*~xy%^W9Vpd`_ zl4NPD(jnM%rdw6*R5_uXufMIp>)1vn$#F~6fEbI3*M&Ia!W3293hkV4qLVSe5^;H>a8 z#kL{wHWM!!>o1tUBk@n{Dxhmf0Wlc6FEFXZAQHPC3}3QP6vt)+UWY>}9McnE8hlIi zE0$b|{$aiH|61uy%_|`>N70?%#K?x9Bo#4-V(U-QUb(6BA6Dw)*hP*6jzd9SnP%s_ z6G6hUR)-=bzSuOefcjVQ>{i@p>?F@%C+u%xzs}ZL!t~^jv{3%|7$l_9awJJ&)h<<~ z7Nj$}e9Y_P5P@Xx2#|sRZAqRTUrApI&xrje<|nX^gMC_(Ubn(!6I)-%lL_0-te5A= zq^gHoWq*u;1jvAGL6YPn$!H8EFK`Ya=m?vi$3B!`ftBZ(d?+q6 z_8+l5%vv|b-{30rJ19nSj$;ht_N<-5FGfT=|Cw;=k3!NEr<%^tl@I3>R^WWr=U6)j zqN_~xrzxr!`t%gg#0r{dHbJaQqOiVzq**y8k>?b)e`A}07^U_8FAWZF2$T^;CQByA zmgpPdu)(U&MZo3kJRGNFH)|~!pTd3_>u1eIe#){y=;_1W6~$-IUBcGMVZ+hs|F&jiU%;6RLC;{1++{>8XCM;}WlyY{wcjTeW} z^ZOQDg^4*8`$y=C`Y@3m2KgUDtR-o^1yHa7*Z9Eho$p_{I=t^;l zTt@8V_(@umJRAPMybt4<7_rWplaGXLIY*Ns@Uuxn28r*zlzBAAH^r=m=Nb7olDs@JktqFaD1FcHBQ5_lub zi|qx9l3XTe2J75!+i7 zvPenI^BMUwy(D&kK!PqO+N!s4#3)om|;vOc~ zNqi)YJssx!zqO!_npb$7MzZ(_hyQSV%y>K1zJWKfO~bK@HLrZKfZq8q?26Ex&gi3Y zRAaYZ8E3Y|$#GJ}k>B-_<3A?1!vsxbPGew8s@`X7$(fhHb`u5tK|hgpS0Y(i*vC%a z7j}M#c`&vU@asvp{zjLA@p2Bm=Imo_20G<;Emb8*RSff4kUIoT&Q5!gNHPt_)FkxB z=?uZgn@>^r4?bsEkAl7{F%pp=5_V6SyHu>joQi*T)^cEL;&#O$Q8kP@k|;0ifx%h~ zGZWw&l#GBUVL6U?RQ}7_xZMJ`rqFE!Eo=7jDa^b*u}ToXWEg#Z#vh3-`B(o}FBZW@ zTEGwj^;FeJU5@A!wU_{z7+)k=CX%nmc7-J_gl$<8{YJMQCS?N!IPS7O7Qf{bAX#Ge zEr{12pP3Yp2D|h6Ft$Ag=TI(!S5Q9X_$4o73x)>?)P!+doI8+Y7wZxqd}c5YvEbPl z|6i#|VJTSe2qWPim3;B>&x&m&jNKUs(iP=nlqDHwXNQG2hn+3bG)t!GRf2e>95xx) z-3EMrQ(!g5N%55&uz~_%34Auw^2j7i!e;(p_W&QsdVLtXlLW(YtcCGiDs0MlEdeFl zDJU*Z3vpgSkPfWRvb9E5Oib)fuU7e>{n2Ga#GgwE3k^l^wlJFrr8bqPFNmc`&e;Dtk&~B_1wz$WIqIqo^?|9x#s-1PWNVJ#}LqOr;CPH}Eme|9mL;Q8PfT%y^ohrv;f zk!!MbWEugIQEV{9y}-5*^IEJ;hc5V$!oO3@A*L~5SNtzhSP-%AQ$$+kcUW6%@jTDJ zl~g0CLD0e&ci|YtSn?NDkFwo1Hr)v3i?9h*(IngkFA}^8_NO>vk+>5D?ZhSuJ_WI_ zOaU9eAB}wn=AP$oUnb))E=6^PS=@_rKNf2fs3Y^}IH!j7|5r866rGvib68sm zyK48?r@(F`Yc=W8-;8IXe?;tItUV@=kHnAUAFO-P@$ZlRKa$MBR+7xtoEe{oVE>r4*UE`9hVzGFc%h+yQ|!JD z%J~GU==Cr@fKw^ttp#j@t>g*wyJ{m6kHFVRu$S>b3awy8Jc|(8$=~OkZ>(H33gs%D zvxa|*Zb5+n%K1oaH+(A~dPP*9i9(MDV zWWdbqeSI#^jNQ*?L)0!E0{i&)3JPx1HY9XUKc50|LVYIqBnv+?!&IM5pwC}@+p-(US7K-NWNx%c& zdovR}^gT86*8|^#p${JVhQtpI{OTJm!c6xs->aeBe)~qw>D}3Y?0x~^XLj%H7ccZs z9>1Z9L;2(9rNhOk-lJ7ex6Uov1+@%uRV?G*GqBUlVw-)Fgl?_r7d?IG`96MC{X#Pg z@OvI1T2*Z)gL67UlMM4K6)CjSIKR$WL%;3x8y+bFTk71oTWF6%eq94XUqALc8ZmU+ QYriiMLw9`iYZLST0Y>AU2mk;8 delta 74998 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 diff --git a/netbox/translations/nl/LC_MESSAGES/django.po b/netbox/translations/nl/LC_MESSAGES/django.po index 8f6db88aa..441bf5235 100644 --- a/netbox/translations/nl/LC_MESSAGES/django.po +++ b/netbox/translations/nl/LC_MESSAGES/django.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Dutch (https://app.transifex.com/netbox-community/teams/178115/nl/)\n" @@ -51,9 +51,9 @@ msgstr "Je wachtwoord is succesvol gewijzigd." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -67,21 +67,20 @@ msgstr "Provisioning" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Actief" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Offline" @@ -94,7 +93,7 @@ msgstr "Deprovisioning" msgid "Decommissioned" msgstr "Buiten gebruik" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -206,13 +205,13 @@ msgstr "Sitegroep (slug)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -336,7 +335,7 @@ msgstr "Zoeken" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -470,8 +469,8 @@ msgstr "Service-ID" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Kleur" @@ -482,7 +481,7 @@ msgstr "Kleur" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -510,15 +509,15 @@ msgstr "Kleur" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -564,7 +563,7 @@ msgstr "Provideraccount" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -580,12 +579,12 @@ msgstr "Provideraccount" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -643,12 +642,12 @@ msgstr "Status" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -733,10 +732,10 @@ msgstr "Serviceparameters" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -761,8 +760,8 @@ msgstr "Attributen" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -785,30 +784,19 @@ msgstr "Tenants" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Omschrijving" @@ -860,7 +848,7 @@ msgstr "Details van de beëindiging" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -914,10 +902,10 @@ msgstr "Netwerkprovider" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1005,7 +993,7 @@ msgstr "Operationele rol" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1018,7 +1006,7 @@ msgstr "Operationele rol" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1057,8 +1045,8 @@ msgstr "Interface" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1112,12 +1100,12 @@ msgstr "Locatie" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1142,9 +1130,9 @@ msgstr "Eigenaarschap" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1168,9 +1156,9 @@ msgstr "Contacten" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Regio" @@ -1187,9 +1175,9 @@ msgstr "Regio" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Sitegroep" @@ -1198,7 +1186,7 @@ msgstr "Sitegroep" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Account" @@ -1207,9 +1195,9 @@ msgid "Term Side" msgstr "Termzijde" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1237,10 +1225,10 @@ msgstr "Opdracht" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1281,13 +1269,13 @@ msgid "Group Assignment" msgstr "Groepsopdracht" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1314,14 +1302,14 @@ msgstr "Uniek circuit-ID" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1416,7 +1404,7 @@ msgstr "ID en poortnummer(s) van het patchpaneel" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1450,7 +1438,7 @@ msgstr "" #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1545,8 +1533,8 @@ msgstr "virtueel circuit" msgid "virtual circuits" msgstr "virtuele circuits" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "functie" @@ -1583,10 +1571,10 @@ msgstr "beëindigingen van virtuele circuits" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1594,26 +1582,14 @@ msgstr "beëindigingen van virtuele circuits" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1626,8 +1602,8 @@ msgstr "beëindigingen van virtuele circuits" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1711,7 +1687,7 @@ msgstr "Aantal ASN's" msgid "Terminations" msgstr "Beëindigingen" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1745,7 +1721,7 @@ msgstr "Beëindigingen" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1755,10 +1731,10 @@ msgstr "Beëindigingen" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1834,7 +1810,7 @@ msgstr "Voltooid" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Mislukt" @@ -1894,14 +1870,13 @@ msgid "30 days" msgstr "30 dagen" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2015,7 +1990,7 @@ msgid "User name" msgstr "Gebruikersnaam" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2024,17 +1999,13 @@ msgstr "Gebruikersnaam" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Ingeschakeld" @@ -2044,12 +2015,11 @@ msgid "Sync interval" msgstr "Synchronisatie-interval" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parameters" @@ -2062,16 +2032,15 @@ msgstr "Regels negeren" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Gegevensbron" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Bestand" @@ -2089,10 +2058,9 @@ msgstr "Aangemaakt" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Soort object" @@ -2137,9 +2105,7 @@ msgstr "Eerder voltooid" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2148,8 +2114,8 @@ msgid "User" msgstr "Gebruiker" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Tijd" @@ -2162,8 +2128,7 @@ msgid "Before" msgstr "Voordien" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Actie" @@ -2204,7 +2169,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Rackverhogingen" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2349,20 +2314,20 @@ msgid "Config revision #{id}" msgstr "Revisie van de configuratie #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2371,13 +2336,13 @@ msgstr "type" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2443,7 +2408,7 @@ msgstr "" msgid "last updated" msgstr "laatst bijgewerkt" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "pad" @@ -2451,7 +2416,8 @@ msgstr "pad" msgid "File path relative to the data source's root" msgstr "Bestandspad relatief ten opzichte van de hoofdmap van de gegevensbron" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "grootte" @@ -2604,12 +2570,11 @@ msgstr "Volledige naam" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Object" @@ -2619,7 +2584,7 @@ msgid "Request ID" msgstr "ID aanvragen" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Bericht" @@ -2648,7 +2613,7 @@ msgstr "Laatst bijgewerkt" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2664,8 +2629,8 @@ msgstr "Interval" msgid "Log Entries" msgstr "Logboekvermeldingen" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Niveau" @@ -2785,11 +2750,10 @@ msgid "Backend" msgstr "Backend" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2848,8 +2812,7 @@ msgstr "Taak in de wachtrij #{id} om te synchroniseren {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Gegevens" @@ -2914,11 +2877,24 @@ msgstr "De interfacemodus ondersteunt niet-gelabelde VLAN niet" msgid "Interface mode does not support tagged vlans" msgstr "De interfacemodus ondersteunt geen gelabelde VLAN's" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Positie (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Kan een module met tijdelijke aanduidingen niet installeren in een " +"modulecompartiment zonder gedefinieerde positie." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "EEN {model} genoemd {name} bestaat al" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "Faciliteits-ID" @@ -2946,8 +2922,8 @@ msgid "Staging" msgstr "Klaarzetten" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Ontmanteling" @@ -3013,7 +2989,7 @@ msgstr "Verouderd" msgid "Millimeters" msgstr "Millimeters" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Inches" @@ -3050,14 +3026,14 @@ msgstr "Muf" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3085,7 +3061,7 @@ msgid "Rear" msgstr "Achterkant" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Klaargezet" @@ -3118,7 +3094,7 @@ msgid "Top to bottom" msgstr "Van boven naar beneden" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Passief" @@ -3147,8 +3123,8 @@ msgid "Proprietary" msgstr "Gepatenteerd" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Andere" @@ -3161,350 +3137,354 @@ msgstr "ITA/internationaal" msgid "Physical" msgstr "Fysiek" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtueel" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Draadloos" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Virtuele interfaces" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Bridge" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Linkaggregatiegroep (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "Snel Ethernet (100 Mbps)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "Gigabit Ethernet (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2,5/5 Gbps Ethernet" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10 Gbps Ethernet" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25 Gbps Ethernet" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40 Gbps Ethernet" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50 Gbps Ethernet" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100 Gbps Ethernet" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200 Gbps Ethernet" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400 Gbps Ethernet" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 Gbps Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "1,6 Tbps Ethernet" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Pluggable transceivers" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Backplane Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Mobiel" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Serienummer" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Coaxiaal" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Stapelen" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Half" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Volledig" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Auto" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Toegang" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Getagd" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Getagd (Alles)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "IEEE-standaard" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Passief 24V (2 paren)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Passief 24V (4 paren)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Passief 48V (2 paren)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Passief 48V (4 paren)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Koper" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Glasvezel" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Alleenstaand" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1PC" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "14 STUKS" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "16 STUKS" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "18 STUKS" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1X12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Kofferbak" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P kofferbak" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P-kofferbak" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P kofferbak" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "24CP-kofferbak (shuffle)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "2C6P kofferbak" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "C28P kofferbak" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P kofferbak" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P kofferbak" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P-kofferbak" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P kofferbak" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P kofferbak (shuffle)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P kofferbak" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P kofferbak" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P kofferbak" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Uitbraak" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P:2C1P-uitbraak" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P:4C1P-uitbraak" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P:6C1P-uitbraak" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P:8C1P-uitbraak (shuffle)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Koper - Gedraaid paar (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Koper - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Koper - Coaxiaal" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Fiber - Multimode" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Fiber - Single-modus" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Vezel - overig" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Verbonden" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Kilometers" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Meters" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Centimeters" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Mijlen" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Feet" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Redundant" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Een fase" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Drie fase" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Uitgeschakeld" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Defect" @@ -3788,17 +3768,17 @@ msgstr "Is volledige diepte" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC-adres" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Heeft een primair IP-adres" @@ -3936,7 +3916,7 @@ msgid "Is primary" msgstr "Is primair" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "802.1Q-modus" @@ -3953,8 +3933,8 @@ msgstr "Toegewezen VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3965,18 +3945,18 @@ msgstr "Toegewezen VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3993,10 +3973,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -4010,11 +3990,11 @@ msgstr "VLAN-vertaalbeleid (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "VLAN-vertaalbeleid" @@ -4063,7 +4043,7 @@ msgstr "Primair MAC-adres (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Primair MAC-adres" @@ -4123,7 +4103,7 @@ msgstr "Voedingspaneel (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4193,7 +4173,7 @@ msgstr "Tijdzone" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4264,11 +4244,6 @@ msgstr "Inbouwdiepte" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Gewicht" @@ -4301,7 +4276,7 @@ msgstr "Buitenafmetingen" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Dimensies" @@ -4353,7 +4328,7 @@ msgstr "Luchtstroom" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Rek" @@ -4406,11 +4381,10 @@ msgstr "Schema" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profiel" @@ -4420,7 +4394,7 @@ msgstr "Profiel" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Moduletype" @@ -4443,8 +4417,8 @@ msgstr "VM-rol" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Configuratiesjabloon" @@ -4466,10 +4440,10 @@ msgstr "Rol van het apparaat" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Platform" @@ -4481,13 +4455,13 @@ msgstr "Platform" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4495,7 +4469,7 @@ msgstr "Cluster" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Configuratie" @@ -4519,7 +4493,7 @@ msgstr "Moduletype" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Label" @@ -4569,8 +4543,8 @@ msgid "Maximum draw" msgstr "Maximale trekking" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Maximaal stroomverbruik (watt)" @@ -4579,8 +4553,8 @@ msgid "Allocated draw" msgstr "Toegewezen loting" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Toegewezen stroomverbruik (watt)" @@ -4595,23 +4569,23 @@ msgid "Feed leg" msgstr "Voer de poot in" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Alleen voor beheer" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "PoE-modus" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "PoE-type" @@ -4627,7 +4601,7 @@ msgid "Module" msgstr "Module" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4638,14 +4612,14 @@ msgstr "Contexten van virtuele apparaten" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Snelheid" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4658,25 +4632,25 @@ msgstr "Modus" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "VLAN-groep" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "VLAN zonder label" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Getagde VLAN's" @@ -4691,7 +4665,7 @@ msgstr "Getagde VLAN's verwijderen" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "VLAN voor Q-in-Q-service" @@ -4701,26 +4675,26 @@ msgid "Wireless LAN group" msgstr "Draadloze LAN-groep" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Draadloze LAN's" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Addressing" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Operatie" @@ -4731,16 +4705,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Gerelateerde interfaces" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "802.1Q-omschakeling" @@ -5028,13 +5002,13 @@ msgstr "Elektrische fase (voor driefasige circuits)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Interface voor ouders" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Overbrugde interface" @@ -5183,13 +5157,13 @@ msgstr "Ouderapparaat met toegewezen interface (indien aanwezig)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Virtuele machine" @@ -5348,13 +5322,13 @@ msgstr "Primaire IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "IPv6-adres met prefixlengte, bijvoorbeeld 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5363,34 +5337,11 @@ msgstr "" "De gelabelde VLAN's ({vlans}) moeten tot dezelfde site behoren als het " "bovenliggende apparaat/VM van de interface, of ze moeten globaal zijn" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Kan een module met tijdelijke aanduidingen niet installeren in een " -"modulecompartiment zonder gedefinieerde positie." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Kan een module met tijdelijke aanduidingswaarden niet installeren in een " -"modulelaurierboom {level} in een boom, maar {tokens} tijdelijke aanduidingen" -" gegeven." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Kan niet adopteren {model} {name} omdat het al bij een module hoort" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "EEN {model} genoemd {name} bestaat al" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5478,7 +5429,7 @@ msgstr "Heeft contexten voor virtuele apparaten" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Clustergroep" @@ -5494,7 +5445,7 @@ msgstr "Bezet" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Verbinding" @@ -5502,8 +5453,7 @@ msgstr "Verbinding" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Soort" @@ -5512,12 +5462,12 @@ msgid "Mgmt only" msgstr "Alleen voor beheer" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "802.1Q-modus" @@ -5533,7 +5483,7 @@ msgstr "Kanaalfrequentie (MHz)" msgid "Channel width (MHz)" msgstr "Kanaalbreedte (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Zendvermogen (dBm)" @@ -5583,9 +5533,9 @@ msgstr "Soort bereik" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5864,11 +5814,11 @@ msgstr "VM-interface" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5940,7 +5890,7 @@ msgid "profile" msgstr "profiel" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5962,44 +5912,44 @@ msgstr "kabel" msgid "cables" msgstr "kabels" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Moet een eenheid specificeren bij het instellen van een kabellengte" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "" "Moet A- en B-aansluitingen definiëren bij het aanmaken van een nieuwe kabel." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Kan geen verschillende soorten aansluitingen aansluiten op hetzelfde " "uiteinde van de kabel." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Incompatibele beëindigingstypen: {type_a} en {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "" "A- en B-aansluitingen kunnen geen verbinding maken met hetzelfde object." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "einde" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "kabelafsluiting" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "kabelaansluitingen" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -6008,7 +5958,7 @@ msgstr "" "Kan geen kabel aansluiten op {obj_parent} > {obj} omdat het als verbonden is" " gemarkeerd." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6017,62 +5967,62 @@ msgstr "" "Dubbele beëindiging gevonden voor {app_label}.{model} {termination_id}: " "kabel {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kabels kunnen niet worden aangesloten op {type_display} interfaces" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Circuitafsluitingen die zijn aangesloten op het netwerk van een provider " "zijn mogelijk niet bekabeld." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "is actief" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "is compleet" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "is gesplitst" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "kabelpad" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "kabelpaden" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Alle oorspronkelijke beëindigingen moeten aan dezelfde link worden " "toegevoegd" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Alle tussentijdse beëindigingen moeten hetzelfde beëindigingstype hebben" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Alle mid-span afsluitingen moeten hetzelfde bovenliggende object hebben" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Alle verbindingen moeten via de kabel of draadloos zijn" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Alle links moeten overeenkomen met het eerste linktype" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6081,18 +6031,18 @@ msgstr "" "{module} wordt geaccepteerd als vervanging voor de positie van het " "modulecompartiment wanneer deze is gekoppeld aan een moduletype." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Fysiek label" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Componentsjablonen kunnen niet naar een ander apparaattype worden " "verplaatst." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6100,7 +6050,7 @@ msgstr "" "Een componentsjabloon kan niet worden gekoppeld aan zowel een apparaattype " "als een moduletype." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6108,134 +6058,134 @@ msgstr "" "Een componentsjabloon moet gekoppeld zijn aan een apparaattype of een " "moduletype." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "sjabloon voor consolepoort" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "sjablonen voor consolepoorten" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "poortsjabloon voor consoleserver" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "poortsjablonen voor consoleservers" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maximale trekking" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "toegewezen gelijkspel" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "sjabloon voor voedingspoort" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "sjablonen voor voedingspoorten" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "De toegewezen trekking mag niet hoger zijn dan de maximale trekking " "({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "voerbeen" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fase (voor driefasige voedingen)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "sjabloon voor stopcontact" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "sjablonen voor stopcontacten" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Voedingspoort voor ouders ({power_port}) moet tot hetzelfde apparaattype " "behoren" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Voedingspoort voor ouders ({power_port}) moet tot hetzelfde moduletype " "behoren" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "alleen beheer" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "bridge-interface" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "draadloze rol" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "interfacesjabloon" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "interfacesjablonen" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Bridge-interface ({bridge}) moet tot hetzelfde apparaattype behoren" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Bridge-interface ({bridge}) moet tot hetzelfde moduletype behoren" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Achterpoort ({rear_port}) moet tot hetzelfde apparaattype behoren" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "standen" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "sjabloon voor de voorpoort" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "sjablonen voor de voorpoort" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6244,15 +6194,15 @@ msgstr "" "Het aantal posities mag niet minder zijn dan het aantal toegewezen sjablonen" " voor de achterpoort ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "sjabloon voor de achterpoort" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "sjablonen voor achterpoorten" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6261,35 +6211,35 @@ msgstr "" "Het aantal posities mag niet minder zijn dan het aantal toegewezen " "frontpoortsjablonen ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "positie" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identificatie waarnaar moet worden verwezen bij het hernoemen van " "geïnstalleerde componenten" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "sjabloon voor modulebay" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "sjablonen voor modulebay" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "sjabloon voor apparaatvak" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "sjablonen voor apparaatruimte" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6298,21 +6248,21 @@ msgstr "" "De rol van het apparaattype van het subapparaat ({device_type}) moet op " "„parent” zijn ingesteld om apparaatbays toe te staan." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "onderdeel-ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Onderdeel-ID toegewezen door de fabrikant" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "sjabloon voor inventarisitems" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "sjablonen voor inventarisitems" @@ -6371,84 +6321,84 @@ msgstr "" msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modellen moeten een eigenschap parent_object declareren" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Fysiek poorttype" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "snelheid" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Poortsnelheid in bits per seconde" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "consolepoort" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "consolepoorten" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "console-serverpoort" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "console-serverpoorten" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "voedingspoort" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "voedingspoorten" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "stopcontact" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "stopcontacten" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Voedingspoort voor ouders ({power_port}) moet tot hetzelfde apparaat behoren" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "-modus" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q-tagging-strategie" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "bovenliggende interface" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN zonder label" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "gelabelde VLAN's" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6456,15 +6406,15 @@ msgstr "gelabelde VLAN's" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "primair MAC-adres" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Alleen Q-in-Q-interfaces mogen een service-VLAN specificeren." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6473,80 +6423,80 @@ msgstr "" "MAC-adres {mac_address} is toegewezen aan een andere interface " "({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "LAG van de ouders" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Deze interface wordt alleen gebruikt voor beheer buiten de band" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "snelheid (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "tweezijdig" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-bits wereldwijde naam" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "draadloos kanaal" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "kanaalfrequentie (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Ingevuld per geselecteerd kanaal (indien ingesteld)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "zendvermogen (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "draadloze LAN's" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interface" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfaces" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} op interfaces kan geen kabel worden aangesloten." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" "{display_type} interfaces kunnen niet als verbonden worden gemarkeerd." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Een interface kan niet zijn eigen ouder zijn." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Alleen virtuele interfaces mogen aan een bovenliggende interface worden " "toegewezen." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6555,7 +6505,7 @@ msgstr "" "De geselecteerde ouderinterface ({interface}) hoort bij een ander apparaat " "({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6564,7 +6514,7 @@ msgstr "" "De geselecteerde ouderinterface ({interface}) behoort tot {device}, dat geen" " deel uitmaakt van een virtueel chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6573,7 +6523,7 @@ msgstr "" "De geselecteerde bridge-interface ({bridge}) hoort bij een ander apparaat " "({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6582,15 +6532,15 @@ msgstr "" "De geselecteerde bridge-interface ({interface}) behoort tot {device}, dat " "geen deel uitmaakt van een virtueel chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Virtuele interfaces kunnen geen bovenliggende LAG-interface hebben." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Een LAG-interface kan niet zijn eigen ouder zijn." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6598,7 +6548,7 @@ msgstr "" "De geselecteerde LAG-interface ({lag}) hoort bij een ander apparaat " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6607,34 +6557,34 @@ msgstr "" "De geselecteerde LAG-interface ({lag}) behoort tot {device}, dat geen deel " "uitmaakt van een virtueel chassis {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanaal mag alleen worden ingesteld op draadloze interfaces." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "De kanaalfrequentie mag alleen worden ingesteld op draadloze interfaces." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "Kan geen aangepaste frequentie specificeren met een geselecteerd kanaal." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "De kanaalbreedte kan alleen worden ingesteld op draadloze interfaces." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Kan geen aangepaste breedte specificeren als het kanaal is geselecteerd." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "De interfacemodus ondersteunt een niet-gelabeld VLAN niet." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6643,20 +6593,20 @@ msgstr "" "Het VLAN zonder label ({untagged_vlan}) moet tot dezelfde site behoren als " "het bovenliggende apparaat van de interface, of het moet globaal zijn." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Achterpoort ({rear_port}) moet tot hetzelfde apparaat behoren" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "poort voor" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "poorten voor" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6665,15 +6615,15 @@ msgstr "" "Het aantal posities mag niet minder zijn dan het aantal toegewezen poorten " "aan de achterkant ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "poort achter" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "poorten achter" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6682,39 +6632,39 @@ msgstr "" "Het aantal posities mag niet minder zijn dan het aantal toegewezen poorten " "aan de voorkant ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "modulevak" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "modulevakken" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Een modulecompartiment mag niet behoren tot een module die erin is " "geïnstalleerd." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "apparaatvak" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "bays voor apparaten" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Dit type apparaat ({device_type}) ondersteunt geen apparaatsleuven." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Kan een apparaat niet op zichzelf installeren." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6722,62 +6672,62 @@ msgstr "" "Kan het opgegeven apparaat niet installeren; het apparaat is al " "geïnstalleerd in {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "Rol van het inventarisitem" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "Rollen van inventarisitems" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "serienummer" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "tag voor bedrijfsmiddelen" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Een unieke tag die wordt gebruikt om dit item te identificeren" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "ontdekt" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Dit item is automatisch ontdekt" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "inventarisitem" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "inventarisartikelen" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Kan zichzelf niet als ouder toewijzen." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "" "Het item van de bovenliggende inventaris behoort niet tot hetzelfde " "apparaat." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Kan een inventarisitem met afhankelijke kinderen niet verplaatsen" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Kan inventarisitem niet toewijzen aan component op een ander apparaat" @@ -7676,10 +7626,10 @@ msgstr "Bereikbaar" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7691,8 +7641,7 @@ msgid "VMs" msgstr "VM's" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7795,7 +7744,7 @@ msgstr "Locatie van het apparaat" msgid "Device Site" msgstr "Website van het apparaat" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Modulebaai" @@ -7855,7 +7804,7 @@ msgstr "MAC-adressen" msgid "FHRP Groups" msgstr "FHRP-groepen" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7871,7 +7820,7 @@ msgstr "Alleen beheer" msgid "VDCs" msgstr "VDC's" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Virtueel circuit" @@ -7944,7 +7893,7 @@ msgid "Module Types" msgstr "Moduletypen" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platformen" @@ -8045,7 +7994,7 @@ msgstr "Apparaatvakken" msgid "Module Bays" msgstr "Modulebays" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Aantal modules" @@ -8123,7 +8072,7 @@ msgstr "{} millimeter" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Serienummer" @@ -8133,7 +8082,7 @@ msgid "Maximum weight" msgstr "Maximaal gewicht" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Beheer" @@ -8181,18 +8130,28 @@ msgstr "{} EEN" msgid "Primary for interface" msgstr "Primair voor interface" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Leden van Virtual Chassis" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Energiegebruik" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN-vertaling" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Kan een module met tijdelijke aanduidingswaarden niet installeren in een " +"modulelaurierboom {level} niveaus diep maar {tokens} tijdelijke aanduidingen" +" gegeven." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8233,9 +8192,8 @@ msgid "Application Services" msgstr "Applicatieservices" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Context van de configuratie" @@ -8244,7 +8202,7 @@ msgstr "Context van de configuratie" msgid "Render Config" msgstr "Render-configuratie" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8308,7 +8266,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "Verwijderd {device} vanaf een virtueel chassis {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Onbekende gerelateerde object (en): {name}" @@ -8317,12 +8275,16 @@ msgstr "Onbekende gerelateerde object (en): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Het wijzigen van het type aangepaste velden wordt niet ondersteund." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Er bestaat al een scriptmodule met deze bestandsnaam." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Planning is niet ingeschakeld voor dit script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "De geplande tijd moet in de toekomst liggen." @@ -8499,8 +8461,7 @@ msgid "White" msgstr "Wit" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8648,12 +8609,12 @@ msgstr "Bladwijzers" msgid "Show your personal bookmarks" msgstr "Laat je persoonlijke bladwijzers zien" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Onbekend actietype voor een evenementregel: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "" @@ -8674,7 +8635,7 @@ msgid "Group (name)" msgstr "Groep (naam)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Clustertype" @@ -8694,7 +8655,7 @@ msgid "Tenant group (slug)" msgstr "Tenant groep (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Tag" @@ -8707,29 +8668,30 @@ msgid "Has local config context data" msgstr "Heeft contextgegevens voor de lokale configuratie" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Groepsnaam" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Verplicht" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Moet uniek zijn" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "UI zichtbaar" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "UI bewerkbaar" @@ -8738,10 +8700,12 @@ msgid "Is cloneable" msgstr "Is kloonbaar" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimumwaarde" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maximale waarde" @@ -8750,8 +8714,7 @@ msgid "Validation regex" msgstr "Validatieregex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Gedrag" @@ -8765,7 +8728,8 @@ msgstr "Knopklasse" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME-type" @@ -8787,31 +8751,29 @@ msgstr "Als bijlage" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Gedeeld" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP-methode" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL van de payload" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL-verificatie" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Geheim" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA-bestandspad" @@ -8965,9 +8927,9 @@ msgstr "Toegewezen objecttype" msgid "The classification of entry" msgstr "De classificatie van binnenkomst" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8976,12 +8938,12 @@ msgid "Comments" msgstr "Opmerkingen" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Gebruikers" @@ -8991,9 +8953,8 @@ msgstr "" "Gebruikersnamen gescheiden door komma's, tussen dubbele aanhalingstekens" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9038,6 +8999,7 @@ msgid "Content types" msgstr "Inhoudstypen" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP-inhoudstype" @@ -9109,7 +9071,7 @@ msgstr "Tenant groepen" msgid "The type(s) of object that have this custom field" msgstr "Het (de) objecttype (s) dat dit aangepaste veld heeft" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Standaardwaarde" @@ -9120,7 +9082,6 @@ msgstr "" "objecten)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filter voor gerelateerde objecten" @@ -9128,8 +9089,7 @@ msgstr "Filter voor gerelateerde objecten" msgid "Specify query parameters as a JSON object." msgstr "Specificeer queryparameters als een JSON-object." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Aangepast veld" @@ -9161,12 +9121,11 @@ msgstr "" "Voer één keuze per regel in. Voor elke keuze kan een optioneel label worden " "gespecificeerd door er een dubbele punt aan toe te voegen. Voorbeeld:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Aangepaste veldkeuzeset" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Aangepaste link" @@ -9196,8 +9155,7 @@ msgstr "" msgid "Template code" msgstr "Sjablooncode" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Sjabloon exporteren" @@ -9208,14 +9166,13 @@ msgstr "" "De inhoud van de sjabloon wordt ingevuld via de externe bron die hieronder " "is geselecteerd." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Opgeslagen filter" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Bestellen" @@ -9240,13 +9197,11 @@ msgid "A notification group specify at least one user or group." msgstr "" "In een meldingsgroep wordt ten minste één gebruiker of groep gespecificeerd." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP-aanvraag" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9266,8 +9221,7 @@ msgstr "" "Voer parameters in om door te geven aan de actie JSON formaat." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Regel voor evenementen" @@ -9279,8 +9233,7 @@ msgstr "Triggers" msgid "Notification group" msgstr "Meldingsgroep" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Contextprofiel configureren" @@ -9375,7 +9328,7 @@ msgstr "contextprofielen configureren" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "gewicht" @@ -9940,7 +9893,7 @@ msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" "Activeer de verificatie van SSL-certificaten. Voorzichtig uitschakelen!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA-bestandspad" @@ -10248,9 +10201,8 @@ msgstr "Ontslaan" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10273,7 +10225,6 @@ msgid "Related Object Type" msgstr "Gerelateerd objecttype" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Keuzeset" @@ -10282,12 +10233,10 @@ msgid "Is Cloneable" msgstr "Is kloonbaar" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimumwaarde" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maximale waarde" @@ -10297,9 +10246,9 @@ msgstr "Validatie Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10316,50 +10265,44 @@ msgid "Order Alphabetically" msgstr "Alfabetisch ordenen" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nieuw venster" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME-type" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Bestandsnaam" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "bestandsextensie" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Als bijlage" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Gesynchroniseerd" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Afbeelding" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Bestandsnaam" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Grootte" @@ -10367,38 +10310,36 @@ msgstr "Grootte" msgid "Table Name" msgstr "Naam van de tabel" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Lees" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL-validatie" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL-verificatie" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Soorten gebeurtenissen" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automatische synchronisatie ingeschakeld" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Apparaat rollen" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Opmerkingen (kort)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Lijn" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Methode" @@ -10412,7 +10353,7 @@ msgstr "" "Probeer de widget opnieuw te configureren of verwijder deze van je " "dashboard." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10425,11 +10366,78 @@ msgstr "" msgid "Custom Fields" msgstr "Aangepaste velden" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Een afbeelding bijvoegen" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Kloonbaar" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Gewicht van het scherm" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Validatieregels" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Reguliere expressie" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Gerelateerde objecten" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Gebruikt door" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Gehechtheid" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Toegewezen modellen" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Tabelconfiguratie" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Kolommen worden weergegeven" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Meldingsgroep" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Toegestane objecttypen" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Typen artikelen met tags" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Afbeeldingsbijlage" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Ouderobject" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Journaalpost" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10467,33 +10475,69 @@ msgstr "Ongeldig kenmerk”{name}„op aanvraag" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Ongeldig kenmerk”{name}„voor {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Tekst koppelen" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL van de link" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Milieuparameters" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Sjabloon" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Aanvullende kopteksten" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Lichaamssjabloon" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Voorwaarden" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Getagde objecten" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON-schema" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "" "Er is een fout opgetreden tijdens het renderen van de sjabloon: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Je dashboard is opnieuw ingesteld." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Widget toegevoegd: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Bijgewerkte widget: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Widget verwijderd: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Fout bij het verwijderen van de widget: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Kan script niet uitvoeren: het RQ-werkproces wordt niet uitgevoerd." @@ -10725,7 +10769,7 @@ msgstr "FHRP-groep (ID)" msgid "IP address (ID)" msgstr "IP-adres (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP-adres" @@ -10831,7 +10875,7 @@ msgstr "Is een pool" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Behandel als volledig gebruikt" @@ -10844,7 +10888,7 @@ msgstr "VLAN-toewijzing" msgid "Treat as populated" msgstr "Behandel als gevuld" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS-naam" @@ -11377,186 +11421,186 @@ msgstr "" "Prefixen mogen aggregaten niet overlappen. {prefix} omvat een bestaand " "aggregaat ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "rollen" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefix" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "IPv4- of IPv6-netwerk met masker" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Operationele status van deze prefix" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "De primaire functie van deze prefix" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "is een pool" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Alle IP-adressen binnen deze prefix worden als bruikbaar beschouwd" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "merk gebruikt" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefixen" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Kan geen prefix aanmaken met het masker /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "globale tabel" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Duplicaat prefix gevonden in {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "startadres" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4- of IPv6-adres (met masker)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "eindadres" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Operationele status van deze serie" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "De primaire functie van dit assortiment" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "markering ingevuld" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Voorkom het aanmaken van IP-adressen binnen dit bereik" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Rapporteer de ruimte als volledig benut" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP-bereik" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP-bereiken" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "" "De versies van het begin- en eindpunt van het IP-adres moeten overeenkomen" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "De IP-adresmaskers voor het begin en einde moeten overeenkomen" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Het eindadres moet groter zijn dan het beginadres ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Gedefinieerde adressen overlappen met het bereik {overlapping_range} in VRF " "{vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Het gedefinieerde bereik overschrijdt de maximale ondersteunde grootte " "({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adres" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "De operationele status van dit IP-adres" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "De functionele rol van dit IP-adres" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (binnen)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "Het IP-adres waarvoor dit adres het „externe” IP-adres is" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Hostnaam of FQDN (niet hoofdlettergevoelig)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP-adressen" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Kan geen IP-adres aanmaken met een masker /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} is een netwerk-ID, die mogelijk niet aan een interface is toegewezen." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" "{ip} is een uitzendadres dat mogelijk niet aan een interface is toegewezen." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Duplicaat IP-adres gevonden in {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Kan geen IP-adres aanmaken {ip} binnen bereik {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11564,7 +11608,7 @@ msgstr "" "Kan het IP-adres niet opnieuw toewijzen terwijl dit is aangewezen als het " "primaire IP-adres voor het bovenliggende object" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11572,7 +11616,7 @@ msgstr "" "Kan het IP-adres niet opnieuw toewijzen terwijl dit is aangewezen als het " "OOB-IP-adres voor het bovenliggende object" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Alleen IPv6-adressen kunnen een SLAAC-status krijgen" @@ -12157,8 +12201,9 @@ msgstr "Grijs" msgid "Dark Grey" msgstr "Donkergrijs" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Standaard" @@ -13096,67 +13141,67 @@ msgstr "Kan na initialisatie geen winkels aan het register toevoegen" msgid "Cannot delete stores from registry" msgstr "Kan winkels niet verwijderen uit het register" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Tsjechisch" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Deens" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Duits" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Engels" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Spaans" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Frans" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italiaans" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japans" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Lets" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Nederlands" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Pools" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Portugees" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Russisch" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Turks" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Oekraïens" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Chinees" @@ -13184,6 +13229,7 @@ msgid "Field" msgstr "Veld" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Waarde" @@ -13215,11 +13261,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS-coördinaten" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Gerelateerde objecten" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13470,7 +13511,6 @@ msgid "Toggle All" msgstr "Alles omschakelen" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tafel" @@ -13526,13 +13566,9 @@ msgstr "Toegewezen groepen" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13540,6 +13576,7 @@ msgstr "Toegewezen groepen" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Geen" @@ -13702,7 +13739,7 @@ msgid "Changed" msgstr "Gewijzigd" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bytes" @@ -13755,12 +13792,11 @@ msgid "Job retention" msgstr "Behoud van een baan" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Het gegevensbestand dat aan dit object is gekoppeld, is verwijderd" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Gegevens gesynchroniseerd" @@ -14446,12 +14482,6 @@ msgstr "Rack toevoegen" msgid "Add Site" msgstr "Site toevoegen" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Gehechtheid" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14609,82 +14639,10 @@ msgstr "" "inloggegevens van NetBox en een query uit te voeren voor " "%(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON-schema" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Milieuparameters" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Sjabloon" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Naam van de groep" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Moet uniek zijn" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Kloonbaar" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Standaardwaarde" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Zoekgewicht" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filterlogica" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Gewicht van het scherm" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "UI zichtbaar" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "UI bewerkbaar" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Validatieregels" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Reguliere expressie" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Knopklasse" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Toegewezen modellen" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Tekst koppelen" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL van de link" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "keuzes" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14755,10 +14713,6 @@ msgstr "Er is een probleem opgetreden bij het ophalen van de RSS-feed" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Voorwaarden" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Gepland voor" @@ -14780,14 +14734,6 @@ msgstr "Uitgang" msgid "Download" msgstr "Downloaden" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Afbeeldingsbijlage" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Ouderobject" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Aan het laden" @@ -14836,24 +14782,6 @@ msgstr "" "Ga aan de slag met een script maken " "van een geüpload bestand of een gegevensbron." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Journaalpost" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Gemaakt door" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Meldingsgroep" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Geen toegewezen" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "De lokale configuratiecontext overschrijft alle broncontexten" @@ -14909,6 +14837,16 @@ msgstr "De uitvoer van de sjabloon is leeg" msgid "No configuration template has been assigned." msgstr "Er is geen configuratiesjabloon toegewezen." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Geen toegewezen" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Elke" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14945,14 +14883,6 @@ msgstr "Drempel voor loggen" msgid "All" msgstr "Alles" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Tabelconfiguratie" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Kolommen worden weergegeven" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14970,46 +14900,6 @@ msgstr "Omhoog gaan" msgid "Move Down" msgstr "Naar beneden gaan" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Getagde artikelen" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Toegestane objecttypen" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Elke" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Typen artikelen met tags" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Getagde objecten" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP-methode" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP-inhoudstype" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL-verificatie" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Aanvullende kopteksten" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Lichaamssjabloon" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Creatie in bulk" @@ -15083,10 +14973,6 @@ msgstr "Veldopties" msgid "Accessor" msgstr "Accessor" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "keuzes" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Importwaarde" @@ -15599,6 +15485,7 @@ msgstr "Virtuele CPU's" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Geheugen" @@ -15608,8 +15495,8 @@ msgid "Disk Space" msgstr "Schijfruimte" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Hulpbronnen" @@ -16679,13 +16566,13 @@ msgstr "" "Dit object is gewijzigd sinds de weergave van het formulier. Raadpleeg het " "wijzigingslogboek van het object voor meer informatie." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Bereik”{value}„is ongeldig." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16694,38 +16581,38 @@ msgstr "" "Ongeldig bereik: eindwaarde ({end}) moet groter zijn dan de beginwaarde " "({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Dubbele of conflicterende kolomkop voor”{field}„" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Dubbele of conflicterende kolomkop voor”{header}„" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Rij {row}: Verwacht {count_expected} columns maar gevonden {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Onverwachte kolomkop”{field}„gevonden." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Kolom”{field}„is geen gerelateerd object; kan geen punten gebruiken" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Ongeldig gerelateerd objectkenmerk voor kolom”{field}„: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Vereiste kolomkop”{header}„niet gevonden." @@ -16743,7 +16630,7 @@ msgid "Missing required value for static query param: '{static_params}'" msgstr "" "Ontbrekende vereiste waarde voor statische queryparameter: '{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automatisch ingesteld)" @@ -16942,30 +16829,42 @@ msgstr "Clustertype (ID)" msgid "Cluster (ID)" msgstr "Cluster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Begin bij het opstarten" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU's" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Geheugen (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Schijf" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Schijf (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Geheugen ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Grootte (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Schijf ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Maat ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16987,15 +16886,15 @@ msgstr "Toegewezen cluster" msgid "Assigned device within cluster" msgstr "Toegewezen apparaat binnen cluster" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Clustertype" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Clustergroep" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -17004,26 +16903,21 @@ msgstr "" "{device} behoort tot een andere {scope_field} ({device_scope}) dan het " "cluster ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Optioneel kan deze VM worden vastgezet op een specifiek hostapparaat binnen " "het cluster" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Site/cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "De schijfgrootte wordt beheerd via de koppeling van virtuele schijven." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Schijf" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "clustertype" @@ -17071,12 +16965,12 @@ msgid "start on boot" msgstr "start bij het opstarten" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "geheugen (MB)" +msgid "memory" +msgstr "geheugen" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "schijf (MB)" +msgid "disk" +msgstr "schijf" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17161,10 +17055,6 @@ msgstr "" "Het VLAN zonder label ({untagged_vlan}) moet tot dezelfde site behoren als " "de bovenliggende virtuele machine van de interface, of moet globaal zijn." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "grootte (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "virtuele schijf" diff --git a/netbox/translations/pl/LC_MESSAGES/django.mo b/netbox/translations/pl/LC_MESSAGES/django.mo index e14b72454a03d2e172aa6abcec74b3d7e9196057..143a7509bdee4f626913b23b650e8f5931e233ab 100644 GIT binary patch delta 74632 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 e%OMZ{g?a|p6h^i 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 bzYi%xCcg1Y;2*O7v)>s1kW#<>{G$IKXJwf9 delta 74972 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�{tfI_l9q< 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 {obj} because it is marked as " @@ -5984,7 +5935,7 @@ msgstr "" "Nie można podłączyć kabla do {obj_parent} > {obj} ponieważ jest oznaczony " "jako połączony." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5993,59 +5944,59 @@ msgstr "" "Znaleziono duplikat zakończenia {app_label}.{model} {termination_id}: kabel " "{cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kable nie mogą być zakończone {type_display} interfejsy" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Zakończenia obwodów podłączone do sieci dostawcy nie mogą być okablowane." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "jest aktywny" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "jest kompletny" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "jest podzielony" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "ścieżka kabla" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "ścieżki kablowe" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Wszystkie początkowe zakończenia muszą być dołączone do tego samego " "połączenia" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "Wszystkie pośrednie zakończenia muszą mieć ten sam typ zakończenia" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "Wszystkie pośrednie zakończenia muszą mieć ten sam obiekt nadrzędny" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Wszystkie łącza muszą być kablowe lub bezprzewodowe" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Wszystkie linki muszą być zgodne z pierwszym typem łącza" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6054,17 +6005,17 @@ msgstr "" "{module} jest akceptowany jako substytucja położenia wnęki modułu po " "dołączeniu do typu modułu." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Etykieta fizyczna" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Szablony komponentów nie mogą być przenoszone do innego typu urządzenia." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6072,142 +6023,142 @@ msgstr "" "Szablonu komponentu nie można skojarzyć zarówno z typem urządzenia, jak i " "typem modułu." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "" "Szablon komponentu musi być skojarzony z typem urządzenia lub typem modułu." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "szablon portu konsoli" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "szablony portów konsoli" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "szablon portu serwera konsoli" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "szablony portów serwera konsoli" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maksymalne losowanie" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "przydzielone losowanie" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "szablon portu zasilania" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "szablony portów zasilania" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Przydzielone losowanie nie może przekroczyć maksymalnego losowania " "({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "noga karmiąca" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Faza (dla zasilania trójfazowego)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "szablon gniazdka elektrycznego" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "szablony gniazdek elektrycznych" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Nadrzędny port zasilania ({power_port}) musi należeć do tego samego typu " "urządzenia" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Nadrzędny port zasilania ({power_port}) musi należeć do tego samego typu " "modułu" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "Tylko zarządzanie" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "interfejs mostka" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "rola bezprzewodowa" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "szablon interfejsu" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "szablony interfejsu" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Interfejs mostka ({bridge}) musi należeć do tego samego typu urządzenia" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Interfejs mostka ({bridge}) musi należeć do tego samego typu modułu" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Tylny port ({rear_port}) musi należeć do tego samego typu urządzenia" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "położenia" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "szablon portu przedniego" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "szablony portów przednich" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6216,15 +6167,15 @@ msgstr "" "Liczba pozycji nie może być mniejsza niż liczba zmapowanych szablonów " "tylnych portów ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "szablon tylnego portu" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "szablony tylnych portów" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6233,35 +6184,35 @@ msgstr "" "Liczba pozycji nie może być mniejsza niż liczba zmapowanych szablonów portów" " przednich ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "położenie" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Identyfikator, do którego należy odwołać się podczas zmiany nazwy " "zainstalowanych komponentów" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "szablon modułu wnęki" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "szablony modułów" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "szablon kieszeni urządzenia" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "szablony kieszeni urządzeń" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6270,21 +6221,21 @@ msgstr "" "Rola podurządzenia typu urządzenia ({device_type}) musi być ustawiony na " "„rodzic”, aby zezwolić na gniazda urządzeń." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID części" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identyfikator części przypisany przez producenta" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "szablon pozycji inwentaryzacji" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "szablony pozycji inwentaryzacji" @@ -6337,85 +6288,85 @@ msgstr "Pozycje zakończenia kabla nie mogą być ustawiane bez kabla." msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modele muszą zadeklarować właściwość parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Typ portu fizycznego" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "prędkość" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Prędkość portu w bitach na sekundę" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "port konsoli" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "porty konsoli" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "port serwera konsoli" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "porty serwera konsoli" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "port zasilania" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "porty zasilania" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "gniazdo zasilania" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "gniazdka elektryczne" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Nadrzędny port zasilania ({power_port}) musi należeć do tego samego " "urządzenia" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "tryb" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Strategia tagowania IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "interfejs macierzysty" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "nieoznaczone sieci VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "oznaczone sieci VLAN" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6423,15 +6374,15 @@ msgstr "oznaczone sieci VLAN" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "główny adres MAC" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Tylko interfejsy Q-in-Q mogą określać usługę VLAN." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6439,77 +6390,77 @@ msgid "" msgstr "" "Adres MAC {mac_address} jest przypisany do innego interfejsu ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "macierzysta LGD" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Ten interfejs jest używany tylko do zarządzania poza pasmem" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "Prędkość (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "dupleks" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-bitowa nazwa światowa" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "kanał bezprzewodowy" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "częstotliwość kanału (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Wypełnione przez wybrany kanał (jeśli ustawiony)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "moc nadawania (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "bezprzewodowe sieci LAN" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interfejs" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfejsy" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} Interfejsy nie mogą mieć podłączonego kabla." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} interfejsów nie można oznaczyć jako połączonych." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Interfejs nie może być własnym rodzicem." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Do interfejsu nadrzędnego można przypisać tylko interfejsy wirtualne." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6518,7 +6469,7 @@ msgstr "" "Wybrany interfejs nadrzędny ({interface}) należy do innego urządzenia " "({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6527,7 +6478,7 @@ msgstr "" "Wybrany interfejs nadrzędny ({interface}) należy do {device}, która nie jest" " częścią wirtualnej obudowy {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6535,7 +6486,7 @@ msgid "" msgstr "" "Wybrany interfejs mostu ({bridge}) należy do innego urządzenia ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6544,21 +6495,21 @@ msgstr "" "Wybrany interfejs mostu ({interface}) należy do {device}, która nie jest " "częścią wirtualnej obudowy {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Interfejsy wirtualne nie mogą mieć nadrzędnego interfejsu LAG." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Interfejs LAG nie może być własnym rodzicem." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "Wybrany interfejs LAG ({lag}) należy do innego urządzenia ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6567,35 +6518,35 @@ msgstr "" "Wybrany interfejs LAG ({lag}) należy do {device}, która nie jest częścią " "wirtualnej obudowy {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanał można ustawić tylko na interfejsach bezprzewodowych." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "Częstotliwość kanału może być ustawiona tylko na interfejsach " "bezprzewodowych." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Nie można określić niestandardowej częstotliwości z wybranym kanałem." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "Szerokość kanału może być ustawiona tylko na interfejsach bezprzewodowych." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Nie można określić niestandardowej szerokości przy zaznaczonym kanale." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Tryb interfejsu nie obsługuje nieoznaczonej sieci VLAN." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6604,20 +6555,20 @@ msgstr "" "Nieoznaczona sieć VLAN ({untagged_vlan}) musi należeć do tej samej witryny " "co urządzenie nadrzędne interfejsu lub musi być globalne." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Tylny port ({rear_port}) musi należeć do tego samego urządzenia" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "port przedni" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "porty przednie" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6626,15 +6577,15 @@ msgstr "" "Liczba pozycji nie może być mniejsza niż liczba zmapowanych tylnych portów " "({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "tylny port" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "tylne porty" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6643,37 +6594,37 @@ msgstr "" "Liczba pozycji nie może być mniejsza niż liczba zmapowanych portów przednich" " ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "wnęka modułu" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "kieszenie modułowe" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Wnęka modułu nie może należeć do zainstalowanego w nim modułu." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "wnęka urządzenia" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "kieszenie na urządzenia" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Ten typ urządzenia ({device_type}) nie obsługuje wnęk na urządzenia." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Nie można zainstalować urządzenia w sobie." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6681,61 +6632,61 @@ msgstr "" "Nie można zainstalować określonego urządzenia; urządzenie jest już " "zainstalowane w {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "rola pozycji zapasów" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "role pozycji zapasów" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "numer seryjny" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "znacznik zasobu" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Unikalny znacznik używany do identyfikacji tego elementu" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "odkryty" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Ten przedmiot został automatycznie wykryty" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "pozycja inwentaryzacyjna" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "pozycje inwentaryzacyjne" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Nie można przypisać siebie jako rodzica." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Nadrzędny element ekwipunku nie należy do tego samego urządzenia." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "" "Nie można przenieść pozycji inwentarza z pozostałymi dziećmi na utrzymaniu" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Nie można przypisać elementu zapasów do komponentu na innym urządzeniu" @@ -7630,10 +7581,10 @@ msgstr "Osiągnięty" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7645,8 +7596,7 @@ msgid "VMs" msgstr "maszyny wirtualne" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7749,7 +7699,7 @@ msgstr "Lokalizacja urządzenia" msgid "Device Site" msgstr "Witryna urządzenia" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Moduł Bay" @@ -7809,7 +7759,7 @@ msgstr "Adresy MAC" msgid "FHRP Groups" msgstr "Grupy FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7825,7 +7775,7 @@ msgstr "Tylko zarządzanie" msgid "VDCs" msgstr "VDC" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Wirtualny obwód" @@ -7898,7 +7848,7 @@ msgid "Module Types" msgstr "Rodzaje modułów" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platformy" @@ -7999,7 +7949,7 @@ msgstr "Wnęsy na urządzenia" msgid "Module Bays" msgstr "Wnęsy modułowe" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Liczba modułów" @@ -8077,7 +8027,7 @@ msgstr "{} milimetrów" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Numer seryjny" @@ -8087,7 +8037,7 @@ msgid "Maximum weight" msgstr "Maksymalna waga" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Zarządzanie" @@ -8135,18 +8085,27 @@ msgstr "{} A" msgid "Primary for interface" msgstr "Główny dla interfejsu" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Wirtualne elementy podwozia" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Wykorzystanie mocy" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Tłumaczenie VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Nie można zainstalować modułu z wartościami zastępczymi w drzewie laurowym " +"modułu {level} poziomy głębokie, ale {tokens} podane symbole zastępcze." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8187,9 +8146,8 @@ msgid "Application Services" msgstr "Usługi aplikacyjne" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Kontekst konfiguracji" @@ -8198,7 +8156,7 @@ msgstr "Kontekst konfiguracji" msgid "Render Config" msgstr "Konfiguracja renderowania" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8261,7 +8219,7 @@ msgstr "Nie można usunąć urządzenia głównego {device} z wirtualnego podwoz msgid "Removed {device} from virtual chassis {chassis}" msgstr "Usunięto {device} z wirtualnego podwozia {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Nieznany obiekt (y) powiązany (y): {name}" @@ -8270,12 +8228,16 @@ msgstr "Nieznany obiekt (y) powiązany (y): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Zmiana typu pól niestandardowych nie jest obsługiwana." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Moduł skryptu o tej nazwie już istnieje." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Planowanie nie jest włączone dla tego skryptu." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Zaplanowany czas musi być w przyszłości." @@ -8452,8 +8414,7 @@ msgid "White" msgstr "Biały" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Hook internetowy" @@ -8602,12 +8563,12 @@ msgstr "Zakładki" msgid "Show your personal bookmarks" msgstr "Pokaż swoje osobiste zakładki" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Nieznany typ akcji dla reguły zdarzenia: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Nie można importować pociągu zdarzeń {name} błąd: {error}" @@ -8627,7 +8588,7 @@ msgid "Group (name)" msgstr "Grupa (nazwa)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Typ klastra" @@ -8647,7 +8608,7 @@ msgid "Tenant group (slug)" msgstr "Grupa najemców (identyfikator)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Etykietka" @@ -8660,29 +8621,30 @@ msgid "Has local config context data" msgstr "Posiada lokalne dane kontekstowe konfiguracji" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Nazwa grupy" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Wymagane" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Musi być wyjątkowy" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Widoczny interfejs użytkownika" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Edytowalny interfejs użytkownika" @@ -8691,10 +8653,12 @@ msgid "Is cloneable" msgstr "Jest klonowalny" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimalna wartość" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maksymalna wartość" @@ -8703,8 +8667,7 @@ msgid "Validation regex" msgstr "Walidacja regex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Zachowanie" @@ -8718,7 +8681,8 @@ msgstr "Klasa przycisków" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Typ MIME" @@ -8740,31 +8704,29 @@ msgstr "Jako załącznik" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Udostępnione" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Metoda HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Adres URL ładunku" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Weryfikacja SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Tajemnica" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Ścieżka pliku CA" @@ -8914,9 +8876,9 @@ msgstr "Przypisany typ obiektu" msgid "The classification of entry" msgstr "Klasyfikacja wpisu" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8925,12 +8887,12 @@ msgid "Comments" msgstr "Komentarze" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Użytkownicy" @@ -8940,9 +8902,8 @@ msgstr "" "Nazwy użytkowników oddzielone przecinkami, otoczone podwójnymi cudzysłowami" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8987,6 +8948,7 @@ msgid "Content types" msgstr "Typy treści" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Typ zawartości HTTP" @@ -9058,7 +9020,7 @@ msgstr "Grupy najemców" msgid "The type(s) of object that have this custom field" msgstr "Typ (y) obiektu, który ma to pole niestandardowe" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Wartość domyślna" @@ -9067,7 +9029,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Typ powiązanego obiektu (tylko dla pól obiektu/wielu obiektów)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Powiązany filtr obiektów" @@ -9075,8 +9036,7 @@ msgstr "Powiązany filtr obiektów" msgid "Specify query parameters as a JSON object." msgstr "Określ parametry zapytania jako obiekt JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Pole niestandardowe" @@ -9108,12 +9068,11 @@ msgstr "" "Wprowadź jeden wybór na linię. Opcjonalną etykietę można określić dla " "każdego wyboru, dodając ją dwukropkiem. Przykład:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Niestandardowy zestaw wyboru pola" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Niestandardowe łącze" @@ -9142,8 +9101,7 @@ msgstr "" msgid "Template code" msgstr "Kod szablonu" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Szablon eksportu" @@ -9153,14 +9111,13 @@ msgid "Template content is populated from the remote source selected below." msgstr "" "Zawartość szablonu jest wypełniana ze zdalnego źródła wybranego poniżej." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Zapisany filtr" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Zamawianie" @@ -9184,13 +9141,11 @@ msgstr "Wybrane kolumny" msgid "A notification group specify at least one user or group." msgstr "Grupa powiadomień określa co najmniej jednego użytkownika lub grupę." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Żądanie HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9210,8 +9165,7 @@ msgstr "" "Wprowadź parametry, które mają zostać przekazane do akcji w JSON format." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Reguła zdarzenia" @@ -9223,8 +9177,7 @@ msgstr "Wyzwalacze" msgid "Notification group" msgstr "Grupa powiadomień" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Konfiguracja profilu kontekstowego" @@ -9316,7 +9269,7 @@ msgstr "konfigurowanie profili kontekstowych" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "waga" @@ -9873,7 +9826,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Włącz weryfikację certyfikatu SSL. Wyłącz ostrożnie!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Ścieżka pliku CA" @@ -10178,9 +10131,8 @@ msgstr "Odrzucić" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10203,7 +10155,6 @@ msgid "Related Object Type" msgstr "Powiązany typ obiektu" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Zestaw wyboru" @@ -10212,12 +10163,10 @@ msgid "Is Cloneable" msgstr "Jest klonowalny" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimalna wartość" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maksymalna wartość" @@ -10227,9 +10176,9 @@ msgstr "Walidacja Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10246,50 +10195,44 @@ msgid "Order Alphabetically" msgstr "Uporządkuj alfabetycznie" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nowe okno" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Typ MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Nazwa pliku" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Rozszerzenie pliku" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Jako załącznik" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Zsynchronizowane" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Obraz" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Nazwa pliku" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Rozmiar" @@ -10297,38 +10240,36 @@ msgstr "Rozmiar" msgid "Table Name" msgstr "Nazwa tabeli" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Przeczytaj" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Walidacja SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Weryfikacja SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Rodzaje zdarzeń" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Automatyczna synchronizacja włączona" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Role urządzenia" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Komentarze (krótkie)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linia" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Metoda" @@ -10341,7 +10282,7 @@ msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "" "Spróbuj ponownie skonfigurować widżet lub usuń go z pulpitu nawigacyjnego." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10354,11 +10295,78 @@ msgstr "" msgid "Custom Fields" msgstr "Pola niestandardowe" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Dołącz obraz" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonowalne" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Waga wyświetlacza" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Reguły walidacji" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Wyrażenie regularne" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Powiązane obiekty" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Używany przez" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Załącznik" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Przypisane modele" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Konfiguracja tabeli" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Wyświetlane kolumny" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Grupa powiadomień" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Dozwolone typy obiektów" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Oznaczone typy przedmiotów" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Załącznik obrazu" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Obiekt nadrzędny" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Wpis do dziennika" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10396,32 +10404,68 @@ msgstr "Nieprawidłowy atrybut”{name}„na żądanie" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Nieprawidłowy atrybut”{name}„dla {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Tekst linku" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "Adres URL łącza" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Parametry środowiska" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Szablon" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Dodatkowe nagłówki" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Szablon ciała" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Warunki" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Oznaczone obiekty" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Schemat JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Wystąpił błąd podczas renderowania szablonu: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Twój pulpit nawigacyjny został zresetowany." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Dodano widżet: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Zaktualizowano widżet: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Usunięty widget: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Błąd usuwania widżetu: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Nie można uruchomić skryptu: proces roboczy RQ nie działa." @@ -10654,7 +10698,7 @@ msgstr "Grupa FHRP (ID)" msgid "IP address (ID)" msgstr "Adres IP (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "Adres IP" @@ -10760,7 +10804,7 @@ msgstr "Jest basenem" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Traktuj jako w pełni wykorzystany" @@ -10773,7 +10817,7 @@ msgstr "Przypisanie sieci VLAN" msgid "Treat as populated" msgstr "Traktuj jako zaludniony" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Nazwa DNS" @@ -11302,184 +11346,184 @@ msgstr "" "Prefiksy nie mogą nakładać się na agregaty IP. {prefix} obejmuje istniejące " "agregat IP ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "ról" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefiks" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Sieć IPv4 lub IPv6 z maską" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Status operacyjny tego prefiksu" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Podstawowa funkcja tego prefiksu" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "jest basenem" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Wszystkie adresy IP w tym prefiksie są uważane za użyteczne" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "użyty znak" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefiksy" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Nie można utworzyć prefiksu z maską /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "tabela globalna" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Zduplikowany prefiks znaleziony w {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "adres początkowy" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Adres IPv4 lub IPv6 (z maską)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "adres końcowy" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Stan operacyjny tego zakresu" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Podstawowa funkcja tego zakresu" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "znak zapełniony" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Zapobiegaj tworzeniu adresów IP w tym zakresie" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Przestrzeń raportu w pełni wykorzystana" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Zakres IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Zakresy IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Początkowe i kończące wersje adresu IP muszą być zgodne" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Początkowe i kończące maski adresów IP muszą być zgodne" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Adres końcowy musi być większy niż adres początkowy ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Zdefiniowane adresy pokrywają się z zakresem {overlapping_range} w VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Zdefiniowany zakres przekracza maksymalny obsługiwany rozmiar ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "przemawiać" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Status operacyjny niniejszego IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Funkcjonalna rola tego IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (wewnątrz)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "IP, dla którego ten adres jest „zewnętrznym” adresem IP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Nazwa hosta lub FQDN (nie rozróżnia wielkości liter)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "Adresy IP" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Nie można utworzyć adresu IP z maską /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} jest identyfikatorem sieci, który może nie być przypisany do " "interfejsu." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" "{ip} jest adresem nadawczym, który nie może być przypisany do interfejsu." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Zduplikowany adres IP znaleziony w {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Nie można utworzyć adresu IP {ip} zasięg wewnętrzny {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11487,7 +11531,7 @@ msgstr "" "Nie można ponownie przypisać adresu IP, gdy jest on wyznaczony jako główny " "adres IP dla obiektu nadrzędnego" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11495,7 +11539,7 @@ msgstr "" "Nie można ponownie przypisać adresu IP, gdy jest on oznaczony jako adres IP " "OOB dla obiektu nadrzędnego" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Tylko adresy IPv6 mogą mieć przypisany status SLAAC" @@ -12078,8 +12122,9 @@ msgstr "Szary" msgid "Dark Grey" msgstr "Ciemny szary" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Domyślnie" @@ -13013,67 +13058,67 @@ msgstr "Nie można dodać sklepów do rejestru po zainicjowaniu" msgid "Cannot delete stores from registry" msgstr "Nie można usunąć sklepów z rejestru" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "czeski" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "duński" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "niemiecki" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "angielski" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "hiszpański" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "francuski" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "włoski" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "japoński" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "łotewski" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "holenderski" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "polski" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "portugalski" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "rosyjski" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "turecki" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "ukraiński" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "chiński" @@ -13101,6 +13146,7 @@ msgid "Field" msgstr "Pole" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Wartość" @@ -13132,11 +13178,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Współrzędne GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Powiązane obiekty" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13382,7 +13423,6 @@ msgid "Toggle All" msgstr "Przełącz wszystko" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabela" @@ -13438,13 +13478,9 @@ msgstr "Przydzielone grupy" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13452,6 +13488,7 @@ msgstr "Przydzielone grupy" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Żaden" @@ -13614,7 +13651,7 @@ msgid "Changed" msgstr "Zmieniono" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bajty" @@ -13667,12 +13704,11 @@ msgid "Job retention" msgstr "Zatrzymanie pracy" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Plik danych powiązany z tym obiektem został usunięty" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Zsynchronizowane dane" @@ -14354,12 +14390,6 @@ msgstr "Dodaj szafę" msgid "Add Site" msgstr "Dodaj witrynę" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Załącznik" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14516,82 +14546,10 @@ msgstr "" "sprawdzić, łącząc się z bazą danych za pomocą poświadczeń NetBox i wydając " "zapytanie dotyczące %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Schemat JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Parametry środowiska" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Szablon" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Nazwa grupy" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Musi być unikalny" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonowalne" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Wartość domyślna" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Szukaj wagi" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filtruj logikę" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Waga wyświetlacza" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Widoczny interfejs użytkownika" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Edytowalny interfejs użytkownika" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Reguły walidacji" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Wyrażenie regularne" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Klasa przycisków" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Przypisane modele" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Tekst linku" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "Adres URL łącza" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "wyborów" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14662,10 +14620,6 @@ msgstr "Wystąpił problem z pobieraniem kanału RSS" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Warunki" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Zaplanowane na" @@ -14687,14 +14641,6 @@ msgstr "Wyjście" msgid "Download" msgstr "Pobierz" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Załącznik obrazu" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Obiekt nadrzędny" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Ładowanie" @@ -14743,24 +14689,6 @@ msgstr "" "Zacznij od utworzenia skryptu " "z przesłanego pliku lub źródła danych." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Wpis do dziennika" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Utworzony przez" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Grupa powiadomień" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Brak przypisanych" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Kontekst konfiguracji lokalnej zastępuje wszystkie konteksty źródłowe" @@ -14816,6 +14744,16 @@ msgstr "Wyjście szablonu jest puste" msgid "No configuration template has been assigned." msgstr "Nie przypisano szablonu konfiguracji." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Brak przypisanych" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Dowolny" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14852,14 +14790,6 @@ msgstr "Próg dziennika" msgid "All" msgstr "Wszystko" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Konfiguracja tabeli" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Wyświetlane kolumny" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14877,46 +14807,6 @@ msgstr "Przesuń w górę" msgid "Move Down" msgstr "Przesuń w dół" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Oznaczone przedmioty" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Dozwolone typy obiektów" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Dowolny" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Oznaczone typy przedmiotów" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Oznaczone obiekty" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Metoda HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Typ zawartości HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Weryfikacja SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Dodatkowe nagłówki" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Szablon ciała" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Tworzenie zbiorcze" @@ -14990,10 +14880,6 @@ msgstr "Opcje pola" msgid "Accessor" msgstr "Akcesoria" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "wyborów" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Wartość importu" @@ -15506,6 +15392,7 @@ msgstr "Wirtualne procesory" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Pamięć" @@ -15515,8 +15402,8 @@ msgid "Disk Space" msgstr "Miejsce na dysku" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Zasoby" @@ -16583,13 +16470,13 @@ msgstr "" "Ten obiekt został zmodyfikowany od czasu renderowania formularza. " "Szczegółowe informacje można znaleźć w dzienniku zmian obiektu." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Zasięg”{value}„jest nieważny." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16598,40 +16485,40 @@ msgstr "" "Nieprawidłowy zakres: wartość końcowa ({end}) musi być większa niż wartość " "początkowa ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Zduplikowany lub sprzeczny nagłówek kolumny dla”{field}„" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Zduplikowany lub sprzeczny nagłówek kolumny dla”{header}„" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Wiersz {row}: Oczekiwane {count_expected} kolumny, ale znalezione " "{count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Nieoczekiwany nagłówek kolumny”{field}„znaleziono." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Kolumna”{field}„nie jest obiektem powiązanym; nie może używać kropek" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Nieprawidłowy atrybut obiektu powiązanego dla kolumny”{field}„: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Wymagany nagłówek kolumny”{header}„Nie znaleziono." @@ -16650,7 +16537,7 @@ msgstr "" "Brak wymaganej wartości dla parametru zapytania statycznego: " "'{static_params}”" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(automatycznie ustawiane)" @@ -16848,30 +16735,42 @@ msgstr "Typ klastra (ID)" msgid "Cluster (ID)" msgstr "Klaster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Zacznij od rozruchu" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "VCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Pamięć (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Dysk" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Dysk (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Pamięć ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Rozmiar (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Dysk ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Rozmiar ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16893,15 +16792,15 @@ msgstr "Przypisany klaster" msgid "Assigned device within cluster" msgstr "Przypisane urządzenie w klastrze" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Typ klastra" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Grupa klastrów" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16910,25 +16809,20 @@ msgstr "" "{device} należy do innego {scope_field} ({device_scope}) niż klaster " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Opcjonalnie przypiąć tę maszynę wirtualną do określonego urządzenia hosta w " "klastrze" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Witryna/Klaster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Rozmiar dysku jest zarządzany poprzez załączenie dysków wirtualnych." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Dysk" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "typ klastra" @@ -16976,12 +16870,12 @@ msgid "start on boot" msgstr "zacznij od rozruchu" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "pamięć (MB)" +msgid "memory" +msgstr "pamięć" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "dysk (MB)" +msgid "disk" +msgstr "dysk" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17064,10 +16958,6 @@ msgstr "" "Nieoznaczona sieć VLAN ({untagged_vlan}) musi należeć do tej samej witryny " "co macierzysta maszyna wirtualna interfejsu lub musi być globalna." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "rozmiar (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "dysk wirtualny" diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo index f1de0204f5d0e2936c33ae8c2c299c0ab78f2aa4..184bc213fac6eaa3b20db3cc0effc609f29c538a 100644 GIT binary patch delta 74733 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�w7Y%!B+V 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 U8#PK8KTh&Pl&}gv{GP`CKQuhJ_5c6? delta 75139 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 diff --git a/netbox/translations/pt/LC_MESSAGES/django.po b/netbox/translations/pt/LC_MESSAGES/django.po index dc653e53d..970a0ef2f 100644 --- a/netbox/translations/pt/LC_MESSAGES/django.po +++ b/netbox/translations/pt/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n" @@ -49,9 +49,9 @@ msgstr "Sua senha foi alterada com sucesso." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -65,21 +65,20 @@ msgstr "Provisionamento" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Ativo" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Offline" @@ -92,7 +91,7 @@ msgstr "Em Desprovisionamento" msgid "Decommissioned" msgstr "Descomissionado" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -204,13 +203,13 @@ msgstr "Grupo de sites (slug)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -334,7 +333,7 @@ msgstr "Busca" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -468,8 +467,8 @@ msgstr "ID do serviço" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Cor" @@ -480,7 +479,7 @@ msgstr "Cor" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -508,15 +507,15 @@ msgstr "Cor" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -562,7 +561,7 @@ msgstr "Conta do provedor" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -578,12 +577,12 @@ msgstr "Conta do provedor" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -641,12 +640,12 @@ msgstr "Status" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -731,10 +730,10 @@ msgstr "Parâmetros do serviço" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -759,8 +758,8 @@ msgstr "Atributos" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -783,30 +782,19 @@ msgstr "Locação" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Descrição" @@ -858,7 +846,7 @@ msgstr "Detalhes da Terminação" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -912,10 +900,10 @@ msgstr "Rede do provedor" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1003,7 +991,7 @@ msgstr "Função operacional" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1016,7 +1004,7 @@ msgstr "Função operacional" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1055,8 +1043,8 @@ msgstr "Interface" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1110,12 +1098,12 @@ msgstr "Local" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1140,9 +1128,9 @@ msgstr "Proprietário" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1166,9 +1154,9 @@ msgstr "Contatos" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Região" @@ -1185,9 +1173,9 @@ msgstr "Região" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Grupo de sites" @@ -1196,7 +1184,7 @@ msgstr "Grupo de sites" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Conta" @@ -1205,9 +1193,9 @@ msgid "Term Side" msgstr "Lado da Terminação" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1235,10 +1223,10 @@ msgstr "Atribuição" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1279,13 +1267,13 @@ msgid "Group Assignment" msgstr "Atribuição do Grupo" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1312,14 +1300,14 @@ msgstr "ID única do circuito" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1414,7 +1402,7 @@ msgstr "ID do patch panel e número da(s) porta(s)" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1448,7 +1436,7 @@ msgstr "" #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1543,8 +1531,8 @@ msgstr "circuito virtual" msgid "virtual circuits" msgstr "circuitos virtuais" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "função" @@ -1581,10 +1569,10 @@ msgstr "terminações de circuito virtual" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1592,26 +1580,14 @@ msgstr "terminações de circuito virtual" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1624,8 +1600,8 @@ msgstr "terminações de circuito virtual" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1709,7 +1685,7 @@ msgstr "Quantidade de ASNs" msgid "Terminations" msgstr "Terminações" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1743,7 +1719,7 @@ msgstr "Terminações" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1753,10 +1729,10 @@ msgstr "Terminações" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1830,7 +1806,7 @@ msgstr "Concluído" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Falhou" @@ -1890,14 +1866,13 @@ msgid "30 days" msgstr "30 dias" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2011,7 +1986,7 @@ msgid "User name" msgstr "Nome de usuário" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2020,17 +1995,13 @@ msgstr "Nome de usuário" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Habilitado" @@ -2040,12 +2011,11 @@ msgid "Sync interval" msgstr "intervalo de sincronização" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parâmetros" @@ -2058,16 +2028,15 @@ msgstr "Ignorar regras" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Origem de dados" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Arquivo" @@ -2085,10 +2054,9 @@ msgstr "Criação" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Tipo de Objeto" @@ -2133,9 +2101,7 @@ msgstr "Concluído antes" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2144,8 +2110,8 @@ msgid "User" msgstr "Usuário" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Tempo" @@ -2158,8 +2124,7 @@ msgid "Before" msgstr "Antes" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Ação" @@ -2201,7 +2166,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Elevações de Rack" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2344,20 +2309,20 @@ msgid "Config revision #{id}" msgstr "Revisão da configuração #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2366,13 +2331,13 @@ msgstr "tipo" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2440,7 +2405,7 @@ msgstr "" msgid "last updated" msgstr "última atualização" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "caminho" @@ -2448,7 +2413,8 @@ msgstr "caminho" msgid "File path relative to the data source's root" msgstr "Caminho de arquivo relativo à raiz da origem de dados" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "tamanho" @@ -2599,12 +2565,11 @@ msgstr "Nome Completo" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Objeto" @@ -2614,7 +2579,7 @@ msgid "Request ID" msgstr "ID da Solicitação" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Mensagem" @@ -2643,7 +2608,7 @@ msgstr "Última atualização" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2659,8 +2624,8 @@ msgstr "Intervalo" msgid "Log Entries" msgstr "Entradas de Log" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Nível" @@ -2780,11 +2745,10 @@ msgid "Backend" msgstr "Backend" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2843,8 +2807,7 @@ msgstr "Tarefa {id} enfileirada para sincronizar {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Dados" @@ -2909,11 +2872,24 @@ msgstr "O modo de interface não suporta VLAN não tagueada" msgid "Interface mode does not support tagged vlans" msgstr "O modo de interface não suporta VLAN tagueada" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Posição (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Não é possível instalar o módulo com valores de espaço reservado em um " +"compartimento de módulo sem a sua posição definida." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "Um {model} com nome {name} já existe." + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "ID do Facility" @@ -2941,8 +2917,8 @@ msgid "Staging" msgstr "Em Preparação" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Em Descomissionamento" @@ -3008,7 +2984,7 @@ msgstr "Obsoleto" msgid "Millimeters" msgstr "Milímetros" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Polegadas" @@ -3045,14 +3021,14 @@ msgstr "Obsoleto" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3080,7 +3056,7 @@ msgid "Rear" msgstr "Traseira" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Preparado" @@ -3113,7 +3089,7 @@ msgid "Top to bottom" msgstr "De cima para baixo" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Passivo" @@ -3142,8 +3118,8 @@ msgid "Proprietary" msgstr "Proprietário" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Outros" @@ -3156,350 +3132,354 @@ msgstr "ITA/Internacional" msgid "Physical" msgstr "Físico" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Virtual" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Wireless" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Interfaces virtuais" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Bridge" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Link Aggregation (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "FastEthernet (100 Mbps)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "GigabitEthernet (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2.5/5Gbps Ethernet" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10Gbps Ethernet" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25Gbps Ethernet" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40Gbps Ethernet" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50Gbps Ethernet" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100Gbps Ethernet" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200Gbps Ethernet" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400Gbps Ethernet" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800Gbps Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "Ethernet de 1,6 Tbps" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Transceivers conectáveis" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Backplane Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Celular" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Serial" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Coaxial" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Empilhamento" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Half" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Full" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Automático" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Acesso" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Tagueada" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Tagueada (Todos)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "Padrão IEEE" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "24V passivo (2 pares)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "24V passivo (4 pares)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "48V passivo (2 pares)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "48V passivo (4 pares)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Cabo Metálico" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Fibra Óptica" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Único" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1C1P" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1C4P" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "1C6P" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "1C8P" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1C12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Tronco" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "Tronco 2C1P" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "Tronco 2C2P" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "Tronco 2C4P" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "Tronco 2C4P (aleatório)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "Tronco 2C6P" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "Tronco 2C8P" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "Tronco 2C12P" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "Tronco 4C1P" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "Tronco 4C2P" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "Tronco 4C4P" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "Tronco 4C4P (aleatório)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "Tronco 4C6P" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "Tronco 4C8P" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "Tronco 8C4P" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Breakout" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "Ruptura de 1C2P: 2C1P" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P:4C1P breakout" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P:6C1P breakout" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P:8C1P breakout (aleatório)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Cobre - par trançado (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Cobre - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Cobre - Coaxial" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Fibra - Multimodo" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Fibra - Monomodo" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Fibra - Outros" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Conectado" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Quilômetros" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Metros" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Centímetros" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Milhas" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Pés" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Redundante" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Monofásico" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Trifásico" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Desativado" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Defeituoso" @@ -3783,17 +3763,17 @@ msgstr "É full-depth" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "Endereço MAC" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Possui IP primário" @@ -3931,7 +3911,7 @@ msgid "Is primary" msgstr "É primário" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "Modo 802.1Q" @@ -3948,8 +3928,8 @@ msgstr "VLAN ID Designada " #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3960,18 +3940,18 @@ msgstr "VLAN ID Designada " #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3988,10 +3968,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -4005,11 +3985,11 @@ msgstr "Política de Tradução de VLAN (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "Política de Tradução de VLAN" @@ -4060,7 +4040,7 @@ msgstr "Endereço MAC primário (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Endereço MAC primário" @@ -4120,7 +4100,7 @@ msgstr "Quadro de alimentação (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4190,7 +4170,7 @@ msgstr "Fuso horário" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4261,11 +4241,6 @@ msgstr "Profundidade de montagem" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Peso" @@ -4298,7 +4273,7 @@ msgstr "Dimensões externas" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Dimensões" @@ -4350,7 +4325,7 @@ msgstr "Fluxo de Ar" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Rack" @@ -4403,11 +4378,10 @@ msgstr "Esquema" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Perfil" @@ -4417,7 +4391,7 @@ msgstr "Perfil" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Tipo de Módulo" @@ -4440,8 +4414,8 @@ msgstr "Função da VM" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Modelo de configuração" @@ -4463,10 +4437,10 @@ msgstr "Função do dispositivo" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Plataforma" @@ -4478,13 +4452,13 @@ msgstr "Plataforma" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4492,7 +4466,7 @@ msgstr "Cluster" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Configuração" @@ -4516,7 +4490,7 @@ msgstr "Tipo de módulo" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Rótulo" @@ -4566,8 +4540,8 @@ msgid "Maximum draw" msgstr "Consumo máximo" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Consumo máximo de energia (Watts)" @@ -4576,8 +4550,8 @@ msgid "Allocated draw" msgstr "Consumo alocado" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Consumo de energia alocado (Watts)" @@ -4592,23 +4566,23 @@ msgid "Feed leg" msgstr "Ramal de alimentação" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Somente gerenciamento" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "Modo de Operação" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "Tipo de PoE" @@ -4624,7 +4598,7 @@ msgid "Module" msgstr "Módulo" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4635,14 +4609,14 @@ msgstr "Contextos de dispositivos virtuais" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Velocidade" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4655,25 +4629,25 @@ msgstr "Modo" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "Grupo de VLANs" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "VLAN Não Tagueada" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "VLANs Tagueadas" @@ -4688,7 +4662,7 @@ msgstr "Remover VLANs tagueadas" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "VLAN de Serviço Q-in-Q" @@ -4698,26 +4672,26 @@ msgid "Wireless LAN group" msgstr "Grupo da Rede Wireless" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Redes Wireless" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Endereçamento" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Operação" @@ -4728,16 +4702,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Interfaces Relacionadas" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "Comutação 802.1Q" @@ -5023,13 +4997,13 @@ msgstr "Fase (para circuitos trifásicos)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Interface pai" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Interface em bridge" @@ -5176,13 +5150,13 @@ msgstr "Dispositivo pai da interface associada (se houver)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Máquina virtual" @@ -5341,13 +5315,13 @@ msgstr "IPv6 Primário" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "Endereço IPv6 com tamanho de prefixo, por exemplo, 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5356,34 +5330,11 @@ msgstr "" "As VLANs tagueadas ({vlans}) devem pertencer ao mesmo site do dispositivo/VM" " pai da interface ou devem ser globais." -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Não é possível instalar o módulo com valores de espaço reservado em um " -"compartimento de módulo sem a sua posição definida." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Não é possível instalar o módulo com valores de espaço reservado no " -"compartimento de módulos {level} na árvore, pois foram fornecidos {tokens} " -"espaços reservados" - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Não é possível adotar {model} {name} pois já pertence a outro módulo." -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "Um {model} com nome {name} já existe." - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5471,7 +5422,7 @@ msgstr "Possui contextos de dispositivos virtuais" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Grupo de clusters" @@ -5487,7 +5438,7 @@ msgstr "Ocupado" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Conexão" @@ -5495,8 +5446,7 @@ msgstr "Conexão" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Tipo" @@ -5505,12 +5455,12 @@ msgid "Mgmt only" msgstr "Somente gerenciamento" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "Modo 802.1Q" @@ -5526,7 +5476,7 @@ msgstr "Frequência do canal (MHz)" msgid "Channel width (MHz)" msgstr "Largura do canal (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Potência de transmissão (dBm)" @@ -5576,9 +5526,9 @@ msgstr "Tipo de escopo" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5852,11 +5802,11 @@ msgstr "Interface de VM" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5929,7 +5879,7 @@ msgid "profile" msgstr "perfil" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5951,42 +5901,42 @@ msgstr "cabo" msgid "cables" msgstr "cabos" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Deve especificar uma unidade ao definir o comprimento do cabo" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "Terminações A e B devem ser definidas ao criar um novo cabo." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Não é possível conectar diferentes tipos de terminação à mesma extremidade " "do cabo." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Tipos de terminações incompatíveis: {type_a} e {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "As terminações A e B não podem se conectar ao mesmo objeto." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "fim" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "terminação de cabo" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "terminações de cabos" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -5995,7 +5945,7 @@ msgstr "" "Não é possível conectar um cabo entre {obj_parent} > {obj} porque está " "marcado como conectado." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6004,59 +5954,59 @@ msgstr "" "Terminação duplicada encontrada para {app_label}.{model} {termination_id}: " "cabo {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Os cabos não podem ser terminados em interfaces {type_display}" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "As terminações de circuito conectadas a uma rede de provedor não podem ser " "cabeadas." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "está ativo" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "está completo" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "é dividido" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "caminho do cabo" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "caminhos do cabos" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Todas as terminações de origem devem estar conectadas ao mesmo link" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Todas as terminações intermediárias devem ter o mesmo tipo de terminação" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "Todas as terminações intermediárias devem ter o mesmo objeto pai" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Todos os links devem ser cabo ou wireless" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Todos os links devem corresponder ao tipo do primeiro link" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6065,18 +6015,18 @@ msgstr "" "{module} é aceito como substituto para a posição do compartimento do módulo " "quando conectado a um tipo de módulo." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Rótulo físico" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "" "Os modelos de componentes não podem ser movidos para um tipo diferente de " "dispositivo." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6084,7 +6034,7 @@ msgstr "" "Um modelo de componente não pode ser associado a um tipo de dispositivo e " "módulo ao mesmo tempo." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6092,135 +6042,135 @@ msgstr "" "Um modelo de componente deve estar associado a um tipo de dispositivo ou a " "um tipo de módulo." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "modelo de porta de console" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "modelos de porta de console" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "modelo de porta de servidor de console" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "modelos de porta de servidor de console" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "consumo máximo" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "consumo alocado" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "modelo de porta de alimentação" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "modelos de porta de alimentação" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "O consumo alocado não pode exceder o consumo máximo ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "ramal de alimentação" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Fase (para alimentação trifásica)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "modelo de tomada elétrica" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "modelos de tomadas elétricas" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Porta de alimentação principal ({power_port}) deve pertencer ao mesmo tipo " "de dispositivo" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Porta de alimentação principal ({power_port}) deve pertencer ao mesmo tipo " "de módulo" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "somente gerenciamento" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "interface bridge" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "função do wireless" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "modelo de interface" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "modelos de interface" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Interface bridge ({bridge}) deve pertencer ao mesmo tipo de dispositivo" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Interface bridge ({bridge}) deve pertencer ao mesmo tipo de módulo" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" "Portas traseiras ({rear_port}) devem pertencer ao mesmo tipo de dispositivo" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "posições" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "modelo de porta frontal" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "modelos de porta frontal" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6229,15 +6179,15 @@ msgstr "" "O número de posições não podem ser menor que o número de modelos de portas " "traseiras mapeadas ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "modelo de porta traseira" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "modelos de porta traseira" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6246,33 +6196,33 @@ msgstr "" "O número de posições não pode ser menor que o número de modelos de portas " "frontais mapeadas ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "posição" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "Identificador a ser referenciado ao renomear componentes instalados" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "modelo de compartimento de módulo" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "modelos de compartimento de módulos" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "modelo de compartimento de dispositivos" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "modelos de compartimentos de dispositivos" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6281,21 +6231,21 @@ msgstr "" "Função do subdispositivo do tipo {device_type} deve ser definido como “pai” " "para permitir compartimentos de dispositivos." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "ID da peça" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Identificador da peça, designado pelo fabricante" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "modelo de item de inventário" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "modelos de itens de inventário" @@ -6351,85 +6301,85 @@ msgstr "As posições de terminação podem ser definidas sem um cabo." msgid "{class_name} models must declare a parent_object property" msgstr " Os modelos {class_name} devem declarar uma propriedade parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Tipo de porta física" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "velocidade" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Velocidade da porta em bits por segundo" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "porta de console" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "portas de console" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "porta de servidor de console" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "portas de servidor de console" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "porta de alimentação" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "portas de alimentação" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "tomada elétrica" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "tomadas elétricas" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Porta de alimentação principal ({power_port}) deve pertencer ao mesmo " "dispositivo" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "modo" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Estratégia de tagueamento IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "interface pai" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN não tagueada" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "VLANs tagueadas" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6437,15 +6387,15 @@ msgstr "VLANs tagueadas" msgid "Q-in-Q SVLAN" msgstr "SVLAN Q-in-Q" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "endereço MAC primário" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Somente as interfaces Q-in-Q podem especificar uma VLAN de serviço." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6453,77 +6403,77 @@ msgid "" msgstr "" "Endereço MAC {mac_address} já está atribuído para a interface ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "LAG pai" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Esta interface é usada somente para gerenciamento fora de banda" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "velocidade (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "duplex" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-bit World Wide Name" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "canal do wireless" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "frequência do canal (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Preenchido pelo canal selecionado (se definido)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "potência de transmissão (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "redes wireless" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "interface" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "interfaces" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "As interfaces {display_type} não podem ter um cabo conectado." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr " As interfaces {display_type}não podem ser marcadas como conectadas." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Uma interface não pode ser pai de si mesma." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Somente interfaces virtuais podem ser associadas a uma interface pai." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6532,7 +6482,7 @@ msgstr "" "A interface pai selecionada ({interface}) pertence a um dispositivo " "diferente ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6541,7 +6491,7 @@ msgstr "" "A interface pai selecionada ({interface}) pertence a {device}, que não faz " "parte do chassi virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6550,7 +6500,7 @@ msgstr "" "A interface bridge selecionada ({bridge}) pertence a um dispositivo " "diferente ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6559,15 +6509,15 @@ msgstr "" "A interface bridge selecionada ({interface}) pertence a {device}, que não " "faz parte do chassi virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Interfaces virtuais não podem ter uma interface LAG pai." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Uma interface LAG não pode ser pai de si mesma." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." @@ -6575,7 +6525,7 @@ msgstr "" "A interface LAG selecionada ({lag}) pertence a um dispositivo diferente " "({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6584,35 +6534,35 @@ msgstr "" "A interface LAG selecionada ({lag}) pertence a {device}, que não faz parte " "do chassi virtual {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "O canal pode ser configurado somente em interfaces wireless." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "A frequência do canal pode ser definida somente em interfaces wireless." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "" "Não é possível especificar a frequência personalizada com o canal " "selecionado." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "A largura do canal pode ser definida somente em interfaces wireless." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "" "Não é possível especificar a largura personalizada com o canal selecionado." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "O modo de interface não suporta uma VLAN não tagueada." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6621,20 +6571,20 @@ msgstr "" "A VLAN não tagueada ({untagged_vlan}) deve pertencer ao mesmo site do " "dispositivo pai da interface ou deve ser global." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Porta traseira ({rear_port}) deve pertencer ao mesmo dispositivo" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "porta frontal" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "portas frontais" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6643,15 +6593,15 @@ msgstr "" "O número de posições não pode ser menor que o número de portas traseiras " "mapeadas ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "porta traseira" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "portas traseiras" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6660,41 +6610,41 @@ msgstr "" "O número de posições não pode ser menor que o número de portas frontais " "mapeadas ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "compartimento de módulos" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "compartimentos de módulos" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "" "Um compartimento de módulo não pode pertencer a um módulo instalado dentro " "dele." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "compartimento de dispositivos" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "compartimentos de dispositivos" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Este tipo de dispositivo ({device_type}) não suporta compartimentos de " "dispositivos." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Não é possível instalar um dispositivo em si mesmo." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6702,61 +6652,61 @@ msgstr "" "Não é possível instalar o dispositivo especificado; o dispositivo já está " "instalado em {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "função do item de inventário" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "funções dos itens de inventário" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "número de série" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "etiqueta de ativo" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Uma etiqueta exclusiva usada para identificar este item" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "descoberto" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Este item foi descoberto automaticamente" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "item de inventário" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "itens de inventário" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Não é possível designar a si mesmo como pai." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "O item pai do inventário não pertence ao mesmo dispositivo." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "" "Não é possível mover um item de inventário com itens filhos dependentes" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Não é possível atribuir um item de inventário ao componente em outro " @@ -7652,10 +7602,10 @@ msgstr "Acessível" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7667,8 +7617,7 @@ msgid "VMs" msgstr "VMs" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7771,7 +7720,7 @@ msgstr "Localização do Dispositivo" msgid "Device Site" msgstr "Site do Dispositivo" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Compartimento de módulo" @@ -7831,7 +7780,7 @@ msgstr "Endereços MAC" msgid "FHRP Groups" msgstr "Grupos FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7847,7 +7796,7 @@ msgstr "Somente Gerenciamento" msgid "VDCs" msgstr "Contextos de Dispositivos Virtuais" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Circuito Virtual" @@ -7920,7 +7869,7 @@ msgid "Module Types" msgstr "Tipos de Módulos" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Plataformas" @@ -8021,7 +7970,7 @@ msgstr "Compartimentos de Dispositivos" msgid "Module Bays" msgstr "Compartimentos de Módulos" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Contagem de Módulos" @@ -8099,7 +8048,7 @@ msgstr "{} milímetros" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Número de série" @@ -8109,7 +8058,7 @@ msgid "Maximum weight" msgstr "Peso máximo" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Gestão" @@ -8157,18 +8106,28 @@ msgstr "{} UM" msgid "Primary for interface" msgstr "Primário para interface" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Membros do Chassi Virtual" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Utilização de Energia" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Tradução de VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Não é possível instalar o módulo com valores de espaço reservado em uma " +"árvore de compartimento do módulo {level} níveis profundos, mas {tokens} " +"marcadores de posição fornecidos." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8209,9 +8168,8 @@ msgid "Application Services" msgstr "Serviços de Aplicação" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Contexto de Configuração" @@ -8220,7 +8178,7 @@ msgstr "Contexto de Configuração" msgid "Render Config" msgstr "Renderização de Configuração" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8284,7 +8242,7 @@ msgstr "" msgid "Removed {device} from virtual chassis {chassis}" msgstr "Removido {device} do chassi virtual {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Objeto(s) relacionado(s) desconhecido(s): {name}" @@ -8293,12 +8251,16 @@ msgstr "Objeto(s) relacionado(s) desconhecido(s): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Alteração do tipo do campo customizado não é suportado." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Já existe um módulo de script com esse nome de arquivo." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "O agendamento não está habilitado para este script." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "O horário agendado deve ser no futuro." @@ -8475,8 +8437,7 @@ msgid "White" msgstr "Branco" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8627,12 +8588,12 @@ msgstr "Favoritos" msgid "Show your personal bookmarks" msgstr "Exibe seus favoritos pessoais" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Tipo de ação desconhecido para uma regra de evento: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Não é possível importar o pipeline de eventos {name}: {error}" @@ -8652,7 +8613,7 @@ msgid "Group (name)" msgstr "Grupo (nome)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Tipo de cluster" @@ -8672,7 +8633,7 @@ msgid "Tenant group (slug)" msgstr "Grupo de inquilinos (slug)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Etiqueta" @@ -8685,29 +8646,30 @@ msgid "Has local config context data" msgstr "Possui dados de contexto de configuração local" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Nome do grupo" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Obrigatório" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Deve ser único" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "UI visível" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "UI editável" @@ -8716,10 +8678,12 @@ msgid "Is cloneable" msgstr "É clonável" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Valor mínimo" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Valor máximo" @@ -8728,8 +8692,7 @@ msgid "Validation regex" msgstr "Expressão regular de validação" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Comportamento" @@ -8743,7 +8706,8 @@ msgstr "Classe de botão" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Tipo MIME" @@ -8765,31 +8729,29 @@ msgstr "Como anexo" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Compartilhado" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Método HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL do payload" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Verificação SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Senha" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Caminho do arquivo CA" @@ -8940,9 +8902,9 @@ msgstr "Tipo de objeto associado" msgid "The classification of entry" msgstr "A classificação da entrada" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8951,12 +8913,12 @@ msgid "Comments" msgstr "Comentários" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Usuários" @@ -8965,9 +8927,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Nomes de usuários separados por vírgulas, envoltos por aspas duplas." #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9012,6 +8973,7 @@ msgid "Content types" msgstr "Tipos de conteúdo" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Tipo de conteúdo HTTP" @@ -9083,7 +9045,7 @@ msgstr "Grupos de inquilinos" msgid "The type(s) of object that have this custom field" msgstr "O(s) tipo(s) de objeto que possuem este campo customizado." -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Valor padrão" @@ -9093,7 +9055,6 @@ msgstr "" "Tipo do objeto relacionado (somente para campos de objeto/vários objetos)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Filtro de objeto relacionado" @@ -9101,8 +9062,7 @@ msgstr "Filtro de objeto relacionado" msgid "Specify query parameters as a JSON object." msgstr "Especifique os parâmetros da consulta como um objeto JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Campo personalizado" @@ -9134,12 +9094,11 @@ msgstr "" "Insira uma opção por linha. Um rótulo opcional pode ser especificado para " "cada opção anexando-o com dois pontos. Exemplo:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Conjunto de Opções de Campo Personalizado" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Link Personalizado" @@ -9169,8 +9128,7 @@ msgstr "" msgid "Template code" msgstr "Modelo de código" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Modelo de Exportação" @@ -9181,14 +9139,13 @@ msgstr "" "O conteúdo do modelo é preenchido a partir da fonte remota selecionada " "abaixo." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Filtro Salvo" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Ordenação" @@ -9213,13 +9170,11 @@ msgid "A notification group specify at least one user or group." msgstr "" "Um grupo de notificações deve especificar pelo menos um usuário ou grupo." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Solicitação HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9239,8 +9194,7 @@ msgstr "" "Insira os parâmetros a serem passados para a ação em formato JSON." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Regra de Evento" @@ -9252,8 +9206,7 @@ msgstr "Triggers" msgid "Notification group" msgstr "Grupo de notificação" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Perfil do Contexto de Configuração" @@ -9345,7 +9298,7 @@ msgstr "perfis de contexto de configuração" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "peso" @@ -9905,7 +9858,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Ative a verificação do certificado SSL. Desative com cuidado!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Caminho do arquivo CA" @@ -10212,9 +10165,8 @@ msgstr "Descartar" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10237,7 +10189,6 @@ msgid "Related Object Type" msgstr "Tipo de Objeto Relacionado" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Conjunto de Opções" @@ -10246,12 +10197,10 @@ msgid "Is Cloneable" msgstr "É Clonável" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Valor Mínimo" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Valor Máximo" @@ -10261,9 +10210,9 @@ msgstr "Expressão Regular de Validação" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10280,50 +10229,44 @@ msgid "Order Alphabetically" msgstr "Ordenar Alfabeticamente" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Nova Janela" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME Type" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Nome do Arquivo" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Extensão do arquivo" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Como Anexo" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Sincronizado" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Imagem" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Nome do Arquivo" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Tamanho" @@ -10331,38 +10274,36 @@ msgstr "Tamanho" msgid "Table Name" msgstr "Nome da Tabela" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Leitura" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Validação SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Verificação SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Tipos de Evento" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Sincronização Automática Ativada" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Funções de Dispositivos" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Comentários (curto)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Linha" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Método" @@ -10374,7 +10315,7 @@ msgstr "Foi encontrado um erro ao tentar renderizar este widget:" msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "Tente reconfigurar o widget ou removê-lo do seu painel." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10387,11 +10328,78 @@ msgstr "Tente reconfigurar o widget ou removê-lo do seu painel." msgid "Custom Fields" msgstr "Campos Personalizados" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Anexar uma imagem" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Clonável" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Peso da tela" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Regras de Validação" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Expressão regular" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Objetos Relacionados" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Usado por" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Anexo" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Modelos Associados" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Configuração da Tabela" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Colunas Exibidas" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Grupo de Notificação" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Tipos de Objetos Permitidos" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Tipos de Itens Etiquetados" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Anexo de Imagem" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Objeto pai" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Registro de Evento" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10429,32 +10437,68 @@ msgstr "Atributo \"{name}\" é inválido para a requisição" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Atributo \"{name}\" é inválido para {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Texto do Link" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL do link" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Parâmetros do Ambiente" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Modelo" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Cabeçalhos Adicionais" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Modelo de Corpo" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Condições" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Objetos Etiquetados" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Esquema JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Ocorreu um erro ao renderizar o modelo: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Seu dashboard foi redefinido." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Widget adicionado: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Widget atualizado: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Widget excluído: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Erro ao excluir o widget: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "" "Não é possível executar o script: o processo do agente RQ não está em " @@ -10688,7 +10732,7 @@ msgstr "Grupo FHRP (ID)" msgid "IP address (ID)" msgstr "Endereço IP (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "Endereço IP" @@ -10794,7 +10838,7 @@ msgstr "É um pool" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Trate como totalmente utilizado" @@ -10807,7 +10851,7 @@ msgstr "Atribuição de VLAN" msgid "Treat as populated" msgstr "Trate como populado" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Nome DNS" @@ -11334,184 +11378,184 @@ msgstr "" "Os prefixos não podem se sobrepor aos agregados. {prefix} cobre um agregado " "existente ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "funções" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "prefixo" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Rede IPv4 ou IPv6 com máscara" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Status operacional deste prefixo" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "A função primária deste prefixo" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "é um pool" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "" "Todos os endereços IP dentro deste prefixo são considerados utilizáveis" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "marcar utilizado" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "prefixos" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Não é possível criar prefixo com a máscara /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "tabela global" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Prefixo duplicado encontrado em {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "endereço inicial" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Endereço IPv4 ou IPv6 (com máscara)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "endereço final" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Status operacional desta faixa" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "A função principal desta faixa" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "marcar populado" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Impedir a criação de endereços IP dentro desse intervalo" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Reportar espaço como totalmente utilizado" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Faixa de IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Faixas de IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Endereços IP inicial e final devem ter a mesma versão" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Máscaras de endereço IP inicial e final precisam ser iguais" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "O endereço final deve ser maior que o endereço inicial ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Endereços definidos se sobrepõem com a faixa {overlapping_range} em VRF " "{vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "Faixa definida excede o tamanho máximo suportado ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "endereço" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "O status operacional deste IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "O papel funcional deste IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (interno)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "O IP para o qual este endereço é o IP “externo”" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Hostname ou FQDN (não diferencia maiúsculas de minúsculas)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "Endereços IP" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Não é possível criar endereço IP com máscara /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} é um ID de rede, que não pode ser atribuído a uma interface." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" "{ip} é um endereço de broadcast, que não pode ser atribuído a uma interface." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Endereço IP duplicado encontrado em {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Não é possível criar o endereço IP {ip} dentro do intervalo {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11519,7 +11563,7 @@ msgstr "" "Não é possível reatribuir o endereço IP enquanto ele estiver designado como " "o IP primário do objeto pai" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11527,7 +11571,7 @@ msgstr "" "Não é possível reatribuir o endereço IP enquanto ele estiver designado como " "IP Out-of-band para o objeto pai" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Somente endereços IPv6 podem receber o status SLAAC" @@ -12105,8 +12149,9 @@ msgstr "Cinza" msgid "Dark Grey" msgstr "Cinza Escuro" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Padrão" @@ -13038,67 +13083,67 @@ msgstr "Não é possível adicionar stores ao registro após a inicialização" msgid "Cannot delete stores from registry" msgstr "Não é possível excluir stores do registro" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Tcheco" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Dinamarquês" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Alemão" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Inglês" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Espanhol" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Francês" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Italiano" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japonês" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Letão" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Holandês" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Polonês" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Português" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Russo" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Turco" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ucraniano" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Chinês" @@ -13126,6 +13171,7 @@ msgid "Field" msgstr "Campo" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Valor" @@ -13157,11 +13203,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Coordenadas GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Objetos Relacionados" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13408,7 +13449,6 @@ msgid "Toggle All" msgstr "Alternar Tudo" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tabela" @@ -13464,13 +13504,9 @@ msgstr "Grupos Associados" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13478,6 +13514,7 @@ msgstr "Grupos Associados" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Nenhum" @@ -13640,7 +13677,7 @@ msgid "Changed" msgstr "Alterado" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bytes" @@ -13693,12 +13730,11 @@ msgid "Job retention" msgstr "Retenção da tarefa" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "O arquivo de dados associado a este objeto foi excluído" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Dados Sincronizados" @@ -14381,12 +14417,6 @@ msgstr "Adicionar Rack" msgid "Add Site" msgstr "Adicionar Site" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Anexo" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14544,82 +14574,10 @@ msgstr "" "as credenciais do NetBox e fazendo uma consulta para " "%(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Esquema JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Parâmetros do Ambiente" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Modelo" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Nome do Grupo" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Deve ser Único" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Clonável" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Valor Padrão" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Peso na Pesquisa" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Lógica do Filtro" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Peso de Exibição" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Interface de Usuário Visível" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Interface de Usuário Editável" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Regras de Validação" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Expressão Regular" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Classe do Botão" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Modelos Associados" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Texto do Link" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL do link" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "escolhas" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14692,10 +14650,6 @@ msgstr "Houve um problema ao obter o feed RSS" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Condições" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Agendado para" @@ -14717,14 +14671,6 @@ msgstr "Saída" msgid "Download" msgstr "Baixar" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Anexo de Imagem" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Objeto Pai" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Carregando" @@ -14773,24 +14719,6 @@ msgstr "" "Comece criando um script a partir de " "um arquivo ou fonte de dados carregado." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Registro de Evento" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Criado Por" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Grupo de Notificação" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Nenhum atribuído" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "" @@ -14847,6 +14775,16 @@ msgstr "Modelo de saída está vazio" msgid "No configuration template has been assigned." msgstr "Nenhum modelo de configuração foi atribuído." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Nenhum atribuído" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Qualquer" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14883,14 +14821,6 @@ msgstr "Limite do log" msgid "All" msgstr "Todos" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Configuração da Tabela" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Colunas Exibidas" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14908,46 +14838,6 @@ msgstr "Mover para Cima" msgid "Move Down" msgstr "Mover para Baixo" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Itens Etiquetados" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Tipos de Objetos Permitidos" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Qualquer" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Tipos de Itens Etiquetados" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Objetos Etiquetados" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Método HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Tipo de Conteúdo HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Verificação SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Cabeçalhos Adicionais" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Modelo de Corpo" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Criação em Massa" @@ -15020,10 +14910,6 @@ msgstr "Opções de Campos" msgid "Accessor" msgstr "Acessador" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "escolhas" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Importar Valor" @@ -15535,6 +15421,7 @@ msgstr "CPUs Virtuais" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Memória" @@ -15544,8 +15431,8 @@ msgid "Disk Space" msgstr "Espaço em Disco" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Recursos" @@ -16607,13 +16494,13 @@ msgstr "" "Este objeto foi modificado desde que o formulário foi renderizado. Consulte " "o changelog do objeto para obter mais detalhes." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Intervalo ”{value}“ é inválido." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16622,40 +16509,40 @@ msgstr "" "Intervalo inválido: valor final ({end}) deve ser maior que o valor inicial " "({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Cabeçalho de coluna duplicado ou conflitante com ”{field}“" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Cabeçalho de coluna duplicado ou conflitante com ”{header}“" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Linha {row}: Esperado(s) {count_expected} coluna(s), mas encontrado(s) " "{count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Cabeçalho de coluna inesperado ”{field}“ encontrado." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Coluna ”{field}“ não é um objeto relacionado; não pode usar pontos" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "" "Atributo de objeto relacionado inválido para a coluna ”{field}“: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Cabeçalho de coluna obrigatório ”{header}“ não encontrado." @@ -16674,7 +16561,7 @@ msgstr "" "Valor necessário ausente para o parâmetro de consulta estática: " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(definido automaticamente)" @@ -16871,30 +16758,42 @@ msgstr "Tipo de cluster (ID)" msgid "Cluster (ID)" msgstr "Cluster (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Iniciar na inicialização" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPUs" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Memória (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disco" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disco (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Memória ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Tamanho (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disco ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Tamanho ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16916,15 +16815,15 @@ msgstr "Cluster atribuído" msgid "Assigned device within cluster" msgstr "Dispositivo atribuído dentro do cluster" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Tipo de Cluster" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Grupo de Clusters" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16933,24 +16832,19 @@ msgstr "" "{device} pertence a um diferente {scope_field} ({device_scope}) do cluster " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "Opcionalmente, vincule esta VM a um host específico dentro do cluster" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Site/Cluster" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "O tamanho do disco é gerenciado por meio da conexão de discos virtuais." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disco" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "tipo de cluster" @@ -16998,12 +16892,12 @@ msgid "start on boot" msgstr "iniciar na inicialização" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "memória (MB)" +msgid "memory" +msgstr "memória" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disco (MB)" +msgid "disk" +msgstr "disco" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17086,10 +16980,6 @@ msgstr "" "A VLAN não tagueada ({untagged_vlan}) deve pertencer ao mesmo site da " "máquina virtual pai da interface ou deve ser global." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "tamanho (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "disco virtual" diff --git a/netbox/translations/ru/LC_MESSAGES/django.mo b/netbox/translations/ru/LC_MESSAGES/django.mo index f9a56d948f549f798642b63c877e66bc6294480f..5d7fcc7dd4e02350dd6a9200bf01a3176309b0a0 100644 GIT binary patch delta 74771 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 C2(-We delta 75136 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 M>6J+km@U!&0mvx)$p8QV diff --git a/netbox/translations/ru/LC_MESSAGES/django.po b/netbox/translations/ru/LC_MESSAGES/django.po index dd9670725..ad873236f 100644 --- a/netbox/translations/ru/LC_MESSAGES/django.po +++ b/netbox/translations/ru/LC_MESSAGES/django.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n" @@ -58,9 +58,9 @@ msgstr "Ваш пароль успешно изменен." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -74,21 +74,20 @@ msgstr "Выделение ресурсов" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Активный" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Не в сети" @@ -101,7 +100,7 @@ msgstr "Выделение резервов" msgid "Decommissioned" msgstr "Списан" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -213,13 +212,13 @@ msgstr "Группа площадок (подстрока)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -343,7 +342,7 @@ msgstr "Поиск" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -477,8 +476,8 @@ msgstr "Идентификатор Службы" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Цвет" @@ -489,7 +488,7 @@ msgstr "Цвет" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -517,15 +516,15 @@ msgstr "Цвет" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -571,7 +570,7 @@ msgstr "Аккаунт провайдера" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -587,12 +586,12 @@ msgstr "Аккаунт провайдера" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -650,12 +649,12 @@ msgstr "Статус" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -740,10 +739,10 @@ msgstr "Параметры Службы" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -768,8 +767,8 @@ msgstr "Атрибуты" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -792,30 +791,19 @@ msgstr "Аренда" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Описание" @@ -867,7 +855,7 @@ msgstr "Сведения об точке подключения" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -921,10 +909,10 @@ msgstr "Сеть провайдера" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1012,7 +1000,7 @@ msgstr "Операционная роль" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1025,7 +1013,7 @@ msgstr "Операционная роль" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1064,8 +1052,8 @@ msgstr "Интерфейс" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1119,12 +1107,12 @@ msgstr "Локация" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1149,9 +1137,9 @@ msgstr "Право собственности" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1175,9 +1163,9 @@ msgstr "Контакты" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Регион" @@ -1194,9 +1182,9 @@ msgstr "Регион" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Группа площадок" @@ -1205,7 +1193,7 @@ msgstr "Группа площадок" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Аккаунт" @@ -1214,9 +1202,9 @@ msgid "Term Side" msgstr "Терминология" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1244,10 +1232,10 @@ msgstr "Задание" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1288,13 +1276,13 @@ msgid "Group Assignment" msgstr "Групповое задание" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1321,14 +1309,14 @@ msgstr "Уникальный ID канала связи" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1423,7 +1411,7 @@ msgstr "ID патч-панели и номера порта(-ов)" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1456,7 +1444,7 @@ msgstr "Конец цепи должен быть прикреплен к кон #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1551,8 +1539,8 @@ msgstr "виртуальный канал" msgid "virtual circuits" msgstr "виртуальные каналы" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "роль" @@ -1589,10 +1577,10 @@ msgstr "точки подключения виртуальных каналов" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1600,26 +1588,14 @@ msgstr "точки подключения виртуальных каналов" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1632,8 +1608,8 @@ msgstr "точки подключения виртуальных каналов" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1717,7 +1693,7 @@ msgstr "Количество ASN" msgid "Terminations" msgstr "Соединения" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1751,7 +1727,7 @@ msgstr "Соединения" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1761,10 +1737,10 @@ msgstr "Соединения" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1839,7 +1815,7 @@ msgstr "Завершено" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Неисправно" @@ -1899,14 +1875,13 @@ msgid "30 days" msgstr "30 дней" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2020,7 +1995,7 @@ msgid "User name" msgstr "Имя пользователя" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2029,17 +2004,13 @@ msgstr "Имя пользователя" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Включено" @@ -2049,12 +2020,11 @@ msgid "Sync interval" msgstr "Интервал синхронизации" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Параметры" @@ -2067,16 +2037,15 @@ msgstr "Правила исключения" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Источник данных" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Файл" @@ -2094,10 +2063,9 @@ msgstr "Создание" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Тип объекта" @@ -2142,9 +2110,7 @@ msgstr "Завершено до" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2153,8 +2119,8 @@ msgid "User" msgstr "Пользователь" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Время" @@ -2167,8 +2133,7 @@ msgid "Before" msgstr "До" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Действие" @@ -2207,7 +2172,7 @@ msgstr "Необходимо загрузить файл или выбрать msgid "Rack Elevations" msgstr "Фасады стоек" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2352,20 +2317,20 @@ msgid "Config revision #{id}" msgstr "Ревизия конфигурации #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2374,13 +2339,13 @@ msgstr "тип" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2446,7 +2411,7 @@ msgstr "" msgid "last updated" msgstr "последнее обновление" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "путь" @@ -2454,7 +2419,8 @@ msgstr "путь" msgid "File path relative to the data source's root" msgstr "Путь к файлу относительно корня источника данных" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "размер" @@ -2605,12 +2571,11 @@ msgstr "Полное имя" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Объект" @@ -2620,7 +2585,7 @@ msgid "Request ID" msgstr "Идентификатор запроса" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Сообщение" @@ -2649,7 +2614,7 @@ msgstr "Последнее обновление" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2665,8 +2630,8 @@ msgstr "Интервал" msgid "Log Entries" msgstr "Записи в журнале" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Уровень" @@ -2786,11 +2751,10 @@ msgid "Backend" msgstr "Серверная часть" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2849,8 +2813,7 @@ msgstr "Задача #{id} для синхронизации {datasource} доб #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Данные" @@ -2915,11 +2878,24 @@ msgstr "Режим интерфейса не поддерживает vlan бе msgid "Interface mode does not support tagged vlans" msgstr "Режим интерфейса не поддерживает помеченные виртуальные сети" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Позиция (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Невозможно установить модуль со значениями-заполнителями в модульном отсеке " +"без определенного положения." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "A {model} названный {name} уже существует" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "Идентификатор объекта" @@ -2947,8 +2923,8 @@ msgid "Staging" msgstr "Подготовка к развертыванию" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Вывод из эксплуатации" @@ -3014,7 +2990,7 @@ msgstr "Выведенный(-ая) из использования" msgid "Millimeters" msgstr "Миллиметры" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "Дюймы" @@ -3051,14 +3027,14 @@ msgstr "Несвежий" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3086,7 +3062,7 @@ msgid "Rear" msgstr "Вид сзади" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Подготовлен" @@ -3119,7 +3095,7 @@ msgid "Top to bottom" msgstr "Сверху вниз" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Пассивный" @@ -3148,8 +3124,8 @@ msgid "Proprietary" msgstr "Проприетарный" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Другой" @@ -3162,350 +3138,354 @@ msgstr "ITA/Международный" msgid "Physical" msgstr "Физический" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Виртуальный" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Беспроводной" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Виртуальные интерфейсы" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Мост" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Группа агрегации линков (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "Быстрый Ethernet (100 Мбит/с)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "Гигабитный Ethernet (1 Гбит/с)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "Ethernet 2,5/5 Гбит/с" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "Ethernet 10 Гбит/с" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "Ethernet 25 Гбит/с" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "Ethernet 40 Гбит/с" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "Ethernet 50 Гбит/с" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "Ethernet 100 Гбит/с" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "Ethernet 200 Гбит/с" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "Ethernet 400 Гбит/с" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "Ethernet 800 Гбит/с" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "Ethernet 1,6 Тбит/с" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Подключаемые трансиверы" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Ethernet объединительной платы" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Сотовая связь" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Серийный" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Коаксиальный" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "Стекирование" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Полу" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Полный" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Авто" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Доступ" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Тегированный" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Тегированный (все)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "Стандарт IEEE" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Пассивный режим 24 В (2 пары)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Пассивное напряжение 24 В (4 пары)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Пассивное напряжение 48 В (2 пары)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Пассивное напряжение 48 В (4 пары)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Медь" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Оптоволокно" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Одинокий" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1 ШТУКА" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1С2П" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1С4П" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "16XP" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "18CP" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1X12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1X16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "багажник" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "Багажник 2C1P" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "Багажник 2C2P" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "Багажник 2C4P" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "Багажник 2C4P (шаффл)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "Багажник 2C6P" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "Багажник 2C8P" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "Багажник 2C12P" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "Багажник 4C1P" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "Багажник 4C2P" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "Багажник 4C4P" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "Багажник 4C4P (шаффл)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "Багажник 4C6P" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "Багажник 4C8P" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "Багажник 8C4P" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Прорыв" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "прорыв 1C2P: 2C1P" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "прорыв 1C4P: 4C1P" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "прорыв 1С6П:6К1П" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "Прорыв 2C4P: 8C1P (перемешивание)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Медь — витая пара (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Медь — Twinax (ЦАП)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Медь — коаксиальная" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Оптоволокно — многомодовое" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Оптоволокно — одномодовое" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Прочее волокно" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Подключено" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Километры" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Метры" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Сантиметры" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Мили" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Футы" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Резервный" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Однофазный" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Трехфазный" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Инвалид" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Неисправен" @@ -3789,17 +3769,17 @@ msgstr "Полная глубина" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC-адрес" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Имеет основной IP-адрес" @@ -3937,7 +3917,7 @@ msgid "Is primary" msgstr "Является основным" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "Режим 802.1Q" @@ -3954,8 +3934,8 @@ msgstr "Назначенный VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3966,18 +3946,18 @@ msgstr "Назначенный VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3994,10 +3974,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (ID)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -4011,11 +3991,11 @@ msgstr "Политика трансляции VLAN (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "Политика перевода VLAN" @@ -4066,7 +4046,7 @@ msgstr "Основной MAC-адрес (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Основной MAC-адрес" @@ -4126,7 +4106,7 @@ msgstr "Распределительный щит (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4196,7 +4176,7 @@ msgstr "Часовой пояс" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4267,11 +4247,6 @@ msgstr "Глубина крепления" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Вес" @@ -4304,7 +4279,7 @@ msgstr "Внешние размеры" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Габариты" @@ -4356,7 +4331,7 @@ msgstr "Воздушный поток" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Стойка" @@ -4409,11 +4384,10 @@ msgstr "Схема" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Профиль" @@ -4423,7 +4397,7 @@ msgstr "Профиль" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Тип модуля" @@ -4446,8 +4420,8 @@ msgstr "Роль виртуальной машины" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Шаблон конфигурации" @@ -4469,10 +4443,10 @@ msgstr "Роль устройства" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Платформа" @@ -4484,13 +4458,13 @@ msgstr "Платформа" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4498,7 +4472,7 @@ msgstr "Кластер" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Конфигурация" @@ -4522,7 +4496,7 @@ msgstr "Тип модуля" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "Лейбл" @@ -4572,8 +4546,8 @@ msgid "Maximum draw" msgstr "Максимальное потребление" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Максимальная потребляемая мощность (Вт)" @@ -4582,8 +4556,8 @@ msgid "Allocated draw" msgstr "Выделенная мощность" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Распределенная потребляемая мощность (Вт)" @@ -4598,23 +4572,23 @@ msgid "Feed leg" msgstr "Фаза электропитания" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Только управление" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "Режим PoE" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "Тип PoE" @@ -4630,7 +4604,7 @@ msgid "Module" msgstr "Модуль" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "LAG" @@ -4641,14 +4615,14 @@ msgstr "Виртуальные контексты" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Скорость" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4661,25 +4635,25 @@ msgstr "Режим" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "Группа VLAN" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "VLAN без тегов" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Тегированные VLAN-ы" @@ -4694,7 +4668,7 @@ msgstr "Удалить тегированные VLAN-ы" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Сервисная VLAN «Q-in-Q»" @@ -4704,26 +4678,26 @@ msgid "Wireless LAN group" msgstr "Беспроводная группа LAN" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Беспроводные LANы" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Адресация" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Операция" @@ -4734,16 +4708,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "Связанные интерфейсы" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "Коммутация 802.1Q" @@ -5027,13 +5001,13 @@ msgstr "Электрическая фаза (для трехфазных цеп #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Родительский интерфейс" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Мостовой интерфейс" @@ -5179,13 +5153,13 @@ msgstr "Родительское устройство назначенного #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Виртуальная машина" @@ -5344,13 +5318,13 @@ msgstr "Основной IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "Адрес IPv6 с длиной префикса, напр. 2001:db8::1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5360,34 +5334,12 @@ msgstr "" "родительское устройство/виртуальная машина интерфейса, или они должны быть " "глобальными" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Невозможно установить модуль со значениями-заполнителями в модульном отсеке " -"без определенного положения." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Невозможно установить модуль с указанами значениями на уровне {level}, но " -"переданы значения {tokens}." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "" "Невозможно принять {model} {name} поскольку оно уже принадлежит модулю" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "A {model} названный {name} уже существует" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5475,7 +5427,7 @@ msgstr "Имеет контексты виртуальных устройств" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Кластерная группа" @@ -5491,7 +5443,7 @@ msgstr "Занятый" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Подключение" @@ -5499,8 +5451,7 @@ msgstr "Подключение" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Вид" @@ -5509,12 +5460,12 @@ msgid "Mgmt only" msgstr "Только менеджмент" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "Глобальное уникальное имя (WWN)" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "Режим 802.1Q" @@ -5530,7 +5481,7 @@ msgstr "Частота канала (МГц)" msgid "Channel width (MHz)" msgstr "Ширина канала (МГц)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "Мощность передачи (дБм)" @@ -5580,9 +5531,9 @@ msgstr "Тип прицела" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5856,11 +5807,11 @@ msgstr "Интерфейс виртуальной машины" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5932,7 +5883,7 @@ msgid "profile" msgstr "профиль" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5954,42 +5905,42 @@ msgstr "кабель" msgid "cables" msgstr "кабели" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "При настройке длины кабеля необходимо указать единицу измерения" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "" "При создании нового кабеля необходимо определить концевые разъемы A и B." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "" "Невозможно подключить разные типы разъемов к одному и тому же концу кабеля." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Несовместимые типы терминации: {type_a} а также {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "Окончания A и B не могут подключаться к одному и тому же объекту." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "конец" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "точка подключения кабеля" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "точки подключения кабеля" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -5998,7 +5949,7 @@ msgstr "" "Невозможно подключить кабель к {obj_parent} > {obj} потому что оно помечено " "как подключенное." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -6007,61 +5958,61 @@ msgstr "" "Обнаружен дубликат подключения для {app_label}.{model} {termination_id}: " "кабель {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Кабели не могут быть подключены к {type_display} интерфейсов" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Концевые разъемы, подключенные к сети провайдера, могут не подключаться к " "кабелям." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "активен" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "завершен" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "разделен" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "кабельная трасса" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "кабельные трассы" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "" "Все исходные терминалы должны быть прикреплены к одной и той же ссылке" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "Все промежуточные терминалы должны иметь один и тот же тип терминации" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Все терминалы среднего диапазона должны иметь один и тот же родительский " "объект" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Все каналы должны быть кабельными или беспроводными" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Все ссылки должны соответствовать первому типу ссылки" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6070,16 +6021,16 @@ msgstr "" "{module} принимается в качестве замены положения отсека для модулей при " "подключении к модулю того или иного типа." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Физический лейбл" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Шаблоны компонентов нельзя перемещать на устройства другого типа." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6087,142 +6038,142 @@ msgstr "" "Шаблон компонента нельзя связать как с типом устройства, так и с типом " "модуля." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "" "Шаблон компонента должен быть связан с типом устройства или типом модуля." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "шаблон консольного порта" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "шаблоны консольных портов" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "шаблон порта консольного сервера" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "шаблоны портов консольного сервера" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "максимальное потребление" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "выделенное потребление" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "шаблон порта питания" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "шаблоны портов питания" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Выделенная мощность не может превышать максимальную ({maximum_draw}Вт)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "фаза электропитания" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Фаза (для трехфазных)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "шаблон розетки питания" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "шаблоны розеток питания" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Родительский порт питания ({power_port}) должен принадлежать тому же типу " "устройства" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Родительский порт питания ({power_port}) должен принадлежать тому же типу " "модулей" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "только управление" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "интерфейс моста" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "роль беспроводной сети" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "шаблон интерфейса" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "шаблоны интерфейсов" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Интерфейс моста ({bridge}) должно принадлежать к тому же типу устройства" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Интерфейс моста ({bridge}) должен принадлежать к одному типу модулей" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "" "Задний порт ({rear_port}) должно принадлежать к тому же типу устройства" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "позиция" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "шаблон переднего порта" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "шаблоны передних портов" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6231,15 +6182,15 @@ msgstr "" "Количество позиций не может быть меньше количества сопоставленных шаблонов " "задних портов ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "шаблон заднего порта" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "шаблоны задних портов" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6248,35 +6199,35 @@ msgstr "" "Количество позиций не может быть меньше количества сопоставленных шаблонов " "фронтальных портов ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "позиция" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Идентификатор, на который следует ссылаться при переименовании установленных" " компонентов" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "шаблон модульного отсека" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "шаблоны модульных отсеков" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "шаблон отсека для устройств" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "шаблоны отсеков для устройств" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6285,21 +6236,21 @@ msgstr "" "Роль подустройства типа устройства ({device_type}) должно быть установлено " "значение «родительский», чтобы разрешить отсеки для устройств." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "номер модели" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Номер модели, присвоенный производителем" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "шаблон инвентарного товара" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "шаблоны товаров инвентаря" @@ -6353,85 +6304,85 @@ msgstr "Положения кабелей нельзя устанавливат msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} модели должны объявить свойство parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Тип физического порта" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "скорость" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Скорость порта в битах в секунду" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "консольный порт" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "консольные порты" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "порт консольного сервера" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "порты консольного сервера" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "порт питания" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "порты питания" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "розетка питания" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "розетки питания" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Родительский порт питания ({power_port}) должен принадлежать тому же " "устройству" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "режим" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Стратегия маркировки IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "родительский интерфейс" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN без тегов" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "тегированные VLAN" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6439,93 +6390,93 @@ msgstr "тегированные VLAN" msgid "Q-in-Q SVLAN" msgstr "Сеть Q-in-Q" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "основной MAC-адрес" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Только интерфейсы Q-in-Q могут указывать служебную VLAN." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " "({interface})." msgstr "MAC-адрес {mac_address} назначен другому интерфейсу ({interface}). " -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "родительский LAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Этот интерфейс используется только для внеполосного управления" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "скорость (Кбит/с)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "дуплекс" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-битное всемирное имя" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "беспроводной канал" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "частота канала (МГц)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Заполнено выбранным каналом (если задано)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "мощность передачи (дБм)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "беспроводные LANs" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "интерфейс" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "интерфейсы" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} к интерфейсам нельзя подключать кабель." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} интерфейсы нельзя пометить как подключенные." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Интерфейс не может быть собственным родителем." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Родительскому интерфейсу могут быть назначены только виртуальные интерфейсы." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6534,7 +6485,7 @@ msgstr "" "Выбранный родительский интерфейс ({interface}) принадлежит другому " "устройству ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6543,7 +6494,7 @@ msgstr "" "Выбранный родительский интерфейс ({interface}) принадлежит {device}, который" " не является частью виртуального шасси {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6552,7 +6503,7 @@ msgstr "" "Выбранный интерфейс моста ({bridge}) принадлежит другому устройству " "({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6561,22 +6512,22 @@ msgstr "" "Выбранный интерфейс моста ({interface}) принадлежит {device}, который не " "является частью виртуального шасси {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Виртуальные интерфейсы не могут иметь родительский интерфейс LAG." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Интерфейс LAG не может быть собственным родителем." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "" "Выбранный интерфейс LAG ({lag}) принадлежит другому устройству ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6585,34 +6536,34 @@ msgstr "" "Выбранный интерфейс LAG ({lag}) принадлежит {device}, который не является " "частью виртуального шасси {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Канал можно настроить только на беспроводных интерфейсах." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "Частота канала может быть установлена только на беспроводных интерфейсах." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Невозможно указать произвольную частоту для выбранного канала." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "Ширина канала может быть установлена только на беспроводных интерфейсах." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Невозможно указать произвольную ширину полосы для выбранного канала." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "" "Режим интерфейса не поддерживает виртуальную локальную сеть без тегов." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6621,21 +6572,21 @@ msgstr "" "VLAN без тегов ({untagged_vlan}) должна принадлежать той же площадке, что и " "родительское устройство интерфейса, или она должна быть глобальной." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "" "Задний порт ({rear_port}) должно принадлежать одному и тому же устройству" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "фронтальный порт" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "фронтальные порты" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6644,15 +6595,15 @@ msgstr "" "Количество позиций не может быть меньше количества сопоставленных задних " "портов ({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "задний порт" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "задние порты" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6661,38 +6612,38 @@ msgstr "" "Количество позиций не может быть меньше количества сопоставленных передних " "портов ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "модульный отсек" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "отсеки для модулей" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Отсек для модулей не может принадлежать установленному в нем модулю." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "отсек для устройств" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "отсеки для устройств" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Этот тип устройства ({device_type}) не поддерживает отсеки для устройств." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Невозможно установить устройство в само по себе." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6700,61 +6651,61 @@ msgstr "" "Невозможно установить указанное устройство; устройство уже установлено в " "{bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "роль элемента инвентаря" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "роли элементов инвентаря" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "серийный номер" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "инвентарный номер" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Инвентарный номер, используемый для идентификации этого элемента" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "обнаружено" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Этот элемент был обнаружен автоматически" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "элемент инвентаря" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "элементы инвентаря" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Невозможно назначить себя родителем." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "" "Предмет родительского инвентаря не принадлежит одному и тому же устройству." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Невозможно переместить инвентарь вместе с дочерней зависимостью" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "" "Невозможно присвоить инвентарный предмет компоненту на другом устройстве" @@ -7646,10 +7597,10 @@ msgstr "Доступен" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7661,8 +7612,7 @@ msgid "VMs" msgstr "Виртуальные машины" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7765,7 +7715,7 @@ msgstr "Местоположение устройства" msgid "Device Site" msgstr "Сайт устройства" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Модульный отсек" @@ -7825,7 +7775,7 @@ msgstr "MAC-адреса" msgid "FHRP Groups" msgstr "Группы FHRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7841,7 +7791,7 @@ msgstr "Только управление" msgid "VDCs" msgstr "Виртуальные контексты устройств(VDCs)" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Виртуальный канал" @@ -7914,7 +7864,7 @@ msgid "Module Types" msgstr "Типы модулей" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Платформы" @@ -8015,7 +7965,7 @@ msgstr "Отсеки для устройств" msgid "Module Bays" msgstr "Отсеки для модулей" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Количество модулей" @@ -8094,7 +8044,7 @@ msgstr "{} миллиметры" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Серийный номер" @@ -8104,7 +8054,7 @@ msgid "Maximum weight" msgstr "Максимальный вес" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Управление" @@ -8152,18 +8102,27 @@ msgstr "{}A" msgid "Primary for interface" msgstr "Основное для интерфейса" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Элементы виртуального шасси" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Использование энергии" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Трансляция VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Невозможно установить модуль со значениями-заполнителями в лаевом дереве " +"модуля {level} уровни глубокие, но {tokens} указаны заполнители." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8204,9 +8163,8 @@ msgid "Application Services" msgstr "Сервисы приложений" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Контекст конфигурации" @@ -8215,7 +8173,7 @@ msgstr "Контекст конфигурации" msgid "Render Config" msgstr "Конфигурация рендера" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8278,7 +8236,7 @@ msgstr "Невозможно удалить главное устройство msgid "Removed {device} from virtual chassis {chassis}" msgstr "{device} удалено из виртуального шасси {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Неизвестный связанный объект (ы): {name}" @@ -8287,12 +8245,16 @@ msgstr "Неизвестный связанный объект (ы): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Изменение типа настраиваемых полей не поддерживается." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Модуль сценария с таким именем файла уже существует." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Для этого сценария планирование отключено." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Запланированное время должно быть в будущем." @@ -8469,8 +8431,7 @@ msgid "White" msgstr "Белый" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Вебхук" @@ -8619,12 +8580,12 @@ msgstr "Закладки" msgid "Show your personal bookmarks" msgstr "Покажите свои личные закладки" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Неизвестный тип действия для правила события: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Невозможно импортировать конвейер событий {name} ошибка: {error}" @@ -8644,7 +8605,7 @@ msgid "Group (name)" msgstr "Группа (название)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Тип кластера" @@ -8664,7 +8625,7 @@ msgid "Tenant group (slug)" msgstr "Группа арендаторов (подстрока)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Тег" @@ -8677,29 +8638,30 @@ msgid "Has local config context data" msgstr "Имеет локальные контекстные данные конфигурации" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Название группы" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Обязательно" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Должно быть уникальным" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Видимый пользовательский интерфейс" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Редактируемый UI" @@ -8708,10 +8670,12 @@ msgid "Is cloneable" msgstr "Можно клонировать" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Минимальное значение" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Максимальное значение" @@ -8720,8 +8684,7 @@ msgid "Validation regex" msgstr "Регулярное выражение валидации" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Поведение" @@ -8735,7 +8698,8 @@ msgstr "Класс кнопки" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Тип MIME" @@ -8757,31 +8721,29 @@ msgstr "В качестве вложения" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Общий" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Метод HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL-адрес полезной нагрузки" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Проверка SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Секрет" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Путь к файлу CA" @@ -8935,9 +8897,9 @@ msgstr "Назначенный тип объекта" msgid "The classification of entry" msgstr "Классификация записей" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8946,12 +8908,12 @@ msgid "Comments" msgstr "Комментарии" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Пользователи" @@ -8961,9 +8923,8 @@ msgstr "" "Имена пользователей, разделенные запятыми и заключенные в двойные кавычки" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -9008,6 +8969,7 @@ msgid "Content types" msgstr "Типы контента" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Тип содержимого HTTP" @@ -9079,7 +9041,7 @@ msgstr "Группы арендаторов" msgid "The type(s) of object that have this custom field" msgstr "Тип(ы) объекта(-ов), в котором есть это настраиваемое поле" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Значение по умолчанию" @@ -9089,7 +9051,6 @@ msgstr "" "Тип связанного объекта (только для полей объектов/нескольких объектов)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Фильтр связанных объектов" @@ -9097,8 +9058,7 @@ msgstr "Фильтр связанных объектов" msgid "Specify query parameters as a JSON object." msgstr "Укажите параметры запроса в виде объекта JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Настраиваемое Поле" @@ -9130,12 +9090,11 @@ msgstr "" "Введите по одному варианту в строке. Для каждого варианта можно указать " "дополнительный лейбл через двоеточие. Пример:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Набор вариантов выбора настраиваемых полей" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Настраиваемая Ссылка" @@ -9164,8 +9123,7 @@ msgstr "" msgid "Template code" msgstr "Код шаблона" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Шаблон экспорта" @@ -9175,14 +9133,13 @@ msgid "Template content is populated from the remote source selected below." msgstr "" "Содержимое шаблона заполняется из удаленного источника, выбранного ниже." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Сохраненный фильтр" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Заказ" @@ -9206,13 +9163,11 @@ msgstr "Выбранные столбцы" msgid "A notification group specify at least one user or group." msgstr "В группе уведомлений укажите хотя бы одного пользователя или группу." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP-запрос" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9232,8 +9187,7 @@ msgstr "" "Введите параметры для перехода к действию в JSON формат." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Правило мероприятия" @@ -9245,8 +9199,7 @@ msgstr "Триггеры" msgid "Notification group" msgstr "Группа уведомлений" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Контекстный профиль конфигурации" @@ -9338,7 +9291,7 @@ msgstr "профили контекста конфигурации" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "вес" @@ -9900,7 +9853,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Включите проверку сертификата SSL. Отключайте с осторожностью!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Путь к файлу CA" @@ -10202,9 +10155,8 @@ msgstr "Отклонить" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10227,7 +10179,6 @@ msgid "Related Object Type" msgstr "Тип связанного объекта" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Набор для выбора" @@ -10236,12 +10187,10 @@ msgid "Is Cloneable" msgstr "Можно ли клонировать" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Минимальное значение" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Максимальное значение" @@ -10251,9 +10200,9 @@ msgstr "Валидации регулярным выражением" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10270,50 +10219,44 @@ msgid "Order Alphabetically" msgstr "Упорядочить в алфавитном порядке" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Новое окно" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Тип MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Имя файла" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Расширение файла" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "В качестве вложения" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Синхронизировано" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Изображение" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Имя файла" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Размер" @@ -10321,38 +10264,36 @@ msgstr "Размер" msgid "Table Name" msgstr "Имя таблицы" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Прочтите" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "Валидация SSL" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "Проверка SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Типы событий" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Включена автоматическая синхронизация" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Роли устройств" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Комментарии (короткие)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Линия" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Метод" @@ -10365,7 +10306,7 @@ msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "" "Попробуйте перенастроить виджет или удалить его со своей панели управления." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10378,11 +10319,78 @@ msgstr "" msgid "Custom Fields" msgstr "Настраиваемые Поля" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Прикрепите изображение" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Клонируемый" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Вес дисплея" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Правила валидации" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Регулярное выражение" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Связанные объекты" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Используется" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Вложение" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Назначенные модели" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Конфигурация таблицы" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Отображаемые столбцы" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Группа уведомлений" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Разрешенные типы объектов" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Типы товаров с тегами" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Вложение изображения" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Родительский объект" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Запись в журнале" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10420,32 +10428,68 @@ msgstr "Неверный атрибут»{name}\"по запросу" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Недопустимый атрибут \"{name}\" для {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Текст ссылки" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL-адрес ссылки" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Параметры окружающей среды" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Шаблон" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Дополнительные заголовки" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Шаблон тела запроса" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "условия" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Объекты с тегами" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Схема JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Во время рендеринга шаблона произошла ошибка: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Панель виджетов была сброшена." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Добавлен виджет: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Обновлен виджет: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Удален виджет: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Ошибка при удалении виджета: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Невозможно запустить скрипт: процесс RQ не запущен." @@ -10676,7 +10720,7 @@ msgstr "Группа FHRP (идентификатор)" msgid "IP address (ID)" msgstr "IP-адрес (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP-адрес" @@ -10782,7 +10826,7 @@ msgstr "Является пулом" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Считать полностью использованным" @@ -10795,7 +10839,7 @@ msgstr "Назначение VLAN" msgid "Treat as populated" msgstr "Относиться как населенный" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS-имя" @@ -11321,184 +11365,184 @@ msgstr "" "Префиксы не могут перекрывать агрегаты. {prefix} охватывает существующий " "агрегат ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "ролей" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "префикс" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Сеть IPv4 или IPv6 с маской" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Рабочий статус этого префикса" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Основная функция этого префикса" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "это пул" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Все IP-адреса в этом префиксе считаются пригодными для использования" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "использованная марка" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "префиксы" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Невозможно создать префикс с маской /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "глобальная таблица" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Дубликат префикса обнаружен в {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "начальный адрес" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Адрес IPv4 или IPv6 (с маской)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "конечный адрес" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Эксплуатационное состояние этой линейки" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Основная функция этого диапазона" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "отметка заполнена" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Предотвратите создание IP-адресов в этом диапазоне" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Пространство для отчетов полностью использовано" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Диапазон IP-адресов" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Диапазоны IP-адресов" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Начальная и конечная версии IP-адресов должны совпадать" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Маски начального и конечного IP-адресов должны совпадать" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "Конечный адрес должен быть больше начального адреса ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Определенные адреса пересекаются с диапазоном {overlapping_range} в формате " "VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Заданный диапазон превышает максимальный поддерживаемый размер ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "адрес" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Рабочий статус этого IP-адреса" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Функциональная роль этого IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (внутри)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "IP-адрес, для которого этот адрес является «внешним»" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Имя хоста или полное доменное имя (регистр не учитывается)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP-адреса" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Невозможно создать IP-адрес с маской /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} это идентификатор сети, который не может быть присвоен интерфейсу." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" "{ip} это широковещательный адрес, который может не быть присвоен интерфейсу." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Дубликат IP-адреса обнаружен в {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Невозможно создать IP-адрес {ip} внутренний диапазон {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11506,7 +11550,7 @@ msgstr "" "Невозможно переназначить IP-адрес, если он назначен основным IP-адресом " "родительского объекта" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11514,7 +11558,7 @@ msgstr "" "Невозможно переназначить IP-адрес, если он назначен IP-адресом OOB для " "родительского объекта" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Только адресам IPv6 можно присвоить статус SLAAC" @@ -12097,8 +12141,9 @@ msgstr "Серый" msgid "Dark Grey" msgstr "Темно-серый" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "По умолчанию" @@ -13035,67 +13080,67 @@ msgstr "Невозможно добавить хранилище в реестр msgid "Cannot delete stores from registry" msgstr "Невозможно удалить хранилище из реестра" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Чешский" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Датский" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Немецкий" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Английский" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Испанский" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Французский" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Итальянский" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Японский" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Латышский" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Голландский" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Польский" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Португальский" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Русский" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Турецкий" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Украинский" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Китайский" @@ -13123,6 +13168,7 @@ msgid "Field" msgstr "Поле" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Значение" @@ -13154,11 +13200,6 @@ msgstr "" msgid "GPS coordinates" msgstr "Координаты GPS" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Связанные объекты" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13405,7 +13446,6 @@ msgid "Toggle All" msgstr "Переключить все" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Таблица" @@ -13461,13 +13501,9 @@ msgstr "Назначенные группы" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13475,6 +13511,7 @@ msgstr "Назначенные группы" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Нет" @@ -13637,7 +13674,7 @@ msgid "Changed" msgstr "Изменено" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "байтов" @@ -13690,12 +13727,11 @@ msgid "Job retention" msgstr "Сохранение рабочих мест" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Файл данных, связанный с этим объектом, был удален" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Синхронизация данных" @@ -14379,12 +14415,6 @@ msgstr "Добавить стойку" msgid "Add Site" msgstr "Добавить площадку" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Вложение" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14541,82 +14571,10 @@ msgstr "" "можете проверить это, подключившись к базе данных с помощью учётных данных " "NetBox и отправив запрос на %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Схема JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Параметры окружающей среды" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Шаблон" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Название группы" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Должен быть уникальным" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Клонируемый" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Значение по умолчанию" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Вес поиска" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Логика фильтрации" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Вес дисплея" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Видимый пользовательский интерфейс" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Редактируемый UI" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Правила валидации" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Регулярное выражение" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Класс кнопок" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Назначенные модели" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Текст ссылки" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL-адрес ссылки" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "выбор" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14688,10 +14646,6 @@ msgstr "Возникла проблема при загрузке RSS-канал msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "условия" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Запланировано на" @@ -14713,14 +14667,6 @@ msgstr "Вывод" msgid "Download" msgstr "Скачать" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Вложение изображения" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Родительский объект" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Загрузка" @@ -14769,24 +14715,6 @@ msgstr "" "Начните с создание сценария из " "загруженного файла или источника данных." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Запись в журнале" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Создано" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Группа уведомлений" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Ничего не назначено" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Локальный контекст конфигурации перезаписывает все исходные контексты" @@ -14842,6 +14770,16 @@ msgstr "Вывод шаблона пуст" msgid "No configuration template has been assigned." msgstr "Шаблон конфигурации не назначен." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Ничего не назначено" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Любое" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14878,14 +14816,6 @@ msgstr "Пороговое значение журнала" msgid "All" msgstr "Все" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Конфигурация таблицы" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Отображаемые столбцы" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14903,46 +14833,6 @@ msgstr "Переместить вверх" msgid "Move Down" msgstr "Переместить вниз" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Элементы с тегом" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Разрешенные типы объектов" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Любое" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Типы товаров с тегами" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Объекты с тегами" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Метод HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Тип содержимого HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Проверка SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Дополнительные заголовки" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Шаблон тела запроса" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Массовое создание" @@ -15016,10 +14906,6 @@ msgstr "Опции полей" msgid "Accessor" msgstr "Аксессор" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "выбор" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Стоимость импорта" @@ -15531,6 +15417,7 @@ msgstr "Виртуальные процессоры" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Память" @@ -15540,8 +15427,8 @@ msgid "Disk Space" msgstr "Дисковое пространство" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Ресурсы" @@ -16605,13 +16492,13 @@ msgstr "" "Этот объект был изменен с момента визуализации формы. Подробности см. в " "журнале изменений объекта." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Диапазон «{value}» недопустим." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16620,39 +16507,39 @@ msgstr "" "Неверный диапазон: конечное значение ({end}) должно быть больше начального " "значения ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Повторяющийся или конфликтующий заголовок столбца для»{field}»" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Повторяющийся или конфликтующий заголовок столбца для «{header}»" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Ряд {row}: Ожидается {count_expected} столбцы, но найдены {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Неожиданный заголовок столбца»{field}«найдено." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "" "Столбец»{field}\"не является родственным объектом; нельзя использовать точки" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Неверный атрибут связанного объекта для столбца»{field}«: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Обязательный заголовок столбца»{header}\"не найден." @@ -16671,7 +16558,7 @@ msgstr "" "Отсутствует обязательное значение для статического параметра запроса: " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(устанавливается автоматически)" @@ -16871,30 +16758,42 @@ msgstr "Тип кластера (ID)" msgid "Cluster (ID)" msgstr "Кластер (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Начните при загрузке" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "Виртуальные процессоры" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Память (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Диск" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Диск (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Память ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Размер (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Диск ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Размер ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16916,15 +16815,15 @@ msgstr "Назначенный кластер" msgid "Assigned device within cluster" msgstr "Назначенное устройство в кластере" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Тип кластера" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Кластерная группа" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16933,25 +16832,20 @@ msgstr "" "{device} принадлежит другому {scope_field} ({device_scope}), чем кластер " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "Дополнительно подключите эту виртуальную машину к определенному хост-" "устройству в кластере." -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Площадка/кластер" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Размер диска регулируется путем вложения виртуальных дисков." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Диск" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "тип кластера" @@ -16999,12 +16893,12 @@ msgid "start on boot" msgstr "запуск при загрузке" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "память (МБ)" +msgid "memory" +msgstr "память" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "диск (МБ)" +msgid "disk" +msgstr "диск" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17086,10 +16980,6 @@ msgstr "" "VLAN без тегов ({untagged_vlan}) должна принадлежать той же площадке, что и " "родительская виртуальная машина интерфейса, или она должна быть глобальной." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "размер (МБ)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "виртуальный диск" diff --git a/netbox/translations/tr/LC_MESSAGES/django.mo b/netbox/translations/tr/LC_MESSAGES/django.mo index fda54aea45e49b2c0abc473fb9e2a6f98159c0ec..7b0cc4246e6484d5f1ccf069c0ee4b3e89425cc3 100644 GIT binary patch delta 74666 zcmXWkci@gy|G@Fv*C>^Y5Hh~@`r3Q%U1qY%$Vf;UW^zX|BAJPXq(MR%DU>9UhEX9& z8dB*gDussU{l3rn{qs8KT<1FHbLMqZPrset<$U)<&gAhtSr#Suzp*(IiNg5l@I>NV z?nGktVM`N<{>3sSTHye!j4xtYJcL)^e^?E(r)Nqu#0J;_$Ke2c7YAdR;+YcH;B34a zpFz4wCf1S2MZu0xkT{5!lm8CO;Qufy<}DE{gjvX^M@wTK@)csfQOq}w`R*~_JLd1e ztEhiBUPJ$hBncu(EI`|FQa(0}4?6L^1g2HL@bm|q#)fHv?J=Er?#L*JtTpO4S8lnVKLXuHL6F=pTd zd>7kblhT?hTi}^!&GMNN)ya=5pDCG2tfrs=1;?=`7OIdbQ5WyQTKF=C2gmZCfcB5|b!!1~#I*`*<{4%aoPuuhX~|gO(dZJiffX^oHs)VPcl}Ou z&G%qFJc>o}47yY~t7b}Yk`wvSO;-x-s2Unj{rJ2&<|Lo&925PcqtF)~KpUKiHaIu> zG`iVdMjLz`o!Yn2`oEzgynwdzFZzDAYT^9nMc*$MOeSiQ@R&43N7f0QfdOcQBd|D5 zL|=Rwt^X1_!Z*i`SZuD3lK?D009ne2$;8)iO{S-o z8h1h)?12U{1PyEq+VEsFfQ9H%Eky&}7Rx_EPr)bXdtYK-{Gk@---0%^Lq}cFDeH}H zq7mpwN1+jq$C9`KOW|SkLiz_AVVyeR{n6-sF&*vrJ#9=z&hr;8l|0$76b>SzGn(f3B6 z1DP0o7>AR8JU-9TD$HD7tWJ3)OnUtKlkfr>j*j>tw842;8kfiX?&x83rcR;n|BcNs zTkDW-i>`e)bS7>=muv)jS{_1Y^zqi5e;ZmGE4&jQd=V?2jrlBXLWhOWk4$BBGuA?9 zsDAW%bO3$P&-5_tfosr!vbGKNbD}dq>c1z6P ziv~OmUCY_%)IW=Myf)^yp;Nyn<_|`XBc~#n_=!X@DqMAaI3^kBG3$t)+dfzU7sm4K z(GSsM^*N?y2n{Iv4Pg`JL<1^>zF!92gk7*I4oj7D{+=LVNAICm?SPJ*!SUiWGiaWY;{@at-MWPDk z>K1-7HO21a$6zn~5W8WS8^a7uKm*>49r1Ux!{*)NpA)b$`L$RUzl>(RDO_}w(7*=W z#QC@3#T3}UX>@9f^$2TM4&4hi(J5?(PH6{p%DbW$)h*~LxC8y}PeGSv2m0RocnyAn zHStt@UbrXc-`!oRXV^rw(R@qvGkX*ISsjVa&`NZ(9YGuX9&6!6G?1#jLdQ+f0kuWz zO+*8pi*C{<(19&alJK~#jRiZEMcbjtRik?xOvfgZE(DS?U6PUL`=il- z?ng&BE9M_Z1AhT+e-kn@$;8_vT)R)v7k@-&x_CtQgus9rVVVgf_4UeensjXcQo@hrS(T49wXY!Hwd=c92>gcxk{G%iZr|h%%;45?lXV5+HH#+q>28X>+ z5Zxn{&_L?P^0w%d-W;Fbg$6bWt+x=}OV6Ue`(H!rCqE%!2S1<@|ABV!4?2?ULt@9# zO6W+Np$&JA_KoEu(D(0)&WO(!#r%qxeTj{{M@F0c5>BEX8$bgJsc% zYQ}tXv|cAHi-XZX9zi=;h`zT1-Q};K0q#ND`4U~~(`dcFFj<8}mSN$uSrcoKzX$zD ztU{-J4;t}Nw4-m)@BeRT!y;b9`FBLsM}*I2Gqi)D zF@G=m+wX~3{wcb-PN19hESAG8cf>zZVKwso@j9H3&d}QEHZ;(^Xg~XsBpl%v(eJS} z`LkFP>y8XRx$Z!JG`@t+)DP%p`vo1qpXhPTdS@ulhXz_CS{dEkP0&5m58Wfl(Im={ zcm!SRjp&Q-p%o9K75|4GyR4(a?}377z5zO=ozNM10Nqmy(2?)Np?Cldu>M_PZ?#8$ zye1R3lW+}ZV=G*QsjnBh7xLX5UM!4`I0Fr^Ci-i+75d&lbn~vlbo?rsxF^hT@n{A* zV|6gA=f5=x8@xVx3%WKVu_aEx!MHt^m%cXyRt>FJ7aeI!bRb=$ed6;$=**5nH{+C; ze-v}le_}Za8+tWXcoPk1Z!G@;?ch|*pFVUsXvdAQEnbh_D~r(6lH5z8B8kNPVeK;TCbCVi8a{@pDaEYh51@Za zK8(&>-btZ@f@mOR(fZZVnQMUQ*aH1|J_zkEiPTRfR+F&d*W!b1=-+JofUU74OVkyI zp_}ndbW?qdUQ8#@O?e)erwF{e(@i)I;IV{e!VG`IUGt9!8h)`e~t^73fSIK?nFN zCeulrBjHr$pB^HwjQ&+g3v>iGqnm0_d_ElgHavj-n0ySqiZ`Hp-~hVIk41lo<$uKd zB{YC5XK?*U;GrU{|#o~Su~KM4~LG*qnorI zI=~L-^B(c}t>_Hioh0F!%s?wHLyy&JbhEq?%ilmpybBHFLv+c$L}%n2I;H=j^)k;2 z&#yr9CD8WDN2{a#BpZ;ZM4~Ag@kn%p51?1)95k?J(GJ$e=NqvC`FGHf{ST|-d9>k* zv%?HkMVGV*+D^Mz-aV8j6N5-Ng(K13`ve;4-dO$#+HvBM@H`v(RjY+9aWJ;VmvAPY z#niEz6L$TBXnU`t1Kfdrq&~qbJpbR5@Zva&Hk|j-@SCqC8u9(;3p3GO{v zfd;q_or%xT_fEw8&*sknUJ6MX&^Nr7Lv%6KCVLr1zXg9i9Ve4bbk8qSJ7zZ&g0Jz5Q2vgYUvc3!~wx8e{A9QinOr1Q}8y&PS$SJ1V8 zH$MLcJ+{B0?`K~a-n$O{%2h-^&#ln`+=>qLcJ#iv7ah>dBnd|_2d%gijchp@>1MQp zUFgUUN54Y@K8rSV#iB4{InjJUER99cc3Yyyvje&(CSe*Tr;unu;vsZ|yRa&Li{5;B z9}9t0Lj!1nj^z4S-XoR|j^%fwGk8B5_#^T8vRM8yI|r+By8{y+QHZ8uKoqx z1AoQmnHGnJuR`k;MrW=(TE7-rzcD(}wz2#^bVjD4OF9#M|8dOW`F}n>*nmd6o`BHSsUq=6a;B`#L!)U$pXuy}ynaKNO7uQrlTD!j``Qn&G;S~=(lJCf1vNBJr(vqZZwcW=nND`_f`+Ajkm`9613iP zPjUX;9IGj?;aAWZ*@0fkyV1z^p=*B(J)URK`q`ciUW?9LIW(a9vAkW(_m0nRkLCBF z?aWS+@H_r2R>m#y!H?L1{3Wb{9hSwf8XC}p=x(2jcDNJ`Xcf9dTcYow9Ua7K_yg9! zLeGS6MY1D_N)+6ORdE%%tB;~n_dj&x=g|>fwLDC9QFIfQjoyrQG!IMRi&z{##PawH zrelF;!|(rk$Py3RTH zG>}K|dR&j?@DjSW$~|v?oWC|C8dESl`Vw{||0A}>x-Vo(w8JENQ@)SRNcI=Q&+#JI zjeKu(ir2>c3G}_1D>Eeq;v{T_-=IrgY8A)U^WTt!r(i4^;cRrxH=(=sWVG;0;b!ZG zF4Z(_iJQ^A@DI8~*;a==Q2-6JEZTkp^mKKO_Q#|zjw0cvnh>3imM=t?;^~;*f^M#N zWBGpcy`RzJcmdsvm%SYJPX1_d^fYClr>iD<>gvB7fB!e3paKOQ@J$?p{v@lpCTzAI z=m`3wYd;!&z8Ib2EjR_UtfgKi?ho`U_vE?|*fVJ0Ytc=;1#NHFx@4$uG*K+>SQ9H$LAN^IxM=_&r+hXLJevLib9R_2Kw7K-=vY^Zn8K_nrHgqH(qBC#^>*7~vhXpo;`swJ*RYZTbSHoi10eycs zrhfmACNYSD2QeLgK<|OtrMs7s|8ifYyA& zzBvSNBPN~dz9ifXcVKEM&?&wj9nn;@!`bMuSsKgNp-Z+It^Y0>;0Nf)KgApHDB5nh z*F!rs(R}mQIsc_dbfmzF_rwZ2(17-#Q}s#o%UFI2Jsqdf&3Xp?`elA2d|dLPH)K<+ zfOla-d=j0h&(WFt?hVeri9aZCBw4nEW0M=5x{_EL>!34m3)O25W}1a=ntA95oJH_kv8-u1UIU zW>8|&Pok6k657&wbg{Oh+wnm31Ujd`qV+GJp=a6=uCP4l_U?eau`jwS-#{bUhtAzs zJ2<#DT;iSZ2lr~|F1Z6o;9RVZ|Dr>zx-;CdgRvs{MOY1YpmY2?dNmb!H~fg}f*#`K z_iLex-VP1CJKE2!X#EM%mJRCqHKZ@>wGw5!+7|r^A z*w(qwkzR{wSQxEW3=N+ zOpHYvUWv}YW;D zj#i+7zZUa*(Ez_hJ3falRpyVv&)gj7U;6aGWMvYgNO%=3Lpy#U=GUVQyn#l%J9-GM zcQQUd8}pZL`HlZf4I+}pb7;G(Y1UReeoPR(k%NzJ~z5{ z>F6@KsVz$Y>(^rasJ(O|57jni|r48%A1A;@(KFI z&vGDKM9r`s`Fn97u0;dNb1?kjuNJyQ_o6d59u0Ilx&)7+duj=~bT1`IxM|)*1Njou z@e;b`>7RuE%~Qqbo#==*pueHEpd;Uh&eW0k{3Lpee~$Uz&>6je&cx-PhCq^eN%&%E z^g;D#V>Gb#n2y6@eimAPH5%aS=zBY(`_K`8fd=|5TJI+Gs zTnue61D&e6=v1|f&u@<9x1;qYpdC#^r}&ZR;^=a8Ppn3lW?js0#H&63uamH$-KhfB zJo*h9*jY4yf6!x=^HAuhB>KD(8bIBcZ-TCUd-T1Y(c$QlO^VMKU@_1CauVfm2RcPR zp+7M$qQ@lf;jlNVqJOvA6-(kM%)o_M8h1obq31uxk6gI)>*b;X~ulgc1)CGO9U(DZ$Hh4eU&RjIW=h60FMQ^%2(XY|3=S8$$ zzGIw!r@HvD@V7z@&?&kV-NkpJ7004$`d}=dhjzFmx;DBqdIa6&|3g1of1*oV?#qzx zg8pUEgGmxj%{%D%{{-Eo=g{+d5e*>w@sQ7lZn{!vc@?aV4X`ziL^tE6_ zIp^NC+W<43!G#?sBc{K7`=y7d}c62LR|6X*n zO^q&y<!cx^k-)k20?a={t#nyNWIy28DNjQ>M(OtPSJ~$f7PsQ>J=ty$?5CSfY-fUIT zZ$vwEiU*??(|u?FbJ4xCB)U94Uxfyce2au5`2g$UQS`-YehizhFxqh$bg8PN&s#*V zM`x-#x)cMW_n-rN5N&@E`u=mVd{f9L6T3+m`4RMP{v|v}WdA9Y7eYr=6+PFj(8xQ* z{LScE4naG*BjzWf9X^N-U?KY6GiYFIu(03%?IgTFj-eILpbhyLhRN5t~^Xn;$iE6@(t;8fg#{`hS2bC|*AnBVVz2NHhIZ$&SfX|ck?=%!hKUL;S) z{0cO{wdhj38K1w02JitI;Ad#SUq^pH+xrz=s*9NVi~B477artA8z>g@<)byx4x6Aa zcEpa@7p=c0KHrQ^`Fm)+!!dsfdy_vO%e(y&{>8n4zi|HjsJur(MZAda>N3BEhMS-l zR6F$icS1iNx5o0x=)!DH7uSM6oG&=I?n2yb3`9O4ON1^@Qi`JWzB;g3>plh`d zUArgHWA!5Xi)a&iJkO!$x$qXvg!>_LI+& z@c6xgP4PYSPdu0X5ngDC^T_waarhHD@`2|Ciytq9c3~9pS2& z-yEO6ixnu}AN?C0V3~h7|4wz)e?mu1(FVF;Y3vvC51})$0Bz`LbThq=4q!jJ=7-RF zUqye4o*8PT@rDHw!~Z~<1t7tkN62QjsI&;Wiz1HOQs^UMAV z`TXbzOQG#lj`?QjdmYe#lU+%;%ln`sn}KC<1Nu|z3$)@n^u_#-{KLpz*{wzDMWpTX3>xU-6cQ@0sillRbFdJxOtujr=CpB5Up4xRE6 zX#J|uhS9cYM>nGN`o!|vqobpfF`MWA5fYAMA-2Nh=!i~P0e?l0*Pm#;t1^dx3ZnU< z=*(3_1FD6-*DTr=otaM2-e|qSnED^?-$lYxFcDqL*|EaY=-R!6>9{p|4DI+|boXD8 zB?OcU9dW*xFNqGM92!tnwBtHxe=V}4h4bGnR_ulTMZ*AWicjD`Jcj+TY1XvVCS8us z$cO0fhi}k8@@EScM%TOq+HplRkm~Vy{rJ3Twq$sr9R)_-DSAtEIC?zCqYW&IJGl7x|eg?_D0qF=d-Xom$Z4{wpcoe{D zn1Ke+7p*@KZTJqf!~4)vGX*Q*GPJ{w;`7hY`p3|<{|T9aWa1(Te;Q@GBFw}U=;q3W zzEA`Wq#_!56LdG5se*e?13?s`IErf2K zVrT&6uqD<;@9_K38CZyp@M*Ne7tl3bgTD6$rUJlJ0O&xzkIygq-1C3=RiQ#Yv_e_5 zfd*I_+ePn0J6wbY@D$qNi)j4~=$_aS^Pi&aeS?ntPc)FMIl@w3i%HkKTr8-ER%jpd zH={q5?m$N}8=aXYG5;)W^BLx-Jk7Wr|w6tm<>OZ}o*h6Z#L?Ktx_X{le$wJ?MH zNPG&Pz{*%JFXw+4iJ^HzgrDFd^7-fdy6E%UV}3pw;Laq8#w5;RKdf0GE%i?*7h+%Xr?ES>FBlqn2JQF&*2F}i zFmtuA0@KY`CFn1sw32D5zvV83o|-x6CfkTju|cV{)IU?6 zh%UvCm^%M?N{5k_#;QE%fd(`KCu62EVd@@4r}iCejXz@-tWh@1&_mdX{4sRNGRmc; z{yo_#*qMCU^5OY7^rqZ{1wH>KNqFa9LZ`e)g|x(^Oni*cKYV^%G5iq8nvs?mNj?Lc z;}huSJC4mTf2FXtJ+UMCC-HVXjULPHl|w%R(BqoK)Sv&SlJH`ggU-NXm=$-USM5jW zoqZ(ce~8b2#~qYkK(FGhRYLvk=!LWwy*G~F)p!!Up#DJHzpN_f--dHk4R?DHbS<|YBsB8rXalp+t9L#+!X;?O&!Zi0i21kC8}noIMm&OkOMb4J3>7m~3pd}@ zXoYn2W~_O4tk>lxGg#so06Z74rC7+_=)I`=o0^iHLz5&dWgIyI@N>F zsk{^26ZfE-ZC)%t5TqAsb*P?sl7`iv|)(rQ>P3S3_g?D3eH;GCl z>emW^3`GOE7v1eibc$D@BYg#P_c(R!`WJ#icQ5xWPy z!snw)vK~{v|F@EGE#F7i`ViXSaWsHm(HY25FEp4JZ6F=pMCH+d8e<0Dh_3x)w7n(h zo>`7A*$Zf3uVCtbxVw#n$Kyk^<1f&FezpQ$K&L!={qW*-XhUVuKgU-?-y4A!@P0JF zu?@nMKY(^P4GnBQPQsUv{m%#*h6)+cy3v-=&S---V+$ONj&v0|vP0;m{Q})PU!hm_ zPw{!FMj_zxXdpGvfi-Ew`S*oRv7k3P(qXaUM05&gpffZV4P+TQ11r&yuSYlAPIQD{ zqI>Bay7qY*hb5|p{`_u(_S?5H<9F?Dr@+XP=+|x*y0+h-9sGrMaCwu^K?(G|`e=il zWBxYuz5CJKJ|A7m$I*d3k6uul(HYp4j1NA;YbZE{j`(kMN;5YNUKYI)oq?R_3=}|@ zpalAUS#)F#(7;0VY?G@K^0Rtc-imDf|l^an5Gp<5M2f$#=#sco#aw zJ7f6?^mt`z9)6G%M+3VN9Z)ZH!~}4M?v-_D!&}j*{vhU$q4j>oa+s-AXukqFux99cy)mEP|6wG2;Q>s?Md;MOhW_f^ zj|TKJ8c3GbVZ_%)o1?!I?m!!U4sCBEx;fv+s(1pu>T|aVr>O}htR(cDyE*zm0CrAJLBfhpv5E+fc6rdUMu7+wF$_`0Nw&OR+lnXWMfAos!Qea996= zUbTNk|HE|hS=)svFN0&qSI51$3g5?j+lOC7jXQ+hJsI81ucEvB1iED3$NX>TjGXU~ z3~OBe`mp)xpn)_)H(h&liH7w>Qp?hOqbQwBRYtX&0EtY>2{Q?V7{v+1HEH{Lu zt)C=eLpPx#AB09a9G$wc=w7g%BUyshUlv`1zPA-!l6TONzlY`V9J)lsI)9*ZtR8(N8OrdQDVJJ1n+ zjBdv7(RMGPdmu;mP_H05V`Y*goU*Fu=dwY3&@`5}kNNIs1O3pBhR5gQV)=v7N6~hk zKm&XR4R9qI$Qv=g8*MLngoJDL9U91KbVmL}r|ycILd9ayif90JV!ma}cSbwB1#NFI z+TI8>pt0!8PDE#N77|c0v5`7umoa}5?cjGb(Erej=b9cN z;A_z-E{Q&`gzd38x_2JIg7lwwj)Wb(6@3?NcrQ9dpP_g6*Jz;spn>G;88&MXbc!os z32cmxZ~*%Lu$Ui%_LD?s;vvjV|A~br@M&~vSE2!ILK}EH=08N2<}f;<)A4ztS9tHL zXhF22GH4(fXnVEL8E%RO&<2yP%}udFpXd-Ykh{>4O+s(3M`QVNG_bX3;9H{a#`2G& zN6};UJsS80G>{yTu4ZVd1{2@A`Lzp_I z@%c$~AitwCbRMnuAJQKG{O6Xi_PNltFNKb%UbIzw-X%UCj0P|P?PxkWl1HOYqaCh6 z1745Te-qt|d(pl2C8qxTe>Roijz$~G(KiH87=5uEI>K79yh$wYfY$FB%WsS2_n;j= z5X)zwBVQczPoeFu!qoTwH4?t?W^@mF>^?yw{SF=Jd30tH{X+Rw=t$Gi0869oR6*<2 zM>}pEy&i41D_VabCf!_j#DXzsWDlU{{Sox}vRJ+neQ^`o&~~)L{g~Q>==-P8&-5SY zReMGMuvdzs^{Sxt8uX8U{%=cxBkhLnf!kumiRfmWfll?~=;nD54Qwsi(B|m7Xgdeu z^ONYz{Sy5X9l(F_`Q-zWp`qLZ!iWl?Bd-|qjbgqd`eJ`{#KX|3A05jlpffTReSc9b ze-W+!YRqqo`S;MJIglh_Lx*F9W0<-!(UDw08_02M7vt(Vek;B6{~f9LwjR4L=d{FQNn5h|cUA zXaGCWjt`*i9kJZ+|49-~;qT}a{f%y>Y=c8X*P;y-MguB?eg!ko2CKyK+A-e{Jw+{I zz9;&AKeXf9(SXKa(#Ll4WB{-K8tR~v?1ZW zE73r6NAse8p>b_|USkO7-xuq}g7#{x|frB!-6PIip3AB$`lO5hvhqtcTxYMNGdv{O$MkSdIJxSOM2#E&LL# zcg?WyS2j(sH~FDh40ob4^ey(n3)ls_4Npr9z~u8J>XNu@MEC~=O|cF6ao7~!MyEW} z9l@ell6(U!h5gWfpfDA0!?&?1mK&LtxD{_l?~f0om(WdK{m#@tlZi$o(kU2=&GB(G zpfAu!^NtFCV=)Bncmeu%x|`9NIE3Xf(_LYTE277xqC=S6&_lAE~ybzs{OX%JxJUZ-wa_HUPAm(qt)SkjJln+Js z&ZE&qn8ow|gb92G-DJTnDxtQOKcCZr{;Kz7B-a0NV^)IWQ!1m;ej1PaqITWjse+--A zZuFwMd_q|JJZO3A37r3SB&JhvBOXAHPnr9|KOUQmZOQ+EgR#-X(7+1xm>x#|W;6Hw zVRLoH`sC-}P<$U7V)aSk6x@j&$Ulpg|B@tO2Nem#4(`QU@F;q|>pl=V9El#IXR$JV zhHlm@lS6q!^cdcW?()^qA7gphDdF#k2S%5or!0AZgb`oyU^q^#&<;kSYqSjA1Fxbt z-W%vHeh)onAEGzr{`mZJ^rrhB-K^(gKHJog&xf{G206ybL}e1*?Khwe-X1I5f$oXX zXhSp5j+USSJd1X;60NrxJq3GX{wuWpZ)p9$(W^PrL-7j6)c3y#2`g5>8dw8;;WqSG z-VvYQjn2S*=#@GH-IPy9SD}G!jP8o%htQe)8oiQ#kLA})V*sB2q9hzaCA8tDF@KX4 z$ls3c=5c6;tI&Wq#{8S;?%sn2co1#xE41U^&{LIVdZ?ER4YUv@tx%Cf>Y_mN?a*`E z2kr2lSUw32Xf9fRS#&j8Z!`Lr)$hdoG4yz!LIcb)BXoQ<`k5{^gY$1gwJ9+2=IG|= zgypdZ8tG*8N9lYtfOpXM4xmf+CAx`o&kXghk50tWl)sEF=|QxgBhiyHIc7%o8wLJF z!#`*~-^1Y}Qw*Jn#%KdKp}z}mM(Yj4VR#1`_z`rIoj^C^FX(%jXN8WlV>9yku{!ol zk}&dF*a6?e?wDtG82M22T#rYu;7w>iyP{vBr{^5D#@vsDKeqQo1Go>D;apsaRp*2y z`8=BZlSCmNT=Qt?pmMY^`a(x6&gb(l^oA@rFWitL(HVFj-He~0BRz&L)i>x3nP+~u z$gam~yM6jM05_yl9bMzkg1?@1?d`~MtAS8(Hu{OwX28* z)EEcg6m%DVhwl2*=vA8a=@3X^bd%M=Td^5Bu;^0FmxVPe zfWDZ4Rj?Me!olbY@5A{c(9Zy3~!(-@PTZO5=|Jy;r z$oHWE97R7me?+rB8#ZBnw7dkm7iysOTcM|-AG(<*V@X_z*832f;&H5n#a4t(*?n1GYf(ccM4w3QWxmI#Z|70RBK{ zqQdj>{5K+D2RER{uNS%mx1j;tg>Jfu@%e*j2lLR)c>qgez8AvBssTC!W6^KM6KMT2 zSP`qf82)9nn_uMom#1JJ1!Zw7n*SEtVUCsI*K7~;oG(H(S@Ek|f;K1JSh~k51hq*a}}oEB=M9d8T#Yf+>WK zv>v)wMxncW47%y2#r)%F`zx_AzJ=BBU$kDb$}8bGG{dG8^g{1}rD(&euqv)YFQ^mf zDfkcF6FFZE_4A{fsxzA&?T7~eHfjoxoAMoqEoyc{YkeSy_%0=1+4yBxQcHr{e*1K)v1w9rZ&49f}4x9=)<> zzQOr-^Q@-85oFmCDqM#~SP`9xn&{d#MeFs9&+kN+U>rK752GDC9`h^FWA_?X!*elT zc5A3VBuT;w_o7p_0W0F$=uG^KPT8O6`Oms7{B2oL^mH^qPsc#?c@hou@mT%}x|cqT z<)_gW}W$yU|lIJ?7`20j)qsx*jjXccOdInK+2+`GWtR@^rGsG)*Bh0C(#kjkL9b- zj<%pnvp?p4M&D1{5#G;_*LnWSk}%>HSP46#Yd;ZfXd1d1pF~IUJQ~1ebZPdWf$l@= ze}m4*d9hPjqTCy&GOAfHqVW zoq@(^gPpJe4n%(kEQ|T0Sb}{1UE%$D=!|qhH+P?1$?(D`3ha0_dJ%1jZpSq8@1jev zJC^T{`Ol)q(ZEi{{5kYg{D%%K+k0U~u0q=>fX;C7WGtwR?$$c!i*3*bJE4Kyf{u6u zdIR2%6>u?H?;Ugr_M^WgzePK^e0TT(lMic?Z;!S&8J)T0ToP`Y=de6(L8tONbSl&L zgztVIG=TAFM-QW$=qWUS=c4PQZ(}FQKSnROqVI?QDd#QNo%{|YkYwW8yO z8d(Q)6ZJ#aYB;+4A3y`0kACI0p*P%NbcBDRo3qjf;l0-AjP=1{I2s-BBCO)~e>Djk z_yYZrc@h1k)8xbO6YLgr#4FI_`dZA_{wOR#J2aqs(SV;uNB$DF!i$(0n|>Ugw?sE# zXUt`Ty-66^aP%)AW?^&u5e+P3U)Yo#(7n+a9eGdm7~O+zs#)kBS{Qu}Jw+SQCD@KL z@jrA^&e+d@Ow1u+#f9jmS%xjG z{gZH?6hik%wNE(zzSy1uJM4~*a4@<_#zp6#BYh4H_%(Es?!r;{IXYwQKMiZ!4PEAQ}NA?j`#FOY|%zZ2bToj%1GT06KU{_p+9`Cd-!$sF03wi!0n!v^AJ+K}t;X(Ag zCXR>5A4aEkE*ij-(T(WE^&vX7xxWf)T>u?%S#-%Nq4!Dyyc;KBvNMUZBpgBW6JaxT zLZ@~-dL?f_XJ8-N&{1@ze!w5`0{Z*l+poh?rGJx_m`J`CT7C#^@0xEzpf{kWWB#|C z|BfV%P~Z(!_Pg-s^C9S6z8RJ1s!tO7L9>Y55o@f{Iz0fHhj?T`IfVxFd#arCcY#C(1y}wYI;e}+lW&ezd=%|y5qb(Qte>c9W-0tp*@75$~M4Q=>s zbh8|Z`QOk@cE#Cn%*vwA+oDTyD|!KqLYHJLUWF6Uk_(9KqJ2Tx6oj5bVnu)zLllI@-|z^rLnZow5JWwa@l@2s95m(DdIq|3+LY z7F0wduYv|t6MeBU8d&?7?~U$(A?V0QqxBy|_s%1D8y-aiYW_zEqyyT1H*{utCP{c~ z2BQs)M+2IUzBnhAFGiQ-dGtKLiO$TY=sj=>OW|eb!pvo$?e>n2MBkf&RdESAW68ZF zN|X2&y%4hh8K$lnrju_G^MlYmG6Nm?0xXKpqEoyBouT*9CHg!*{|XJ{KlB*q`76w5 zWC_#Vh?mUxtJoRgVvvp(E{vzR)+8k3{#v12I1veeY>>>DHhF*ov<0u2_B$ZRbRM zeg=K-BBuWPAK5R42J%Nsp)XX&X4pKIPenJ+{P=uvEPpY&2|Z0aqo1N3okRor1HB0| z{T;jpQ~&#)(j?qWHKMK2hI*kR8y559qBEmQqpQ)5wxKih0lEZ-(W(Cz{ahFOC)^)3 z(Ry9};r#pC?G_4*>~U;|FU5*~pg$mT{~NB%j%Y_yaUCu|H*Jgm!jknupASOYy9aCI zL+C)Zq4oEo13vLz{Qmz=fyd#BOChq7=uKAzec^ia#<~@qnThD8eFWXztI^N$cJ!DX zMc+G%wsRTRjWbXRotb**aqh=||1Q1ao*(UE+PcK8pbWBF{EQ-2g|kFN2(=nc6PC*T`c5o=zSIrVqJ{jrqa|M?_r za5L7!qu2!VULHEQ5zCREjQ)6h39DoF>>wFjd;ZsnNzQ8!C}-yI-~a5KGfe$dbaQ-)ZmKWQH9Ujv>P)#phXv5*)uJuY z_j;i9`=j;misduV<2w&MC9BcR`)aOa*tOd!@WoHjV{#JRjOWl(kd`}iaCP+BXgYc& zmq#0{j2_p9cnn9Od*p^ZVUtflPsJ2;FFckcQGvue*dPCg%dz7%Oj#yIj&@KjUkI=^ z8dw{2gg2ri8;w1a+VhquS_yU{?C=nOo9z400JM*JJ?FRfra|M^K|rl2S~g(c92 zE5&>rbjq5ed!r}X!O-}840?f0M(fQ)>n%g~&bs(~D;oGtbY}Nk?)g7N!YMzFrSZx_ zVXCU35jTytK^yFd2GAP~cxZfn4^}5XA?DY_=Nr+BXgj**$I+QQhpGSmSB~q#l~@#8 z@t`W&(HL~irl1keLjzole(l~wXX*$#rQhI0{1eOKJ%z)jdjbt~JNo`!w7oNhIsZQR zlLFU1Q;{&0d7_1|6y+t*wQPf}us2r4XVA4jfPTJ@qV4^T2J~Od=P4RytO(jqMf9`W zuqfx>ioGbXgFDbEe*j&p>FC-nL~p_;(GLDYmmqtwkiQnolP`fS@p|<6Jalg@LuYhF zbX_dpnv99<=nFezg#+jmeu)(@YkIg+t71*^Jc`NA*P)wfCwkF*fo|r%&{I&VL^%I7 z(HW?R2G$DMJIO>h5`K?wK|8(^?f3z-g9YfZdNG#28O!&hH{W+?NB^Ps#?>V=CmzLC zXgi;w?fii5rGL=&ikEW9IDd6W_`M&1Hk3qPcr@l$pnG6LbSpYzJLB`c=x#oW-gGC> zQ*jbqqF>RGpGWsXmeS$*<(T^S|MHOVm{r7DSU=`Rp-YlP8+;i3ov;u+$D6S&evGa0 z+A^VjUo?>0u`-Utiue>7`1@$P`!Q+37bJ}E8?@nH(15a*4NH?3otZLdz1rv+Hjj2j z-|LG``Dpb08R$$dMwfUs+RmHU9zQC}`M1FW<-*#RLSLwbZnk#l$orz3a45RTMxzbR zi>^T5+k^)2ek?zR{*w9y4Y+do%&C8#&=6C5s(doM@FoTR^xBU$d_{%Ksec`}FjgZ! z6z|2Q=qAfqF_gE)y5z@UC44pJzrrfy3uJ_2*A{*6esoDTqD%5^lEmF4a#qTm`jgNU zG>|vZo9-{{j*TjZKo_8!=mm5QUqWYa6FO5nV*Uek#D`<~N%YG86+LBFREeAYIuh>Q zis;l;L(g-|n77T^ZfB$C% z33ug2bc)_hJ>XxWkJ4Bd&rr&^+e*pld!dmXAYcVjg-*o=3m?JL2;b z=-#=2zV|OCU7O2lg{doyp4)P0gmq%R4I0QzF@GC+e8!*+&PH##x$*fDbct5R{8luu zz337hN8A6Y7U$pHeUSo3+_`o*Mx)R*dK&HMd32L*MFZJ^c5o2gR41dqqXWoPC+vY- z(IRMh1@ygo=zG`K;r!Pi(VGH)5X?b0&ua9%zK*W(ujq>zbwfi<(0oTMg9FeRn1Qx8 z4;{cRbn|_Pj`-7<{|*i4=OhW&;&1GOS?h((HULMEpN%)*1+0#3>W9020{UmT9oPad zp%+w(2H}Ev9qW@ng$7chVHk0FG@v?YzsV*fjI14c^YubE&2aRq_%Np9N_1x4$DViy zZ^kN(;tvsY1{cNrdbIvlw8K4UAp6lha~SD2nfQW)Q*jzy+l$dF8;8IOqt7$YJ<6W20w+`KOyU-3lMrZ6B^qcTcl7v%!P3zELRdni_ zU^?C!%O6A=o{z5Sv(XLc&G;_b!QSZc=x@<%ZNla*gc;N;j^#1gkwirjNixxcgll*w zT5)`=Fazyq4myQP(1xGI?sy1Yl8p8tz)9%LO+k16^XPkP{@>MEKu47|YqXQ#GWg&S z+}+*X-6cREfuO;yad&rzK?f(eySuv%GPn-*_Sd)iUs!AwR z1+_wlt$z+`BG;krsy9%traz$G8ReNdMz zd}RCtl^}9W$1Xn9?Ufel9Z+#7zsAN8<3OnA!K9kp|1wyKLVnH=wrW1Jp{y zt>pyH2UU12sPVQ?Gahc72leW?*?0l^(|-e%FLrHbMN_+JXy#R*W?m0!=1rgq>I#); zAk<1sgJNh24PK>wk?A>pK%m4n4pBo5vL8 zp$cgVwf9}29?fH+o^&gr0_`$hg4&XoP)qwAssO(R&g~f+>QNmZY69u3pB2ikn5g@| zG7Zh70o0>67^?EoGJx};o{XzuMYsbhpl?IRFDg``q);oC6>6p0LHT!u@*fDbvg6@e zI2XEoX;f_FENK;}nbw8rVLPZpIRWbao(2_YA=HfjhO*xV75Iel8kFA?D8H9bg?u)> zUt?!HYGdwy4a7pBK*^xaKn`OOr~nn9R;V_VeH$qIu25Sx3^s5?)0-lJy6O)z29#QtH8gY z9@QV9>=U$bRw$>jn6Wa<$an*&6&nP#Qts(Aw3myZmS!bXK?jW|pk{s^Y71_|yzn*5 z1Jks04qF4L83n+LunVjK%LF+3sZd+C1nR78g%sj;9ipMrdmSpkbEpT$SE$n-tCjN| zPeZ867s4fQ3mgm^v~~)-0hQnh)Yg23npliB&L^qyq4E@kdTpo%J@IBptfKltP58|CHf7u)JfYqTbUkapdzc3cSchGebjH$ZLW4k-KMP>1^* z)CyjPD)4C#_rDC^qtL6BPp~tS!cYZ_g1O;TD2Jm^x6?(a2h2OD1Ye*E{RI^-N_*!l zB!tpuhSKLXeHo|~uHWA6+&*nlTt#Gd8n1G1GOSeoxa=Em4+(s3$<5+pxz{of%)J;m<4`? z8DZMa&e^C26|f241ysN_#+}9!P=42;CUg&K#?PT9_6y1{e>YZ2_kTGWTB_Pm zw^a*@Kfh3C0&$_XA`O&XPAI#=Po%_$Jhh?wbAs)QbFqisRSai4z-Y0!g4&B(pIWRQ!V7 zx&IZoJPK7*3##7|%CQ5~UC__QCqpG(1XIGTP>1jel;2yZ!~7lUO!@V2;zorUPXx6B zX`l+q*Ms|Cw?$DDTKbAmGieH?4}c9}N7x7+h25clPe0G^_f3bo8-7B)Jm>1=Jd$fb z#hC$hNasQouncO2)S-Tx2NfFGdenLp53 z>ZHbWP%DrF>hKhRC1F{pl^YIKzyheHT?J*o70P}O)D!U}R3Ue){}Q?t;1>-QkdV7U z2Hu~F>C8sb@zpQ``n^zzo78;IszS9{8^U*&BrT+=D!dw%a_ms_{UUtVp6}k%6*ZcqLG%BOW zG12*srZ1G?QK*U^K`r%fm>Q;>`p;ljSayn^ z=eOdw!6JJ7|3pKlIoDKY&pW`5^tVFIG|e<_6WAY?fj^*TR&u(tB^_aY`txBhybN`y zi_h?L^?-Gu4(&-e626BOVBeYKQQ(6#v{yN2Ik#VZn2mlLm>y1n-QW(`2WFk^9Htde zg*=2hw6W$mTh$15qQBAl{&St*8|)2NpuYy&!-4adSX~;=Y3L9YpYO0C)Y5l@nc)Pu zz=r~$PH)47&TTXU4y3;emWG8FIV&*$mZHA}YD+#t_S#isv7hH3G);lJZIdnG{`aSm zafx%kR)QL+0rkLW0!zU5P%j>Cu+9lB;vTQSJS|AGp%3+kDF(s;pm9cm)?pq{8N zp$hp1_39XDx%0A}&`m>+*bGq5=#o%|b)YJ23H4&p4a#v0j0)#Mt;lj10sakTzZvSu zc?2rXc~~Cafr_7Yg;RI|qq{r}o&I`Idpi-z@C@{a_n{y3`OEpfAR=r|KP{AgsBt7z z;<2zAoB{RxcnovF3M-vM+6U&Pe+X98{r{DQ4o|67&S4q`Rgm9mXU4^#R-ii6gQYFh z3e17ps%20GZ-+W7r(kv%eU0td?`QfMFp6&MZ8Qopun%elzC!JF{why2Z|AbnRB8Rvnrs|s~ETfsUo6w2=yjOoLxosGZR=oI=B zs(=`qxc^mgqD_9TAuuo0p$dbV`7Ws2=eYH+TK^H$jNieA(6!lF(nc^c-2qUy<#4FN z#=&xMKGfav2x`LrZ07z~CErmfQRFSoDNX?Ow%Q+RhB=`UmWK*h4{D3rLfQ3$iZd3f z@R?ADZ5h-`?SskTb(j)q~d;S#4@jn~)3v;$8o-rZR zcv7g_GA+~=WQQswKh(skL#s?+dkZBcSf<8Bm4ngoWWFsM|2bE+<}dD8Epcocu1g4a|qy zicL^UbO7o>bPehd{enuIaJQ2%9n>D@gWA)I#(Fm13Mx@I>kovQ$ONdfvH^Pj|L-F- zWOyCwP&|g(tItrUHu4^)pmb0xQv|A@22gfgpq_ApjcZ|c`q!Wei?r8?8xQJCrGo`v zp}pMy+QY6Ww1m^34$U&CE!hoqn2td$={cx?U!i6mai8<(P6YMbs0F332X%J@L2cWuAxjo|)$ZYN-p{mvoD08=s$47C-bp-%NIsHI;5RmcXYmAU~Z!k2It?00}N zc;Xc}=p5dHhn&}heo*iEjzOKFScjc>3EVW4APp=Cvq4qd7HS0sK%Lf6P&1zlHNyo^ zb{nmK9BM0WK`rqs8+RRXCXx_JpWga~q3$wwB^r9wYYTOHmqE?+IMmW#h1#0CPzAk) zvik4!hdN|sjyaXL zfGVUD)C%;3N-)&MM_YfEaRJndErTj>o$0qg`R{}}W5-}T&;4%(AE1`-8`SH4wByd{ zPYbnlrJ=T}KGce|gt}|GKqc%Cb!LWJe;U-x=R+OF-B1&|26gv*fS&t5#tFwTGt|;n zg4*MbP!$h?n(=t3#8aVGWGU2^tbsa=+li%yCwP!t{W;_mh?h2>`OQ8H#+W1DOLia#T}(e}h7M6YsQRkOS)Ws0dYgAk_E(>(7Q-p^Z@fr(p*87RoQt8AqQFW~JW<=7b|) zIv56Z*6z4zXbE3KE!9V;XLIDU&I%-hI(%8JUlMAsYeKC=E2y&&0<}`zp$Z)gwbb*W z4)aRWAB4KS??M&eenmqGewrfAIj4ZsP)l3@%AqLKmQ;pH+!$&}+du^hg|ZuF{V7l@ zw-l*}x zb%QEsjP++joq>%oJv;+7k&jSz-=VfF+9mFP%^)caDN;erAUE{fc2I|{GSmt+g$fV| zmAE_fhvQ&cxDM*DU4*iG1r_Hz)P$m3c2*)L)Ji11%>A#!kq(6tWrH#-0TrMuR6%v1 z9ze}a-yO<+C{!WSq0Y!UsKAGz;-0nsRpWiAiN1hZ@$Z+p|Fw6quQ(3Lpbl4BsDyc; z5>$qoSu3ce?GJUk&Vnj<4OHR{P%E|5`iG$Q{tQ%}TTu4TpbB~ArlEvCq4p@|RmU(s z)YADw>9av4$ZISP6`&$if<{m?ZfEQam9UrfheAzgER^43sJ!k?G;{_ILREGgD$p6I zEx2O+$531G3To-UKn03=&GAnHHFJNcLz)Sy@M2JQWldiXDseC*zT4G@hAJHe^=zI7 zRp~mYK!>0luED(U8Pw7zyY7tVfa;flva1iZB5k22(j97o{h=l_1nRb&?9p@oO{bws z=bFJ1s6sYEJI{wcz383 z83x^&(HI+;0ae)wD2Me>6DmdH5cR>|+7|QMf)Fb;2RAFDC3XXEyDI^Kh zZJY_}_ALc9-t4x$|L=@Kj{TwT^Knq$n5=;5;Rz_mw@_yy#vSLKQ6{LRtN^to)u0Yv z17jf6SqX)j*hnb*Nl<5QhMR^Q=bOP_P&3;AwYPhqD!&MIMqWT|!B41y#ZY&_N~onj0Mo%oP)i;4o@195 zDsUF4IQgIgmxU^*2Griyfm-q=Pz7{^*mM8W&=QS;I_>kIX0RD*srJLn@F>g!-@$w^ z-F+u;6Q~tx4YhUspbD4{6?YL-fm@*B?S(4zFpQ=5|CeYe;UkZNJ%(BV*8?X|WGIKY zP%}vd6(|$bisgW^F9WA~Ko!ssY70W33Kq3m8k&G^0Pqdl~(fLh`#Pz4vWepRSA&7oE%2&%wP=+=w|(a@hR`y#Qm>I%AnAFUegQ% zpblRTsLCfmInIJgxDcvMXspew4?KJ~7mzII}U^W4Cjlx{ePB*_WnC81tYw6o^<75UHT!gFgyU8!XGd@ zZ1l!?Z5U--53{1b3Nt~!x6YPigL)M#Y%BqN=u6gle*ccfZZ@|P8<<$f6PcyWM*hH) z!d)xq_tZUwZ04Q~(dh{%?`+ftS+3?3 z&J(fF-QVaWi)eR4e^ar@wZjSt zjKKO|MzN5A7&wh0SRWhwsy#6|NxL%ow#<4fc5Tq_#kM$s$52!~OZ1Hb{zHF+nCHy5 zI=X61EFP;i8~ZAZOLlw6{*Nc%2@(_`cw!8qF;Im7k_`l&NP8pg6a?ADvVPPf6Df=B zTWjZ`2>vf3S3Qy?#6Bi5$62DwurOoIY+|3`CTq9V^Y#Bw0i(KMHt>-Ei7#7!P!YT}_C$7+pfHOz7uPtX_Xy z*J;#cHj-Afy^1V4DWS)U$e;EB-+NIGSv?3#tq&vQ~D8MUav1`a` z?6L`7Cr<*|U>i&S{&uX_(pUw91|%+rV{{TsBG@-{;ibLJ{*291HQlo!4w`KnCLpQA zU?A}%{n(<8B%fskrgLNTw=?Ey$Pzwha2Ek?a{n^>>+_xKuH&pWWpw{*)Jk_bMrZm%~KLdp5Zf__C#{VXS}oi{?Zw9`hmeA z+7B&gE|zQ-4)Z*&1f*)oC|ml}6g-G_R|@)@u_qMK36{2H-wT8BKZ;K|l70A2kLU;l??byH*T1x5VfPQL1${{}flG4L zmU<}tgcP&DQM<+y?>{cD=-aNuOt7Kn|6fGA+Nxedg_52G-^EHSVTR2K7J+tNXUNrn zb_?{sv5}0Tz+wbjLot$F#M;8upCk#auu{f~ijUt__=*+q%)c59uLRI2L%%HKKQDA8 zC+K*R)#qw#3BMA!CH-kO+vb*7F-noRHT@kV_>-bOG3!RyN*YqcDPlJ_zr#LGerJ@g zTbM~)GfqicqWAiRS;~eapJS_2!E7=SESO~f+UmW9wJACo_6tdJpYcW%A?buZ1%4;s zRW3)Ee^yJB5aT-p>w)u3OYoJpR&Fs43z9`D+-A}WB871nkk2nY^=>Z7Qt)M-hp!y628Uer;T+d z=}M~YgpF4sQQQNr*C_tNC)8F$;}`M&-}w(B$xW2sNL-&F4Y+nwOiX50fh&=UVtgL$ zWblElP%&007CK2+3i#+WT`L(+LV~o!?MPzDWMVGGMsM#v!2{a=sOCI^s?%H0eHd1> zN{caG*KEEM=s2^j1$&}9&&)2sEhNfR+aT-v>F<;I@CKUHb5(%Rq+DmZo z$8bF-Kyrz|l8Gdgti^6H_Ft{gO0+wh%|@6We@S|-b>=ezU0&?U;^Rx)!u0P`z#hFH zYDZ;DnMrgDa+M;oQ9xT9^1)XadL@G`WfHiY;QTkJt^nEv37iH0)wD-qpMidS{3W+Y z7SCd@BKCX6+vBU@YBIP@lAiQ}8BES#7;I_|8Xrc#272IHYd7C~n3n!x>@whAkij@J zCr9v!=k8&y?J(&@yB0e%jC_N+_7NsBHA@0%OYTtf2h#tCeH6y{*3Bbj37egH3?cM3 z*69yo9mDPrc4x5r#n=^W!i%q7VxJLsj|I_SR<0TZct-$zvsl#%{EFQO0^B5EN;^g= zX?x`vjb#>R7wwti-x1qNc%LvOL}GdQ1wl5qs6$P6pOeBp}PM)j4^ zkHYB*?JeOFS0T|cdywE!B>c|or&CZtE2<>@+4%n8I%&nr{|UkMec@t)OB!*VX8aOc(A=ZpUcsh; zO~8HD3^f*!L^CY0`qjdXZNMQ5)qAB7wkrr6!vg)bBKqUAk7Q?TVzU26(akK@CJGPb zYE2OcKVrpk41+@nc!h!Y1l)-8AuFUV^!M0u=m?xITwtlE6KIgFUL;~wjSW>Bpp)e<|Q!3arKKtC1+gW-@_d(lPcA zc8N(k2>ng2NL-`vzl{AJip@#;G`c0kJx@D|6;qF~Q+iSd;e3ff$x0IbK$iyw*sPAw zpF$$ZBmz~%_K4HI2~h`ut`L5@$ef&?9q(xCfPCi2N|2eHHLO7ChLC2 z7s(C`2BMVQ;Tk}oPXv|Z#i18V`P^({(7zP!z$UZe=TksI^zGm{{5BA?DYi8!U;ypK z=KsKmiQ83|N*my`+4g1}4#8Y)sQfm8x6(dLfWHV(gLYZ;5!*dsEaGR;eRNwkR+%Gn{>N3M+vw8{?8_*y<0@yZ^A+NXh?#&Hu&A z?MHx^=+n?HK_Q21MJ^MhcetPnD7Y9Ge*nQFHNuVUAkjnO#Zj*DYc|DA1 z^S`DgA>jb4{4baj-6<@$)85UMidjmoP()S=n??TzNmemd1mC*o&XcSX#cW0Qf$_*T zTlpnL*Buts79qXqd)EK3r@?n4IJd$142gF#le+|LWC3!(Z1fW|+k9M-q9k}4ZuJi1 z7l8kE8Hqr{gCAYW8R=XOP~{a9eZ zOA=J_4@To~E=RDXR#XPF*+RboZ9e|>NORiB!WHt+6799v6&QQPb)Hy1h+B}jQ}Hd} z`4gvv@Mmdkl1@av-pAn_fgV`(uPo>=^kqocg+Pb!ldPrRkbrz*?~%$Rn2z0C^ObTT z$#*f{gzd^|$>!-TWe~<*;Rjf*B&?$$VhM@7o*=sy60TZB)!nNEA zD$UFr;~ zhhVrLMk2rjifm|Oy&MzQV|4mqK_2`EQ$(;6*mV-0DUAI`za>7yNE(Tv{$mxV{I6K% zA8M6FW^fS>l2inf@T(ZEzj5?Oug~Wt8)zRV_!{_^qjKHHt_exf5ICo8&urM2IO!Sd z$yglvuZi^qU$6Y5_kYDuOl2^X!DqBjP{=j(d02_5wu}X>Ag`mCoAJd2&uZsHx-w>e zg-J~{pMHu(|2qYrA&lCDH~ z%>qOqX)X+7aFw?plNjGadlOYJwuGoWk|^AYB_r{^aO0!tOX{&&t0}^tE!$0hKe19# z=r=b3Q_+cIiDcXwqgz@9bIwn|T@>@qW^teXB*xO>lg_r}J$||INrO#NxSh#VhbJj+ zClgvk`;@kfYXp7CdfM(!6wr~z|CggUPOzErhfZ7(uv>3N2`T0dV--o(fvY9~cVLqX z)?mylyC}2)*Dw^Pu`5fSIu=u(T!qA7|JT#-N(-u##9?+zY&)Xj)Q9BN&F&<#u8z$l zl9eIYUVJuT?@K?n`6xys?8h>`n6de+(hCavM69&Ln#8rxGiiJN-NHcq)>d5^0xiYy z2+E2WMkrLXzZWtPXZ9(2b*zVvJjE*JJt# zZB_E1yl3qpR)o7BiQb#_Rf3PkVJ^k2!tk*fWrj1k7NdWG?KY`+t~eR<7N4@Rp%>m-LwNCctK4UDtSPl!4tDTZ_|P zf|jPh3ly`8fa3`;03Cl@%p-3JE=j=*CGF|=vO*?e8`W}bMZdwBjB_t#WKi-aEWtY0 zCE0!wWhBsUbJ|Ovzj))3dnB(yf2h-S`I*0UU2VHq! zmFTCmLMPEaOzaU%QomLsNs3K6R$>}|uF3U*fJH312A5bn1`dgtfqr)u8r}tTydHu1~ZjiAc&{OmwAU_BG%)B}ML1xDN?0U{~K_ zNxzn2YEk6h#63WNKa-NUpP5l?mgok7(h#^k?V<$CMPHKIW>5;-bp-wseH;Q@v{}fe z5eeSl69wCs_;1J7k75R)?}dGS?1y022AfZe4Z?1vKFf(sRo!i0V_`Unej%<36mk`3 zuYAF#oY}o1NK6X(0jFc*gY8xlq{GiEnXMg4F%KzZr^R|i(QWBVhU&j7>KbkqQsyLB zJDc$c`oBr~2g%Z+??HiI2=os=m#~?@SOH5^h+;Nl-_C+7Rtm<3VDo}&4}~npCJEz5 z(1$QyOFu6C&fsJM=e0uiVC0pYwogS#E}4vdCzj8bAde|Z^2C8YPjuxcMr{haj^7sI z)T6zY*pi6&M#lH2O|CZn?g|9Dh-V~}?JSv$8*sg0rt#2S$M7d@e{5b7v;w?I(UMRL zR+J>Gte|E_jaLuXu1c(&^g9u&3={Ivd->x8I6whWMO96p)C_j!+DWnv7#Fu7{x*{) z*rjDQ{JRg=Ll_aeIM^?s-x%v;HX8}h2m9Di(gyuO`WqNaO~S?$GaH`*T;&-Hf%}QK z5eAbuHnAj+-6-GS6o7+%`%rR>0Q(8{1;Za!&~_XyqN~DoWg^IDcotuYA4T+KY(0rK zG3J$-^lO++HQG0ck%@Tci0>752?oXxEC&HH(DotNY5J1uI8>!DNlF5xrr#OHN4E#t z>=gJO`zGkK!ei*#uwr3wCWUlECwWTJh&GXu_>N=jG-I{(=L+i)`P63bTOEx%grN<{7x-C{*VuEL+-HPBdh&3O(<@A?ub)@~7;v}CLi>soQ z|13cUSkhV~^JRH9;!qNAF1Sup(M*m%Cy$1pjDOPS3? zG}Pc)Lqe~#umTgJNFT1)DVDH2F~1P|0MvI{J&DzsvCG(>B~Bl`|MzF$FN|)WNYAwr zqqg+7u?i!Yfg~3;mnov6DnO2gE20y2i5<1;Z|u`qAvH<52>oCtc#N2<@F_?;CzCqP znYqPyInOUTpp-9Gl zflUVrFF-#owvv}zVd#G1myx7Ruq(s0kiI0cW9N1ivROE4PA`GGS&+X7Scm>h0^K9X zIj$UBOISJ=W0FpcOU^iO-DVXfLx}M=HdScn#{LHV@fNodgoAP7*jdy4&?mq*NRf0#^@zAxnA2=yDZL7 zJ^vS*@&(SXNmhi!|B+xL`c9fD63q33@tVxuD;I67AGUKWU_-W|IsRQK=naNJtVSJ} zjY|u29J>cJN)meye(t(d+YzV6bkNjCTo_8X&mo_{=8NHi9Mekeauh-8G#bfnEJ zfc^!Np0)lgn4iF2IZfhbBpqsghbi9>cy z$nnli($5&}#UeS04p8-D0^DTKE72I2WkfZ?9&q{7DYG3z6&#*k8K2E?qhts z6_|tKByUs$AKm7@sA&Uf#wo4R`HV-P zxEzeX!FfE1W-z+}=#Em1KfbG!7`edp-DW+kM5_`$dpP62P^5%gVF7Gwz-+{*L98*bwB?9H(O1IxGk<;vj8O@k zC5cG72ctnGD$XqYaPG_{S!pY9jOzO`K9@j!prp7J+nz*+Y?ia|n`gDB3<%ap|_A{Dj5u@~){R?JF_Mv^S8RXPNl&a757 z+bSoN^Yxb%cn#aABspe@8WCd&@wyOaT)3i2SOK2>A4}&rGq_IRoUBG0mg-LmksMJ` z1S^1Ea-4P`!LCqDHm(==+_f>sf(el53WY?+wkG2piM5fd7rHa#S<84n;wHlHx;~RV zjG>-GpHbY!Xgx-~(Vw;|$HTbhMHp3K;GX1oGdW>r1hD*J5=AV5ZJ z3y~y0Nk(HR`3L9j1RY`hbJ&LwEP!nr;F!3oQba~gb`t`AO zXUADGfk1g}DT|}~j`N@9)D(R=X4V*+tIX&y{7g{E9PA=ekPpRW!TtlbhZyTd`zu_9 zemliT&T@^R-GQ;Q`2FGebLA*A1<>99|J96N=21OpdM5H^E`ORiB%H zE0}o%wqzG$t!bacemUc3%tn68DO!?@m_Mzk9gfQL^&gw4r=w!yvm8^W2HcP5-fT7B zML)!&YbCufW$&6J#(6rj?_7}a8CUMX&k;n);I|C@f0`JKhS z9hM!+bFUq@g&=9h3{Zn#|jvtU#u90!*>iGS}++m#%T^qUCImt2zHCg zy>g2L%g}8n!8`oIXiuQ98C<_eP?=;)Fz#$V&*5D9`|*3mSXGPbPD%lKM;M5527{R~ zY-5FtqKMK2oJqg}=q_Q~f<*hc9$@zu`u;X66;{LAL-CQkr(cj&DM69TiJcrjNn4U< z$N#7IVLTIquLREwA7J#&0u8`PGMGfe87l*uQq&dn`?0BNc1H;~5dZu(t7O=;px}$< z-`niE5vvY%ElK`_)%CmxW~RcaDF4Jc3oK*RYuGC>Ex=}&h~SF|yaDFJ_B=&NE)g`N zt=uo0X{Z%6knxe&UEsxZ!g zXh??RoPi)-d5YsQ3sN4Nxs2DLi1Tn0L28q9I;+!wU^{3hCU^^r<&B|Q&S0O4xDW6- zz||IAb>ilu@FDszZXbzCGEmf(`ZK{K2W=*^aDGPnwgoSQ^Es0FV*eZcdGo8_xVeg0 zKNI$|t^JN1Pw**EvAHOyxUEQOeMBhfLy|t0SpBmYd!;X9&q=!9t1ylv_)^+MEk+Xp z`%utFlGTTaNs@**jVxIy^LxeE0BmwIX?H4|Q*$k+(~(Ou9ETJHn~jmAJOy}VD@CSY z8wz0a(h431QxUW`J{`E4Qdly4E@D>^?uT)Sl?;XfQ7(cVV2uiy=A({in1%qt%)ptnB^yP~X4XY?_+sxw=!j5FI3 zQs`EKmNR?#6rtaNSS5*HDxAIm?GMD3yw$(ei%qbR7O*>kda7!q zK37bNT0(%#v@eh>Gs*wP_Ag6Z7~66r`i1Uqn3M?=!-Ys%@`gaP&3-`a1J5KPR1oZ_{^Z+-GXPQ{r{ylg{5G; zBaDK7bn+#@KO44{F?MGpNLQ4PP?n;dgBccP4?A0=X_idgD+KXMd2BK=yY=|~qQL63 zlj1AcZv_RwlK5<5$)l1m36uGa-Fgo z1PNh$mW?&BVq#%;3ZFEl-v`^{*8$GM-p{t+2rP(QIhc%?RcW`<{!hlJED27ce9hoe z`l-2!*(`R#FN{g1IB=yS!4wK#gMA^!yD@&l3aX3#i`fZ5*hu=r7TC-&yWaF$>i)}O zr}Gp8GjZN$2J5I$k_yA-Bz(Y(22p4plGViLHSJv#+KsUimgFPF1TvO@7-?-q{zUh~ zmV6?<2Q1%Y+U~pz=4CH$5M(z4J#j3BaajWAq5UsGs&HkYm`vEF;`)HC;=1do|MxYBxEb)7!dP@-#bA=#oZ{TB{>)-9!Slm0xWuqo4}+r|BiCeGk!b`- zMzO&Z_Yby(>DOUwI&{Gg6#k834$_SUyW)R=!UBnXk0R31zs=ZMi|2X%t)v=BO@bD| zxC_@P+LBsSJ<4X=)N~{0FUBTJMU!wVyg=}(*q`KzP2x@zv;&)H_!Ppv3I(i(D;N*N zel+$W^gYktzI4W6T$<{NFt`Wjehk(nP)GVPaZUpp{;z7BDLM$$t(!U)_ET{DE;hj3Z)P4CC~6SYA>@dDi^*g%=tMILYkmpl-_F&BD3MF(dLbDJI^f&RUMy9fDq4+;+TZyOvEI5SsvpG0B)S$%%_ zhh?ee^D<)ekiedSA))?l0t35*C9mUC<i!cukdi4iSQzaE`}yAPO|qp#1U znQ{90tdHI$B%qIfufX7TLEXc4_wy+jH_T^(PqK(JGfwr{81`kV&#=tq6EiN)b(!6yc_lNJXL~8YrSA6bXeiWR;Af zq4Z5;rXu>j-}gDce_q!)*L9uqIiEA``+oTPy?^-f_l{kj{4Rgi#}oYD)ZB?gajY^b zk;t7tk!bXlwTZ;78EJ{uI1a1fMl6p%U@pv4GA&U9i(w<|h#hez4#9nRBi1dImMDOW zF%Pc8e2GLd@eUVxsrW2ZB#z=Gl>fwX_%CL|GNpr+Fe~NEXr1UaNZg60vD_n;uZ`sq zcp3M{qJi9n`RG6K2p0yh952NU=*ZrQ?uvea1*t!bX6j6=&tE1yUjlPbUjZFqCfZ?B zwEa%Vh!X?R_QxvyC+>_D_oE#=63fp=*P#t;#=`g!+R*oCz-Qw9w6dX`AMM~OT!0nv zPTY!Zu~E4&Mbj}^k%~{bsEdE&HCUs3S|U4+!g@FXt$zud;t$vh%T-8A^u#GR8b84{ z*tlX^;%1zVE%E1QjY?^Wnv^F-U#OIpOf;n802O_)NaeIdeY_Rx;EUJ<4`DmJs!Cd7 z01n3v_#S3ro~mI0O{2G?i*j}J5ZYe8YQeVX!0)b>46Au16|U+};*GP>lGW1^EvWB^ zuI@Ql7I&i=`wdNXh0HMbwJ;~;hUlVgjajfGx~RLx`+cJ~B)PDGQL$oDEZ>K&@`us6 zeiRGgvv?K0flkp^$j(h1LKoZ5Xh(mei!n=$aQ{-goN}>f#b~kt7rxLQZLkO0V87^a zbdgO&8@vxq?Sts^o6!+&L)+PozW)ij&Avt7|1J72x;t{#ObslVD9VKysDwsX2TNjW z^u^)m3lq>0PDS_mT=eti`@z0l8<_1OQWtTYua zqB`hE8=w)lz|wdZmcgayLG%GO#zg&)@+Rmx(GBf*E}GFN(afwy1Ahyf;V0-3p0@$} z-?^&VAT2Qu8{ks>2tA5NUlSUd8hrw7XjOCzK27;kERmK-jA@vb=t246M&X1!gzl2s zjYGy7q62J>X1+s`3lEn2V#V9&k$VO`YO6L$OBBJ;=v?2AbUIp~O2VhMadmXk-haHJQb1)GIPE20Nbb#!&t#&Osj+u;WE^Zf$$$3e|Q z>fbDo)1wb4a_%MD`Zp#R6y`CD0VrL>FH}bOaq^d06ze=ydeG`Oz2A z&ycs#z|W!`XKfkE1<(L9uz>r&8W%p$0$mH;(W7=C+Q0;Kb>EBb_eW#-1xy{q==)!x zYvTmEEB;0UE8Z$t1FxXm2A%sMc)9z3VSL~PbT@2?eu5qpN3azBg9dO_>yVi`=tx>e zd*VpSL*o5CXy(4fn)nyG9V@m8?bgPmBksb5sqT+uaYQUX5?zWergdlo?_+cPB$o5F z4O3Vg%|to0<2q)7 z0Oiq-=~{R#-j1FFAEVEIg=XqUbV|;l?dEQu3|}Y;wh!CpRy5+t=!>(^xqmv=uR%w+ zHI_d`x7+vV_B<6W)FEukrf5ek@p|llF78$63A!N}FWx{$_zoKB`{;w8qa!(ho_xpA z5oB}>&(}daxCVW%d9-V+ABeUyES5*3=gMu-2x*Tn2 zE!y#CXkdrX#d#bJ>{s;t3+Q4j-z9ukY=+j4!}{+3#aws{B*4fI1( zIRc&Y3228?qBG+CN6~f`p_y2QZoik%53TR8G8XTamS{--iFRCgCQrxixE!0|pI8p- zbWcmv!t2oO`3QO*ydM1;UHuo(=bH8i9Zo<$HCNyS+>P#zrai;A=LMMbi@;GX>R|p} zX^Gz04*TIV*b~p88S2!Vi19(}f*+tA7VHx~wAx`c%J*VjD^XVHvh8xYn?K6C)}aWHnn zVYnXsuqu3AIPmJA8BadSg(+KvM!Gz@8r^1_;{9(hlk!olf&~VKDQSkj-xdw1D;nUy zSRR1}J{fKQ0W>r7kf}>1R&e2qo6(f)3^x)7(S7?H`YD)eQ223K2JK)ZI){_dkJX3J zhMz}A_6C~rZP6WQhChyeg?ZfnN4YR%zhN89d3`wfx}gmWM_(L`c036k@$^`J7#+Zq z=tx(_`qyLqd(qF(0UkmZ?eCb!{hwoSXt*#sqSEL{>Yxp`M@Mum+VNmCu$$48j=@@Z z2fAoiqtBf{+xrE5K5a-?%sH?J<$9R(yW2xt_`-3tqo2`5_!qjka@-I`Rsh|{rO=V| zi}j<>3{8pNk1pQ1Xgf<{{W^5yZ=#v{*M|5XuEeu=fwL<(2T82#vAL=5o|-}Y!90HL+DyKg)Y8} zXdsu}6zZ=)1FVMLZ;1xh4Snt=^!?k=@BcH==buO0Prk{85pPEu_!u3@0Zerqy@-yq z!0^y;sc0rz-voWXbF_cFKRlKv#`4tYBf(_i87^E*FQbvYgEq7;Jdikosa1>yly-Ai zq=nGceifR^zG$j%KnFAd&A=42y$8{?@dWzZ(^$y;zlMvesdyj#3U&243{@=%ib9NM+lXGapSx1D1 z@}cFc(dVjQd2E4>Xaw59IP|%D(bYa1Q*(_5^d{Q=4)nQwnEL!b!i687`9_9MwQlH# z#SAnP&!Z7-QU~MHIbMQUd(}xya*cL)#$h9O!U1jSO@202JVWULNk5Y zZNVa#`us1&g(v&pR;$RvdkA^py+_j$t?52LI17xaLrb61#xYtRu6LXX@V(T0|xsa%DQ zXd@c%-dO(~`raw@VEP^Hxa{5G&v&)Z^Cfu~7jBpJSQ$^Cb64P=v_u~)hc)nSwBxnt zZrOzXCVU$W_#d=`1Q|7uJm~Yq(9D&>46KBHUGIqWmrUHmg)huQ8-6<6NIZ-F#p4rf zgSqYv-&(t)i}5*hJH3V;Odq0)@(_BS{DniX*nJ^@DQJMx&`-rjQ?mb7aA8NA(LbgB zh0e|2Xh7MghAFxXT?<#@wb&aw;A(WuoI_8_^l2frMbVBrqZzm%Is(niczn(MKZOfZ zTw{9p`8*T{Q=W&;(I3$Y_lK|F1JTsaM+5o{o8hH1!ruWpVKvHg@iu%LoyuAdg!Udn zGxZK89pQd1GVmap%74+w3(XAsw-P#nmgu7Dh~Dpkj(9lww_Vs`OyQUIF`dY=nt0b(113g0lkBExE&4bGjvz|fS#;p z&^43op-?W2K3DD`7MC41j1}$C7YD@$M@R2QM>rd8XchY2X7u@;SOvdA1Iackbd(oe zq#0-?YNGd>#QW`&T$sXs=$wp2ADn@1t9j^RSrF@&q9cA84P*m4W$&XIIf!QT82a3g z@&0eIob%z(UfyW37#DU_3aesyG~(Xq2#2Fb=R`EH2hk25kN2O#N|awjN45_=a1NpE z=ARuhR0Q26<cMLJ~R4Z z8_Lh%gLoXx%-FeM^-n_EeHl~#{QosBJn=q6NAL}LfE-5~zT}bc9k4zc`8f3XyV2GD z2%73OXvSVc1APx|ZzuZRzF0ntF3M9_!2SPEeBkm&LjzZ$5m!W0SOaaSE}FvT(T-S* za&L4EjYUUxKia_@G^5YN@^18iJAej!2$NR)z{Lps5#4UR=Yr?&gJ!JYDc5bO+z#C zIGTYq=>C5j-6ea_HE|@~zld(@%O4N#mqXvHkA4caOLF1o_fT|1mQC3V^n`j89pMUe zWG|u5ZA1fm8x3?H8sJfMuC+l)imWqaG!$Z*hdo#K=p2Boo zf=zKbI>MuviHQZ_WUPS((gh9RI&>hn#QNJ}{nS`L7s*62v4{&JUlkvCE8IxzL>v4X z9r+2g!9UOr{zK>R(uH9}1=0Igp((D2KGy(!zYY3)4>SVg!AezGQv3xI@y2sJypF=x%HJ10HAJgBXfhL{_@8?6`yBb{s)zCodJ;VMt z15K!K@!W=WF&WFR#|O8fYhwr6@E-I;{0=>;kD-D8gq{QE(e0UgNqD|=v^JW#)@VT2 zCgY8pV#TERz>HYG5N+s1^mG0ltcG94`s_=?zspq|t5bh78qh*Cprz<)UyXLS5govG zbc&K+#*6RKj())!m~C13qjEj0LU|-s#f6xO+tF2h7R_9)fPeoV#GAxZd(UbFMyc2Ui7gqK3=u2q3 zpJN98i3U>W`S54C4p`p(Ka~q2Nvy(7_z70P;wwVOtR~T@-b=Fw$0N2Yu1)H9C4X`r>SK zQ7wo*7wgxfQ?WUgzeE?;ky!sT`d-e}VLKK^`z^DY{qN$bMTIs&S8scCdv!;*-L+_g z*I^~R8MokL=vTGwYr_)DCMCD-y?8t2E_WcZYOV_k@B3)<0c zG@vih29L)3XXE{B>%-@FK6K<&&_&uV)(=NBIu-r=e*zuIYOI5=pacD1k_%J)D|*r; zUI}xZ2R&NbV=a6b-B$0SQ}H<(;6b$E6Y>5}vHTyJ!7LlXb2-r|D2T3=lIZqL_T|Ec zN5+b~(S{#EkI1Lc?*Yrv%&b5IeFbgcU378nMLR6|YIyD{^u0=$I&#r=>&0@5P);T~ za$&=L&sY-khmk3r=!o!L7!WME~1raDqlwfdmG&~AE5&{h86J?W?-S$LOXRa zoBO{77dFrijj&sMU_dMnM^ii=-ENa&d1drv^h0Mo`u@l0lzxp4Mrn zI?ucR8*^dm+M(a)yWrJ$GupsRbY$~z7%s&O%(gL{1Le?;yP}J+Kic8#=zB>tpxNki zPe)(CWECnlaN%k_jP3AGbkQ~56apBBrg{oGrw?IjD$o=!LPxX=?eIl(*KCaSAE8sW z4}Ja!8sPsn#ozzGQPG)-vuMMu-v|wLN6Xh^861f|_ei||9U9P2Xr_LR{vGSHz8R+O z5_GZVMnC;Burk(oll|`zIgpA7d}t|%VTA98}>wx;L+F&*P$K!h6ZvL-8~nuB367i z-0z7Fq#rtvVUKmMQ6Oo}Oll16F?6z*pgq4FeKX$Qf$pDu=yNC0_y5AwYTO#y$%o!A zf&H*jte=j~$s_2ZS+r7H{1`ot=Jb+n;raY%gIAzOSY>p1 z55xXA34Q-_^vm55G|;nX3Uj=d3=ed8FZ`hIhpv{#aTIRCnppPz@FlG;R;N50E8`Zd zfhW;iU->~ep;}`-%6DKUuE(l)6#HP_?V-QnNiICnp2cSPCHg|q55p9+M>p!VXl4e) z`kQ0<_E?^Vj_grP9eL>Tei6;U`)FqNqKo7QG$YAVT==n+wj)#&L+7SCy4qTz0S-jx z@=>(mQ)r;scZLq?q071r`u;$4O^rhXzZ>o6AvB=n!DM1R7e@Xr`rxPNa{d+_`S<8r zIDsBj=h4X1cZIc36kUX+qE*r5T^}83Q%uKJ@qSx0fF79o_w0voVF%;UFK5%S3a&^! zK+3Qguq}4NHE1CJpdb8IJ`V@cE!cqaV&pR-u^$cSn!Vvi;6QYW7NeP4h6cJ8 zoq~<%n%as^UGj4-Tr|hgK(g&iOMQtekIs2JY>7Ri3(yfAz|=1gbmV8zlqbFj_j9A$ zxL_<_fo8BInu$y#5dO~2g)erFH~L3!LIWF*88|PNH=xh&MFTvHHh3y}79DYx{UMM` z(dY7`yQ%~la8*ow&#oIEXoNQ07HzN>nySHQs>a3p(_{Uk=yS`_jI2RZ{95##=uUJ^ z>_w;M%UC{$slT%w=E8=4u>${z=K3;3UJMPO47$zgp&fOM_j{uO436dD=-iJ--@7;Z z7&>Ju;{DB-+W$MbFx6jT1w4zUD&wngFlD0Kr31P~ZbJXoIulFd3ao;=uq>X9miRiH z11-@5ZU9ceiD;%ze$D>(=>3ZdM|R0KA?3x<6Rm2rCHkS$4_*DYp&46)2KpvCvR&wh z&>?J&f5meB1EJlnXhsI3?@c(s{`bXcRQTdTY>I2K75);feK4f-4)nzbVtE1D;PYrZ zo6x}apzVE)o^-!PbAB5JQVM;pagqyD(;my=P&73Up{sZS`rs0DPG5@kZ=fA+jqZ=0 ziYC4btGp2Up>-8HwcTR*4)l*k$(OirmH&v&?LX)$EpaF;#!_eiHDb9jx}7@3`fIT! z<)PRHpFkJmxAFclw7p-^sXl`aEXUzgfXT$=T-abyG_|GC4r^gGY>M@84A#OG=)v+0 zx(E-)@_*>Q&Uz%IJ~z6X%Afbs#+)&~t}2)bQIpo{ljbkWVm?)VP6#_}BxyQLHwXr1Hie;aH>g#olc8}5a!f$Px* zN1~~p9P4Mq`g!Q{OJe;hw4K*uc?bIbJ~Y51Xgg=){cJxZV`M*shDxDxTNRzt#%Lhj z(S1G;-LAKy9X*6TzZhL?FGn}W`d#Sz-=HV#53!v6M94t?Bo}s642`TR+EBw-?trGa zFZRVDSOMQepZgx&9lv8;tn|MyRYTDCZi(gbXr}H&7vcSAW|ALq;YhwlSLLaABmHEk zzZ|VEiH@W`8gMK0Wb2E5HjG14JR3cjo<#%Lgsz>f(Vg-BXGj3a#1C9Jl0UFMrvDgT zY=|ztR%pjv&_&cg-X9sg4b9x$=v2&#K7|hKCA9r5==&eV`fpQZ_Wv(j7gKe=Ex=W^@9o>gEI1|g_{8;}c8sOIGZnVQMa5^4EzkCk=Ib?VQCY{>}TzJqt zgdQ|&;sdXsi)J%=kZh0T-DrUO(K$XI@1I5k_yY~_Uo_yHr-OOX_KKiWRq8bR-xq4e z8;#I%+gR=%y$9rhXi{|0kgz9uLL(7tz(f7OUcJG^6LSHs<{;9J#I0_C}$ZygfQ4 z8E@Q+rsknoejFX~60D1B&>tGd(LhT69-gm_uKuRzTz5uC*dH@+M692MPVGW8kj3b8 z$rW5U!q?HcdJCPq_t1tv!KU~vx;;z$5%zN*G>}2~HjYCVYv!Nf{mJP4>F7Wfpo@G3 z+VPu6`^m&EF5G5cVKY39{^F^ACcH2TAEkURPR9Iyg^|xf8-4=q=y`Mio3I?dgAU{e z^h51;G(&mMhJls9)c?-5G8aDB6suuJtd4i04X#2XUXM1k6w1dyF3Le0#@sji5r&tASLwOYX2mTG{ z06s-Wco2R6Bs#Ufqk)}6=l+tvLqGX3=>c*D7Y5KQ-sp(F&@+~YMn|F}o`A06`_Kkw zpaDFBcDOj+UyjcCN;I&|==(eH8r=Uk`@aYaqAEG1Oi;nbgET4|||G`Ss=lC~RGs%S`9f+oUINH%9w1JuE6g?5kZ=o64 zg*NmBx~LNWg@NQi=RP<3T;XWRXchEhyB_*pvKtphel2>E4UHzz-S8AT!d+MyzeT^S z=DZlDq$Ju)Z)JDh=z_)*Nn=g|JX!0hh-?_$Mqw87J83NN5j zb7_|J)IKkQNxMxT2UeQs&2UxTUto&B4!Vmtca=jcej z#@6@)I-)9B!~NRmc58?}*BuRLP%IBcGj%H((4ARr=tzb zj}I(r7!^MhBvEJ{0YE6dK5cWPD&s zeBi!Veh8hbN21R}Uq-j-n`i_3WBqsNn)wME<3DJo8e9_E>41Jn^~LJA2y0?;7Z-kG z`4^q5f;mIv8R(~1IrLMnA=+U-bOb}t6yF@{N29BJA{xj{9DobZ=l?*b;%{_dS#zb@ zOD6JjVMkYlibQqv!FuQjnxhT$KtD|SVGSIO2CxKu{yDVaHR$tip`VWLVO2bg4j|8^ z;eKJv?fx&pg>zpS%|Ju+v!E?HhaEAs%Fzx6p@ED-1HTtt&5xt+Esf>push|oXh3O~ zg?27M7j+@a?*H;!n6ldOftF}0yP+c-8oe1^M5EC_ZpT(Q9X-=`qM0~~j`SzA<3G`X z{e!-jBX)DHu^xj_&^`@{?K@TV!Zz#mZg3{bPL+y_h=6D^{TVFPgz} zmxq8V;|G-MVGZwJ&i;2>RL>js`8b?G`6cX&HS>jSG7Ej-Z8YV-Vn?i#KWxYQ&<>x* zS-2e+VUGgosc$+zqxUNm4DEEs`jn?7xv0X$Tlh4d#A^6Jq4dJL|0csiw4u{z$5&sOp8Dm}1wCMO@T@ zs&dhUiZR#{SBD#k-_QqZmPk+iIPHZ-J{b-0DKwxx=n-A!s_^_E>_quq9P54TfsLjY?s04NGG5vejW{I zKi-F3%ZJQ;hNd=eh44-18thK_J~Tsnu`5=p7^dt_e2(&`nC!;I#7g0T?dXwNxN>^x zt5z-a?C*>QG7|4eW0hlF%EhaOFC;y24COnq1)f9~UzKWM@eV_$b_I69AMqA!P@Vnn zLGf($(9v3SzwSW~lF!kD*hh7LG?FUx9wQy%Nh?VtFT;+I{F6`3l?MU$MS%?Qp+2 zI>6T06T9MAd={(v`@cY)uvnU7b8g&$wQ)0g!u^Wlu}a*ilMut zBHCenG?4c3ejhZ|H=!L*M%$T={?4C+zPA(4<2Ptv`x>$TP4%~p!i(Rd0sVsaV2;M= z{F>v31KRL|(Z{39qN~vc-#`zVZRiNIHwgo)g)Y|m=$dJS9^Gx5u>T$TeN-6n478(1 z(2*}jUwAo|H=-l`5Pj}zbSjRc8TuIwkh<)&X=$tlf7CPvKc5oxwK@x3m0ovZ`SbiUU?;AAp$zQl|F3+GN zOK%<)TR}7frO^7CSO8n0Bkqf)bZ~T7^ky^zqtFaYL^GU3-=B^SY$38Hl8I--MdH=y z2Uwj4_M;JIZxO!TUWU~umqka|3mx$&EQd2N16N~r{1{DfM$1s&7~NHauqNJvS^fN9 z&xIp;9Ubx8sT(waj%07FKZuU#CoGD8q3>PZDrB$-`hFQS#kH|4w#Q017Cq1wVKdy1 zMcn^IT89^_qY*bn=k7Xm+l)u&a2l4zMQ8@zMn6>cqaQ}c(2mcdYvr;wq1~crI~8KN z0s35fOjh7x5Epjv06MZ~(2;CJ1Njhr;akkW-_g_;Xd6zls%Sv%(LjcvBfc%V1nW}X zg|?g4F0_}g9sA#o%TbYujgb$9#29otEk^IZgr<61bQc=<=je0)pdIIGAL>h>i?ahPUHf z+=baYrYCmdXV?Ot>J%3Dcj#iylk6N;d1JJJma*Iw%}8%_j%T2YZ$7#xpFy|nN_0f8 zqTB1kSU!NhcRG3j%~Y-~VJ#Fx?~?m&S_j{~la8M|Yto;iKr;y$-L(Z_!oXxLY_lhM<9r zLIar)%Skj7Gtj`EL<3reW^N^V@T^Azc?)y6|KH`p)a*bT{1Q#^_h?FgLbqk2dss9j z(107FBkhKEFbI9`W;B3tXoq*8?N3M7(qrhZdKvS(|F>~rM_-^v?MZaM{u9fW^$7J> zq1z`D%|J6WfVODIy)hLC`u@%68o2|_#Ej^}=yUTh_3!^K=E9M$L<87>rt$-{qp#40 z4xt_Xgzoph(GlkF8AestL zZD14n{D-lAANu@JbcCnS_kN4@=h1UC znnY7NH4IjVYK1- zXv$Wi4Q)mP-idbjRjfabX5x?N1+<-PeL~>5(dVy12Urw@y=|Dw{lAk7N4gJ9?RRJ@e?~L& z7n-W9eZz|-qGixUR~db-2HHW>SZ<33+#3yaFnaJzL<7D9bGrZUj}Oen4wRom7tb%~ z(VD$q=qMvv4sEy!+E6|8=x&JyItUG961s?!m|DD8itT{o3*3D$OoW-j70;x z6Affqygv^e*$Q+UZAMeR7ftm~=ns|)XvY_$Ij;)=7l>w{nX8)Q!j2lCi>O7k8=8qh z=tyrwpBs-ZqABsd@0+0+XaKX&cAi3?dokW$ji&q+G_Xx*0Lg7!*ulr~#sRdW<7fb< zqi4_;E}#uuGB9+UAAPrz%=x|x#$QN$NCkq{uT83cVhj=vHlx$U?(uO|9|Jgk^hG_oON($I4_!s z66gzMqSeuDcMTe7M|7muqwf!o^%Ky{K7a=JFxt)&=yS^k$KU^}sW5;IXv1%yFYH1W z*S=W(79H^kbie-@?`Izp>Muv%D~`5P4(+fW+F=Xy{VwRo^nfABaMX^Y!c@i~k_gH(J85q zHq<2EZ;39_&ge)6qaEIcjy#DDXhy7`gHGX-XgkZ%c2^?rCljl=FhyI@Dfl>+561FI zG_bR12Wi8?PpC^UlX88miMOEl7o+Vwi%!XUG@y55{f=1PkJIOF!`~CSU}ehFu>!8c z{_g*;xwx8&+M_~>dSO4xBd|NZk3+EV=#;4K#AaAyOi20o=v*vK{mWPe zKSlrib_R$0{8-;(|2@gY4OD!C9wd!#4c>~b@@LVJuE7laAGW}p<3d24&_M6UD)=SZ zan|wS4;mHFOti&{I3CULV$91p2VbJc66Iv7R?te zj4rk-V>uIDOLbzo4Z7GmqR(BA_IDc^zyp)m|3>yC6{h<6=(^};ba!k=e=dI)>n}ue zOb&tPM|aB=Xor>14w|4Hc0=1A8XXh8V>0{S4yMP7#nF{$1FxX__X#&Y70 zP%eOWa5X-LmGEwS8yjJxJHt=AJFqI{_c0THPjbr0P)XR7c{)jhYvMd=e!Z}zIcVkEV z4{f-^y`ka9a3JOLSO>4YFLX2;eQzsP!#~l*S$b-yAAoMVIcNa8qL)ld)h82exTwpG zsnIvEKILE0NGnbc+h-Ws!CZ7|-bNSgr|8M~6}o7Tqr2%8UV^{G`{&TzlkNVnNDE@> zzq4C5R@6otY>oaQvNL*?k3t)q8Sg)gu7&yNYF~+VvPJ5so%s{u}!}0#3=<|!v51EzdV%!qlfd;xadMwtT z!PLM1lXxH;!THe_Yoa4)jEtgw4bi3Y(b~rEAKaB>w7JdHh=q~iR{a6f-#PUDr zw$A<_tK0}nKNvc$iheFPK^y9gMm_{x8)MKj{B|_ZrC1%;qX8U2-}@DvvJ2=U&U`35 zH!}JZmZg4ok_+ebH?*U((X6vVVENELFkBhSwb8}d1kJ=i^!9S< zEV{-nqKh&2!{NPTDK6}|0yf7wSQ96qk*~szcpQ6UjoD%351{*cA$s)gLjyV%y@2kX zf^)*Z7m$giC{IEIScFUb{9nt(3siKS8|LI(w9q5ruUa+H4mw8%qR)@Ul6+bgel(nn z_2-3?aW!gIM{-ev8_TdQ?nPJomGi^FQv;3sI&6wb zG-L1JwfGU5;xdni%v3?&Z;URwo>&4$$MP&JK>2xf|G&Y7bGHZ6aUZ&Bzr@?|D0=kv zdm_x~M!b%4sRd!NCD9Sjiaw5JY)QPo77cha+U}0%UQGJncU;)OY4pK!=%UNEFs$mU z(C4b6_Zy=l=n(4%VLQrW&_%Wp&A zL>umpHgqEz*lp+w)3GJaj`u%9r|2-6f%9lPmp&Z^PzkS~+y;Ga2zvj{SpOtC(B!MJ z;#2g&Q)t9lp9!COxzN>{Ct3xayAEhT191p0Ll<$DC1KU)LQm2%Xdn&IHP#1jz`@AC zl8N`Y@WGGJx&9ta;dylXd!Vd(U%WN?$`4+YWSb97ZEQjRtTY4XnVk!7}I~tP{)4(Y4S6eSR3a zEABxT^HMC0AEM8l!qn&gzg#q<;_~Ohce`$A05hWV(VtMu(JA;49q9oyz$0iNKVdaI zhpwga&xcRJW>}f>ZLz!*JxTXH&;B<>1y_WW6~{W1%c2<>fKJUAw1a!lz#c-UVj&v9 za&+;nj`v?hJJ^OU()5+#9s9ueJn&x^beA#V{mhVb((SeJN*cH=XPET~h z9%!V`q75Iyo>*pe2xM|}DH`YwG{yf$E3OHPw>Q?H{(kI_8?ia&UmG%*?8SvC9E7g^ zTcWqe2d1H`bv8Qp&!VZ@h^_GeIu#|?g*mT`9yG16E)GT4$|7_sm!gYrT_`6L+qkfU z&#?*q4~@9|`tV>sbXSbTW;hK!A>T(E-iw*|HF{9xdL`_R3h0_>fIi<0T~l4-{TovC zeEv>|H>RQ)cpN=|mZRHkBRcXO=;Awwj^IZ$6Bp2Ez&*-ch!&j~AFe~K;&{RK+zPJc&cojO*b?C@9$NL|m4S$J_>{z`2 z2Rguu=m7I>3hk9gpRc!x{cnV=sBk2G&;~}KBbtJ)?&)Y?b7J{1Y)AQN^xXI%)|Y!D z9KD(7!PWu&b=?C;;#_dE%|2X=s`5ndFY6rMbGXH=;HYT9YM9t;eKm0z}{#k z2BC910)1|3y#FLRz~yL0Uq##B7R$-cxp3PZ#u|9_TcO+?ec_Q(F+1LW5e;-(s88}AQ8^6xKmkX(#l@;&60C z)6sqXLcITRtUrl9m;2rDTqUeRxeNOI6g049m|Db``uyL_g(KRHF2Zlok^X`1+sn2F zuSVBMO?2cfV|`!r`H|>BH649!VZ8q$I-s{={a&=6W0-Vq{*D!ew}l3(pba!b?{`Nd z9*tFTGCKDw(1zBbi*Y+TkWbL}kDycYJ35f_=<}Do7cx@nJ@&s1wWGq+^uU@p1buNn z+VE588h8$!qPNh+xC5Lv0LG!u-4*Z8eLoqt&q^u`U<2C0 zHZ+x=#s`m~NAm@A-1-&{PkL<#Fh?x)XixA+*7HXkbgx5wAtRguaWF@Ei2GY&*gf6u>fm|1Zad z9dyLn*ca>KY_!4m(bVll7taZ-i2tIgEWa~kW+?jk{|p+yTj*TxLD$k@G=LM)Gb#D} z&$26g^~#5yghOyBF2&xMb$1A)KbqQG&|NVe4QvjYvE}GgtwB3}58Vy>(SZMlo+tS~ z3I|?QtV{oiPF%Q3r=bljMpL&Qug2Zz$WLK)OxqJ0sDZ60cSA@1IJU+OXaMKY_AmQ5 zlpjW?VhI}1E=>LN|3A6tN=4$6&_FlLLh%W7WQ)+nxB^Y>IyA7YI1rDZzigU*8UmY& zF1}^x8d-skd=0v|ccPg*@+te@#q=W;`Zv0ra(x!2q7Xhvxfi-Pzl$D2pZgJAJ7>@a z(?1Vhindn}%|sb=E!9J(qz(FB-_P0qUff89i(`EB-uS?r=u^=b(1u<^pMM`4jp$pdEKZ zpC5pBcq4YjDd=49Mmye%F5=_JK2Kak*HW1;!{Wqj9(~{zG<6fv$XDTD zd;=Zv6<@`VS9JSz!M=C{*22x$7JoqpQt#_9RZY;{)d|h)5WLp?F`f%M-i6N1el(!d z*Z|L=4b}W6)Hgs!-VzO{AG#K9K{GH3>thn_XcHRXPPDyJ2f~4M9oBGvF5tpB+=;#M zAlAd02g9l#fd+Uh`WbK+I(Hk<4&IG^h6Z#LovPo_?~wnZ1H1a$@YSszx)_II(ui;6 z!jwO9yjReD{BiUodJbeg6uuXf!3Qb#K)35bH1MNn0H>qb4~K*6 zs>AGmQ#+Ij=XwPC;vHy8ljy-R8^`0P*bQ4A2_u+~6)7)6Q@a}tG~3aTfs$xDRnSab zgD0^g`aPk}_sK9<0;`Mi?Y6|7$LcDBI7W!=mU2 z%A?z-0UA*2Sl;(2h=^nK_3JB+KbgpC7F+jj8|6el;#k^?-O| z8aAXn2OZfiG@!j$2altx{mNg$dC>#=P+oyAy`V`CI_h>`8eh(Hxzp!MW4VOWus!=TWL3ha*%)nXk z{>#6!|DBudRCo~WL+9oII_HPc4E!AZ3vKu!n&M)AgppQ47hi3ximlLq$D{4tk50`) z(MRxp%1 zXi+qiSEJ8YK&C30sLO@>y$hPM8_|PeGM2%GSQWRR4WEi$MBgiLHY~DAXeI|>S-cHB zXcnOvU56RCFP6_>>i2)Kb0H;V(7$TcLPy#IOx1xc}Mfdr$XsX|d?nV!? zFVW1NiC#ogpYwe9C!$3$_22)xo{KKr7>>^A>u9RBU{BnRj_8WN!&k9p=;!(bG{DEv z?fEt|M~t24U|A%td7o66LbWf(7Ejs>xZHZjf?m1 zL*JW)KDP*ce`WMF^!fL&Iqr@1g)XrFT}-7fga<01FV>H?LAP12=#6Mcx1$~1kB)p^ z^f~nX*U`1~e)LPUogd@g}>{T>?chTp+MGvy%A6%G$+-X@-tM)2%bvHskx4WSY zjznLaiZ-+m&A@ADW_F=R@2}|lm!ya1i=%WUwWBph(6I0Q(GbdH%^Y3XuF~B-H0yk+tI~11KkCWq3tJ^ z#ETcA>(L|mO|-#x&=KvygP2wz%;9(FV!O0p*cAoPwNM@_VNV>4_uw)-gw4_zd7;q$ zw!*0ZlZg+xFtV@E5gtcJb^%@Gg^Pq$UJ^}VCi=145?#gDqX*M8^!+E%_t&A@Z5O)e z_Mw?dD;hGB15^L~ucBNu<3>4bgTte1(39>AnyUQ8LW5VL87hnJ_e!zc0PUa&dQP-L zr=Ty^#aqyWYAHI9O_u%szncp)@I4ywuV{yV$NDT+gsI4jzIYY(#~PR&A4WTT44smd zm<89O8Qg%j`*tkvKr^-%Q~&zK&SGnBp0o@IE9&5etjdKQ%taeq6w5DQMamnn6@DA< zmns<+S0Hyp$E+< zbT!XJcfo7u{{H~Yz%Def{pi{`h6ZvP4J=V6bes=uzYMyo>Ra#r?-FkeK~JuUXh(C= zgJTKK#r^0AZYmoZx&vKIv(W}$L8oj7`g#95+D_hb;rR@-TpL{jtuXcXzfN43vR>$j z2B52XI6BhN=*Y&SQ*jsi-2Lc5^Ju*PIGV{N=ziaXb@0Pj{uiB+%gTrLij-&n`^BRq z74G9!*bWC^8+;CZ;S?IkUsw(Q!OB>vLI}JM`rN=+z8MX0EZXiAG@yCt)GR|Yv7tgT zJop|J&fzD~Z_yV|p(#(V7#b*qsX0U&s*g6*0XtxSwBzT|xnGYyzYYCZ-j8PT6uJn{ zB)M>rrB@0KUKPzmUu=N}&?na4f_{~nf(E=9N8rwQzjo!Y7TTciU55>DEE@2O*bz5l z4NT^!k|l8)7Y)$Gwg$a%9P49|s^QCMH?({YR>zI#_B(;TSG-!7nx5#?OvUlI2Cu=A z)k7fHp$Fa**xUVokP9QNnHd&SYjiH#qp9qLrfhI5k3dI$d#s<19^G@$l)s2h$(!gR z-i5aRDY~t{kL7Pa3GF~^}Ephe>9daubCzF2a59OoVG;+x(=Pw z5$G7@;PxOEqhz2kfug0g*0Jqd(|2yK3sW4?n(DL7C1G(#l`XXp1GSS`A3jO>a z9PcO5gJ>c8-eNSs6=>!*qx=6uG{F6_{6k&#zmc4Y71`^B?NbPCurhk$RYx1Bj|SK_ zmiwcD-GX*>H`>92$m&i!iH`UetcsV{4^z|_J+fORxp0;CM*|s*b}$ZIRMVsL&;XXA zi)?N5tysSkeeWyuy;E2V&!gW9sx}DkbwIc4wdfQl=WyYRyU`B5i{+oO9Oc9{Ap_;n z1~bt`HVj>SBhe90h~;T$JG0QKScC)cIdrWh8fHoT$1W>lXZQa?E^1Q$1A68cYZQLV z4aSy~pTXPkC|1L38;1jB1{%m#bi_N*fcB#ue}@M4KlJ1~hpw4iO~R*RMa=N?zbzN0 z^k(df6Y)Cy7@hmdO+yN6qvh`C^Zn5dhogavMc2&jXvcS=nRp1D+9#u{;{DCucmMC^ z!bS28mc+kfxp=eiVk5M}&S=B^(S}E$Q+Ed%*u&As(TqG3eHjh#O>~iNjrDsl_4mI6 zTo~aAw83*|N0&AaUWo=!8BJ~dXp3m4Xdg5KgV6(RSS;UyPQhrj-6R^|+~(|m&*Z16 za73@62g>{C{yl(p_$wN~-)PEnvd4BcKm(3AA$cz*)A8>XTM(~=g+ z@ZkIL#y98}lC$VyxuRt_DjT5Xo>&&gqt7jjZbk$DE_w#;VdNkjGX7V+(ojqu(kD!_R4ejv1ct3BO z@CT1%87{hWV+{7dchL?Cv<)wmLQ_~9ZLlet+OFuLyAkbh4Emum6&=uGG}Rl>_C7^3 zb_g>tyc*|QXGmyDgM6SJ^S|M{nwkdrr*q- zZL??2xk;cQab@RcK;@vGvZ*i=+yc4(TrvjQ(LJc0eu8=mTveRJ;z7yN!n`mC># z?d&SlWAzv+;df9+@fqs!#;WS*C4pMc1m!OWjH2hiFatR*1M9=yP)Bka>Tyb0%_&_P zsM}v2s`S;N5^n%i!Ol>ZYamo&GoVVo9O}Jt3@U-=P><&u==uF$9~mgqUr>(yt2?(g zE>!6QpdOcePyrjm+^`$e&X>RdxE|(%XJJF=SHpQ~nnK-){!m{BOo6&<>uT`)s}#Qw zD8r~VogHU`N+g%Du(6D>D%4KuL7jaQn+HN|q&-xEJ)m~F4C?GxL&Z4`RhbtxdH!`7 zV$^ajKhsHpaQIdQrrghcpZlN3g|AB-B)AuI?g;L)aA=%^GZ;Dn%KNOl%IZ3 zFEsZw1}eoCD92ZzUM%lSAyQpu$LWp5puV}RYwQ67m`{RAXcJUL4?^wyCDhJ8LGAn- zR6=p;dE&TTDH&*od7(;P7B+y@pf24q==pqyD)m)Z2*#-I1gHS@RMdj9Zv=IOfv^nh z0%gAm>apGjmB(uYlU=2B=H9 z4XTp6p%OX|mB?*a1ipZtfBz$WLuV)1pd1x|DrHHV*M^=mGc*JJi|7Y2>_`vqI1R|6hrL95preggTOOP^Fy*mB2En7t$uESM@fiogT6I zX(+ur#urc<`3&{=`8ReF&kUtkyfM$e-c(f(RDzA694>`2TmuzoH&n?^LtU!KO&kYt zpzKpZl{PzE2a7^q_zbF|FQF>(5oUmqn>t68qbbk7p6`4J}G=Op(Z0rMd z#v`HZ#zF05rpcEX*O+`Gl%G9Nci^1y7L@%{Hv{eTJ(Qye%^ZU`P-m77Hi3nq45mXJ z%_69?-e~h9P-lAuj)ZTZUPQf``+0tg=46CT-d%x#GHV7^`VLT+s~eQ! zaFefwdhRzu9mN@_ry)v9=gabpP^E1ERmnk6{>DSSf~P?}MYEw2+w9EUuG0+U_%SRC z{aQIcp{NM;uAT;EupO#G=Z$xaFJLC*pP?!i5a?7YKh#l{f~rgb)CrzCm@=an57>M^VgRmnO~8))5u=U;=42$WF>R06AD1$Y2fhf#u^H&z3viu5$P zp>{qF>Zs;J-IbL#KLB+kr=T`;11jOj9Uc9+9o@D=1iBo#pfW88b=gWmz45A>yf)NX zHi6O)hPvI|p(@x5D#6iEdefjjtd>G;$Ehb&>83&jm<_eF zMNkgcK%L=ElbKs90n3H*WsLIrbN~kH+PFq7c4uPuV5Sx#Os=!>RJGKYvL+&tCrEkOZdj7vL$b%qt zH|LVogL?jZKwYL4P?u~!R00>E?#4B!L?1zI;2)Dm?e3I15maRYY@Q#=z68{fmV*WL z{MTTRAC7`q;U1U?K7+a}ae6oolfyd9)5HF-FVtQ50CT}eAj)a0CTgD5o*Vcp)N^B=(!ul!Nv*Db2p%NvtR875X$Z= zRK@&5oxlm9DwZkKKL3j$&{D!@}Hy^m0O zKcVzu_j2@7LFwg!(ktGJ=U+Q40? zio7;{g7W_z%5T)(PC^Nw=IPuFWSA4`u_IKsjD#5l;73v06p@C3|j)Kw~57~g*HG_e6x&SJ(EjB+2^^M6bCg|UWcAP|GUdTpL*}0 z97G%B>@XhGhesx;TO0_LXm=?6(NGC3fdOzG%nQ#z>H7?J&OSEOB}@dBczUSyQqZkT zYBCV(L(lgCPyu?{e1gqaKn460>QbGAx?~sN5cm)(P+OiVB^m)6603m5jW4j z&g>cjmHd_QGgKvfhB%kVAC_XC5UPX?p%Up1RpJ3q`lF#P-6W_t<9w)uHrjkIl>K?A zgq{x}kQBa|g8xuQAvu&neyEaGgt|-vpaO4)D&c;p%AJEs;0ja%cWnIy)aCvHwb7Wv z9HxW1v_;$uWKaXjaZ^)hX9@#hM&y&B0_}v_@jl~8n2-5YTaPx}@fQbPMxGL;gCC$a zl6ZvkX<7}=XYL-zpfZCbBOSJZC7G{>wc#sR50)I|yojd5w9L1`5%4UpkD2-;UO4%jOP{ac3o!B7Qs)b4~;fs{XD-yZ63_YJm)y)PbykM zIhYT1IrqUF@H(srBae4}G+Ptu|En>O;%umlw?n=2FF?Hk-$5Nk{HabQ+Ck|rgXQ3U*d9il=6vVW1vX>83-*8s zr~7&SHvMlTEx;Nxoo~s`LhUT>Eayl{!UD{@!C<%& z>UPJT?dR$RGeBM1`EWEm40S}+<~VVt!}QF3=komP@yj&VDOmxSfq7dP0>{CA@F!H} zedjreY=cVt0n|}to$u%Q2grs)&ELZou*w2I*Gjksc7(MSI+uAj)E$bwi05B}EQ_4d zmxH<-t>8i*5`enBS(Z4DQ3p7f`2<)7Mqlbwq9!cOd=%7?9EUpV7|Z-T|3_3?sK@p- z41iyu9_M84<<3HCs256hSP~Y4`Vbii^#U0Qb>?$z9tP#$G&~M3!U%BQ3g`J>40R;y zq5K|#dZAr}+VCS78M=Qm(3>dIN+(cKs7sd<>L}_!t@nd+Gy&?}Ki{~_xE5-Mo1u<$ zFVu_e6x65Wb*PW;=TNWUFOXL>fBw75QA`h&VIG(WmV+{E2K`|dsEYJ~+UXD|{gE&# zoCOtdDXaiDLVX7O1C_Y{YKMtoVdfcOab5F322xxE1K<{$U$XfVsL%h%Yn*Q!qCs7* zEKu?>#tBe~Oo7$me5m)y3z!>LUu%El0`q5nFk0%f5p zQV;4y(;2EFi=mEYEz}0~LEW7TFb9mY-g%Fdf&t81L4E!YHTit#R!R3TCBu7rB34nZaS8m5K5n|S`^ zAj2kSN7bOtssYrk4}v<={!k7_LtV~AP>CP3^;1xG*P-5^PoV<)ZFVXW0CnkFL0!^* zPFn6Ic{$z9iEsmoAD80f^j%vcXuoaZuHWQ_*utgzjAo;yN4 zo*__)^@HW%Sg5DwJk(ve0+opS83P6S2z7gXcR0^!45%HZfC`uw%3&F(qp1t^Ja>R{ z)E6r85m1+G3RKD0L48$y1g3%yq3r#_JV)wwC1#+&xuDLhC{(~kuqA8{b@sJhMwR5xs-u+ve_06K%My|D8r|={ub(p zT)P}bfLf0N^*F|XdZi|VN+d1R#)?8!t^!m=8```J%&+HvFaw?0HmC~hhI$`dw|TNZ zoaeU?)Qh7r)Kf4K>JDs%nPAl2&Q~~jp)PZCSQ-w5I{ST42_J&0z-j3D^S`?cbZehO z-AdOUr=-cDp7-2PA2xNN?n+~*Gj9)7xt>s$a5z*Vt6&j$9_ob@ZLj06DwJI-s5{Yl zFVDX&!&n45^F>f4+5q(eIt+EjFQEcQ*yjX{3w6e6pw2YEv5c+PgbLKs=AEE6G5{*x z0x0_}`*{APcm#n;asleB9ztdK5h|g$e>#=P1eH)ZD81%TZ?>++IWPzF!%&HRfb#3w z@7$@luprY6P)FFp%|Im_3Uz6wKwX+OP?u>NR7v+hIeZM2`FmIhMm*qL#u8BSGEh%P zeW)Yt4s{nsL*22JurXW@<x7eOHK;_ILRFv*RDkZb-rMFQjpLvyHU%odxh7u%WxopQj%|ag)M@DX{{KD$mGBAF z=lo}=+aKqoqnH!wE|i6;NOh>Era4r=V5riD*nB9|&c{Ms#x+nII}G*o+=uf2EDJ*^eI%F ze@?lblK7u?c9I$@<1A1amWMjCHc&h62R%;(RDelP6_{b`3!xHS3l-oGsFI(7O5ib6 z0&k)0ez_UQQIs=IfS6DYl0sD=3zR`YsK6DVc38{i^`RWKgnBAEKqcz7^>I-4GoVVp z9IE1bp)RxgHUrN)|E!~s9P07N50!ZxsP&FE9|cvRg-{N5!Hn<@lwHJgjyw&_#=HW| z1$)Bua5>anI|s6@L$ zm3l1HWu9U3jZlyGDX0W)K+pgG|H1@6p%RF7!6|V%D1*#U2^541ToJ0IwV@ofg3{|@ zb2n7wCPO8-8tOiORSJzxJHWgtiApaR{2dV%~4wS!;A$d{Y|v7i!7 z3FSB)R06r6c3u?v!Mad>8$u-#1Os3kw;K^FQJa?E7S&}UE%qcAkGzM2Wg-JW{0|LMW9Mq z4az}%sK9Mu02~O@!39v4?I4uiZ74r4p*Hj{R3&~uRU+C|r?Ls$3=}8@lwwXO2l=2% zS{CXBRKw(Lq4aw~B{CA~xnBU~cpKD_?X&q&<9Vo!-h{e@FQJak?Yia|M2EUu@u32y zg9=atYG-wzO4}Lg_WlNy@I0u%i=isD*5+HGcDxrV&?zYWYfy>YhQxEbUNO)a{eV)8 zaNQ|gY$$mOr~v7VIiMUAf(lR>YR3(YEus9hw|P&f4Gn;@n*z1br7)tt|KGwuneBvf zv={0Kj@bM%)KT1qD*aO^M_-^WQPdmG&SOJe(j-ucXNS_uXY%q;fg3~l4~CxK|Jj#; z-pwPRGF<@WXe*S#F_;ftgDQRWo6dSFsCix}y$VnjX#iD$wonOnhYHvm>aiSY@-fh@ zOedMbOsGUwK)uWNLGAb!l*3n0iG6`eG{!9_a9XGe<%QBOVXOsxnYV^|8iJtiNC;Fy z18(vBYX@UZVFA?bTnlxp|1|kkD1(Pkci}yh-gl_W8Rxc>NLDDlqEMx;0u{Kat#^Q` zNMEQ84Zh9uuhNZ0pv>k%87wn}O;9`91GVF`Q2LLc0(^veDk9!-N}C!gf%H&!Dj(FH zDs1beZC)NquezIoO4kf3f%Z_Db%zQt5T=F`Y<(kCf;*w~jzGP#FF+;sH&nvkp#sFb z>paFOpc2gwwO$*_kGl;68Fq&%jss;7^u=uhuZmSD1Td^0`G*X;4$b{z-uOW1hun|P>#Mq8AN*M z1WW+sCIzc5g1nMZqKIHkA!D0k*ybj9Y7AW~{ zD1&2AJG=m;_Y!L7?@aFh$VnhARH?H-C0@+tRiXSehf2IXRDvOo+|JJ22y}Z#LphjX zimOb%1!@QTp%Sij zacw9EO`rmHGI|Xr8U>Z$RH*NieuuI<0adA+Pzk<)I_sZM`thGSezHR<<#rWf zpbAugDoI_az->(45z0{?s02nq9nlmhhs&TUvy4AKqdAA%1_K^PK8sz zg!=r?%|Hv4pmx>}7Kd%%9JmCQf<>P@f7UY)7G}N`7KE>0QJDUP^OKH1Sd94^m=ivM z9bv+k&YN{8R7IAZ{^! zP)C{cwUb~m*pqp0SOUI)OkI>({a08T`n`4Dc;#U|=AB>>xF0ry z-(U{d=$-Q!G1|BRWKx^=VkxSOWSmFQ&hL(M#`0+DZ=Z8a)=zO%qnv za0y1hSRC#=-luOko6PjZ%=!Ieo>raS`Sd76glhTi3REFTM>AdqU!*@_mR|9)BW9&p04NrGTC@r1Qgq% zSjf&S1#gJ5EGDpd2b^Ufz*20|lBBl{!LAWH{sbt*I1zRkya}Oq!|bJh8hHWyIF0ik zgTWyj{z>4!aWH`F($e?QqY*3yJ4tQ9lHvF}dfv7MTeXI^i8&VZAr%^EL6?|}r_a+K z;_H%CAeo!RA@q?1Q7c6NwVya{K$hRl@eB+$;_wHKuc6xsy??Qr$lTkqA%DZ%AO23T z^^9BKCj;n)LVRZ?Gfy zgDm`QsYHF0$ILait!b6M>Fq0LRT4gB)~Z~lEdt!KO3L!UQEb+MLp5yCJPwP$sUu{8x zlPK0>q{)wJTpiHqj*}UTr?ZnCw!0+EBhqUze`QHcB#}k7{*s_S7}vBI z>#c(FyO^9IgUV=!-lm!QQfiwFC(w*%BnTn(;wot4MghT|&Mqb4?-Xfy@IK zkHA+45-x{qF>`M#h5V>h7Fib8F0#8rpq}(z1WStJXSS0XjMbJBsP?oaA3fhLx$@)U zE-v0#+F^|EF&;=5epRCDJt?HYYajHElfpUHS~1RHsaC*ab>x2$Z6Ryr;VSxNZ0}iW z+lcrEn_%Q>74VlxU#?`apb~aQX$g+Hp)}T=!T1E@$tbIRz{zQIv>(HmL^(u4z3E38KZBvzl!D$? zm)&V&8O~COV7@fsIP3BK9oM=fD#aQhu z^S!KjTQhUsll3$7*x0@%v6%S3X*MO%@g=c2*!76c`3K=-h1Uc0=CT=i8ZypBBA-## zH)ZePW{kb<2LWOrn@x~!IG#kp$85)Wu^r0%DD$^atvtFrD8E`OC9Bs(WCBIPf!ZE| z-NkS>L3&xnlIKKc3C2q>D#&_NSOlGo^yb*8WkNQA{;xB2?Lx0FfjiI#qPHCTWvr`h zv|YOAS!T5@Yb{R3VM0^9j}x^@==C7UvZn7yxv)5jYqog^qE;E%Y-i~C?{qej2iufv zA|sN~B$C#*T#DmMPajuVbRJ}^-`r4|TN@4IA+S1%Wnep&@6x^P9qU8s zo4ii3^R}CIjGB+IUDU^yotZ>xcyjO^|bwrb6pCpFz!mf#MOtH#)!ivRqD!cS93P4H&O+NvtF zF=p_Yc`}T0ki;_dOT*I0YO|gnK7-#aV0?V72v?OXls%M$3cxw&HDi6Tv+j1)!Px>9 z`3?Ea8!ki^m+>>Y+G~8pz~&fZei-G7iGD2e zeVDaK*i^#*8|-fA{F7VO1t{Zr#^)&IY!n(ZuR~XxfbuGmNor*-XTh|#1E)Lbt1ZZ7 zY@5=r5O{_ZXbthR6Pvc-j!E+U`s)H|P*l5vgPUaj4&$u!4>(O@2|Q)2_J!;tq5qY2 zZ+k-0Q*6$k`M4^fs~^~0$G6(=B(D}?2~M?m)1iBhEhZ(fw;jV_0i0w;P#z~!$h<3@ zkIov~K?>IYpm$@w3r9&9@4{CYwsRR5CfIn5k;TWpGQN&l0{xjEbdqqpMzL^*><6LT z2IcJp`o%62Fh0X>@)BS>hCR@0i_SuHqu`(&tU{m-==8T8r9rON348s}?*;2>(^&tT z5_>#`AwRSyX2cI#RL7!(7W!`exN1LHW+mWKdLG-sMvM{?a1Oz?V6@k=evNTIbQU4^WqpxsNP4AJa55~1 z?P~PKF^-H*bLMKhiE{$^Nb}VIKZW(}$~zX~BW#Is0ORm&5P>@2s31Xt33irw7WA?+ z4&N%^xHy%l1=rdp(xC7Z+e64JS`vR^`zNyB@e_|m zFm7Rqebxdk`~M_*6+e;i6Nvs4d^KS`y`$>-z<2{=AC9IEiTJ_p=pW2p#Q>Q4IHn6?dTDaHK(%Upf5IR{9KP1@&bIPYL>fUWD;Lb~7KHc{saH5+g0i#@LLrMD!Z(iEbYB(ldU9 zUQP7QV5^oH-wjwVMFR7%*@uo=O#QmZ_9zy!Bu=5wi=GOle(c}@<0_{73j=+Yl72sd&;wSwcHgQ<5hwKY$YCDlNX6+QgvXRJg3qAzjvDrWkc+QfSes%r2 zs4FN|#6dH%u0lT@PC-hE=`S!$ic_@~^c>8$S~WHkFnn9gJQo$6kFYHMdMiO>hw+<= zID@g%A9Gb@{zRYuRmfVcGDHxHBbGJBiaMI1RwT z|F1>BW(EBoi&f~u7;hxGrTAz_|IIe`NuU3*Ex>l1hv2j!K~v$loO!N*tTXcmst!8w zNlYyhy*jdZRBR_U$Em!Pf4(}a5=Iymh5ua2)&D*<7EF`Q++6QC?>%dk;?QCU-q0B5p+CycXL0#nfOLmn4DU-TVH z_!fq;nja3=QJGM76#M53d2>AxRgYIP}^ zci7if(usz*k`^ut7LSncL%xiiJAteQ2|a?1Og0eR{kp5 zMqByP+s;0*zMg&?n-=uD=%zyF3%UzQJURZN;=2wyf8p;1cD?8?nR{Mg4-s}@HzDS5 zAUmpnp|{1t!7Gv(kKQ`uscdaK3YXB0!+LAREeN`SK#}qF5!rLrF!MD1k^fq=%Vlv| zM<@PlO41wU*Ki^WWw1y=pc0;9t?Z3(-uwiKspadwsL1DLO3{tWvgrmtx0slss9 zZsA958@-`t#Mjm&d6NoF!e+DQHy*Mu7iaNskc1@Sv3LpDURcpe-5hSRaTj#?s|l_h ztgpw3+B=dvMNqZh@iD*|y6U5ogFcHS)pnbYyV&KIzV{3Kh z{k5Pm$i9)_O6JMYdxI<%$^C|WKJ$v$tz%7XBzhI8R15l9mv(rd8@wP2itwiXIBKg1RIq_NB zs#$^YL6Z4sdZpwC`$O{Y?4R#>!a3~D!su{w1sZ6T(0B%ct`S77HDk4Wa2Uy}wI|^e z`1nSThP){AZY1%|S#}LpVA?c%c;feE@uFpSp53))A&zAqiELA|{sMz01V~RJf6}`$ ze}YaJ0j{E76IMii5_Um;R@NA4+E111MB4n=uCi?^6p!@1fD#=S9Ai^JM0 z3<4*sIQ$MH}YO+hid=iD~_9YDSYBVcrNMOYRx7|0yVZWpNlr zk#MwAyCK^$9#y`_W$mVo`(TvXcJvS9*yty*H6elmBRfLy`iu`^n~n_}Vm<(${LgW& zNAMt2%cUQnPQl;?JL6t2QX}l!VF|XQLc+KADlcTXki>oC5eevv3%$?!0rux z`m>%4{llz}kUf41v-|I?4bjGE5wYvR_#^(@mszNc^9~s0HU%kVw-VoG{09N=(bY~{ z=EHG(5(jFH3Hp|<_73M?EHOv&fB$<6|M%EX8sa6!Hc($OO~hesoE;>zrj$62<=;TY^nJF1@lrf2>eNlc|z z#-=)Yy;$kUxFpFW!pBSI73qu7ReMAX&-0%c{iY(tbZoKgjSskwkw}-)yhbMCC~}M{+P)hF;}~Xen$PRuS{gP2w^Lf zo0C-_J3EEJQcEli;~k7+!~JkSj!KfqI-E>^wXy#OOW02T!M+vFx1*aDS$Xv0A>&`> z{;!>3gP!)^`o(R8~R6#F0uQCBoe-z!f_vZEOZi@?ILt8;_o`i zZbH6-1k_qtl9Ab{nmZByNsH6%IFHFBr%Md!0|9LjC9q&^dB z`Wfa!SsQ_q6c`u4Q5D&c#0e?c&N?$!d&;~a{#Mw0GP>;;2VpxB|FchC&2!_QO^S^<(wlbfo1mG`Z-nN;wndt4tX8;MzW88opcSf$(1l`@p ziZONvp)`$5y7CSfh#);wTY%HUmPjHpuEKaHPSj2?&Pd>MI2lM4cCem+xwp;0-!kNR z(7%H)KU`qJBaqNP_*Uzr_kZ}--zN1jR%=Z%jR}?z{;=S+2zCGm4=i9THgE;!&#=jD zRs2X|8L;VXHu6=Aq*gP}fo=ijTkzw#e|-?nCaW3*YKvh#oD4vA9GO}^0zF2a7%roi zU>wPIlikYR8NK?**OFKiOa2&hwZ!PGu(9TUC|PuNKVy4pIN6vg&8XUaDK&R`Al=XABZ$nrZw*BHi?!rc{5{ok?J8t3gO zSwdLAlIX{77LY(zm;q;<=zrlL3VLeW(Y;Iew#|(Hv7P=jVHNY$5nDg}Y_pAO`KJEV zzb*!!C|O0EHbfyC0nagC%=kLWt1%qFZYwiyh0$>4Ct+1M7Hr&xe}~r#>Z)NFEKxDw(FVCA@Q8pU3C+{+kTLU<}FZeM6j)vSTn}Caazq3 zlc96loHZkXR8-&;HtFDUbUv`Ymqh+D-|Mk`jgQmX7(wTu6OnZ__c9hv+GGxbK$K5# z#tj(nAV>I;8cg>SmilyE8i^^PqB~><&=!uDk3eh8EYI& z74|UygTTFUejJ@*FdIIavHmaXH%MTnRi~}_K1^blu)B!<2*zsBNX$JLgRWMRH;lb4 z6XQ`RW`=`cL5xFfeJKIsBFklVUYp_sTMPrL9ZV=!&&>6 zzQ}Z1A*+SmS$+Ti3t`o#zju_bjSi#^5WCTQI+4 zvKPo2P>tyr9C#&9mXN)A(^bdX^0 zt<+wF!_3>VHUgb0tY2bYiKIg`{gj-uqV)?NBj@>RQ7AZ3Ex8N`? z3nS=X=pkm1hh$-K_V+098UeIpvatoj!b&&1FaeN%V z#7{rwZ>eT#OISKb@z>Jk+t~DVoqt7)`qLZWd=rKl*>O~Je2n=m6xD()nd!_&+qgbK zayZMbLikun;(wd%HA}J|2@SQesk(k=ke8lV|C4G00;03>w#`&9Ov>_^YuK5-5{}?>^gkB4){}B#9B4%{=(0FtHK1`|ISQe`egheIEZ#hKEaMXR>O%t2!)JiaFV^OoY%lZ3 z`0oQ1-?fm*3@dXzvfD+LM@;z>$?U>76Y@zo?m>X!1RjP?KGp_f`xe zx5| zEEOnbHs1(V1D|{FH=l&O?Hc!>rzXh%!9FWC$@NF(jV!w_1X9a~qr4`&jq|R|tFw!q zB#<1#J?NA}*N<@))+4i~wvS+o(3xqr8JM3S$VcYckw-w^+cqM9uY^7IhrzZ|35RMQ zjR)AdxB26s8@sr{4(_x594CRu4xv!lcHh>xh@{@Lo*Mnl=p?|;R9ln37RcKmb9Y8b zZ5xa87}vmYS2C}PEGr6+a8v_W5$C?rh-+vp7)PT8{$Z9GR7wbTR&KqozG53RhCcO)5ao4{JZaBJa) zuGc8#A{n(&=v~5Z3pTMre`RJb&i&~_$S^a)qo9aM+5#f0Kw>7H)EK z%X}`*disRoIuSFh=-aTyF!MF6o*eAhXe|$wpo(SE-=%!$;h$ZMg#9+6T z@dE}M$xOTWSV5Kb;I4x`5=SXA`JAsfotLwvj;fLcB5HX`4FY$yTaFzzH< z0$0TDHun3Gf1}g9_un&dl}6!;Wj3C%+GY3$tcjCtmYn3DaPT+te>9=}$@mOGYQt_+ zt*Ir{jDTvp*>!p3`iiRwy#)64^z*+qEOsL6ik$5|l$Mh~34-;c%;n8E5#wh#&d5BI z$@UR!6nYuyd9lxiJP~7W>(2UbHlKv;Ue@aobPEbo+0+pwsQqWbd0m(lrBVnBkU(ZK zy=oO0#QFr*)Xw9eDC1$!+g{)}3bK;)-u9@@$H%{nvmuL!pC%-ucAG@KExD?pNf!b< z$6;nzm|m2HZy1-fAidbdNc2XVaU|rk7?&p5e(0wrz!Z{*MvyD43IA!rpd8f9uy5=b2DcTf<^s#v@RyX&JY|vD#H+YNttTG2^ecF4~AwREtPr z8St5njs1&Hf97-1`M`Qr^w+u>yr6d_SUMJFSt5CH+>%OUM@cOg*}g)jDD!xXM=_pa z6*-Q5BdefvZ-+~2xs4N`^S>{ueHHI(Ax}Z6li|nG6 zJ35KHz$PI_6czn5to_8cpdFbnGH)9ZEv!WMUCDZskjuO@=tIv;sh-Etm_Usu} zy_(O5h>?T4284zL1%*|u<5M-EZ<&5!6FT^;i4?IxVCP;zVcEO+B#7!;z09mi{d_J( zY8VvUzC-A&xcz;0hTZ7zlP_+>YTeogw+V|l!6#kB2sHw`1kFk_)n{kovfa9d26YV$ zsMoK1kgHO?dbI+o2ZeU%);8?&RG+a~a2M8guTS#`k?MC1?m>{92YmjDAE{>RjzMig z!=_&KneG>s@1{@G#6IQ2O1}3=?(ZMiIk;_LXmGc#VfDZH9QU<6!V>)Si4;lRQb+JT z9VtTP(4a11kD~ha$r!JE+u+c^)}4b~^(zN72<{ooFsxx7-|~^emKXNDmONrWrs`!f zhYe`p8yLyPx10HXixefee~`0urH${!IAMEw`R4Ht%j))Blh(iP;mutSZ*F&ZbJ(e+ zz9S+@5qtL1sz@#6cXk>={q@^ zN|@lP@6&kYJB6Tu@!`!OoeysoXMMZsdo}FwHQ)IO;#3Ik%wYsn59}K1EQSqvKCVUNMM)1@JWZ2?do^NQ~HFx{4Pg{a%d)7?aXHH z5Au7P$*0_`3oHGS#mB7Qp*{T%?Fp!OXa^Z~CC{+aEB#hQ2^+uBFK=oq{ekm-TO&tn f9n`sVP$xT>>wep!L~Y%zU$0O{kmG@0!dU+YQ$VOg diff --git a/netbox/translations/tr/LC_MESSAGES/django.po b/netbox/translations/tr/LC_MESSAGES/django.po index c8ef5be8d..98078a5c9 100644 --- a/netbox/translations/tr/LC_MESSAGES/django.po +++ b/netbox/translations/tr/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-31 05:31+0000\n" +"POT-Creation-Date: 2026-04-03 05:30+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2026\n" "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n" @@ -48,9 +48,9 @@ msgstr "Şifreniz başarıyla değiştirildi." #: netbox/circuits/choices.py:21 netbox/dcim/choices.py:20 #: netbox/dcim/choices.py:102 netbox/dcim/choices.py:204 -#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1954 -#: netbox/dcim/choices.py:2012 netbox/dcim/choices.py:2079 -#: netbox/dcim/choices.py:2101 netbox/virtualization/choices.py:20 +#: netbox/dcim/choices.py:257 netbox/dcim/choices.py:1961 +#: netbox/dcim/choices.py:2019 netbox/dcim/choices.py:2086 +#: netbox/dcim/choices.py:2108 netbox/virtualization/choices.py:20 #: netbox/virtualization/choices.py:46 netbox/vpn/choices.py:18 #: netbox/vpn/choices.py:281 msgid "Planned" @@ -64,21 +64,20 @@ msgstr "Tedarik" #: netbox/core/tables/tasks.py:23 netbox/dcim/choices.py:22 #: netbox/dcim/choices.py:103 netbox/dcim/choices.py:155 #: netbox/dcim/choices.py:203 netbox/dcim/choices.py:256 -#: netbox/dcim/choices.py:2011 netbox/dcim/choices.py:2078 -#: netbox/dcim/choices.py:2100 netbox/extras/tables/tables.py:642 -#: netbox/ipam/choices.py:31 netbox/ipam/choices.py:49 -#: netbox/ipam/choices.py:69 netbox/ipam/choices.py:154 -#: netbox/templates/extras/configcontext.html:29 -#: netbox/users/forms/bulk_edit.py:41 netbox/users/ui/panels.py:38 -#: netbox/virtualization/choices.py:22 netbox/virtualization/choices.py:45 -#: netbox/vpn/choices.py:19 netbox/vpn/choices.py:280 -#: netbox/wireless/choices.py:25 +#: netbox/dcim/choices.py:2018 netbox/dcim/choices.py:2085 +#: netbox/dcim/choices.py:2107 netbox/extras/tables/tables.py:644 +#: netbox/extras/ui/panels.py:446 netbox/ipam/choices.py:31 +#: netbox/ipam/choices.py:49 netbox/ipam/choices.py:69 +#: netbox/ipam/choices.py:154 netbox/users/forms/bulk_edit.py:41 +#: netbox/users/ui/panels.py:38 netbox/virtualization/choices.py:22 +#: netbox/virtualization/choices.py:45 netbox/vpn/choices.py:19 +#: netbox/vpn/choices.py:280 netbox/wireless/choices.py:25 msgid "Active" msgstr "Aktif" #: netbox/circuits/choices.py:24 netbox/dcim/choices.py:202 -#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2010 -#: netbox/dcim/choices.py:2080 netbox/dcim/choices.py:2099 +#: netbox/dcim/choices.py:255 netbox/dcim/choices.py:2017 +#: netbox/dcim/choices.py:2087 netbox/dcim/choices.py:2106 #: netbox/virtualization/choices.py:24 netbox/virtualization/choices.py:44 msgid "Offline" msgstr "Çevrim dışı" @@ -91,7 +90,7 @@ msgstr "Hazırlıktan Kaldırma" msgid "Decommissioned" msgstr "Hizmet dışı bırakıldı" -#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2023 +#: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 #: netbox/dcim/tables/devices.py:1208 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 @@ -203,13 +202,13 @@ msgstr "Site grubu (kısa ad)" #: netbox/templates/dcim/inc/cable_termination.html:8 #: netbox/templates/dcim/inc/cable_termination.html:36 #: netbox/templates/ipam/vlan_edit.html:52 -#: netbox/virtualization/forms/bulk_edit.py:95 +#: netbox/virtualization/forms/bulk_edit.py:97 #: netbox/virtualization/forms/bulk_import.py:60 #: netbox/virtualization/forms/bulk_import.py:98 -#: netbox/virtualization/forms/filtersets.py:82 -#: netbox/virtualization/forms/filtersets.py:162 -#: netbox/virtualization/forms/model_forms.py:98 -#: netbox/virtualization/forms/model_forms.py:172 +#: netbox/virtualization/forms/filtersets.py:84 +#: netbox/virtualization/forms/filtersets.py:164 +#: netbox/virtualization/forms/model_forms.py:100 +#: netbox/virtualization/forms/model_forms.py:174 #: netbox/virtualization/tables/virtualmachines.py:37 #: netbox/vpn/forms/filtersets.py:288 netbox/wireless/forms/filtersets.py:94 #: netbox/wireless/forms/model_forms.py:78 @@ -333,7 +332,7 @@ msgstr "Arama" #: netbox/circuits/forms/model_forms.py:191 #: netbox/circuits/forms/model_forms.py:289 #: netbox/circuits/tables/circuits.py:103 -#: netbox/circuits/tables/circuits.py:199 netbox/dcim/forms/connections.py:83 +#: netbox/circuits/tables/circuits.py:200 netbox/dcim/forms/connections.py:83 #: netbox/templates/circuits/panels/circuit_termination.html:7 #: netbox/templates/dcim/inc/cable_termination.html:62 #: netbox/templates/dcim/trace/circuit.html:4 @@ -467,8 +466,8 @@ msgstr "Servis ID" #: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 -#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:552 -#: netbox/netbox/ui/attrs.py:213 netbox/templates/extras/tag.html:26 +#: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 +#: netbox/netbox/ui/attrs.py:213 msgid "Color" msgstr "Renk" @@ -479,7 +478,7 @@ msgstr "Renk" #: netbox/circuits/forms/filtersets.py:146 #: netbox/circuits/forms/filtersets.py:370 #: netbox/circuits/tables/circuits.py:64 -#: netbox/circuits/tables/circuits.py:196 +#: netbox/circuits/tables/circuits.py:197 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 @@ -507,15 +506,15 @@ msgstr "Renk" #: netbox/dcim/forms/object_import.py:114 #: netbox/dcim/forms/object_import.py:127 netbox/dcim/tables/devices.py:182 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:127 -#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:510 -#: netbox/extras/tables/tables.py:578 netbox/netbox/tables/tables.py:339 +#: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:511 +#: netbox/extras/tables/tables.py:580 netbox/extras/ui/panels.py:133 +#: netbox/extras/ui/panels.py:382 netbox/netbox/tables/tables.py:339 #: netbox/templates/dcim/panels/interface_connection.html:68 -#: netbox/templates/extras/eventrule.html:74 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16 -#: netbox/virtualization/forms/bulk_edit.py:50 +#: netbox/virtualization/forms/bulk_edit.py:52 #: netbox/virtualization/forms/bulk_import.py:42 -#: netbox/virtualization/forms/filtersets.py:62 -#: netbox/virtualization/forms/model_forms.py:60 +#: netbox/virtualization/forms/filtersets.py:64 +#: netbox/virtualization/forms/model_forms.py:62 #: netbox/virtualization/tables/clusters.py:67 #: netbox/vpn/forms/bulk_edit.py:226 netbox/vpn/forms/bulk_import.py:268 #: netbox/vpn/forms/filtersets.py:239 netbox/vpn/forms/model_forms.py:82 @@ -561,7 +560,7 @@ msgstr "Sağlayıcı hesabı" #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 #: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 #: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 -#: netbox/dcim/tables/modules.py:99 netbox/dcim/tables/power.py:71 +#: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 #: netbox/ipam/forms/bulk_edit.py:204 netbox/ipam/forms/bulk_edit.py:248 @@ -577,12 +576,12 @@ msgstr "Sağlayıcı hesabı" #: netbox/templates/core/system.html:19 #: netbox/templates/extras/inc/script_list_content.html:35 #: netbox/users/forms/filtersets.py:36 netbox/users/forms/model_forms.py:223 -#: netbox/virtualization/forms/bulk_edit.py:60 -#: netbox/virtualization/forms/bulk_edit.py:83 +#: netbox/virtualization/forms/bulk_edit.py:62 +#: netbox/virtualization/forms/bulk_edit.py:85 #: netbox/virtualization/forms/bulk_import.py:55 #: netbox/virtualization/forms/bulk_import.py:87 -#: netbox/virtualization/forms/filtersets.py:90 -#: netbox/virtualization/forms/filtersets.py:174 +#: netbox/virtualization/forms/filtersets.py:92 +#: netbox/virtualization/forms/filtersets.py:176 #: netbox/virtualization/tables/clusters.py:75 #: netbox/virtualization/tables/virtualmachines.py:31 #: netbox/vpn/forms/bulk_edit.py:33 netbox/vpn/forms/bulk_edit.py:222 @@ -640,12 +639,12 @@ msgstr "Durum" #: netbox/ipam/tables/ip.py:419 netbox/tenancy/forms/filtersets.py:55 #: netbox/tenancy/forms/forms.py:26 netbox/tenancy/forms/forms.py:50 #: netbox/tenancy/forms/model_forms.py:51 netbox/tenancy/tables/columns.py:50 -#: netbox/virtualization/forms/bulk_edit.py:66 -#: netbox/virtualization/forms/bulk_edit.py:126 +#: netbox/virtualization/forms/bulk_edit.py:68 +#: netbox/virtualization/forms/bulk_edit.py:128 #: netbox/virtualization/forms/bulk_import.py:67 #: netbox/virtualization/forms/bulk_import.py:128 -#: netbox/virtualization/forms/filtersets.py:54 -#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:56 +#: netbox/virtualization/forms/filtersets.py:120 #: netbox/vpn/forms/bulk_edit.py:53 netbox/vpn/forms/bulk_edit.py:231 #: netbox/vpn/forms/bulk_import.py:58 netbox/vpn/forms/bulk_import.py:257 #: netbox/vpn/forms/filtersets.py:229 netbox/wireless/forms/bulk_edit.py:60 @@ -730,10 +729,10 @@ msgstr "Servis Parametreleri" #: netbox/ipam/forms/filtersets.py:525 netbox/ipam/forms/filtersets.py:550 #: netbox/ipam/forms/filtersets.py:622 netbox/ipam/forms/filtersets.py:641 #: netbox/netbox/tables/tables.py:355 -#: netbox/virtualization/forms/filtersets.py:52 -#: netbox/virtualization/forms/filtersets.py:116 -#: netbox/virtualization/forms/filtersets.py:217 -#: netbox/virtualization/forms/filtersets.py:275 +#: netbox/virtualization/forms/filtersets.py:54 +#: netbox/virtualization/forms/filtersets.py:118 +#: netbox/virtualization/forms/filtersets.py:219 +#: netbox/virtualization/forms/filtersets.py:277 #: netbox/vpn/forms/filtersets.py:228 netbox/wireless/forms/bulk_edit.py:136 #: netbox/wireless/forms/filtersets.py:41 #: netbox/wireless/forms/filtersets.py:108 @@ -758,8 +757,8 @@ msgstr "Öznitellikler" #: netbox/templates/dcim/htmx/cable_edit.html:75 #: netbox/templates/ipam/ipaddress_bulk_add.html:27 #: netbox/templates/ipam/vlan_edit.html:34 -#: netbox/virtualization/forms/model_forms.py:74 -#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/forms/model_forms.py:76 +#: netbox/virtualization/forms/model_forms.py:224 #: netbox/vpn/forms/bulk_edit.py:66 netbox/vpn/forms/filtersets.py:52 #: netbox/vpn/forms/model_forms.py:60 netbox/vpn/forms/model_forms.py:145 #: netbox/vpn/forms/model_forms.py:409 netbox/wireless/forms/model_forms.py:56 @@ -782,30 +781,19 @@ msgstr "Kiracılık" #: netbox/extras/tables/tables.py:97 netbox/ipam/tables/vlans.py:214 #: netbox/ipam/tables/vlans.py:241 netbox/netbox/forms/bulk_edit.py:79 #: netbox/netbox/forms/bulk_edit.py:91 netbox/netbox/forms/bulk_edit.py:103 -#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 +#: netbox/netbox/ui/panels.py:201 netbox/netbox/ui/panels.py:210 #: netbox/templates/circuits/inc/circuit_termination_fields.html:85 #: netbox/templates/core/plugin.html:80 -#: netbox/templates/extras/configcontext.html:25 -#: netbox/templates/extras/configcontextprofile.html:17 -#: netbox/templates/extras/configtemplate.html:17 -#: netbox/templates/extras/customfield.html:34 #: netbox/templates/extras/dashboard/widget_add.html:14 -#: netbox/templates/extras/eventrule.html:21 -#: netbox/templates/extras/exporttemplate.html:19 -#: netbox/templates/extras/imageattachment.html:21 #: netbox/templates/extras/inc/script_list_content.html:33 -#: netbox/templates/extras/notificationgroup.html:20 -#: netbox/templates/extras/savedfilter.html:17 -#: netbox/templates/extras/tableconfig.html:17 -#: netbox/templates/extras/tag.html:20 netbox/templates/extras/webhook.html:17 #: netbox/templates/generic/bulk_import.html:151 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:12 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:12 #: netbox/users/forms/bulk_edit.py:62 netbox/users/forms/bulk_edit.py:80 #: netbox/users/forms/bulk_edit.py:115 netbox/users/forms/bulk_edit.py:143 #: netbox/users/forms/bulk_edit.py:166 -#: netbox/virtualization/forms/bulk_edit.py:193 -#: netbox/virtualization/forms/bulk_edit.py:310 +#: netbox/virtualization/forms/bulk_edit.py:202 +#: netbox/virtualization/forms/bulk_edit.py:319 msgid "Description" msgstr "Açıklama" @@ -857,7 +845,7 @@ msgstr "Fesih Ayrıntıları" #: netbox/circuits/forms/bulk_edit.py:261 #: netbox/circuits/forms/bulk_import.py:188 #: netbox/circuits/forms/filtersets.py:314 -#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/model_forms.py:692 +#: netbox/circuits/tables/circuits.py:205 netbox/dcim/forms/model_forms.py:692 #: netbox/templates/dcim/panels/virtual_chassis_members.html:11 #: netbox/templates/dcim/virtualchassis_edit.html:68 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:26 @@ -911,10 +899,10 @@ msgstr "Sağlayıcı ağı" #: netbox/tenancy/forms/filtersets.py:136 #: netbox/tenancy/forms/model_forms.py:137 #: netbox/tenancy/tables/contacts.py:96 -#: netbox/virtualization/forms/bulk_edit.py:116 +#: netbox/virtualization/forms/bulk_edit.py:118 #: netbox/virtualization/forms/bulk_import.py:119 -#: netbox/virtualization/forms/filtersets.py:171 -#: netbox/virtualization/forms/model_forms.py:196 +#: netbox/virtualization/forms/filtersets.py:173 +#: netbox/virtualization/forms/model_forms.py:198 #: netbox/virtualization/tables/virtualmachines.py:49 #: netbox/vpn/forms/bulk_edit.py:75 netbox/vpn/forms/bulk_import.py:80 #: netbox/vpn/forms/filtersets.py:95 netbox/vpn/forms/model_forms.py:76 @@ -1002,7 +990,7 @@ msgstr "Operasyonel rol" #: netbox/circuits/forms/bulk_import.py:258 #: netbox/circuits/forms/model_forms.py:392 -#: netbox/circuits/tables/virtual_circuits.py:108 +#: netbox/circuits/tables/virtual_circuits.py:109 #: netbox/circuits/ui/panels.py:134 netbox/dcim/forms/bulk_import.py:1330 #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 @@ -1015,7 +1003,7 @@ msgstr "Operasyonel rol" #: netbox/templates/circuits/inc/circuit_termination_fields.html:52 #: netbox/templates/dcim/panels/interface_connection.html:83 #: netbox/templates/wireless/panels/wirelesslink_interface.html:12 -#: netbox/virtualization/forms/model_forms.py:368 +#: netbox/virtualization/forms/model_forms.py:374 #: netbox/vpn/forms/bulk_import.py:302 netbox/vpn/forms/model_forms.py:434 #: netbox/vpn/forms/model_forms.py:443 netbox/vpn/ui/panels.py:27 #: netbox/wireless/forms/model_forms.py:115 @@ -1054,8 +1042,8 @@ msgstr "Arayüz" #: netbox/ipam/forms/filtersets.py:481 netbox/ipam/forms/filtersets.py:549 #: netbox/templates/dcim/device_edit.html:32 #: netbox/templates/dcim/inc/cable_termination.html:12 -#: netbox/virtualization/forms/filtersets.py:87 -#: netbox/virtualization/forms/filtersets.py:113 +#: netbox/virtualization/forms/filtersets.py:89 +#: netbox/virtualization/forms/filtersets.py:115 #: netbox/wireless/forms/filtersets.py:99 #: netbox/wireless/forms/model_forms.py:89 #: netbox/wireless/forms/model_forms.py:131 @@ -1109,12 +1097,12 @@ msgstr "Konum" #: netbox/tenancy/forms/filtersets.py:41 netbox/tenancy/forms/filtersets.py:56 #: netbox/tenancy/forms/filtersets.py:77 netbox/tenancy/forms/filtersets.py:91 #: netbox/tenancy/forms/filtersets.py:101 -#: netbox/virtualization/forms/filtersets.py:33 -#: netbox/virtualization/forms/filtersets.py:43 -#: netbox/virtualization/forms/filtersets.py:55 -#: netbox/virtualization/forms/filtersets.py:119 -#: netbox/virtualization/forms/filtersets.py:220 -#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/filtersets.py:35 +#: netbox/virtualization/forms/filtersets.py:45 +#: netbox/virtualization/forms/filtersets.py:57 +#: netbox/virtualization/forms/filtersets.py:121 +#: netbox/virtualization/forms/filtersets.py:222 +#: netbox/virtualization/forms/filtersets.py:278 #: netbox/vpn/forms/filtersets.py:40 netbox/vpn/forms/filtersets.py:53 #: netbox/vpn/forms/filtersets.py:109 netbox/vpn/forms/filtersets.py:139 #: netbox/vpn/forms/filtersets.py:164 netbox/vpn/forms/filtersets.py:184 @@ -1139,9 +1127,9 @@ msgstr "Mülkiyet" #: netbox/netbox/views/generic/feature_views.py:294 #: netbox/tenancy/forms/filtersets.py:57 netbox/tenancy/tables/columns.py:56 #: netbox/tenancy/tables/contacts.py:21 -#: netbox/virtualization/forms/filtersets.py:44 -#: netbox/virtualization/forms/filtersets.py:56 -#: netbox/virtualization/forms/filtersets.py:120 +#: netbox/virtualization/forms/filtersets.py:46 +#: netbox/virtualization/forms/filtersets.py:58 +#: netbox/virtualization/forms/filtersets.py:122 #: netbox/vpn/forms/filtersets.py:41 netbox/vpn/forms/filtersets.py:54 #: netbox/vpn/forms/filtersets.py:231 msgid "Contacts" @@ -1165,9 +1153,9 @@ msgstr "İletişim" #: netbox/extras/filtersets.py:685 netbox/ipam/forms/bulk_edit.py:404 #: netbox/ipam/forms/filtersets.py:241 netbox/ipam/forms/filtersets.py:466 #: netbox/ipam/forms/filtersets.py:559 netbox/ipam/ui/panels.py:195 -#: netbox/virtualization/forms/filtersets.py:67 -#: netbox/virtualization/forms/filtersets.py:147 -#: netbox/virtualization/forms/model_forms.py:86 +#: netbox/virtualization/forms/filtersets.py:69 +#: netbox/virtualization/forms/filtersets.py:149 +#: netbox/virtualization/forms/model_forms.py:88 #: netbox/vpn/forms/filtersets.py:279 netbox/wireless/forms/filtersets.py:79 msgid "Region" msgstr "Bölge" @@ -1184,9 +1172,9 @@ msgstr "Bölge" #: netbox/extras/filtersets.py:702 netbox/ipam/forms/bulk_edit.py:409 #: netbox/ipam/forms/filtersets.py:166 netbox/ipam/forms/filtersets.py:246 #: netbox/ipam/forms/filtersets.py:471 netbox/ipam/forms/filtersets.py:564 -#: netbox/virtualization/forms/filtersets.py:72 -#: netbox/virtualization/forms/filtersets.py:152 -#: netbox/virtualization/forms/model_forms.py:92 +#: netbox/virtualization/forms/filtersets.py:74 +#: netbox/virtualization/forms/filtersets.py:154 +#: netbox/virtualization/forms/model_forms.py:94 #: netbox/wireless/forms/filtersets.py:84 msgid "Site group" msgstr "Site grubu" @@ -1195,7 +1183,7 @@ msgstr "Site grubu" #: netbox/circuits/tables/circuits.py:61 #: netbox/circuits/tables/providers.py:61 #: netbox/circuits/tables/virtual_circuits.py:55 -#: netbox/circuits/tables/virtual_circuits.py:99 +#: netbox/circuits/tables/virtual_circuits.py:100 msgid "Account" msgstr "Hesap" @@ -1204,9 +1192,9 @@ msgid "Term Side" msgstr "Dönem Tarafı" #: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 -#: netbox/extras/forms/model_forms.py:706 netbox/ipam/forms/filtersets.py:154 -#: netbox/ipam/forms/filtersets.py:642 netbox/ipam/forms/model_forms.py:329 -#: netbox/ipam/ui/panels.py:121 netbox/templates/extras/configcontext.html:36 +#: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 +#: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 +#: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 #: netbox/templates/ipam/vlan_edit.html:42 #: netbox/tenancy/forms/filtersets.py:116 #: netbox/users/forms/model_forms.py:375 @@ -1234,10 +1222,10 @@ msgstr "Ödev" #: netbox/users/forms/filtersets.py:41 netbox/users/forms/filtersets.py:76 #: netbox/users/forms/filtersets.py:165 netbox/users/forms/filtersets.py:171 #: netbox/users/forms/model_forms.py:486 netbox/users/tables.py:186 -#: netbox/virtualization/forms/bulk_edit.py:55 +#: netbox/virtualization/forms/bulk_edit.py:57 #: netbox/virtualization/forms/bulk_import.py:48 -#: netbox/virtualization/forms/filtersets.py:98 -#: netbox/virtualization/forms/model_forms.py:65 +#: netbox/virtualization/forms/filtersets.py:100 +#: netbox/virtualization/forms/model_forms.py:67 #: netbox/virtualization/tables/clusters.py:71 #: netbox/vpn/forms/bulk_edit.py:100 netbox/vpn/forms/bulk_import.py:157 #: netbox/vpn/forms/filtersets.py:127 netbox/vpn/tables/crypto.py:31 @@ -1278,13 +1266,13 @@ msgid "Group Assignment" msgstr "Grup Ödevi" #: netbox/circuits/models/base.py:18 netbox/dcim/models/cables.py:81 -#: netbox/dcim/models/device_component_templates.py:343 -#: netbox/dcim/models/device_component_templates.py:578 -#: netbox/dcim/models/device_component_templates.py:651 -#: netbox/dcim/models/device_components.py:573 -#: netbox/dcim/models/device_components.py:1156 -#: netbox/dcim/models/device_components.py:1204 -#: netbox/dcim/models/device_components.py:1355 +#: netbox/dcim/models/device_component_templates.py:328 +#: netbox/dcim/models/device_component_templates.py:563 +#: netbox/dcim/models/device_component_templates.py:636 +#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_components.py:1188 +#: netbox/dcim/models/device_components.py:1236 +#: netbox/dcim/models/device_components.py:1387 #: netbox/dcim/models/devices.py:385 netbox/dcim/models/racks.py:234 #: netbox/extras/models/tags.py:30 msgid "color" @@ -1311,14 +1299,14 @@ msgstr "Benzersiz devre ID" #: netbox/circuits/models/circuits.py:72 #: netbox/circuits/models/virtual_circuits.py:60 netbox/core/models/data.py:53 #: netbox/core/models/jobs.py:95 netbox/dcim/models/cables.py:57 -#: netbox/dcim/models/device_components.py:544 -#: netbox/dcim/models/device_components.py:1394 +#: netbox/dcim/models/device_components.py:576 +#: netbox/dcim/models/device_components.py:1426 #: netbox/dcim/models/devices.py:589 netbox/dcim/models/devices.py:1218 #: netbox/dcim/models/modules.py:219 netbox/dcim/models/power.py:95 #: netbox/dcim/models/racks.py:301 netbox/dcim/models/racks.py:685 #: netbox/dcim/models/sites.py:163 netbox/dcim/models/sites.py:287 -#: netbox/ipam/models/ip.py:244 netbox/ipam/models/ip.py:538 -#: netbox/ipam/models/ip.py:767 netbox/ipam/models/vlans.py:228 +#: netbox/ipam/models/ip.py:246 netbox/ipam/models/ip.py:548 +#: netbox/ipam/models/ip.py:781 netbox/ipam/models/vlans.py:228 #: netbox/virtualization/models/clusters.py:70 #: netbox/virtualization/models/virtualmachines.py:80 #: netbox/vpn/models/l2vpn.py:36 netbox/vpn/models/tunnels.py:38 @@ -1413,7 +1401,7 @@ msgstr "Bağlantı paneli ID ve port numaraları" #: netbox/circuits/models/circuits.py:294 #: netbox/circuits/models/virtual_circuits.py:146 -#: netbox/dcim/models/device_component_templates.py:68 +#: netbox/dcim/models/device_component_templates.py:69 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:702 #: netbox/extras/models/configs.py:42 netbox/extras/models/configs.py:95 #: netbox/extras/models/configs.py:283 @@ -1446,7 +1434,7 @@ msgstr "Bir devre sonlandırma, sonlandırma nesnesine bağlanmalıdır." #: netbox/circuits/models/providers.py:63 #: netbox/circuits/models/providers.py:98 netbox/core/models/data.py:40 #: netbox/core/models/jobs.py:56 -#: netbox/dcim/models/device_component_templates.py:54 +#: netbox/dcim/models/device_component_templates.py:55 #: netbox/dcim/models/device_components.py:57 #: netbox/dcim/models/devices.py:533 netbox/dcim/models/devices.py:1144 #: netbox/dcim/models/devices.py:1213 netbox/dcim/models/modules.py:35 @@ -1541,8 +1529,8 @@ msgstr "sanal devre" msgid "virtual circuits" msgstr "sanal devreler" -#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:201 -#: netbox/ipam/models/ip.py:774 netbox/vpn/models/tunnels.py:109 +#: netbox/circuits/models/virtual_circuits.py:135 netbox/ipam/models/ip.py:203 +#: netbox/ipam/models/ip.py:788 netbox/vpn/models/tunnels.py:109 msgid "role" msgstr "rol" @@ -1579,10 +1567,10 @@ msgstr "sanal devre sonlandırmaları" #: netbox/extras/tables/tables.py:76 netbox/extras/tables/tables.py:144 #: netbox/extras/tables/tables.py:181 netbox/extras/tables/tables.py:210 #: netbox/extras/tables/tables.py:269 netbox/extras/tables/tables.py:312 -#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:462 -#: netbox/extras/tables/tables.py:479 netbox/extras/tables/tables.py:506 -#: netbox/extras/tables/tables.py:548 netbox/extras/tables/tables.py:596 -#: netbox/extras/tables/tables.py:638 netbox/extras/tables/tables.py:668 +#: netbox/extras/tables/tables.py:346 netbox/extras/tables/tables.py:463 +#: netbox/extras/tables/tables.py:480 netbox/extras/tables/tables.py:507 +#: netbox/extras/tables/tables.py:550 netbox/extras/tables/tables.py:598 +#: netbox/extras/tables/tables.py:640 netbox/extras/tables/tables.py:670 #: netbox/ipam/forms/bulk_edit.py:342 netbox/ipam/forms/filtersets.py:428 #: netbox/ipam/forms/filtersets.py:516 netbox/ipam/tables/asn.py:16 #: netbox/ipam/tables/ip.py:33 netbox/ipam/tables/ip.py:105 @@ -1590,26 +1578,14 @@ msgstr "sanal devre sonlandırmaları" #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:86 #: netbox/ipam/tables/vlans.py:205 netbox/ipam/tables/vrfs.py:26 #: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:325 -#: netbox/netbox/ui/panels.py:199 netbox/netbox/ui/panels.py:208 +#: netbox/netbox/ui/panels.py:200 netbox/netbox/ui/panels.py:209 #: netbox/templates/core/plugin.html:54 #: netbox/templates/core/rq_worker.html:43 #: netbox/templates/dcim/inc/interface_vlans_table.html:5 #: netbox/templates/dcim/inc/panels/inventory_items.html:18 #: netbox/templates/dcim/panels/component_inventory_items.html:8 #: netbox/templates/dcim/panels/interface_connection.html:64 -#: netbox/templates/extras/configcontext.html:13 -#: netbox/templates/extras/configcontextprofile.html:13 -#: netbox/templates/extras/configtemplate.html:13 -#: netbox/templates/extras/customfield.html:13 -#: netbox/templates/extras/customlink.html:13 -#: netbox/templates/extras/eventrule.html:13 -#: netbox/templates/extras/exporttemplate.html:15 -#: netbox/templates/extras/imageattachment.html:17 #: netbox/templates/extras/inc/script_list_content.html:32 -#: netbox/templates/extras/notificationgroup.html:14 -#: netbox/templates/extras/savedfilter.html:13 -#: netbox/templates/extras/tableconfig.html:13 -#: netbox/templates/extras/tag.html:14 netbox/templates/extras/webhook.html:13 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:8 #: netbox/templates/vpn/panels/ipsecprofile_ipsec_policy.html:8 #: netbox/tenancy/tables/contacts.py:38 netbox/tenancy/tables/contacts.py:53 @@ -1622,8 +1598,8 @@ msgstr "sanal devre sonlandırmaları" #: netbox/virtualization/tables/clusters.py:40 #: netbox/virtualization/tables/clusters.py:63 #: netbox/virtualization/tables/virtualmachines.py:27 -#: netbox/virtualization/tables/virtualmachines.py:110 -#: netbox/virtualization/tables/virtualmachines.py:166 +#: netbox/virtualization/tables/virtualmachines.py:113 +#: netbox/virtualization/tables/virtualmachines.py:169 #: netbox/vpn/tables/crypto.py:18 netbox/vpn/tables/crypto.py:54 #: netbox/vpn/tables/crypto.py:87 netbox/vpn/tables/crypto.py:120 #: netbox/vpn/tables/crypto.py:146 netbox/vpn/tables/l2vpn.py:23 @@ -1707,7 +1683,7 @@ msgstr "ASN Sayısı" msgid "Terminations" msgstr "Fesih" -#: netbox/circuits/tables/virtual_circuits.py:105 +#: netbox/circuits/tables/virtual_circuits.py:106 #: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 #: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 @@ -1741,7 +1717,7 @@ msgstr "Fesih" #: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 #: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 #: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 -#: netbox/dcim/tables/modules.py:82 netbox/extras/forms/filtersets.py:405 +#: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 #: netbox/templates/dcim/device_edit.html:12 @@ -1751,10 +1727,10 @@ msgstr "Fesih" #: netbox/templates/dcim/virtualchassis_edit.html:63 #: netbox/templates/wireless/panels/wirelesslink_interface.html:8 #: netbox/virtualization/filtersets.py:160 -#: netbox/virtualization/forms/bulk_edit.py:108 +#: netbox/virtualization/forms/bulk_edit.py:110 #: netbox/virtualization/forms/bulk_import.py:112 -#: netbox/virtualization/forms/filtersets.py:142 -#: netbox/virtualization/forms/model_forms.py:186 +#: netbox/virtualization/forms/filtersets.py:144 +#: netbox/virtualization/forms/model_forms.py:188 #: netbox/virtualization/tables/virtualmachines.py:45 netbox/vpn/choices.py:52 #: netbox/vpn/forms/bulk_import.py:85 netbox/vpn/forms/bulk_import.py:288 #: netbox/vpn/forms/filtersets.py:297 netbox/vpn/forms/model_forms.py:88 @@ -1828,7 +1804,7 @@ msgstr "Tamamlandı" #: netbox/core/choices.py:22 netbox/core/choices.py:59 #: netbox/core/constants.py:21 netbox/core/tables/tasks.py:35 #: netbox/dcim/choices.py:206 netbox/dcim/choices.py:259 -#: netbox/dcim/choices.py:2013 netbox/dcim/choices.py:2103 +#: netbox/dcim/choices.py:2020 netbox/dcim/choices.py:2110 #: netbox/virtualization/choices.py:48 msgid "Failed" msgstr "Başarısız" @@ -1888,14 +1864,13 @@ msgid "30 days" msgstr "30 gün" #: netbox/core/choices.py:102 netbox/core/tables/jobs.py:31 -#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:436 -#: netbox/extras/tables/tables.py:742 +#: netbox/core/tables/tasks.py:80 netbox/extras/tables/tables.py:437 +#: netbox/extras/tables/tables.py:744 #: netbox/templates/core/configrevision.html:23 #: netbox/templates/core/configrevision_restore.html:12 #: netbox/templates/core/rq_task.html:16 netbox/templates/core/rq_task.html:73 #: netbox/templates/core/rq_worker.html:14 #: netbox/templates/extras/htmx/script_result.html:12 -#: netbox/templates/extras/journalentry.html:22 #: netbox/templates/generic/object.html:65 #: netbox/templates/htmx/quick_add_created.html:7 netbox/users/tables.py:37 msgid "Created" @@ -2009,7 +1984,7 @@ msgid "User name" msgstr "Kullanıcı adı" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 -#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2061 +#: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 @@ -2018,17 +1993,13 @@ msgstr "Kullanıcı adı" #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 #: netbox/extras/forms/filtersets.py:283 netbox/extras/forms/filtersets.py:348 #: netbox/extras/tables/tables.py:188 netbox/extras/tables/tables.py:319 -#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:520 +#: netbox/extras/tables/tables.py:356 netbox/extras/tables/tables.py:522 #: netbox/netbox/preferences.py:46 netbox/netbox/preferences.py:71 -#: netbox/templates/extras/customlink.html:17 -#: netbox/templates/extras/eventrule.html:17 -#: netbox/templates/extras/savedfilter.html:25 -#: netbox/templates/extras/tableconfig.html:33 #: netbox/users/forms/bulk_edit.py:87 netbox/users/forms/bulk_edit.py:105 #: netbox/users/forms/filtersets.py:67 netbox/users/forms/filtersets.py:133 #: netbox/users/tables.py:30 netbox/users/tables.py:113 -#: netbox/virtualization/forms/bulk_edit.py:182 -#: netbox/virtualization/forms/filtersets.py:237 +#: netbox/virtualization/forms/bulk_edit.py:191 +#: netbox/virtualization/forms/filtersets.py:239 msgid "Enabled" msgstr "Etkin" @@ -2038,12 +2009,11 @@ msgid "Sync interval" msgstr "Senkronizasyon aralığı" #: netbox/core/forms/bulk_edit.py:33 netbox/extras/forms/model_forms.py:319 -#: netbox/templates/extras/savedfilter.html:56 -#: netbox/vpn/forms/filtersets.py:107 netbox/vpn/forms/filtersets.py:138 -#: netbox/vpn/forms/filtersets.py:163 netbox/vpn/forms/filtersets.py:183 -#: netbox/vpn/forms/model_forms.py:299 netbox/vpn/forms/model_forms.py:320 -#: netbox/vpn/forms/model_forms.py:336 netbox/vpn/forms/model_forms.py:357 -#: netbox/vpn/forms/model_forms.py:379 +#: netbox/extras/views.py:382 netbox/vpn/forms/filtersets.py:107 +#: netbox/vpn/forms/filtersets.py:138 netbox/vpn/forms/filtersets.py:163 +#: netbox/vpn/forms/filtersets.py:183 netbox/vpn/forms/model_forms.py:299 +#: netbox/vpn/forms/model_forms.py:320 netbox/vpn/forms/model_forms.py:336 +#: netbox/vpn/forms/model_forms.py:357 netbox/vpn/forms/model_forms.py:379 msgid "Parameters" msgstr "Parametreler" @@ -2056,16 +2026,15 @@ msgstr "Kuralları yok sayın" #: netbox/extras/forms/model_forms.py:613 #: netbox/extras/forms/model_forms.py:702 #: netbox/extras/forms/model_forms.py:755 netbox/extras/tables/tables.py:230 -#: netbox/extras/tables/tables.py:600 netbox/extras/tables/tables.py:630 -#: netbox/extras/tables/tables.py:672 +#: netbox/extras/tables/tables.py:602 netbox/extras/tables/tables.py:632 +#: netbox/extras/tables/tables.py:674 #: netbox/templates/core/inc/datafile_panel.html:7 -#: netbox/templates/extras/configtemplate.html:37 #: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "Veri Kaynağı" #: netbox/core/forms/filtersets.py:65 netbox/core/forms/mixins.py:21 -#: netbox/templates/extras/imageattachment.html:30 +#: netbox/extras/ui/panels.py:496 msgid "File" msgstr "Dosya" @@ -2083,10 +2052,9 @@ msgstr "Oluşturma" #: netbox/core/forms/filtersets.py:85 netbox/core/forms/filtersets.py:175 #: netbox/extras/forms/filtersets.py:580 netbox/extras/tables/tables.py:283 #: netbox/extras/tables/tables.py:350 netbox/extras/tables/tables.py:376 -#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:427 -#: netbox/extras/tables/tables.py:747 -#: netbox/templates/extras/tableconfig.html:21 -#: netbox/tenancy/tables/contacts.py:84 netbox/vpn/tables/l2vpn.py:59 +#: netbox/extras/tables/tables.py:395 netbox/extras/tables/tables.py:428 +#: netbox/extras/tables/tables.py:749 netbox/tenancy/tables/contacts.py:84 +#: netbox/vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "Nesne Türü" @@ -2131,9 +2099,7 @@ msgstr "Daha önce tamamlandı" #: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 -#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:443 -#: netbox/templates/extras/savedfilter.html:21 -#: netbox/templates/extras/tableconfig.html:29 +#: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 #: netbox/templates/inc/user_menu.html:31 netbox/users/filtersets.py:135 #: netbox/users/filtersets.py:217 netbox/users/forms/filtersets.py:81 #: netbox/users/forms/filtersets.py:126 netbox/users/forms/model_forms.py:181 @@ -2142,8 +2108,8 @@ msgid "User" msgstr "Kullanıcı" #: netbox/core/forms/filtersets.py:149 netbox/core/tables/change_logging.py:16 -#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:785 -#: netbox/extras/tables/tables.py:840 +#: netbox/core/tables/jobs.py:72 netbox/extras/tables/tables.py:787 +#: netbox/extras/tables/tables.py:842 msgid "Time" msgstr "Zaman" @@ -2156,8 +2122,7 @@ msgid "Before" msgstr "Önce" #: netbox/core/forms/filtersets.py:163 netbox/core/tables/change_logging.py:30 -#: netbox/extras/forms/model_forms.py:490 -#: netbox/templates/extras/eventrule.html:71 +#: netbox/extras/forms/model_forms.py:490 netbox/extras/ui/panels.py:380 msgid "Action" msgstr "Eylem" @@ -2197,7 +2162,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Raf Yükseltmeleri" -#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1932 +#: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 #: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 #: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 @@ -2340,20 +2305,20 @@ msgid "Config revision #{id}" msgstr "Yapılandırma revizyonu #{id}" #: netbox/core/models/data.py:45 netbox/dcim/models/cables.py:50 -#: netbox/dcim/models/device_component_templates.py:200 -#: netbox/dcim/models/device_component_templates.py:235 -#: netbox/dcim/models/device_component_templates.py:271 -#: netbox/dcim/models/device_component_templates.py:336 -#: netbox/dcim/models/device_component_templates.py:427 -#: netbox/dcim/models/device_component_templates.py:573 -#: netbox/dcim/models/device_component_templates.py:646 -#: netbox/dcim/models/device_components.py:370 -#: netbox/dcim/models/device_components.py:397 -#: netbox/dcim/models/device_components.py:428 -#: netbox/dcim/models/device_components.py:550 -#: netbox/dcim/models/device_components.py:768 -#: netbox/dcim/models/device_components.py:1151 -#: netbox/dcim/models/device_components.py:1199 +#: netbox/dcim/models/device_component_templates.py:185 +#: netbox/dcim/models/device_component_templates.py:220 +#: netbox/dcim/models/device_component_templates.py:256 +#: netbox/dcim/models/device_component_templates.py:321 +#: netbox/dcim/models/device_component_templates.py:412 +#: netbox/dcim/models/device_component_templates.py:558 +#: netbox/dcim/models/device_component_templates.py:631 +#: netbox/dcim/models/device_components.py:402 +#: netbox/dcim/models/device_components.py:429 +#: netbox/dcim/models/device_components.py:460 +#: netbox/dcim/models/device_components.py:582 +#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_components.py:1183 +#: netbox/dcim/models/device_components.py:1231 #: netbox/dcim/models/power.py:101 netbox/extras/models/customfields.py:102 #: netbox/extras/models/search.py:42 #: netbox/virtualization/models/clusters.py:57 netbox/vpn/models/l2vpn.py:31 @@ -2362,13 +2327,13 @@ msgstr "türü" #: netbox/core/models/data.py:50 netbox/core/ui/panels.py:17 #: netbox/extras/choices.py:37 netbox/extras/models/models.py:183 -#: netbox/extras/tables/tables.py:850 netbox/templates/core/plugin.html:66 +#: netbox/extras/tables/tables.py:852 netbox/templates/core/plugin.html:66 msgid "URL" msgstr "URL" #: netbox/core/models/data.py:60 -#: netbox/dcim/models/device_component_templates.py:432 -#: netbox/dcim/models/device_components.py:605 +#: netbox/dcim/models/device_component_templates.py:417 +#: netbox/dcim/models/device_components.py:637 #: netbox/extras/models/models.py:81 netbox/extras/models/models.py:319 #: netbox/extras/models/models.py:507 netbox/extras/models/models.py:586 #: netbox/users/models/permissions.py:29 netbox/users/models/tokens.py:65 @@ -2434,7 +2399,7 @@ msgstr "" msgid "last updated" msgstr "son güncellendi" -#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:675 +#: netbox/core/models/data.py:301 netbox/dcim/models/cables.py:676 msgid "path" msgstr "yol" @@ -2442,7 +2407,8 @@ msgstr "yol" msgid "File path relative to the data source's root" msgstr "Veri kaynağının köküne göre dosya yolu" -#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:519 +#: netbox/core/models/data.py:308 netbox/ipam/models/ip.py:529 +#: netbox/virtualization/models/virtualmachines.py:428 msgid "size" msgstr "boyut" @@ -2592,12 +2558,11 @@ msgstr "Ad Soyad" #: netbox/core/tables/change_logging.py:38 netbox/core/tables/jobs.py:23 #: netbox/core/ui/panels.py:83 netbox/extras/choices.py:41 #: netbox/extras/tables/tables.py:286 netbox/extras/tables/tables.py:379 -#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:430 -#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:583 -#: netbox/extras/tables/tables.py:752 netbox/extras/tables/tables.py:793 -#: netbox/extras/tables/tables.py:847 netbox/netbox/tables/tables.py:343 -#: netbox/templates/extras/eventrule.html:78 -#: netbox/templates/extras/journalentry.html:18 +#: netbox/extras/tables/tables.py:398 netbox/extras/tables/tables.py:431 +#: netbox/extras/tables/tables.py:514 netbox/extras/tables/tables.py:585 +#: netbox/extras/tables/tables.py:754 netbox/extras/tables/tables.py:795 +#: netbox/extras/tables/tables.py:849 netbox/extras/ui/panels.py:383 +#: netbox/extras/ui/panels.py:511 netbox/netbox/tables/tables.py:343 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64 msgid "Object" msgstr "Nesne" @@ -2607,7 +2572,7 @@ msgid "Request ID" msgstr "İstek Kimliği" #: netbox/core/tables/change_logging.py:46 netbox/core/tables/jobs.py:79 -#: netbox/extras/tables/tables.py:796 netbox/extras/tables/tables.py:853 +#: netbox/extras/tables/tables.py:798 netbox/extras/tables/tables.py:855 msgid "Message" msgstr "Mesaj" @@ -2636,7 +2601,7 @@ msgstr "Son Güncelleme" #: netbox/core/tables/jobs.py:12 netbox/core/tables/tasks.py:77 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:260 -#: netbox/extras/tables/tables.py:573 netbox/extras/tables/tables.py:818 +#: netbox/extras/tables/tables.py:575 netbox/extras/tables/tables.py:820 #: netbox/netbox/tables/tables.py:233 #: netbox/templates/dcim/virtualchassis_edit.html:64 #: netbox/utilities/forms/forms.py:119 @@ -2652,8 +2617,8 @@ msgstr "Aralık" msgid "Log Entries" msgstr "Günlük Girişleri" -#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:790 -#: netbox/extras/tables/tables.py:844 +#: netbox/core/tables/jobs.py:76 netbox/extras/tables/tables.py:792 +#: netbox/extras/tables/tables.py:846 msgid "Level" msgstr "Seviye" @@ -2773,11 +2738,10 @@ msgid "Backend" msgstr "Arka uç" #: netbox/core/ui/panels.py:33 netbox/extras/tables/tables.py:234 -#: netbox/extras/tables/tables.py:604 netbox/extras/tables/tables.py:634 -#: netbox/extras/tables/tables.py:676 +#: netbox/extras/tables/tables.py:606 netbox/extras/tables/tables.py:636 +#: netbox/extras/tables/tables.py:678 #: netbox/templates/core/inc/datafile_panel.html:4 #: netbox/templates/core/inc/datafile_panel.html:17 -#: netbox/templates/extras/configtemplate.html:47 #: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 msgid "Data File" @@ -2836,8 +2800,7 @@ msgstr "Sıraya alınmış iş #{id} senkronize etmek {datasource}" #: netbox/core/views.py:237 netbox/extras/forms/filtersets.py:179 #: netbox/extras/forms/filtersets.py:380 netbox/extras/forms/filtersets.py:403 #: netbox/extras/forms/filtersets.py:499 -#: netbox/extras/forms/model_forms.py:696 -#: netbox/templates/extras/eventrule.html:84 +#: netbox/extras/forms/model_forms.py:696 netbox/extras/ui/panels.py:386 msgid "Data" msgstr "Veriler" @@ -2902,11 +2865,24 @@ msgstr "Arayüz modu etiketsiz vlan'ı desteklemiyor" msgid "Interface mode does not support tagged vlans" msgstr "Arayüz modu etiketli vlanları desteklemiyor" -#: netbox/dcim/api/serializers_/devices.py:54 +#: netbox/dcim/api/serializers_/devices.py:55 #: netbox/dcim/api/serializers_/devicetypes.py:28 msgid "Position (U)" msgstr "Pozisyon (U)" +#: netbox/dcim/api/serializers_/devices.py:200 netbox/dcim/forms/common.py:114 +msgid "" +"Cannot install module with placeholder values in a module bay with no " +"position defined." +msgstr "" +"Konum tanımlanmamış bir modül yuvasına yer tutucu değerleri olan modül " +"yüklenemiyor." + +#: netbox/dcim/api/serializers_/devices.py:209 netbox/dcim/forms/common.py:136 +#, python-brace-format +msgid "A {model} named {name} already exists" +msgstr "BİR {model} adlandırmak {name} zaten var" + #: netbox/dcim/api/serializers_/racks.py:113 netbox/dcim/ui/panels.py:49 msgid "Facility ID" msgstr "Tesis Kimliği" @@ -2934,8 +2910,8 @@ msgid "Staging" msgstr "Sahneleme" #: netbox/dcim/choices.py:23 netbox/dcim/choices.py:208 -#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1955 -#: netbox/dcim/choices.py:2104 netbox/virtualization/choices.py:23 +#: netbox/dcim/choices.py:260 netbox/dcim/choices.py:1962 +#: netbox/dcim/choices.py:2111 netbox/virtualization/choices.py:23 #: netbox/virtualization/choices.py:49 netbox/vpn/choices.py:282 msgid "Decommissioning" msgstr "Hizmetten çıkarma" @@ -3001,7 +2977,7 @@ msgstr "Kullanımdan kaldırıldı" msgid "Millimeters" msgstr "Milimetre" -#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1977 +#: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1984 msgid "Inches" msgstr "İnç" @@ -3038,14 +3014,14 @@ msgstr "Bayat" #: netbox/ipam/forms/bulk_import.py:601 netbox/ipam/forms/model_forms.py:758 #: netbox/ipam/tables/fhrp.py:56 netbox/ipam/tables/ip.py:329 #: netbox/ipam/tables/services.py:42 netbox/netbox/tables/tables.py:329 -#: netbox/netbox/ui/panels.py:207 netbox/tenancy/forms/bulk_edit.py:33 +#: netbox/netbox/ui/panels.py:208 netbox/tenancy/forms/bulk_edit.py:33 #: netbox/tenancy/forms/bulk_edit.py:62 netbox/tenancy/forms/bulk_import.py:31 #: netbox/tenancy/forms/bulk_import.py:64 #: netbox/tenancy/forms/model_forms.py:26 #: netbox/tenancy/forms/model_forms.py:67 -#: netbox/virtualization/forms/bulk_edit.py:172 +#: netbox/virtualization/forms/bulk_edit.py:181 #: netbox/virtualization/forms/bulk_import.py:164 -#: netbox/virtualization/tables/virtualmachines.py:133 +#: netbox/virtualization/tables/virtualmachines.py:136 #: netbox/vpn/ui/panels.py:25 netbox/wireless/forms/bulk_edit.py:26 #: netbox/wireless/forms/bulk_import.py:23 #: netbox/wireless/forms/model_forms.py:23 @@ -3073,7 +3049,7 @@ msgid "Rear" msgstr "Arka" #: netbox/dcim/choices.py:205 netbox/dcim/choices.py:258 -#: netbox/dcim/choices.py:2102 netbox/virtualization/choices.py:47 +#: netbox/dcim/choices.py:2109 netbox/virtualization/choices.py:47 msgid "Staged" msgstr "Sahnelenmiş" @@ -3106,7 +3082,7 @@ msgid "Top to bottom" msgstr "Yukarıdan aşağıya" #: netbox/dcim/choices.py:235 netbox/dcim/choices.py:280 -#: netbox/dcim/choices.py:1587 +#: netbox/dcim/choices.py:1592 msgid "Passive" msgstr "Pasif" @@ -3135,8 +3111,8 @@ msgid "Proprietary" msgstr "Tescilli" #: netbox/dcim/choices.py:606 netbox/dcim/choices.py:853 -#: netbox/dcim/choices.py:1499 netbox/dcim/choices.py:1501 -#: netbox/dcim/choices.py:1737 netbox/dcim/choices.py:1739 +#: netbox/dcim/choices.py:1501 netbox/dcim/choices.py:1503 +#: netbox/dcim/choices.py:1742 netbox/dcim/choices.py:1744 #: netbox/netbox/navigation/menu.py:212 msgid "Other" msgstr "Diğer" @@ -3149,350 +3125,354 @@ msgstr "ITA/Uluslararası" msgid "Physical" msgstr "Fiziksel" -#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1162 +#: netbox/dcim/choices.py:884 netbox/dcim/choices.py:1163 msgid "Virtual" msgstr "Sanal" -#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1376 +#: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 #: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 -#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:546 +#: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 msgid "Wireless" msgstr "Kablosuz" -#: netbox/dcim/choices.py:1160 +#: netbox/dcim/choices.py:1161 msgid "Virtual interfaces" msgstr "Sanal arayüzler" -#: netbox/dcim/choices.py:1163 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 -#: netbox/virtualization/forms/bulk_edit.py:177 +#: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 -#: netbox/virtualization/tables/virtualmachines.py:137 +#: netbox/virtualization/tables/virtualmachines.py:140 msgid "Bridge" msgstr "Köprü" -#: netbox/dcim/choices.py:1164 +#: netbox/dcim/choices.py:1165 msgid "Link Aggregation Group (LAG)" msgstr "Bağlantı Toplama Grubu (LAG)" -#: netbox/dcim/choices.py:1168 +#: netbox/dcim/choices.py:1169 msgid "FastEthernet (100 Mbps)" msgstr "Hızlı Ethernet (100 Mbps)" -#: netbox/dcim/choices.py:1177 +#: netbox/dcim/choices.py:1178 msgid "GigabitEthernet (1 Gbps)" msgstr "GigabitEthernet (1 Gbps)" -#: netbox/dcim/choices.py:1195 +#: netbox/dcim/choices.py:1196 msgid "2.5/5 Gbps Ethernet" msgstr "2,5/5 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1202 +#: netbox/dcim/choices.py:1203 msgid "10 Gbps Ethernet" msgstr "10 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1218 +#: netbox/dcim/choices.py:1219 msgid "25 Gbps Ethernet" msgstr "25 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1228 +#: netbox/dcim/choices.py:1229 msgid "40 Gbps Ethernet" msgstr "40 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1239 +#: netbox/dcim/choices.py:1240 msgid "50 Gbps Ethernet" msgstr "50 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1249 +#: netbox/dcim/choices.py:1250 msgid "100 Gbps Ethernet" msgstr "100 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1270 +#: netbox/dcim/choices.py:1271 msgid "200 Gbps Ethernet" msgstr "200 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1284 +#: netbox/dcim/choices.py:1285 msgid "400 Gbps Ethernet" msgstr "400 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1302 +#: netbox/dcim/choices.py:1303 msgid "800 Gbps Ethernet" msgstr "800 Gb/sn Ethernet" -#: netbox/dcim/choices.py:1311 +#: netbox/dcim/choices.py:1312 msgid "1.6 Tbps Ethernet" msgstr "1.6 Tb/sn Ethernet" -#: netbox/dcim/choices.py:1319 +#: netbox/dcim/choices.py:1320 msgid "Pluggable transceivers" msgstr "Takılabilir alıcı-vericiler" -#: netbox/dcim/choices.py:1359 +#: netbox/dcim/choices.py:1361 msgid "Backplane Ethernet" msgstr "Arka Panel Ethernet" -#: netbox/dcim/choices.py:1392 +#: netbox/dcim/choices.py:1394 msgid "Cellular" msgstr "Hücresel" -#: netbox/dcim/choices.py:1444 netbox/dcim/forms/filtersets.py:425 +#: netbox/dcim/choices.py:1446 netbox/dcim/forms/filtersets.py:425 #: netbox/dcim/forms/filtersets.py:911 netbox/dcim/forms/filtersets.py:1112 #: netbox/dcim/forms/filtersets.py:1910 #: netbox/templates/dcim/virtualchassis_edit.html:66 msgid "Serial" msgstr "Seri" -#: netbox/dcim/choices.py:1459 +#: netbox/dcim/choices.py:1461 msgid "Coaxial" msgstr "Koaksiyel" -#: netbox/dcim/choices.py:1480 +#: netbox/dcim/choices.py:1482 msgid "Stacking" msgstr "İstifleme" -#: netbox/dcim/choices.py:1532 +#: netbox/dcim/choices.py:1537 msgid "Half" msgstr "Yarım" -#: netbox/dcim/choices.py:1533 +#: netbox/dcim/choices.py:1538 msgid "Full" msgstr "Dolu" -#: netbox/dcim/choices.py:1534 netbox/netbox/preferences.py:32 +#: netbox/dcim/choices.py:1539 netbox/netbox/preferences.py:32 #: netbox/wireless/choices.py:480 msgid "Auto" msgstr "Oto" -#: netbox/dcim/choices.py:1546 +#: netbox/dcim/choices.py:1551 msgid "Access" msgstr "Erişim" -#: netbox/dcim/choices.py:1547 netbox/ipam/tables/vlans.py:148 +#: netbox/dcim/choices.py:1552 netbox/ipam/tables/vlans.py:148 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Etiketlenmiş" -#: netbox/dcim/choices.py:1548 +#: netbox/dcim/choices.py:1553 msgid "Tagged (All)" msgstr "Etiketlenmiş (Tümü)" -#: netbox/dcim/choices.py:1549 netbox/templates/ipam/vlan_edit.html:26 +#: netbox/dcim/choices.py:1554 netbox/templates/ipam/vlan_edit.html:26 msgid "Q-in-Q (802.1ad)" msgstr "Q-in-Q (802.1ad)" -#: netbox/dcim/choices.py:1578 +#: netbox/dcim/choices.py:1583 msgid "IEEE Standard" msgstr "IEEE Standardı" -#: netbox/dcim/choices.py:1589 +#: netbox/dcim/choices.py:1594 msgid "Passive 24V (2-pair)" msgstr "Pasif 24V (2 çift)" -#: netbox/dcim/choices.py:1590 +#: netbox/dcim/choices.py:1595 msgid "Passive 24V (4-pair)" msgstr "Pasif 24V (4 çift)" -#: netbox/dcim/choices.py:1591 +#: netbox/dcim/choices.py:1596 msgid "Passive 48V (2-pair)" msgstr "Pasif 48V (2 çift)" -#: netbox/dcim/choices.py:1592 +#: netbox/dcim/choices.py:1597 msgid "Passive 48V (4-pair)" msgstr "Pasif 48V (4 çift)" -#: netbox/dcim/choices.py:1665 +#: netbox/dcim/choices.py:1670 msgid "Copper" msgstr "Bakır" -#: netbox/dcim/choices.py:1688 +#: netbox/dcim/choices.py:1693 msgid "Fiber Optic" msgstr "Fiber Optik" -#: netbox/dcim/choices.py:1724 netbox/dcim/choices.py:1938 +#: netbox/dcim/choices.py:1729 netbox/dcim/choices.py:1945 msgid "USB" msgstr "USB" -#: netbox/dcim/choices.py:1780 +#: netbox/dcim/choices.py:1786 msgid "Single" msgstr "Tek" -#: netbox/dcim/choices.py:1782 +#: netbox/dcim/choices.py:1788 msgid "1C1P" msgstr "1C1P" -#: netbox/dcim/choices.py:1783 +#: netbox/dcim/choices.py:1789 msgid "1C2P" msgstr "1C2P" -#: netbox/dcim/choices.py:1784 +#: netbox/dcim/choices.py:1790 msgid "1C4P" msgstr "1C4P" -#: netbox/dcim/choices.py:1785 +#: netbox/dcim/choices.py:1791 msgid "1C6P" msgstr "1C6P" -#: netbox/dcim/choices.py:1786 +#: netbox/dcim/choices.py:1792 msgid "1C8P" msgstr "1C8P" -#: netbox/dcim/choices.py:1787 +#: netbox/dcim/choices.py:1793 msgid "1C12P" msgstr "1C12P" -#: netbox/dcim/choices.py:1788 +#: netbox/dcim/choices.py:1794 msgid "1C16P" msgstr "1C16P" -#: netbox/dcim/choices.py:1792 +#: netbox/dcim/choices.py:1798 msgid "Trunk" msgstr "Gövde" -#: netbox/dcim/choices.py:1794 +#: netbox/dcim/choices.py:1800 msgid "2C1P trunk" msgstr "2C1P bagaj" -#: netbox/dcim/choices.py:1795 +#: netbox/dcim/choices.py:1801 msgid "2C2P trunk" msgstr "2C2P bagaj" -#: netbox/dcim/choices.py:1796 +#: netbox/dcim/choices.py:1802 msgid "2C4P trunk" msgstr "2C4P bagaj" -#: netbox/dcim/choices.py:1797 +#: netbox/dcim/choices.py:1803 msgid "2C4P trunk (shuffle)" msgstr "2C4P bagaj (karışık)" -#: netbox/dcim/choices.py:1798 +#: netbox/dcim/choices.py:1804 msgid "2C6P trunk" msgstr "2C6P bagaj" -#: netbox/dcim/choices.py:1799 +#: netbox/dcim/choices.py:1805 msgid "2C8P trunk" msgstr "2C8P bagaj" -#: netbox/dcim/choices.py:1800 +#: netbox/dcim/choices.py:1806 msgid "2C12P trunk" msgstr "2C12P bagaj" -#: netbox/dcim/choices.py:1801 +#: netbox/dcim/choices.py:1807 msgid "4C1P trunk" msgstr "4C1P bagaj" -#: netbox/dcim/choices.py:1802 +#: netbox/dcim/choices.py:1808 msgid "4C2P trunk" msgstr "4C2P bagaj" -#: netbox/dcim/choices.py:1803 +#: netbox/dcim/choices.py:1809 msgid "4C4P trunk" msgstr "4C4P bagaj" -#: netbox/dcim/choices.py:1804 +#: netbox/dcim/choices.py:1810 msgid "4C4P trunk (shuffle)" msgstr "4C4P bagaj (karışık)" -#: netbox/dcim/choices.py:1805 +#: netbox/dcim/choices.py:1811 msgid "4C6P trunk" msgstr "4C6P bagaj" -#: netbox/dcim/choices.py:1806 +#: netbox/dcim/choices.py:1812 msgid "4C8P trunk" msgstr "4C8P bagaj" -#: netbox/dcim/choices.py:1807 +#: netbox/dcim/choices.py:1813 msgid "8C4P trunk" msgstr "8C4P bagaj" -#: netbox/dcim/choices.py:1811 +#: netbox/dcim/choices.py:1817 msgid "Breakout" msgstr "Kaçış" -#: netbox/dcim/choices.py:1813 +#: netbox/dcim/choices.py:1819 +msgid "1C2P:2C1P breakout" +msgstr "1C2P: 2C1P kırılma" + +#: netbox/dcim/choices.py:1820 msgid "1C4P:4C1P breakout" msgstr "1C4P: 4C1P kırılma" -#: netbox/dcim/choices.py:1814 +#: netbox/dcim/choices.py:1821 msgid "1C6P:6C1P breakout" msgstr "1C6P: 6C1P kopma" -#: netbox/dcim/choices.py:1815 +#: netbox/dcim/choices.py:1822 msgid "2C4P:8C1P breakout (shuffle)" msgstr "2C4P: 8C1P kopma (karışık)" -#: netbox/dcim/choices.py:1873 +#: netbox/dcim/choices.py:1880 msgid "Copper - Twisted Pair (UTP/STP)" msgstr "Bakır - Bükülmüş Çift (UTP/STP)" -#: netbox/dcim/choices.py:1887 +#: netbox/dcim/choices.py:1894 msgid "Copper - Twinax (DAC)" msgstr "Bakır - Twinax (DAC)" -#: netbox/dcim/choices.py:1894 +#: netbox/dcim/choices.py:1901 msgid "Copper - Coaxial" msgstr "Bakır - Koaksiyel" -#: netbox/dcim/choices.py:1909 +#: netbox/dcim/choices.py:1916 msgid "Fiber - Multimode" msgstr "Fiber - Çok Modlu" -#: netbox/dcim/choices.py:1920 +#: netbox/dcim/choices.py:1927 msgid "Fiber - Single-mode" msgstr "Fiber - Tek modlu" -#: netbox/dcim/choices.py:1928 +#: netbox/dcim/choices.py:1935 msgid "Fiber - Other" msgstr "Elyaf - Diğer" -#: netbox/dcim/choices.py:1953 netbox/dcim/forms/filtersets.py:1402 +#: netbox/dcim/choices.py:1960 netbox/dcim/forms/filtersets.py:1402 msgid "Connected" msgstr "Bağlı" -#: netbox/dcim/choices.py:1972 netbox/netbox/choices.py:177 +#: netbox/dcim/choices.py:1979 netbox/netbox/choices.py:177 msgid "Kilometers" msgstr "Kilometre" -#: netbox/dcim/choices.py:1973 netbox/netbox/choices.py:178 +#: netbox/dcim/choices.py:1980 netbox/netbox/choices.py:178 #: netbox/templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Sayaçlar" -#: netbox/dcim/choices.py:1974 +#: netbox/dcim/choices.py:1981 msgid "Centimeters" msgstr "Santimetre" -#: netbox/dcim/choices.py:1975 netbox/netbox/choices.py:179 +#: netbox/dcim/choices.py:1982 netbox/netbox/choices.py:179 msgid "Miles" msgstr "Mil" -#: netbox/dcim/choices.py:1976 netbox/netbox/choices.py:180 +#: netbox/dcim/choices.py:1983 netbox/netbox/choices.py:180 #: netbox/templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Feet" -#: netbox/dcim/choices.py:2024 +#: netbox/dcim/choices.py:2031 msgid "Redundant" msgstr "Yedekli" -#: netbox/dcim/choices.py:2045 +#: netbox/dcim/choices.py:2052 msgid "Single phase" msgstr "Tek fazlı" -#: netbox/dcim/choices.py:2046 +#: netbox/dcim/choices.py:2053 msgid "Three-phase" msgstr "Üç fazlı" -#: netbox/dcim/choices.py:2062 netbox/extras/choices.py:53 +#: netbox/dcim/choices.py:2069 netbox/extras/choices.py:53 #: netbox/netbox/preferences.py:45 netbox/netbox/preferences.py:70 -#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 -#: netbox/wireless/choices.py:27 +#: netbox/templates/extras/customfield/attrs/search_weight.html:1 +#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 msgid "Disabled" msgstr "Engelli" -#: netbox/dcim/choices.py:2063 +#: netbox/dcim/choices.py:2070 msgid "Faulty" msgstr "Arızalı" @@ -3776,17 +3756,17 @@ msgstr "Tam derinlik mi" #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 -#: netbox/dcim/ui/panels.py:504 netbox/virtualization/filtersets.py:230 +#: netbox/dcim/ui/panels.py:513 netbox/virtualization/filtersets.py:230 #: netbox/virtualization/filtersets.py:318 -#: netbox/virtualization/forms/filtersets.py:191 -#: netbox/virtualization/forms/filtersets.py:245 +#: netbox/virtualization/forms/filtersets.py:193 +#: netbox/virtualization/forms/filtersets.py:247 msgid "MAC address" msgstr "MAC adresi" #: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:195 +#: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "Birincil IP'ye sahiptir" @@ -3924,7 +3904,7 @@ msgid "Is primary" msgstr "Birincildir" #: netbox/dcim/filtersets.py:2060 -#: netbox/virtualization/forms/model_forms.py:386 +#: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "802.1Q Modu" @@ -3941,8 +3921,8 @@ msgstr "Atanmış VID" #: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 -#: netbox/dcim/models/device_components.py:867 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:507 +#: netbox/dcim/models/device_components.py:899 +#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3953,18 +3933,18 @@ msgstr "Atanmış VID" #: netbox/ipam/forms/model_forms.py:68 netbox/ipam/forms/model_forms.py:203 #: netbox/ipam/forms/model_forms.py:250 netbox/ipam/forms/model_forms.py:303 #: netbox/ipam/forms/model_forms.py:466 netbox/ipam/forms/model_forms.py:480 -#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:224 -#: netbox/ipam/models/ip.py:528 netbox/ipam/models/ip.py:757 +#: netbox/ipam/forms/model_forms.py:494 netbox/ipam/models/ip.py:226 +#: netbox/ipam/models/ip.py:538 netbox/ipam/models/ip.py:771 #: netbox/ipam/models/vrfs.py:61 netbox/ipam/tables/ip.py:187 #: netbox/ipam/tables/ip.py:258 netbox/ipam/tables/ip.py:311 #: netbox/ipam/tables/ip.py:413 netbox/ipam/ui/panels.py:102 #: netbox/ipam/ui/panels.py:111 netbox/ipam/ui/panels.py:139 -#: netbox/virtualization/forms/bulk_edit.py:226 +#: netbox/virtualization/forms/bulk_edit.py:235 #: netbox/virtualization/forms/bulk_import.py:218 -#: netbox/virtualization/forms/filtersets.py:250 -#: netbox/virtualization/forms/model_forms.py:359 +#: netbox/virtualization/forms/filtersets.py:252 +#: netbox/virtualization/forms/model_forms.py:365 #: netbox/virtualization/models/virtualmachines.py:345 -#: netbox/virtualization/tables/virtualmachines.py:114 +#: netbox/virtualization/tables/virtualmachines.py:117 #: netbox/virtualization/ui/panels.py:73 msgid "VRF" msgstr "VRF" @@ -3981,10 +3961,10 @@ msgid "L2VPN (ID)" msgstr "L2VPN (KİMLİĞİ)" #: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:487 +#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 -#: netbox/virtualization/forms/filtersets.py:255 +#: netbox/virtualization/forms/filtersets.py:257 #: netbox/vpn/forms/bulk_import.py:285 netbox/vpn/forms/filtersets.py:268 #: netbox/vpn/forms/model_forms.py:407 netbox/vpn/forms/model_forms.py:425 #: netbox/vpn/models/l2vpn.py:68 netbox/vpn/tables/l2vpn.py:55 @@ -3998,11 +3978,11 @@ msgstr "VLAN Çeviri Politikası (ID)" #: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 -#: netbox/dcim/models/device_components.py:668 +#: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 -#: netbox/virtualization/forms/bulk_edit.py:231 -#: netbox/virtualization/forms/filtersets.py:265 -#: netbox/virtualization/forms/model_forms.py:364 +#: netbox/virtualization/forms/bulk_edit.py:240 +#: netbox/virtualization/forms/filtersets.py:267 +#: netbox/virtualization/forms/model_forms.py:370 msgid "VLAN Translation Policy" msgstr "VLAN Çeviri Politikası" @@ -4049,7 +4029,7 @@ msgstr "Birincil MAC adresi (ID)" #: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 -#: netbox/virtualization/forms/model_forms.py:302 +#: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "Birincil MAC adresi" @@ -4109,7 +4089,7 @@ msgstr "Güç paneli (ID)" #: netbox/dcim/forms/bulk_create.py:41 netbox/extras/forms/filtersets.py:491 #: netbox/extras/forms/model_forms.py:606 #: netbox/extras/forms/model_forms.py:691 -#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:69 +#: netbox/extras/forms/model_forms.py:743 netbox/extras/ui/panels.py:108 #: netbox/netbox/forms/bulk_import.py:27 netbox/netbox/forms/mixins.py:131 #: netbox/netbox/tables/columns.py:495 #: netbox/templates/circuits/inc/circuit_termination.html:29 @@ -4179,7 +4159,7 @@ msgstr "Saat dilimi" #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 #: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 -#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:90 +#: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 #: netbox/templates/dcim/panels/installed_module.html:13 #: netbox/templates/dcim/panels/module_type.html:7 @@ -4250,11 +4230,6 @@ msgstr "Montaj derinliği" #: netbox/extras/forms/filtersets.py:74 netbox/extras/forms/filtersets.py:170 #: netbox/extras/forms/filtersets.py:266 netbox/extras/forms/filtersets.py:297 #: netbox/ipam/forms/bulk_edit.py:162 -#: netbox/templates/extras/configcontext.html:17 -#: netbox/templates/extras/customlink.html:25 -#: netbox/templates/extras/savedfilter.html:33 -#: netbox/templates/extras/tableconfig.html:41 -#: netbox/templates/extras/tag.html:32 msgid "Weight" msgstr "Ağırlığı" @@ -4287,7 +4262,7 @@ msgstr "Dış Ölçüler" #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:3 -#: netbox/templates/extras/imageattachment.html:40 +#: netbox/templates/extras/panels/imageattachment_file.html:14 msgid "Dimensions" msgstr "Ölçüler" @@ -4339,7 +4314,7 @@ msgstr "Hava akışı" #: netbox/ipam/forms/filtersets.py:486 #: netbox/templates/dcim/inc/cable_termination.html:16 #: netbox/templates/dcim/rack/base.html:4 -#: netbox/virtualization/forms/model_forms.py:107 +#: netbox/virtualization/forms/model_forms.py:109 msgid "Rack" msgstr "Kabin" @@ -4392,11 +4367,10 @@ msgstr "Şema" #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 #: netbox/extras/forms/filtersets.py:413 -#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:627 -#: netbox/templates/account/base.html:7 -#: netbox/templates/extras/configcontext.html:21 -#: netbox/templates/inc/user_menu.html:38 netbox/vpn/forms/bulk_edit.py:213 -#: netbox/vpn/forms/filtersets.py:203 netbox/vpn/forms/model_forms.py:378 +#: netbox/extras/forms/model_forms.py:626 netbox/extras/tables/tables.py:629 +#: netbox/templates/account/base.html:7 netbox/templates/inc/user_menu.html:38 +#: netbox/vpn/forms/bulk_edit.py:213 netbox/vpn/forms/filtersets.py:203 +#: netbox/vpn/forms/model_forms.py:378 msgid "Profile" msgstr "Profil" @@ -4406,7 +4380,7 @@ msgstr "Profil" #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 #: netbox/dcim/forms/model_forms.py:1207 netbox/dcim/forms/model_forms.py:1225 #: netbox/dcim/forms/object_create.py:120 netbox/dcim/tables/modules.py:52 -#: netbox/dcim/tables/modules.py:95 netbox/dcim/views.py:2851 +#: netbox/dcim/tables/modules.py:97 netbox/dcim/views.py:2851 msgid "Module Type" msgstr "Modül Türü" @@ -4429,8 +4403,8 @@ msgstr "VM rolü" #: netbox/dcim/forms/model_forms.py:696 #: netbox/virtualization/forms/bulk_import.py:145 #: netbox/virtualization/forms/bulk_import.py:146 -#: netbox/virtualization/forms/filtersets.py:207 -#: netbox/virtualization/forms/model_forms.py:216 +#: netbox/virtualization/forms/filtersets.py:209 +#: netbox/virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "Yapılandırma şablonu" @@ -4452,10 +4426,10 @@ msgstr "Cihaz rolü" #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 -#: netbox/virtualization/forms/bulk_edit.py:131 +#: netbox/virtualization/forms/bulk_edit.py:133 #: netbox/virtualization/forms/bulk_import.py:135 -#: netbox/virtualization/forms/filtersets.py:187 -#: netbox/virtualization/forms/model_forms.py:204 +#: netbox/virtualization/forms/filtersets.py:189 +#: netbox/virtualization/forms/model_forms.py:206 #: netbox/virtualization/tables/virtualmachines.py:53 msgid "Platform" msgstr "Platform" @@ -4467,13 +4441,13 @@ msgstr "Platform" #: netbox/ipam/forms/filtersets.py:457 netbox/ipam/forms/filtersets.py:491 #: netbox/virtualization/filtersets.py:148 #: netbox/virtualization/filtersets.py:289 -#: netbox/virtualization/forms/bulk_edit.py:100 +#: netbox/virtualization/forms/bulk_edit.py:102 #: netbox/virtualization/forms/bulk_import.py:105 -#: netbox/virtualization/forms/filtersets.py:112 -#: netbox/virtualization/forms/filtersets.py:137 -#: netbox/virtualization/forms/filtersets.py:226 -#: netbox/virtualization/forms/model_forms.py:72 -#: netbox/virtualization/forms/model_forms.py:177 +#: netbox/virtualization/forms/filtersets.py:114 +#: netbox/virtualization/forms/filtersets.py:139 +#: netbox/virtualization/forms/filtersets.py:228 +#: netbox/virtualization/forms/model_forms.py:74 +#: netbox/virtualization/forms/model_forms.py:179 #: netbox/virtualization/tables/virtualmachines.py:41 #: netbox/virtualization/ui/panels.py:39 msgid "Cluster" @@ -4481,7 +4455,7 @@ msgstr "Küme" #: netbox/dcim/forms/bulk_edit.py:729 #: netbox/templates/extras/dashboard/widget_config.html:7 -#: netbox/virtualization/forms/bulk_edit.py:156 +#: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "Yapılandırma" @@ -4505,7 +4479,7 @@ msgstr "Modül tipi" #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 -#: netbox/templates/extras/customfield.html:26 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9 #: netbox/templates/generic/bulk_import.html:193 msgid "Label" msgstr "etiket" @@ -4555,8 +4529,8 @@ msgid "Maximum draw" msgstr "Maksimum çekiliş" #: netbox/dcim/forms/bulk_edit.py:1018 -#: netbox/dcim/models/device_component_templates.py:282 -#: netbox/dcim/models/device_components.py:440 +#: netbox/dcim/models/device_component_templates.py:267 +#: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "Maksimum güç çekimi (watt)" @@ -4565,8 +4539,8 @@ msgid "Allocated draw" msgstr "Tahsis edilen çekiliş" #: netbox/dcim/forms/bulk_edit.py:1024 -#: netbox/dcim/models/device_component_templates.py:289 -#: netbox/dcim/models/device_components.py:447 +#: netbox/dcim/models/device_component_templates.py:274 +#: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "Tahsis edilen güç çekimi (watt)" @@ -4581,23 +4555,23 @@ msgid "Feed leg" msgstr "Besleme bacağı" #: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 -#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:478 +#: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "Yalnızca yönetim" #: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 -#: netbox/dcim/models/device_component_templates.py:452 -#: netbox/dcim/models/device_components.py:839 netbox/dcim/ui/panels.py:480 +#: netbox/dcim/models/device_component_templates.py:437 +#: netbox/dcim/models/device_components.py:871 netbox/dcim/ui/panels.py:489 msgid "PoE mode" msgstr "PoE modu" #: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 -#: netbox/dcim/models/device_component_templates.py:459 -#: netbox/dcim/models/device_components.py:846 netbox/dcim/ui/panels.py:481 +#: netbox/dcim/models/device_component_templates.py:444 +#: netbox/dcim/models/device_components.py:878 netbox/dcim/ui/panels.py:490 msgid "PoE type" msgstr "PoE tipi" @@ -4613,7 +4587,7 @@ msgid "Module" msgstr "Modül" #: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 -#: netbox/dcim/ui/panels.py:495 +#: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "GECİKME" @@ -4624,14 +4598,14 @@ msgstr "Sanal cihaz bağlamları" #: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:474 +#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "Hız" #: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 -#: netbox/virtualization/forms/bulk_edit.py:198 +#: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 #: netbox/vpn/forms/bulk_edit.py:128 netbox/vpn/forms/bulk_edit.py:196 #: netbox/vpn/forms/bulk_import.py:175 netbox/vpn/forms/bulk_import.py:233 @@ -4644,25 +4618,25 @@ msgstr "Modu" #: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 -#: netbox/virtualization/forms/bulk_edit.py:205 +#: netbox/virtualization/forms/bulk_edit.py:214 #: netbox/virtualization/forms/bulk_import.py:184 -#: netbox/virtualization/forms/model_forms.py:326 +#: netbox/virtualization/forms/model_forms.py:332 msgid "VLAN group" msgstr "VLAN grubu" #: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 -#: netbox/dcim/ui/panels.py:484 netbox/virtualization/forms/bulk_edit.py:213 +#: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 -#: netbox/virtualization/forms/model_forms.py:331 +#: netbox/virtualization/forms/model_forms.py:337 msgid "Untagged VLAN" msgstr "Etiketsiz VLAN" #: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 -#: netbox/virtualization/forms/bulk_edit.py:221 +#: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 -#: netbox/virtualization/forms/model_forms.py:340 +#: netbox/virtualization/forms/model_forms.py:346 msgid "Tagged VLANs" msgstr "Etiketli VLAN'lar" @@ -4677,7 +4651,7 @@ msgstr "Etiketli VLAN'ları kaldır" #: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 -#: netbox/virtualization/forms/model_forms.py:349 +#: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "Q-in-Q Hizmeti VLAN" @@ -4687,26 +4661,26 @@ msgid "Wireless LAN group" msgstr "Kablosuz LAN grubu" #: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:561 +#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "Kablosuz LAN'lar" #: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 -#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:499 +#: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 #: netbox/templates/ipam/panels/prefix_addressing.html:4 -#: netbox/virtualization/forms/filtersets.py:218 -#: netbox/virtualization/forms/model_forms.py:369 +#: netbox/virtualization/forms/filtersets.py:220 +#: netbox/virtualization/forms/model_forms.py:375 #: netbox/virtualization/ui/panels.py:68 msgid "Addressing" msgstr "Adresleme" #: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 -#: netbox/virtualization/forms/model_forms.py:370 +#: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "Operasyon" @@ -4717,16 +4691,16 @@ msgid "PoE" msgstr "PoE" #: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 -#: netbox/dcim/ui/panels.py:491 netbox/virtualization/forms/bulk_edit.py:237 -#: netbox/virtualization/forms/model_forms.py:371 +#: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 +#: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "İlgili Arayüzler" #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 -#: netbox/virtualization/forms/bulk_edit.py:240 -#: netbox/virtualization/forms/filtersets.py:219 -#: netbox/virtualization/forms/model_forms.py:374 +#: netbox/virtualization/forms/bulk_edit.py:249 +#: netbox/virtualization/forms/filtersets.py:221 +#: netbox/virtualization/forms/model_forms.py:380 msgid "802.1Q Switching" msgstr "802.1Q Anahtarlama" @@ -5007,13 +4981,13 @@ msgstr "Elektrik fazı (üç fazlı devreler için)" #: netbox/dcim/forms/bulk_import.py:946 netbox/dcim/forms/model_forms.py:1509 #: netbox/virtualization/forms/bulk_import.py:168 -#: netbox/virtualization/forms/model_forms.py:310 +#: netbox/virtualization/forms/model_forms.py:316 msgid "Parent interface" msgstr "Ebeveyn arayüzü" #: netbox/dcim/forms/bulk_import.py:953 netbox/dcim/forms/model_forms.py:1517 #: netbox/virtualization/forms/bulk_import.py:175 -#: netbox/virtualization/forms/model_forms.py:318 +#: netbox/virtualization/forms/model_forms.py:324 msgid "Bridged interface" msgstr "Köprülü arayüz" @@ -5158,13 +5132,13 @@ msgstr "Atanan arayüzün ana cihazı (varsa)" #: netbox/dcim/forms/bulk_import.py:1323 netbox/ipam/forms/bulk_import.py:316 #: netbox/virtualization/filtersets.py:302 #: netbox/virtualization/filtersets.py:360 -#: netbox/virtualization/forms/bulk_edit.py:165 -#: netbox/virtualization/forms/bulk_edit.py:299 +#: netbox/virtualization/forms/bulk_edit.py:174 +#: netbox/virtualization/forms/bulk_edit.py:308 #: netbox/virtualization/forms/bulk_import.py:159 #: netbox/virtualization/forms/bulk_import.py:260 -#: netbox/virtualization/forms/filtersets.py:234 -#: netbox/virtualization/forms/filtersets.py:281 -#: netbox/virtualization/forms/model_forms.py:286 +#: netbox/virtualization/forms/filtersets.py:236 +#: netbox/virtualization/forms/filtersets.py:283 +#: netbox/virtualization/forms/model_forms.py:292 #: netbox/vpn/forms/bulk_import.py:92 netbox/vpn/forms/bulk_import.py:295 msgid "Virtual machine" msgstr "Sanal makine" @@ -5319,13 +5293,13 @@ msgstr "Birincil IPv6" msgid "IPv6 address with prefix length, e.g. 2001:db8::1/64" msgstr "Önek uzunluğuna sahip IPv6 adresi, örn. 2001:db8: :1/64" -#: netbox/dcim/forms/common.py:19 netbox/dcim/models/device_components.py:615 -#: netbox/dcim/ui/panels.py:476 netbox/virtualization/forms/bulk_edit.py:190 +#: netbox/dcim/forms/common.py:20 netbox/dcim/models/device_components.py:647 +#: netbox/dcim/ui/panels.py:485 netbox/virtualization/forms/bulk_edit.py:199 #: netbox/virtualization/ui/panels.py:61 msgid "MTU" msgstr "MTU" -#: netbox/dcim/forms/common.py:59 +#: netbox/dcim/forms/common.py:60 #, python-brace-format msgid "" "The tagged VLANs ({vlans}) must belong to the same site as the interface's " @@ -5334,33 +5308,11 @@ msgstr "" "Etiketli VLAN'lar ({vlans}) arayüzün ana cihazı/sanal makinesiyle aynı " "siteye ait olmalı veya global olmalıdır" -#: netbox/dcim/forms/common.py:126 -msgid "" -"Cannot install module with placeholder values in a module bay with no " -"position defined." -msgstr "" -"Konum tanımlanmamış bir modül yuvasına yer tutucu değerleri olan modül " -"yüklenemiyor." - -#: netbox/dcim/forms/common.py:132 -#, python-brace-format -msgid "" -"Cannot install module with placeholder values in a module bay tree {level} " -"in tree but {tokens} placeholders given." -msgstr "" -"Modül defne ağacına yer tutucu değerleri olan modül yüklenemiyor {level} " -"Ağaçta ama {tokens} verilen yer tutucular." - -#: netbox/dcim/forms/common.py:147 +#: netbox/dcim/forms/common.py:127 #, python-brace-format msgid "Cannot adopt {model} {name} as it already belongs to a module" msgstr "Evlat edinemiyor {model} {name} zaten bir modüle ait olduğu için" -#: netbox/dcim/forms/common.py:156 -#, python-brace-format -msgid "A {model} named {name} already exists" -msgstr "BİR {model} adlandırmak {name} zaten var" - #: netbox/dcim/forms/connections.py:59 netbox/dcim/forms/model_forms.py:879 #: netbox/dcim/tables/power.py:63 #: netbox/templates/dcim/inc/cable_termination.html:40 @@ -5448,7 +5400,7 @@ msgstr "Sanal cihaz bağlamlarına sahiptir" #: netbox/dcim/forms/filtersets.py:1005 netbox/extras/filtersets.py:767 #: netbox/ipam/forms/filtersets.py:496 -#: netbox/virtualization/forms/filtersets.py:126 +#: netbox/virtualization/forms/filtersets.py:128 msgid "Cluster group" msgstr "Küme grubu" @@ -5464,7 +5416,7 @@ msgstr "işgal" #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 #: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 -#: netbox/dcim/ui/panels.py:516 netbox/ipam/tables/vlans.py:174 +#: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" msgstr "Bağlantı" @@ -5472,8 +5424,7 @@ msgstr "Bağlantı" #: netbox/dcim/forms/filtersets.py:1597 netbox/extras/forms/bulk_edit.py:421 #: netbox/extras/forms/bulk_import.py:300 #: netbox/extras/forms/filtersets.py:583 -#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:755 -#: netbox/templates/extras/journalentry.html:30 +#: netbox/extras/forms/model_forms.py:807 netbox/extras/tables/tables.py:757 msgid "Kind" msgstr "Tür" @@ -5482,12 +5433,12 @@ msgid "Mgmt only" msgstr "Sadece Mgmt" #: netbox/dcim/forms/filtersets.py:1638 netbox/dcim/forms/model_forms.py:1593 -#: netbox/dcim/models/device_components.py:792 netbox/dcim/ui/panels.py:506 +#: netbox/dcim/models/device_components.py:824 netbox/dcim/ui/panels.py:515 msgid "WWN" msgstr "WWN" -#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:482 -#: netbox/virtualization/forms/filtersets.py:260 +#: netbox/dcim/forms/filtersets.py:1653 netbox/dcim/ui/panels.py:491 +#: netbox/virtualization/forms/filtersets.py:262 msgid "802.1Q mode" msgstr "802.1Q modu" @@ -5503,7 +5454,7 @@ msgstr "Kanal frekansı (MHz)" msgid "Channel width (MHz)" msgstr "Kanal genişliği (MHz)" -#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:485 +#: netbox/dcim/forms/filtersets.py:1680 netbox/dcim/ui/panels.py:494 msgid "Transmit power (dBm)" msgstr "İletim gücü (dBm)" @@ -5553,9 +5504,9 @@ msgstr "Kapsam türü" #: netbox/ipam/forms/bulk_edit.py:382 netbox/ipam/forms/filtersets.py:195 #: netbox/ipam/forms/model_forms.py:225 netbox/ipam/forms/model_forms.py:603 #: netbox/ipam/forms/model_forms.py:613 netbox/ipam/tables/ip.py:193 -#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:74 -#: netbox/virtualization/forms/filtersets.py:53 -#: netbox/virtualization/forms/model_forms.py:73 +#: netbox/ipam/tables/vlans.py:40 netbox/virtualization/forms/bulk_edit.py:76 +#: netbox/virtualization/forms/filtersets.py:55 +#: netbox/virtualization/forms/model_forms.py:75 #: netbox/virtualization/tables/clusters.py:81 #: netbox/wireless/forms/bulk_edit.py:82 #: netbox/wireless/forms/filtersets.py:42 @@ -5828,11 +5779,11 @@ msgstr "VM Arayüzü" #: netbox/dcim/forms/model_forms.py:1969 netbox/ipam/forms/filtersets.py:654 #: netbox/ipam/forms/model_forms.py:326 netbox/ipam/tables/vlans.py:186 -#: netbox/virtualization/forms/filtersets.py:216 -#: netbox/virtualization/forms/filtersets.py:274 -#: netbox/virtualization/forms/model_forms.py:220 -#: netbox/virtualization/tables/virtualmachines.py:106 -#: netbox/virtualization/tables/virtualmachines.py:162 +#: netbox/virtualization/forms/filtersets.py:218 +#: netbox/virtualization/forms/filtersets.py:276 +#: netbox/virtualization/forms/model_forms.py:222 +#: netbox/virtualization/tables/virtualmachines.py:109 +#: netbox/virtualization/tables/virtualmachines.py:165 #: netbox/virtualization/ui/panels.py:48 netbox/virtualization/ui/panels.py:55 #: netbox/vpn/choices.py:53 netbox/vpn/forms/filtersets.py:315 #: netbox/vpn/forms/model_forms.py:158 netbox/vpn/forms/model_forms.py:169 @@ -5902,7 +5853,7 @@ msgid "profile" msgstr "profil" #: netbox/dcim/models/cables.py:76 -#: netbox/dcim/models/device_component_templates.py:62 +#: netbox/dcim/models/device_component_templates.py:63 #: netbox/dcim/models/device_components.py:62 #: netbox/extras/models/customfields.py:135 msgid "label" @@ -5924,40 +5875,40 @@ msgstr "kablo" msgid "cables" msgstr "kablolar" -#: netbox/dcim/models/cables.py:235 +#: netbox/dcim/models/cables.py:236 msgid "Must specify a unit when setting a cable length" msgstr "Kablo uzunluğu ayarlarken bir birim belirtmeniz gerekir" -#: netbox/dcim/models/cables.py:238 +#: netbox/dcim/models/cables.py:239 msgid "Must define A and B terminations when creating a new cable." msgstr "Yeni bir kablo oluştururken A ve B sonlandırmalarını tanımlamalıdır." -#: netbox/dcim/models/cables.py:249 +#: netbox/dcim/models/cables.py:250 msgid "Cannot connect different termination types to same end of cable." msgstr "Farklı sonlandırma türleri kablonun aynı ucuna bağlanamaz." -#: netbox/dcim/models/cables.py:257 +#: netbox/dcim/models/cables.py:258 #, python-brace-format msgid "Incompatible termination types: {type_a} and {type_b}" msgstr "Uyumsuz sonlandırma türleri: {type_a} ve {type_b}" -#: netbox/dcim/models/cables.py:267 +#: netbox/dcim/models/cables.py:268 msgid "A and B terminations cannot connect to the same object." msgstr "A ve B sonlandırmaları aynı nesneye bağlanamaz." -#: netbox/dcim/models/cables.py:464 netbox/ipam/models/asns.py:38 +#: netbox/dcim/models/cables.py:465 netbox/ipam/models/asns.py:38 msgid "end" msgstr "son" -#: netbox/dcim/models/cables.py:535 +#: netbox/dcim/models/cables.py:536 msgid "cable termination" msgstr "kablo sonlandırma" -#: netbox/dcim/models/cables.py:536 +#: netbox/dcim/models/cables.py:537 msgid "cable terminations" msgstr "kablo sonlandırmaları" -#: netbox/dcim/models/cables.py:549 +#: netbox/dcim/models/cables.py:550 #, python-brace-format msgid "" "Cannot connect a cable to {obj_parent} > {obj} because it is marked as " @@ -5965,7 +5916,7 @@ msgid "" msgstr "" "Kablo bağlanamıyor {obj_parent} > {obj} çünkü bağlı olarak işaretlenmiştir." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5974,57 +5925,57 @@ msgstr "" "Yinelenen sonlandırma bulundu {app_label}.{model} {termination_id}: kablo " "{cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Kablolar sonlandırılamaz {type_display} arayüzleri" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "Bir sağlayıcı ağına bağlı devre sonlandırmaları kablolanmayabilir." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "aktiftir" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "tamamlandı" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "bölünmüş" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "kablo yolu" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "kablo yolları" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Tüm kaynak sonlandırmalar aynı bağlantıya eklenmelidir" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Tüm orta açıklıklı sonlandırmalar aynı sonlandırma türüne sahip olmalıdır" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "Tüm orta açıklıklı sonlandırmalar aynı ana nesneye sahip olmalıdır" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Tüm bağlantılar kablo veya kablosuz olmalıdır" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Tüm bağlantılar ilk bağlantı türüyle eşleşmelidir" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6033,23 +5984,23 @@ msgstr "" "{module} bir modül tipine bağlandığında modül yuvası konumunun yerine kabul " "edilir." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Fiziksel etiket" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Bileşen şablonları farklı bir aygıt türüne taşınamaz." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "" "Bir bileşen şablonu hem aygıt türü hem de modül türüyle ilişkilendirilemez." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." @@ -6057,130 +6008,130 @@ msgstr "" "Bir bileşen şablonu, bir aygıt türü veya bir modül türüyle " "ilişkilendirilmelidir." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "konsol bağlantı noktası şablonu" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "konsol bağlantı noktası şablonları" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "konsol sunucusu bağlantı noktası şablonu" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "konsol sunucusu bağlantı noktası şablonları" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "maksimum çekiliş" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "tahsis edilen çekiliş" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "güç bağlantı noktası şablonu" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "güç bağlantı noktası şablonları" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "Tahsis edilen çekiliş maksimum çekilişi aşamaz ({maximum_draw}W)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "besleme bacağı" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Faz (üç fazlı beslemeler için)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "elektrik prizi şablonu" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "elektrik prizi şablonları" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Ana güç bağlantı noktası ({power_port}) aynı cihaz türüne ait olmalıdır" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Ana güç bağlantı noktası ({power_port}) aynı modül türüne ait olmalıdır" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "sadece yönetim" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "köprü arayüzü" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "kablosuz rolü" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "arayüz şablonu" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "arayüz şablonları" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "Köprü arayüzü ({bridge}) aynı cihaz türüne ait olmalıdır" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Köprü arayüzü ({bridge}) aynı modül türüne ait olmalıdır" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Arka bağlantı noktası ({rear_port}) aynı cihaz türüne ait olmalıdır" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "pozisyonlar" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "ön bağlantı noktası şablonu" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "ön bağlantı noktası şablonları" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6189,15 +6140,15 @@ msgstr "" "Konum sayısı, eşlenen arka bağlantı noktası şablonlarının sayısından az " "olamaz ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "arka bağlantı noktası şablonu" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "arka bağlantı noktası şablonları" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6206,33 +6157,33 @@ msgstr "" "Konum sayısı, eşlenen ön bağlantı noktası şablonlarının sayısından az olamaz" " ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "pozisyon" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "Yüklü bileşenleri yeniden adlandırırken başvurulacak tanımlayıcı" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "modül bölmesi şablonu" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "modül bölmesi şablonları" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "cihaz yuvası şablonu" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "cihaz yuvası şablonları" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6241,21 +6192,21 @@ msgstr "" "Aygıt türünün alt cihaz rolü ({device_type}) cihaz bölmelerine izin vermek " "için “ebeveyn” olarak ayarlanmalıdır." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "parça kimliği" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Üretici tarafından atanan parça tanımlayıcısı" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "envanter öğesi şablonu" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "envanter öğe şablonları" @@ -6308,83 +6259,83 @@ msgstr "Kablo sonlandırma konumları kablo olmadan ayarlanmamalıdır." msgid "{class_name} models must declare a parent_object property" msgstr "{class_name} modeller bir parent_object özelliği bildirmelidir" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Fiziksel bağlantı noktası tipi" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "sürat" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Saniyede bit cinsinden port hızı" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "konsol bağlantı noktası" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "konsol bağlantı noktaları" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "konsol sunucusu bağlantı noktası" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "konsol sunucusu bağlantı noktaları" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "güç bağlantı noktası" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "güç bağlantı noktaları" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "elektrik prizi" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "elektrik prizleri" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "Ana güç bağlantı noktası ({power_port}) aynı cihaza ait olmalıdır" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "mod" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q etiketleme stratejisi" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "ebeveyn arabirimi" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "etiketsiz VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "etiketli VLAN'lar" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6392,92 +6343,92 @@ msgstr "etiketli VLAN'lar" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "birincil MAC adresi" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Yalnızca Q-in-Q arayüzleri bir hizmet VLAN'ı belirtebilir." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " "({interface})." msgstr "MAC adresi {mac_address} farklı bir arayüze atanır ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "ebeveyn LAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "Bu arayüz yalnızca bant dışı yönetim için kullanılır" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "hız (Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "dubleks" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64 bit Dünya Çapında Adı" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "kablosuz kanal" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "kanal frekansı (MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Seçilen kanala göre doldurulur (ayarlanmışsa)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "iletim gücü (dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "kablosuz LAN'lar" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "arayüz" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "arayüzleri" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} arabirimlerde kablo takılı olamaz." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} arayüzler bağlı olarak işaretlenemez." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Bir arayüz kendi ebeveyni olamaz." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "Bir üst arabirime yalnızca sanal arabirimler atanabilir." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6485,7 +6436,7 @@ msgid "" msgstr "" "Seçilen üst arabirim ({interface}) farklı bir cihaza aittir ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6494,14 +6445,14 @@ msgstr "" "Seçilen üst arabirim ({interface}) aittir {device}, sanal kasanın bir " "parçası olmayan {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " "({device})." msgstr "Seçilen köprü arayüzü ({bridge}) farklı bir cihaza aittir ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6510,21 +6461,21 @@ msgstr "" "Seçilen köprü arayüzü ({interface}) aittir {device}, sanal kasanın bir " "parçası olmayan {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Sanal arabirimlerin üst LAG arabirimi olamaz." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Bir LAG arabirimi kendi ana arabirimi olamaz." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "Seçilen LAG arayüzü ({lag}) farklı bir cihaza aittir ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6533,31 +6484,31 @@ msgstr "" "Seçilen LAG arayüzü ({lag}) aittir {device}, sanal kasanın bir parçası " "olmayan {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Kanal sadece kablosuz arayüzlerde ayarlanabilir." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "Kanal frekansı yalnızca kablosuz arayüzlerde ayarlanabilir." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Seçili kanal ile özel frekans belirlenemiyor." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "Kanal genişliği yalnızca kablosuz arayüzlerde ayarlanabilir." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Seçili kanal ile özel genişlik belirlenemiyor." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Arayüz modu etiketsiz bir vlan'ı desteklemez." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6566,20 +6517,20 @@ msgstr "" "Etiketlenmemiş VLAN ({untagged_vlan}) arayüzün ana cihazıyla aynı siteye ait" " olmalı veya global olmalıdır." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Arka bağlantı noktası ({rear_port}) aynı cihaza ait olmalıdır" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "ön bağlantı noktası" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "ön bağlantı noktaları" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6588,15 +6539,15 @@ msgstr "" "Konum sayısı, eşlenen arka bağlantı noktalarının sayısından az olamaz " "({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "arka bağlantı noktası" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "arka bağlantı noktaları" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6605,96 +6556,96 @@ msgstr "" "Konum sayısı, eşlenen ön bağlantı noktalarının sayısından az olamaz " "({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "modül yuvası" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "modül bölmeleri" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Bir modül yuvası, içinde kurulu bir modüle ait olamaz." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "cihaz yuvası" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "cihaz yuvaları" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "Bu tür bir cihaz ({device_type}) cihaz bölmelerini desteklemez." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Bir cihaz kendi içine yüklenemiyor." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "Belirtilen cihaz yüklenemiyor; cihaz zaten yüklü {bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "envanter kalemi rolü" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "envanter kalemi rolleri" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "seri numarası" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "varlık etiketi" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "Bu öğeyi tanımlamak için kullanılan benzersiz bir etiket" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "keşfedilen" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Bu öğe otomatik olarak keşfedildi" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "envanter kalemi" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "envanter kalemleri" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Kendisi ebeveyn olarak atanamıyor." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Ana envanter kalemi aynı cihaza ait değildir." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Bağımlı çocuklarla bir envanter öğesi taşınamıyor" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Başka bir cihazdaki bileşene envanter öğesi atanamıyor" @@ -7572,10 +7523,10 @@ msgstr "Ulaşılabilir" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7587,8 +7538,7 @@ msgid "VMs" msgstr "Sanal Makineler" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7691,7 +7641,7 @@ msgstr "Cihaz Konumu" msgid "Device Site" msgstr "Cihaz Sitesi" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Modül Yuvası" @@ -7751,7 +7701,7 @@ msgstr "MAC Adresleri" msgid "FHRP Groups" msgstr "FHRP Grupları" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7767,7 +7717,7 @@ msgstr "Yalnızca Yönetim" msgid "VDCs" msgstr "VDC'ler" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Sanal Devre" @@ -7840,7 +7790,7 @@ msgid "Module Types" msgstr "Modül Çeşitleri" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Platformlar" @@ -7941,7 +7891,7 @@ msgstr "Cihaz Yuvaları" msgid "Module Bays" msgstr "Modül Bölmeleri" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Modül Sayısı" @@ -8019,7 +7969,7 @@ msgstr "{} milimetre" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Seri numarası" @@ -8029,7 +7979,7 @@ msgid "Maximum weight" msgstr "Maksimum ağırlık" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Yönetim" @@ -8077,18 +8027,27 @@ msgstr "{} A" msgid "Primary for interface" msgstr "Arayüz için birincil" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Sanal Şasi Üyeleri" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Güç Kullanımı" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN çevirisi" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Modül defne ağacına yer tutucu değerleri olan modül yüklenemiyor {level} " +"seviyeler derin ama {tokens} verilen yer tutucular." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8129,9 +8088,8 @@ msgid "Application Services" msgstr "Uygulama Hizmetleri" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Yapılandırma Bağlamı" @@ -8140,7 +8098,7 @@ msgstr "Yapılandırma Bağlamı" msgid "Render Config" msgstr "Oluştur Yapılandırması" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8203,7 +8161,7 @@ msgstr "Ana aygıt kaldırılamıyor {device} sanal kasadan." msgid "Removed {device} from virtual chassis {chassis}" msgstr "Kaldırıldı {device} sanal kasadan {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Bilinmeyen ilgili nesne (ler): {name}" @@ -8212,12 +8170,16 @@ msgstr "Bilinmeyen ilgili nesne (ler): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Özel alanların türünü değiştirmek desteklenmez." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Bu dosya adına sahip bir komut dosyası modülü zaten var." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Bu komut dosyası için zamanlama etkin değil." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Planlanan zaman gelecekte olmalıdır." @@ -8394,8 +8356,7 @@ msgid "White" msgstr "Beyaz" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Web kancası" @@ -8541,12 +8502,12 @@ msgstr "Yer İşaretleri" msgid "Show your personal bookmarks" msgstr "Kişisel yer imlerinizi gösterin" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Bir olay kuralı için bilinmeyen eylem türü: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Olaylar boru hattı içe aktarılamıyor {name} hata: {error}" @@ -8566,7 +8527,7 @@ msgid "Group (name)" msgstr "Grup (isim)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Küme türü" @@ -8586,7 +8547,7 @@ msgid "Tenant group (slug)" msgstr "Kiracı grubu (kısa ad)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "etiket" @@ -8599,29 +8560,30 @@ msgid "Has local config context data" msgstr "Yerel yapılandırma bağlam verilerine sahiptir" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Grup adı" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Gerekli" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Benzersiz olmalı" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Kullanıcı arayüzü görünür" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "UI düzenlenebilir" @@ -8630,10 +8592,12 @@ msgid "Is cloneable" msgstr "Klonlanabilir mi" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Minimum değer" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Maksimum değer" @@ -8642,8 +8606,7 @@ msgid "Validation regex" msgstr "Doğrulama regex" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Davranış" @@ -8657,7 +8620,8 @@ msgstr "Düğme sınıfı" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME türü" @@ -8679,31 +8643,29 @@ msgstr "Ek olarak" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Paylaşılan" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP yöntemi" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "Yük URL'si" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL doğrulama" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Gizli" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA dosya yolu" @@ -8854,9 +8816,9 @@ msgstr "Atanan nesne türü" msgid "The classification of entry" msgstr "Girişin sınıflandırılması" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8865,12 +8827,12 @@ msgid "Comments" msgstr "Yorumlar" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Kullanıcılar" @@ -8880,9 +8842,8 @@ msgstr "" "Virgülle ayrılmış, çift tırnak işareti ile çevrelenmiş kullanıcı adları" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8927,6 +8888,7 @@ msgid "Content types" msgstr "İçerik türleri" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP içerik türü" @@ -8998,7 +8960,7 @@ msgstr "Kiracı grupları" msgid "The type(s) of object that have this custom field" msgstr "Bu özel alana sahip nesnenin türü (leri) i" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Varsayılan değer" @@ -9007,7 +8969,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "İlgili nesnenin türü (yalnızca nesne/çoklu nesne alanları için)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "İlgili nesne filtresi" @@ -9015,8 +8976,7 @@ msgstr "İlgili nesne filtresi" msgid "Specify query parameters as a JSON object." msgstr "Sorgu parametrelerini JSON nesnesi olarak belirtin." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Özel Alan" @@ -9048,12 +9008,11 @@ msgstr "" "Satır başına bir seçenek girin. Her seçim için iki nokta üst üste eklenerek " "isteğe bağlı bir etiket belirtilebilir. Örnek:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Özel Alan Seçim Seti" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Özel Bağlantı" @@ -9083,8 +9042,7 @@ msgstr "" msgid "Template code" msgstr "Şablon kodu" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Dışa Aktarma Şablonu" @@ -9093,14 +9051,13 @@ msgstr "Dışa Aktarma Şablonu" msgid "Template content is populated from the remote source selected below." msgstr "Şablon içeriği aşağıda seçilen uzak kaynaktan doldurulur." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Kaydedilen Filtre" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Sipariş" @@ -9124,13 +9081,11 @@ msgstr "Seçili Sütunlar" msgid "A notification group specify at least one user or group." msgstr "Bir bildirim grubu en az bir kullanıcı veya grup belirtir." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP isteği" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9150,8 +9105,7 @@ msgstr "" "Eyleme iletilecek parametreleri girin JSON" " biçim." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Etkinlik Kuralı" @@ -9163,8 +9117,7 @@ msgstr "Tetikleyiciler" msgid "Notification group" msgstr "Bildirim grubu" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Bağlam Profilini Yapılandırma" @@ -9256,7 +9209,7 @@ msgstr "bağlam profillerini yapılandırma" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "ağırlık" @@ -9811,7 +9764,7 @@ msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" "SSL sertifikası doğrulamasını etkinleştirin. Dikkatle devre dışı bırakın!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA Dosya Yolu" @@ -10116,9 +10069,8 @@ msgstr "Görevden alma" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10141,7 +10093,6 @@ msgid "Related Object Type" msgstr "İlgili Nesne Türü" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Seçim Seti" @@ -10150,12 +10101,10 @@ msgid "Is Cloneable" msgstr "Klonlanabilir mi" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Minimum Değer" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Maksimum Değer" @@ -10165,9 +10114,9 @@ msgstr "Doğrulama Regex" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10184,50 +10133,44 @@ msgid "Order Alphabetically" msgstr "Alfabetik olarak sıralayın" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Yeni Pencere" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME Türü" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Dosya Adı" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Dosya uzantısı" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Ek Olarak" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Senkronize" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Görüntü" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Dosya adı" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Boyut" @@ -10235,38 +10178,36 @@ msgstr "Boyut" msgid "Table Name" msgstr "Tablo Adı" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Okumak" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" msgstr "SSL Doğrulama" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Etkinlik Türleri" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Otomatik Senkronizasyon Etkin" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Cihaz Rolleri" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Yorumlar (Kısa)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Çizgi" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Yöntemi" @@ -10280,7 +10221,7 @@ msgstr "" "Lütfen widget'ı yeniden yapılandırmayı deneyin veya kontrol panelinden " "kaldırın." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10293,11 +10234,78 @@ msgstr "" msgid "Custom Fields" msgstr "Özel Alanlar" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Bir resim ekle" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Klonlanabilir" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Ekran ağırlığı" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Doğrulama Kuralları" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Düzenli ifade" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "İlgili Nesneler" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Tarafından kullanılır" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Ataşman" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Atanan Modeller" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Tablo Yapılandırması" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Görüntülenen Sütunlar" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Bildirim Grubu" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "İzin Verilen Nesne Türleri" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Etiketli Öğe Türleri" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Görüntü Eki" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Ana nesne" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Dergi Girişi" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10335,32 +10343,68 @@ msgstr "Geçersiz öznitelik”{name}“istek için" msgid "Invalid attribute \"{name}\" for {model}" msgstr "\"{name}\" niteliği {model} için geçerli değil." -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Bağlantı Metni" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "Bağlantı URL'si" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Çevre Parametreleri" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Şablon" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Ek Başlıklar" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Vücut Şablonu" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Koşullar" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Etiketli Nesneler" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON Şeması" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Şablon oluşturulurken bir hata oluştu: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Kontrol paneliniz sıfırlandı." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Eklenen widget: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Güncellenmiş widget: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Silinen widget: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Widget silinirken hata oluştu: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Komut dosyası çalıştırılamıyor: RQ işçi işlemi çalışmıyor." @@ -10591,7 +10635,7 @@ msgstr "FHRP Grubu (ID)" msgid "IP address (ID)" msgstr "IP adresi (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP adresi" @@ -10697,7 +10741,7 @@ msgstr "Havuz mu" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Tamamen kullanılmış gibi davran" @@ -10710,7 +10754,7 @@ msgstr "VLAN Ataması" msgid "Treat as populated" msgstr "Dolu gibi davranın" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS adı" @@ -11230,195 +11274,195 @@ msgstr "" "Önekler toplamalarla örtüşemez. {prefix} mevcut bir toplamı kapsar " "({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "rolleri" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "önek" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Maskeli IPv4 veya IPv6 ağı" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Bu önekin operasyonel durumu" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Bu önekin birincil işlevi" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "bir havuz" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Bu önek içindeki tüm IP adresleri kullanılabilir kabul edilir" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "kullanılan işaret" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "önekleri" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "/0 maskesi ile önek oluşturulamıyor." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "küresel tablo" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Yinelenen önek şurada bulundu {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "başlangıç adresi" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4 veya IPv6 adresi (maske ile)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "bitiş adresi" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Bu aralığın çalışma durumu" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Bu aralığın birincil işlevi" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "işareti doldurulmuş" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Bu aralıkta IP adreslerinin oluşturulmasını önleyin" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Alanı tam olarak kullanıldığı şekilde rapor edin" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP aralığı" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP aralıkları" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Başlangıç ve bitiş IP adresi sürümleri eşleşmelidir" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Başlangıç ve bitiş IP adresi maskeleri eşleşmelidir" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "Bitiş adresi başlangıç adresinden daha büyük olmalıdır ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Tanımlanan adresler aralık ile örtüşüyor {overlapping_range} VRF'de {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "Tanımlanan aralık maksimum desteklenen boyutu aşıyor ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "adres" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Bu IP'nin operasyonel durumu" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Bu IP'nin işlevsel rolü" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (iç)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "Bu adresin “dış” IP olduğu IP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Ana bilgisayar adı veya FQDN (büyük/küçük harfe duyarlı değil)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP adresleri" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "/0 maskesi ile IP adresi oluşturulamıyor." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip} bir arayüze atanamayacak bir ağ kimliğidir." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip} bir arayüze atanamayacak bir yayın adresidir." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Yinelenen IP adresi şurada bulundu {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "IP adresi oluşturulamıyor {ip} iç menzil {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "" "Üst nesne için birincil IP olarak belirlenirken IP adresi yeniden atanamıyor" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" msgstr "" "Üst nesne için OOB IP olarak belirlenirken IP adresi yeniden atanamıyor" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Yalnızca IPv6 adreslerine SLAAC durumu atanabilir" @@ -11991,8 +12035,9 @@ msgstr "Gri" msgid "Dark Grey" msgstr "Koyu gri" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "Varsayılan" @@ -12926,67 +12971,67 @@ msgstr "Başlatıldıktan sonra kayıt defterine mağazalar eklenemiyor" msgid "Cannot delete stores from registry" msgstr "Mağazalar kayıt defterinden silinemiyor" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Çek" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Danca" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Alman" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "İngilizce" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "İspanyolca" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Fransızca" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "İtalyan" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Japonca" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Letonca" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Hollandalı" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Lehçe" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Portekizce" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Rusça" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Türkçe" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Ukraynalı" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Çince" @@ -13014,6 +13059,7 @@ msgid "Field" msgstr "Tarla" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Değer" @@ -13044,11 +13090,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS koordinatları" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "İlgili Nesneler" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13295,7 +13336,6 @@ msgid "Toggle All" msgstr "Tümünü Değiştir" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Tablo" @@ -13351,13 +13391,9 @@ msgstr "Atanan Gruplar" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13365,6 +13401,7 @@ msgstr "Atanan Gruplar" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Yok" @@ -13527,7 +13564,7 @@ msgid "Changed" msgstr "Değişti" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bayt" @@ -13580,12 +13617,11 @@ msgid "Job retention" msgstr "İş tutma" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Bu nesneyle ilişkili veri dosyası silindi" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Veriler Senkronize Edildi" @@ -14270,12 +14306,6 @@ msgstr "Raf Ekle" msgid "Add Site" msgstr "Site Ekle" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Ataşman" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14432,82 +14462,10 @@ msgstr "" "NetBox'ın kimlik bilgilerini kullanarak veritabanına bağlanarak ve bir sorgu" " düzenleyerek bunu kontrol edebilirsiniz. %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON Şeması" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Çevre Parametreleri" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Şablon" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Grup Adı" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Benzersiz Olmalı" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Klonlanabilir" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Varsayılan Değer" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Arama Ağırlığı" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Filtre Mantığı" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Ekran Ağırlığı" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Kullanıcı Arayüzü Görünür" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "UI Düzenlenebilir" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Doğrulama Kuralları" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Düzenli İfade" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Düğme Sınıfı" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Atanan Modeller" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Bağlantı Metni" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "Bağlantı URL'si" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "seçimler" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14578,10 +14536,6 @@ msgstr "RSS beslemesini getirirken bir sorun oluştu" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Koşullar" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "İçin planlanmış" @@ -14603,14 +14557,6 @@ msgstr "Çıktı" msgid "Download" msgstr "İndir" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Görüntü Eki" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Üst Nesne" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Yükleniyor" @@ -14659,24 +14605,6 @@ msgstr "" "Şuradan başlayın bir komut dosyası " "oluşturma yüklenen bir dosyadan veya veri kaynağından." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Dergi Girişi" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Tarafından Oluşturuldu" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Bildirim Grubu" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Atanmadı" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Yerel yapılandırma bağlamı tüm kaynak bağlamların üzerine yazar" @@ -14732,6 +14660,16 @@ msgstr "Şablon çıktısı boş" msgid "No configuration template has been assigned." msgstr "Hiçbir yapılandırma şablonu atanmadı." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Atanmadı" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Herhangi bir" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14768,14 +14706,6 @@ msgstr "Günlük eşiği" msgid "All" msgstr "Hepsi" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Tablo Yapılandırması" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Görüntülenen Sütunlar" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14793,46 +14723,6 @@ msgstr "Yukarı hareket et" msgid "Move Down" msgstr "Aşağı hareket et" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Etiketli Öğeler" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "İzin Verilen Nesne Türleri" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Herhangi bir" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Etiketli Öğe Türleri" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Etiketli Nesneler" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP Yöntemi" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP İçerik Türü" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL Doğrulama" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Ek Başlıklar" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Vücut Şablonu" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Toplu Oluşturma" @@ -14905,10 +14795,6 @@ msgstr "Alan Seçenekleri" msgid "Accessor" msgstr "Aksesuar" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "seçimler" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "İthalat Değeri" @@ -15416,6 +15302,7 @@ msgstr "Sanal CPU'lar" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Bellek" @@ -15425,8 +15312,8 @@ msgid "Disk Space" msgstr "Disk Alanı" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Kaynaklar" @@ -16483,13 +16370,13 @@ msgstr "" "Bu nesne, form oluşturulduğundan beri değiştirildi. Ayrıntılar için lütfen " "nesnenin değişiklik günlüğüne bakın." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Menzil”{value}“geçersiz." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16498,38 +16385,38 @@ msgstr "" "Geçersiz aralık: Bitiş değeri ({end}) başlangıç değerinden büyük olmalıdır " "({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Yinelenen veya çakışan sütun başlığı”{field}“" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Yinelenen veya çakışan sütun başlığı”{header}“" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Satır {row}: Bekleniyor {count_expected} sütunlar ama bulundu {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Beklenmeyen sütun başlığı”{field}“bulundu." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "Sütun”{field}“ilgili bir nesne değildir; nokta kullanamaz" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Sütun için geçersiz ilgili nesne özniteliği”{field}“: {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Gerekli sütun başlığı”{header}“Bulunamadı." @@ -16545,7 +16432,7 @@ msgstr "" msgid "Missing required value for static query param: '{static_params}'" msgstr "Statik sorgu parametresi için gerekli değer eksik: '{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(otomatik olarak ayarlanır)" @@ -16742,30 +16629,42 @@ msgstr "Küme türü (ID)" msgid "Cluster (ID)" msgstr "Küme (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Önyüklemede başla" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU'lar" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Bellek (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Disk" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Disk (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Bellek ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Boyut (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Disk ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Boyut ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16787,15 +16686,15 @@ msgstr "Atanmış küme" msgid "Assigned device within cluster" msgstr "Küme içinde atanan aygıt" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Küme Türü" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Küme Grubu" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16804,25 +16703,20 @@ msgstr "" "{device} farklı birine aittir {scope_field} ({device_scope}) kümeden " "({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "İsteğe bağlı olarak bu sanal makineyi küme içindeki belirli bir ana aygıta " "sabitleyin" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Site/Küme" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "Disk boyutu sanal disklerin eklenmesiyle yönetilir." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Disk" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "küme türü" @@ -16870,12 +16764,12 @@ msgid "start on boot" msgstr "önyüklemede başla" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "bellek (MB)" +msgid "memory" +msgstr "hafıza" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "disk (MB)" +msgid "disk" +msgstr "disket" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16955,10 +16849,6 @@ msgstr "" "Etiketlenmemiş VLAN ({untagged_vlan}) arabirimin ana sanal makinesiyle aynı " "siteye ait olmalı veya global olmalıdır." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "boyut (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "sanal disk" diff --git a/netbox/translations/uk/LC_MESSAGES/django.mo b/netbox/translations/uk/LC_MESSAGES/django.mo index ca8e607d23ef8cad9a6d3cd4d7036c55017f38e9..fa10e29c2174239a0276fb21205047c1a9c06bd2 100644 GIT binary patch delta 74767 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 y3-E;9S`?T%{LlyQnYb}RE=g#s33JS-@og delta 75142 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 sVJ7RE_TNn1m4PY3;zbF58z {obj} because it is marked as " @@ -5980,7 +5931,7 @@ msgstr "" "Не вдається підключити кабель до {obj_parent} > {obj} тому що він позначений" " як підключений." -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " @@ -5989,61 +5940,61 @@ msgstr "" "Знайдено дублікат кінця {app_label}.{model} {termination_id}: кабель " "{cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "Кабелі не можуть бути підключені в {type_display} інтерфейси" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" "Кінці каналу зв'язку, приєднані до мережі провайдера, не можуть бути " "кабельними." -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "активний" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "завершено" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "розщеплюється" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "кабельний шлях" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "кабельні шляхи" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "Усі початкові закінчення повинні бути приєднані до одного посилання" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "" "Усі закінчення середнього прольоту повинні мати однаковий тип закінчення" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "" "Усі закінчення середнього прольоту повинні мати однаковий батьківський " "об'єкт" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "Всі посилання повинні бути кабельними або бездротовими" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "Усі посилання повинні відповідати першому типу посилання" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " @@ -6052,16 +6003,16 @@ msgstr "" "{module} приймається як заміна позиції відсіку модуля при приєднанні до типу" " модуля." -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "Фізична етикетка" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "Шаблони компонентів не можна переміщати на інший тип пристрою." -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." @@ -6069,142 +6020,142 @@ msgstr "" "Шаблон компонента не може бути пов'язаний як з типом пристрою, так і з типом" " модуля." -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "" "Шаблон компонента повинен бути пов'язаний з типом пристрою або типом модуля." -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "шаблон порту консолі" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "шаблони портів консолі" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "шаблон порту консольного сервера" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "шаблони портів консольного сервера" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "максимальна потужність" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "виділена потужність" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "шаблон порту живлення" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "шаблони портів живлення" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" "Виділена потужність не може перевищувати максимальну потужність " "({maximum_draw}Вт)." -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "фідер живлення" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "Фаза (для трифазних подач)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "шаблон розетки" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "шаблони розеток" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" "Батьківський порт живлення ({power_port}) повинен належати до одного типу " "пристрою" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" "Батьківський порт живлення ({power_port}) повинен належати до одного типу " "модуля" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "тільки управління" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "інтерфейс моста" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "бездротова роль" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "шаблон інтерфейсу" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "шаблони інтерфейсу" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" "Інтерфейс моста ({bridge}) повинні складатися з пристроїв одного типу " -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "Інтерфейс моста ({bridge}) повинні складатися з модулів одного типу " -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "Задній порт ({rear_port}) повинні належати до одного типу пристрою" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "позиції" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "шаблон переднього порту" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "шаблони передніх портів" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " @@ -6213,15 +6164,15 @@ msgstr "" "Кількість позицій не може бути меншою за кількість відображених шаблонів " "заднього порту ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "шаблон порту ззаду" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "шаблони портів ззаду" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " @@ -6230,34 +6181,34 @@ msgstr "" "Кількість позицій не може бути меншою за кількість відображених шаблонів " "передніх портів ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "позиція" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "" "Ідентифікатор для посилання при перейменуванні встановлених компонентів" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "шаблон відсіку модуля" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "шаблони відсіків модулів" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "шаблон відсіку пристрою" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "шаблони відсіків пристроїв" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " @@ -6266,21 +6217,21 @@ msgstr "" "Роль підпристрою типу пристрою ({device_type}) має бути встановлено значення" " \"батько\", щоб дозволити відсіки пристрою." -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "Ідентифікатор частини" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "Ідентифікатор деталі, призначений виробником" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "шаблон елемента інвентаря" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "шаблони елемента інвентаря" @@ -6334,85 +6285,85 @@ msgid "{class_name} models must declare a parent_object property" msgstr "" "{class_name} моделі повинні спочатку оголосити властивість parent_object" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "Фізичний тип порту" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "швидкість" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "Швидкість порту в бітах в секунду" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "консольний порт" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "консольні порти" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "порт консольного сервера" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "порти консольного сервера" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "порт живлення" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "порти живлення" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "розетка" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "розетки" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" "Батьківський порт живлення ({power_port}) повинні належати до одного і того " "ж пристрою" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "режим" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "Стратегія міток IEEE 802.1Q" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "батьківський інтерфейс" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "VLAN без міток" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "VLAN'и з мітками" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6420,15 +6371,15 @@ msgstr "VLAN'и з мітками" msgid "Q-in-Q SVLAN" msgstr "Q-в-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "основна MAC-адреса" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "Тільки інтерфейси Q-in-Q можуть вказувати службовий VLAN." -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " @@ -6436,80 +6387,80 @@ msgid "" msgstr "" "MAC-адреса {mac_address} призначений для іншого інтерфейсу ({interface})." -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "батьківський LAG" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "" "Цей інтерфейс використовується лише для зовнішнього незалежного керування" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "швидкість (Кбіт/с)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "дуплекс" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64-розрядна всесвітня назва" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "бездротовий канал" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "частота каналу (МГц)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "Заповнюється вибраним каналом (якщо встановлено)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "потужність передачі (дБм)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "бездротові локальні мережі" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "інтерфейс" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "інтерфейси" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type} інтерфейси не можуть мати приєднаний кабель." -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type} інтерфейси не можуть бути позначені як підключені." -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "Інтерфейс не може бути власним батьківським." -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" "Тільки віртуальні інтерфейси можуть бути призначені батьківському " "інтерфейсу." -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " @@ -6518,7 +6469,7 @@ msgstr "" "Вибраний батьківський інтерфейс ({interface}) належить до іншого пристрою " "({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " @@ -6527,7 +6478,7 @@ msgstr "" "Вибраний батьківський інтерфейс ({interface}) належить {device}, яка не є " "частиною віртуального шасі {virtual_chassis}." -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " @@ -6535,7 +6486,7 @@ msgid "" msgstr "" "Вибраний інтерфейс моста ({bridge}) належить до іншого пристрою ({device})." -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " @@ -6544,22 +6495,22 @@ msgstr "" "Вибраний інтерфейс моста ({interface}) належить {device}, який не є частиною" " віртуального шасі {virtual_chassis}." -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "Віртуальні інтерфейси не можуть бути батьківським інтерфейсом LAG." -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "Інтерфейс LAG не може бути власним батьківським інтерфейсом." -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "" "Вибраний інтерфейс LAG ({lag}) належить до іншого пристрою ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" @@ -6568,35 +6519,35 @@ msgstr "" "Вибраний інтерфейс LAG ({lag}) належить {device}, який не є частиною " "віртуального шасі {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "Канал (Wi-Fi) можна встановлювати тільки на бездротових інтерфейсах." -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" "Частота каналу (Wi-Fi) може встановлюватися тільки на бездротових " "інтерфейсах." -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "Неможливо вказати користувацьку частоту при вибраному каналі (Wi-Fi)." -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "" "Ширина каналу (Wi-Fi) може бути встановлена тільки на бездротових " "інтерфейсах." -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "Неможливо вказати користувацьку ширину при вибраному каналі." -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "Режим інтерфейсу не підтримує vlan без тегів." -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " @@ -6605,20 +6556,20 @@ msgstr "" "VLAN без міток ({untagged_vlan}) повинен належати тому ж тех. майданчику, що" " і батьківський пристрій інтерфейсу, або ж він повинен бути глобальним." -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "Порт ззаду ({rear_port}) повинні належати до одного і того ж пристрою" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "передній порт" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "передні порти" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " @@ -6627,15 +6578,15 @@ msgstr "" "Кількість позицій не може бути менше кількості відображених задніх портів " "({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "порт ззаду" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "порти ззаду" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" @@ -6644,38 +6595,38 @@ msgstr "" "Кількість позицій не може бути меншою за кількість відображених фронтальних " "портів ({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "відсік модуля" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "відсіки модуля" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "Відсік модуля не може належати модулю, встановленому в ньому." -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "відсік пристрою" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "відсіки для пристроїв" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" "Даний тип пристрою ({device_type}) не підтримує відсіки для пристроїв." -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "Не вдається встановити пристрій в себе." -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." @@ -6683,61 +6634,61 @@ msgstr "" "Не вдається встановити вказаний пристрій, бо пристрій вже встановлено в " "{bay}." -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "роль елемента інвентаря" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "ролі елемента інвентаря" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "серійний номер" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "призначеня мітки" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "" "Унікальна мітка, яка використовується для ідентифікації цього елемента" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "виявлено" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "Цей елемент був автоматично виявлений" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "елемент інвентаря" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "елементи інвентаря" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "Не вдається призначити себе батьком." -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "Батьківський елемент інвентаря не належить до одного пристрою." -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "Не можливо переміщати елемент інвентаря з підпорядкованим елементом" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "Не можливо призначати елемент інвентаря компоненту у іншому пристрої" @@ -7634,10 +7585,10 @@ msgstr "Доступний" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7649,8 +7600,7 @@ msgid "VMs" msgstr "Віртуальні машини" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7753,7 +7703,7 @@ msgstr "Розташування пристрою" msgid "Device Site" msgstr "Сайт пристрою" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "Резервуар модулів" @@ -7813,7 +7763,7 @@ msgstr "MAC-адреси" msgid "FHRP Groups" msgstr "Групи FHRP/VRRP" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7829,7 +7779,7 @@ msgstr "Тільки управління" msgid "VDCs" msgstr "Джерела живлення постійного струму" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "Віртуальна схема" @@ -7902,7 +7852,7 @@ msgid "Module Types" msgstr "Типи модулів" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "Платформи" @@ -8003,7 +7953,7 @@ msgstr "Відсіки для пристроїв" msgid "Module Bays" msgstr "Модульні відсіки" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "Кількість модулів" @@ -8081,7 +8031,7 @@ msgstr "{} міліметрів" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "Серійний номер" @@ -8091,7 +8041,7 @@ msgid "Maximum weight" msgstr "Максимальна вага" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "Керування" @@ -8139,18 +8089,27 @@ msgstr "{} А" msgid "Primary for interface" msgstr "Основний для інтерфейсу" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "Віртуальні члени шасі" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "Використання електроенергії" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "Переклад VLAN" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "" +"Не вдається встановити модуль із значеннями заповнювачів у дереві відсіків " +"модуля {level} рівні глибокі, але {tokens} задані заповнювачі." + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8191,9 +8150,8 @@ msgid "Application Services" msgstr "Послуги додатків" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "Контекст конфігурації" @@ -8202,7 +8160,7 @@ msgstr "Контекст конфігурації" msgid "Render Config" msgstr "Відтворення конфігурації" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8265,7 +8223,7 @@ msgstr "Неможливо видалити головний пристрій {d msgid "Removed {device} from virtual chassis {chassis}" msgstr "Вилучено {device} з віртуального шасі {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "Невідомий пов'язаний об'єкт(и): {name}" @@ -8274,12 +8232,16 @@ msgstr "Невідомий пов'язаний об'єкт(и): {name}" msgid "Changing the type of custom fields is not supported." msgstr "Зміна типу призначених для користувача полів не підтримується." -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "Модуль скриптів з такою назвою файлу вже існує." + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "Планування не ввімкнено для цього сценарію." -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "Запланований час повинен бути в майбутньому." @@ -8456,8 +8418,7 @@ msgid "White" msgstr "Білий" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Веб-хук" @@ -8606,12 +8567,12 @@ msgstr "Закладки" msgid "Show your personal bookmarks" msgstr "Показувати особисті закладки" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "Невідомий тип дії для правила події: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "Не вдається імпортувати конвеєр подій {name} Помилка: {error}" @@ -8631,7 +8592,7 @@ msgid "Group (name)" msgstr "Група (назва)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "Тип кластера" @@ -8651,7 +8612,7 @@ msgid "Tenant group (slug)" msgstr "Група орендарів (скорочення)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "Мітка" @@ -8664,29 +8625,30 @@ msgid "Has local config context data" msgstr "Має локальні контекстні дані конфігурації" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "Назва групи" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "Обов'язково" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "Повинен бути унікальним" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "Видимий інтерфейс користувача" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "Редагований інтерфейс користувача" @@ -8695,10 +8657,12 @@ msgid "Is cloneable" msgstr "Чи можна клонувати" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "Мінімальне значення" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "Максимальне значення" @@ -8707,8 +8671,7 @@ msgid "Validation regex" msgstr "Регулярний вираз перевірки" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "Поведінка" @@ -8722,7 +8685,8 @@ msgstr "Клас кнопок" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "Тип MIME" @@ -8744,31 +8708,29 @@ msgstr "Як вкладення" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "Спільний" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "Метод HTTP" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "URL-адреса корисного навантаження" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "Перевірка SSL" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "Таємниця" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "Шляхи до файлу CA" @@ -8919,9 +8881,9 @@ msgstr "Призначений тип об'єкта" msgid "The classification of entry" msgstr "Класифікація вступу" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8930,12 +8892,12 @@ msgid "Comments" msgstr "Коментарі" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "Користувачі" @@ -8944,9 +8906,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "Імена користувачів, розділені комами, укладені подвійними лапками" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8991,6 +8952,7 @@ msgid "Content types" msgstr "Типи контенту" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "Тип вмісту HTTP" @@ -9062,7 +9024,7 @@ msgstr "Групи орендарів" msgid "The type(s) of object that have this custom field" msgstr "Тип(и) об'єкта, які мають користувацьке поле" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "Значення за замовчуванням" @@ -9071,7 +9033,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "Тип пов'язаного об'єкта (лише для об'єктних/багатооб'єктних полів)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "Фільтр пов'язаних об'єктів" @@ -9079,8 +9040,7 @@ msgstr "Фільтр пов'язаних об'єктів" msgid "Specify query parameters as a JSON object." msgstr "Вкажіть параметри запиту як об'єкт JSON." -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "Користувацьке поле" @@ -9112,12 +9072,11 @@ msgstr "" "Введіть один вибір на рядок. Додаткову мітку можна вказати для кожного " "вибору, додавши її двокрапкою. Приклад:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "Набір вибору спеціального поля" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "Користувацьке посилання" @@ -9147,8 +9106,7 @@ msgstr "" msgid "Template code" msgstr "Код шаблону" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "Експортувати шаблон" @@ -9157,14 +9115,13 @@ msgstr "Експортувати шаблон" msgid "Template content is populated from the remote source selected below." msgstr "Вміст шаблону заповнюється з віддаленого джерела, вибраного нижче." -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "Збережений фільтр" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "Замовлення" @@ -9188,13 +9145,11 @@ msgstr "Вибрані стовпці" msgid "A notification group specify at least one user or group." msgstr "Група сповіщень вказує принаймні одного користувача або групи." -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "Запит HTTP" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9214,8 +9169,7 @@ msgstr "" "Введіть параметри для переходу до дії у JSON форматі." -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "Правило події" @@ -9227,8 +9181,7 @@ msgstr "Тригери" msgid "Notification group" msgstr "Група повідомлень" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "Налаштування контекстного профілю" @@ -9319,7 +9272,7 @@ msgstr "налаштувати контекстні профілі" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "вага" @@ -9874,7 +9827,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "Увімкнути перевірку сертифіката SSL. Відключайте з обережністю!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "Шляхи до файлу CA" @@ -10178,9 +10131,8 @@ msgstr "Відхилити" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -10203,7 +10155,6 @@ msgid "Related Object Type" msgstr "Пов'язаний тип об'єкта" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "Набір вибору" @@ -10212,12 +10163,10 @@ msgid "Is Cloneable" msgstr "Чи можна клонувати" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "Мінімальне значення" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "Максимальне значення" @@ -10227,9 +10176,9 @@ msgstr "Перевірка регулярного вираза" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10246,50 +10195,44 @@ msgid "Order Alphabetically" msgstr "Порядок за алфавітом" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "Нове вікно" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "Тип MIME" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "Ім'я файлу" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "Розширення файлу" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "Як вкладення" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "Синхронізовано" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "Зображення" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "Назва файлу" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "Розмір" @@ -10297,38 +10240,36 @@ msgstr "Розмір" msgid "Table Name" msgstr "Назва таблиці" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "Читати" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" msgstr "Перевірка SSL" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "Типи подій" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "Увімкнено автоматичну синхронізацію" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "Ролі пристроїв" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "Коментарі (короткі)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "Лінія" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "Метод" @@ -10342,7 +10283,7 @@ msgstr "" "Будь ласка, спробуйте переналаштувати віджет або видалити його зі своєї " "інформаційної панелі." -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10355,11 +10296,78 @@ msgstr "" msgid "Custom Fields" msgstr "Користувацькі поля" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "Прикріпити зображення" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "Клонований" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "Вага дисплея" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "Правила перевірки" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "Регулярний вираз" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "Пов'язані об'єкти" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "Використовується" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "Вкладення" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "Призначені моделі" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "Конфігурація таблиці" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "Відображаються стовпці" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "Група повідомлень" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "Дозволені типи об'єктів" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "Позначені типи предметів" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "Вкладення зображення" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "Батьківський об'єкт" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "Запис журналу" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10398,32 +10406,68 @@ msgstr "Невірний атрибут \"{name}\" за запитом" msgid "Invalid attribute \"{name}\" for {model}" msgstr "Невірний атрибут \"{name}\" для {model}" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "Текст посилання" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "URL-адреса посилання" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "Параметри середовища" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "Шаблон" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "Додаткові заголовки" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "Шаблон тіла (запросу)" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "Умови" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "Позначені об'єкти" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "Схема JSON" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "Під час візуалізації шаблону сталася помилка: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "Ваша інформаційна панель була скинута." -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "Доданий віджет: " -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "Оновлений віджет: " -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "Видалений віджет: " -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "Помилка при видаленні віджета: " -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "Неможливо запустити скрипт: робочий процес RQ не запущений." @@ -10655,7 +10699,7 @@ msgstr "Група FHRP (ID)" msgid "IP address (ID)" msgstr "IP-адреса (ідентифікатор)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP-адреса" @@ -10761,7 +10805,7 @@ msgstr "Чи є пулом" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "Вважати повністю використаним" @@ -10774,7 +10818,7 @@ msgstr "Призначення VLAN" msgid "Treat as populated" msgstr "Ставтеся до населених" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "Ім'я DNS" @@ -11307,183 +11351,183 @@ msgstr "" "Мережеві префікси не можуть перекривати сукупні мережі. {prefix} охоплює " "існуючий сукупну мережу ({aggregate})." -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "ролі" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "префікс" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "Мережа IPv4 або IPv6 з маскою" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "Операційний стан цього префікса" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "Основна функція цього префікса" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "є у пулі" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "Усі IP-адреси в цьому префіксі вважаються придатними для використання" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "використовувана марка" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "мережеві префікси" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "Неможливо створити префікс з маскою /0." -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "глобальна таблиця" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "Дублікат префікса знайдений у {table}: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "стартова адреса" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "Адреса IPv4 або IPv6 (з маскою)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "кінцева адреса" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "Експлуатаційний стан даного діапазону" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "Основна функція цього діапазону" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "позначка заповнена" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "Запобігання створенню IP-адрес в цьому діапазоні" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "Повідомте про простір як повністю використаний" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "Діапазон IP" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "Діапазони IP" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "Початкова та кінцева версії IP-адреси повинні збігатися" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "Початкові та кінцеві маски IP-адреси повинні збігатися" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "" "Кінцева адреса повинна бути більшою за початкову адресу ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "" "Визначені адреси перекриваються з діапазоном {overlapping_range} в VRF {vrf}" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" "Визначений діапазон перевищує максимальний підтримуваний розмір ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "адреса" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "Операційний стан цього IP" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "Функціональна роль цього IP" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT (внутрішній)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "IP, для якого ця адреса є \"зовнішньою\"" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "Ім'я хоста або FQDN (не залежить від регістру регістру)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP-адреси" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "Не вдається створити IP-адресу з маскою /0." -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" "{ip} це ідентифікатор мережі, який не може бути присвоєний інтерфейсу." -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip} це широкомовна адреса, яка може не бути присвоєна інтерфейсу." -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "Дублікати IP-адреси знайдено в {table}: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "Не вдається створити IP-адресу {ip} внутрішній діапазон {range}." -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" @@ -11491,7 +11535,7 @@ msgstr "" "Не вдається перепризначити IP-адресу, поки вона призначена як первинний IP " "для батьківського об'єкта" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" @@ -11499,7 +11543,7 @@ msgstr "" "Не вдається перепризначити IP-адресу, поки вона позначена як IP-адреса OOB " "для батьківського об'єкта" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "Статус SLAAC може бути призначений лише адресам IPv6" @@ -12080,8 +12124,9 @@ msgstr "Сірий" msgid "Dark Grey" msgstr "Антрацитовий" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "За замовчуванням" @@ -13011,67 +13056,67 @@ msgstr "Не вдається додати магазини до реєстру msgid "Cannot delete stores from registry" msgstr "Неможливо видалити магазини з реєстру" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "Чеська мова" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "Данська мова" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "Німецька мова" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "Англійська мова" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "Іспанська мова" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "Французька мова" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "Італійська мова" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "Японська мова" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "Латвійська" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "Голландська мова" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "Польська мова" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "Португальська мова" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "Російська мова" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "Турецька мова" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "Українська мова" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "Китайська мова" @@ -13099,6 +13144,7 @@ msgid "Field" msgstr "Поле" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "Значення" @@ -13130,11 +13176,6 @@ msgstr "" msgid "GPS coordinates" msgstr "GPS-координати" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "Пов'язані об'єкти" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13382,7 +13423,6 @@ msgid "Toggle All" msgstr "Перемкнути всі" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "Таблиця" @@ -13438,13 +13478,9 @@ msgstr "Призначені групи" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13452,6 +13488,7 @@ msgstr "Призначені групи" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "Жодного" @@ -13614,7 +13651,7 @@ msgid "Changed" msgstr "Змінено" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "байтів" @@ -13667,12 +13704,11 @@ msgid "Job retention" msgstr "Зберігання завдання" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "Файл даних, пов'язаний з цим об'єктом, видалено" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "Дані синхронізовані" @@ -14352,12 +14388,6 @@ msgstr "Додати стійку" msgid "Add Site" msgstr "Додати тех. майданчик" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "Вкладення" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14513,82 +14543,10 @@ msgstr "" "Перевірити це можна, підключившись до бази даних за допомогою облікових " "даних NetBox і оформивши запит на %(sql_query)s." -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "Схема JSON" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "Параметри середовища" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "Шаблон" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "Назва групи" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "Повинен бути унікальним" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "Клонований" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "Значення за замовчуванням" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "Вага пошуку" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "Логіка фільтра" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "Вага дисплея" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "Видимий інтерфейс користувача" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "Редагований інтерфейс користувача" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "Правила перевірки" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "Регулярний вираз" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "Клас кнопок" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "Призначені моделі" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "Текст посилання" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "URL-адреса посилання" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "вибір" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14660,10 +14618,6 @@ msgstr "Виникла проблема з отриманням RSS-каналу msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "Умови" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "Заплановано на" @@ -14685,14 +14639,6 @@ msgstr "вихід" msgid "Download" msgstr "Завантажити" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "Вкладення зображення" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "Батьківський об'єкт" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Завантаження" @@ -14741,24 +14687,6 @@ msgstr "" "Почніть з створення сценарію з " "вивантаженого файлу або джерела даних." -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "Запис журналу" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "Створено" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "Група повідомлень" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "Не призначено" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Локальний контекст конфігурації перезаписує всі вихідні контексти" @@ -14814,6 +14742,16 @@ msgstr "Вихід шаблону порожній" msgid "No configuration template has been assigned." msgstr "Жоден шаблон конфігурації не призначено." +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "Не призначено" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "Будь-який" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14850,14 +14788,6 @@ msgstr "Поріг журналу" msgid "All" msgstr "Усе" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "Конфігурація таблиці" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "Відображаються стовпці" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14875,46 +14805,6 @@ msgstr "Рухати угору" msgid "Move Down" msgstr "Рухати вниз" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "Позначені предмети" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "Дозволені типи об'єктів" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "Будь-який" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "Позначені типи предметів" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "Позначені об'єкти" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "Метод HTTP" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "Тип вмісту HTTP" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "Перевірка SSL" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "Додаткові заголовки" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "Шаблон тіла (запросу)" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "Масове створення" @@ -14987,10 +14877,6 @@ msgstr "Параметри поля" msgid "Accessor" msgstr "Аксесуар" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "вибір" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "Імпорт вартості" @@ -15502,6 +15388,7 @@ msgstr "Віртуальні процесори" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "Пам'ять" @@ -15511,8 +15398,8 @@ msgid "Disk Space" msgstr "Місце на диску" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "Ресурси" @@ -16569,13 +16456,13 @@ msgstr "" "Цей об'єкт був змінений з моменту візуалізації форми. Будь ласка, зверніться" " до журналу змін об'єкта для отримання детальної інформації." -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "Діапазон \"{value}\" є невірним." -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " @@ -16584,40 +16471,40 @@ msgstr "" "Невірний діапазон: Кінцеве значення ({end}) має бути більше початкового " "значення ({begin})." -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "Дублювання або конфлікт заголовка стовпця для \"{field}\"" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "Дублювання або конфлікт заголовка стовпця для \"{header}\"" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "" "Ряд {row}: Очікується {count_expected} стовпці, але знайдено {count_found}" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "Знайдено несподіваний заголовок стовпця \"{field}\"." -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "" "Стовпчик \"{field}\" не є спорідненим об'єктом; не може використовувати " "точки" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "Невірний атрибут пов'язаного об'єкта для стовпця \"{field}\": {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "Не знайдено необхідний заголовок стовпця \"{header}\"." @@ -16636,7 +16523,7 @@ msgstr "" "Відсутнє необхідне значення для параметра статичного запиту: " "'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(автоматично встановлюється)" @@ -16835,30 +16722,42 @@ msgstr "Тип кластера (ідентифікатор)" msgid "Cluster (ID)" msgstr "Кластер (ідентифікатор)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "Запуск при завантаженні" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPU" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "Пам'ять (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "Диск" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "Диск (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "Пам'ять ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "Розмір (МБ)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "Диск ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "Розмір ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16880,15 +16779,15 @@ msgstr "Призначений кластер" msgid "Assigned device within cluster" msgstr "Призначений пристрій у кластері" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "Тип кластера" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "Кластерна група" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " @@ -16897,27 +16796,22 @@ msgstr "" "{device} належіть до іншого тех. майданчика {scope_field} ({device_scope}) " "ніж кластер ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" "За бажанням прикріпити цю віртуальну машину до певного хост-пристрою в " "кластері" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "Тех. майданчик/Кластер" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" "Управління розміром диска здійснюється за допомогою приєднання віртуальних " "дисків." -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "Диск" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "тип кластера" @@ -16965,12 +16859,12 @@ msgid "start on boot" msgstr "запуск при завантаженні" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "пам'ять (МБ)" +msgid "memory" +msgstr "пам' яті" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "диск (МБ)" +msgid "disk" +msgstr "диск" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -17055,10 +16949,6 @@ msgstr "" " і батьківська віртуальна машина інтерфейсу, або ж вона повинна бути " "глобальною." -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "розмір (МБ)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "віртуальний диск" diff --git a/netbox/translations/zh/LC_MESSAGES/django.mo b/netbox/translations/zh/LC_MESSAGES/django.mo index 127b98a0ffdfa51a84da2a11c0bfe5f36ea94985..006eec889f9f5022f5002d613a1455a60f53dc33 100644 GIT binary patch delta 74636 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 {obj} because it is marked as " "connected." msgstr "无法将电缆连接到 {obj_parent} > {obj} 因为它被标记为已连接。" -#: netbox/dcim/models/cables.py:566 +#: netbox/dcim/models/cables.py:567 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " "{cable_pk}" msgstr "发现{app_label}重复的终端:{model} {termination_id}: 线缆 {cable_pk}" -#: netbox/dcim/models/cables.py:576 +#: netbox/dcim/models/cables.py:577 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "线缆不能连接至{type_display} 接口" -#: netbox/dcim/models/cables.py:583 +#: netbox/dcim/models/cables.py:584 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "运营商网络的线路可能没有连接。" -#: netbox/dcim/models/cables.py:679 netbox/extras/models/configs.py:100 +#: netbox/dcim/models/cables.py:680 netbox/extras/models/configs.py:100 msgid "is active" msgstr "激活的" -#: netbox/dcim/models/cables.py:683 +#: netbox/dcim/models/cables.py:684 msgid "is complete" msgstr "完成的" -#: netbox/dcim/models/cables.py:687 +#: netbox/dcim/models/cables.py:688 msgid "is split" msgstr "被拆分的" -#: netbox/dcim/models/cables.py:695 +#: netbox/dcim/models/cables.py:696 msgid "cable path" msgstr "线缆连接路径" -#: netbox/dcim/models/cables.py:696 +#: netbox/dcim/models/cables.py:697 msgid "cable paths" msgstr "线缆连接路径" -#: netbox/dcim/models/cables.py:783 +#: netbox/dcim/models/cables.py:784 msgid "All originating terminations must be attached to the same link" msgstr "所有原始终端必须连接到同一个链接" -#: netbox/dcim/models/cables.py:801 +#: netbox/dcim/models/cables.py:802 msgid "All mid-span terminations must have the same termination type" msgstr "所有中跨端子必须具有相同的端接类型" -#: netbox/dcim/models/cables.py:809 +#: netbox/dcim/models/cables.py:810 msgid "All mid-span terminations must have the same parent object" msgstr "所有中跨终端必须具有相同的父对象" -#: netbox/dcim/models/cables.py:839 +#: netbox/dcim/models/cables.py:840 msgid "All links must be cable or wireless" msgstr "所有链路必须是有线或无线的" -#: netbox/dcim/models/cables.py:841 +#: netbox/dcim/models/cables.py:842 msgid "All links must match first link type" msgstr "所有链接必须匹配第一个链接类型" -#: netbox/dcim/models/device_component_templates.py:57 +#: netbox/dcim/models/device_component_templates.py:58 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " "attached to a module type." msgstr "当连接到模块类型时,{module} 被认定为模块托架位置的替代。" -#: netbox/dcim/models/device_component_templates.py:65 +#: netbox/dcim/models/device_component_templates.py:66 #: netbox/dcim/models/device_components.py:65 msgid "Physical label" msgstr "物理标签" -#: netbox/dcim/models/device_component_templates.py:110 +#: netbox/dcim/models/device_component_templates.py:111 msgid "Component templates cannot be moved to a different device type." msgstr "组件模板无法移动到其他设备类型。" -#: netbox/dcim/models/device_component_templates.py:161 +#: netbox/dcim/models/device_component_templates.py:162 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "组件模板不能同时与设备类型和模块类型相关联。" -#: netbox/dcim/models/device_component_templates.py:165 +#: netbox/dcim/models/device_component_templates.py:166 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "组件模板必须与设备类型或模块类型相关联。" -#: netbox/dcim/models/device_component_templates.py:210 +#: netbox/dcim/models/device_component_templates.py:195 msgid "console port template" msgstr "console端口模板" -#: netbox/dcim/models/device_component_templates.py:211 +#: netbox/dcim/models/device_component_templates.py:196 msgid "console port templates" msgstr "console端口模板" -#: netbox/dcim/models/device_component_templates.py:245 +#: netbox/dcim/models/device_component_templates.py:230 msgid "console server port template" msgstr "console服务器端口模板" -#: netbox/dcim/models/device_component_templates.py:246 +#: netbox/dcim/models/device_component_templates.py:231 msgid "console server port templates" msgstr "console服务器端口模板" -#: netbox/dcim/models/device_component_templates.py:278 -#: netbox/dcim/models/device_components.py:436 +#: netbox/dcim/models/device_component_templates.py:263 +#: netbox/dcim/models/device_components.py:468 msgid "maximum draw" msgstr "最大功率" -#: netbox/dcim/models/device_component_templates.py:285 -#: netbox/dcim/models/device_components.py:443 +#: netbox/dcim/models/device_component_templates.py:270 +#: netbox/dcim/models/device_components.py:475 msgid "allocated draw" msgstr "分配功率" -#: netbox/dcim/models/device_component_templates.py:295 +#: netbox/dcim/models/device_component_templates.py:280 msgid "power port template" msgstr "电源端口模版" -#: netbox/dcim/models/device_component_templates.py:296 +#: netbox/dcim/models/device_component_templates.py:281 msgid "power port templates" msgstr "电源端口模版" -#: netbox/dcim/models/device_component_templates.py:316 -#: netbox/dcim/models/device_components.py:463 +#: netbox/dcim/models/device_component_templates.py:301 +#: netbox/dcim/models/device_components.py:495 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "分配功率不能超过最大功率({maximum_draw}瓦)" -#: netbox/dcim/models/device_component_templates.py:354 -#: netbox/dcim/models/device_components.py:565 +#: netbox/dcim/models/device_component_templates.py:339 +#: netbox/dcim/models/device_components.py:597 msgid "feed leg" msgstr "馈电线路" -#: netbox/dcim/models/device_component_templates.py:359 -#: netbox/dcim/models/device_components.py:570 +#: netbox/dcim/models/device_component_templates.py:344 +#: netbox/dcim/models/device_components.py:602 msgid "Phase (for three-phase feeds)" msgstr "相位(用于三相电)" -#: netbox/dcim/models/device_component_templates.py:365 +#: netbox/dcim/models/device_component_templates.py:350 msgid "power outlet template" msgstr "电源插座模版" -#: netbox/dcim/models/device_component_templates.py:366 +#: netbox/dcim/models/device_component_templates.py:351 msgid "power outlet templates" msgstr "电源插座模版" -#: netbox/dcim/models/device_component_templates.py:375 +#: netbox/dcim/models/device_component_templates.py:360 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "父电源端口 ({power_port}) 必须属于相同的设备类型" -#: netbox/dcim/models/device_component_templates.py:381 +#: netbox/dcim/models/device_component_templates.py:366 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "父电源端口 ({power_port}) 必须属于相同的设备类型" -#: netbox/dcim/models/device_component_templates.py:437 -#: netbox/dcim/models/device_components.py:774 +#: netbox/dcim/models/device_component_templates.py:422 +#: netbox/dcim/models/device_components.py:806 msgid "management only" msgstr "仅限管理" -#: netbox/dcim/models/device_component_templates.py:445 -#: netbox/dcim/models/device_components.py:639 +#: netbox/dcim/models/device_component_templates.py:430 +#: netbox/dcim/models/device_components.py:671 msgid "bridge interface" msgstr "桥接接口" -#: netbox/dcim/models/device_component_templates.py:466 -#: netbox/dcim/models/device_components.py:800 +#: netbox/dcim/models/device_component_templates.py:451 +#: netbox/dcim/models/device_components.py:832 msgid "wireless role" msgstr "无线角色" -#: netbox/dcim/models/device_component_templates.py:472 +#: netbox/dcim/models/device_component_templates.py:457 msgid "interface template" msgstr "接口模版" -#: netbox/dcim/models/device_component_templates.py:473 +#: netbox/dcim/models/device_component_templates.py:458 msgid "interface templates" msgstr "接口模版" -#: netbox/dcim/models/device_component_templates.py:482 +#: netbox/dcim/models/device_component_templates.py:467 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "桥接接口({bridge}) 必须属于相同的设备类型" -#: netbox/dcim/models/device_component_templates.py:488 +#: netbox/dcim/models/device_component_templates.py:473 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "桥接接口({bridge}) 必须属于相同的模块类型" -#: netbox/dcim/models/device_component_templates.py:556 +#: netbox/dcim/models/device_component_templates.py:541 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device type" msgstr "后端口 ({rear_port}) 必须属于相同的设备类型" -#: netbox/dcim/models/device_component_templates.py:582 -#: netbox/dcim/models/device_component_templates.py:655 -#: netbox/dcim/models/device_components.py:1160 -#: netbox/dcim/models/device_components.py:1208 +#: netbox/dcim/models/device_component_templates.py:567 +#: netbox/dcim/models/device_component_templates.py:640 +#: netbox/dcim/models/device_components.py:1192 +#: netbox/dcim/models/device_components.py:1240 msgid "positions" msgstr "位置" -#: netbox/dcim/models/device_component_templates.py:603 +#: netbox/dcim/models/device_component_templates.py:588 msgid "front port template" msgstr "前置接口模板" -#: netbox/dcim/models/device_component_templates.py:604 +#: netbox/dcim/models/device_component_templates.py:589 msgid "front port templates" msgstr "前置接口模板" -#: netbox/dcim/models/device_component_templates.py:615 +#: netbox/dcim/models/device_component_templates.py:600 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear port " "templates ({count})" msgstr "位置数量不能小于映射的后端端口模板的数量 ({count})" -#: netbox/dcim/models/device_component_templates.py:666 +#: netbox/dcim/models/device_component_templates.py:651 msgid "rear port template" msgstr "后置端口模版" -#: netbox/dcim/models/device_component_templates.py:667 +#: netbox/dcim/models/device_component_templates.py:652 msgid "rear port templates" msgstr "后置端口模版" -#: netbox/dcim/models/device_component_templates.py:678 +#: netbox/dcim/models/device_component_templates.py:663 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front port " "templates ({count})" msgstr "位置的数量不能小于映射的前端模板的数量 ({count})" -#: netbox/dcim/models/device_component_templates.py:710 -#: netbox/dcim/models/device_components.py:1255 +#: netbox/dcim/models/device_component_templates.py:695 +#: netbox/dcim/models/device_components.py:1287 msgid "position" msgstr "位置" -#: netbox/dcim/models/device_component_templates.py:713 -#: netbox/dcim/models/device_components.py:1258 +#: netbox/dcim/models/device_component_templates.py:698 +#: netbox/dcim/models/device_components.py:1290 msgid "Identifier to reference when renaming installed components" msgstr "重命名已安装组件时要引用的标识符" -#: netbox/dcim/models/device_component_templates.py:719 +#: netbox/dcim/models/device_component_templates.py:704 msgid "module bay template" msgstr "模块托架模版" -#: netbox/dcim/models/device_component_templates.py:720 +#: netbox/dcim/models/device_component_templates.py:705 msgid "module bay templates" msgstr "模块托架模版" -#: netbox/dcim/models/device_component_templates.py:750 +#: netbox/dcim/models/device_component_templates.py:737 msgid "device bay template" msgstr "设备托架模版" -#: netbox/dcim/models/device_component_templates.py:751 +#: netbox/dcim/models/device_component_templates.py:738 msgid "device bay templates" msgstr "设备托架模版" -#: netbox/dcim/models/device_component_templates.py:765 +#: netbox/dcim/models/device_component_templates.py:752 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " "allow device bays." msgstr "设备类型({device_type})的子设备角色必须设置为“父设备”,才能允许设备托架。" -#: netbox/dcim/models/device_component_templates.py:820 -#: netbox/dcim/models/device_components.py:1415 +#: netbox/dcim/models/device_component_templates.py:807 +#: netbox/dcim/models/device_components.py:1447 msgid "part ID" msgstr "零件ID" -#: netbox/dcim/models/device_component_templates.py:822 -#: netbox/dcim/models/device_components.py:1417 +#: netbox/dcim/models/device_component_templates.py:809 +#: netbox/dcim/models/device_components.py:1449 msgid "Manufacturer-assigned part identifier" msgstr "制造商指定的零件标识符" -#: netbox/dcim/models/device_component_templates.py:839 +#: netbox/dcim/models/device_component_templates.py:826 msgid "inventory item template" msgstr "库存项模版" -#: netbox/dcim/models/device_component_templates.py:840 +#: netbox/dcim/models/device_component_templates.py:827 msgid "inventory item templates" msgstr "库存项模版" @@ -6251,83 +6205,83 @@ msgstr "在没有电缆的情况下,不得设置电缆端接位置。" msgid "{class_name} models must declare a parent_object property" msgstr "{class_name}模块必须声明上架类型" -#: netbox/dcim/models/device_components.py:375 -#: netbox/dcim/models/device_components.py:402 -#: netbox/dcim/models/device_components.py:433 -#: netbox/dcim/models/device_components.py:555 +#: netbox/dcim/models/device_components.py:407 +#: netbox/dcim/models/device_components.py:434 +#: netbox/dcim/models/device_components.py:465 +#: netbox/dcim/models/device_components.py:587 msgid "Physical port type" msgstr "物理端口类型" -#: netbox/dcim/models/device_components.py:378 -#: netbox/dcim/models/device_components.py:405 +#: netbox/dcim/models/device_components.py:410 +#: netbox/dcim/models/device_components.py:437 msgid "speed" msgstr "速率" -#: netbox/dcim/models/device_components.py:382 -#: netbox/dcim/models/device_components.py:409 +#: netbox/dcim/models/device_components.py:414 +#: netbox/dcim/models/device_components.py:441 msgid "Port speed in bits per second" msgstr "端口速度(单位bps)" -#: netbox/dcim/models/device_components.py:388 +#: netbox/dcim/models/device_components.py:420 msgid "console port" msgstr "console端口" -#: netbox/dcim/models/device_components.py:389 +#: netbox/dcim/models/device_components.py:421 msgid "console ports" msgstr "console端口" -#: netbox/dcim/models/device_components.py:415 +#: netbox/dcim/models/device_components.py:447 msgid "console server port" msgstr "console服务器端口" -#: netbox/dcim/models/device_components.py:416 +#: netbox/dcim/models/device_components.py:448 msgid "console server ports" msgstr "console服务器端口" -#: netbox/dcim/models/device_components.py:453 +#: netbox/dcim/models/device_components.py:485 msgid "power port" msgstr "电源接口" -#: netbox/dcim/models/device_components.py:454 +#: netbox/dcim/models/device_components.py:486 msgid "power ports" msgstr "电源接口" -#: netbox/dcim/models/device_components.py:580 +#: netbox/dcim/models/device_components.py:612 msgid "power outlet" msgstr "电源插座" -#: netbox/dcim/models/device_components.py:581 +#: netbox/dcim/models/device_components.py:613 msgid "power outlets" msgstr "电源插座" -#: netbox/dcim/models/device_components.py:589 +#: netbox/dcim/models/device_components.py:621 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "父电源端口({power_port})必须属于同一设备" -#: netbox/dcim/models/device_components.py:618 netbox/vpn/models/crypto.py:80 +#: netbox/dcim/models/device_components.py:650 netbox/vpn/models/crypto.py:80 #: netbox/vpn/models/crypto.py:222 msgid "mode" msgstr "模式" -#: netbox/dcim/models/device_components.py:623 +#: netbox/dcim/models/device_components.py:655 msgid "IEEE 802.1Q tagging strategy" msgstr "IEEE 802.1Q VLAN 标记策略" -#: netbox/dcim/models/device_components.py:631 +#: netbox/dcim/models/device_components.py:663 msgid "parent interface" msgstr "父接口" -#: netbox/dcim/models/device_components.py:647 +#: netbox/dcim/models/device_components.py:679 msgid "untagged VLAN" msgstr "未标记VLAN" -#: netbox/dcim/models/device_components.py:653 +#: netbox/dcim/models/device_components.py:685 msgid "tagged VLANs" msgstr "已标记 VLANs" -#: netbox/dcim/models/device_components.py:661 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/models/device_components.py:693 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -6335,296 +6289,296 @@ msgstr "已标记 VLANs" msgid "Q-in-Q SVLAN" msgstr "Q-in-Q SVLAN" -#: netbox/dcim/models/device_components.py:676 +#: netbox/dcim/models/device_components.py:708 msgid "primary MAC address" msgstr "主 MAC 地址" -#: netbox/dcim/models/device_components.py:688 +#: netbox/dcim/models/device_components.py:720 msgid "Only Q-in-Q interfaces may specify a service VLAN." msgstr "只有 Q-in-Q 接口可以指定服务 VLAN。" -#: netbox/dcim/models/device_components.py:699 +#: netbox/dcim/models/device_components.py:731 #, python-brace-format msgid "" "MAC address {mac_address} is assigned to a different interface " "({interface})." msgstr "MAC 地址 {mac_address} 被分配到不同的接口 ({interface})。" -#: netbox/dcim/models/device_components.py:765 +#: netbox/dcim/models/device_components.py:797 msgid "parent LAG" msgstr "父聚合组" -#: netbox/dcim/models/device_components.py:775 +#: netbox/dcim/models/device_components.py:807 msgid "This interface is used only for out-of-band management" msgstr "该接口仅用于带外管理" -#: netbox/dcim/models/device_components.py:780 +#: netbox/dcim/models/device_components.py:812 msgid "speed (Kbps)" msgstr "速率(Kbps)" -#: netbox/dcim/models/device_components.py:783 +#: netbox/dcim/models/device_components.py:815 msgid "duplex" msgstr "双工" -#: netbox/dcim/models/device_components.py:793 +#: netbox/dcim/models/device_components.py:825 msgid "64-bit World Wide Name" msgstr "64位全球唯一标识符" -#: netbox/dcim/models/device_components.py:807 +#: netbox/dcim/models/device_components.py:839 msgid "wireless channel" msgstr "无线信道" -#: netbox/dcim/models/device_components.py:814 +#: netbox/dcim/models/device_components.py:846 msgid "channel frequency (MHz)" msgstr "信道频率(MHz)" -#: netbox/dcim/models/device_components.py:815 -#: netbox/dcim/models/device_components.py:823 +#: netbox/dcim/models/device_components.py:847 +#: netbox/dcim/models/device_components.py:855 msgid "Populated by selected channel (if set)" msgstr "由所选通道填充(如有)" -#: netbox/dcim/models/device_components.py:832 +#: netbox/dcim/models/device_components.py:864 msgid "transmit power (dBm)" msgstr "发射功率(dBm)" -#: netbox/dcim/models/device_components.py:859 netbox/wireless/models.py:124 +#: netbox/dcim/models/device_components.py:891 netbox/wireless/models.py:124 msgid "wireless LANs" msgstr "无线局域网" -#: netbox/dcim/models/device_components.py:907 +#: netbox/dcim/models/device_components.py:939 #: netbox/virtualization/models/virtualmachines.py:373 msgid "interface" msgstr "接口" -#: netbox/dcim/models/device_components.py:908 +#: netbox/dcim/models/device_components.py:940 #: netbox/virtualization/models/virtualmachines.py:374 msgid "interfaces" msgstr "接口" -#: netbox/dcim/models/device_components.py:916 +#: netbox/dcim/models/device_components.py:948 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "{display_type}接口不能连接线缆。" -#: netbox/dcim/models/device_components.py:924 +#: netbox/dcim/models/device_components.py:956 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "{display_type}接口不能标记为已连接。" -#: netbox/dcim/models/device_components.py:933 +#: netbox/dcim/models/device_components.py:965 #: netbox/virtualization/models/virtualmachines.py:384 msgid "An interface cannot be its own parent." msgstr "接口不能是自己的父级。" -#: netbox/dcim/models/device_components.py:937 +#: netbox/dcim/models/device_components.py:969 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "只能将虚拟接口分配给父接口。" -#: netbox/dcim/models/device_components.py:944 +#: netbox/dcim/models/device_components.py:976 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " "({device})" msgstr "所选父接口({interface}) 属于另一个设备 ({device})" -#: netbox/dcim/models/device_components.py:950 +#: netbox/dcim/models/device_components.py:982 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "所选的父接口({interface})属于 {device},该设备不是虚拟机箱{virtual_chassis}的一部分。" -#: netbox/dcim/models/device_components.py:966 +#: netbox/dcim/models/device_components.py:998 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " "({device})." msgstr "所选桥接接口 ({bridge})属于另一个设备({device})。" -#: netbox/dcim/models/device_components.py:972 +#: netbox/dcim/models/device_components.py:1004 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "所选的桥接接口({interface})属于 {device},该设备不是虚拟机箱{virtual_chassis}的一部分。" -#: netbox/dcim/models/device_components.py:983 +#: netbox/dcim/models/device_components.py:1015 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "虚拟接口不能具有父聚合接口。" -#: netbox/dcim/models/device_components.py:987 +#: netbox/dcim/models/device_components.py:1019 msgid "A LAG interface cannot be its own parent." msgstr "聚合接口不能是自己的父级。" -#: netbox/dcim/models/device_components.py:994 +#: netbox/dcim/models/device_components.py:1026 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "选择的LAG接口 ({lag}) 属于不同的设备 ({device})." -#: netbox/dcim/models/device_components.py:1000 +#: netbox/dcim/models/device_components.py:1032 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of" " virtual chassis {virtual_chassis}." msgstr "选择的LAG接口 ({lag}) 属于 {device}, 它不是虚拟机箱的一部分 {virtual_chassis}." -#: netbox/dcim/models/device_components.py:1010 +#: netbox/dcim/models/device_components.py:1042 msgid "Channel may be set only on wireless interfaces." msgstr "只能在无线接口上设置信道。" -#: netbox/dcim/models/device_components.py:1016 +#: netbox/dcim/models/device_components.py:1048 msgid "Channel frequency may be set only on wireless interfaces." msgstr "信道频率仅在无线接口上设置。" -#: netbox/dcim/models/device_components.py:1020 +#: netbox/dcim/models/device_components.py:1052 msgid "Cannot specify custom frequency with channel selected." msgstr "无法在选定频道的情况下指定自定义频率。" -#: netbox/dcim/models/device_components.py:1026 +#: netbox/dcim/models/device_components.py:1058 msgid "Channel width may be set only on wireless interfaces." msgstr "只能在无线接口上设置频宽。" -#: netbox/dcim/models/device_components.py:1028 +#: netbox/dcim/models/device_components.py:1060 msgid "Cannot specify custom width with channel selected." msgstr "无法在选定通道的情况下指定自定义频宽。" -#: netbox/dcim/models/device_components.py:1032 +#: netbox/dcim/models/device_components.py:1064 msgid "Interface mode does not support an untagged vlan." msgstr "接口模式不支持未标记的 VLAN。" -#: netbox/dcim/models/device_components.py:1038 +#: netbox/dcim/models/device_components.py:1070 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent device, or it must be global." msgstr "不打标记的VLAN({untagged_vlan})必须与接口所属设备/虚拟机属于同一站点,或者是全局VLAN" -#: netbox/dcim/models/device_components.py:1135 +#: netbox/dcim/models/device_components.py:1167 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "后置端口({rear_port})必须属于同一设备" -#: netbox/dcim/models/device_components.py:1177 +#: netbox/dcim/models/device_components.py:1209 msgid "front port" msgstr "前置端口" -#: netbox/dcim/models/device_components.py:1178 +#: netbox/dcim/models/device_components.py:1210 msgid "front ports" msgstr "前置端口" -#: netbox/dcim/models/device_components.py:1189 +#: netbox/dcim/models/device_components.py:1221 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped rear ports " "({count})" msgstr "位置的数量不能小于映射的后置端口的数量({count})" -#: netbox/dcim/models/device_components.py:1219 +#: netbox/dcim/models/device_components.py:1251 msgid "rear port" msgstr "后置端口" -#: netbox/dcim/models/device_components.py:1220 +#: netbox/dcim/models/device_components.py:1252 msgid "rear ports" msgstr "后置端口" -#: netbox/dcim/models/device_components.py:1231 +#: netbox/dcim/models/device_components.py:1263 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports" " ({count})" msgstr "位置的数量不能小于映射的前端端口的数量({count})" -#: netbox/dcim/models/device_components.py:1275 +#: netbox/dcim/models/device_components.py:1307 msgid "module bay" msgstr "设备板卡插槽" -#: netbox/dcim/models/device_components.py:1276 +#: netbox/dcim/models/device_components.py:1308 msgid "module bays" msgstr "设备板卡插槽" -#: netbox/dcim/models/device_components.py:1290 +#: netbox/dcim/models/device_components.py:1322 #: netbox/dcim/models/modules.py:268 msgid "A module bay cannot belong to a module installed within it." msgstr "模块托架不能属于安装在其中的模块。" -#: netbox/dcim/models/device_components.py:1318 +#: netbox/dcim/models/device_components.py:1350 msgid "device bay" msgstr "设备托架" -#: netbox/dcim/models/device_components.py:1319 +#: netbox/dcim/models/device_components.py:1351 msgid "device bays" msgstr "设备托架" -#: netbox/dcim/models/device_components.py:1326 +#: netbox/dcim/models/device_components.py:1358 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "此类型的设备 ({device_type}) 不支持设备托架。" -#: netbox/dcim/models/device_components.py:1332 +#: netbox/dcim/models/device_components.py:1364 msgid "Cannot install a device into itself." msgstr "无法将设备安装到自身中。" -#: netbox/dcim/models/device_components.py:1340 +#: netbox/dcim/models/device_components.py:1372 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "无法安装指定的设备;设备已安装在{bay}中。" -#: netbox/dcim/models/device_components.py:1361 +#: netbox/dcim/models/device_components.py:1393 msgid "inventory item role" msgstr "库存物品分类" -#: netbox/dcim/models/device_components.py:1362 +#: netbox/dcim/models/device_components.py:1394 msgid "inventory item roles" msgstr "库存物品分类" -#: netbox/dcim/models/device_components.py:1421 +#: netbox/dcim/models/device_components.py:1453 #: netbox/dcim/models/devices.py:542 netbox/dcim/models/modules.py:227 #: netbox/dcim/models/racks.py:317 #: netbox/virtualization/models/virtualmachines.py:132 msgid "serial number" msgstr "序列号" -#: netbox/dcim/models/device_components.py:1429 +#: netbox/dcim/models/device_components.py:1461 #: netbox/dcim/models/devices.py:550 netbox/dcim/models/modules.py:234 #: netbox/dcim/models/racks.py:324 msgid "asset tag" msgstr "资产标签" -#: netbox/dcim/models/device_components.py:1430 +#: netbox/dcim/models/device_components.py:1462 msgid "A unique tag used to identify this item" msgstr "用于识别该项目的唯一标识" -#: netbox/dcim/models/device_components.py:1433 +#: netbox/dcim/models/device_components.py:1465 msgid "discovered" msgstr "已发现" -#: netbox/dcim/models/device_components.py:1435 +#: netbox/dcim/models/device_components.py:1467 msgid "This item was automatically discovered" msgstr "此项目是自动发现的" -#: netbox/dcim/models/device_components.py:1453 +#: netbox/dcim/models/device_components.py:1485 msgid "inventory item" msgstr "库存项" -#: netbox/dcim/models/device_components.py:1454 +#: netbox/dcim/models/device_components.py:1486 msgid "inventory items" msgstr "库存项" -#: netbox/dcim/models/device_components.py:1462 +#: netbox/dcim/models/device_components.py:1494 msgid "Cannot assign self as parent." msgstr "无法将自身分配为父级。" -#: netbox/dcim/models/device_components.py:1470 +#: netbox/dcim/models/device_components.py:1502 msgid "Parent inventory item does not belong to the same device." msgstr "父库存项不能属于同一设备。" -#: netbox/dcim/models/device_components.py:1476 +#: netbox/dcim/models/device_components.py:1508 msgid "Cannot move an inventory item with dependent children" msgstr "无法移动具有子项的库存项目" -#: netbox/dcim/models/device_components.py:1484 +#: netbox/dcim/models/device_components.py:1516 msgid "Cannot assign inventory item to component on another device" msgstr "无法将库存项分配给其他设备上的组件" @@ -7468,10 +7422,10 @@ msgstr "可达性" #: netbox/dcim/tables/devices.py:67 netbox/dcim/tables/devices.py:111 #: netbox/dcim/tables/racks.py:136 netbox/dcim/tables/sites.py:84 -#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:720 +#: netbox/dcim/tables/sites.py:116 netbox/extras/tables/tables.py:722 #: netbox/netbox/navigation/menu.py:72 netbox/netbox/navigation/menu.py:76 #: netbox/netbox/navigation/menu.py:78 -#: netbox/virtualization/forms/model_forms.py:116 +#: netbox/virtualization/forms/model_forms.py:118 #: netbox/virtualization/tables/clusters.py:88 #: netbox/virtualization/views.py:297 msgid "Devices" @@ -7483,8 +7437,7 @@ msgid "VMs" msgstr "VMs" #: netbox/dcim/tables/devices.py:105 netbox/dcim/tables/devices.py:225 -#: netbox/extras/forms/model_forms.py:754 -#: netbox/templates/extras/configtemplate.html:10 +#: netbox/extras/forms/model_forms.py:754 netbox/extras/ui/panels.py:465 #: netbox/templates/extras/object_render_config.html:12 #: netbox/templates/extras/object_render_config.html:15 #: netbox/virtualization/tables/virtualmachines.py:78 @@ -7587,7 +7540,7 @@ msgstr "设备位置" msgid "Device Site" msgstr "设备站点" -#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:86 +#: netbox/dcim/tables/devices.py:322 netbox/dcim/tables/modules.py:88 msgid "Module Bay" msgstr "设备板卡插槽" @@ -7647,7 +7600,7 @@ msgstr "MAC 地址" msgid "FHRP Groups" msgstr "网关冗余协议组" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:486 +#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7663,7 +7616,7 @@ msgstr "仅限管理" msgid "VDCs" msgstr "VDCs" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:531 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "虚拟电路" @@ -7736,7 +7689,7 @@ msgid "Module Types" msgstr "设备配件类型" #: netbox/dcim/tables/devicetypes.py:58 netbox/extras/forms/filtersets.py:461 -#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:715 +#: netbox/extras/forms/model_forms.py:661 netbox/extras/tables/tables.py:717 #: netbox/netbox/navigation/menu.py:81 msgid "Platforms" msgstr "操作系统" @@ -7837,7 +7790,7 @@ msgstr "机柜托架" msgid "Module Bays" msgstr "设备板卡插槽" -#: netbox/dcim/tables/modules.py:63 +#: netbox/dcim/tables/modules.py:65 msgid "Module Count" msgstr "模块数量" @@ -7915,7 +7868,7 @@ msgstr "{} 毫米" #: netbox/dcim/ui/panels.py:55 netbox/dcim/ui/panels.py:97 #: netbox/dcim/ui/panels.py:170 #: netbox/templates/dcim/panels/installed_module.html:21 -#: netbox/virtualization/forms/filtersets.py:202 +#: netbox/virtualization/forms/filtersets.py:204 #: netbox/virtualization/ui/panels.py:23 msgid "Serial number" msgstr "序列号" @@ -7925,7 +7878,7 @@ msgid "Maximum weight" msgstr "最大重量" #: netbox/dcim/ui/panels.py:103 netbox/templates/dcim/device_edit.html:66 -#: netbox/virtualization/forms/model_forms.py:223 +#: netbox/virtualization/forms/model_forms.py:225 msgid "Management" msgstr "管理" @@ -7973,18 +7926,25 @@ msgstr "{} 一个" msgid "Primary for interface" msgstr "主要用于接口" -#: netbox/dcim/ui/panels.py:424 +#: netbox/dcim/ui/panels.py:425 msgid "Virtual Chassis Members" msgstr "虚拟机箱成员" -#: netbox/dcim/ui/panels.py:453 +#: netbox/dcim/ui/panels.py:462 msgid "Power Utilization" msgstr "电力容量利用率" -#: netbox/dcim/ui/panels.py:508 +#: netbox/dcim/ui/panels.py:517 msgid "VLAN translation" msgstr "VLAN 转换" +#: netbox/dcim/utils.py:77 +#, python-brace-format +msgid "" +"Cannot install module with placeholder values in a module bay tree {level} " +"levels deep but {tokens} placeholders given." +msgstr "无法在模块月桂树中安装具有占位符值的模块 {level} 关卡很深但是 {tokens} 给定的占位符。" + #: netbox/dcim/views.py:151 #, python-brace-format msgid "Disconnected {count} {type}" @@ -8025,9 +7985,8 @@ msgid "Application Services" msgstr "应用程序服务" #: netbox/dcim/views.py:2751 netbox/extras/forms/filtersets.py:402 -#: netbox/extras/forms/model_forms.py:701 -#: netbox/templates/extras/configcontext.html:10 -#: netbox/virtualization/forms/model_forms.py:225 +#: netbox/extras/forms/model_forms.py:701 netbox/extras/ui/panels.py:440 +#: netbox/virtualization/forms/model_forms.py:227 #: netbox/virtualization/views.py:493 msgid "Config Context" msgstr "配置实例" @@ -8036,7 +7995,7 @@ msgstr "配置实例" msgid "Render Config" msgstr "提交配置" -#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:725 +#: netbox/dcim/views.py:2775 netbox/extras/tables/tables.py:727 #: netbox/netbox/navigation/menu.py:259 netbox/netbox/navigation/menu.py:261 #: netbox/virtualization/views.py:278 msgid "Virtual Machines" @@ -8099,7 +8058,7 @@ msgstr "无法移除主设备 {device} 来自虚拟机箱。" msgid "Removed {device} from virtual chassis {chassis}" msgstr "已移除 {device} 来自虚拟机箱 {chassis}" -#: netbox/extras/api/customfields.py:83 +#: netbox/extras/api/customfields.py:100 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "未知的相关对象: {name}" @@ -8108,12 +8067,16 @@ msgstr "未知的相关对象: {name}" msgid "Changing the type of custom fields is not supported." msgstr "不支持更改自定义字段的类型。" -#: netbox/extras/api/serializers_/scripts.py:73 -#: netbox/extras/api/serializers_/scripts.py:83 +#: netbox/extras/api/serializers_/scripts.py:57 +msgid "A script module with this file name already exists." +msgstr "具有此文件名的脚本模块已经存在。" + +#: netbox/extras/api/serializers_/scripts.py:124 +#: netbox/extras/api/serializers_/scripts.py:134 msgid "Scheduling is not enabled for this script." msgstr "脚本计划未启用。" -#: netbox/extras/api/serializers_/scripts.py:75 +#: netbox/extras/api/serializers_/scripts.py:126 #: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:54 msgid "Scheduled time must be in the future." msgstr "预定时间需设置在当前时间之后。" @@ -8290,8 +8253,7 @@ msgid "White" msgstr "白色" #: netbox/extras/choices.py:249 netbox/extras/forms/model_forms.py:447 -#: netbox/extras/forms/model_forms.py:524 -#: netbox/templates/extras/webhook.html:10 +#: netbox/extras/forms/model_forms.py:524 netbox/extras/ui/panels.py:334 msgid "Webhook" msgstr "Webhook" @@ -8432,12 +8394,12 @@ msgstr "书签" msgid "Show your personal bookmarks" msgstr "显示您的个人书签" -#: netbox/extras/events.py:205 +#: netbox/extras/events.py:253 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "事件规则的未知操作类型: {action_type}" -#: netbox/extras/events.py:248 +#: netbox/extras/events.py:296 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "无法导入事件管道 {name}错误: {error}" @@ -8457,7 +8419,7 @@ msgid "Group (name)" msgstr "组 (名字)" #: netbox/extras/filtersets.py:756 -#: netbox/virtualization/forms/filtersets.py:132 +#: netbox/virtualization/forms/filtersets.py:134 msgid "Cluster type" msgstr "堆叠类型" @@ -8477,7 +8439,7 @@ msgid "Tenant group (slug)" msgstr "租户组(缩写)" #: netbox/extras/filtersets.py:805 netbox/extras/forms/model_forms.py:589 -#: netbox/templates/extras/tag.html:11 +#: netbox/extras/ui/panels.py:396 msgid "Tag" msgstr "标签" @@ -8490,29 +8452,30 @@ msgid "Has local config context data" msgstr "具有本地配置实例" #: netbox/extras/forms/bulk_edit.py:39 netbox/extras/forms/filtersets.py:70 +#: netbox/extras/ui/panels.py:135 msgid "Group name" msgstr "组名称" #: netbox/extras/forms/bulk_edit.py:47 netbox/extras/forms/filtersets.py:78 #: netbox/extras/tables/tables.py:83 -#: netbox/templates/extras/customfield.html:38 #: netbox/templates/generic/bulk_import.html:149 msgid "Required" msgstr "必须" #: netbox/extras/forms/bulk_edit.py:52 netbox/extras/forms/filtersets.py:85 +#: netbox/extras/ui/panels.py:138 msgid "Must be unique" msgstr "必须是唯一的" #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66 #: netbox/extras/forms/filtersets.py:99 -#: netbox/extras/models/customfields.py:237 +#: netbox/extras/models/customfields.py:237 netbox/extras/ui/panels.py:160 msgid "UI visible" msgstr "页面可见" #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72 #: netbox/extras/forms/filtersets.py:104 -#: netbox/extras/models/customfields.py:244 +#: netbox/extras/models/customfields.py:244 netbox/extras/ui/panels.py:161 msgid "UI editable" msgstr "页面可编辑" @@ -8521,10 +8484,12 @@ msgid "Is cloneable" msgstr "可复制" #: netbox/extras/forms/bulk_edit.py:80 netbox/extras/forms/filtersets.py:114 +#: netbox/extras/ui/panels.py:167 msgid "Minimum value" msgstr "最小值" #: netbox/extras/forms/bulk_edit.py:84 netbox/extras/forms/filtersets.py:118 +#: netbox/extras/ui/panels.py:168 msgid "Maximum value" msgstr "最大值" @@ -8533,8 +8498,7 @@ msgid "Validation regex" msgstr "验证正则表达式" #: netbox/extras/forms/bulk_edit.py:95 netbox/extras/forms/filtersets.py:50 -#: netbox/extras/forms/model_forms.py:87 -#: netbox/templates/extras/customfield.html:70 +#: netbox/extras/forms/model_forms.py:87 netbox/extras/ui/panels.py:152 msgid "Behavior" msgstr "行为" @@ -8548,7 +8512,8 @@ msgstr "按钮类型" #: netbox/extras/forms/bulk_edit.py:158 netbox/extras/forms/bulk_edit.py:377 #: netbox/extras/forms/filtersets.py:203 netbox/extras/forms/filtersets.py:526 -#: netbox/extras/models/mixins.py:99 +#: netbox/extras/models/mixins.py:99 netbox/extras/ui/panels.py:243 +#: netbox/extras/ui/panels.py:469 msgid "MIME type" msgstr "MIME类型" @@ -8570,31 +8535,29 @@ msgstr "作为附件" #: netbox/extras/forms/bulk_edit.py:200 netbox/extras/forms/bulk_edit.py:228 #: netbox/extras/forms/filtersets.py:259 netbox/extras/forms/filtersets.py:290 #: netbox/extras/tables/tables.py:322 netbox/extras/tables/tables.py:359 -#: netbox/templates/extras/savedfilter.html:29 -#: netbox/templates/extras/tableconfig.html:37 msgid "Shared" msgstr "共享性" #: netbox/extras/forms/bulk_edit.py:251 netbox/extras/forms/filtersets.py:320 -#: netbox/extras/models/models.py:193 +#: netbox/extras/models/models.py:193 netbox/extras/ui/panels.py:343 msgid "HTTP method" msgstr "HTTP方法" #: netbox/extras/forms/bulk_edit.py:255 netbox/extras/forms/filtersets.py:314 -#: netbox/templates/extras/webhook.html:30 +#: netbox/extras/ui/panels.py:344 msgid "Payload URL" msgstr "有效URL" #: netbox/extras/forms/bulk_edit.py:260 netbox/extras/models/models.py:233 +#: netbox/extras/ui/panels.py:352 msgid "SSL verification" msgstr "SSL验证" #: netbox/extras/forms/bulk_edit.py:263 -#: netbox/templates/extras/webhook.html:38 msgid "Secret" msgstr "密钥" -#: netbox/extras/forms/bulk_edit.py:268 +#: netbox/extras/forms/bulk_edit.py:268 netbox/extras/ui/panels.py:353 msgid "CA file path" msgstr "CA证书文件路径" @@ -8739,9 +8702,9 @@ msgstr "分配的对象类型" msgid "The classification of entry" msgstr "条目的分类" -#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:758 +#: netbox/extras/forms/bulk_import.py:305 netbox/extras/tables/tables.py:760 #: netbox/netbox/tables/tables.py:295 netbox/netbox/tables/tables.py:310 -#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:220 +#: netbox/netbox/tables/tables.py:333 netbox/netbox/ui/panels.py:221 #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 @@ -8750,12 +8713,12 @@ msgid "Comments" msgstr "评论" #: netbox/extras/forms/bulk_import.py:318 -#: netbox/extras/forms/model_forms.py:414 netbox/netbox/navigation/menu.py:415 -#: netbox/templates/extras/notificationgroup.html:41 -#: netbox/users/forms/filtersets.py:181 netbox/users/forms/model_forms.py:265 -#: netbox/users/forms/model_forms.py:277 netbox/users/forms/model_forms.py:352 -#: netbox/users/forms/model_forms.py:483 netbox/users/forms/model_forms.py:498 -#: netbox/users/tables.py:136 netbox/users/tables.py:194 +#: netbox/extras/forms/model_forms.py:414 netbox/extras/ui/panels.py:326 +#: netbox/netbox/navigation/menu.py:415 netbox/users/forms/filtersets.py:181 +#: netbox/users/forms/model_forms.py:265 netbox/users/forms/model_forms.py:277 +#: netbox/users/forms/model_forms.py:352 netbox/users/forms/model_forms.py:483 +#: netbox/users/forms/model_forms.py:498 netbox/users/tables.py:136 +#: netbox/users/tables.py:194 msgid "Users" msgstr "用户" @@ -8764,9 +8727,8 @@ msgid "User names separated by commas, encased with double quotes" msgstr "用户名用逗号分隔,用双引号括起来" #: netbox/extras/forms/bulk_import.py:325 -#: netbox/extras/forms/model_forms.py:409 netbox/netbox/navigation/menu.py:298 -#: netbox/netbox/navigation/menu.py:416 -#: netbox/templates/extras/notificationgroup.html:31 +#: netbox/extras/forms/model_forms.py:409 netbox/extras/ui/panels.py:321 +#: netbox/netbox/navigation/menu.py:298 netbox/netbox/navigation/menu.py:416 #: netbox/tenancy/forms/bulk_edit.py:121 #: netbox/tenancy/forms/filtersets.py:107 #: netbox/tenancy/forms/model_forms.py:93 netbox/tenancy/tables/contacts.py:57 @@ -8811,6 +8773,7 @@ msgid "Content types" msgstr "内容类型" #: netbox/extras/forms/filtersets.py:310 netbox/extras/models/models.py:198 +#: netbox/extras/ui/panels.py:345 msgid "HTTP content type" msgstr "HTTP内容类型" @@ -8882,7 +8845,7 @@ msgstr "租户组" msgid "The type(s) of object that have this custom field" msgstr "具有此自定义字段的对象的类型" -#: netbox/extras/forms/model_forms.py:63 +#: netbox/extras/forms/model_forms.py:63 netbox/extras/ui/panels.py:144 msgid "Default value" msgstr "默认值" @@ -8891,7 +8854,6 @@ msgid "Type of the related object (for object/multi-object fields only)" msgstr "相关对象的类型(仅适用于对象/多对象字段)" #: netbox/extras/forms/model_forms.py:72 -#: netbox/templates/extras/customfield.html:60 msgid "Related object filter" msgstr "相关对象过滤器" @@ -8899,8 +8861,7 @@ msgstr "相关对象过滤器" msgid "Specify query parameters as a JSON object." msgstr "将查询参数指定为 JSON 对象。" -#: netbox/extras/forms/model_forms.py:84 -#: netbox/templates/extras/customfield.html:10 +#: netbox/extras/forms/model_forms.py:84 netbox/extras/ui/panels.py:130 msgid "Custom Field" msgstr "自定义字段" @@ -8926,12 +8887,11 @@ msgid "" "choice by appending it with a colon. Example:" msgstr "每行输入一个选项。可以为每个选项指定一个可选标签,方法是在其后面附加一个冒号。例如:" -#: netbox/extras/forms/model_forms.py:189 +#: netbox/extras/forms/model_forms.py:189 netbox/extras/ui/panels.py:197 msgid "Custom Field Choice Set" msgstr "自定义字段选择集" -#: netbox/extras/forms/model_forms.py:244 -#: netbox/templates/extras/customlink.html:10 +#: netbox/extras/forms/model_forms.py:244 netbox/extras/ui/panels.py:224 msgid "Custom Link" msgstr "自定义链接" @@ -8957,8 +8917,7 @@ msgstr "URL链接的Jinja2模板代码。将对象引用为 {example}。" msgid "Template code" msgstr "模版代码" -#: netbox/extras/forms/model_forms.py:279 -#: netbox/templates/extras/exporttemplate.html:12 +#: netbox/extras/forms/model_forms.py:279 netbox/extras/ui/panels.py:239 msgid "Export Template" msgstr "导出模版" @@ -8967,14 +8926,13 @@ msgstr "导出模版" msgid "Template content is populated from the remote source selected below." msgstr "模板内容是从下面选择的远程源填充的。" -#: netbox/extras/forms/model_forms.py:318 netbox/netbox/forms/mixins.py:103 -#: netbox/templates/extras/savedfilter.html:10 +#: netbox/extras/forms/model_forms.py:318 netbox/extras/ui/panels.py:254 +#: netbox/netbox/forms/mixins.py:103 msgid "Saved Filter" msgstr "已保存的过滤器" -#: netbox/extras/forms/model_forms.py:344 +#: netbox/extras/forms/model_forms.py:344 netbox/extras/ui/panels.py:299 #: netbox/templates/account/preferences.html:50 -#: netbox/templates/extras/tableconfig.html:62 msgid "Ordering" msgstr "订阅" @@ -8996,13 +8954,11 @@ msgstr "选定的列" msgid "A notification group specify at least one user or group." msgstr "通知组至少指定一个用户或组。" -#: netbox/extras/forms/model_forms.py:450 -#: netbox/templates/extras/webhook.html:23 +#: netbox/extras/forms/model_forms.py:450 netbox/extras/ui/panels.py:341 msgid "HTTP Request" msgstr "HTTP 请求" -#: netbox/extras/forms/model_forms.py:452 -#: netbox/templates/extras/webhook.html:44 +#: netbox/extras/forms/model_forms.py:452 netbox/extras/ui/panels.py:350 msgid "SSL" msgstr "SSL" @@ -9020,8 +8976,7 @@ msgid "" "href=\"https://json.org/\">JSON format." msgstr "输入以 JSON格式传递的参数。" -#: netbox/extras/forms/model_forms.py:488 -#: netbox/templates/extras/eventrule.html:10 +#: netbox/extras/forms/model_forms.py:488 netbox/extras/ui/panels.py:361 msgid "Event Rule" msgstr "事件规则" @@ -9033,8 +8988,7 @@ msgstr "触发器" msgid "Notification group" msgstr "通知组" -#: netbox/extras/forms/model_forms.py:612 -#: netbox/templates/extras/configcontextprofile.html:10 +#: netbox/extras/forms/model_forms.py:612 netbox/extras/ui/panels.py:429 msgid "Config Context Profile" msgstr "配置上下文配置文件" @@ -9124,7 +9078,7 @@ msgstr "配置上下文配置文件" #: netbox/extras/models/configs.py:91 netbox/extras/models/models.py:331 #: netbox/extras/models/models.py:503 netbox/extras/models/models.py:582 #: netbox/extras/models/search.py:49 netbox/extras/models/tags.py:45 -#: netbox/ipam/models/ip.py:195 netbox/netbox/models/mixins.py:32 +#: netbox/ipam/models/ip.py:197 netbox/netbox/models/mixins.py:32 msgid "weight" msgstr "重量" @@ -9642,7 +9596,7 @@ msgstr "" msgid "Enable SSL certificate verification. Disable with caution!" msgstr "启用 SSL 证书验证。请谨慎禁用!" -#: netbox/extras/models/models.py:240 netbox/templates/extras/webhook.html:51 +#: netbox/extras/models/models.py:240 msgid "CA File Path" msgstr "CA证书文件路径" @@ -9941,9 +9895,8 @@ msgstr "解雇" #: netbox/extras/tables/tables.py:80 netbox/extras/tables/tables.py:185 #: netbox/extras/tables/tables.py:214 netbox/extras/tables/tables.py:316 -#: netbox/extras/tables/tables.py:517 netbox/extras/tables/tables.py:555 -#: netbox/templates/extras/customfield.html:105 -#: netbox/templates/extras/eventrule.html:27 +#: netbox/extras/tables/tables.py:519 netbox/extras/tables/tables.py:557 +#: netbox/extras/ui/panels.py:122 netbox/extras/ui/panels.py:178 #: netbox/templates/users/panels/object_types.html:3 #: netbox/users/tables.py:110 msgid "Object Types" @@ -9966,7 +9919,6 @@ msgid "Related Object Type" msgstr "相关对象类型" #: netbox/extras/tables/tables.py:104 -#: netbox/templates/extras/customfield.html:51 msgid "Choice Set" msgstr "选项集" @@ -9975,12 +9927,10 @@ msgid "Is Cloneable" msgstr "可复制" #: netbox/extras/tables/tables.py:116 -#: netbox/templates/extras/customfield.html:118 msgid "Minimum Value" msgstr "最小值" #: netbox/extras/tables/tables.py:119 -#: netbox/templates/extras/customfield.html:122 msgid "Maximum Value" msgstr "最大值" @@ -9990,9 +9940,9 @@ msgstr "验证正则表达式" #: netbox/extras/tables/tables.py:126 netbox/extras/tables/tables.py:167 #: netbox/extras/tables/tables.py:196 netbox/extras/tables/tables.py:243 -#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:487 -#: netbox/extras/tables/tables.py:529 netbox/extras/tables/tables.py:559 -#: netbox/extras/tables/tables.py:650 netbox/extras/tables/tables.py:702 +#: netbox/extras/tables/tables.py:327 netbox/extras/tables/tables.py:488 +#: netbox/extras/tables/tables.py:531 netbox/extras/tables/tables.py:561 +#: netbox/extras/tables/tables.py:652 netbox/extras/tables/tables.py:704 #: netbox/netbox/forms/mixins.py:162 netbox/netbox/forms/mixins.py:187 #: netbox/netbox/tables/tables.py:292 netbox/netbox/tables/tables.py:307 #: netbox/netbox/tables/tables.py:322 netbox/templates/generic/object.html:61 @@ -10009,50 +9959,44 @@ msgid "Order Alphabetically" msgstr "按字母顺序排列" #: netbox/extras/tables/tables.py:191 -#: netbox/templates/extras/customlink.html:33 msgid "New Window" msgstr "新窗口" -#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:688 -#: netbox/templates/extras/configtemplate.html:21 -#: netbox/templates/extras/exporttemplate.html:23 +#: netbox/extras/tables/tables.py:217 netbox/extras/tables/tables.py:690 msgid "MIME Type" msgstr "MIME类型" -#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:691 -#: netbox/templates/extras/configtemplate.html:25 -#: netbox/templates/extras/exporttemplate.html:27 +#: netbox/extras/tables/tables.py:220 netbox/extras/tables/tables.py:693 msgid "File Name" msgstr "文件名" -#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:694 -#: netbox/templates/extras/configtemplate.html:29 -#: netbox/templates/extras/exporttemplate.html:31 +#: netbox/extras/tables/tables.py:223 netbox/extras/tables/tables.py:696 msgid "File Extension" msgstr "文件扩展名" -#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:697 +#: netbox/extras/tables/tables.py:226 netbox/extras/tables/tables.py:699 msgid "As Attachment" msgstr "作为附件" -#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:609 -#: netbox/extras/tables/tables.py:646 netbox/extras/tables/tables.py:681 +#: netbox/extras/tables/tables.py:239 netbox/extras/tables/tables.py:611 +#: netbox/extras/tables/tables.py:648 netbox/extras/tables/tables.py:683 msgid "Synced" msgstr "同步" -#: netbox/extras/tables/tables.py:264 -#: netbox/templates/extras/imageattachment.html:57 +#: netbox/extras/tables/tables.py:264 netbox/extras/ui/panels.py:501 msgid "Image" msgstr "图片" #: netbox/extras/tables/tables.py:273 -#: netbox/templates/extras/imageattachment.html:33 +#: netbox/templates/extras/panels/imageattachment_file.html:7 msgid "Filename" msgstr "文件名" #: netbox/extras/tables/tables.py:292 -#: netbox/templates/extras/imageattachment.html:44 -#: netbox/virtualization/tables/virtualmachines.py:170 +#: netbox/templates/extras/panels/imageattachment_file.html:18 +#: netbox/virtualization/forms/bulk_edit.py:316 +#: netbox/virtualization/forms/filtersets.py:286 +#: netbox/virtualization/tables/virtualmachines.py:173 msgid "Size" msgstr "大小" @@ -10060,38 +10004,36 @@ msgstr "大小" msgid "Table Name" msgstr "表名" -#: netbox/extras/tables/tables.py:440 +#: netbox/extras/tables/tables.py:441 msgid "Read" msgstr "阅读" -#: netbox/extras/tables/tables.py:483 -msgid "SSL Validation" -msgstr "SSL验证" +#: netbox/extras/tables/tables.py:484 +msgid "SSL Verification" +msgstr "SSL 验证" -#: netbox/extras/tables/tables.py:523 -#: netbox/templates/extras/eventrule.html:37 +#: netbox/extras/tables/tables.py:525 netbox/extras/ui/panels.py:370 msgid "Event Types" msgstr "事件类型" -#: netbox/extras/tables/tables.py:684 -#: netbox/templates/extras/configtemplate.html:66 +#: netbox/extras/tables/tables.py:686 msgid "Auto Sync Enabled" msgstr "已启用自动同步" -#: netbox/extras/tables/tables.py:710 netbox/netbox/navigation/menu.py:80 +#: netbox/extras/tables/tables.py:712 netbox/netbox/navigation/menu.py:80 #: netbox/templates/dcim/devicerole.html:8 msgid "Device Roles" msgstr "设备角色" -#: netbox/extras/tables/tables.py:763 +#: netbox/extras/tables/tables.py:765 msgid "Comments (Short)" msgstr "评论(简短)" -#: netbox/extras/tables/tables.py:782 netbox/extras/tables/tables.py:834 +#: netbox/extras/tables/tables.py:784 netbox/extras/tables/tables.py:836 msgid "Line" msgstr "线" -#: netbox/extras/tables/tables.py:837 +#: netbox/extras/tables/tables.py:839 msgid "Method" msgstr "方法" @@ -10103,7 +10045,7 @@ msgstr "尝试渲染此控件时遇到错误:" msgid "Please try reconfiguring the widget, or remove it from your dashboard." msgstr "请尝试重新配置该小工具,或将其从控制面板中删除。" -#: netbox/extras/ui/panels.py:20 netbox/netbox/navigation/menu.py:351 +#: netbox/extras/ui/panels.py:59 netbox/netbox/navigation/menu.py:351 #: netbox/templates/circuits/panels/circuit_circuit_termination.html:41 #: netbox/templates/dcim/device_edit.html:113 #: netbox/templates/dcim/htmx/cable_edit.html:92 @@ -10116,11 +10058,78 @@ msgstr "请尝试重新配置该小工具,或将其从控制面板中删除。 msgid "Custom Fields" msgstr "自定义字段" -#: netbox/extras/ui/panels.py:49 +#: netbox/extras/ui/panels.py:88 #: netbox/templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "增加图片" +#: netbox/extras/ui/panels.py:139 +msgid "Cloneable" +msgstr "可复制" + +#: netbox/extras/ui/panels.py:159 +msgid "Display weight" +msgstr "显示重量" + +#: netbox/extras/ui/panels.py:165 +msgid "Validation Rules" +msgstr "验证规则" + +#: netbox/extras/ui/panels.py:171 +msgid "Regular expression" +msgstr "正则表达式" + +#: netbox/extras/ui/panels.py:183 netbox/netbox/ui/panels.py:268 +#: netbox/templates/inc/panels/related_objects.html:5 +msgid "Related Objects" +msgstr "相关对象" + +#: netbox/extras/ui/panels.py:203 +msgid "Used by" +msgstr "使用者" + +#: netbox/extras/ui/panels.py:246 netbox/extras/ui/panels.py:472 +#: netbox/templates/dcim/trace/attachment.html:5 +msgid "Attachment" +msgstr "附件" + +#: netbox/extras/ui/panels.py:266 netbox/extras/views.py:238 +#: netbox/extras/views.py:308 +msgid "Assigned Models" +msgstr "指定模块" + +#: netbox/extras/ui/panels.py:274 +msgid "Table Config" +msgstr "表格配置" + +#: netbox/extras/ui/panels.py:288 +msgid "Columns Displayed" +msgstr "显示的列" + +#: netbox/extras/ui/panels.py:313 +msgid "Notification Group" +msgstr "通知组" + +#: netbox/extras/ui/panels.py:410 +msgid "Allowed Object Types" +msgstr "允许的对象类型" + +#: netbox/extras/ui/panels.py:415 +msgid "Tagged Item Types" +msgstr "标记的项目类型" + +#: netbox/extras/ui/panels.py:487 +msgid "Image Attachment" +msgstr "图像附件" + +#: netbox/extras/ui/panels.py:489 +msgid "Parent object" +msgstr "父对象" + +#: netbox/extras/ui/panels.py:509 +msgid "Journal Entry" +msgstr "日志条目" + #: netbox/extras/validators.py:15 #, python-format msgid "Ensure this value is equal to %(limit_value)s." @@ -10158,32 +10167,68 @@ msgstr "请求的属性“{name}”无效" msgid "Invalid attribute \"{name}\" for {model}" msgstr "{model}的属性 \"{name}\"无效" -#: netbox/extras/views.py:1127 +#: netbox/extras/views.py:241 +msgid "Link Text" +msgstr "链接文本" + +#: netbox/extras/views.py:242 +msgid "Link URL" +msgstr "链接URL" + +#: netbox/extras/views.py:309 netbox/extras/views.py:1182 +msgid "Environment Parameters" +msgstr "环境参数" + +#: netbox/extras/views.py:312 netbox/extras/views.py:1185 +msgid "Template" +msgstr "模版" + +#: netbox/extras/views.py:749 +msgid "Additional Headers" +msgstr "附加标头" + +#: netbox/extras/views.py:750 +msgid "Body Template" +msgstr "内容模版" + +#: netbox/extras/views.py:818 +msgid "Conditions" +msgstr "条件" + +#: netbox/extras/views.py:891 +msgid "Tagged Objects" +msgstr "标记的对象" + +#: netbox/extras/views.py:982 +msgid "JSON Schema" +msgstr "JSON 架构" + +#: netbox/extras/views.py:1278 #, python-brace-format msgid "An error occurred while rendering the template: {error}" msgstr "渲染模板时出错: {error}" -#: netbox/extras/views.py:1290 +#: netbox/extras/views.py:1462 msgid "Your dashboard has been reset." msgstr "仪表盘已重置。" -#: netbox/extras/views.py:1336 +#: netbox/extras/views.py:1508 msgid "Added widget: " msgstr "添加小组件:" -#: netbox/extras/views.py:1377 +#: netbox/extras/views.py:1549 msgid "Updated widget: " msgstr "更新小组件:" -#: netbox/extras/views.py:1413 +#: netbox/extras/views.py:1585 msgid "Deleted widget: " msgstr "删除小组件:" -#: netbox/extras/views.py:1415 +#: netbox/extras/views.py:1587 msgid "Error deleting widget: " msgstr "删除小组件错误:" -#: netbox/extras/views.py:1530 +#: netbox/extras/views.py:1702 msgid "Unable to run script: RQ worker process not running." msgstr "无法运行脚本:RQ worker 进程未运行。" @@ -10414,7 +10459,7 @@ msgstr "FHRP 小组 (ID)" msgid "IP address (ID)" msgstr "IP 地址 (ID)" -#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:825 +#: netbox/ipam/filtersets.py:1259 netbox/ipam/models/ip.py:839 msgid "IP address" msgstr "IP 地址" @@ -10520,7 +10565,7 @@ msgstr "是一个池" #: netbox/ipam/forms/bulk_edit.py:221 netbox/ipam/forms/bulk_edit.py:265 #: netbox/ipam/forms/filtersets.py:273 netbox/ipam/forms/filtersets.py:332 -#: netbox/ipam/models/ip.py:263 +#: netbox/ipam/models/ip.py:265 msgid "Treat as fully utilized" msgstr "设置为已被全部占用" @@ -10533,7 +10578,7 @@ msgstr "VLAN 分配" msgid "Treat as populated" msgstr "视作已填充" -#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:809 +#: netbox/ipam/forms/bulk_edit.py:307 netbox/ipam/models/ip.py:823 msgid "DNS name" msgstr "DNS 名称" @@ -11036,191 +11081,191 @@ msgid "" "({aggregate})." msgstr "前缀不能与聚合重叠。{prefix} 包含现有聚合({aggregate})。" -#: netbox/ipam/models/ip.py:202 +#: netbox/ipam/models/ip.py:204 msgid "roles" msgstr "角色" -#: netbox/ipam/models/ip.py:215 netbox/ipam/models/ip.py:284 +#: netbox/ipam/models/ip.py:217 netbox/ipam/models/ip.py:286 msgid "prefix" msgstr "前缀" -#: netbox/ipam/models/ip.py:216 +#: netbox/ipam/models/ip.py:218 msgid "IPv4 or IPv6 network with mask" msgstr "带掩码的IPv4或IPv6网络" -#: netbox/ipam/models/ip.py:245 +#: netbox/ipam/models/ip.py:247 msgid "Operational status of this prefix" msgstr "此前缀的操作状态" -#: netbox/ipam/models/ip.py:253 +#: netbox/ipam/models/ip.py:255 msgid "The primary function of this prefix" msgstr "此前缀的主要功能" -#: netbox/ipam/models/ip.py:256 +#: netbox/ipam/models/ip.py:258 msgid "is a pool" msgstr "地址池" -#: netbox/ipam/models/ip.py:258 +#: netbox/ipam/models/ip.py:260 msgid "All IP addresses within this prefix are considered usable" msgstr "此前缀内的所有IP地址都可用" -#: netbox/ipam/models/ip.py:261 netbox/ipam/models/ip.py:558 +#: netbox/ipam/models/ip.py:263 netbox/ipam/models/ip.py:568 msgid "mark utilized" msgstr "使用标记" -#: netbox/ipam/models/ip.py:285 +#: netbox/ipam/models/ip.py:287 msgid "prefixes" msgstr "前缀" -#: netbox/ipam/models/ip.py:309 +#: netbox/ipam/models/ip.py:311 msgid "Cannot create prefix with /0 mask." msgstr "无法创建/0掩码的IP地址前缀。" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 #, python-brace-format msgid "VRF {vrf}" msgstr "VRF {vrf}" -#: netbox/ipam/models/ip.py:316 netbox/ipam/models/ip.py:915 +#: netbox/ipam/models/ip.py:318 netbox/ipam/models/ip.py:929 msgid "global table" msgstr "全局表" -#: netbox/ipam/models/ip.py:318 +#: netbox/ipam/models/ip.py:320 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" msgstr "在{table}中发现重复的前缀: {prefix}" -#: netbox/ipam/models/ip.py:511 +#: netbox/ipam/models/ip.py:521 msgid "start address" msgstr "起始地址" -#: netbox/ipam/models/ip.py:512 netbox/ipam/models/ip.py:516 -#: netbox/ipam/models/ip.py:749 +#: netbox/ipam/models/ip.py:522 netbox/ipam/models/ip.py:526 +#: netbox/ipam/models/ip.py:763 msgid "IPv4 or IPv6 address (with mask)" msgstr "IPv4 或 IPv6 地址(带掩码)" -#: netbox/ipam/models/ip.py:515 +#: netbox/ipam/models/ip.py:525 msgid "end address" msgstr "结束地址" -#: netbox/ipam/models/ip.py:542 +#: netbox/ipam/models/ip.py:552 msgid "Operational status of this range" msgstr "此IP范围的操作状态" -#: netbox/ipam/models/ip.py:550 +#: netbox/ipam/models/ip.py:560 msgid "The primary function of this range" msgstr "此IP范围的主要功能" -#: netbox/ipam/models/ip.py:553 +#: netbox/ipam/models/ip.py:563 msgid "mark populated" msgstr "标记已填充" -#: netbox/ipam/models/ip.py:555 +#: netbox/ipam/models/ip.py:565 msgid "Prevent the creation of IP addresses within this range" msgstr "防止在此范围内创建 IP 地址" -#: netbox/ipam/models/ip.py:560 +#: netbox/ipam/models/ip.py:570 msgid "Report space as fully utilized" msgstr "报告空间已充分利用" -#: netbox/ipam/models/ip.py:569 +#: netbox/ipam/models/ip.py:579 msgid "IP range" msgstr "IP范围" -#: netbox/ipam/models/ip.py:570 +#: netbox/ipam/models/ip.py:580 msgid "IP ranges" msgstr "IP范围" -#: netbox/ipam/models/ip.py:583 +#: netbox/ipam/models/ip.py:593 msgid "Starting and ending IP address versions must match" msgstr "起始和结束IP地址的版本必须一致" -#: netbox/ipam/models/ip.py:589 +#: netbox/ipam/models/ip.py:599 msgid "Starting and ending IP address masks must match" msgstr "起始和结束IP地址的掩码必须一致" -#: netbox/ipam/models/ip.py:596 +#: netbox/ipam/models/ip.py:606 #, python-brace-format msgid "" "Ending address must be greater than the starting address ({start_address})" msgstr "结束地址必须大于起始地址 ({start_address})" -#: netbox/ipam/models/ip.py:624 +#: netbox/ipam/models/ip.py:634 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" msgstr "定义的地址与 VRF {vrf} 中的范围 {overlapping_range} 重叠" -#: netbox/ipam/models/ip.py:633 +#: netbox/ipam/models/ip.py:643 #, python-brace-format msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "定义的范围超过了支持的最大大小 ({max_size})" -#: netbox/ipam/models/ip.py:748 netbox/tenancy/models/contacts.py:78 +#: netbox/ipam/models/ip.py:762 netbox/tenancy/models/contacts.py:78 msgid "address" msgstr "地址" -#: netbox/ipam/models/ip.py:771 +#: netbox/ipam/models/ip.py:785 msgid "The operational status of this IP" msgstr "此IP的运行状态" -#: netbox/ipam/models/ip.py:779 +#: netbox/ipam/models/ip.py:793 msgid "The functional role of this IP" msgstr "此IP的功能作用" -#: netbox/ipam/models/ip.py:802 netbox/ipam/ui/panels.py:126 +#: netbox/ipam/models/ip.py:816 netbox/ipam/ui/panels.py:126 msgid "NAT (inside)" msgstr "NAT(内部 IP)" -#: netbox/ipam/models/ip.py:803 +#: netbox/ipam/models/ip.py:817 msgid "The IP for which this address is the \"outside\" IP" msgstr "此IP地址为外部IP" -#: netbox/ipam/models/ip.py:810 +#: netbox/ipam/models/ip.py:824 msgid "Hostname or FQDN (not case-sensitive)" msgstr "主机名或 FQDN(不区分大小写)" -#: netbox/ipam/models/ip.py:826 netbox/ipam/models/services.py:86 +#: netbox/ipam/models/ip.py:840 netbox/ipam/models/services.py:86 msgid "IP addresses" msgstr "IP地址" -#: netbox/ipam/models/ip.py:886 +#: netbox/ipam/models/ip.py:900 msgid "Cannot create IP address with /0 mask." msgstr "无法创建/0掩码的IP地址。" -#: netbox/ipam/models/ip.py:892 +#: netbox/ipam/models/ip.py:906 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "{ip}是一个网络号,不能分配给接口。" -#: netbox/ipam/models/ip.py:903 +#: netbox/ipam/models/ip.py:917 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "{ip}是一个广播地址,不能分配给接口。" -#: netbox/ipam/models/ip.py:917 +#: netbox/ipam/models/ip.py:931 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "在 {table}中发现重复的IP地址: {ipaddress}" -#: netbox/ipam/models/ip.py:933 +#: netbox/ipam/models/ip.py:947 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." msgstr "无法创建 IP 地址 {ip} 范围内 {range}。" -#: netbox/ipam/models/ip.py:954 +#: netbox/ipam/models/ip.py:968 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "当 IP 地址被指定为父对象的首选 IP 时,无法重新分配 IP 地址" -#: netbox/ipam/models/ip.py:961 +#: netbox/ipam/models/ip.py:975 msgid "" "Cannot reassign IP address while it is designated as the OOB IP for the " "parent object" msgstr "当 IP 地址被指定为父对象的 OOB IP 时,无法重新分配 IP 地址" -#: netbox/ipam/models/ip.py:967 +#: netbox/ipam/models/ip.py:981 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "只能为IPv6地址分配SLAAC状态" @@ -11552,7 +11597,7 @@ msgstr "主要 IP" #: netbox/ipam/ui/panels.py:134 msgid "OOB IP" -msgstr "哈哈哈哈哈哈的" +msgstr "带外管理 IP" #: netbox/ipam/ui/panels.py:190 msgid "Authentication Type" @@ -11783,8 +11828,9 @@ msgstr "灰色" msgid "Dark Grey" msgstr "深灰色" -#: netbox/netbox/choices.py:103 netbox/templates/extras/script_result.html:56 -#: netbox/templates/extras/tableconfig.html:76 +#: netbox/netbox/choices.py:103 +#: netbox/templates/extras/panels/tableconfig_ordering.html:19 +#: netbox/templates/extras/script_result.html:56 msgid "Default" msgstr "默认" @@ -12700,67 +12746,67 @@ msgstr "初始化后无法在注册表中添加存储空间" msgid "Cannot delete stores from registry" msgstr "无法从注册表中删除存储" -#: netbox/netbox/settings.py:828 +#: netbox/netbox/settings.py:829 msgid "Czech" msgstr "捷克语" -#: netbox/netbox/settings.py:829 +#: netbox/netbox/settings.py:830 msgid "Danish" msgstr "丹麦语" -#: netbox/netbox/settings.py:830 +#: netbox/netbox/settings.py:831 msgid "German" msgstr "德语" -#: netbox/netbox/settings.py:831 +#: netbox/netbox/settings.py:832 msgid "English" msgstr "英语" -#: netbox/netbox/settings.py:832 +#: netbox/netbox/settings.py:833 msgid "Spanish" msgstr "西班牙语" -#: netbox/netbox/settings.py:833 +#: netbox/netbox/settings.py:834 msgid "French" msgstr "法语" -#: netbox/netbox/settings.py:834 +#: netbox/netbox/settings.py:835 msgid "Italian" msgstr "意大利语" -#: netbox/netbox/settings.py:835 +#: netbox/netbox/settings.py:836 msgid "Japanese" msgstr "日语" -#: netbox/netbox/settings.py:836 +#: netbox/netbox/settings.py:837 msgid "Latvian" msgstr "拉脱维亚的" -#: netbox/netbox/settings.py:837 +#: netbox/netbox/settings.py:838 msgid "Dutch" msgstr "荷兰语" -#: netbox/netbox/settings.py:838 +#: netbox/netbox/settings.py:839 msgid "Polish" msgstr "波兰语" -#: netbox/netbox/settings.py:839 +#: netbox/netbox/settings.py:840 msgid "Portuguese" msgstr "葡萄牙语" -#: netbox/netbox/settings.py:840 +#: netbox/netbox/settings.py:841 msgid "Russian" msgstr "俄语" -#: netbox/netbox/settings.py:841 +#: netbox/netbox/settings.py:842 msgid "Turkish" msgstr "土耳其语" -#: netbox/netbox/settings.py:842 +#: netbox/netbox/settings.py:843 msgid "Ukrainian" msgstr "乌克兰语" -#: netbox/netbox/settings.py:843 +#: netbox/netbox/settings.py:844 msgid "Chinese" msgstr "中文" @@ -12788,6 +12834,7 @@ msgid "Field" msgstr "字段" #: netbox/netbox/tables/tables.py:351 +#: netbox/templates/extras/panels/customfieldchoiceset_choices.html:8 msgid "Value" msgstr "值" @@ -12815,11 +12862,6 @@ msgstr "max_items 值无效: {max_items}!必须是正整数或无。" msgid "GPS coordinates" msgstr "GPS 坐标" -#: netbox/netbox/ui/panels.py:267 -#: netbox/templates/inc/panels/related_objects.html:5 -msgid "Related Objects" -msgstr "相关对象" - #: netbox/netbox/views/generic/bulk_views.py:124 #, python-brace-format msgid "" @@ -13058,7 +13100,6 @@ msgid "Toggle All" msgstr "全部切换" #: netbox/templates/account/preferences.html:49 -#: netbox/templates/extras/tableconfig.html:25 msgid "Table" msgstr "列表" @@ -13114,13 +13155,9 @@ msgstr "指定用户组" #: netbox/templates/dcim/panels/installed_module.html:31 #: netbox/templates/dcim/panels/interface_wireless_lans.html:20 #: netbox/templates/dcim/panels/module_type_attributes.html:26 -#: netbox/templates/extras/configcontext.html:46 -#: netbox/templates/extras/configtemplate.html:81 -#: netbox/templates/extras/eventrule.html:66 -#: netbox/templates/extras/exporttemplate.html:60 #: netbox/templates/extras/htmx/script_result.html:70 -#: netbox/templates/extras/webhook.html:65 -#: netbox/templates/extras/webhook.html:75 +#: netbox/templates/extras/panels/configcontext_assignment.html:14 +#: netbox/templates/extras/panels/customfield_related_objects.html:18 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 #: netbox/templates/inc/panels/related_objects.html:22 @@ -13128,6 +13165,7 @@ msgstr "指定用户组" #: netbox/templates/ipam/panels/fhrp_groups.html:42 #: netbox/templates/ui/panels/comments.html:9 #: netbox/templates/ui/panels/related_objects.html:22 +#: netbox/templates/ui/panels/text_code.html:12 #: netbox/templates/users/panels/object_types.html:8 msgid "None" msgstr "无" @@ -13290,7 +13328,7 @@ msgid "Changed" msgstr "已更改" #: netbox/templates/core/datafile/attrs/size.html:1 -#: netbox/templates/extras/imageattachment.html:46 +#: netbox/templates/extras/panels/imageattachment_file.html:20 msgid "bytes" msgstr "bytes" @@ -13343,12 +13381,11 @@ msgid "Job retention" msgstr "任务保留" #: netbox/templates/core/inc/datafile_panel.html:23 -#: netbox/templates/extras/configtemplate.html:53 +#: netbox/templates/extras/configtemplate/attrs/data_file.html:6 msgid "The data file associated with this object has been deleted" msgstr "与此对象关联的数据文件已被删除" #: netbox/templates/core/inc/datafile_panel.html:32 -#: netbox/templates/extras/configtemplate.html:62 msgid "Data Synced" msgstr "数据已同步" @@ -14025,12 +14062,6 @@ msgstr "增加机柜" msgid "Add Site" msgstr "增加站点" -#: netbox/templates/dcim/trace/attachment.html:5 -#: netbox/templates/extras/configtemplate.html:33 -#: netbox/templates/extras/exporttemplate.html:35 -msgid "Attachment" -msgstr "附件" - #: netbox/templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" @@ -14167,82 +14198,10 @@ msgstr "" "确保正在使用 PostgreSQL 版本 14 或更高版本。您可以通过使用 NetBox 的凭据连接到数据库并发出查询来检查这一点 " "%(sql_query)s。" -#: netbox/templates/extras/configcontextprofile.html:30 -msgid "JSON Schema" -msgstr "JSON 架构" - -#: netbox/templates/extras/configtemplate.html:76 -#: netbox/templates/extras/exporttemplate.html:55 -msgid "Environment Parameters" -msgstr "环境参数" - -#: netbox/templates/extras/configtemplate.html:91 -#: netbox/templates/extras/exporttemplate.html:70 -msgid "Template" -msgstr "模版" - -#: netbox/templates/extras/customfield.html:30 -#: netbox/templates/extras/customlink.html:21 -msgid "Group Name" -msgstr "组名称" - -#: netbox/templates/extras/customfield.html:42 -msgid "Must be Unique" -msgstr "必须是唯一的" - -#: netbox/templates/extras/customfield.html:46 -msgid "Cloneable" -msgstr "可复制" - -#: netbox/templates/extras/customfield.html:56 -msgid "Default Value" -msgstr "默认值" - -#: netbox/templates/extras/customfield.html:73 -msgid "Search Weight" -msgstr "搜索权重" - -#: netbox/templates/extras/customfield.html:83 -msgid "Filter Logic" -msgstr "过滤器规则" - -#: netbox/templates/extras/customfield.html:87 -msgid "Display Weight" -msgstr "显示权重" - -#: netbox/templates/extras/customfield.html:91 -msgid "UI Visible" -msgstr "页面中可见" - -#: netbox/templates/extras/customfield.html:95 -msgid "UI Editable" -msgstr "页面中可编辑" - -#: netbox/templates/extras/customfield.html:115 -msgid "Validation Rules" -msgstr "验证规则" - -#: netbox/templates/extras/customfield.html:126 -msgid "Regular Expression" -msgstr "正则表达式" - -#: netbox/templates/extras/customlink.html:29 -msgid "Button Class" -msgstr "按钮类型" - -#: netbox/templates/extras/customlink.html:39 -#: netbox/templates/extras/exporttemplate.html:45 -#: netbox/templates/extras/savedfilter.html:39 -msgid "Assigned Models" -msgstr "指定模块" - -#: netbox/templates/extras/customlink.html:52 -msgid "Link Text" -msgstr "链接文本" - -#: netbox/templates/extras/customlink.html:58 -msgid "Link URL" -msgstr "链接URL" +#: netbox/templates/extras/customfield/attrs/choice_set.html:1 +#: netbox/templates/generic/bulk_import.html:179 +msgid "choices" +msgstr "选择" #: netbox/templates/extras/dashboard/reset.html:4 #: netbox/templates/home.html:66 @@ -14307,10 +14266,6 @@ msgstr "获取RSS源时出现问题" msgid "HTTP" msgstr "HTTP" -#: netbox/templates/extras/eventrule.html:61 -msgid "Conditions" -msgstr "条件" - #: netbox/templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "计划为" @@ -14332,14 +14287,6 @@ msgstr "输出" msgid "Download" msgstr "下载" -#: netbox/templates/extras/imageattachment.html:10 -msgid "Image Attachment" -msgstr "图像附件" - -#: netbox/templates/extras/imageattachment.html:13 -msgid "Parent Object" -msgstr "父对象" - #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "加载中" @@ -14386,24 +14333,6 @@ msgid "" "an uploaded file or data source." msgstr "从上传的文件或数据源开始创建脚本。" -#: netbox/templates/extras/journalentry.html:15 -msgid "Journal Entry" -msgstr "日志条目" - -#: netbox/templates/extras/journalentry.html:26 -msgid "Created By" -msgstr "创建者" - -#: netbox/templates/extras/notificationgroup.html:11 -msgid "Notification Group" -msgstr "通知组" - -#: netbox/templates/extras/notificationgroup.html:36 -#: netbox/templates/extras/notificationgroup.html:46 -#: netbox/utilities/templates/widgets/clearable_file_input.html:12 -msgid "None assigned" -msgstr "未指定" - #: netbox/templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "本地实例覆盖数据源上的实例" @@ -14459,6 +14388,16 @@ msgstr "模板输出为空" msgid "No configuration template has been assigned." msgstr "尚未分配任何配置模板。" +#: netbox/templates/extras/panels/notificationgroup_groups.html:9 +#: netbox/templates/extras/panels/notificationgroup_users.html:9 +#: netbox/utilities/templates/widgets/clearable_file_input.html:12 +msgid "None assigned" +msgstr "未指定" + +#: netbox/templates/extras/panels/tag_object_types.html:12 +msgid "Any" +msgstr "所有" + #: netbox/templates/extras/panels/tags.html:11 #: netbox/templates/inc/panels/tags.html:11 msgid "No tags assigned" @@ -14495,14 +14434,6 @@ msgstr "日志阈值" msgid "All" msgstr "全部" -#: netbox/templates/extras/tableconfig.html:10 -msgid "Table Config" -msgstr "表格配置" - -#: netbox/templates/extras/tableconfig.html:50 -msgid "Columns Displayed" -msgstr "显示的列" - #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 msgid "Table Configuration" @@ -14520,46 +14451,6 @@ msgstr "上移" msgid "Move Down" msgstr "下移" -#: netbox/templates/extras/tag.html:36 -msgid "Tagged Items" -msgstr "标记的项目" - -#: netbox/templates/extras/tag.html:47 -msgid "Allowed Object Types" -msgstr "允许的对象类型" - -#: netbox/templates/extras/tag.html:55 -msgid "Any" -msgstr "所有" - -#: netbox/templates/extras/tag.html:61 -msgid "Tagged Item Types" -msgstr "标记的项目类型" - -#: netbox/templates/extras/tag.html:85 -msgid "Tagged Objects" -msgstr "标记的对象" - -#: netbox/templates/extras/webhook.html:26 -msgid "HTTP Method" -msgstr "HTTP方法" - -#: netbox/templates/extras/webhook.html:34 -msgid "HTTP Content Type" -msgstr "HTTP内容类型" - -#: netbox/templates/extras/webhook.html:47 -msgid "SSL Verification" -msgstr "SSL验证" - -#: netbox/templates/extras/webhook.html:60 -msgid "Additional Headers" -msgstr "附加标头" - -#: netbox/templates/extras/webhook.html:70 -msgid "Body Template" -msgstr "内容模版" - #: netbox/templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "批量创建" @@ -14630,10 +14521,6 @@ msgstr "字段选项" msgid "Accessor" msgstr "Accessor" -#: netbox/templates/generic/bulk_import.html:179 -msgid "choices" -msgstr "选择" - #: netbox/templates/generic/bulk_import.html:192 msgid "Import Value" msgstr "导入值" @@ -15128,6 +15015,7 @@ msgstr "虚拟CPU" #: netbox/templates/virtualization/panels/cluster_resources.html:12 #: netbox/templates/virtualization/panels/virtual_machine_resources.html:12 +#: netbox/virtualization/forms/bulk_edit.py:143 msgid "Memory" msgstr "内存" @@ -15137,8 +15025,8 @@ msgid "Disk Space" msgstr "磁盘空间" #: netbox/templates/virtualization/panels/virtual_machine_resources.html:5 -#: netbox/virtualization/forms/bulk_edit.py:155 -#: netbox/virtualization/forms/model_forms.py:224 +#: netbox/virtualization/forms/bulk_edit.py:157 +#: netbox/virtualization/forms/model_forms.py:226 msgid "Resources" msgstr "资源" @@ -16145,50 +16033,50 @@ msgid "" "the object's change log for details." msgstr "自呈现表单以来,该对象已被修改。 有关详细信息,请查阅对象的更改日志。" -#: netbox/utilities/forms/utils.py:43 netbox/utilities/forms/utils.py:69 -#: netbox/utilities/forms/utils.py:86 netbox/utilities/forms/utils.py:88 +#: netbox/utilities/forms/utils.py:44 netbox/utilities/forms/utils.py:70 +#: netbox/utilities/forms/utils.py:87 netbox/utilities/forms/utils.py:89 #, python-brace-format msgid "Range \"{value}\" is invalid." msgstr "范围 \"{value}\"无效。" -#: netbox/utilities/forms/utils.py:75 +#: netbox/utilities/forms/utils.py:76 #, python-brace-format msgid "" "Invalid range: Ending value ({end}) must be greater than beginning value " "({begin})." msgstr "无效的范围:结束值({end})必须大于开始值({begin})。" -#: netbox/utilities/forms/utils.py:236 +#: netbox/utilities/forms/utils.py:244 #, python-brace-format msgid "Duplicate or conflicting column header for \"{field}\"" msgstr "\"{field}\"的列标题重复或冲突" -#: netbox/utilities/forms/utils.py:242 +#: netbox/utilities/forms/utils.py:250 #, python-brace-format msgid "Duplicate or conflicting column header for \"{header}\"" msgstr "\"{header}\"的列标题重复或冲突" -#: netbox/utilities/forms/utils.py:251 +#: netbox/utilities/forms/utils.py:259 #, python-brace-format msgid "Row {row}: Expected {count_expected} columns but found {count_found}" msgstr "第{row}行: 应该有{count_expected}列,但是发现了{count_found}列" -#: netbox/utilities/forms/utils.py:274 +#: netbox/utilities/forms/utils.py:282 #, python-brace-format msgid "Unexpected column header \"{field}\" found." msgstr "发现错误的列头\"{field}\"。" -#: netbox/utilities/forms/utils.py:276 +#: netbox/utilities/forms/utils.py:284 #, python-brace-format msgid "Column \"{field}\" is not a related object; cannot use dots" msgstr "字段\"{field}\"未与对象关联;不能使用“.”" -#: netbox/utilities/forms/utils.py:280 +#: netbox/utilities/forms/utils.py:288 #, python-brace-format msgid "Invalid related object attribute for column \"{field}\": {to_field}" msgstr "对象的属性关联无效 \"{field}\": {to_field}" -#: netbox/utilities/forms/utils.py:288 +#: netbox/utilities/forms/utils.py:296 #, python-brace-format msgid "Required column header \"{header}\" not found." msgstr "找不到必需的列标题\"{header}\"。" @@ -16203,7 +16091,7 @@ msgstr "缺少动态查询参数:'{dynamic_params}'" msgid "Missing required value for static query param: '{static_params}'" msgstr "缺少静态查询参数:'{static_params}'" -#: netbox/utilities/forms/widgets/modifiers.py:148 +#: netbox/utilities/forms/widgets/modifiers.py:155 msgid "(automatically set)" msgstr "(自动设置)" @@ -16394,30 +16282,42 @@ msgstr "集群类型(ID)" msgid "Cluster (ID)" msgstr "集群 (ID)" -#: netbox/virtualization/forms/bulk_edit.py:89 +#: netbox/virtualization/forms/bulk_edit.py:91 #: netbox/virtualization/forms/bulk_import.py:92 -#: netbox/virtualization/forms/filtersets.py:179 +#: netbox/virtualization/forms/filtersets.py:181 #: netbox/virtualization/tables/virtualmachines.py:34 msgid "Start on boot" msgstr "开机启动" -#: netbox/virtualization/forms/bulk_edit.py:137 +#: netbox/virtualization/forms/bulk_edit.py:139 #: netbox/virtualization/models/virtualmachines.py:116 msgid "vCPUs" msgstr "vCPUs" -#: netbox/virtualization/forms/bulk_edit.py:141 -msgid "Memory (MB)" -msgstr "内存 (MB)" +#: netbox/virtualization/forms/bulk_edit.py:147 +#: netbox/virtualization/forms/model_forms.py:402 +#: netbox/virtualization/tables/virtualmachines.py:82 +msgid "Disk" +msgstr "硬盘" -#: netbox/virtualization/forms/bulk_edit.py:145 -msgid "Disk (MB)" -msgstr "磁盘 (MB)" +#: netbox/virtualization/forms/bulk_edit.py:168 +#: netbox/virtualization/forms/model_forms.py:242 +#, python-brace-format +msgid "Memory ({unit})" +msgstr "内存 ({unit})" -#: netbox/virtualization/forms/bulk_edit.py:307 -#: netbox/virtualization/forms/filtersets.py:284 -msgid "Size (MB)" -msgstr "大小 (MB)" +#: netbox/virtualization/forms/bulk_edit.py:169 +#: netbox/virtualization/forms/model_forms.py:243 +#, python-brace-format +msgid "Disk ({unit})" +msgstr "磁盘 ({unit})" + +#: netbox/virtualization/forms/bulk_edit.py:334 +#: netbox/virtualization/forms/filtersets.py:296 +#: netbox/virtualization/forms/model_forms.py:415 +#, python-brace-format +msgid "Size ({unit})" +msgstr "尺寸 ({unit})" #: netbox/virtualization/forms/bulk_import.py:45 msgid "Type of cluster" @@ -16439,38 +16339,33 @@ msgstr "指定集群" msgid "Assigned device within cluster" msgstr "指定集群内部设备" -#: netbox/virtualization/forms/model_forms.py:36 +#: netbox/virtualization/forms/model_forms.py:38 msgid "Cluster Type" msgstr "集群类型" -#: netbox/virtualization/forms/model_forms.py:48 +#: netbox/virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "集群组" -#: netbox/virtualization/forms/model_forms.py:152 +#: netbox/virtualization/forms/model_forms.py:154 #, python-brace-format msgid "" "{device} belongs to a different {scope_field} ({device_scope}) than the " "cluster ({cluster_scope})" msgstr "{device} 属于不同的 {scope_field} ({device_scope}) 而不是集群 ({cluster_scope})" -#: netbox/virtualization/forms/model_forms.py:193 +#: netbox/virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "可将此虚拟机固定到集群中的特定主机设备" -#: netbox/virtualization/forms/model_forms.py:221 +#: netbox/virtualization/forms/model_forms.py:223 msgid "Site/Cluster" msgstr "站点/集群" -#: netbox/virtualization/forms/model_forms.py:244 +#: netbox/virtualization/forms/model_forms.py:250 msgid "Disk size is managed via the attachment of virtual disks." msgstr "通过附加虚拟磁盘来管理磁盘大小。" -#: netbox/virtualization/forms/model_forms.py:396 -#: netbox/virtualization/tables/virtualmachines.py:82 -msgid "Disk" -msgstr "硬盘" - #: netbox/virtualization/models/clusters.py:26 msgid "cluster type" msgstr "集群类型" @@ -16514,12 +16409,12 @@ msgid "start on boot" msgstr "开机启动" #: netbox/virtualization/models/virtualmachines.py:124 -msgid "memory (MB)" -msgstr "内存 (MB)" +msgid "memory" +msgstr "记忆" #: netbox/virtualization/models/virtualmachines.py:129 -msgid "disk (MB)" -msgstr "磁盘 (MB)" +msgid "disk" +msgstr "磁盘" #: netbox/virtualization/models/virtualmachines.py:173 msgid "Virtual machine name must be unique per cluster." @@ -16591,10 +16486,6 @@ msgid "" "interface's parent virtual machine, or it must be global." msgstr "未标记 VLAN ({untagged_vlan}) 必须与接口的父虚拟机属于同一站点,或者必须是全局的。" -#: netbox/virtualization/models/virtualmachines.py:428 -msgid "size (MB)" -msgstr "大小 (MB)" - #: netbox/virtualization/models/virtualmachines.py:432 msgid "virtual disk" msgstr "虚拟磁盘" diff --git a/pyproject.toml b/pyproject.toml index 9574c409a..ab4dbad78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "netbox" -version = "4.5.6" +version = "4.5.7" requires-python = ">=3.12" description = "The premier source of truth powering network automation." readme = "README.md" diff --git a/requirements.txt b/requirements.txt index c6fdbb5c7..ffdcd935d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ colorama==0.4.6 Django==5.2.12 django-cors-headers==4.9.0 -django-debug-toolbar==6.2.0 +django-debug-toolbar==6.3.0 django-filter==25.2 django-graphiql-debug-toolbar==0.2.0 django-htmx==1.27.0 @@ -17,7 +17,7 @@ django-taggit==6.1.0 django-timezone-field==7.2.1 djangorestframework==3.16.1 drf-spectacular==0.29.0 -drf-spectacular-sidecar==2026.3.1 +drf-spectacular-sidecar==2026.4.1 feedparser==6.0.12 gunicorn==25.3.0 Jinja2==3.1.6 @@ -29,7 +29,7 @@ mkdocstrings==1.0.3 mkdocstrings-python==2.0.3 netaddr==1.3.0 nh3==0.3.4 -Pillow==12.1.1 +Pillow==12.2.0 psycopg[c,pool]==3.3.3 PyYAML==6.0.3 requests==2.33.1 @@ -41,4 +41,4 @@ strawberry-graphql==0.312.2 strawberry-graphql-django==0.82.1 svgwrite==1.4.3 tablib==3.9.0 -tzdata==2025.3 +tzdata==2026.1 From f242f17ce59fb5bc1fb6ca59eb462eed9ed61a22 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Fri, 3 Apr 2026 23:55:11 +0200 Subject: [PATCH 14/27] Fixes #21542: Increase supported interface speed values above 2.1 Tbps (#21834) --- netbox/dcim/filtersets.py | 3 ++- netbox/dcim/forms/bulk_edit.py | 10 ++++++-- netbox/dcim/forms/filtersets.py | 4 ++-- netbox/dcim/graphql/filters.py | 10 ++++++-- netbox/dcim/graphql/types.py | 1 + .../0227_alter_interface_speed_bigint.py | 15 ++++++++++++ netbox/dcim/models/device_components.py | 2 +- netbox/dcim/tests/test_api.py | 4 ++-- netbox/dcim/tests/test_filtersets.py | 4 ++-- netbox/dcim/tests/test_views.py | 8 +++---- netbox/utilities/filters.py | 8 +++++++ netbox/utilities/forms/fields/fields.py | 23 +++++++++++++++++++ 12 files changed, 76 insertions(+), 16 deletions(-) create mode 100644 netbox/dcim/migrations/0227_alter_interface_speed_bigint.py diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index 927ef9f45..339537b4c 100644 --- a/netbox/dcim/filtersets.py +++ b/netbox/dcim/filtersets.py @@ -26,6 +26,7 @@ from tenancy.models import * from users.filterset_mixins import OwnerFilterMixin from users.models import User from utilities.filters import ( + MultiValueBigNumberFilter, MultiValueCharFilter, MultiValueContentTypeFilter, MultiValueMACAddressFilter, @@ -2175,7 +2176,7 @@ class InterfaceFilterSet( distinct=False, label=_('LAG interface (ID)'), ) - speed = MultiValueNumberFilter() + speed = MultiValueBigNumberFilter(min_value=0) duplex = django_filters.MultipleChoiceFilter( choices=InterfaceDuplexChoices, distinct=False, diff --git a/netbox/dcim/forms/bulk_edit.py b/netbox/dcim/forms/bulk_edit.py index ad41e5a74..a3cc217c6 100644 --- a/netbox/dcim/forms/bulk_edit.py +++ b/netbox/dcim/forms/bulk_edit.py @@ -20,7 +20,13 @@ from netbox.forms.mixins import ChangelogMessageMixin, OwnerMixin from tenancy.models import Tenant from users.models import User from utilities.forms import BulkEditForm, add_blank_choice, form_from_model -from utilities.forms.fields import ColorField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, JSONField +from utilities.forms.fields import ( + ColorField, + DynamicModelChoiceField, + DynamicModelMultipleChoiceField, + JSONField, + PositiveBigIntegerField, +) from utilities.forms.rendering import FieldSet, InlineFields, TabbedGroups from utilities.forms.widgets import BulkEditNullBooleanSelect, NumberWithOptions from virtualization.models import Cluster @@ -1420,7 +1426,7 @@ class InterfaceBulkEditForm( 'device_id': '$device', } ) - speed = forms.IntegerField( + speed = PositiveBigIntegerField( label=_('Speed'), required=False, widget=NumberWithOptions( diff --git a/netbox/dcim/forms/filtersets.py b/netbox/dcim/forms/filtersets.py index b375f2bba..ebd380206 100644 --- a/netbox/dcim/forms/filtersets.py +++ b/netbox/dcim/forms/filtersets.py @@ -19,7 +19,7 @@ from tenancy.forms import ContactModelFilterForm, TenancyFilterForm from tenancy.models import Tenant from users.models import User from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_choice -from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, TagFilterField +from utilities.forms.fields import ColorField, DynamicModelMultipleChoiceField, PositiveBigIntegerField, TagFilterField from utilities.forms.rendering import FieldSet from utilities.forms.widgets import NumberWithOptions from virtualization.models import Cluster, ClusterGroup, VirtualMachine @@ -1603,7 +1603,7 @@ class InterfaceFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm): choices=InterfaceTypeChoices, required=False ) - speed = forms.IntegerField( + speed = PositiveBigIntegerField( label=_('Speed'), required=False, widget=NumberWithOptions( diff --git a/netbox/dcim/graphql/filters.py b/netbox/dcim/graphql/filters.py index 99bd7f8b4..c5aa04236 100644 --- a/netbox/dcim/graphql/filters.py +++ b/netbox/dcim/graphql/filters.py @@ -47,7 +47,13 @@ if TYPE_CHECKING: VRFFilter, ) from netbox.graphql.enums import ColorEnum - from netbox.graphql.filter_lookups import FloatLookup, IntegerArrayLookup, IntegerLookup, TreeNodeFilter + from netbox.graphql.filter_lookups import ( + BigIntegerLookup, + FloatLookup, + IntegerArrayLookup, + IntegerLookup, + TreeNodeFilter, + ) from users.graphql.filters import UserFilter from virtualization.graphql.filters import ClusterFilter from vpn.graphql.filters import L2VPNFilter, TunnelTerminationFilter @@ -519,7 +525,7 @@ class InterfaceFilter( strawberry_django.filter_field() ) mgmt_only: FilterLookup[bool] | None = strawberry_django.filter_field() - speed: Annotated['IntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = ( + speed: Annotated['BigIntegerLookup', strawberry.lazy('netbox.graphql.filter_lookups')] | None = ( strawberry_django.filter_field() ) duplex: BaseFilterLookup[Annotated['InterfaceDuplexEnum', strawberry.lazy('dcim.graphql.enums')]] | None = ( diff --git a/netbox/dcim/graphql/types.py b/netbox/dcim/graphql/types.py index cf16bc39f..2a6c3750a 100644 --- a/netbox/dcim/graphql/types.py +++ b/netbox/dcim/graphql/types.py @@ -433,6 +433,7 @@ class MACAddressType(PrimaryObjectType): ) class InterfaceType(IPAddressesMixin, ModularComponentType, CabledObjectMixin, PathEndpointMixin): _name: str + speed: BigInt | None wwn: str | None parent: Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')] | None bridge: Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')] | None diff --git a/netbox/dcim/migrations/0227_alter_interface_speed_bigint.py b/netbox/dcim/migrations/0227_alter_interface_speed_bigint.py new file mode 100644 index 000000000..c9c657a6b --- /dev/null +++ b/netbox/dcim/migrations/0227_alter_interface_speed_bigint.py @@ -0,0 +1,15 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('dcim', '0226_modulebay_rebuild_tree'), + ] + + operations = [ + migrations.AlterField( + model_name='interface', + name='speed', + field=models.PositiveBigIntegerField(blank=True, null=True), + ), + ] diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 75a26e25e..dbb59dc7f 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -806,7 +806,7 @@ class Interface( verbose_name=_('management only'), help_text=_('This interface is used only for out-of-band management') ) - speed = models.PositiveIntegerField( + speed = models.PositiveBigIntegerField( blank=True, null=True, verbose_name=_('speed (Kbps)') diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 70c212849..61928e562 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -1930,9 +1930,9 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase { 'device': device.pk, 'name': 'Interface 4', - 'type': '1000base-t', + 'type': 'other', 'mode': InterfaceModeChoices.MODE_TAGGED, - 'speed': 1000000, + 'speed': 16_000_000_000, 'duplex': 'full', 'vrf': vrfs[0].pk, 'poe_mode': InterfacePoEModeChoices.MODE_PD, diff --git a/netbox/dcim/tests/test_filtersets.py b/netbox/dcim/tests/test_filtersets.py index 23ca1ba62..fb8340a6d 100644 --- a/netbox/dcim/tests/test_filtersets.py +++ b/netbox/dcim/tests/test_filtersets.py @@ -4655,7 +4655,7 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil enabled=True, mgmt_only=True, tx_power=40, - speed=100000, + speed=16_000_000_000, duplex='full', poe_mode=InterfacePoEModeChoices.MODE_PD, poe_type=InterfacePoETypeChoices.TYPE_2_8023AT, @@ -4757,7 +4757,7 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) def test_speed(self): - params = {'speed': [1000000, 100000]} + params = {'speed': [16_000_000_000, 1_000_000, 100_000]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) def test_duplex(self): diff --git a/netbox/dcim/tests/test_views.py b/netbox/dcim/tests/test_views.py index 1aac72875..197af26b3 100644 --- a/netbox/dcim/tests/test_views.py +++ b/netbox/dcim/tests/test_views.py @@ -2961,13 +2961,13 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase): cls.form_data = { 'device': device.pk, 'name': 'Interface X', - 'type': InterfaceTypeChoices.TYPE_1GE_GBIC, + 'type': InterfaceTypeChoices.TYPE_OTHER, 'enabled': False, 'bridge': interfaces[4].pk, 'lag': interfaces[3].pk, 'wwn': EUI('01:02:03:04:05:06:07:08', version=64), 'mtu': 65000, - 'speed': 1000000, + 'speed': 16_000_000_000, 'duplex': 'full', 'mgmt_only': True, 'description': 'A front port', @@ -2985,13 +2985,13 @@ class InterfaceTestCase(ViewTestCases.DeviceComponentViewTestCase): cls.bulk_create_data = { 'device': device.pk, 'name': 'Interface [4-6]', - 'type': InterfaceTypeChoices.TYPE_1GE_GBIC, + 'type': InterfaceTypeChoices.TYPE_OTHER, 'enabled': False, 'bridge': interfaces[4].pk, 'lag': interfaces[3].pk, 'wwn': EUI('01:02:03:04:05:06:07:08', version=64), 'mtu': 2000, - 'speed': 100000, + 'speed': 16_000_000_000, 'duplex': 'half', 'mgmt_only': True, 'description': 'A front port', diff --git a/netbox/utilities/filters.py b/netbox/utilities/filters.py index 1b7f91a12..a445d16b7 100644 --- a/netbox/utilities/filters.py +++ b/netbox/utilities/filters.py @@ -7,9 +7,12 @@ from django_filters.constants import EMPTY_VALUES from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema_field +from .forms.fields import BigIntegerField + __all__ = ( 'ContentTypeFilter', 'MultiValueArrayFilter', + 'MultiValueBigNumberFilter', 'MultiValueCharFilter', 'MultiValueContentTypeFilter', 'MultiValueDateFilter', @@ -77,6 +80,11 @@ class MultiValueNumberFilter(django_filters.MultipleChoiceFilter): field_class = multivalue_field_factory(forms.IntegerField) +@extend_schema_field(OpenApiTypes.INT64) +class MultiValueBigNumberFilter(MultiValueNumberFilter): + field_class = multivalue_field_factory(BigIntegerField) + + @extend_schema_field(OpenApiTypes.DECIMAL) class MultiValueDecimalFilter(django_filters.MultipleChoiceFilter): field_class = multivalue_field_factory(forms.DecimalField) diff --git a/netbox/utilities/forms/fields/fields.py b/netbox/utilities/forms/fields/fields.py index bd8600c4c..66cd152b5 100644 --- a/netbox/utilities/forms/fields/fields.py +++ b/netbox/utilities/forms/fields/fields.py @@ -2,6 +2,7 @@ import json from django import forms from django.conf import settings +from django.db.models import BigIntegerField as BigIntegerModelField from django.db.models import Count from django.forms.fields import InvalidJSONInput from django.forms.fields import JSONField as _JSONField @@ -13,17 +14,39 @@ from utilities.forms import widgets from utilities.validators import EnhancedURLValidator __all__ = ( + 'BigIntegerField', 'ColorField', 'CommentField', 'JSONField', 'LaxURLField', 'MACAddressField', + 'PositiveBigIntegerField', 'QueryField', 'SlugField', 'TagFilterField', ) +class BigIntegerField(forms.IntegerField): + """ + An IntegerField constrained to the range of a signed 64-bit integer. + """ + def __init__(self, *args, **kwargs): + kwargs.setdefault('min_value', -BigIntegerModelField.MAX_BIGINT - 1) + kwargs.setdefault('max_value', BigIntegerModelField.MAX_BIGINT) + super().__init__(*args, **kwargs) + + +class PositiveBigIntegerField(BigIntegerField): + """ + An IntegerField constrained to the range supported by Django's + PositiveBigIntegerField model field. + """ + def __init__(self, *args, **kwargs): + kwargs.setdefault('min_value', 0) + super().__init__(*args, **kwargs) + + class QueryField(forms.CharField): """ A CharField subclass used for global search/query fields in filter forms. From 09f7df072607d5562b54357965ed64c620c9af32 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 4 Apr 2026 05:26:28 +0000 Subject: [PATCH 15/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 704 +++++++++---------- 1 file changed, 352 insertions(+), 352 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 4f23adf76..bad80b405 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-03 05:30+0000\n" +"POT-Creation-Date: 2026-04-04 05:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -119,24 +119,24 @@ msgstr "" #: netbox/circuits/filtersets.py:43 netbox/circuits/filtersets.py:223 #: netbox/circuits/filtersets.py:307 netbox/dcim/base_filtersets.py:23 -#: netbox/dcim/filtersets.py:119 netbox/dcim/filtersets.py:178 -#: netbox/dcim/filtersets.py:239 netbox/dcim/filtersets.py:372 -#: netbox/dcim/filtersets.py:518 netbox/dcim/filtersets.py:1226 -#: netbox/dcim/filtersets.py:1575 netbox/dcim/filtersets.py:1682 -#: netbox/dcim/filtersets.py:2470 netbox/dcim/filtersets.py:2726 -#: netbox/dcim/filtersets.py:2787 netbox/ipam/filtersets.py:990 +#: netbox/dcim/filtersets.py:120 netbox/dcim/filtersets.py:179 +#: netbox/dcim/filtersets.py:240 netbox/dcim/filtersets.py:373 +#: netbox/dcim/filtersets.py:519 netbox/dcim/filtersets.py:1227 +#: netbox/dcim/filtersets.py:1576 netbox/dcim/filtersets.py:1683 +#: netbox/dcim/filtersets.py:2471 netbox/dcim/filtersets.py:2727 +#: netbox/dcim/filtersets.py:2788 netbox/ipam/filtersets.py:990 #: netbox/virtualization/filtersets.py:166 netbox/vpn/filtersets.py:402 msgid "Region (ID)" msgstr "" #: netbox/circuits/filtersets.py:50 netbox/circuits/filtersets.py:230 #: netbox/circuits/filtersets.py:314 netbox/dcim/base_filtersets.py:30 -#: netbox/dcim/filtersets.py:126 netbox/dcim/filtersets.py:184 -#: netbox/dcim/filtersets.py:246 netbox/dcim/filtersets.py:379 -#: netbox/dcim/filtersets.py:525 netbox/dcim/filtersets.py:1233 -#: netbox/dcim/filtersets.py:1582 netbox/dcim/filtersets.py:1689 -#: netbox/dcim/filtersets.py:2477 netbox/dcim/filtersets.py:2733 -#: netbox/dcim/filtersets.py:2794 netbox/extras/filtersets.py:691 +#: netbox/dcim/filtersets.py:127 netbox/dcim/filtersets.py:185 +#: netbox/dcim/filtersets.py:247 netbox/dcim/filtersets.py:380 +#: netbox/dcim/filtersets.py:526 netbox/dcim/filtersets.py:1234 +#: netbox/dcim/filtersets.py:1583 netbox/dcim/filtersets.py:1690 +#: netbox/dcim/filtersets.py:2478 netbox/dcim/filtersets.py:2734 +#: netbox/dcim/filtersets.py:2795 netbox/extras/filtersets.py:691 #: netbox/ipam/filtersets.py:997 netbox/virtualization/filtersets.py:173 #: netbox/vpn/filtersets.py:397 msgid "Region (slug)" @@ -144,11 +144,11 @@ msgstr "" #: netbox/circuits/filtersets.py:56 netbox/circuits/filtersets.py:236 #: netbox/circuits/filtersets.py:320 netbox/dcim/base_filtersets.py:36 -#: netbox/dcim/filtersets.py:152 netbox/dcim/filtersets.py:252 -#: netbox/dcim/filtersets.py:385 netbox/dcim/filtersets.py:531 -#: netbox/dcim/filtersets.py:1239 netbox/dcim/filtersets.py:1588 -#: netbox/dcim/filtersets.py:1695 netbox/dcim/filtersets.py:2483 -#: netbox/dcim/filtersets.py:2739 netbox/dcim/filtersets.py:2800 +#: netbox/dcim/filtersets.py:153 netbox/dcim/filtersets.py:253 +#: netbox/dcim/filtersets.py:386 netbox/dcim/filtersets.py:532 +#: netbox/dcim/filtersets.py:1240 netbox/dcim/filtersets.py:1589 +#: netbox/dcim/filtersets.py:1696 netbox/dcim/filtersets.py:2484 +#: netbox/dcim/filtersets.py:2740 netbox/dcim/filtersets.py:2801 #: netbox/ipam/filtersets.py:261 netbox/ipam/filtersets.py:1003 #: netbox/virtualization/filtersets.py:179 msgid "Site group (ID)" @@ -156,11 +156,11 @@ msgstr "" #: netbox/circuits/filtersets.py:63 netbox/circuits/filtersets.py:243 #: netbox/circuits/filtersets.py:327 netbox/dcim/base_filtersets.py:43 -#: netbox/dcim/filtersets.py:159 netbox/dcim/filtersets.py:259 -#: netbox/dcim/filtersets.py:392 netbox/dcim/filtersets.py:538 -#: netbox/dcim/filtersets.py:1246 netbox/dcim/filtersets.py:1595 -#: netbox/dcim/filtersets.py:1702 netbox/dcim/filtersets.py:2490 -#: netbox/dcim/filtersets.py:2746 netbox/dcim/filtersets.py:2807 +#: netbox/dcim/filtersets.py:160 netbox/dcim/filtersets.py:260 +#: netbox/dcim/filtersets.py:393 netbox/dcim/filtersets.py:539 +#: netbox/dcim/filtersets.py:1247 netbox/dcim/filtersets.py:1596 +#: netbox/dcim/filtersets.py:1703 netbox/dcim/filtersets.py:2491 +#: netbox/dcim/filtersets.py:2747 netbox/dcim/filtersets.py:2808 #: netbox/extras/filtersets.py:697 netbox/ipam/filtersets.py:268 #: netbox/ipam/filtersets.py:1010 netbox/virtualization/filtersets.py:186 msgid "Site group (slug)" @@ -169,9 +169,9 @@ msgstr "" #: netbox/circuits/filtersets.py:68 netbox/circuits/forms/filtersets.py:63 #: netbox/circuits/forms/filtersets.py:191 #: netbox/circuits/forms/filtersets.py:249 -#: netbox/circuits/tables/circuits.py:125 netbox/dcim/forms/bulk_edit.py:168 -#: netbox/dcim/forms/bulk_edit.py:323 netbox/dcim/forms/bulk_edit.py:673 -#: netbox/dcim/forms/bulk_edit.py:860 netbox/dcim/forms/bulk_import.py:146 +#: netbox/circuits/tables/circuits.py:125 netbox/dcim/forms/bulk_edit.py:174 +#: netbox/dcim/forms/bulk_edit.py:329 netbox/dcim/forms/bulk_edit.py:679 +#: netbox/dcim/forms/bulk_edit.py:866 netbox/dcim/forms/bulk_import.py:146 #: netbox/dcim/forms/bulk_import.py:247 netbox/dcim/forms/bulk_import.py:349 #: netbox/dcim/forms/bulk_import.py:640 netbox/dcim/forms/bulk_import.py:1612 #: netbox/dcim/forms/bulk_import.py:1640 netbox/dcim/forms/filtersets.py:106 @@ -211,8 +211,8 @@ msgstr "" #: netbox/circuits/filtersets.py:74 netbox/circuits/filtersets.py:254 #: netbox/circuits/filtersets.py:340 netbox/dcim/base_filtersets.py:56 -#: netbox/dcim/filtersets.py:271 netbox/dcim/filtersets.py:404 -#: netbox/dcim/filtersets.py:512 netbox/extras/filtersets.py:713 +#: netbox/dcim/filtersets.py:272 netbox/dcim/filtersets.py:405 +#: netbox/dcim/filtersets.py:513 netbox/extras/filtersets.py:713 #: netbox/ipam/filtersets.py:279 netbox/ipam/filtersets.py:1022 #: netbox/virtualization/filtersets.py:198 netbox/vpn/filtersets.py:407 msgid "Site (slug)" @@ -266,21 +266,21 @@ msgid "Circuit type (slug)" msgstr "" #: netbox/circuits/filtersets.py:248 netbox/circuits/filtersets.py:333 -#: netbox/dcim/base_filtersets.py:49 netbox/dcim/filtersets.py:264 -#: netbox/dcim/filtersets.py:397 netbox/dcim/filtersets.py:505 -#: netbox/dcim/filtersets.py:1251 netbox/dcim/filtersets.py:1601 -#: netbox/dcim/filtersets.py:1708 netbox/dcim/filtersets.py:2496 -#: netbox/dcim/filtersets.py:2751 netbox/dcim/filtersets.py:2813 +#: netbox/dcim/base_filtersets.py:49 netbox/dcim/filtersets.py:265 +#: netbox/dcim/filtersets.py:398 netbox/dcim/filtersets.py:506 +#: netbox/dcim/filtersets.py:1252 netbox/dcim/filtersets.py:1602 +#: netbox/dcim/filtersets.py:1709 netbox/dcim/filtersets.py:2497 +#: netbox/dcim/filtersets.py:2752 netbox/dcim/filtersets.py:2814 #: netbox/ipam/filtersets.py:273 netbox/ipam/filtersets.py:1015 #: netbox/virtualization/filtersets.py:191 netbox/vpn/filtersets.py:412 msgid "Site (ID)" msgstr "" #: netbox/circuits/filtersets.py:258 netbox/circuits/filtersets.py:346 -#: netbox/dcim/base_filtersets.py:62 netbox/dcim/filtersets.py:289 -#: netbox/dcim/filtersets.py:410 netbox/dcim/filtersets.py:544 -#: netbox/dcim/filtersets.py:1264 netbox/dcim/filtersets.py:1614 -#: netbox/dcim/filtersets.py:1721 netbox/dcim/filtersets.py:2764 +#: netbox/dcim/base_filtersets.py:62 netbox/dcim/filtersets.py:290 +#: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:545 +#: netbox/dcim/filtersets.py:1265 netbox/dcim/filtersets.py:1615 +#: netbox/dcim/filtersets.py:1722 netbox/dcim/filtersets.py:2765 msgid "Location (ID)" msgstr "" @@ -291,8 +291,8 @@ msgstr "" #: netbox/circuits/filtersets.py:295 netbox/circuits/filtersets.py:405 #: netbox/circuits/filtersets.py:580 netbox/core/filtersets.py:91 #: netbox/core/filtersets.py:162 netbox/core/filtersets.py:188 -#: netbox/core/filtersets.py:231 netbox/dcim/filtersets.py:855 -#: netbox/dcim/filtersets.py:1676 netbox/dcim/filtersets.py:2865 +#: netbox/core/filtersets.py:231 netbox/dcim/filtersets.py:856 +#: netbox/dcim/filtersets.py:1677 netbox/dcim/filtersets.py:2866 #: netbox/extras/filtersets.py:47 netbox/extras/filtersets.py:71 #: netbox/extras/filtersets.py:102 netbox/extras/filtersets.py:144 #: netbox/extras/filtersets.py:198 netbox/extras/filtersets.py:227 @@ -333,9 +333,9 @@ msgid "Circuit" msgstr "" #: netbox/circuits/filtersets.py:353 netbox/dcim/base_filtersets.py:69 -#: netbox/dcim/filtersets.py:296 netbox/dcim/filtersets.py:417 -#: netbox/dcim/filtersets.py:551 netbox/dcim/filtersets.py:1271 -#: netbox/dcim/filtersets.py:1621 netbox/dcim/filtersets.py:1728 +#: netbox/dcim/filtersets.py:297 netbox/dcim/filtersets.py:418 +#: netbox/dcim/filtersets.py:552 netbox/dcim/filtersets.py:1272 +#: netbox/dcim/filtersets.py:1622 netbox/dcim/filtersets.py:1729 #: netbox/extras/filtersets.py:724 msgid "Location (slug)" msgstr "" @@ -356,7 +356,7 @@ msgstr "" msgid "Virtual circuit (CID)" msgstr "" -#: netbox/circuits/filtersets.py:426 netbox/dcim/filtersets.py:2252 +#: netbox/circuits/filtersets.py:426 netbox/dcim/filtersets.py:2253 msgid "Virtual circuit (ID)" msgstr "" @@ -390,8 +390,8 @@ msgstr "" msgid "Virtual circuit" msgstr "" -#: netbox/circuits/filtersets.py:628 netbox/dcim/filtersets.py:1501 -#: netbox/dcim/filtersets.py:1977 netbox/ipam/filtersets.py:668 +#: netbox/circuits/filtersets.py:628 netbox/dcim/filtersets.py:1502 +#: netbox/dcim/filtersets.py:1978 netbox/ipam/filtersets.py:668 #: netbox/vpn/filtersets.py:117 netbox/vpn/filtersets.py:445 msgid "Interface (ID)" msgstr "" @@ -399,7 +399,7 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:48 netbox/circuits/forms/filtersets.py:68 #: netbox/circuits/forms/model_forms.py:48 #: netbox/circuits/tables/providers.py:32 netbox/circuits/ui/panels.py:92 -#: netbox/dcim/forms/bulk_edit.py:134 netbox/dcim/forms/filtersets.py:225 +#: netbox/dcim/forms/bulk_edit.py:140 netbox/dcim/forms/filtersets.py:225 #: netbox/dcim/forms/model_forms.py:142 netbox/dcim/tables/sites.py:74 #: netbox/ipam/models/asns.py:155 netbox/ipam/tables/asn.py:37 #: netbox/ipam/views.py:365 netbox/netbox/navigation/menu.py:182 @@ -446,10 +446,10 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:100 #: netbox/circuits/forms/bulk_edit.py:275 #: netbox/circuits/forms/filtersets.py:123 -#: netbox/circuits/forms/filtersets.py:331 netbox/dcim/forms/bulk_edit.py:206 -#: netbox/dcim/forms/bulk_edit.py:605 netbox/dcim/forms/bulk_edit.py:803 -#: netbox/dcim/forms/bulk_edit.py:1057 netbox/dcim/forms/bulk_edit.py:1156 -#: netbox/dcim/forms/bulk_edit.py:1183 netbox/dcim/forms/bulk_edit.py:1717 +#: netbox/circuits/forms/filtersets.py:331 netbox/dcim/forms/bulk_edit.py:212 +#: netbox/dcim/forms/bulk_edit.py:611 netbox/dcim/forms/bulk_edit.py:809 +#: netbox/dcim/forms/bulk_edit.py:1063 netbox/dcim/forms/bulk_edit.py:1162 +#: netbox/dcim/forms/bulk_edit.py:1189 netbox/dcim/forms/bulk_edit.py:1723 #: netbox/dcim/forms/bulk_import.py:1484 netbox/dcim/forms/filtersets.py:1220 #: netbox/dcim/forms/filtersets.py:1545 netbox/dcim/forms/filtersets.py:1761 #: netbox/dcim/forms/filtersets.py:1780 netbox/dcim/forms/filtersets.py:1804 @@ -472,11 +472,11 @@ msgstr "" #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:37 #: netbox/core/tables/change_logging.py:33 netbox/core/tables/data.py:22 -#: netbox/core/tables/jobs.py:20 netbox/dcim/forms/bulk_edit.py:775 -#: netbox/dcim/forms/bulk_edit.py:902 netbox/dcim/forms/bulk_edit.py:968 -#: netbox/dcim/forms/bulk_edit.py:987 netbox/dcim/forms/bulk_edit.py:1010 -#: netbox/dcim/forms/bulk_edit.py:1052 netbox/dcim/forms/bulk_edit.py:1100 -#: netbox/dcim/forms/bulk_edit.py:1151 netbox/dcim/forms/bulk_edit.py:1178 +#: netbox/core/tables/jobs.py:20 netbox/dcim/forms/bulk_edit.py:781 +#: netbox/dcim/forms/bulk_edit.py:908 netbox/dcim/forms/bulk_edit.py:974 +#: netbox/dcim/forms/bulk_edit.py:993 netbox/dcim/forms/bulk_edit.py:1016 +#: netbox/dcim/forms/bulk_edit.py:1058 netbox/dcim/forms/bulk_edit.py:1106 +#: netbox/dcim/forms/bulk_edit.py:1157 netbox/dcim/forms/bulk_edit.py:1184 #: netbox/dcim/forms/bulk_import.py:205 netbox/dcim/forms/bulk_import.py:284 #: netbox/dcim/forms/bulk_import.py:813 netbox/dcim/forms/bulk_import.py:839 #: netbox/dcim/forms/bulk_import.py:865 netbox/dcim/forms/bulk_import.py:886 @@ -531,11 +531,11 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:373 netbox/core/forms/filtersets.py:42 #: netbox/core/forms/filtersets.py:90 netbox/core/tables/data.py:25 #: netbox/core/tables/jobs.py:28 netbox/core/tables/tasks.py:90 -#: netbox/dcim/forms/bulk_edit.py:107 netbox/dcim/forms/bulk_edit.py:181 -#: netbox/dcim/forms/bulk_edit.py:345 netbox/dcim/forms/bulk_edit.py:452 -#: netbox/dcim/forms/bulk_edit.py:696 netbox/dcim/forms/bulk_edit.py:755 -#: netbox/dcim/forms/bulk_edit.py:781 netbox/dcim/forms/bulk_edit.py:896 -#: netbox/dcim/forms/bulk_edit.py:1691 netbox/dcim/forms/bulk_edit.py:1735 +#: netbox/dcim/forms/bulk_edit.py:113 netbox/dcim/forms/bulk_edit.py:187 +#: netbox/dcim/forms/bulk_edit.py:351 netbox/dcim/forms/bulk_edit.py:458 +#: netbox/dcim/forms/bulk_edit.py:702 netbox/dcim/forms/bulk_edit.py:761 +#: netbox/dcim/forms/bulk_edit.py:787 netbox/dcim/forms/bulk_edit.py:902 +#: netbox/dcim/forms/bulk_edit.py:1697 netbox/dcim/forms/bulk_edit.py:1741 #: netbox/dcim/forms/bulk_import.py:103 netbox/dcim/forms/bulk_import.py:162 #: netbox/dcim/forms/bulk_import.py:265 netbox/dcim/forms/bulk_import.py:374 #: netbox/dcim/forms/bulk_import.py:605 netbox/dcim/forms/bulk_import.py:765 @@ -595,10 +595,10 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:231 #: netbox/circuits/forms/filtersets.py:138 #: netbox/circuits/forms/filtersets.py:286 -#: netbox/circuits/forms/filtersets.py:342 netbox/dcim/forms/bulk_edit.py:123 -#: netbox/dcim/forms/bulk_edit.py:187 netbox/dcim/forms/bulk_edit.py:340 -#: netbox/dcim/forms/bulk_edit.py:463 netbox/dcim/forms/bulk_edit.py:686 -#: netbox/dcim/forms/bulk_edit.py:793 netbox/dcim/forms/bulk_edit.py:1740 +#: netbox/circuits/forms/filtersets.py:342 netbox/dcim/forms/bulk_edit.py:129 +#: netbox/dcim/forms/bulk_edit.py:193 netbox/dcim/forms/bulk_edit.py:346 +#: netbox/dcim/forms/bulk_edit.py:469 netbox/dcim/forms/bulk_edit.py:692 +#: netbox/dcim/forms/bulk_edit.py:799 netbox/dcim/forms/bulk_edit.py:1746 #: netbox/dcim/forms/bulk_import.py:122 netbox/dcim/forms/bulk_import.py:167 #: netbox/dcim/forms/bulk_import.py:258 netbox/dcim/forms/bulk_import.py:379 #: netbox/dcim/forms/bulk_import.py:579 netbox/dcim/forms/bulk_import.py:1471 @@ -692,7 +692,7 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:135 #: netbox/circuits/forms/filtersets.py:325 #: netbox/circuits/forms/filtersets.py:341 netbox/core/forms/filtersets.py:78 -#: netbox/core/forms/filtersets.py:150 netbox/dcim/forms/bulk_edit.py:821 +#: netbox/core/forms/filtersets.py:150 netbox/dcim/forms/bulk_edit.py:827 #: netbox/dcim/forms/bulk_import.py:488 netbox/dcim/forms/filtersets.py:201 #: netbox/dcim/forms/filtersets.py:234 netbox/dcim/forms/filtersets.py:1014 #: netbox/dcim/forms/filtersets.py:1157 netbox/dcim/forms/filtersets.py:1287 @@ -757,11 +757,11 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:184 #: netbox/circuits/forms/bulk_edit.py:332 netbox/dcim/forms/bulk_create.py:36 -#: netbox/dcim/forms/bulk_edit.py:992 netbox/dcim/forms/bulk_edit.py:1027 -#: netbox/dcim/forms/bulk_edit.py:1071 netbox/dcim/forms/bulk_edit.py:1115 -#: netbox/dcim/forms/bulk_edit.py:1160 netbox/dcim/forms/bulk_edit.py:1187 -#: netbox/dcim/forms/bulk_edit.py:1205 netbox/dcim/forms/bulk_edit.py:1223 -#: netbox/dcim/forms/bulk_edit.py:1241 netbox/extras/forms/bulk_edit.py:43 +#: netbox/dcim/forms/bulk_edit.py:998 netbox/dcim/forms/bulk_edit.py:1033 +#: netbox/dcim/forms/bulk_edit.py:1077 netbox/dcim/forms/bulk_edit.py:1121 +#: netbox/dcim/forms/bulk_edit.py:1166 netbox/dcim/forms/bulk_edit.py:1193 +#: netbox/dcim/forms/bulk_edit.py:1211 netbox/dcim/forms/bulk_edit.py:1229 +#: netbox/dcim/forms/bulk_edit.py:1247 netbox/extras/forms/bulk_edit.py:43 #: netbox/extras/forms/bulk_edit.py:153 netbox/extras/forms/bulk_edit.py:186 #: netbox/extras/forms/bulk_edit.py:214 netbox/extras/forms/bulk_edit.py:244 #: netbox/extras/forms/bulk_edit.py:292 netbox/extras/forms/bulk_edit.py:310 @@ -810,11 +810,11 @@ msgstr "" msgid "Upstream speed (Kbps)" msgstr "" -#: netbox/circuits/forms/bulk_edit.py:210 netbox/dcim/forms/bulk_edit.py:932 -#: netbox/dcim/forms/bulk_edit.py:1298 netbox/dcim/forms/bulk_edit.py:1315 -#: netbox/dcim/forms/bulk_edit.py:1332 netbox/dcim/forms/bulk_edit.py:1353 -#: netbox/dcim/forms/bulk_edit.py:1448 netbox/dcim/forms/bulk_edit.py:1620 -#: netbox/dcim/forms/bulk_edit.py:1637 +#: netbox/circuits/forms/bulk_edit.py:210 netbox/dcim/forms/bulk_edit.py:938 +#: netbox/dcim/forms/bulk_edit.py:1304 netbox/dcim/forms/bulk_edit.py:1321 +#: netbox/dcim/forms/bulk_edit.py:1338 netbox/dcim/forms/bulk_edit.py:1359 +#: netbox/dcim/forms/bulk_edit.py:1454 netbox/dcim/forms/bulk_edit.py:1626 +#: netbox/dcim/forms/bulk_edit.py:1643 msgid "Mark connected" msgstr "" @@ -858,8 +858,8 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:326 #: netbox/circuits/forms/bulk_import.py:253 #: netbox/circuits/forms/filtersets.py:393 -#: netbox/circuits/forms/model_forms.py:389 netbox/dcim/forms/bulk_edit.py:351 -#: netbox/dcim/forms/bulk_edit.py:1245 netbox/dcim/forms/bulk_edit.py:1681 +#: netbox/circuits/forms/model_forms.py:389 netbox/dcim/forms/bulk_edit.py:357 +#: netbox/dcim/forms/bulk_edit.py:1251 netbox/dcim/forms/bulk_edit.py:1687 #: netbox/dcim/forms/bulk_import.py:270 netbox/dcim/forms/bulk_import.py:1199 #: netbox/dcim/forms/filtersets.py:404 netbox/dcim/forms/filtersets.py:879 #: netbox/dcim/forms/filtersets.py:1902 netbox/dcim/forms/filtersets.py:1942 @@ -1001,9 +1001,9 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:137 #: netbox/circuits/forms/filtersets.py:196 #: netbox/circuits/forms/filtersets.py:254 -#: netbox/circuits/tables/circuits.py:140 netbox/dcim/forms/bulk_edit.py:332 -#: netbox/dcim/forms/bulk_edit.py:439 netbox/dcim/forms/bulk_edit.py:678 -#: netbox/dcim/forms/bulk_edit.py:727 netbox/dcim/forms/bulk_edit.py:869 +#: netbox/circuits/tables/circuits.py:140 netbox/dcim/forms/bulk_edit.py:338 +#: netbox/dcim/forms/bulk_edit.py:445 netbox/dcim/forms/bulk_edit.py:684 +#: netbox/dcim/forms/bulk_edit.py:733 netbox/dcim/forms/bulk_edit.py:875 #: netbox/dcim/forms/bulk_import.py:252 netbox/dcim/forms/bulk_import.py:355 #: netbox/dcim/forms/bulk_import.py:646 netbox/dcim/forms/bulk_import.py:1618 #: netbox/dcim/forms/bulk_import.py:1652 netbox/dcim/forms/filtersets.py:114 @@ -1124,8 +1124,8 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:49 #: netbox/circuits/forms/filtersets.py:177 #: netbox/circuits/forms/filtersets.py:239 -#: netbox/circuits/tables/circuits.py:135 netbox/dcim/forms/bulk_edit.py:113 -#: netbox/dcim/forms/bulk_edit.py:307 netbox/dcim/forms/bulk_edit.py:844 +#: netbox/circuits/tables/circuits.py:135 netbox/dcim/forms/bulk_edit.py:119 +#: netbox/dcim/forms/bulk_edit.py:313 netbox/dcim/forms/bulk_edit.py:850 #: netbox/dcim/forms/bulk_import.py:108 netbox/dcim/forms/filtersets.py:92 #: netbox/dcim/forms/filtersets.py:169 netbox/dcim/forms/filtersets.py:215 #: netbox/dcim/forms/filtersets.py:242 netbox/dcim/forms/filtersets.py:371 @@ -1148,8 +1148,8 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:54 #: netbox/circuits/forms/filtersets.py:182 -#: netbox/circuits/forms/filtersets.py:244 netbox/dcim/forms/bulk_edit.py:315 -#: netbox/dcim/forms/bulk_edit.py:852 netbox/dcim/forms/filtersets.py:97 +#: netbox/circuits/forms/filtersets.py:244 netbox/dcim/forms/bulk_edit.py:321 +#: netbox/dcim/forms/bulk_edit.py:858 netbox/dcim/forms/filtersets.py:97 #: netbox/dcim/forms/filtersets.py:220 netbox/dcim/forms/filtersets.py:247 #: netbox/dcim/forms/filtersets.py:384 netbox/dcim/forms/filtersets.py:474 #: netbox/dcim/forms/filtersets.py:846 netbox/dcim/forms/filtersets.py:1064 @@ -1176,7 +1176,7 @@ msgstr "" msgid "Term Side" msgstr "" -#: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1540 +#: netbox/circuits/forms/filtersets.py:296 netbox/dcim/forms/bulk_edit.py:1546 #: netbox/extras/forms/model_forms.py:706 netbox/extras/ui/panels.py:451 #: netbox/ipam/forms/filtersets.py:154 netbox/ipam/forms/filtersets.py:642 #: netbox/ipam/forms/model_forms.py:329 netbox/ipam/ui/panels.py:121 @@ -1187,7 +1187,7 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:311 #: netbox/circuits/forms/model_forms.py:279 -#: netbox/circuits/tables/circuits.py:187 netbox/dcim/forms/bulk_edit.py:118 +#: netbox/circuits/tables/circuits.py:187 netbox/dcim/forms/bulk_edit.py:124 #: netbox/dcim/forms/bulk_import.py:115 netbox/dcim/forms/model_forms.py:135 #: netbox/dcim/tables/sites.py:69 netbox/extras/forms/filtersets.py:600 #: netbox/ipam/filtersets.py:1034 netbox/ipam/forms/bulk_edit.py:423 @@ -1659,8 +1659,8 @@ msgid "Terminations" msgstr "" #: netbox/circuits/tables/virtual_circuits.py:106 -#: netbox/dcim/forms/bulk_edit.py:726 netbox/dcim/forms/bulk_edit.py:1264 -#: netbox/dcim/forms/bulk_edit.py:1676 netbox/dcim/forms/bulk_edit.py:1730 +#: netbox/dcim/forms/bulk_edit.py:732 netbox/dcim/forms/bulk_edit.py:1270 +#: netbox/dcim/forms/bulk_edit.py:1682 netbox/dcim/forms/bulk_edit.py:1736 #: netbox/dcim/forms/bulk_import.py:747 netbox/dcim/forms/bulk_import.py:808 #: netbox/dcim/forms/bulk_import.py:834 netbox/dcim/forms/bulk_import.py:860 #: netbox/dcim/forms/bulk_import.py:881 netbox/dcim/forms/bulk_import.py:937 @@ -1945,7 +1945,7 @@ msgstr "" msgid "Data source (name)" msgstr "" -#: netbox/core/filtersets.py:200 netbox/dcim/filtersets.py:561 +#: netbox/core/filtersets.py:200 netbox/dcim/filtersets.py:562 #: netbox/extras/filtersets.py:311 netbox/extras/filtersets.py:367 #: netbox/extras/filtersets.py:415 netbox/extras/filtersets.py:439 #: netbox/extras/filtersets.py:507 netbox/users/filtersets.py:31 @@ -1959,7 +1959,7 @@ msgstr "" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:47 #: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 -#: netbox/dcim/forms/bulk_edit.py:1105 netbox/dcim/forms/bulk_edit.py:1386 +#: netbox/dcim/forms/bulk_edit.py:1111 netbox/dcim/forms/bulk_edit.py:1392 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 #: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 #: netbox/extras/forms/bulk_edit.py:127 netbox/extras/forms/bulk_edit.py:195 @@ -2070,7 +2070,7 @@ msgid "Completed before" msgstr "" #: netbox/core/forms/filtersets.py:141 netbox/core/forms/filtersets.py:170 -#: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:458 +#: netbox/core/ui/panels.py:73 netbox/dcim/forms/bulk_edit.py:464 #: netbox/dcim/forms/filtersets.py:511 netbox/dcim/forms/model_forms.py:362 #: netbox/extras/forms/filtersets.py:575 netbox/extras/forms/filtersets.py:595 #: netbox/extras/tables/tables.py:403 netbox/extras/tables/tables.py:444 @@ -2134,8 +2134,8 @@ msgid "Rack Elevations" msgstr "" #: netbox/core/forms/model_forms.py:160 netbox/dcim/choices.py:1939 -#: netbox/dcim/forms/bulk_edit.py:944 netbox/dcim/forms/bulk_edit.py:1340 -#: netbox/dcim/forms/bulk_edit.py:1361 netbox/dcim/tables/racks.py:144 +#: netbox/dcim/forms/bulk_edit.py:950 netbox/dcim/forms/bulk_edit.py:1346 +#: netbox/dcim/forms/bulk_edit.py:1367 netbox/dcim/tables/racks.py:144 #: netbox/netbox/navigation/menu.py:316 netbox/netbox/navigation/menu.py:320 msgid "Power" msgstr "" @@ -2951,10 +2951,10 @@ msgstr "" msgid "Stale" msgstr "" -#: netbox/dcim/choices.py:170 netbox/dcim/forms/bulk_edit.py:79 -#: netbox/dcim/forms/bulk_edit.py:93 netbox/dcim/forms/bulk_edit.py:173 -#: netbox/dcim/forms/bulk_edit.py:600 netbox/dcim/forms/bulk_edit.py:628 -#: netbox/dcim/forms/bulk_edit.py:1391 netbox/dcim/forms/bulk_import.py:75 +#: netbox/dcim/choices.py:170 netbox/dcim/forms/bulk_edit.py:85 +#: netbox/dcim/forms/bulk_edit.py:99 netbox/dcim/forms/bulk_edit.py:179 +#: netbox/dcim/forms/bulk_edit.py:606 netbox/dcim/forms/bulk_edit.py:634 +#: netbox/dcim/forms/bulk_edit.py:1397 netbox/dcim/forms/bulk_import.py:75 #: netbox/dcim/forms/bulk_import.py:89 netbox/dcim/forms/bulk_import.py:152 #: netbox/dcim/forms/bulk_import.py:514 netbox/dcim/forms/bulk_import.py:540 #: netbox/dcim/forms/bulk_import.py:666 netbox/dcim/forms/bulk_import.py:942 @@ -3086,7 +3086,7 @@ msgid "Virtual" msgstr "" #: netbox/dcim/choices.py:885 netbox/dcim/choices.py:1378 -#: netbox/dcim/forms/bulk_edit.py:1546 netbox/dcim/forms/filtersets.py:1577 +#: netbox/dcim/forms/bulk_edit.py:1552 netbox/dcim/forms/filtersets.py:1577 #: netbox/dcim/forms/filtersets.py:1703 netbox/dcim/forms/model_forms.py:1151 #: netbox/dcim/forms/model_forms.py:1615 netbox/dcim/ui/panels.py:555 #: netbox/netbox/navigation/menu.py:150 netbox/netbox/navigation/menu.py:154 @@ -3097,7 +3097,7 @@ msgstr "" msgid "Virtual interfaces" msgstr "" -#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1399 +#: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1405 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 #: netbox/dcim/tables/devices.py:741 #: netbox/virtualization/forms/bulk_edit.py:186 @@ -3442,273 +3442,273 @@ msgstr "" msgid "Invalid WWN format: {value}" msgstr "" -#: netbox/dcim/filtersets.py:106 +#: netbox/dcim/filtersets.py:107 msgid "Parent region (ID)" msgstr "" -#: netbox/dcim/filtersets.py:113 +#: netbox/dcim/filtersets.py:114 msgid "Parent region (slug)" msgstr "" -#: netbox/dcim/filtersets.py:139 +#: netbox/dcim/filtersets.py:140 msgid "Parent site group (ID)" msgstr "" -#: netbox/dcim/filtersets.py:146 +#: netbox/dcim/filtersets.py:147 msgid "Parent site group (slug)" msgstr "" -#: netbox/dcim/filtersets.py:190 netbox/extras/filtersets.py:450 +#: netbox/dcim/filtersets.py:191 netbox/extras/filtersets.py:450 #: netbox/ipam/filtersets.py:884 netbox/ipam/filtersets.py:1027 #: netbox/users/filtersets.py:285 msgid "Group (ID)" msgstr "" -#: netbox/dcim/filtersets.py:196 +#: netbox/dcim/filtersets.py:197 msgid "Group (slug)" msgstr "" -#: netbox/dcim/filtersets.py:202 netbox/dcim/filtersets.py:207 +#: netbox/dcim/filtersets.py:203 netbox/dcim/filtersets.py:208 msgid "AS (ID)" msgstr "" -#: netbox/dcim/filtersets.py:276 +#: netbox/dcim/filtersets.py:277 msgid "Parent location (ID)" msgstr "" -#: netbox/dcim/filtersets.py:283 +#: netbox/dcim/filtersets.py:284 msgid "Parent location (slug)" msgstr "" -#: netbox/dcim/filtersets.py:328 netbox/dcim/filtersets.py:423 -#: netbox/dcim/filtersets.py:603 netbox/dcim/filtersets.py:776 -#: netbox/dcim/filtersets.py:1018 netbox/dcim/filtersets.py:1126 -#: netbox/dcim/filtersets.py:1170 netbox/dcim/filtersets.py:1543 -#: netbox/dcim/filtersets.py:2395 +#: netbox/dcim/filtersets.py:329 netbox/dcim/filtersets.py:424 +#: netbox/dcim/filtersets.py:604 netbox/dcim/filtersets.py:777 +#: netbox/dcim/filtersets.py:1019 netbox/dcim/filtersets.py:1127 +#: netbox/dcim/filtersets.py:1171 netbox/dcim/filtersets.py:1544 +#: netbox/dcim/filtersets.py:2396 msgid "Manufacturer (ID)" msgstr "" -#: netbox/dcim/filtersets.py:335 netbox/dcim/filtersets.py:430 -#: netbox/dcim/filtersets.py:610 netbox/dcim/filtersets.py:783 -#: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1133 -#: netbox/dcim/filtersets.py:1177 netbox/dcim/filtersets.py:1550 -#: netbox/dcim/filtersets.py:2402 +#: netbox/dcim/filtersets.py:336 netbox/dcim/filtersets.py:431 +#: netbox/dcim/filtersets.py:611 netbox/dcim/filtersets.py:784 +#: netbox/dcim/filtersets.py:1026 netbox/dcim/filtersets.py:1134 +#: netbox/dcim/filtersets.py:1178 netbox/dcim/filtersets.py:1551 +#: netbox/dcim/filtersets.py:2403 msgid "Manufacturer (slug)" msgstr "" -#: netbox/dcim/filtersets.py:437 +#: netbox/dcim/filtersets.py:438 msgid "Rack type (slug)" msgstr "" -#: netbox/dcim/filtersets.py:442 +#: netbox/dcim/filtersets.py:443 msgid "Rack type (ID)" msgstr "" -#: netbox/dcim/filtersets.py:460 netbox/dcim/filtersets.py:1030 -#: netbox/dcim/filtersets.py:1195 netbox/dcim/filtersets.py:2407 +#: netbox/dcim/filtersets.py:461 netbox/dcim/filtersets.py:1031 +#: netbox/dcim/filtersets.py:1196 netbox/dcim/filtersets.py:2408 #: netbox/ipam/filtersets.py:406 netbox/ipam/filtersets.py:523 #: netbox/ipam/filtersets.py:1039 netbox/virtualization/filtersets.py:206 msgid "Role (ID)" msgstr "" -#: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1037 -#: netbox/dcim/filtersets.py:1202 netbox/dcim/filtersets.py:2414 +#: netbox/dcim/filtersets.py:468 netbox/dcim/filtersets.py:1038 +#: netbox/dcim/filtersets.py:1203 netbox/dcim/filtersets.py:2415 #: netbox/extras/filtersets.py:740 netbox/ipam/filtersets.py:413 #: netbox/ipam/filtersets.py:530 netbox/ipam/filtersets.py:1046 #: netbox/virtualization/filtersets.py:213 msgid "Role (slug)" msgstr "" -#: netbox/dcim/filtersets.py:499 netbox/dcim/filtersets.py:1277 -#: netbox/dcim/filtersets.py:1627 netbox/dcim/filtersets.py:1734 -#: netbox/dcim/filtersets.py:2831 +#: netbox/dcim/filtersets.py:500 netbox/dcim/filtersets.py:1278 +#: netbox/dcim/filtersets.py:1628 netbox/dcim/filtersets.py:1735 +#: netbox/dcim/filtersets.py:2832 msgid "Rack (ID)" msgstr "" -#: netbox/dcim/filtersets.py:568 netbox/extras/filtersets.py:318 +#: netbox/dcim/filtersets.py:569 netbox/extras/filtersets.py:318 #: netbox/extras/filtersets.py:374 netbox/extras/filtersets.py:422 #: netbox/extras/filtersets.py:445 netbox/extras/filtersets.py:514 #: netbox/users/filtersets.py:142 netbox/users/filtersets.py:223 msgid "User (name)" msgstr "" -#: netbox/dcim/filtersets.py:616 +#: netbox/dcim/filtersets.py:617 msgid "Default platform (ID)" msgstr "" -#: netbox/dcim/filtersets.py:623 +#: netbox/dcim/filtersets.py:624 msgid "Default platform (slug)" msgstr "" -#: netbox/dcim/filtersets.py:626 netbox/dcim/forms/filtersets.py:574 +#: netbox/dcim/filtersets.py:627 netbox/dcim/forms/filtersets.py:574 msgid "Has a front image" msgstr "" -#: netbox/dcim/filtersets.py:630 netbox/dcim/forms/filtersets.py:581 +#: netbox/dcim/filtersets.py:631 netbox/dcim/forms/filtersets.py:581 msgid "Has a rear image" msgstr "" -#: netbox/dcim/filtersets.py:635 netbox/dcim/filtersets.py:787 -#: netbox/dcim/filtersets.py:1353 netbox/dcim/forms/filtersets.py:588 +#: netbox/dcim/filtersets.py:636 netbox/dcim/filtersets.py:788 +#: netbox/dcim/filtersets.py:1354 netbox/dcim/forms/filtersets.py:588 #: netbox/dcim/forms/filtersets.py:708 netbox/dcim/forms/filtersets.py:950 msgid "Has console ports" msgstr "" -#: netbox/dcim/filtersets.py:639 netbox/dcim/filtersets.py:791 -#: netbox/dcim/filtersets.py:1357 netbox/dcim/forms/filtersets.py:595 +#: netbox/dcim/filtersets.py:640 netbox/dcim/filtersets.py:792 +#: netbox/dcim/filtersets.py:1358 netbox/dcim/forms/filtersets.py:595 #: netbox/dcim/forms/filtersets.py:715 netbox/dcim/forms/filtersets.py:957 msgid "Has console server ports" msgstr "" -#: netbox/dcim/filtersets.py:643 netbox/dcim/filtersets.py:795 -#: netbox/dcim/filtersets.py:1361 netbox/dcim/forms/filtersets.py:602 +#: netbox/dcim/filtersets.py:644 netbox/dcim/filtersets.py:796 +#: netbox/dcim/filtersets.py:1362 netbox/dcim/forms/filtersets.py:602 #: netbox/dcim/forms/filtersets.py:722 netbox/dcim/forms/filtersets.py:964 msgid "Has power ports" msgstr "" -#: netbox/dcim/filtersets.py:647 netbox/dcim/filtersets.py:799 -#: netbox/dcim/filtersets.py:1365 netbox/dcim/forms/filtersets.py:609 +#: netbox/dcim/filtersets.py:648 netbox/dcim/filtersets.py:800 +#: netbox/dcim/filtersets.py:1366 netbox/dcim/forms/filtersets.py:609 #: netbox/dcim/forms/filtersets.py:729 netbox/dcim/forms/filtersets.py:971 msgid "Has power outlets" msgstr "" -#: netbox/dcim/filtersets.py:651 netbox/dcim/filtersets.py:803 -#: netbox/dcim/filtersets.py:1369 netbox/dcim/forms/filtersets.py:616 +#: netbox/dcim/filtersets.py:652 netbox/dcim/filtersets.py:804 +#: netbox/dcim/filtersets.py:1370 netbox/dcim/forms/filtersets.py:616 #: netbox/dcim/forms/filtersets.py:736 netbox/dcim/forms/filtersets.py:978 msgid "Has interfaces" msgstr "" -#: netbox/dcim/filtersets.py:655 netbox/dcim/filtersets.py:807 -#: netbox/dcim/filtersets.py:1373 netbox/dcim/forms/filtersets.py:623 +#: netbox/dcim/filtersets.py:656 netbox/dcim/filtersets.py:808 +#: netbox/dcim/filtersets.py:1374 netbox/dcim/forms/filtersets.py:623 #: netbox/dcim/forms/filtersets.py:743 netbox/dcim/forms/filtersets.py:985 msgid "Has pass-through ports" msgstr "" -#: netbox/dcim/filtersets.py:659 netbox/dcim/filtersets.py:1377 +#: netbox/dcim/filtersets.py:660 netbox/dcim/filtersets.py:1378 #: netbox/dcim/forms/filtersets.py:637 msgid "Has module bays" msgstr "" -#: netbox/dcim/filtersets.py:663 netbox/dcim/filtersets.py:1381 +#: netbox/dcim/filtersets.py:664 netbox/dcim/filtersets.py:1382 #: netbox/dcim/forms/filtersets.py:630 msgid "Has device bays" msgstr "" -#: netbox/dcim/filtersets.py:667 netbox/dcim/forms/filtersets.py:644 +#: netbox/dcim/filtersets.py:668 netbox/dcim/forms/filtersets.py:644 msgid "Has inventory items" msgstr "" -#: netbox/dcim/filtersets.py:764 netbox/extras/filtersets.py:673 +#: netbox/dcim/filtersets.py:765 netbox/extras/filtersets.py:673 msgid "Profile (ID)" msgstr "" -#: netbox/dcim/filtersets.py:771 netbox/extras/filtersets.py:680 +#: netbox/dcim/filtersets.py:772 netbox/extras/filtersets.py:680 msgid "Profile (name)" msgstr "" -#: netbox/dcim/filtersets.py:861 netbox/dcim/filtersets.py:1189 -#: netbox/dcim/filtersets.py:1759 +#: netbox/dcim/filtersets.py:862 netbox/dcim/filtersets.py:1190 +#: netbox/dcim/filtersets.py:1760 msgid "Device type (ID)" msgstr "" -#: netbox/dcim/filtersets.py:878 netbox/dcim/filtersets.py:1556 +#: netbox/dcim/filtersets.py:879 netbox/dcim/filtersets.py:1557 msgid "Module type (ID)" msgstr "" -#: netbox/dcim/filtersets.py:916 netbox/dcim/filtersets.py:1928 +#: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:1929 msgid "Power port (ID)" msgstr "" -#: netbox/dcim/filtersets.py:965 netbox/dcim/filtersets.py:2314 +#: netbox/dcim/filtersets.py:966 netbox/dcim/filtersets.py:2315 msgid "Rear port (ID)" msgstr "" -#: netbox/dcim/filtersets.py:984 netbox/dcim/filtersets.py:2336 +#: netbox/dcim/filtersets.py:985 netbox/dcim/filtersets.py:2337 msgid "Front port (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1013 netbox/dcim/filtersets.py:2390 +#: netbox/dcim/filtersets.py:1014 netbox/dcim/filtersets.py:2391 msgid "Parent inventory item (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1062 netbox/dcim/filtersets.py:1142 -#: netbox/dcim/filtersets.py:1349 netbox/virtualization/filtersets.py:239 +#: netbox/dcim/filtersets.py:1063 netbox/dcim/filtersets.py:1143 +#: netbox/dcim/filtersets.py:1350 netbox/virtualization/filtersets.py:239 msgid "Config template (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1067 netbox/dcim/filtersets.py:1080 +#: netbox/dcim/filtersets.py:1068 netbox/dcim/filtersets.py:1081 msgid "Parent device role (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1074 netbox/dcim/filtersets.py:1087 +#: netbox/dcim/filtersets.py:1075 netbox/dcim/filtersets.py:1088 msgid "Parent device role (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1100 +#: netbox/dcim/filtersets.py:1101 msgid "Immediate parent platform (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1107 +#: netbox/dcim/filtersets.py:1108 msgid "Immediate parent platform (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1113 +#: netbox/dcim/filtersets.py:1114 msgid "Parent platform (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1120 +#: netbox/dcim/filtersets.py:1121 msgid "Parent platform (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1184 +#: netbox/dcim/filtersets.py:1185 msgid "Device type (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1207 +#: netbox/dcim/filtersets.py:1208 msgid "Parent Device (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1213 netbox/virtualization/filtersets.py:219 +#: netbox/dcim/filtersets.py:1214 netbox/virtualization/filtersets.py:219 msgid "Platform (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1220 netbox/extras/filtersets.py:751 +#: netbox/dcim/filtersets.py:1221 netbox/extras/filtersets.py:751 #: netbox/virtualization/filtersets.py:226 msgid "Platform (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1258 netbox/dcim/filtersets.py:1608 -#: netbox/dcim/filtersets.py:1715 netbox/dcim/filtersets.py:2503 -#: netbox/dcim/filtersets.py:2758 netbox/dcim/filtersets.py:2820 +#: netbox/dcim/filtersets.py:1259 netbox/dcim/filtersets.py:1609 +#: netbox/dcim/filtersets.py:1716 netbox/dcim/filtersets.py:2504 +#: netbox/dcim/filtersets.py:2759 netbox/dcim/filtersets.py:2821 msgid "Site name (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1282 +#: netbox/dcim/filtersets.py:1283 msgid "Parent bay (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1287 +#: netbox/dcim/filtersets.py:1288 msgid "VM cluster (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1294 netbox/extras/filtersets.py:773 +#: netbox/dcim/filtersets.py:1295 netbox/extras/filtersets.py:773 #: netbox/virtualization/filtersets.py:123 msgid "Cluster group (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1300 netbox/virtualization/filtersets.py:116 +#: netbox/dcim/filtersets.py:1301 netbox/virtualization/filtersets.py:116 msgid "Cluster group (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1307 +#: netbox/dcim/filtersets.py:1308 msgid "Device model (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1319 netbox/dcim/forms/bulk_edit.py:506 +#: netbox/dcim/filtersets.py:1320 netbox/dcim/forms/bulk_edit.py:512 msgid "Is full depth" msgstr "" -#: netbox/dcim/filtersets.py:1323 netbox/dcim/forms/filtersets.py:920 +#: netbox/dcim/filtersets.py:1324 netbox/dcim/forms/filtersets.py:920 #: netbox/dcim/forms/filtersets.py:1634 netbox/dcim/forms/filtersets.py:1979 #: netbox/dcim/forms/model_forms.py:1941 netbox/dcim/models/devices.py:1313 #: netbox/dcim/models/devices.py:1336 netbox/dcim/ui/panels.py:366 @@ -3719,84 +3719,84 @@ msgstr "" msgid "MAC address" msgstr "" -#: netbox/dcim/filtersets.py:1330 netbox/dcim/filtersets.py:1509 +#: netbox/dcim/filtersets.py:1331 netbox/dcim/filtersets.py:1510 #: netbox/dcim/forms/filtersets.py:929 netbox/dcim/forms/filtersets.py:1030 #: netbox/virtualization/filtersets.py:234 #: netbox/virtualization/forms/filtersets.py:197 msgid "Has a primary IP" msgstr "" -#: netbox/dcim/filtersets.py:1334 +#: netbox/dcim/filtersets.py:1335 msgid "Has an out-of-band IP" msgstr "" -#: netbox/dcim/filtersets.py:1340 +#: netbox/dcim/filtersets.py:1341 msgid "Virtual chassis (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1344 +#: netbox/dcim/filtersets.py:1345 msgid "Is a virtual chassis member" msgstr "" -#: netbox/dcim/filtersets.py:1387 +#: netbox/dcim/filtersets.py:1388 msgid "OOB IP (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1391 +#: netbox/dcim/filtersets.py:1392 msgid "Has virtual device context" msgstr "" -#: netbox/dcim/filtersets.py:1490 +#: netbox/dcim/filtersets.py:1491 msgid "VDC (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1496 +#: netbox/dcim/filtersets.py:1497 msgid "Device model" msgstr "" -#: netbox/dcim/filtersets.py:1563 +#: netbox/dcim/filtersets.py:1564 msgid "Module type (model)" msgstr "" -#: netbox/dcim/filtersets.py:1569 +#: netbox/dcim/filtersets.py:1570 msgid "Module bay (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1634 netbox/dcim/filtersets.py:1741 +#: netbox/dcim/filtersets.py:1635 netbox/dcim/filtersets.py:1742 msgid "Rack (name)" msgstr "" -#: netbox/dcim/filtersets.py:1639 netbox/dcim/filtersets.py:1746 -#: netbox/dcim/filtersets.py:1956 netbox/ipam/filtersets.py:647 +#: netbox/dcim/filtersets.py:1640 netbox/dcim/filtersets.py:1747 +#: netbox/dcim/filtersets.py:1957 netbox/ipam/filtersets.py:647 #: netbox/ipam/filtersets.py:894 netbox/ipam/filtersets.py:1228 #: netbox/virtualization/filtersets.py:153 netbox/vpn/filtersets.py:423 msgid "Device (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1646 netbox/dcim/filtersets.py:1753 -#: netbox/dcim/filtersets.py:1951 netbox/ipam/filtersets.py:642 +#: netbox/dcim/filtersets.py:1647 netbox/dcim/filtersets.py:1754 +#: netbox/dcim/filtersets.py:1952 netbox/ipam/filtersets.py:642 #: netbox/ipam/filtersets.py:889 netbox/ipam/filtersets.py:1223 #: netbox/vpn/filtersets.py:418 msgid "Device (name)" msgstr "" -#: netbox/dcim/filtersets.py:1766 +#: netbox/dcim/filtersets.py:1767 msgid "Device type (model)" msgstr "" -#: netbox/dcim/filtersets.py:1772 +#: netbox/dcim/filtersets.py:1773 msgid "Device role (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1779 +#: netbox/dcim/filtersets.py:1780 msgid "Device role (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1785 +#: netbox/dcim/filtersets.py:1786 msgid "Virtual Chassis (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1792 netbox/dcim/forms/filtersets.py:128 +#: netbox/dcim/filtersets.py:1793 netbox/dcim/forms/filtersets.py:128 #: netbox/dcim/forms/object_create.py:329 netbox/dcim/tables/devices.py:215 #: netbox/netbox/navigation/menu.py:82 #: netbox/templates/dcim/device_edit.html:95 @@ -3804,77 +3804,77 @@ msgstr "" msgid "Virtual Chassis" msgstr "" -#: netbox/dcim/filtersets.py:1803 netbox/dcim/filtersets.py:2509 +#: netbox/dcim/filtersets.py:1804 netbox/dcim/filtersets.py:2510 #: netbox/tenancy/filtersets.py:271 msgid "Tenant (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1810 netbox/dcim/filtersets.py:2516 +#: netbox/dcim/filtersets.py:1811 netbox/dcim/filtersets.py:2517 #: netbox/extras/filtersets.py:800 netbox/tenancy/filtersets.py:278 msgid "Tenant (slug)" msgstr "" -#: netbox/dcim/filtersets.py:1831 +#: netbox/dcim/filtersets.py:1832 msgid "Module (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1839 +#: netbox/dcim/filtersets.py:1840 msgid "Cable (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1961 netbox/ipam/filtersets.py:652 +#: netbox/dcim/filtersets.py:1962 netbox/ipam/filtersets.py:652 #: netbox/ipam/filtersets.py:899 netbox/ipam/filtersets.py:1233 #: netbox/vpn/filtersets.py:429 msgid "Virtual machine (name)" msgstr "" -#: netbox/dcim/filtersets.py:1966 netbox/ipam/filtersets.py:657 +#: netbox/dcim/filtersets.py:1967 netbox/ipam/filtersets.py:657 #: netbox/ipam/filtersets.py:904 netbox/ipam/filtersets.py:1238 #: netbox/virtualization/filtersets.py:295 #: netbox/virtualization/filtersets.py:353 netbox/vpn/filtersets.py:434 msgid "Virtual machine (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1972 netbox/ipam/filtersets.py:663 +#: netbox/dcim/filtersets.py:1973 netbox/ipam/filtersets.py:663 #: netbox/vpn/filtersets.py:112 netbox/vpn/filtersets.py:440 msgid "Interface (name)" msgstr "" -#: netbox/dcim/filtersets.py:1983 netbox/ipam/filtersets.py:674 +#: netbox/dcim/filtersets.py:1984 netbox/ipam/filtersets.py:674 #: netbox/vpn/filtersets.py:123 netbox/vpn/filtersets.py:451 msgid "VM interface (name)" msgstr "" -#: netbox/dcim/filtersets.py:1988 netbox/ipam/filtersets.py:679 +#: netbox/dcim/filtersets.py:1989 netbox/ipam/filtersets.py:679 #: netbox/vpn/filtersets.py:128 msgid "VM interface (ID)" msgstr "" -#: netbox/dcim/filtersets.py:1992 netbox/ipam/filtersets.py:692 +#: netbox/dcim/filtersets.py:1993 netbox/ipam/filtersets.py:692 msgid "Is assigned" msgstr "" -#: netbox/dcim/filtersets.py:1996 netbox/dcim/forms/bulk_import.py:1337 +#: netbox/dcim/filtersets.py:1997 netbox/dcim/forms/bulk_import.py:1337 #: netbox/ipam/forms/bulk_import.py:337 msgid "Is primary" msgstr "" -#: netbox/dcim/filtersets.py:2060 +#: netbox/dcim/filtersets.py:2061 #: netbox/virtualization/forms/model_forms.py:392 #: netbox/virtualization/ui/panels.py:62 msgid "802.1Q Mode" msgstr "" -#: netbox/dcim/filtersets.py:2064 netbox/ipam/forms/bulk_import.py:195 +#: netbox/dcim/filtersets.py:2065 netbox/ipam/forms/bulk_import.py:195 #: netbox/vpn/forms/bulk_import.py:313 msgid "Assigned VLAN" msgstr "" -#: netbox/dcim/filtersets.py:2068 +#: netbox/dcim/filtersets.py:2069 msgid "Assigned VID" msgstr "" -#: netbox/dcim/filtersets.py:2074 netbox/dcim/forms/bulk_edit.py:1512 +#: netbox/dcim/filtersets.py:2075 netbox/dcim/forms/bulk_edit.py:1518 #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 #: netbox/dcim/models/device_components.py:899 @@ -3905,18 +3905,18 @@ msgstr "" msgid "VRF" msgstr "" -#: netbox/dcim/filtersets.py:2081 netbox/ipam/filtersets.py:367 +#: netbox/dcim/filtersets.py:2082 netbox/ipam/filtersets.py:367 #: netbox/ipam/filtersets.py:378 netbox/ipam/filtersets.py:518 #: netbox/ipam/filtersets.py:625 netbox/ipam/filtersets.py:636 msgid "VRF (RD)" msgstr "" -#: netbox/dcim/filtersets.py:2086 netbox/ipam/filtersets.py:1081 +#: netbox/dcim/filtersets.py:2087 netbox/ipam/filtersets.py:1081 #: netbox/vpn/filtersets.py:385 msgid "L2VPN (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2092 netbox/dcim/forms/filtersets.py:1692 +#: netbox/dcim/filtersets.py:2093 netbox/dcim/forms/filtersets.py:1692 #: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 @@ -3928,11 +3928,11 @@ msgstr "" msgid "L2VPN" msgstr "" -#: netbox/dcim/filtersets.py:2098 netbox/ipam/filtersets.py:1167 +#: netbox/dcim/filtersets.py:2099 netbox/ipam/filtersets.py:1167 msgid "VLAN Translation Policy (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2105 netbox/dcim/forms/filtersets.py:1658 +#: netbox/dcim/filtersets.py:2106 netbox/dcim/forms/filtersets.py:1658 #: netbox/dcim/forms/model_forms.py:1598 #: netbox/dcim/models/device_components.py:700 #: netbox/ipam/forms/filtersets.py:531 netbox/ipam/forms/model_forms.py:703 @@ -3942,103 +3942,103 @@ msgstr "" msgid "VLAN Translation Policy" msgstr "" -#: netbox/dcim/filtersets.py:2139 +#: netbox/dcim/filtersets.py:2140 msgid "Virtual Chassis Interfaces for Device when device is master" msgstr "" -#: netbox/dcim/filtersets.py:2144 +#: netbox/dcim/filtersets.py:2145 msgid "Virtual Chassis Interfaces for Device when device is master (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2149 +#: netbox/dcim/filtersets.py:2150 msgid "Virtual Chassis Interfaces for Device" msgstr "" -#: netbox/dcim/filtersets.py:2154 +#: netbox/dcim/filtersets.py:2155 msgid "Virtual Chassis Interfaces for Device (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2158 +#: netbox/dcim/filtersets.py:2159 msgid "Kind of interface" msgstr "" -#: netbox/dcim/filtersets.py:2164 netbox/virtualization/filtersets.py:308 +#: netbox/dcim/filtersets.py:2165 netbox/virtualization/filtersets.py:308 msgid "Parent interface (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2170 netbox/virtualization/filtersets.py:314 +#: netbox/dcim/filtersets.py:2171 netbox/virtualization/filtersets.py:314 msgid "Bridged interface (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2176 +#: netbox/dcim/filtersets.py:2177 msgid "LAG interface (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2185 netbox/dcim/tables/devices.py:1194 +#: netbox/dcim/filtersets.py:2186 netbox/dcim/tables/devices.py:1194 #: netbox/virtualization/ui/panels.py:71 msgid "MAC Address" msgstr "" -#: netbox/dcim/filtersets.py:2191 netbox/virtualization/filtersets.py:324 +#: netbox/dcim/filtersets.py:2192 netbox/virtualization/filtersets.py:324 msgid "Primary MAC address (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2198 netbox/dcim/forms/model_forms.py:1585 +#: netbox/dcim/filtersets.py:2199 netbox/dcim/forms/model_forms.py:1585 #: netbox/virtualization/filtersets.py:331 #: netbox/virtualization/forms/model_forms.py:308 msgid "Primary MAC address" msgstr "" -#: netbox/dcim/filtersets.py:2225 netbox/dcim/filtersets.py:2237 +#: netbox/dcim/filtersets.py:2226 netbox/dcim/filtersets.py:2238 #: netbox/dcim/forms/filtersets.py:1594 netbox/dcim/forms/model_forms.py:1921 msgid "Virtual Device Context" msgstr "" -#: netbox/dcim/filtersets.py:2231 +#: netbox/dcim/filtersets.py:2232 msgid "Virtual Device Context (Identifier)" msgstr "" -#: netbox/dcim/filtersets.py:2242 netbox/wireless/forms/model_forms.py:54 +#: netbox/dcim/filtersets.py:2243 netbox/wireless/forms/model_forms.py:54 msgid "Wireless LAN" msgstr "" -#: netbox/dcim/filtersets.py:2247 netbox/dcim/tables/devices.py:654 +#: netbox/dcim/filtersets.py:2248 netbox/dcim/tables/devices.py:654 msgid "Wireless link" msgstr "" -#: netbox/dcim/filtersets.py:2257 +#: netbox/dcim/filtersets.py:2258 msgid "Virtual circuit termination (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2352 +#: netbox/dcim/filtersets.py:2353 msgid "Parent module bay (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2357 +#: netbox/dcim/filtersets.py:2358 msgid "Installed module (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2370 +#: netbox/dcim/filtersets.py:2371 msgid "Installed device (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2377 +#: netbox/dcim/filtersets.py:2378 msgid "Installed device (name)" msgstr "" -#: netbox/dcim/filtersets.py:2457 +#: netbox/dcim/filtersets.py:2458 msgid "Master (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2464 +#: netbox/dcim/filtersets.py:2465 msgid "Master (name)" msgstr "" -#: netbox/dcim/filtersets.py:2553 netbox/dcim/forms/filtersets.py:1233 +#: netbox/dcim/filtersets.py:2554 netbox/dcim/forms/filtersets.py:1233 msgid "Unterminated" msgstr "" -#: netbox/dcim/filtersets.py:2825 +#: netbox/dcim/filtersets.py:2826 msgid "Power panel (ID)" msgstr "" @@ -4052,7 +4052,7 @@ msgstr "" #: netbox/templates/circuits/panels/circuit_circuit_termination.html:29 #: netbox/templates/generic/bulk_edit.html:78 #: netbox/templates/inc/panels/tags.html:5 -#: netbox/utilities/forms/fields/fields.py:101 +#: netbox/utilities/forms/fields/fields.py:124 msgid "Tags" msgstr "" @@ -4073,32 +4073,32 @@ msgid "" "created.)" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:128 netbox/dcim/forms/bulk_edit.py:192 +#: netbox/dcim/forms/bulk_edit.py:134 netbox/dcim/forms/bulk_edit.py:198 #: netbox/dcim/forms/filtersets.py:273 msgid "Facility" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:138 +#: netbox/dcim/forms/bulk_edit.py:144 msgid "Contact name" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:143 +#: netbox/dcim/forms/bulk_edit.py:149 msgid "Contact phone" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:149 +#: netbox/dcim/forms/bulk_edit.py:155 msgid "Contact E-mail" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:152 netbox/dcim/forms/bulk_import.py:138 +#: netbox/dcim/forms/bulk_edit.py:158 netbox/dcim/forms/bulk_import.py:138 #: netbox/dcim/forms/model_forms.py:157 msgid "Time zone" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:219 netbox/dcim/forms/bulk_edit.py:485 -#: netbox/dcim/forms/bulk_edit.py:561 netbox/dcim/forms/bulk_edit.py:633 -#: netbox/dcim/forms/bulk_edit.py:652 netbox/dcim/forms/bulk_edit.py:739 -#: netbox/dcim/forms/bulk_edit.py:1250 netbox/dcim/forms/bulk_edit.py:1686 +#: netbox/dcim/forms/bulk_edit.py:225 netbox/dcim/forms/bulk_edit.py:491 +#: netbox/dcim/forms/bulk_edit.py:567 netbox/dcim/forms/bulk_edit.py:639 +#: netbox/dcim/forms/bulk_edit.py:658 netbox/dcim/forms/bulk_edit.py:745 +#: netbox/dcim/forms/bulk_edit.py:1256 netbox/dcim/forms/bulk_edit.py:1692 #: netbox/dcim/forms/bulk_import.py:199 netbox/dcim/forms/bulk_import.py:416 #: netbox/dcim/forms/bulk_import.py:466 netbox/dcim/forms/bulk_import.py:550 #: netbox/dcim/forms/bulk_import.py:586 netbox/dcim/forms/bulk_import.py:1205 @@ -4120,55 +4120,55 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:224 netbox/dcim/forms/bulk_edit.py:371 +#: netbox/dcim/forms/bulk_edit.py:230 netbox/dcim/forms/bulk_edit.py:377 #: netbox/dcim/forms/bulk_import.py:208 netbox/dcim/forms/bulk_import.py:287 #: netbox/dcim/forms/filtersets.py:290 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:6 msgid "Form factor" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:229 netbox/dcim/forms/bulk_edit.py:376 +#: netbox/dcim/forms/bulk_edit.py:235 netbox/dcim/forms/bulk_edit.py:382 #: netbox/dcim/forms/bulk_import.py:216 netbox/dcim/forms/bulk_import.py:290 #: netbox/dcim/forms/filtersets.py:295 #: netbox/templates/dcim/inc/panels/racktype_dimensions.html:10 msgid "Width" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:235 netbox/dcim/forms/bulk_edit.py:382 +#: netbox/dcim/forms/bulk_edit.py:241 netbox/dcim/forms/bulk_edit.py:388 #: netbox/dcim/forms/bulk_import.py:297 msgid "Height (U)" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:244 netbox/dcim/forms/bulk_edit.py:387 +#: netbox/dcim/forms/bulk_edit.py:250 netbox/dcim/forms/bulk_edit.py:393 #: netbox/dcim/forms/filtersets.py:309 netbox/dcim/ui/panels.py:41 msgid "Descending units" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:247 netbox/dcim/forms/bulk_edit.py:390 +#: netbox/dcim/forms/bulk_edit.py:253 netbox/dcim/forms/bulk_edit.py:396 msgid "Outer width" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:252 netbox/dcim/forms/bulk_edit.py:395 +#: netbox/dcim/forms/bulk_edit.py:258 netbox/dcim/forms/bulk_edit.py:401 msgid "Outer height" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:257 netbox/dcim/forms/bulk_edit.py:400 +#: netbox/dcim/forms/bulk_edit.py:263 netbox/dcim/forms/bulk_edit.py:406 msgid "Outer depth" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:262 netbox/dcim/forms/bulk_edit.py:405 +#: netbox/dcim/forms/bulk_edit.py:268 netbox/dcim/forms/bulk_edit.py:411 #: netbox/dcim/forms/bulk_import.py:221 netbox/dcim/forms/bulk_import.py:300 msgid "Outer unit" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:267 netbox/dcim/forms/bulk_edit.py:410 +#: netbox/dcim/forms/bulk_edit.py:273 netbox/dcim/forms/bulk_edit.py:416 msgid "Mounting depth" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:272 netbox/dcim/forms/bulk_edit.py:293 -#: netbox/dcim/forms/bulk_edit.py:420 netbox/dcim/forms/bulk_edit.py:442 -#: netbox/dcim/forms/bulk_edit.py:519 netbox/dcim/forms/bulk_edit.py:536 -#: netbox/dcim/forms/bulk_edit.py:575 netbox/dcim/forms/bulk_edit.py:591 +#: netbox/dcim/forms/bulk_edit.py:278 netbox/dcim/forms/bulk_edit.py:299 +#: netbox/dcim/forms/bulk_edit.py:426 netbox/dcim/forms/bulk_edit.py:448 +#: netbox/dcim/forms/bulk_edit.py:525 netbox/dcim/forms/bulk_edit.py:542 +#: netbox/dcim/forms/bulk_edit.py:581 netbox/dcim/forms/bulk_edit.py:597 #: netbox/dcim/forms/bulk_import.py:429 netbox/dcim/forms/bulk_import.py:477 #: netbox/dcim/forms/filtersets.py:315 netbox/dcim/forms/filtersets.py:337 #: netbox/dcim/forms/filtersets.py:362 netbox/dcim/forms/filtersets.py:441 @@ -4187,13 +4187,13 @@ msgstr "" msgid "Weight" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:277 netbox/dcim/forms/bulk_edit.py:425 +#: netbox/dcim/forms/bulk_edit.py:283 netbox/dcim/forms/bulk_edit.py:431 #: netbox/dcim/forms/filtersets.py:320 msgid "Max weight" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:282 netbox/dcim/forms/bulk_edit.py:430 -#: netbox/dcim/forms/bulk_edit.py:524 netbox/dcim/forms/bulk_edit.py:580 +#: netbox/dcim/forms/bulk_edit.py:288 netbox/dcim/forms/bulk_edit.py:436 +#: netbox/dcim/forms/bulk_edit.py:530 netbox/dcim/forms/bulk_edit.py:586 #: netbox/dcim/forms/bulk_import.py:227 netbox/dcim/forms/bulk_import.py:312 #: netbox/dcim/forms/bulk_import.py:434 netbox/dcim/forms/bulk_import.py:482 #: netbox/dcim/forms/filtersets.py:325 netbox/dcim/forms/filtersets.py:655 @@ -4201,17 +4201,17 @@ msgstr "" msgid "Weight unit" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:290 netbox/dcim/forms/filtersets.py:335 +#: netbox/dcim/forms/bulk_edit.py:296 netbox/dcim/forms/filtersets.py:335 #: netbox/dcim/forms/model_forms.py:259 netbox/dcim/forms/model_forms.py:298 msgid "Rack Type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:292 netbox/dcim/forms/bulk_edit.py:440 +#: netbox/dcim/forms/bulk_edit.py:298 netbox/dcim/forms/bulk_edit.py:446 #: netbox/dcim/forms/model_forms.py:262 netbox/dcim/forms/model_forms.py:343 msgid "Outer Dimensions" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:295 netbox/dcim/forms/model_forms.py:264 +#: netbox/dcim/forms/bulk_edit.py:301 netbox/dcim/forms/model_forms.py:264 #: netbox/dcim/forms/model_forms.py:345 netbox/dcim/ui/panels.py:137 #: netbox/dcim/views.py:887 netbox/dcim/views.py:1019 #: netbox/extras/tables/tables.py:278 @@ -4220,32 +4220,32 @@ msgstr "" msgid "Dimensions" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:297 netbox/dcim/forms/filtersets.py:336 +#: netbox/dcim/forms/bulk_edit.py:303 netbox/dcim/forms/filtersets.py:336 #: netbox/dcim/forms/filtersets.py:361 netbox/dcim/forms/model_forms.py:266 #: netbox/dcim/views.py:892 netbox/dcim/views.py:1020 #: netbox/templates/dcim/inc/panels/racktype_numbering.html:3 msgid "Numbering" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:356 netbox/dcim/forms/bulk_import.py:277 +#: netbox/dcim/forms/bulk_edit.py:362 netbox/dcim/forms/bulk_import.py:277 #: netbox/dcim/forms/filtersets.py:417 msgid "Rack type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:363 netbox/dcim/forms/bulk_edit.py:708 -#: netbox/dcim/forms/bulk_edit.py:763 +#: netbox/dcim/forms/bulk_edit.py:369 netbox/dcim/forms/bulk_edit.py:714 +#: netbox/dcim/forms/bulk_edit.py:769 msgid "Serial Number" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:366 netbox/dcim/forms/filtersets.py:429 +#: netbox/dcim/forms/bulk_edit.py:372 netbox/dcim/forms/filtersets.py:429 #: netbox/dcim/forms/filtersets.py:915 netbox/dcim/forms/filtersets.py:1116 #: netbox/dcim/forms/filtersets.py:1914 #: netbox/templates/dcim/panels/installed_module.html:25 msgid "Asset tag" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:415 netbox/dcim/forms/bulk_edit.py:514 -#: netbox/dcim/forms/bulk_edit.py:570 netbox/dcim/forms/bulk_edit.py:701 +#: netbox/dcim/forms/bulk_edit.py:421 netbox/dcim/forms/bulk_edit.py:520 +#: netbox/dcim/forms/bulk_edit.py:576 netbox/dcim/forms/bulk_edit.py:707 #: netbox/dcim/forms/bulk_import.py:306 netbox/dcim/forms/bulk_import.py:471 #: netbox/dcim/forms/bulk_import.py:680 netbox/dcim/forms/filtersets.py:420 #: netbox/dcim/forms/filtersets.py:568 netbox/dcim/forms/filtersets.py:750 @@ -4253,7 +4253,7 @@ msgstr "" msgid "Airflow" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:438 netbox/dcim/forms/bulk_edit.py:891 +#: netbox/dcim/forms/bulk_edit.py:444 netbox/dcim/forms/bulk_edit.py:897 #: netbox/dcim/forms/bulk_import.py:362 netbox/dcim/forms/bulk_import.py:365 #: netbox/dcim/forms/bulk_import.py:653 netbox/dcim/forms/bulk_import.py:1659 #: netbox/dcim/forms/bulk_import.py:1663 netbox/dcim/forms/filtersets.py:123 @@ -4272,7 +4272,7 @@ msgstr "" msgid "Rack" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:441 netbox/dcim/forms/bulk_edit.py:728 +#: netbox/dcim/forms/bulk_edit.py:447 netbox/dcim/forms/bulk_edit.py:734 #: netbox/dcim/forms/filtersets.py:360 netbox/dcim/forms/filtersets.py:440 #: netbox/dcim/forms/filtersets.py:532 netbox/dcim/forms/filtersets.py:677 #: netbox/dcim/forms/filtersets.py:822 netbox/dcim/forms/filtersets.py:1043 @@ -4282,25 +4282,25 @@ msgstr "" msgid "Hardware" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:490 netbox/dcim/forms/bulk_import.py:422 +#: netbox/dcim/forms/bulk_edit.py:496 netbox/dcim/forms/bulk_import.py:422 #: netbox/dcim/forms/filtersets.py:551 netbox/dcim/forms/model_forms.py:397 msgid "Default platform" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:495 netbox/dcim/forms/bulk_edit.py:566 +#: netbox/dcim/forms/bulk_edit.py:501 netbox/dcim/forms/bulk_edit.py:572 #: netbox/dcim/forms/filtersets.py:554 netbox/dcim/forms/filtersets.py:698 msgid "Part number" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:499 +#: netbox/dcim/forms/bulk_edit.py:505 msgid "U height" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:511 netbox/dcim/tables/devicetypes.py:106 +#: netbox/dcim/forms/bulk_edit.py:517 netbox/dcim/tables/devicetypes.py:106 msgid "Exclude from utilization" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:534 netbox/dcim/forms/model_forms.py:411 +#: netbox/dcim/forms/bulk_edit.py:540 netbox/dcim/forms/model_forms.py:411 #: netbox/dcim/forms/model_forms.py:1048 netbox/dcim/forms/model_forms.py:1090 #: netbox/dcim/forms/model_forms.py:1117 netbox/dcim/forms/model_forms.py:1145 #: netbox/dcim/forms/model_forms.py:1166 netbox/dcim/forms/model_forms.py:1206 @@ -4309,13 +4309,13 @@ msgstr "" msgid "Device Type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:543 netbox/dcim/forms/model_forms.py:438 +#: netbox/dcim/forms/bulk_edit.py:549 netbox/dcim/forms/model_forms.py:438 #: netbox/dcim/views.py:1592 netbox/extras/forms/model_forms.py:601 msgid "Schema" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:549 netbox/dcim/forms/bulk_edit.py:556 -#: netbox/dcim/forms/bulk_edit.py:787 netbox/dcim/forms/bulk_import.py:460 +#: netbox/dcim/forms/bulk_edit.py:555 netbox/dcim/forms/bulk_edit.py:562 +#: netbox/dcim/forms/bulk_edit.py:793 netbox/dcim/forms/bulk_import.py:460 #: netbox/dcim/forms/bulk_import.py:1459 netbox/dcim/forms/filtersets.py:690 #: netbox/dcim/forms/filtersets.py:1215 netbox/dcim/forms/model_forms.py:444 #: netbox/dcim/forms/model_forms.py:457 netbox/dcim/tables/modules.py:43 @@ -4326,7 +4326,7 @@ msgstr "" msgid "Profile" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:588 netbox/dcim/forms/filtersets.py:1379 +#: netbox/dcim/forms/bulk_edit.py:594 netbox/dcim/forms/filtersets.py:1379 #: netbox/dcim/forms/model_forms.py:469 netbox/dcim/forms/model_forms.py:1049 #: netbox/dcim/forms/model_forms.py:1091 netbox/dcim/forms/model_forms.py:1118 #: netbox/dcim/forms/model_forms.py:1146 netbox/dcim/forms/model_forms.py:1167 @@ -4336,17 +4336,17 @@ msgstr "" msgid "Module Type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:592 netbox/dcim/forms/model_forms.py:414 +#: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:414 msgid "Chassis" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:611 netbox/dcim/models/devices.py:390 +#: netbox/dcim/forms/bulk_edit.py:617 netbox/dcim/models/devices.py:390 #: netbox/dcim/tables/devices.py:76 netbox/dcim/ui/panels.py:144 msgid "VM role" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:614 netbox/dcim/forms/bulk_edit.py:638 -#: netbox/dcim/forms/bulk_edit.py:711 netbox/dcim/forms/bulk_import.py:524 +#: netbox/dcim/forms/bulk_edit.py:620 netbox/dcim/forms/bulk_edit.py:644 +#: netbox/dcim/forms/bulk_edit.py:717 netbox/dcim/forms/bulk_import.py:524 #: netbox/dcim/forms/bulk_import.py:528 netbox/dcim/forms/bulk_import.py:557 #: netbox/dcim/forms/bulk_import.py:561 netbox/dcim/forms/bulk_import.py:686 #: netbox/dcim/forms/bulk_import.py:690 netbox/dcim/forms/filtersets.py:775 @@ -4360,7 +4360,7 @@ msgstr "" msgid "Config template" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:657 netbox/dcim/forms/bulk_edit.py:1040 +#: netbox/dcim/forms/bulk_edit.py:663 netbox/dcim/forms/bulk_edit.py:1046 #: netbox/dcim/forms/bulk_import.py:592 netbox/dcim/forms/filtersets.py:133 #: netbox/dcim/forms/filtersets.py:1370 netbox/dcim/forms/model_forms.py:642 #: netbox/dcim/forms/model_forms.py:1012 netbox/dcim/forms/model_forms.py:1029 @@ -4369,12 +4369,12 @@ msgstr "" msgid "Device type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:668 netbox/dcim/forms/bulk_import.py:573 +#: netbox/dcim/forms/bulk_edit.py:674 netbox/dcim/forms/bulk_import.py:573 #: netbox/dcim/forms/filtersets.py:138 netbox/dcim/forms/model_forms.py:650 msgid "Device role" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:691 netbox/dcim/forms/bulk_import.py:598 +#: netbox/dcim/forms/bulk_edit.py:697 netbox/dcim/forms/bulk_import.py:598 #: netbox/dcim/forms/filtersets.py:789 netbox/dcim/forms/filtersets.py:898 #: netbox/dcim/forms/model_forms.py:583 netbox/dcim/forms/model_forms.py:655 #: netbox/dcim/tables/devices.py:191 netbox/extras/filtersets.py:745 @@ -4386,7 +4386,7 @@ msgstr "" msgid "Platform" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:716 netbox/dcim/forms/bulk_import.py:617 +#: netbox/dcim/forms/bulk_edit.py:722 netbox/dcim/forms/bulk_import.py:617 #: netbox/dcim/forms/filtersets.py:830 netbox/dcim/forms/filtersets.py:1000 #: netbox/dcim/forms/model_forms.py:664 netbox/dcim/tables/devices.py:211 #: netbox/extras/filtersets.py:778 netbox/extras/forms/filtersets.py:406 @@ -4405,29 +4405,29 @@ msgstr "" msgid "Cluster" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:729 +#: netbox/dcim/forms/bulk_edit.py:735 #: netbox/templates/extras/dashboard/widget_config.html:7 #: netbox/virtualization/forms/bulk_edit.py:158 msgid "Configuration" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:730 netbox/netbox/navigation/menu.py:255 +#: netbox/dcim/forms/bulk_edit.py:736 netbox/netbox/navigation/menu.py:255 #: netbox/templates/dcim/device_edit.html:80 msgid "Virtualization" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:744 netbox/dcim/forms/bulk_import.py:759 +#: netbox/dcim/forms/bulk_edit.py:750 netbox/dcim/forms/bulk_import.py:759 #: netbox/dcim/forms/model_forms.py:791 netbox/dcim/forms/model_forms.py:1037 #: netbox/templates/dcim/panels/installed_module.html:17 msgid "Module type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:798 netbox/dcim/forms/bulk_edit.py:963 -#: netbox/dcim/forms/bulk_edit.py:982 netbox/dcim/forms/bulk_edit.py:1005 -#: netbox/dcim/forms/bulk_edit.py:1047 netbox/dcim/forms/bulk_edit.py:1095 -#: netbox/dcim/forms/bulk_edit.py:1146 netbox/dcim/forms/bulk_edit.py:1173 -#: netbox/dcim/forms/bulk_edit.py:1200 netbox/dcim/forms/bulk_edit.py:1218 -#: netbox/dcim/forms/bulk_edit.py:1236 netbox/dcim/forms/filtersets.py:86 +#: netbox/dcim/forms/bulk_edit.py:804 netbox/dcim/forms/bulk_edit.py:969 +#: netbox/dcim/forms/bulk_edit.py:988 netbox/dcim/forms/bulk_edit.py:1011 +#: netbox/dcim/forms/bulk_edit.py:1053 netbox/dcim/forms/bulk_edit.py:1101 +#: netbox/dcim/forms/bulk_edit.py:1152 netbox/dcim/forms/bulk_edit.py:1179 +#: netbox/dcim/forms/bulk_edit.py:1206 netbox/dcim/forms/bulk_edit.py:1224 +#: netbox/dcim/forms/bulk_edit.py:1242 netbox/dcim/forms/filtersets.py:86 #: netbox/dcim/forms/object_create.py:48 #: netbox/templates/dcim/inc/panels/inventory_items.html:19 #: netbox/templates/dcim/panels/component_inventory_items.html:9 @@ -4436,82 +4436,82 @@ msgstr "" msgid "Label" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:807 netbox/dcim/forms/filtersets.py:1224 +#: netbox/dcim/forms/bulk_edit.py:813 netbox/dcim/forms/filtersets.py:1224 msgid "Length" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:812 netbox/dcim/forms/bulk_import.py:1478 +#: netbox/dcim/forms/bulk_edit.py:818 netbox/dcim/forms/bulk_import.py:1478 #: netbox/dcim/forms/bulk_import.py:1481 netbox/dcim/forms/filtersets.py:1228 msgid "Length unit" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:830 +#: netbox/dcim/forms/bulk_edit.py:836 msgid "Domain" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:886 netbox/dcim/forms/bulk_import.py:1646 +#: netbox/dcim/forms/bulk_edit.py:892 netbox/dcim/forms/bulk_import.py:1646 #: netbox/dcim/forms/filtersets.py:1316 netbox/dcim/forms/model_forms.py:891 msgid "Power panel" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:908 netbox/dcim/forms/bulk_import.py:1682 +#: netbox/dcim/forms/bulk_edit.py:914 netbox/dcim/forms/bulk_import.py:1682 #: netbox/dcim/forms/filtersets.py:1338 msgid "Supply" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:914 netbox/dcim/forms/bulk_import.py:1687 +#: netbox/dcim/forms/bulk_edit.py:920 netbox/dcim/forms/bulk_import.py:1687 #: netbox/dcim/forms/filtersets.py:1343 msgid "Phase" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:920 netbox/dcim/forms/filtersets.py:1348 +#: netbox/dcim/forms/bulk_edit.py:926 netbox/dcim/forms/filtersets.py:1348 msgid "Voltage" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:924 netbox/dcim/forms/filtersets.py:1352 +#: netbox/dcim/forms/bulk_edit.py:930 netbox/dcim/forms/filtersets.py:1352 msgid "Amperage" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:928 netbox/dcim/forms/filtersets.py:1356 +#: netbox/dcim/forms/bulk_edit.py:934 netbox/dcim/forms/filtersets.py:1356 msgid "Max utilization" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1015 +#: netbox/dcim/forms/bulk_edit.py:1021 msgid "Maximum draw" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1018 +#: netbox/dcim/forms/bulk_edit.py:1024 #: netbox/dcim/models/device_component_templates.py:267 #: netbox/dcim/models/device_components.py:472 msgid "Maximum power draw (watts)" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1021 +#: netbox/dcim/forms/bulk_edit.py:1027 msgid "Allocated draw" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1024 +#: netbox/dcim/forms/bulk_edit.py:1030 #: netbox/dcim/models/device_component_templates.py:274 #: netbox/dcim/models/device_components.py:479 msgid "Allocated power draw (watts)" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1061 netbox/dcim/forms/bulk_import.py:892 +#: netbox/dcim/forms/bulk_edit.py:1067 netbox/dcim/forms/bulk_import.py:892 #: netbox/dcim/forms/model_forms.py:1106 netbox/dcim/forms/model_forms.py:1471 #: netbox/dcim/forms/model_forms.py:1800 netbox/dcim/forms/object_import.py:56 msgid "Power port" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1066 netbox/dcim/forms/bulk_import.py:899 +#: netbox/dcim/forms/bulk_edit.py:1072 netbox/dcim/forms/bulk_import.py:899 msgid "Feed leg" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1112 netbox/dcim/forms/bulk_edit.py:1433 +#: netbox/dcim/forms/bulk_edit.py:1118 netbox/dcim/forms/bulk_edit.py:1439 #: netbox/dcim/forms/filtersets.py:1719 netbox/dcim/ui/panels.py:487 msgid "Management only" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1122 netbox/dcim/forms/bulk_edit.py:1439 +#: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 #: netbox/dcim/forms/bulk_import.py:985 netbox/dcim/forms/filtersets.py:1643 #: netbox/dcim/forms/filtersets.py:1728 netbox/dcim/forms/object_import.py:91 #: netbox/dcim/models/device_component_templates.py:437 @@ -4519,7 +4519,7 @@ msgstr "" msgid "PoE mode" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1128 netbox/dcim/forms/bulk_edit.py:1445 +#: netbox/dcim/forms/bulk_edit.py:1134 netbox/dcim/forms/bulk_edit.py:1451 #: netbox/dcim/forms/bulk_import.py:991 netbox/dcim/forms/filtersets.py:1648 #: netbox/dcim/forms/filtersets.py:1733 netbox/dcim/forms/object_import.py:96 #: netbox/dcim/models/device_component_templates.py:444 @@ -4527,27 +4527,27 @@ msgstr "" msgid "PoE type" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1134 netbox/dcim/forms/filtersets.py:1663 +#: netbox/dcim/forms/bulk_edit.py:1140 netbox/dcim/forms/filtersets.py:1663 #: netbox/dcim/forms/filtersets.py:1738 netbox/dcim/forms/object_import.py:101 msgid "Wireless role" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1271 netbox/dcim/forms/model_forms.py:812 +#: netbox/dcim/forms/bulk_edit.py:1277 netbox/dcim/forms/model_forms.py:812 #: netbox/dcim/forms/model_forms.py:1416 netbox/dcim/tables/devices.py:330 #: netbox/templates/dcim/panels/installed_module.html:9 msgid "Module" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1413 netbox/dcim/tables/devices.py:746 +#: netbox/dcim/forms/bulk_edit.py:1419 netbox/dcim/tables/devices.py:746 #: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1418 netbox/dcim/forms/model_forms.py:1498 +#: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/model_forms.py:1498 msgid "Virtual device contexts" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1424 netbox/dcim/forms/bulk_import.py:819 +#: netbox/dcim/forms/bulk_edit.py:1430 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 #: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 @@ -4555,7 +4555,7 @@ msgstr "" msgid "Speed" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1453 netbox/dcim/forms/bulk_import.py:994 +#: netbox/dcim/forms/bulk_edit.py:1459 netbox/dcim/forms/bulk_import.py:994 #: netbox/templates/vpn/panels/ipsecprofile_ike_policy.html:20 #: netbox/virtualization/forms/bulk_edit.py:207 #: netbox/virtualization/forms/bulk_import.py:178 @@ -4567,7 +4567,7 @@ msgstr "" msgid "Mode" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1461 netbox/dcim/forms/bulk_import.py:1000 +#: netbox/dcim/forms/bulk_edit.py:1467 netbox/dcim/forms/bulk_import.py:1000 #: netbox/dcim/forms/model_forms.py:1547 netbox/ipam/forms/bulk_import.py:177 #: netbox/ipam/forms/filtersets.py:582 netbox/ipam/models/vlans.py:93 #: netbox/virtualization/forms/bulk_edit.py:214 @@ -4576,7 +4576,7 @@ msgstr "" msgid "VLAN group" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1470 netbox/dcim/forms/bulk_import.py:1007 +#: netbox/dcim/forms/bulk_edit.py:1476 netbox/dcim/forms/bulk_import.py:1007 #: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 #: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 @@ -4584,7 +4584,7 @@ msgstr "" msgid "Untagged VLAN" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1479 netbox/dcim/forms/bulk_import.py:1014 +#: netbox/dcim/forms/bulk_edit.py:1485 netbox/dcim/forms/bulk_import.py:1014 #: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 #: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 @@ -4592,34 +4592,34 @@ msgstr "" msgid "Tagged VLANs" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1482 +#: netbox/dcim/forms/bulk_edit.py:1488 msgid "Add tagged VLANs" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1491 +#: netbox/dcim/forms/bulk_edit.py:1497 msgid "Remove tagged VLANs" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1502 netbox/dcim/forms/bulk_import.py:1027 +#: netbox/dcim/forms/bulk_edit.py:1508 netbox/dcim/forms/bulk_import.py:1027 #: netbox/dcim/forms/model_forms.py:1571 #: netbox/virtualization/forms/bulk_import.py:211 #: netbox/virtualization/forms/model_forms.py:355 msgid "Q-in-Q Service VLAN" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1517 netbox/dcim/forms/model_forms.py:1534 +#: netbox/dcim/forms/bulk_edit.py:1523 netbox/dcim/forms/model_forms.py:1534 #: netbox/wireless/forms/filtersets.py:26 msgid "Wireless LAN group" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1522 netbox/dcim/forms/model_forms.py:1539 +#: netbox/dcim/forms/bulk_edit.py:1528 netbox/dcim/forms/model_forms.py:1539 #: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1531 netbox/dcim/forms/filtersets.py:1574 +#: netbox/dcim/forms/bulk_edit.py:1537 netbox/dcim/forms/filtersets.py:1574 #: netbox/dcim/forms/model_forms.py:1605 netbox/dcim/ui/panels.py:508 #: netbox/ipam/forms/bulk_edit.py:227 netbox/ipam/forms/bulk_edit.py:313 #: netbox/ipam/forms/filtersets.py:191 netbox/netbox/navigation/menu.py:112 @@ -4630,25 +4630,25 @@ msgstr "" msgid "Addressing" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1532 netbox/dcim/forms/filtersets.py:821 +#: netbox/dcim/forms/bulk_edit.py:1538 netbox/dcim/forms/filtersets.py:821 #: netbox/dcim/forms/model_forms.py:1606 #: netbox/virtualization/forms/model_forms.py:376 msgid "Operation" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1533 netbox/dcim/forms/filtersets.py:1575 +#: netbox/dcim/forms/bulk_edit.py:1539 netbox/dcim/forms/filtersets.py:1575 #: netbox/dcim/forms/filtersets.py:1702 netbox/dcim/forms/model_forms.py:1150 #: netbox/dcim/forms/model_forms.py:1608 msgid "PoE" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1534 netbox/dcim/forms/model_forms.py:1607 +#: netbox/dcim/forms/bulk_edit.py:1540 netbox/dcim/forms/model_forms.py:1607 #: netbox/dcim/ui/panels.py:500 netbox/virtualization/forms/bulk_edit.py:246 #: netbox/virtualization/forms/model_forms.py:377 msgid "Related Interfaces" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/filtersets.py:1576 +#: netbox/dcim/forms/bulk_edit.py:1542 netbox/dcim/forms/filtersets.py:1576 #: netbox/dcim/forms/model_forms.py:1611 #: netbox/virtualization/forms/bulk_edit.py:249 #: netbox/virtualization/forms/filtersets.py:221 @@ -4656,15 +4656,15 @@ msgstr "" msgid "802.1Q Switching" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1541 +#: netbox/dcim/forms/bulk_edit.py:1547 msgid "Add/Remove" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1600 netbox/dcim/forms/bulk_edit.py:1602 +#: netbox/dcim/forms/bulk_edit.py:1606 netbox/dcim/forms/bulk_edit.py:1608 msgid "Interface mode must be specified to assign VLANs" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1607 +#: netbox/dcim/forms/bulk_edit.py:1613 msgid "An access interface cannot have tagged VLANs assigned." msgstr "" @@ -5517,7 +5517,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:254 netbox/dcim/forms/model_forms.py:406 #: netbox/dcim/forms/model_forms.py:577 -#: netbox/utilities/forms/fields/fields.py:58 +#: netbox/utilities/forms/fields/fields.py:81 msgid "Slug" msgstr "" @@ -8651,7 +8651,7 @@ msgstr "" #: netbox/templates/dcim/htmx/cable_edit.html:99 #: netbox/templates/generic/bulk_edit.html:99 #: netbox/templates/inc/panels/comments.html:5 -#: netbox/utilities/forms/fields/fields.py:40 +#: netbox/utilities/forms/fields/fields.py:63 msgid "Comments" msgstr "" @@ -15776,22 +15776,22 @@ msgid "" "[1,5,100-254]/24" msgstr "" -#: netbox/utilities/forms/fields/fields.py:42 +#: netbox/utilities/forms/fields/fields.py:65 #, python-brace-format msgid "" " Markdown syntax is supported" msgstr "" -#: netbox/utilities/forms/fields/fields.py:59 +#: netbox/utilities/forms/fields/fields.py:82 msgid "URL-friendly unique shorthand" msgstr "" -#: netbox/utilities/forms/fields/fields.py:124 +#: netbox/utilities/forms/fields/fields.py:147 msgid "Enter context data in JSON format." msgstr "" -#: netbox/utilities/forms/fields/fields.py:145 +#: netbox/utilities/forms/fields/fields.py:168 msgid "MAC address must be in EUI-48 format" msgstr "" From d6a1cc555850c1d30035b1148a25d9def9ed5e6f Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Mon, 6 Apr 2026 19:25:20 +0200 Subject: [PATCH 16/27] test(tables): Add reusable StandardTableTestCase Introduce `TableTestCases.StandardTableTestCase`, a shared base class for model-backed table smoke tests. It currently discovers sortable columns from list-view querysets and verifies that each renders without exceptions in both ascending and descending order. Add per-table smoke tests across circuits, core, dcim, extras, ipam, tenancy, users, virtualization, vpn, and wireless apps. Fixes #21766 --- netbox/circuits/tests/test_tables.py | 82 ++++----- netbox/core/tests/test_tables.py | 26 +++ netbox/dcim/tests/test_tables.py | 204 +++++++++++++++++++++ netbox/extras/tests/test_tables.py | 109 +++++++++-- netbox/ipam/tests/test_tables.py | 87 ++++++++- netbox/tenancy/tests/test_tables.py | 26 +++ netbox/users/tests/test_tables.py | 42 +++-- netbox/utilities/testing/__init__.py | 1 + netbox/utilities/testing/tables.py | 157 ++++++++++++++++ netbox/virtualization/tests/test_tables.py | 26 +++ netbox/vpn/tests/test_tables.py | 57 ++++-- netbox/wireless/tests/test_tables.py | 14 ++ 12 files changed, 728 insertions(+), 103 deletions(-) create mode 100644 netbox/core/tests/test_tables.py create mode 100644 netbox/dcim/tests/test_tables.py create mode 100644 netbox/tenancy/tests/test_tables.py create mode 100644 netbox/utilities/testing/tables.py create mode 100644 netbox/virtualization/tests/test_tables.py create mode 100644 netbox/wireless/tests/test_tables.py diff --git a/netbox/circuits/tests/test_tables.py b/netbox/circuits/tests/test_tables.py index fd142f01b..29c104d03 100644 --- a/netbox/circuits/tests/test_tables.py +++ b/netbox/circuits/tests/test_tables.py @@ -1,48 +1,46 @@ -from django.test import RequestFactory, TestCase, tag - -from circuits.models import CircuitGroupAssignment, CircuitTermination -from circuits.tables import CircuitGroupAssignmentTable, CircuitTerminationTable +from circuits.tables import * +from utilities.testing import TableTestCases -@tag('regression') -class CircuitTerminationTableTest(TestCase): - def test_every_orderable_field_does_not_throw_exception(self): - terminations = CircuitTermination.objects.all() - disallowed = { - 'actions', - } - - orderable_columns = [ - column.name - for column in CircuitTerminationTable(terminations).columns - if column.orderable and column.name not in disallowed - ] - fake_request = RequestFactory().get('/') - - for col in orderable_columns: - for direction in ('-', ''): - table = CircuitTerminationTable(terminations) - table.order_by = f'{direction}{col}' - table.as_html(fake_request) +class CircuitTypeTableTest(TableTestCases.StandardTableTestCase): + table = CircuitTypeTable -@tag('regression') -class CircuitGroupAssignmentTableTest(TestCase): - def test_every_orderable_field_does_not_throw_exception(self): - assignment = CircuitGroupAssignment.objects.all() - disallowed = { - 'actions', - } +class CircuitTableTest(TableTestCases.StandardTableTestCase): + table = CircuitTable - orderable_columns = [ - column.name - for column in CircuitGroupAssignmentTable(assignment).columns - if column.orderable and column.name not in disallowed - ] - fake_request = RequestFactory().get('/') - for col in orderable_columns: - for direction in ('-', ''): - table = CircuitGroupAssignmentTable(assignment) - table.order_by = f'{direction}{col}' - table.as_html(fake_request) +class CircuitTerminationTableTest(TableTestCases.StandardTableTestCase): + table = CircuitTerminationTable + + +class CircuitGroupTableTest(TableTestCases.StandardTableTestCase): + table = CircuitGroupTable + + +class CircuitGroupAssignmentTableTest(TableTestCases.StandardTableTestCase): + table = CircuitGroupAssignmentTable + + +class ProviderTableTest(TableTestCases.StandardTableTestCase): + table = ProviderTable + + +class ProviderAccountTableTest(TableTestCases.StandardTableTestCase): + table = ProviderAccountTable + + +class ProviderNetworkTableTest(TableTestCases.StandardTableTestCase): + table = ProviderNetworkTable + + +class VirtualCircuitTypeTableTest(TableTestCases.StandardTableTestCase): + table = VirtualCircuitTypeTable + + +class VirtualCircuitTableTest(TableTestCases.StandardTableTestCase): + table = VirtualCircuitTable + + +class VirtualCircuitTerminationTableTest(TableTestCases.StandardTableTestCase): + table = VirtualCircuitTerminationTable diff --git a/netbox/core/tests/test_tables.py b/netbox/core/tests/test_tables.py new file mode 100644 index 000000000..202bedbea --- /dev/null +++ b/netbox/core/tests/test_tables.py @@ -0,0 +1,26 @@ +from core.models import ObjectChange +from core.tables import * +from utilities.testing import TableTestCases + + +class DataSourceTableTest(TableTestCases.StandardTableTestCase): + table = DataSourceTable + + +class DataFileTableTest(TableTestCases.StandardTableTestCase): + table = DataFileTable + + +class JobTableTest(TableTestCases.StandardTableTestCase): + table = JobTable + + +class ObjectChangeTableTest(TableTestCases.StandardTableTestCase): + table = ObjectChangeTable + queryset_sources = [ + ('ObjectChangeListView', ObjectChange.objects.valid_models()), + ] + + +class ConfigRevisionTableTest(TableTestCases.StandardTableTestCase): + table = ConfigRevisionTable diff --git a/netbox/dcim/tests/test_tables.py b/netbox/dcim/tests/test_tables.py new file mode 100644 index 000000000..debd8256f --- /dev/null +++ b/netbox/dcim/tests/test_tables.py @@ -0,0 +1,204 @@ +from dcim.models import ConsolePort, Interface, PowerPort +from dcim.tables import * +from utilities.testing import TableTestCases + +# +# Sites +# + + +class RegionTableTest(TableTestCases.StandardTableTestCase): + table = RegionTable + + +class SiteGroupTableTest(TableTestCases.StandardTableTestCase): + table = SiteGroupTable + + +class SiteTableTest(TableTestCases.StandardTableTestCase): + table = SiteTable + + +class LocationTableTest(TableTestCases.StandardTableTestCase): + table = LocationTable + + +# +# Racks +# + +class RackRoleTableTest(TableTestCases.StandardTableTestCase): + table = RackRoleTable + + +class RackTypeTableTest(TableTestCases.StandardTableTestCase): + table = RackTypeTable + + +class RackTableTest(TableTestCases.StandardTableTestCase): + table = RackTable + + +class RackReservationTableTest(TableTestCases.StandardTableTestCase): + table = RackReservationTable + + +# +# Device types +# + +class ManufacturerTableTest(TableTestCases.StandardTableTestCase): + table = ManufacturerTable + + +class DeviceTypeTableTest(TableTestCases.StandardTableTestCase): + table = DeviceTypeTable + + +# +# Module types +# + +class ModuleTypeProfileTableTest(TableTestCases.StandardTableTestCase): + table = ModuleTypeProfileTable + + +class ModuleTypeTableTest(TableTestCases.StandardTableTestCase): + table = ModuleTypeTable + + +class ModuleTableTest(TableTestCases.StandardTableTestCase): + table = ModuleTable + + +# +# Devices +# + +class DeviceRoleTableTest(TableTestCases.StandardTableTestCase): + table = DeviceRoleTable + + +class PlatformTableTest(TableTestCases.StandardTableTestCase): + table = PlatformTable + + +class DeviceTableTest(TableTestCases.StandardTableTestCase): + table = DeviceTable + + +# +# Device components +# + +class ConsolePortTableTest(TableTestCases.StandardTableTestCase): + table = ConsolePortTable + + +class ConsoleServerPortTableTest(TableTestCases.StandardTableTestCase): + table = ConsoleServerPortTable + + +class PowerPortTableTest(TableTestCases.StandardTableTestCase): + table = PowerPortTable + + +class PowerOutletTableTest(TableTestCases.StandardTableTestCase): + table = PowerOutletTable + + +class InterfaceTableTest(TableTestCases.StandardTableTestCase): + table = InterfaceTable + + +class FrontPortTableTest(TableTestCases.StandardTableTestCase): + table = FrontPortTable + + +class RearPortTableTest(TableTestCases.StandardTableTestCase): + table = RearPortTable + + +class ModuleBayTableTest(TableTestCases.StandardTableTestCase): + table = ModuleBayTable + + +class DeviceBayTableTest(TableTestCases.StandardTableTestCase): + table = DeviceBayTable + + +class InventoryItemTableTest(TableTestCases.StandardTableTestCase): + table = InventoryItemTable + + +class InventoryItemRoleTableTest(TableTestCases.StandardTableTestCase): + table = InventoryItemRoleTable + + +# +# Connections +# + +class ConsoleConnectionTableTest(TableTestCases.StandardTableTestCase): + table = ConsoleConnectionTable + queryset_sources = [ + ('ConsoleConnectionsListView', ConsolePort.objects.filter(_path__is_complete=True)), + ] + + +class PowerConnectionTableTest(TableTestCases.StandardTableTestCase): + table = PowerConnectionTable + queryset_sources = [ + ('PowerConnectionsListView', PowerPort.objects.filter(_path__is_complete=True)), + ] + + +class InterfaceConnectionTableTest(TableTestCases.StandardTableTestCase): + table = InterfaceConnectionTable + queryset_sources = [ + ('InterfaceConnectionsListView', Interface.objects.filter(_path__is_complete=True)), + ] + + +# +# Cables +# + +class CableTableTest(TableTestCases.StandardTableTestCase): + table = CableTable + + +# +# Power +# + +class PowerPanelTableTest(TableTestCases.StandardTableTestCase): + table = PowerPanelTable + + +class PowerFeedTableTest(TableTestCases.StandardTableTestCase): + table = PowerFeedTable + + +# +# Virtual chassis +# + +class VirtualChassisTableTest(TableTestCases.StandardTableTestCase): + table = VirtualChassisTable + + +# +# Virtual device contexts +# + +class VirtualDeviceContextTableTest(TableTestCases.StandardTableTestCase): + table = VirtualDeviceContextTable + + +# +# MAC addresses +# + +class MACAddressTableTest(TableTestCases.StandardTableTestCase): + table = MACAddressTable diff --git a/netbox/extras/tests/test_tables.py b/netbox/extras/tests/test_tables.py index 7fb6380c9..fb20a7e2e 100644 --- a/netbox/extras/tests/test_tables.py +++ b/netbox/extras/tests/test_tables.py @@ -1,24 +1,93 @@ -from django.test import RequestFactory, TestCase, tag - -from extras.models import EventRule -from extras.tables import EventRuleTable +from extras.models import Bookmark, Notification, Subscription +from extras.tables import * +from utilities.testing import TableTestCases -@tag('regression') -class EventRuleTableTest(TestCase): - def test_every_orderable_field_does_not_throw_exception(self): - rule = EventRule.objects.all() - disallowed = { - 'actions', - } +class CustomFieldTableTest(TableTestCases.StandardTableTestCase): + table = CustomFieldTable - orderable_columns = [ - column.name for column in EventRuleTable(rule).columns if column.orderable and column.name not in disallowed - ] - fake_request = RequestFactory().get('/') - for col in orderable_columns: - for direction in ('-', ''): - table = EventRuleTable(rule) - table.order_by = f'{direction}{col}' - table.as_html(fake_request) +class CustomFieldChoiceSetTableTest(TableTestCases.StandardTableTestCase): + table = CustomFieldChoiceSetTable + + +class CustomLinkTableTest(TableTestCases.StandardTableTestCase): + table = CustomLinkTable + + +class ExportTemplateTableTest(TableTestCases.StandardTableTestCase): + table = ExportTemplateTable + + +class SavedFilterTableTest(TableTestCases.StandardTableTestCase): + table = SavedFilterTable + + +class TableConfigTableTest(TableTestCases.StandardTableTestCase): + table = TableConfigTable + + +class BookmarkTableTest(TableTestCases.StandardTableTestCase): + table = BookmarkTable + + # The list view for this table lives in account.views (not extras.views), + # so auto-discovery cannot find it. Provide an explicit queryset source. + queryset_sources = [ + ('Bookmark.objects.all()', Bookmark.objects.all()), + ] + + +class NotificationGroupTableTest(TableTestCases.StandardTableTestCase): + table = NotificationGroupTable + + +class NotificationTableTest(TableTestCases.StandardTableTestCase): + table = NotificationTable + + # The list view for this table lives in account.views (not extras.views), + # so auto-discovery cannot find it. Provide an explicit queryset source. + queryset_sources = [ + ('Notification.objects.all()', Notification.objects.all()), + ] + + +class SubscriptionTableTest(TableTestCases.StandardTableTestCase): + table = SubscriptionTable + + # The list view for this table lives in account.views (not extras.views), + # so auto-discovery cannot find it. Provide an explicit queryset source. + queryset_sources = [ + ('Subscription.objects.all()', Subscription.objects.all()), + ] + + +class WebhookTableTest(TableTestCases.StandardTableTestCase): + table = WebhookTable + + +class EventRuleTableTest(TableTestCases.StandardTableTestCase): + table = EventRuleTable + + +class TagTableTest(TableTestCases.StandardTableTestCase): + table = TagTable + + +class ConfigContextProfileTableTest(TableTestCases.StandardTableTestCase): + table = ConfigContextProfileTable + + +class ConfigContextTableTest(TableTestCases.StandardTableTestCase): + table = ConfigContextTable + + +class ConfigTemplateTableTest(TableTestCases.StandardTableTestCase): + table = ConfigTemplateTable + + +class ImageAttachmentTableTest(TableTestCases.StandardTableTestCase): + table = ImageAttachmentTable + + +class JournalEntryTableTest(TableTestCases.StandardTableTestCase): + table = JournalEntryTable diff --git a/netbox/ipam/tests/test_tables.py b/netbox/ipam/tests/test_tables.py index 527da9677..5283b62f0 100644 --- a/netbox/ipam/tests/test_tables.py +++ b/netbox/ipam/tests/test_tables.py @@ -1,9 +1,10 @@ from django.test import RequestFactory, TestCase from netaddr import IPNetwork -from ipam.models import IPAddress, IPRange, Prefix -from ipam.tables import AnnotatedIPAddressTable +from ipam.models import FHRPGroupAssignment, IPAddress, IPRange, Prefix +from ipam.tables import * from ipam.utils import annotate_ip_space +from utilities.testing import TableTestCases class AnnotatedIPAddressTableTest(TestCase): @@ -168,3 +169,85 @@ class AnnotatedIPAddressTableTest(TestCase): # Pools are fully usable self.assertEqual(available.first_ip, '2001:db8:1::/126') self.assertEqual(available.size, 4) + + +# +# Table ordering tests +# + +class VRFTableTest(TableTestCases.StandardTableTestCase): + table = VRFTable + + +class RouteTargetTableTest(TableTestCases.StandardTableTestCase): + table = RouteTargetTable + + +class RIRTableTest(TableTestCases.StandardTableTestCase): + table = RIRTable + + +class AggregateTableTest(TableTestCases.StandardTableTestCase): + table = AggregateTable + + +class RoleTableTest(TableTestCases.StandardTableTestCase): + table = RoleTable + + +class PrefixTableTest(TableTestCases.StandardTableTestCase): + table = PrefixTable + + +class IPRangeTableTest(TableTestCases.StandardTableTestCase): + table = IPRangeTable + + +class IPAddressTableTest(TableTestCases.StandardTableTestCase): + table = IPAddressTable + + +class FHRPGroupTableTest(TableTestCases.StandardTableTestCase): + table = FHRPGroupTable + + +class FHRPGroupAssignmentTableTest(TableTestCases.StandardTableTestCase): + table = FHRPGroupAssignmentTable + + # No ObjectListView exists for this table; it is only rendered inline on + # the FHRPGroup detail view. Provide an explicit queryset source. + queryset_sources = [ + ('FHRPGroupAssignment.objects.all()', FHRPGroupAssignment.objects.all()), + ] + + +class VLANGroupTableTest(TableTestCases.StandardTableTestCase): + table = VLANGroupTable + + +class VLANTableTest(TableTestCases.StandardTableTestCase): + table = VLANTable + + +class VLANTranslationPolicyTableTest(TableTestCases.StandardTableTestCase): + table = VLANTranslationPolicyTable + + +class VLANTranslationRuleTableTest(TableTestCases.StandardTableTestCase): + table = VLANTranslationRuleTable + + +class ASNRangeTableTest(TableTestCases.StandardTableTestCase): + table = ASNRangeTable + + +class ASNTableTest(TableTestCases.StandardTableTestCase): + table = ASNTable + + +class ServiceTemplateTableTest(TableTestCases.StandardTableTestCase): + table = ServiceTemplateTable + + +class ServiceTableTest(TableTestCases.StandardTableTestCase): + table = ServiceTable diff --git a/netbox/tenancy/tests/test_tables.py b/netbox/tenancy/tests/test_tables.py new file mode 100644 index 000000000..102d38e4a --- /dev/null +++ b/netbox/tenancy/tests/test_tables.py @@ -0,0 +1,26 @@ +from tenancy.tables import * +from utilities.testing import TableTestCases + + +class TenantGroupTableTest(TableTestCases.StandardTableTestCase): + table = TenantGroupTable + + +class TenantTableTest(TableTestCases.StandardTableTestCase): + table = TenantTable + + +class ContactGroupTableTest(TableTestCases.StandardTableTestCase): + table = ContactGroupTable + + +class ContactRoleTableTest(TableTestCases.StandardTableTestCase): + table = ContactRoleTable + + +class ContactTableTest(TableTestCases.StandardTableTestCase): + table = ContactTable + + +class ContactAssignmentTableTest(TableTestCases.StandardTableTestCase): + table = ContactAssignmentTable diff --git a/netbox/users/tests/test_tables.py b/netbox/users/tests/test_tables.py index 74c4df3b8..336561cbc 100644 --- a/netbox/users/tests/test_tables.py +++ b/netbox/users/tests/test_tables.py @@ -1,24 +1,26 @@ -from django.test import RequestFactory, TestCase, tag - -from users.models import Token -from users.tables import TokenTable +from users.tables import * +from utilities.testing import TableTestCases -class TokenTableTest(TestCase): - @tag('regression') - def test_every_orderable_field_does_not_throw_exception(self): - tokens = Token.objects.all() - disallowed = {'actions'} +class TokenTableTest(TableTestCases.StandardTableTestCase): + table = TokenTable - orderable_columns = [ - column.name for column in TokenTable(tokens).columns - if column.orderable and column.name not in disallowed - ] - fake_request = RequestFactory().get("/") - for col in orderable_columns: - for direction in ('-', ''): - with self.subTest(col=col, direction=direction): - table = TokenTable(tokens) - table.order_by = f'{direction}{col}' - table.as_html(fake_request) +class UserTableTest(TableTestCases.StandardTableTestCase): + table = UserTable + + +class GroupTableTest(TableTestCases.StandardTableTestCase): + table = GroupTable + + +class ObjectPermissionTableTest(TableTestCases.StandardTableTestCase): + table = ObjectPermissionTable + + +class OwnerGroupTableTest(TableTestCases.StandardTableTestCase): + table = OwnerGroupTable + + +class OwnerTableTest(TableTestCases.StandardTableTestCase): + table = OwnerTable diff --git a/netbox/utilities/testing/__init__.py b/netbox/utilities/testing/__init__.py index 6a52d93f3..ebb4f83e6 100644 --- a/netbox/utilities/testing/__init__.py +++ b/netbox/utilities/testing/__init__.py @@ -1,5 +1,6 @@ from .api import * from .base import * from .filtersets import * +from .tables import * from .utils import * from .views import * diff --git a/netbox/utilities/testing/tables.py b/netbox/utilities/testing/tables.py new file mode 100644 index 000000000..3ec0c1754 --- /dev/null +++ b/netbox/utilities/testing/tables.py @@ -0,0 +1,157 @@ +import inspect +from importlib import import_module + +from django.test import RequestFactory + +from netbox.views import generic + +from .base import TestCase + +__all__ = ( + "ModelTableTestCase", + "TableTestCases", +) + + +class ModelTableTestCase(TestCase): + """ + Shared helpers for model-backed table ordering smoke tests. + + Concrete subclasses should set `table` and may override `queryset_sources`, + `queryset_source_view_classes`, or `excluded_orderable_columns` as needed. + """ + table = None + excluded_orderable_columns = frozenset({"actions"}) + + # Optional explicit override for odd cases + queryset_sources = None + + # Only these view types are considered sortable queryset sources by default + queryset_source_view_classes = (generic.ObjectListView,) + + @classmethod + def validate_table_test_case(cls): + """ + Assert that the test case is correctly configured with a model-backed table. + + Raises: + AssertionError: If ``table`` is not set or is not backed by a Django model. + """ + if cls.table is None: + raise AssertionError(f"{cls.__name__} must define `table`") + if getattr(cls.table._meta, "model", None) is None: + raise AssertionError(f"{cls.__name__}.table must be model-backed") + + def get_request(self): + """ + Build a minimal ``GET`` request authenticated as the test user. + """ + request = RequestFactory().get("/") + request.user = self.user + return request + + def get_table(self, queryset): + """ + Instantiate the table class under test with the given *queryset*. + """ + return self.table(queryset) + + @classmethod + def is_queryset_source_view(cls, view): + """ + Return ``True`` if *view* is a list-style view class that declares + this test case's table and exposes a usable queryset. + """ + model = cls.table._meta.model + app_label = model._meta.app_label + + return ( + inspect.isclass(view) + and view.__module__.startswith(f"{app_label}.views") + and getattr(view, "table", None) is cls.table + and getattr(view, "queryset", None) is not None + and issubclass(view, cls.queryset_source_view_classes) + ) + + @classmethod + def get_queryset_sources(cls): + """ + Return iterable of (label, queryset) pairs to test. + + The label is included in the subtest failure output. + + By default, only discover list-style views that declare this table. + That keeps bulk edit/delete confirmation tables out of the ordering + smoke test. + """ + if cls.queryset_sources is not None: + return tuple(cls.queryset_sources) + + model = cls.table._meta.model + app_label = model._meta.app_label + module = import_module(f"{app_label}.views") + + sources = [] + for _, view in inspect.getmembers(module, inspect.isclass): + if not cls.is_queryset_source_view(view): + continue + + queryset = view.queryset + if hasattr(queryset, "all"): + queryset = queryset.all() + + sources.append((view.__name__, queryset)) + + if not sources: + raise AssertionError( + f"{cls.__name__} could not find any list-style queryset source for " + f"{cls.table.__module__}.{cls.table.__name__}; " + "set `queryset_sources` explicitly if needed." + ) + + return tuple(sources) + + def iter_orderable_columns(self, queryset): + """ + Yield the names of all orderable columns for *queryset*, excluding + any listed in ``excluded_orderable_columns``. + """ + for column in self.get_table(queryset).columns: + if not column.orderable: + continue + if column.name in self.excluded_orderable_columns: + continue + yield column.name + + +class TableTestCases: + """ + Keep test_* methods nested to avoid unittest auto-discovering the reusable + base classes directly. + """ + + class StandardTableTestCase(ModelTableTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.validate_table_test_case() + + def test_every_orderable_column_renders(self): + """ + Verify that each declared ordering can be applied without error. + + This is intentionally a smoke test. It validates ordering against + the configured queryset sources but does not create model + instances by default, so it complements rather than replaces + data-backed rendering tests for tables whose behavior depends on + populated querysets. + """ + request = self.get_request() + + for source_name, queryset in self.get_queryset_sources(): + for column_name in self.iter_orderable_columns(queryset): + for direction, prefix in (("asc", ""), ("desc", "-")): + with self.subTest(source=source_name, column=column_name, direction=direction): + table = self.get_table(queryset) + table.order_by = f"{prefix}{column_name}" + table.as_html(request) diff --git a/netbox/virtualization/tests/test_tables.py b/netbox/virtualization/tests/test_tables.py new file mode 100644 index 000000000..c443672e5 --- /dev/null +++ b/netbox/virtualization/tests/test_tables.py @@ -0,0 +1,26 @@ +from utilities.testing import TableTestCases +from virtualization.tables import * + + +class ClusterTypeTableTest(TableTestCases.StandardTableTestCase): + table = ClusterTypeTable + + +class ClusterGroupTableTest(TableTestCases.StandardTableTestCase): + table = ClusterGroupTable + + +class ClusterTableTest(TableTestCases.StandardTableTestCase): + table = ClusterTable + + +class VirtualMachineTableTest(TableTestCases.StandardTableTestCase): + table = VirtualMachineTable + + +class VMInterfaceTableTest(TableTestCases.StandardTableTestCase): + table = VMInterfaceTable + + +class VirtualDiskTableTest(TableTestCases.StandardTableTestCase): + table = VirtualDiskTable diff --git a/netbox/vpn/tests/test_tables.py b/netbox/vpn/tests/test_tables.py index e7c0fbd5c..b1f2e65ed 100644 --- a/netbox/vpn/tests/test_tables.py +++ b/netbox/vpn/tests/test_tables.py @@ -1,23 +1,42 @@ -from django.test import RequestFactory, TestCase, tag - -from vpn.models import TunnelTermination -from vpn.tables import TunnelTerminationTable +from utilities.testing import TableTestCases +from vpn.tables import * -@tag('regression') -class TunnelTerminationTableTest(TestCase): - def test_every_orderable_field_does_not_throw_exception(self): - terminations = TunnelTermination.objects.all() - fake_request = RequestFactory().get("/") - disallowed = {'actions'} +class TunnelGroupTableTest(TableTestCases.StandardTableTestCase): + table = TunnelGroupTable - orderable_columns = [ - column.name for column in TunnelTerminationTable(terminations).columns - if column.orderable and column.name not in disallowed - ] - for col in orderable_columns: - for dir in ('-', ''): - table = TunnelTerminationTable(terminations) - table.order_by = f'{dir}{col}' - table.as_html(fake_request) +class TunnelTableTest(TableTestCases.StandardTableTestCase): + table = TunnelTable + + +class TunnelTerminationTableTest(TableTestCases.StandardTableTestCase): + table = TunnelTerminationTable + + +class IKEProposalTableTest(TableTestCases.StandardTableTestCase): + table = IKEProposalTable + + +class IKEPolicyTableTest(TableTestCases.StandardTableTestCase): + table = IKEPolicyTable + + +class IPSecProposalTableTest(TableTestCases.StandardTableTestCase): + table = IPSecProposalTable + + +class IPSecPolicyTableTest(TableTestCases.StandardTableTestCase): + table = IPSecPolicyTable + + +class IPSecProfileTableTest(TableTestCases.StandardTableTestCase): + table = IPSecProfileTable + + +class L2VPNTableTest(TableTestCases.StandardTableTestCase): + table = L2VPNTable + + +class L2VPNTerminationTableTest(TableTestCases.StandardTableTestCase): + table = L2VPNTerminationTable diff --git a/netbox/wireless/tests/test_tables.py b/netbox/wireless/tests/test_tables.py new file mode 100644 index 000000000..a815d327a --- /dev/null +++ b/netbox/wireless/tests/test_tables.py @@ -0,0 +1,14 @@ +from utilities.testing import TableTestCases +from wireless.tables import * + + +class WirelessLANGroupTableTest(TableTestCases.StandardTableTestCase): + table = WirelessLANGroupTable + + +class WirelessLANTableTest(TableTestCases.StandardTableTestCase): + table = WirelessLANTable + + +class WirelessLinkTableTest(TableTestCases.StandardTableTestCase): + table = WirelessLinkTable From 1ebeb71ad818d4558c94d9c1ed4dbc4700be21da Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 Apr 2026 11:38:22 -0400 Subject: [PATCH 17/27] Fixes #21845: Remove whitespace from connection values in interface CSV exports (#21850) --- netbox/dcim/tables/devices.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 67f7baad7..b0de5e35d 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -382,6 +382,17 @@ class PathEndpointTable(CableTerminationTable): orderable=False ) + def value_connection(self, value): + if value: + connections = [] + for termination in value: + if hasattr(termination, 'parent_object'): + connections.append(f'{termination.parent_object} > {termination}') + else: + connections.append(str(termination)) + return ', '.join(connections) + return None + class ConsolePortTable(ModularDeviceComponentTable, PathEndpointTable): device = tables.Column( @@ -683,6 +694,15 @@ class InterfaceTable(BaseInterfaceTable, ModularDeviceComponentTable, PathEndpoi orderable=False ) + def value_connection(self, record, value): + if record.is_virtual and hasattr(record, 'virtual_circuit_termination') and record.virtual_circuit_termination: + connections = [ + f"{t.interface.parent_object} > {t.interface} via {t.parent_object}" + for t in record.connected_endpoints + ] + return ', '.join(connections) + return super().value_connection(value) + class Meta(DeviceComponentTable.Meta): model = models.Interface fields = ( From 1bbecef77d2345a78472f3d3e024fa55db55ff2e Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 Apr 2026 11:48:40 -0400 Subject: [PATCH 18/27] Fixes #21841: Fix display of the "edit" button for script modules (#21851) --- netbox/templates/extras/inc/script_list_content.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/templates/extras/inc/script_list_content.html b/netbox/templates/extras/inc/script_list_content.html index 783d6eac1..43f813478 100644 --- a/netbox/templates/extras/inc/script_list_content.html +++ b/netbox/templates/extras/inc/script_list_content.html @@ -11,7 +11,7 @@

{{ module }}
- {% if perms.extras.edit_scriptmodule %} + {% if perms.extras.change_scriptmodule %} {% trans "Edit" %} From 296e708e096db22def7a47ee2bf32adc4f98ee5c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 Apr 2026 12:11:12 -0400 Subject: [PATCH 19/27] Fixes #21814: Correct display of custom script "last run" time (#21853) --- netbox/netbox/models/features.py | 2 +- netbox/templates/extras/inc/script_list_content.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox/netbox/models/features.py b/netbox/netbox/models/features.py index 1c39d5b08..920c8e0c1 100644 --- a/netbox/netbox/models/features.py +++ b/netbox/netbox/models/features.py @@ -467,7 +467,7 @@ class JobsMixin(models.Model): """ Return a list of the most recent jobs for this instance. """ - return self.jobs.filter(status__in=JobStatusChoices.TERMINAL_STATE_CHOICES).order_by('-created').defer('data') + return self.jobs.filter(status__in=JobStatusChoices.TERMINAL_STATE_CHOICES).order_by('-started').defer('data') class JournalingMixin(models.Model): diff --git a/netbox/templates/extras/inc/script_list_content.html b/netbox/templates/extras/inc/script_list_content.html index 43f813478..ed30e423d 100644 --- a/netbox/templates/extras/inc/script_list_content.html +++ b/netbox/templates/extras/inc/script_list_content.html @@ -54,7 +54,7 @@ {{ script.python_class.description|markdown|placeholder }} {% if last_job %} - {{ last_job.created|isodatetime }} + {{ last_job.started|isodatetime }} {% badge last_job.get_status_display last_job.get_status_color %} From 7ff7c6d17e93d04fa83955ccf323ad1eb2c80df5 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Tue, 7 Apr 2026 18:52:36 +0200 Subject: [PATCH 20/27] feat(ui): Add colored rendering for related object attributes Introduce `colored` parameter to `RelatedObjectAttr`, `NestedObjectAttr`, and `ObjectListAttr` to render objects as colored badges when they expose a `color` attribute. Update badge template tag to support hex colors and optional URLs. Apply colored rendering to circuit types, device roles, rack roles, inventory item roles, and VM roles. Fixes #21430 --- netbox/circuits/tests/test_views.py | 14 ++++++++++ netbox/circuits/ui/panels.py | 4 +-- netbox/dcim/tests/test_views.py | 17 +++++++++++ netbox/dcim/ui/panels.py | 6 ++-- netbox/netbox/ui/attrs.py | 11 ++++++-- netbox/templates/ui/attrs/nested_object.html | 10 ++++++- netbox/templates/ui/attrs/object.html | 28 +++++++++++++++++-- netbox/templates/ui/attrs/object_list.html | 2 +- .../utilities/templates/builtins/badge.html | 6 +++- .../utilities/templatetags/builtins/tags.py | 8 ++++-- netbox/utilities/tests/test_templatetags.py | 17 ++++++++++- netbox/virtualization/ui/panels.py | 2 +- 12 files changed, 109 insertions(+), 16 deletions(-) diff --git a/netbox/circuits/tests/test_views.py b/netbox/circuits/tests/test_views.py index 6ced9a958..b3593b927 100644 --- a/netbox/circuits/tests/test_views.py +++ b/netbox/circuits/tests/test_views.py @@ -196,6 +196,20 @@ class CircuitTestCase(ViewTestCases.PrimaryObjectViewTestCase): 'comments': 'New comments', } + def test_circuit_type_display_colored(self): + circuit_type = CircuitType.objects.first() + circuit_type.color = '12ab34' + circuit_type.save() + + circuit = Circuit.objects.first() + + self.add_permissions('circuits.view_circuit') + response = self.client.get(circuit.get_absolute_url()) + + self.assertHttpStatus(response, 200) + self.assertContains(response, circuit_type.name) + self.assertContains(response, 'background-color: #12ab34') + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], EXEMPT_EXCLUDE_MODELS=[]) def test_bulk_import_objects_with_terminations(self): site = Site.objects.first() diff --git a/netbox/circuits/ui/panels.py b/netbox/circuits/ui/panels.py index e8d6cf9bb..d90ccf3d4 100644 --- a/netbox/circuits/ui/panels.py +++ b/netbox/circuits/ui/panels.py @@ -73,7 +73,7 @@ class CircuitPanel(panels.ObjectAttributesPanel): provider = attrs.RelatedObjectAttr('provider', linkify=True) provider_account = attrs.RelatedObjectAttr('provider_account', linkify=True) cid = attrs.TextAttr('cid', label=_('Circuit ID'), style='font-monospace', copy_button=True) - type = attrs.RelatedObjectAttr('type', linkify=True) + type = attrs.RelatedObjectAttr('type', linkify=True, colored=True) status = attrs.ChoiceAttr('status') distance = attrs.NumericAttr('distance', unit_accessor='get_distance_unit_display') tenant = attrs.RelatedObjectAttr('tenant', linkify=True, grouped_by='group') @@ -116,7 +116,7 @@ class VirtualCircuitPanel(panels.ObjectAttributesPanel): provider_network = attrs.RelatedObjectAttr('provider_network', linkify=True) provider_account = attrs.RelatedObjectAttr('provider_account', linkify=True) cid = attrs.TextAttr('cid', label=_('Circuit ID'), style='font-monospace', copy_button=True) - type = attrs.RelatedObjectAttr('type', linkify=True) + type = attrs.RelatedObjectAttr('type', linkify=True, colored=True) status = attrs.ChoiceAttr('status') tenant = attrs.RelatedObjectAttr('tenant', linkify=True, grouped_by='group') description = attrs.TextAttr('description') diff --git a/netbox/dcim/tests/test_views.py b/netbox/dcim/tests/test_views.py index 197af26b3..a67cea127 100644 --- a/netbox/dcim/tests/test_views.py +++ b/netbox/dcim/tests/test_views.py @@ -2362,6 +2362,23 @@ class DeviceTestCase(ViewTestCases.PrimaryObjectViewTestCase): self.remove_permissions('dcim.view_device') self.assertHttpStatus(self.client.get(url), 403) + def test_device_role_display_colored(self): + parent_role = DeviceRole.objects.create(name='Parent Role', slug='parent-role', color='111111') + child_role = DeviceRole.objects.create(name='Child Role', slug='child-role', parent=parent_role, color='aa00bb') + + device = Device.objects.first() + device.role = child_role + device.save() + + self.add_permissions('dcim.view_device') + response = self.client.get(device.get_absolute_url()) + + self.assertHttpStatus(response, 200) + self.assertContains(response, 'Parent Role') + self.assertContains(response, 'Child Role') + self.assertContains(response, 'background-color: #aa00bb') + self.assertNotContains(response, 'background-color: #111111') + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_bulk_import_duplicate_ids_error_message(self): device = Device.objects.first() diff --git a/netbox/dcim/ui/panels.py b/netbox/dcim/ui/panels.py index 07f9b8357..3681f4dac 100644 --- a/netbox/dcim/ui/panels.py +++ b/netbox/dcim/ui/panels.py @@ -50,7 +50,7 @@ class RackPanel(panels.ObjectAttributesPanel): tenant = attrs.RelatedObjectAttr('tenant', linkify=True, grouped_by='group') status = attrs.ChoiceAttr('status') rack_type = attrs.RelatedObjectAttr('rack_type', linkify=True, grouped_by='manufacturer') - role = attrs.RelatedObjectAttr('role', linkify=True) + role = attrs.RelatedObjectAttr('role', linkify=True, colored=True) description = attrs.TextAttr('description') serial = attrs.TextAttr('serial', label=_('Serial number'), style='font-monospace', copy_button=True) asset_tag = attrs.TextAttr('asset_tag', style='font-monospace', copy_button=True) @@ -103,7 +103,7 @@ class DeviceManagementPanel(panels.ObjectAttributesPanel): title = _('Management') status = attrs.ChoiceAttr('status') - role = attrs.NestedObjectAttr('role', linkify=True, max_depth=3) + role = attrs.NestedObjectAttr('role', linkify=True, max_depth=3, colored=True) platform = attrs.NestedObjectAttr('platform', linkify=True, max_depth=3) primary_ip4 = attrs.TemplatedAttr( 'primary_ip4', @@ -279,7 +279,7 @@ class InventoryItemPanel(panels.ObjectAttributesPanel): name = attrs.TextAttr('name') label = attrs.TextAttr('label') status = attrs.ChoiceAttr('status') - role = attrs.RelatedObjectAttr('role', linkify=True) + role = attrs.RelatedObjectAttr('role', linkify=True, colored=True) component = attrs.GenericForeignKeyAttr('component', linkify=True) manufacturer = attrs.RelatedObjectAttr('manufacturer', linkify=True) part_id = attrs.TextAttr('part_id', label=_('Part ID')) diff --git a/netbox/netbox/ui/attrs.py b/netbox/netbox/ui/attrs.py index e4bd93c4e..992ac6f2a 100644 --- a/netbox/netbox/ui/attrs.py +++ b/netbox/netbox/ui/attrs.py @@ -256,13 +256,15 @@ class RelatedObjectAttr(ObjectAttribute): linkify (bool): If True, the rendered value will be hyperlinked to the related object's detail view grouped_by (str): A second-order object to annotate alongside the related object; for example, an attribute representing the dcim.Site model might specify grouped_by="region" + colored (bool): If True, render the object as a colored badge when it exposes a `color` attribute """ template_name = 'ui/attrs/object.html' - def __init__(self, *args, linkify=None, grouped_by=None, **kwargs): + def __init__(self, *args, linkify=None, grouped_by=None, colored=False, **kwargs): super().__init__(*args, **kwargs) self.linkify = linkify self.grouped_by = grouped_by + self.colored = colored def get_context(self, obj, context): value = self.get_value(obj) @@ -270,6 +272,7 @@ class RelatedObjectAttr(ObjectAttribute): return { 'linkify': self.linkify, 'group': group, + 'colored': self.colored, } @@ -327,6 +330,7 @@ class RelatedObjectListAttr(RelatedObjectAttr): return { 'linkify': self.linkify, + 'colored': self.colored, 'items': [ { 'value': item, @@ -358,13 +362,15 @@ class NestedObjectAttr(ObjectAttribute): Parameters: linkify (bool): If True, the rendered value will be hyperlinked to the related object's detail view max_depth (int): Maximum number of ancestors to display (default: all) + colored (bool): If True, render the object as a colored badge when it exposes a `color` attribute """ template_name = 'ui/attrs/nested_object.html' - def __init__(self, *args, linkify=None, max_depth=None, **kwargs): + def __init__(self, *args, linkify=None, max_depth=None, colored=False, **kwargs): super().__init__(*args, **kwargs) self.linkify = linkify self.max_depth = max_depth + self.colored = colored def get_context(self, obj, context): value = self.get_value(obj) @@ -374,6 +380,7 @@ class NestedObjectAttr(ObjectAttribute): return { 'nodes': nodes, 'linkify': self.linkify, + 'colored': self.colored, } diff --git a/netbox/templates/ui/attrs/nested_object.html b/netbox/templates/ui/attrs/nested_object.html index 8cae08189..5d7e52d2d 100644 --- a/netbox/templates/ui/attrs/nested_object.html +++ b/netbox/templates/ui/attrs/nested_object.html @@ -1,7 +1,15 @@ {% else %} {# Display only the object #} - {% if linkify %}{{ value|linkify }}{% else %}{{ value }}{% endif %} + {% if colored and value.color %} + {% if linkify %} + {% with badge_url=value.get_absolute_url %} + {% badge value hex_color=value.color url=badge_url %} + {% endwith %} + {% else %} + {% badge value hex_color=value.color %} + {% endif %} + {% elif linkify %} + {{ value|linkify }} + {% else %} + {{ value }} + {% endif %} {% endif %} diff --git a/netbox/templates/ui/attrs/object_list.html b/netbox/templates/ui/attrs/object_list.html index 6daf3fcf2..58eaf2908 100644 --- a/netbox/templates/ui/attrs/object_list.html +++ b/netbox/templates/ui/attrs/object_list.html @@ -1,7 +1,7 @@
    {% for item in items %}
  • - {% include "ui/attrs/object.html" with value=item.value group=item.group linkify=linkify only %} + {% include "ui/attrs/object.html" with value=item.value group=item.group linkify=linkify colored=colored only %}
  • {% endfor %} {% if overflow_indicator %} diff --git a/netbox/utilities/templates/builtins/badge.html b/netbox/utilities/templates/builtins/badge.html index 78e7b3232..85ce15c34 100644 --- a/netbox/utilities/templates/builtins/badge.html +++ b/netbox/utilities/templates/builtins/badge.html @@ -1 +1,5 @@ -{% if value or show_empty %}{{ value }}{% endif %} +{% load helpers %} + +{% if value or show_empty %} + {% if url %}{% endif %}{{ value }}{% if url %}{% endif %} +{% endif %} diff --git a/netbox/utilities/templatetags/builtins/tags.py b/netbox/utilities/templatetags/builtins/tags.py index 34b2b889d..2e2c94e57 100644 --- a/netbox/utilities/templatetags/builtins/tags.py +++ b/netbox/utilities/templatetags/builtins/tags.py @@ -58,18 +58,22 @@ def customfield_value(customfield, value): @register.inclusion_tag('builtins/badge.html') -def badge(value, bg_color=None, show_empty=False): +def badge(value, bg_color=None, hex_color=None, url=None, show_empty=False): """ - Display the specified number as a badge. + Display the specified value as a badge. Args: value: The value to be displayed within the badge bg_color: Background color CSS name + hex_color: Background color in hexadecimal RRGGBB format + url: If provided, wrap the badge in a hyperlink show_empty: If true, display the badge even if value is None or zero """ return { 'value': value, 'bg_color': bg_color or 'secondary', + 'hex_color': hex_color.lstrip('#') if hex_color else None, + 'url': url, 'show_empty': show_empty, } diff --git a/netbox/utilities/tests/test_templatetags.py b/netbox/utilities/tests/test_templatetags.py index 5f16649d3..3686b7e6f 100644 --- a/netbox/utilities/tests/test_templatetags.py +++ b/netbox/utilities/tests/test_templatetags.py @@ -1,8 +1,9 @@ from unittest.mock import patch +from django.template.loader import render_to_string from django.test import TestCase, override_settings -from utilities.templatetags.builtins.tags import static_with_params +from utilities.templatetags.builtins.tags import badge, static_with_params from utilities.templatetags.helpers import _humanize_capacity, humanize_speed @@ -49,6 +50,20 @@ class StaticWithParamsTest(TestCase): self.assertNotIn('v=old_version', result) +class BadgeTest(TestCase): + """ + Test the badge template tag functionality. + """ + + def test_badge_with_hex_color_and_url(self): + html = render_to_string('builtins/badge.html', badge('Role', hex_color='ff0000', url='/dcim/device-roles/1/')) + + self.assertIn('href="/dcim/device-roles/1/"', html) + self.assertIn('background-color: #ff0000', html) + self.assertIn('color: #ffffff', html) + self.assertIn('>Role<', html) + + class HumanizeCapacityTest(TestCase): """ Test the _humanize_capacity function for correct SI/IEC unit label selection. diff --git a/netbox/virtualization/ui/panels.py b/netbox/virtualization/ui/panels.py index fef6de3f1..6cb736834 100644 --- a/netbox/virtualization/ui/panels.py +++ b/netbox/virtualization/ui/panels.py @@ -17,7 +17,7 @@ class VirtualMachinePanel(panels.ObjectAttributesPanel): name = attrs.TextAttr('name') status = attrs.ChoiceAttr('status') start_on_boot = attrs.ChoiceAttr('start_on_boot') - role = attrs.RelatedObjectAttr('role', linkify=True) + role = attrs.RelatedObjectAttr('role', linkify=True, colored=True) platform = attrs.NestedObjectAttr('platform', linkify=True, max_depth=3) description = attrs.TextAttr('description') serial = attrs.TextAttr('serial', label=_('Serial number'), style='font-monospace', copy_button=True) From d75583828b128f19309738f7583e1b89842ad0ac Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 7 Apr 2026 16:50:41 -0400 Subject: [PATCH 21/27] Fixes #21835: Remove misleading help text from ColorField (#21852) --- netbox/utilities/fields.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/netbox/utilities/fields.py b/netbox/utilities/fields.py index 137ef6b8b..3676ddb86 100644 --- a/netbox/utilities/fields.py +++ b/netbox/utilities/fields.py @@ -6,7 +6,6 @@ from django.core.exceptions import ObjectDoesNotExist from django.db import models from django.db.models.fields.mixins import FieldCacheMixin from django.utils.functional import cached_property -from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from .forms.widgets import ColorSelect @@ -31,7 +30,6 @@ class ColorField(models.CharField): def formfield(self, **kwargs): kwargs['widget'] = ColorSelect - kwargs['help_text'] = mark_safe(_('RGB color in hexadecimal. Example: ') + '00ff00') return super().formfield(**kwargs) From dbb871b75a3517860d5274db1427a31ec3b7d10a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 05:32:13 +0000 Subject: [PATCH 22/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 154 +++++++++---------- 1 file changed, 75 insertions(+), 79 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index bad80b405..7592ab0c9 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-04-04 05:26+0000\n" +"POT-Creation-Date: 2026-04-08 05:31+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -84,7 +84,7 @@ msgid "Decommissioned" msgstr "" #: netbox/circuits/choices.py:90 netbox/dcim/choices.py:2030 -#: netbox/dcim/tables/devices.py:1208 +#: netbox/dcim/tables/devices.py:1228 #: netbox/templates/dcim/interface/attrs/mac_address.html:3 #: netbox/tenancy/choices.py:17 msgid "Primary" @@ -103,7 +103,7 @@ msgstr "" msgid "Inactive" msgstr "" -#: netbox/circuits/choices.py:107 netbox/dcim/tables/devices.py:714 +#: netbox/circuits/choices.py:107 netbox/dcim/tables/devices.py:734 #: netbox/templates/dcim/panels/interface_wireless.html:12 #: netbox/vpn/choices.py:63 msgid "Peer" @@ -453,8 +453,8 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:1484 netbox/dcim/forms/filtersets.py:1220 #: netbox/dcim/forms/filtersets.py:1545 netbox/dcim/forms/filtersets.py:1761 #: netbox/dcim/forms/filtersets.py:1780 netbox/dcim/forms/filtersets.py:1804 -#: netbox/dcim/forms/filtersets.py:1823 netbox/dcim/tables/devices.py:786 -#: netbox/dcim/tables/devices.py:839 netbox/dcim/tables/devices.py:1100 +#: netbox/dcim/forms/filtersets.py:1823 netbox/dcim/tables/devices.py:806 +#: netbox/dcim/tables/devices.py:859 netbox/dcim/tables/devices.py:1120 #: netbox/dcim/tables/devicetypes.py:214 netbox/dcim/tables/devicetypes.py:255 #: netbox/dcim/tables/devicetypes.py:274 netbox/dcim/tables/racks.py:30 #: netbox/extras/forms/bulk_edit.py:306 netbox/extras/tables/tables.py:554 @@ -547,8 +547,8 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1107 netbox/dcim/forms/filtersets.py:1210 #: netbox/dcim/forms/filtersets.py:1328 netbox/dcim/forms/filtersets.py:1549 #: netbox/dcim/forms/filtersets.py:1925 netbox/dcim/tables/devices.py:144 -#: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:892 -#: netbox/dcim/tables/devices.py:1048 netbox/dcim/tables/devices.py:1156 +#: netbox/dcim/tables/devices.py:543 netbox/dcim/tables/devices.py:912 +#: netbox/dcim/tables/devices.py:1068 netbox/dcim/tables/devices.py:1176 #: netbox/dcim/tables/modules.py:101 netbox/dcim/tables/power.py:71 #: netbox/dcim/tables/racks.py:115 netbox/dcim/tables/racks.py:212 #: netbox/dcim/tables/sites.py:62 netbox/dcim/tables/sites.py:106 @@ -865,7 +865,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1902 netbox/dcim/forms/filtersets.py:1942 #: netbox/dcim/forms/model_forms.py:293 netbox/dcim/forms/model_forms.py:1260 #: netbox/dcim/forms/model_forms.py:1743 netbox/dcim/forms/object_import.py:182 -#: netbox/dcim/tables/devices.py:173 netbox/dcim/tables/devices.py:1032 +#: netbox/dcim/tables/devices.py:173 netbox/dcim/tables/devices.py:1052 #: netbox/dcim/tables/devicetypes.py:318 netbox/dcim/tables/racks.py:118 #: netbox/extras/filtersets.py:734 netbox/ipam/forms/bulk_edit.py:209 #: netbox/ipam/forms/bulk_edit.py:253 netbox/ipam/forms/bulk_edit.py:300 @@ -981,7 +981,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:1334 netbox/dcim/forms/model_forms.py:1603 #: netbox/dcim/forms/model_forms.py:1784 netbox/dcim/forms/model_forms.py:1819 #: netbox/dcim/forms/model_forms.py:1944 netbox/dcim/tables/connections.py:66 -#: netbox/dcim/tables/devices.py:1199 netbox/dcim/views.py:3457 +#: netbox/dcim/tables/devices.py:1219 netbox/dcim/views.py:3457 #: netbox/dcim/views.py:3560 netbox/ipam/forms/bulk_import.py:323 #: netbox/ipam/forms/model_forms.py:283 netbox/ipam/forms/model_forms.py:292 #: netbox/ipam/tables/fhrp.py:61 netbox/ipam/tables/ip.py:323 @@ -1529,14 +1529,14 @@ msgstr "" #: netbox/core/tables/tasks.py:12 netbox/core/tables/tasks.py:117 #: netbox/dcim/forms/filtersets.py:82 netbox/dcim/forms/object_create.py:45 #: netbox/dcim/tables/devices.py:139 netbox/dcim/tables/devices.py:297 -#: netbox/dcim/tables/devices.py:410 netbox/dcim/tables/devices.py:451 -#: netbox/dcim/tables/devices.py:499 netbox/dcim/tables/devices.py:553 -#: netbox/dcim/tables/devices.py:576 netbox/dcim/tables/devices.py:707 -#: netbox/dcim/tables/devices.py:729 netbox/dcim/tables/devices.py:810 -#: netbox/dcim/tables/devices.py:863 netbox/dcim/tables/devices.py:938 -#: netbox/dcim/tables/devices.py:1007 netbox/dcim/tables/devices.py:1072 -#: netbox/dcim/tables/devices.py:1091 netbox/dcim/tables/devices.py:1120 -#: netbox/dcim/tables/devices.py:1147 netbox/dcim/tables/devicetypes.py:32 +#: netbox/dcim/tables/devices.py:421 netbox/dcim/tables/devices.py:462 +#: netbox/dcim/tables/devices.py:510 netbox/dcim/tables/devices.py:564 +#: netbox/dcim/tables/devices.py:587 netbox/dcim/tables/devices.py:727 +#: netbox/dcim/tables/devices.py:749 netbox/dcim/tables/devices.py:830 +#: netbox/dcim/tables/devices.py:883 netbox/dcim/tables/devices.py:958 +#: netbox/dcim/tables/devices.py:1027 netbox/dcim/tables/devices.py:1092 +#: netbox/dcim/tables/devices.py:1111 netbox/dcim/tables/devices.py:1140 +#: netbox/dcim/tables/devices.py:1167 netbox/dcim/tables/devicetypes.py:32 #: netbox/dcim/tables/devicetypes.py:229 netbox/dcim/tables/modules.py:18 #: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:59 #: netbox/dcim/tables/racks.py:21 netbox/dcim/tables/racks.py:103 @@ -1686,12 +1686,12 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:1895 netbox/dcim/forms/model_forms.py:1968 #: netbox/dcim/forms/object_create.py:207 netbox/dcim/tables/connections.py:23 #: netbox/dcim/tables/connections.py:42 netbox/dcim/tables/connections.py:61 -#: netbox/dcim/tables/devices.py:293 netbox/dcim/tables/devices.py:388 -#: netbox/dcim/tables/devices.py:429 netbox/dcim/tables/devices.py:471 -#: netbox/dcim/tables/devices.py:521 netbox/dcim/tables/devices.py:638 -#: netbox/dcim/tables/devices.py:779 netbox/dcim/tables/devices.py:832 -#: netbox/dcim/tables/devices.py:885 netbox/dcim/tables/devices.py:957 -#: netbox/dcim/tables/devices.py:1025 netbox/dcim/tables/devices.py:1151 +#: netbox/dcim/tables/devices.py:293 netbox/dcim/tables/devices.py:399 +#: netbox/dcim/tables/devices.py:440 netbox/dcim/tables/devices.py:482 +#: netbox/dcim/tables/devices.py:532 netbox/dcim/tables/devices.py:649 +#: netbox/dcim/tables/devices.py:799 netbox/dcim/tables/devices.py:852 +#: netbox/dcim/tables/devices.py:905 netbox/dcim/tables/devices.py:977 +#: netbox/dcim/tables/devices.py:1045 netbox/dcim/tables/devices.py:1171 #: netbox/dcim/tables/modules.py:84 netbox/extras/forms/filtersets.py:405 #: netbox/ipam/forms/bulk_import.py:309 netbox/ipam/forms/filtersets.py:649 #: netbox/ipam/forms/model_forms.py:325 netbox/ipam/tables/vlans.py:156 @@ -1961,7 +1961,7 @@ msgstr "" #: netbox/core/tables/data.py:28 netbox/dcim/choices.py:2068 #: netbox/dcim/forms/bulk_edit.py:1111 netbox/dcim/forms/bulk_edit.py:1392 #: netbox/dcim/forms/filtersets.py:1619 netbox/dcim/forms/filtersets.py:1712 -#: netbox/dcim/tables/devices.py:581 netbox/dcim/tables/devicetypes.py:233 +#: netbox/dcim/tables/devices.py:592 netbox/dcim/tables/devicetypes.py:233 #: netbox/extras/forms/bulk_edit.py:127 netbox/extras/forms/bulk_edit.py:195 #: netbox/extras/forms/bulk_edit.py:223 netbox/extras/forms/bulk_edit.py:282 #: netbox/extras/forms/filtersets.py:156 netbox/extras/forms/filtersets.py:252 @@ -2964,9 +2964,9 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:214 netbox/dcim/forms/model_forms.py:540 #: netbox/dcim/forms/model_forms.py:561 netbox/dcim/forms/model_forms.py:1252 #: netbox/dcim/forms/model_forms.py:1735 netbox/dcim/forms/object_import.py:177 -#: netbox/dcim/tables/devices.py:702 netbox/dcim/tables/devices.py:737 -#: netbox/dcim/tables/devices.py:965 netbox/dcim/tables/devices.py:1052 -#: netbox/dcim/tables/devices.py:1205 netbox/ipam/forms/bulk_import.py:601 +#: netbox/dcim/tables/devices.py:722 netbox/dcim/tables/devices.py:757 +#: netbox/dcim/tables/devices.py:985 netbox/dcim/tables/devices.py:1072 +#: netbox/dcim/tables/devices.py:1225 netbox/ipam/forms/bulk_import.py:601 #: netbox/ipam/forms/model_forms.py:758 netbox/ipam/tables/fhrp.py:56 #: netbox/ipam/tables/ip.py:329 netbox/ipam/tables/services.py:42 #: netbox/netbox/tables/tables.py:329 netbox/netbox/ui/panels.py:208 @@ -3099,7 +3099,7 @@ msgstr "" #: netbox/dcim/choices.py:1164 netbox/dcim/forms/bulk_edit.py:1405 #: netbox/dcim/forms/bulk_import.py:949 netbox/dcim/forms/model_forms.py:1133 -#: netbox/dcim/tables/devices.py:741 +#: netbox/dcim/tables/devices.py:761 #: netbox/virtualization/forms/bulk_edit.py:186 #: netbox/virtualization/forms/bulk_import.py:171 #: netbox/virtualization/tables/virtualmachines.py:140 @@ -3878,7 +3878,7 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:1034 netbox/dcim/forms/filtersets.py:1687 #: netbox/dcim/forms/model_forms.py:1581 #: netbox/dcim/models/device_components.py:899 -#: netbox/dcim/tables/devices.py:667 netbox/dcim/ui/panels.py:516 +#: netbox/dcim/tables/devices.py:678 netbox/dcim/ui/panels.py:516 #: netbox/ipam/filtersets.py:360 netbox/ipam/filtersets.py:372 #: netbox/ipam/filtersets.py:511 netbox/ipam/filtersets.py:618 #: netbox/ipam/filtersets.py:630 netbox/ipam/forms/bulk_edit.py:190 @@ -3917,7 +3917,7 @@ msgid "L2VPN (ID)" msgstr "" #: netbox/dcim/filtersets.py:2093 netbox/dcim/forms/filtersets.py:1692 -#: netbox/dcim/tables/devices.py:607 netbox/dcim/ui/panels.py:496 +#: netbox/dcim/tables/devices.py:618 netbox/dcim/ui/panels.py:496 #: netbox/ipam/filtersets.py:1087 netbox/ipam/forms/filtersets.py:613 #: netbox/ipam/tables/vlans.py:116 netbox/ipam/ui/panels.py:206 #: netbox/virtualization/forms/filtersets.py:257 @@ -3974,7 +3974,7 @@ msgstr "" msgid "LAG interface (ID)" msgstr "" -#: netbox/dcim/filtersets.py:2186 netbox/dcim/tables/devices.py:1194 +#: netbox/dcim/filtersets.py:2186 netbox/dcim/tables/devices.py:1214 #: netbox/virtualization/ui/panels.py:71 msgid "MAC Address" msgstr "" @@ -4002,7 +4002,7 @@ msgstr "" msgid "Wireless LAN" msgstr "" -#: netbox/dcim/filtersets.py:2248 netbox/dcim/tables/devices.py:654 +#: netbox/dcim/filtersets.py:2248 netbox/dcim/tables/devices.py:665 msgid "Wireless link" msgstr "" @@ -4111,7 +4111,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:462 netbox/dcim/forms/model_forms.py:566 #: netbox/dcim/forms/model_forms.py:1265 netbox/dcim/forms/model_forms.py:1748 #: netbox/dcim/forms/object_import.py:188 netbox/dcim/tables/devices.py:101 -#: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1035 +#: netbox/dcim/tables/devices.py:176 netbox/dcim/tables/devices.py:1055 #: netbox/dcim/tables/devicetypes.py:87 netbox/dcim/tables/devicetypes.py:322 #: netbox/dcim/tables/modules.py:47 netbox/dcim/tables/modules.py:92 #: netbox/dcim/tables/racks.py:51 netbox/dcim/tables/racks.py:121 @@ -4538,7 +4538,7 @@ msgstr "" msgid "Module" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:1419 netbox/dcim/tables/devices.py:746 +#: netbox/dcim/forms/bulk_edit.py:1419 netbox/dcim/tables/devices.py:766 #: netbox/dcim/ui/panels.py:504 msgid "LAG" msgstr "" @@ -4550,7 +4550,7 @@ msgstr "" #: netbox/dcim/forms/bulk_edit.py:1430 netbox/dcim/forms/bulk_import.py:819 #: netbox/dcim/forms/bulk_import.py:845 netbox/dcim/forms/filtersets.py:1429 #: netbox/dcim/forms/filtersets.py:1469 netbox/dcim/forms/filtersets.py:1607 -#: netbox/dcim/tables/devices.py:651 netbox/dcim/ui/panels.py:483 +#: netbox/dcim/tables/devices.py:662 netbox/dcim/ui/panels.py:483 #: netbox/templates/circuits/inc/circuit_termination_fields.html:64 msgid "Speed" msgstr "" @@ -4577,7 +4577,7 @@ msgid "VLAN group" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1476 netbox/dcim/forms/bulk_import.py:1007 -#: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:616 +#: netbox/dcim/forms/model_forms.py:1553 netbox/dcim/tables/devices.py:627 #: netbox/dcim/ui/panels.py:493 netbox/virtualization/forms/bulk_edit.py:222 #: netbox/virtualization/forms/bulk_import.py:191 #: netbox/virtualization/forms/model_forms.py:337 @@ -4585,7 +4585,7 @@ msgid "Untagged VLAN" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1485 netbox/dcim/forms/bulk_import.py:1014 -#: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:622 +#: netbox/dcim/forms/model_forms.py:1562 netbox/dcim/tables/devices.py:633 #: netbox/virtualization/forms/bulk_edit.py:230 #: netbox/virtualization/forms/bulk_import.py:198 #: netbox/virtualization/forms/model_forms.py:346 @@ -4613,7 +4613,7 @@ msgid "Wireless LAN group" msgstr "" #: netbox/dcim/forms/bulk_edit.py:1528 netbox/dcim/forms/model_forms.py:1539 -#: netbox/dcim/tables/devices.py:660 netbox/dcim/ui/panels.py:570 +#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:570 #: netbox/netbox/navigation/menu.py:156 #: netbox/wireless/tables/wirelesslan.py:20 msgid "Wireless LANs" @@ -5187,7 +5187,7 @@ msgid "" msgstr "" #: netbox/dcim/forms/bulk_import.py:1594 netbox/dcim/forms/model_forms.py:926 -#: netbox/dcim/tables/devices.py:1124 +#: netbox/dcim/tables/devices.py:1144 #: netbox/templates/dcim/panels/virtual_chassis_members.html:10 msgid "Master" msgstr "" @@ -5356,7 +5356,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:1420 netbox/dcim/forms/filtersets.py:1460 #: netbox/dcim/forms/filtersets.py:1500 netbox/dcim/forms/filtersets.py:1535 #: netbox/dcim/forms/filtersets.py:1584 netbox/dcim/tables/devices.py:381 -#: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:377 +#: netbox/dcim/tables/devices.py:693 netbox/dcim/ui/panels.py:377 #: netbox/dcim/ui/panels.py:525 netbox/ipam/tables/vlans.py:174 #: netbox/templates/circuits/inc/circuit_termination_fields.html:16 msgid "Connection" @@ -5409,7 +5409,7 @@ msgstr "" msgid "Cable" msgstr "" -#: netbox/dcim/forms/filtersets.py:1918 netbox/dcim/tables/devices.py:1044 +#: netbox/dcim/forms/filtersets.py:1918 netbox/dcim/tables/devices.py:1064 msgid "Discovered" msgstr "" @@ -5630,7 +5630,7 @@ msgid "Rear Port" msgstr "" #: netbox/dcim/forms/model_forms.py:1339 netbox/dcim/forms/model_forms.py:1824 -#: netbox/dcim/tables/connections.py:47 netbox/dcim/tables/devices.py:528 +#: netbox/dcim/tables/connections.py:47 netbox/dcim/tables/devices.py:539 #: netbox/dcim/views.py:3193 netbox/dcim/views.py:4653 msgid "Power Port" msgstr "" @@ -5730,7 +5730,7 @@ msgid "" "expected." msgstr "" -#: netbox/dcim/forms/object_create.py:312 netbox/dcim/tables/devices.py:1130 +#: netbox/dcim/forms/object_create.py:312 netbox/dcim/tables/devices.py:1150 #: netbox/ipam/tables/fhrp.py:31 netbox/ipam/ui/panels.py:184 #: netbox/ipam/views.py:1477 netbox/templates/dcim/virtualchassis_edit.html:59 #: netbox/users/views.py:347 @@ -6232,7 +6232,7 @@ msgid "tagged VLANs" msgstr "" #: netbox/dcim/models/device_components.py:693 -#: netbox/dcim/tables/devices.py:625 netbox/dcim/ui/panels.py:492 +#: netbox/dcim/tables/devices.py:636 netbox/dcim/ui/panels.py:492 #: netbox/ipam/forms/bulk_edit.py:451 netbox/ipam/forms/bulk_import.py:547 #: netbox/ipam/forms/filtersets.py:608 netbox/ipam/forms/model_forms.py:684 #: netbox/ipam/tables/vlans.py:109 netbox/ipam/ui/panels.py:205 @@ -7395,7 +7395,7 @@ msgstr "" msgid "U Height" msgstr "" -#: netbox/dcim/tables/devices.py:196 netbox/dcim/tables/devices.py:1161 +#: netbox/dcim/tables/devices.py:196 netbox/dcim/tables/devices.py:1181 #: netbox/ipam/forms/bulk_import.py:620 netbox/ipam/forms/model_forms.py:309 #: netbox/ipam/forms/model_forms.py:321 netbox/ipam/tables/ip.py:307 #: netbox/ipam/tables/ip.py:371 netbox/ipam/tables/ip.py:386 @@ -7404,12 +7404,12 @@ msgstr "" msgid "IP Address" msgstr "" -#: netbox/dcim/tables/devices.py:200 netbox/dcim/tables/devices.py:1165 +#: netbox/dcim/tables/devices.py:200 netbox/dcim/tables/devices.py:1185 #: netbox/virtualization/tables/virtualmachines.py:57 msgid "IPv4 Address" msgstr "" -#: netbox/dcim/tables/devices.py:204 netbox/dcim/tables/devices.py:1169 +#: netbox/dcim/tables/devices.py:204 netbox/dcim/tables/devices.py:1189 #: netbox/virtualization/tables/virtualmachines.py:61 msgid "IPv6 Address" msgstr "" @@ -7447,7 +7447,7 @@ msgstr "" msgid "Power outlets" msgstr "" -#: netbox/dcim/tables/devices.py:254 netbox/dcim/tables/devices.py:1174 +#: netbox/dcim/tables/devices.py:254 netbox/dcim/tables/devices.py:1194 #: netbox/dcim/tables/devicetypes.py:132 netbox/dcim/views.py:1426 #: netbox/dcim/views.py:1779 netbox/dcim/views.py:2652 #: netbox/netbox/navigation/menu.py:98 netbox/netbox/navigation/menu.py:262 @@ -7514,15 +7514,15 @@ msgstr "" msgid "Mark Connected" msgstr "" -#: netbox/dcim/tables/devices.py:478 +#: netbox/dcim/tables/devices.py:489 msgid "Maximum draw (W)" msgstr "" -#: netbox/dcim/tables/devices.py:481 +#: netbox/dcim/tables/devices.py:492 msgid "Allocated draw (W)" msgstr "" -#: netbox/dcim/tables/devices.py:586 netbox/dcim/views.py:3291 +#: netbox/dcim/tables/devices.py:597 netbox/dcim/views.py:3291 #: netbox/ipam/forms/model_forms.py:775 netbox/ipam/tables/fhrp.py:28 #: netbox/ipam/ui/panels.py:253 netbox/ipam/views.py:826 #: netbox/ipam/views.py:940 netbox/netbox/navigation/menu.py:168 @@ -7532,22 +7532,22 @@ msgstr "" msgid "IP Addresses" msgstr "" -#: netbox/dcim/tables/devices.py:589 +#: netbox/dcim/tables/devices.py:600 msgid "Primary MAC" msgstr "" -#: netbox/dcim/tables/devices.py:595 netbox/dcim/views.py:3296 +#: netbox/dcim/tables/devices.py:606 netbox/dcim/views.py:3296 #: netbox/netbox/navigation/menu.py:114 msgid "MAC Addresses" msgstr "" -#: netbox/dcim/tables/devices.py:601 netbox/ipam/ui/panels.py:15 +#: netbox/dcim/tables/devices.py:612 netbox/ipam/ui/panels.py:15 #: netbox/netbox/navigation/menu.py:214 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:6 msgid "FHRP Groups" msgstr "" -#: netbox/dcim/tables/devices.py:613 netbox/dcim/ui/panels.py:495 +#: netbox/dcim/tables/devices.py:624 netbox/dcim/ui/panels.py:495 #: netbox/virtualization/ui/panels.py:64 netbox/vpn/forms/bulk_edit.py:64 #: netbox/vpn/forms/bulk_import.py:75 netbox/vpn/forms/filtersets.py:50 #: netbox/vpn/forms/filtersets.py:92 netbox/vpn/forms/model_forms.py:58 @@ -7555,68 +7555,68 @@ msgstr "" msgid "Tunnel" msgstr "" -#: netbox/dcim/tables/devices.py:645 netbox/dcim/tables/devicetypes.py:236 +#: netbox/dcim/tables/devices.py:656 netbox/dcim/tables/devicetypes.py:236 msgid "Management Only" msgstr "" -#: netbox/dcim/tables/devices.py:664 +#: netbox/dcim/tables/devices.py:675 msgid "VDCs" msgstr "" -#: netbox/dcim/tables/devices.py:671 netbox/dcim/ui/panels.py:540 +#: netbox/dcim/tables/devices.py:682 netbox/dcim/ui/panels.py:540 msgid "Virtual Circuit" msgstr "" -#: netbox/dcim/tables/devices.py:789 netbox/dcim/tables/devices.py:842 +#: netbox/dcim/tables/devices.py:809 netbox/dcim/tables/devices.py:862 #: netbox/dcim/tables/devicetypes.py:258 netbox/dcim/tables/devicetypes.py:277 msgid "Mappings" msgstr "" -#: netbox/dcim/tables/devices.py:897 netbox/dcim/views.py:3732 +#: netbox/dcim/tables/devices.py:917 netbox/dcim/views.py:3732 msgid "Installed Device" msgstr "" -#: netbox/dcim/tables/devices.py:902 +#: netbox/dcim/tables/devices.py:922 msgid "Installed Role" msgstr "" -#: netbox/dcim/tables/devices.py:907 +#: netbox/dcim/tables/devices.py:927 msgid "Installed Type" msgstr "" -#: netbox/dcim/tables/devices.py:911 +#: netbox/dcim/tables/devices.py:931 msgid "Installed Description" msgstr "" -#: netbox/dcim/tables/devices.py:915 +#: netbox/dcim/tables/devices.py:935 msgid "Installed Serial" msgstr "" -#: netbox/dcim/tables/devices.py:919 +#: netbox/dcim/tables/devices.py:939 msgid "Installed Asset Tag" msgstr "" -#: netbox/dcim/tables/devices.py:969 netbox/dcim/views.py:3657 +#: netbox/dcim/tables/devices.py:989 netbox/dcim/views.py:3657 msgid "Installed Module" msgstr "" -#: netbox/dcim/tables/devices.py:972 +#: netbox/dcim/tables/devices.py:992 msgid "Module Serial" msgstr "" -#: netbox/dcim/tables/devices.py:976 +#: netbox/dcim/tables/devices.py:996 msgid "Module Asset Tag" msgstr "" -#: netbox/dcim/tables/devices.py:985 +#: netbox/dcim/tables/devices.py:1005 msgid "Module Status" msgstr "" -#: netbox/dcim/tables/devices.py:1039 netbox/dcim/tables/devicetypes.py:326 +#: netbox/dcim/tables/devices.py:1059 netbox/dcim/tables/devicetypes.py:326 msgid "Component" msgstr "" -#: netbox/dcim/tables/devices.py:1097 +#: netbox/dcim/tables/devices.py:1117 msgid "Items" msgstr "" @@ -12768,13 +12768,13 @@ msgid "" "Invalid decoding option: {decoding}! Must be one of {image_decoding_choices}" msgstr "" -#: netbox/netbox/ui/attrs.py:295 +#: netbox/netbox/ui/attrs.py:298 #, python-brace-format msgid "" "Invalid max_items value: {max_items}! Must be a positive integer or None." msgstr "" -#: netbox/netbox/ui/attrs.py:440 +#: netbox/netbox/ui/attrs.py:447 msgid "GPS coordinates" msgstr "" @@ -15664,18 +15664,14 @@ msgstr "" msgid "Invalid delimiter name: {name}" msgstr "" -#: netbox/utilities/fields.py:34 -msgid "RGB color in hexadecimal. Example: " -msgstr "" - -#: netbox/utilities/fields.py:162 +#: netbox/utilities/fields.py:160 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " "in the format 'app.model'" msgstr "" -#: netbox/utilities/fields.py:172 +#: netbox/utilities/fields.py:170 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " From e864dc3ae018fc39e18aa7d1f822a6f8ffff5f87 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Wed, 8 Apr 2026 22:16:36 +0200 Subject: [PATCH 23/27] fix(extras): Ensure unique Image Attachment names on S3 Make image attachment filename generation use Django's base collision handling so overwrite-style storage backends behave like local file storage. This preserves the original filename for the first upload, adds a suffix only on collision, and avoids duplicate image paths in object change records. Add regression tests for path generation and collision handling. Fixes #21801 --- netbox/extras/tests/test_models.py | 85 +++++++++++++++++++++++++ netbox/extras/tests/test_utils.py | 99 +++++++++++++++++++++++++----- netbox/extras/utils.py | 32 +++++++--- 3 files changed, 190 insertions(+), 26 deletions(-) diff --git a/netbox/extras/tests/test_models.py b/netbox/extras/tests/test_models.py index e4cd4ff43..7a2bbed5c 100644 --- a/netbox/extras/tests/test_models.py +++ b/netbox/extras/tests/test_models.py @@ -1,10 +1,15 @@ +import io import tempfile from pathlib import Path +from unittest.mock import patch from django.contrib.contenttypes.models import ContentType +from django.core.files.base import ContentFile +from django.core.files.storage import Storage from django.core.files.uploadedfile import SimpleUploadedFile from django.forms import ValidationError from django.test import TestCase, tag +from PIL import Image from core.models import AutoSyncRecord, DataSource, ObjectType from dcim.models import Device, DeviceRole, DeviceType, Location, Manufacturer, Platform, Region, Site, SiteGroup @@ -14,10 +19,50 @@ from utilities.exceptions import AbortRequest from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine +class OverwriteStyleMemoryStorage(Storage): + """ + In-memory storage that mimics overwrite-style backends by returning the + incoming name unchanged from get_available_name(). + """ + + def __init__(self): + self.files = {} + + def _open(self, name, mode='rb'): + return ContentFile(self.files[name], name=name) + + def _save(self, name, content): + self.files[name] = content.read() + return name + + def delete(self, name): + self.files.pop(name, None) + + def exists(self, name): + return name in self.files + + def get_available_name(self, name, max_length=None): + return name + + def get_alternative_name(self, file_root, file_ext): + return f'{file_root}_sdmmer4{file_ext}' + + def listdir(self, path): + return [], list(self.files) + + def size(self, name): + return len(self.files[name]) + + def url(self, name): + return f'https://example.invalid/{name}' + + class ImageAttachmentTests(TestCase): @classmethod def setUpTestData(cls): cls.ct_rack = ContentType.objects.get_by_natural_key('dcim', 'rack') + cls.ct_site = ContentType.objects.get_by_natural_key('dcim', 'site') + cls.site = Site.objects.create(name='Site 1') cls.image_content = b'' def _stub_image_attachment(self, object_id, image_filename, name=None): @@ -41,6 +86,15 @@ class ImageAttachmentTests(TestCase): ) return ia + def _uploaded_png(self, filename): + image = io.BytesIO() + Image.new('RGB', (1, 1)).save(image, format='PNG') + return SimpleUploadedFile( + name=filename, + content=image.getvalue(), + content_type='image/png', + ) + def test_filename_strips_expected_prefix(self): """ Tests that the filename of the image attachment is stripped of the expected @@ -89,6 +143,37 @@ class ImageAttachmentTests(TestCase): ia = self._stub_image_attachment(12, 'image-attachments/rack_12_file.png', name='') self.assertEqual('file.png', str(ia)) + def test_duplicate_uploaded_names_get_suffixed_with_overwrite_style_storage(self): + storage = OverwriteStyleMemoryStorage() + field = ImageAttachment._meta.get_field('image') + + with patch.object(field, 'storage', storage): + first = ImageAttachment( + object_type=self.ct_site, + object_id=self.site.pk, + image=self._uploaded_png('action-buttons.png'), + ) + first.save() + + second = ImageAttachment( + object_type=self.ct_site, + object_id=self.site.pk, + image=self._uploaded_png('action-buttons.png'), + ) + second.save() + + base_name = f'image-attachments/site_{self.site.pk}_action-buttons.png' + suffixed_name = f'image-attachments/site_{self.site.pk}_action-buttons_sdmmer4.png' + + self.assertEqual(first.image.name, base_name) + self.assertEqual(second.image.name, suffixed_name) + self.assertNotEqual(first.image.name, second.image.name) + + self.assertEqual(first.filename, 'action-buttons.png') + self.assertEqual(second.filename, 'action-buttons_sdmmer4.png') + + self.assertCountEqual(storage.files.keys(), {base_name, suffixed_name}) + class TagTest(TestCase): diff --git a/netbox/extras/tests/test_utils.py b/netbox/extras/tests/test_utils.py index 540c64701..1a80c8121 100644 --- a/netbox/extras/tests/test_utils.py +++ b/netbox/extras/tests/test_utils.py @@ -1,10 +1,12 @@ from types import SimpleNamespace +from unittest.mock import patch from django.contrib.contenttypes.models import ContentType +from django.core.files.storage import Storage from django.test import TestCase -from extras.models import ExportTemplate -from extras.utils import filename_from_model, image_upload +from extras.models import ExportTemplate, ImageAttachment +from extras.utils import _build_image_attachment_path, filename_from_model, image_upload from tenancy.models import ContactGroup, TenantGroup from wireless.models import WirelessLANGroup @@ -22,6 +24,25 @@ class FilenameFromModelTests(TestCase): self.assertEqual(filename_from_model(model), expected) +class OverwriteStyleStorage(Storage): + """ + Mimic an overwrite-style backend (for example, S3 with file_overwrite=True), + where get_available_name() returns the incoming name unchanged. + """ + + def __init__(self, existing_names=None): + self.existing_names = set(existing_names or []) + + def exists(self, name): + return name in self.existing_names + + def get_available_name(self, name, max_length=None): + return name + + def get_alternative_name(self, file_root, file_ext): + return f'{file_root}_sdmmer4{file_ext}' + + class ImageUploadTests(TestCase): @classmethod def setUpTestData(cls): @@ -31,16 +52,18 @@ class ImageUploadTests(TestCase): def _stub_instance(self, object_id=12, name=None): """ - Creates a minimal stub for use with the `image_upload()` function. - - This method generates an instance of `SimpleNamespace` containing a set - of attributes required to simulate the expected input for the - `image_upload()` method. - It is designed to simplify testing or processing by providing a - lightweight representation of an object. + Creates a minimal stub for use with image attachment path generation. """ return SimpleNamespace(object_type=self.ct_rack, object_id=object_id, name=name) + def _bound_instance(self, *, storage, object_id=12, name=None, max_length=100): + return SimpleNamespace( + object_type=self.ct_rack, + object_id=object_id, + name=name, + image=SimpleNamespace(field=SimpleNamespace(storage=storage, max_length=max_length)), + ) + def _second_segment(self, path: str): """ Extracts and returns the portion of the input string after the @@ -53,7 +76,7 @@ class ImageUploadTests(TestCase): Tests handling of a Windows file path with a fake directory and extension. """ inst = self._stub_instance(name=None) - path = image_upload(inst, r'C:\fake_path\MyPhoto.JPG') + path = _build_image_attachment_path(inst, r'C:\fake_path\MyPhoto.JPG') # Base directory and single-level path seg2 = self._second_segment(path) self.assertTrue(path.startswith('image-attachments/rack_12_')) @@ -67,7 +90,7 @@ class ImageUploadTests(TestCase): create subdirectories. """ inst = self._stub_instance(name='5/31/23') - path = image_upload(inst, 'image.png') + path = _build_image_attachment_path(inst, 'image.png') seg2 = self._second_segment(path) self.assertTrue(seg2.startswith('rack_12_')) self.assertNotIn('/', seg2) @@ -80,7 +103,7 @@ class ImageUploadTests(TestCase): into a single directory name without creating subdirectories. """ inst = self._stub_instance(name=r'5\31\23') - path = image_upload(inst, 'image_name.png') + path = _build_image_attachment_path(inst, 'image_name.png') seg2 = self._second_segment(path) self.assertTrue(seg2.startswith('rack_12_')) @@ -93,7 +116,7 @@ class ImageUploadTests(TestCase): Tests the output path format generated by the `image_upload` function. """ inst = self._stub_instance(object_id=99, name='label') - path = image_upload(inst, 'a.webp') + path = _build_image_attachment_path(inst, 'a.webp') # The second segment must begin with "rack_99_" seg2 = self._second_segment(path) self.assertTrue(seg2.startswith('rack_99_')) @@ -105,7 +128,7 @@ class ImageUploadTests(TestCase): is omitted. """ inst = self._stub_instance(name='test') - path = image_upload(inst, 'document.txt') + path = _build_image_attachment_path(inst, 'document.txt') seg2 = self._second_segment(path) self.assertTrue(seg2.startswith('rack_12_test')) @@ -121,7 +144,7 @@ class ImageUploadTests(TestCase): # Suppose the instance name has surrounding whitespace and # extra slashes. inst = self._stub_instance(name=' my/complex\\name ') - path = image_upload(inst, 'irrelevant.png') + path = _build_image_attachment_path(inst, 'irrelevant.png') # The output should be flattened and sanitized. # We expect the name to be transformed into a valid filename without @@ -141,7 +164,7 @@ class ImageUploadTests(TestCase): for name in ['2025/09/12', r'2025\09\12']: with self.subTest(name=name): inst = self._stub_instance(name=name) - path = image_upload(inst, 'x.jpeg') + path = _build_image_attachment_path(inst, 'x.jpeg') seg2 = self._second_segment(path) self.assertTrue(seg2.startswith('rack_12_')) self.assertNotIn('/', seg2) @@ -154,7 +177,49 @@ class ImageUploadTests(TestCase): SuspiciousFileOperation, the fallback default is used. """ inst = self._stub_instance(name=' ') - path = image_upload(inst, 'sample.png') + path = _build_image_attachment_path(inst, 'sample.png') # Expect the fallback name 'unnamed' to be used. self.assertIn('unnamed', path) self.assertTrue(path.startswith('image-attachments/rack_12_')) + + def test_image_upload_preserves_original_name_when_available(self): + inst = self._bound_instance( + storage=OverwriteStyleStorage(), + name='action-buttons', + ) + + path = image_upload(inst, 'action-buttons.png') + + self.assertEqual(path, 'image-attachments/rack_12_action-buttons.png') + + def test_image_upload_uses_base_collision_handling_with_overwrite_style_storage(self): + inst = self._bound_instance( + storage=OverwriteStyleStorage(existing_names={'image-attachments/rack_12_action-buttons.png'}), + name='action-buttons', + ) + + path = image_upload(inst, 'action-buttons.png') + + self.assertEqual( + path, + 'image-attachments/rack_12_action-buttons_sdmmer4.png', + ) + + def test_image_field_generate_filename_uses_image_upload_collision_handling(self): + field = ImageAttachment._meta.get_field('image') + instance = ImageAttachment( + object_type=self.ct_rack, + object_id=12, + ) + + with patch.object( + field, + 'storage', + OverwriteStyleStorage(existing_names={'image-attachments/rack_12_action-buttons.png'}), + ): + path = field.generate_filename(instance, 'action-buttons.png') + + self.assertEqual( + path, + 'image-attachments/rack_12_action-buttons_sdmmer4.png', + ) diff --git a/netbox/extras/utils.py b/netbox/extras/utils.py index 4640902f0..612096ad7 100644 --- a/netbox/extras/utils.py +++ b/netbox/extras/utils.py @@ -2,7 +2,7 @@ import importlib from pathlib import Path from django.core.exceptions import ImproperlyConfigured, SuspiciousFileOperation -from django.core.files.storage import default_storage +from django.core.files.storage import Storage, default_storage from django.core.files.utils import validate_file_name from django.db import models from django.db.models import Q @@ -67,15 +67,13 @@ def is_taggable(obj): return False -def image_upload(instance, filename): +def _build_image_attachment_path(instance, filename, *, storage=default_storage): """ - Return a path for uploading image attachments. + Build a deterministic relative path for an image attachment. - Normalizes browser paths (e.g., C:\\fake_path\\photo.jpg) - Uses the instance.name if provided (sanitized to a *basename*, no ext) - Prefixes with a machine-friendly identifier - - Note: Relies on Django's default_storage utility. """ upload_dir = 'image-attachments' default_filename = 'unnamed' @@ -92,22 +90,38 @@ def image_upload(instance, filename): # Rely on Django's get_valid_filename to perform sanitization. stem = (instance.name or file_path.stem).strip() try: - safe_stem = default_storage.get_valid_name(stem) + safe_stem = storage.get_valid_name(stem) except SuspiciousFileOperation: safe_stem = default_filename # Append the uploaded extension only if it's an allowed image type - final_name = f"{safe_stem}.{ext}" if ext in allowed_img_extensions else safe_stem + final_name = f'{safe_stem}.{ext}' if ext in allowed_img_extensions else safe_stem # Create a machine-friendly prefix from the instance - prefix = f"{instance.object_type.model}_{instance.object_id}" - name_with_path = f"{upload_dir}/{prefix}_{final_name}" + prefix = f'{instance.object_type.model}_{instance.object_id}' + name_with_path = f'{upload_dir}/{prefix}_{final_name}' # Validate the generated relative path (blocks absolute/traversal) validate_file_name(name_with_path, allow_relative_path=True) return name_with_path +def image_upload(instance, filename): + """ + Return a relative upload path for an image attachment, applying Django's + usual suffix-on-collision behavior regardless of storage backend. + """ + field = instance.image.field + name_with_path = _build_image_attachment_path(instance, filename, storage=field.storage) + + # Intentionally call Django's base Storage implementation here. Some + # backends override get_available_name() to reuse the incoming name + # unchanged, but we want Django's normal suffix-on-collision behavior + # while still dispatching exists() / get_alternative_name() to the + # configured storage instance. + return Storage.get_available_name(field.storage, name_with_path, max_length=field.max_length) + + def is_script(obj): """ Returns True if the object is a Script or Report. From cb7e97c7f7067085ab1a1f239b5b831dc24b88c6 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Wed, 8 Apr 2026 22:56:26 +0200 Subject: [PATCH 24/27] docs(configuration): Expand S3 storage configuration examples Update STORAGES configuration examples to include all three storage backends (default, staticfiles, scripts) with complete option sets. Add region_name to environment variable example and clarify usage for S3-compatible services. Fixes #21864 --- docs/configuration/system.md | 48 +++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/docs/configuration/system.md b/docs/configuration/system.md index 65019626e..f0f8d122d 100644 --- a/docs/configuration/system.md +++ b/docs/configuration/system.md @@ -241,21 +241,49 @@ STORAGES = { Within the `STORAGES` dictionary, `"default"` is used for image uploads, "staticfiles" is for static files and `"scripts"` is used for custom scripts. -If using a remote storage like S3, define the config as `STORAGES[key]["OPTIONS"]` for each storage item as needed. For example: +If using a remote storage such as S3 or an S3-compatible service, define the configuration as `STORAGES[key]["OPTIONS"]` for each storage item as needed. For example: ```python -STORAGES = { - "scripts": { - "BACKEND": "storages.backends.s3boto3.S3Boto3Storage", - "OPTIONS": { - 'access_key': 'access key', +STORAGES = { + 'default': { + 'BACKEND': 'storages.backends.s3.S3Storage', + 'OPTIONS': { + 'bucket_name': 'netbox', + 'access_key': 'access key', 'secret_key': 'secret key', - "allow_overwrite": True, - } - }, + 'region_name': 'us-east-1', + 'endpoint_url': 'https://s3.example.com', + 'location': 'media/', + }, + }, + 'staticfiles': { + 'BACKEND': 'storages.backends.s3.S3Storage', + 'OPTIONS': { + 'bucket_name': 'netbox', + 'access_key': 'access key', + 'secret_key': 'secret key', + 'region_name': 'us-east-1', + 'endpoint_url': 'https://s3.example.com', + 'location': 'static/', + }, + }, + 'scripts': { + 'BACKEND': 'storages.backends.s3.S3Storage', + 'OPTIONS': { + 'bucket_name': 'netbox', + 'access_key': 'access key', + 'secret_key': 'secret key', + 'region_name': 'us-east-1', + 'endpoint_url': 'https://s3.example.com', + 'location': 'scripts/', + 'file_overwrite': True, + }, + }, } ``` +`bucket_name` is required for `S3Storage`. When using an S3-compatible service, set `region_name` and `endpoint_url` according to your provider. + The specific configuration settings for each storage backend can be found in the [django-storages documentation](https://django-storages.readthedocs.io/en/latest/index.html). !!! note @@ -279,6 +307,7 @@ STORAGES = { 'bucket_name': os.environ.get('AWS_STORAGE_BUCKET_NAME'), 'access_key': os.environ.get('AWS_S3_ACCESS_KEY_ID'), 'secret_key': os.environ.get('AWS_S3_SECRET_ACCESS_KEY'), + 'region_name': os.environ.get('AWS_S3_REGION_NAME'), 'endpoint_url': os.environ.get('AWS_S3_ENDPOINT_URL'), 'location': 'media/', } @@ -289,6 +318,7 @@ STORAGES = { 'bucket_name': os.environ.get('AWS_STORAGE_BUCKET_NAME'), 'access_key': os.environ.get('AWS_S3_ACCESS_KEY_ID'), 'secret_key': os.environ.get('AWS_S3_SECRET_ACCESS_KEY'), + 'region_name': os.environ.get('AWS_S3_REGION_NAME'), 'endpoint_url': os.environ.get('AWS_S3_ENDPOINT_URL'), 'location': 'static/', } From a93aae12fae0170222a74f072e85fd7416ce410d Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Thu, 9 Apr 2026 16:33:55 +0200 Subject: [PATCH 25/27] Closes #21862: Stabilize ScriptModule tests and reduce CI noise (#21867) --- netbox/extras/tests/test_api.py | 31 ++++++++++++++++++++++++------- netbox/extras/tests/test_views.py | 18 ++++++++++++++++-- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/netbox/extras/tests/test_api.py b/netbox/extras/tests/test_api.py index c85433982..8a05fdc27 100644 --- a/netbox/extras/tests/test_api.py +++ b/netbox/extras/tests/test_api.py @@ -1,5 +1,6 @@ import datetime import hashlib +import io from unittest.mock import MagicMock, patch from django.contrib.contenttypes.models import ContentType @@ -1013,10 +1014,14 @@ class ScriptTest(APITestCase): @classmethod def setUpTestData(cls): - module = ScriptModule.objects.create( - file_root=ManagedFileRootPathChoices.SCRIPTS, - file_path='script.py', - ) + # Avoid trying to import a non-existent on-disk module during setup. + # This test creates the Script row explicitly and monkey-patches + # Script.python_class below. + with patch.object(ScriptModule, 'sync_classes'): + module = ScriptModule.objects.create( + file_root=ManagedFileRootPathChoices.SCRIPTS, + file_path='script.py', + ) script = Script.objects.create( module=module, name='Test script', @@ -1419,9 +1424,20 @@ class ScriptModuleTest(APITestCase): upload_file = SimpleUploadedFile('test_upload.py', script_content, content_type='text/plain') mock_storage = MagicMock() mock_storage.save.return_value = 'test_upload.py' - with patch('extras.api.serializers_.scripts.storages') as mock_storages: - mock_storages.create_storage.return_value = mock_storage - mock_storages.backends = {'scripts': {}} + + # The upload serializer writes the file via storages.create_storage(...).save(), + # but ScriptModule.sync_classes() later imports it via storages["scripts"].open(). + # Provide both behaviors so the uploaded module can actually be loaded during the test. + mock_storage.open.side_effect = lambda *args, **kwargs: io.BytesIO(script_content) + + with ( + patch('extras.api.serializers_.scripts.storages') as mock_serializer_storages, + patch('extras.models.mixins.storages') as mock_module_storages, + ): + mock_serializer_storages.create_storage.return_value = mock_storage + mock_serializer_storages.backends = {'scripts': {}} + mock_module_storages.__getitem__.return_value = mock_storage + response = self.client.post( self.url, {'file': upload_file}, @@ -1432,6 +1448,7 @@ class ScriptModuleTest(APITestCase): self.assertEqual(response.data['file_path'], 'test_upload.py') mock_storage.save.assert_called_once() self.assertTrue(ScriptModule.objects.filter(file_path='test_upload.py').exists()) + self.assertTrue(Script.objects.filter(module__file_path='test_upload.py', name='TestScript').exists()) def test_upload_script_module_without_file_fails(self): self.add_permissions('extras.add_scriptmodule', 'core.add_managedfile') diff --git a/netbox/extras/tests/test_views.py b/netbox/extras/tests/test_views.py index 44cce289c..8d28f4602 100644 --- a/netbox/extras/tests/test_views.py +++ b/netbox/extras/tests/test_views.py @@ -924,7 +924,14 @@ class ScriptValidationErrorTest(TestCase): @classmethod def setUpTestData(cls): - module = ScriptModule.objects.create(file_root=ManagedFileRootPathChoices.SCRIPTS, file_path='test_script.py') + # Avoid trying to import a non-existent on-disk module during setup. + # This test creates the Script row explicitly and monkey-patches + # Script.python_class below. + with patch.object(ScriptModule, 'sync_classes'): + module = ScriptModule.objects.create( + file_root=ManagedFileRootPathChoices.SCRIPTS, + file_path='test_script.py', + ) cls.script = Script.objects.create(module=module, name='Test script', is_executable=True) def setUp(self): @@ -986,7 +993,14 @@ class ScriptDefaultValuesTest(TestCase): @classmethod def setUpTestData(cls): - module = ScriptModule.objects.create(file_root=ManagedFileRootPathChoices.SCRIPTS, file_path='test_script.py') + # Avoid trying to import a non-existent on-disk module during setup. + # This test creates the Script row explicitly and monkey-patches + # Script.python_class below. + with patch.object(ScriptModule, 'sync_classes'): + module = ScriptModule.objects.create( + file_root=ManagedFileRootPathChoices.SCRIPTS, + file_path='test_script.py', + ) cls.script = Script.objects.create(module=module, name='Test script', is_executable=True) def setUp(self): From 0bc05f27f90737514ede57c08f80bc0480665be3 Mon Sep 17 00:00:00 2001 From: Ibtissam El alami <140215889+attoba@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:41:14 +0100 Subject: [PATCH 26/27] Fixes #21704: Add port mappings to DeviceType & ModuleType YAML export (#21859) --- netbox/dcim/models/device_component_templates.py | 8 ++++++++ netbox/dcim/models/devices.py | 9 +++++++++ netbox/dcim/models/modules.py | 8 ++++++++ 3 files changed, 25 insertions(+) diff --git a/netbox/dcim/models/device_component_templates.py b/netbox/dcim/models/device_component_templates.py index ff5df9721..1799e1265 100644 --- a/netbox/dcim/models/device_component_templates.py +++ b/netbox/dcim/models/device_component_templates.py @@ -549,6 +549,14 @@ class PortTemplateMapping(PortMappingBase): self.module_type = self.front_port.module_type super().save(*args, **kwargs) + def to_yaml(self): + return { + 'front_port': self.front_port.name, + 'front_port_position': self.front_port_position, + 'rear_port': self.rear_port.name, + 'rear_port_position': self.rear_port_position, + } + class FrontPortTemplate(ModularComponentTemplateModel): """ diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 4a5d0b3cd..aa4a794e2 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -275,6 +275,15 @@ class DeviceType(ImageAttachmentsMixin, PrimaryModel, WeightMixin): data['rear-ports'] = [ c.to_yaml() for c in self.rearporttemplates.all() ] + + # Port mappings + port_mapping_data = [ + c.to_yaml() for c in self.port_mappings.all() + ] + + if port_mapping_data: + data['port-mappings'] = port_mapping_data + if self.modulebaytemplates.exists(): data['module-bays'] = [ c.to_yaml() for c in self.modulebaytemplates.all() diff --git a/netbox/dcim/models/modules.py b/netbox/dcim/models/modules.py index 89e914366..56cc333ff 100644 --- a/netbox/dcim/models/modules.py +++ b/netbox/dcim/models/modules.py @@ -192,6 +192,14 @@ class ModuleType(ImageAttachmentsMixin, PrimaryModel, WeightMixin): c.to_yaml() for c in self.rearporttemplates.all() ] + # Port mappings + port_mapping_data = [ + c.to_yaml() for c in self.port_mappings.all() + ] + + if port_mapping_data: + data['port-mappings'] = port_mapping_data + return yaml.dump(dict(data), sort_keys=False) From 48037f6fedf33d6c473f64d7e07ce81b6af01d24 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Thu, 9 Apr 2026 17:49:27 +0200 Subject: [PATCH 27/27] fix(extras): Reject unknown custom fields (#21861) Add validation to reject unknown custom field names during API updates. Ensure model.clean() normalization is preserved in serializers to remove stale custom field data from both the database and change logs. Filter stale keys during serialization to prevent lingering references. Fixes #21529 --- netbox/extras/api/customfields.py | 12 +++- netbox/extras/tests/test_customfields.py | 78 +++++++++++++++++++++++- netbox/netbox/api/serializers/base.py | 7 ++- 3 files changed, 92 insertions(+), 5 deletions(-) diff --git a/netbox/extras/api/customfields.py b/netbox/extras/api/customfields.py index 2113cd0c0..9c9cb146e 100644 --- a/netbox/extras/api/customfields.py +++ b/netbox/extras/api/customfields.py @@ -85,8 +85,18 @@ class CustomFieldsDataField(Field): "values." ) + custom_fields = {cf.name: cf for cf in self._get_custom_fields()} + + # Reject any unknown custom field names + invalid_fields = set(data) - set(custom_fields) + if invalid_fields: + raise ValidationError({ + field: _("Custom field '{name}' does not exist for this object type.").format(name=field) + for field in sorted(invalid_fields) + }) + # Serialize object and multi-object values - for cf in self._get_custom_fields(): + for cf in custom_fields.values(): if cf.name in data and data[cf.name] not in CUSTOMFIELD_EMPTY_VALUES and cf.type in ( CustomFieldTypeChoices.TYPE_OBJECT, CustomFieldTypeChoices.TYPE_MULTIOBJECT diff --git a/netbox/extras/tests/test_customfields.py b/netbox/extras/tests/test_customfields.py index a8b65f119..99a268f37 100644 --- a/netbox/extras/tests/test_customfields.py +++ b/netbox/extras/tests/test_customfields.py @@ -7,7 +7,7 @@ from django.test import tag from django.urls import reverse from rest_framework import status -from core.models import ObjectType +from core.models import ObjectChange, ObjectType from dcim.filtersets import SiteFilterSet from dcim.forms import SiteImportForm from dcim.models import Manufacturer, Rack, Site @@ -1194,6 +1194,82 @@ class CustomFieldAPITest(APITestCase): list(original_cfvs['multiobject_field']) ) + @tag('regression') + def test_update_single_object_rejects_unknown_custom_fields(self): + site2 = Site.objects.get(name='Site 2') + original_cf_data = {**site2.custom_field_data} + url = reverse('dcim-api:site-detail', kwargs={'pk': site2.pk}) + self.add_permissions('dcim.change_site') + + data = { + 'custom_fields': { + 'text_field': 'valid', + 'thisfieldshouldntexist': 'random text here', + }, + } + + response = self.client.patch(url, data, format='json', **self.header) + self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) + self.assertIn('custom_fields', response.data) + self.assertIn('thisfieldshouldntexist', response.data['custom_fields']) + + # Ensure the object was not modified + site2.refresh_from_db() + self.assertEqual(site2.custom_field_data, original_cf_data) + + @tag('regression') + def test_update_single_object_prunes_stale_custom_field_data_from_database_and_postchange_data(self): + stale_key = 'thisfieldshouldntexist' + stale_value = 'random text here' + updated_text_value = 'ABCD' + + site2 = Site.objects.get(name='Site 2') + original_text_value = site2.custom_field_data['text_field'] + object_type = ObjectType.objects.get_for_model(Site) + + # Seed stale custom field data directly in the database to mimic a polluted row. + Site.objects.filter(pk=site2.pk).update( + custom_field_data={ + **site2.custom_field_data, + stale_key: stale_value, + } + ) + site2.refresh_from_db() + self.assertIn(stale_key, site2.custom_field_data) + + existing_change_ids = set( + ObjectChange.objects.filter( + changed_object_type=object_type, + changed_object_id=site2.pk, + ).values_list('pk', flat=True) + ) + + url = reverse('dcim-api:site-detail', kwargs={'pk': site2.pk}) + self.add_permissions('dcim.change_site') + data = { + 'custom_fields': { + 'text_field': updated_text_value, + }, + } + + response = self.client.patch(url, data, format='json', **self.header) + self.assertHttpStatus(response, status.HTTP_200_OK) + + site2.refresh_from_db() + self.assertEqual(site2.cf['text_field'], updated_text_value) + self.assertNotIn(stale_key, site2.custom_field_data) + + object_changes = ObjectChange.objects.filter( + changed_object_type=object_type, + changed_object_id=site2.pk, + ).exclude(pk__in=existing_change_ids) + self.assertEqual(object_changes.count(), 1) + + object_change = object_changes.get() + self.assertEqual(object_change.prechange_data['custom_fields']['text_field'], original_text_value) + self.assertEqual(object_change.postchange_data['custom_fields']['text_field'], updated_text_value) + self.assertNotIn(stale_key, object_change.postchange_data['custom_fields']) + def test_specify_related_object_by_attr(self): site1 = Site.objects.get(name='Site 1') vlans = VLAN.objects.all()[:3] diff --git a/netbox/netbox/api/serializers/base.py b/netbox/netbox/api/serializers/base.py index 0d149e81c..0f933ed5f 100644 --- a/netbox/netbox/api/serializers/base.py +++ b/netbox/netbox/api/serializers/base.py @@ -95,9 +95,6 @@ class ValidatedModelSerializer(BaseModelSerializer): attrs = data.copy() - # Remove custom field data (if any) prior to model validation - attrs.pop('custom_fields', None) - # Skip ManyToManyFields opts = self.Meta.model._meta m2m_values = {} @@ -116,4 +113,8 @@ class ValidatedModelSerializer(BaseModelSerializer): # Skip uniqueness validation of individual fields inside `full_clean()` (this is handled by the serializer) instance.full_clean(validate_unique=False) + # Preserve any normalization performed by model.clean() (e.g. stale custom field pruning) + if 'custom_field_data' in attrs: + data['custom_field_data'] = instance.custom_field_data + return data