Переглянути джерело

Merge branch 'main' into feature

Jeremy Stretch 5 місяців тому
батько
коміт
d433456e2f
66 змінених файлів з 2287 додано та 1926 видалено
  1. 1 1
      .github/ISSUE_TEMPLATE/01-feature_request.yaml
  2. 1 1
      .github/ISSUE_TEMPLATE/02-bug_report.yaml
  3. 1 1
      docs/administration/error-reporting.md
  4. 1 1
      docs/reference/conditions.md
  5. 28 0
      docs/release-notes/version-4.3.md
  6. 12 2
      netbox/core/api/serializers_/tasks.py
  7. 4 4
      netbox/dcim/api/serializers_/roles.py
  8. 13 1
      netbox/dcim/api/views.py
  9. 15 2
      netbox/dcim/filtersets.py
  10. 5 2
      netbox/dcim/forms/bulk_create.py
  11. 6 1
      netbox/dcim/forms/connections.py
  12. 2 0
      netbox/dcim/forms/model_forms.py
  13. 16 0
      netbox/dcim/tests/test_filtersets.py
  14. 12 3
      netbox/dcim/views.py
  15. 27 1
      netbox/extras/lookups.py
  16. 9 1
      netbox/extras/models/customfields.py
  17. 8 5
      netbox/extras/models/notifications.py
  18. 11 1
      netbox/extras/tests/test_customfields.py
  19. 19 1
      netbox/ipam/views.py
  20. 8 1
      netbox/netbox/filtersets.py
  21. 2 2
      netbox/netbox/views/misc.py
  22. 0 0
      netbox/project-static/dist/netbox.css
  23. 0 0
      netbox/project-static/dist/netbox.js
  24. 0 0
      netbox/project-static/dist/netbox.js.map
  25. 1 1
      netbox/project-static/dist/rack_elevation.css
  26. 3 3
      netbox/project-static/package.json
  27. 8 4
      netbox/project-static/styles/custom/_code.scss
  28. 6 0
      netbox/project-static/styles/overrides/_tomselect.scss
  29. 2 4
      netbox/project-static/styles/svg/rack_elevation.scss
  30. 9 4
      netbox/project-static/yarn.lock
  31. 1 1
      netbox/templates/inc/missing_prerequisites.html
  32. 5 5
      netbox/templates/inc/panels/related_objects.html
  33. BIN
      netbox/translations/cs/LC_MESSAGES/django.mo
  34. 132 124
      netbox/translations/cs/LC_MESSAGES/django.po
  35. BIN
      netbox/translations/da/LC_MESSAGES/django.mo
  36. 130 122
      netbox/translations/da/LC_MESSAGES/django.po
  37. BIN
      netbox/translations/de/LC_MESSAGES/django.mo
  38. 133 124
      netbox/translations/de/LC_MESSAGES/django.po
  39. 129 121
      netbox/translations/en/LC_MESSAGES/django.po
  40. BIN
      netbox/translations/es/LC_MESSAGES/django.mo
  41. 134 122
      netbox/translations/es/LC_MESSAGES/django.po
  42. BIN
      netbox/translations/fr/LC_MESSAGES/django.mo
  43. 135 126
      netbox/translations/fr/LC_MESSAGES/django.po
  44. BIN
      netbox/translations/it/LC_MESSAGES/django.mo
  45. 134 122
      netbox/translations/it/LC_MESSAGES/django.po
  46. BIN
      netbox/translations/ja/LC_MESSAGES/django.mo
  47. 130 122
      netbox/translations/ja/LC_MESSAGES/django.po
  48. BIN
      netbox/translations/nl/LC_MESSAGES/django.mo
  49. 132 122
      netbox/translations/nl/LC_MESSAGES/django.po
  50. BIN
      netbox/translations/pl/LC_MESSAGES/django.mo
  51. 133 122
      netbox/translations/pl/LC_MESSAGES/django.po
  52. BIN
      netbox/translations/pt/LC_MESSAGES/django.mo
  53. 133 122
      netbox/translations/pt/LC_MESSAGES/django.po
  54. BIN
      netbox/translations/ru/LC_MESSAGES/django.mo
  55. 159 146
      netbox/translations/ru/LC_MESSAGES/django.po
  56. BIN
      netbox/translations/tr/LC_MESSAGES/django.mo
  57. 130 122
      netbox/translations/tr/LC_MESSAGES/django.po
  58. BIN
      netbox/translations/uk/LC_MESSAGES/django.mo
  59. 131 122
      netbox/translations/uk/LC_MESSAGES/django.po
  60. BIN
      netbox/translations/zh/LC_MESSAGES/django.mo
  61. 130 122
      netbox/translations/zh/LC_MESSAGES/django.po
  62. 2 0
      netbox/utilities/forms/fields/csv.py
  63. 1 1
      netbox/utilities/templates/buttons/add.html
  64. 2 1
      netbox/utilities/templatetags/buttons.py
  65. 36 5
      netbox/utilities/views.py
  66. 5 5
      requirements.txt

+ 1 - 1
.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.3.6
+      placeholder: v4.3.7
     validations:
       required: true
   - type: dropdown

+ 1 - 1
.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.3.6
+      placeholder: v4.3.7
     validations:
       required: true
   - type: dropdown

+ 1 - 1
docs/administration/error-reporting.md

@@ -4,7 +4,7 @@
 
 ### Enabling Error Reporting
 
-NetBox supports native integration with [Sentry](https://sentry.io/) for automatic error reporting. To enable this functionality, set `SENTRY_ENABLED` to True and define your unique [data source name (DSN)](https://docs.sentry.io/product/sentry-basics/concepts/dsn-explainer/) in `configuration.py`.
+NetBox supports native integration with [Sentry](https://sentry.io/) for automatic error reporting. To enable this functionality, set `SENTRY_ENABLED` to `True` and define your unique [data source name (DSN)](https://docs.sentry.io/product/sentry-basics/concepts/dsn-explainer/) in `configuration.py`.
 
 ```python
 SENTRY_ENABLED = True

+ 1 - 1
docs/reference/conditions.md

@@ -89,7 +89,7 @@ The following condition will evaluate as true:
 ```
 
 !!! note "Evaluating static choice fields"
-    Pay close attention when evaluating static choice fields, such as the `status` field above. These fields typically render as a dictionary specifying both the field's raw value (`value`) and its human-friendly label (`label`). be sure to specify on which of these you want to match.
+    Pay close attention when evaluating static choice fields, such as the `status` field above. These fields typically render as a dictionary specifying both the field's raw value (`value`) and its human-friendly label (`label`). Be sure to specify on which of these you want to match.
 
 ## Condition Sets
 

+ 28 - 0
docs/release-notes/version-4.3.md

@@ -1,5 +1,29 @@
 # NetBox v4.3
 
+## v4.3.7 (2025-08-26)
+
+### Enhancements
+
+* [#18147](https://github.com/netbox-community/netbox/issues/18147) - Add device & VM interface counts under related objects for VRFs
+* [#19990](https://github.com/netbox-community/netbox/issues/19990) - Button to add a missing prerequisite now includes a return URL
+* [#20122](https://github.com/netbox-community/netbox/issues/20122) - Improve color contrast of highlighted data under changelog diff view
+* [#20131](https://github.com/netbox-community/netbox/issues/20131) - Add object selector for interface to the MAC address edit form
+
+### Bug Fixes
+
+* [#18916](https://github.com/netbox-community/netbox/issues/18916) - Fix dynamic dropdown selection styling for required fields when no selection is made
+* [#19645](https://github.com/netbox-community/netbox/issues/19645) - Fix interface selection when adding a cable for a virtual chassis master
+* [#19669](https://github.com/netbox-community/netbox/issues/19669) - Restore token authentication support for fetching media assets
+* [#19970](https://github.com/netbox-community/netbox/issues/19970) - Device role child device counts should be cumulative
+* [#20012](https://github.com/netbox-community/netbox/issues/20012) - Fix support for `empty` filter lookup on custom fields
+* [#20043](https://github.com/netbox-community/netbox/issues/20043) - Fix page styling when rack elevations are embedded
+* [#20098](https://github.com/netbox-community/netbox/issues/20098) - Fix `AttributeError` exception when assigning tags during bulk import
+* [#20120](https://github.com/netbox-community/netbox/issues/20120) - Fix REST API serialization of jobs under `/api/core/background-tasks/`
+* [#20157](https://github.com/netbox-community/netbox/issues/20157) - Fix `IntegrityError` exception when a duplicate notification is triggered
+* [#20164](https://github.com/netbox-community/netbox/issues/20164) - Fix `ValueError` exception when attempting to add power outlets to devices in bulk
+
+---
+
 ## v4.3.6 (2025-08-12)
 
 ### Enhancements
@@ -29,6 +53,8 @@
 * [#20033](https://github.com/netbox-community/netbox/issues/20033) - Fix `TypeError` exception when bulk deleting bookmarks
 * [#20056](https://github.com/netbox-community/netbox/issues/20056) - Fixed missing RF role options in device type schema validation
 
+---
+
 ## v4.3.5 (2025-07-29)
 
 ### Enhancements
@@ -48,6 +74,8 @@
 !!! note "Plugin Developer Advisory"
     The fix for bug [#18900](https://github.com/netbox-community/netbox/issues/18900) now raises explicit exceptions when API endpoints attempt to paginate unordered querysets. Plugin maintainers should review their API viewsets to ensure proper queryset ordering is applied before pagination, either by using `.order_by()` on querysets or by setting `ordering` in model Meta classes. Previously silent pagination issues in plugin code will now raise `QuerySetNotOrdered` exceptions and may require updates to maintain compatibility.
 
+---
+
 ## v4.3.4 (2025-07-15)
 
 ### Enhancements

+ 12 - 2
netbox/core/api/serializers_/tasks.py

@@ -18,8 +18,8 @@ class BackgroundTaskSerializer(serializers.Serializer):
     description = serializers.CharField()
     origin = serializers.CharField()
     func_name = serializers.CharField()
-    args = serializers.ListField(child=serializers.CharField())
-    kwargs = serializers.DictField()
+    args = serializers.SerializerMethodField()
+    kwargs = serializers.SerializerMethodField()
     result = serializers.CharField()
     timeout = serializers.IntegerField()
     result_ttl = serializers.IntegerField()
@@ -42,6 +42,16 @@ class BackgroundTaskSerializer(serializers.Serializer):
     is_scheduled = serializers.BooleanField()
     is_stopped = serializers.BooleanField()
 
+    def get_args(self, obj) -> list:
+        return [
+            str(arg) for arg in obj.args
+        ]
+
+    def get_kwargs(self, obj) -> dict:
+        return {
+            key: str(value) for key, value in obj.kwargs.items()
+        }
+
     def get_position(self, obj) -> int:
         return obj.get_position()
 

+ 4 - 4
netbox/dcim/api/serializers_/roles.py

@@ -1,3 +1,5 @@
+from rest_framework import serializers
+
 from dcim.models import DeviceRole, InventoryItemRole
 from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
 from netbox.api.fields import RelatedObjectCountField
@@ -13,10 +15,8 @@ __all__ = (
 class DeviceRoleSerializer(NestedGroupModelSerializer):
     parent = NestedDeviceRoleSerializer(required=False, allow_null=True, default=None)
     config_template = ConfigTemplateSerializer(nested=True, required=False, allow_null=True, default=None)
-
-    # Related object counts
-    device_count = RelatedObjectCountField('devices')
-    virtualmachine_count = RelatedObjectCountField('virtual_machines')
+    device_count = serializers.IntegerField(read_only=True, default=0)
+    virtualmachine_count = serializers.IntegerField(read_only=True, default=0)
 
     class Meta:
         model = DeviceRole

+ 13 - 1
netbox/dcim/api/views.py

@@ -352,7 +352,19 @@ class InventoryItemTemplateViewSet(MPTTLockedMixin, NetBoxModelViewSet):
 #
 
 class DeviceRoleViewSet(NetBoxModelViewSet):
-    queryset = DeviceRole.objects.all()
+    queryset = DeviceRole.objects.add_related_count(
+        DeviceRole.objects.add_related_count(
+            DeviceRole.objects.all(),
+            VirtualMachine,
+            'role',
+            'virtualmachine_count',
+            cumulative=True
+        ),
+        Device,
+        'role',
+        'device_count',
+        cumulative=True
+    )
     serializer_class = serializers.DeviceRoleSerializer
     filterset_class = filtersets.DeviceRoleFilterSet
 

+ 15 - 2
netbox/dcim/filtersets.py

@@ -1918,6 +1918,16 @@ class InterfaceFilterSet(
     PathEndpointFilterSet,
     CommonInterfaceFilterSet
 ):
+    virtual_chassis_member_or_master = MultiValueCharFilter(
+        method='filter_virtual_chassis_member_or_master',
+        field_name='name',
+        label=_('Virtual Chassis Interfaces for Device when device is master')
+    )
+    virtual_chassis_member_or_master_id = MultiValueNumberFilter(
+        method='filter_virtual_chassis_member_or_master',
+        field_name='pk',
+        label=_('Virtual Chassis Interfaces for Device when device is master (ID)')
+    )
     virtual_chassis_member = MultiValueCharFilter(
         method='filter_virtual_chassis_member',
         field_name='name',
@@ -2028,11 +2038,14 @@ class InterfaceFilterSet(
             'cable_id', 'cable_end',
         )
 
-    def filter_virtual_chassis_member(self, queryset, name, value):
+    def filter_virtual_chassis_member_or_master(self, queryset, name, value):
+        return self.filter_virtual_chassis_member(queryset, name, value, if_master=True)
+
+    def filter_virtual_chassis_member(self, queryset, name, value, if_master=False):
         try:
             vc_interface_ids = []
             for device in Device.objects.filter(**{f'{name}__in': value}):
-                vc_interface_ids.extend(device.vc_interfaces(if_master=False).values_list('id', flat=True))
+                vc_interface_ids.extend(device.vc_interfaces(if_master=if_master).values_list('id', flat=True))
             return queryset.filter(pk__in=vc_interface_ids)
         except Device.DoesNotExist:
             return queryset.none()

+ 5 - 2
netbox/dcim/forms/bulk_create.py

@@ -69,11 +69,14 @@ class PowerPortBulkCreateForm(
 
 
 class PowerOutletBulkCreateForm(
-    form_from_model(PowerOutlet, ['type', 'color', 'feed_leg', 'mark_connected']),
+    form_from_model(PowerOutlet, ['type', 'status', 'color', 'feed_leg', 'mark_connected']),
     DeviceBulkAddComponentForm
 ):
     model = PowerOutlet
-    field_order = ('name', 'label', 'type', 'feed_leg', 'description', 'tags')
+    field_order = (
+        'name', 'label', 'type', 'status', 'color', 'feed_leg', 'mark_connected',
+        'description', 'tags',
+    )
 
 
 class InterfaceBulkCreateForm(

+ 6 - 1
netbox/dcim/forms/connections.py

@@ -19,6 +19,11 @@ def get_cable_form(a_type, b_type):
                 # Device component
                 if hasattr(term_cls, 'device'):
 
+                    # Dynamically change the param field for interfaces to use virtual_chassis filter
+                    query_param_device_field = 'device_id'
+                    if term_cls == Interface:
+                        query_param_device_field = 'virtual_chassis_member_or_master_id'
+
                     attrs[f'termination_{cable_end}_device'] = DynamicModelMultipleChoiceField(
                         queryset=Device.objects.all(),
                         label=_('Device'),
@@ -36,7 +41,7 @@ def get_cable_form(a_type, b_type):
                             'parent': 'device',
                         },
                         query_params={
-                            'device_id': f'$termination_{cable_end}_device',
+                            query_param_device_field: f'$termination_{cable_end}_device',
                             'kind': 'physical',  # Exclude virtual interfaces
                         }
                     )

+ 2 - 0
netbox/dcim/forms/model_forms.py

@@ -1899,6 +1899,7 @@ class MACAddressForm(NetBoxModelForm):
         label=_('Interface'),
         queryset=Interface.objects.all(),
         required=False,
+        selector=True,
         context={
             'parent': 'device',
         },
@@ -1907,6 +1908,7 @@ class MACAddressForm(NetBoxModelForm):
         label=_('VM Interface'),
         queryset=VMInterface.objects.all(),
         required=False,
+        selector=True,
         context={
             'parent': 'virtual_machine',
         },

+ 16 - 0
netbox/dcim/tests/test_filtersets.py

@@ -4444,6 +4444,9 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         )
         Device.objects.bulk_create(devices)
 
+        virtual_chassis.master = devices[0]
+        virtual_chassis.save()
+
         module_bays = (
             ModuleBay(device=devices[0], name='Module Bay 1'),
             ModuleBay(device=devices[1], name='Module Bay 2'),
@@ -4830,6 +4833,19 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil
         params = {'device': [devices[0].name, devices[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
+    def test_virtual_chassis_member_or_master(self):
+        vc = VirtualChassis.objects.first()
+        master = vc.master
+        member = vc.members.exclude(pk=master.pk).first()
+        params = {'virtual_chassis_member_or_master_id': [master.pk,]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'virtual_chassis_member_or_master_id': [member.pk,]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
+        params = {'virtual_chassis_member_or_master': [master.name,]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'virtual_chassis_member_or_master': [member.name,]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
+
     def test_virtual_chassis_member(self):
         # Device 1A & 3 have 1 management interface, Device 1B has 1 interfaces
         devices = Device.objects.filter(name__in=['Device 1A', 'Device 3'])

+ 12 - 3
netbox/dcim/views.py

@@ -2040,9 +2040,18 @@ class InventoryItemTemplateBulkDeleteView(generic.BulkDeleteView):
 
 @register_model_view(DeviceRole, 'list', path='', detail=False)
 class DeviceRoleListView(generic.ObjectListView):
-    queryset = DeviceRole.objects.annotate(
-        device_count=count_related(Device, 'role'),
-        vm_count=count_related(VirtualMachine, 'role')
+    queryset = DeviceRole.objects.add_related_count(
+        DeviceRole.objects.add_related_count(
+            DeviceRole.objects.all(),
+            VirtualMachine,
+            'role',
+            'vm_count',
+            cumulative=True
+        ),
+        Device,
+        'role',
+        'device_count',
+        cumulative=True
     )
     filterset = filtersets.DeviceRoleFilterSet
     filterset_form = forms.DeviceRoleFilterForm

+ 27 - 1
netbox/extras/lookups.py

@@ -1,4 +1,5 @@
-from django.db.models import CharField, Lookup
+from django.db.models import CharField, JSONField, Lookup
+from django.db.models.fields.json import KeyTextTransform
 
 from .fields import CachedValueField
 
@@ -18,6 +19,30 @@ class Empty(Lookup):
             return f"CAST(LENGTH({sql}) AS BOOLEAN) IS TRUE", params
 
 
+class JSONEmpty(Lookup):
+    """
+    Support "empty" lookups for JSONField keys.
+
+    A key is considered empty if it is "", null, or does not exist.
+    """
+    lookup_name = "empty"
+
+    def as_sql(self, compiler, connection):
+        # self.lhs.lhs is the parent expression (could be a JSONField or another KeyTransform)
+        # Rebuild the expression using KeyTextTransform to guarantee ->> (text)
+        text_expr = KeyTextTransform(self.lhs.key_name, self.lhs.lhs)
+        lhs_sql, lhs_params = compiler.compile(text_expr)
+
+        value = self.rhs
+        if value not in (True, False):
+            raise ValueError("The 'empty' lookup only accepts True or False.")
+
+        condition = '' if value else 'NOT '
+        sql = f"(NULLIF({lhs_sql}, '') IS {condition}NULL)"
+
+        return sql, lhs_params
+
+
 class NetHost(Lookup):
     """
     Similar to ipam.lookups.NetHost, but casts the field to INET.
@@ -45,5 +70,6 @@ class NetContainsOrEquals(Lookup):
 
 
 CharField.register_lookup(Empty)
+JSONField.register_lookup(JSONEmpty)
 CachedValueField.register_lookup(NetHost)
 CachedValueField.register_lookup(NetContainsOrEquals)

+ 9 - 1
netbox/extras/models/customfields.py

@@ -600,11 +600,19 @@ class CustomField(CloningMixin, ExportTemplatesMixin, ChangeLoggedModel):
         kwargs = {
             'field_name': f'custom_field_data__{self.name}'
         }
+        # Native numeric filters will use `isnull` by default for empty lookups, but
+        # JSON fields require `empty` (see bug #20012).
+        if lookup_expr == 'isnull':
+            lookup_expr = 'empty'
         if lookup_expr is not None:
             kwargs['lookup_expr'] = lookup_expr
 
+        # 'Empty' lookup is always a boolean
+        if lookup_expr == 'empty':
+            filter_class = django_filters.BooleanFilter
+
         # Text/URL
-        if self.type in (
+        elif self.type in (
                 CustomFieldTypeChoices.TYPE_TEXT,
                 CustomFieldTypeChoices.TYPE_LONGTEXT,
                 CustomFieldTypeChoices.TYPE_URL,

+ 8 - 5
netbox/extras/models/notifications.py

@@ -173,14 +173,17 @@ class NotificationGroup(ChangeLoggedModel):
             User.objects.filter(groups__in=self.groups.all())
         ).order_by('username')
 
-    def notify(self, **kwargs):
+    def notify(self, object_type, object_id, **kwargs):
         """
         Bulk-create Notifications for all members of this group.
         """
-        Notification.objects.bulk_create([
-            Notification(user=member, **kwargs)
-            for member in self.members
-        ])
+        for user in self.members:
+            Notification.objects.update_or_create(
+                object_type=object_type,
+                object_id=object_id,
+                user=user,
+                defaults=kwargs
+            )
     notify.alters_data = True
 
 

+ 11 - 1
netbox/extras/tests/test_customfields.py

@@ -1615,6 +1615,7 @@ class CustomFieldModelFilterTest(TestCase):
                 'cf11': manufacturers[2].pk,
                 'cf12': [manufacturers[2].pk, manufacturers[3].pk],
             }),
+            Site(name='Site 4', slug='site-4'),
         ])
 
     def test_filter_integer(self):
@@ -1624,6 +1625,7 @@ class CustomFieldModelFilterTest(TestCase):
         self.assertEqual(self.filterset({'cf_cf1__gte': [200]}, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset({'cf_cf1__lt': [200]}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf1__lte': [200]}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf1__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_decimal(self):
         self.assertEqual(self.filterset({'cf_cf2': [100.1, 200.2]}, self.queryset).qs.count(), 2)
@@ -1632,6 +1634,7 @@ class CustomFieldModelFilterTest(TestCase):
         self.assertEqual(self.filterset({'cf_cf2__gte': [200.2]}, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset({'cf_cf2__lt': [200.2]}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf2__lte': [200.2]}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf2__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_boolean(self):
         self.assertEqual(self.filterset({'cf_cf3': True}, self.queryset).qs.count(), 2)
@@ -1648,6 +1651,7 @@ class CustomFieldModelFilterTest(TestCase):
         self.assertEqual(self.filterset({'cf_cf4__niew': ['bar']}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf4__ie': ['FOO']}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf4__nie': ['FOO']}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf4__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_text_loose(self):
         self.assertEqual(self.filterset({'cf_cf5': ['foo']}, self.queryset).qs.count(), 2)
@@ -1659,6 +1663,7 @@ class CustomFieldModelFilterTest(TestCase):
         self.assertEqual(self.filterset({'cf_cf6__gte': ['2016-06-27']}, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset({'cf_cf6__lt': ['2016-06-27']}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf6__lte': ['2016-06-27']}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf6__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_url_strict(self):
         self.assertEqual(
@@ -1674,17 +1679,20 @@ class CustomFieldModelFilterTest(TestCase):
         self.assertEqual(self.filterset({'cf_cf7__niew': ['.com']}, self.queryset).qs.count(), 0)
         self.assertEqual(self.filterset({'cf_cf7__ie': ['HTTP://A.EXAMPLE.COM']}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf7__nie': ['HTTP://A.EXAMPLE.COM']}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf7__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_url_loose(self):
         self.assertEqual(self.filterset({'cf_cf8': ['example.com']}, self.queryset).qs.count(), 3)
 
     def test_filter_select(self):
         self.assertEqual(self.filterset({'cf_cf9': ['A', 'B']}, self.queryset).qs.count(), 2)
+        self.assertEqual(self.filterset({'cf_cf9__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_multiselect(self):
         self.assertEqual(self.filterset({'cf_cf10': ['A']}, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset({'cf_cf10': ['A', 'C']}, self.queryset).qs.count(), 2)
-        self.assertEqual(self.filterset({'cf_cf10': ['null']}, self.queryset).qs.count(), 1)
+        self.assertEqual(self.filterset({'cf_cf10': ['null']}, self.queryset).qs.count(), 1)  # Contains a literal null
+        self.assertEqual(self.filterset({'cf_cf10__empty': True}, self.queryset).qs.count(), 2)
 
     def test_filter_object(self):
         manufacturer_ids = Manufacturer.objects.values_list('id', flat=True)
@@ -1692,6 +1700,7 @@ class CustomFieldModelFilterTest(TestCase):
             self.filterset({'cf_cf11': [manufacturer_ids[0], manufacturer_ids[1]]}, self.queryset).qs.count(),
             2
         )
+        self.assertEqual(self.filterset({'cf_cf11__empty': True}, self.queryset).qs.count(), 1)
 
     def test_filter_multiobject(self):
         manufacturer_ids = Manufacturer.objects.values_list('id', flat=True)
@@ -1703,3 +1712,4 @@ class CustomFieldModelFilterTest(TestCase):
             self.filterset({'cf_cf12': [manufacturer_ids[3]]}, self.queryset).qs.count(),
             3
         )
+        self.assertEqual(self.filterset({'cf_cf12__empty': True}, self.queryset).qs.count(), 1)

+ 19 - 1
netbox/ipam/views.py

@@ -54,8 +54,26 @@ class VRFView(GetRelatedModelsMixin, generic.ObjectView):
         )
         export_targets_table.configure(request)
 
+        related_models = self.get_related_models(
+            request,
+            instance,
+            omit=(Interface, VMInterface),
+            extra=(
+                (
+                    Interface.objects.restrict(request.user, 'view').filter(vrf=instance),
+                    'vrf_id',
+                    _('Device Interfaces')
+                ),
+                (
+                    VMInterface.objects.restrict(request.user, 'view').filter(vrf=instance),
+                    'vrf_id',
+                    _('VM Interfaces')
+                ),
+            ),
+        )
+
         return {
-            'related_models': self.get_related_models(request, instance, omit=[Interface, VMInterface]),
+            'related_models': related_models,
             'import_targets_table': import_targets_table,
             'export_targets_table': export_targets_table,
         }

+ 8 - 1
netbox/netbox/filtersets.py

@@ -29,6 +29,13 @@ __all__ = (
     'OrganizationalModelFilterSet',
 )
 
+STANDARD_LOOKUPS = (
+    'exact',
+    'iexact',
+    'in',
+    'contains',
+)
+
 
 #
 # FilterSets
@@ -159,7 +166,7 @@ class BaseFilterSet(django_filters.FilterSet):
             return {}
 
         # Skip nonstandard lookup expressions
-        if existing_filter.method is not None or existing_filter.lookup_expr not in ['exact', 'iexact', 'in']:
+        if existing_filter.method is not None or existing_filter.lookup_expr not in STANDARD_LOOKUPS:
             return {}
 
         # Choose the lookup expression map based on the filter type

+ 2 - 2
netbox/netbox/views/misc.py

@@ -20,7 +20,7 @@ from netbox.search.backends import search_backend
 from netbox.tables import SearchTable
 from utilities.htmx import htmx_partial
 from utilities.paginator import EnhancedPaginator, get_paginate_count
-from utilities.views import ConditionalLoginRequiredMixin
+from utilities.views import ConditionalLoginRequiredMixin, TokenConditionalLoginRequiredMixin
 
 __all__ = (
     'HomeView',
@@ -119,7 +119,7 @@ class SearchView(ConditionalLoginRequiredMixin, View):
         })
 
 
-class MediaView(ConditionalLoginRequiredMixin, View):
+class MediaView(TokenConditionalLoginRequiredMixin, View):
     """
     Wrap Django's serve() view to enforce LOGIN_REQUIRED for static media.
     """

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
netbox/project-static/dist/netbox.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
netbox/project-static/dist/netbox.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
netbox/project-static/dist/netbox.js.map


+ 1 - 1
netbox/project-static/dist/rack_elevation.css

@@ -1 +1 @@
-svg{--nbx-rack-bg: var(--tblr-bg-surface-secondary);--nbx-rack-border: #000;--nbx-rack-slot-bg: #e9ecef;--nbx-rack-slot-border: #adb5bd;--nbx-rack-slot-hover-bg: #ced4da;--nbx-rack-link-color: #0d6efd;--nbx-rack-unit-color: #6c757d}svg[data-bs-theme=dark]{--nbx-rack-bg: rgb(27, 41, 58);--nbx-rack-border: #6c757d;--nbx-rack-slot-bg: #343a40;--nbx-rack-slot-border: #495057;--nbx-rack-slot-hover-bg: #212529;--nbx-rack-link-color: #9ec5fe;--nbx-rack-unit-color: #adb5bd}*{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:.875rem}rect{box-sizing:border-box}text{text-anchor:middle;dominant-baseline:middle}svg{background-color:var(--nbx-rack-bg)}svg .unit{margin:0;padding:5px 0;fill:var(--nbx-rack-unit-color)}svg .hidden{visibility:hidden}svg rect.shaded,svg image.shaded{opacity:25%}svg text.shaded{opacity:50%}svg .rack{fill:none;stroke-width:2px;stroke:var(--nbx-rack-border)}svg .slot{fill:var(--nbx-rack-slot-bg);stroke:var(--nbx-rack-slot-border)}svg .slot:hover{fill:var(--nbx-rack-slot-hover-bg)}svg .slot+.add-device{fill:var(--nbx-rack-link-color);opacity:0;pointer-events:none}svg .slot:hover+.add-device{opacity:1}svg .slot.occupied[class],svg .slot.occupied:hover[class]{fill:url(#occupied)}svg .slot.blocked[class],svg .slot.blocked:hover[class]{fill:url(#blocked)}svg .slot.blocked:hover+.add-device{opacity:0}svg .reservation[class]{fill:url(#reserved)}
+svg{--nbx-rack-bg: var(--tblr-bg-surface-secondary);--nbx-rack-border: #000;--nbx-rack-slot-bg: #e9ecef;--nbx-rack-slot-border: #adb5bd;--nbx-rack-slot-hover-bg: #ced4da;--nbx-rack-link-color: #0d6efd;--nbx-rack-unit-color: #6c757d}svg[data-bs-theme=dark]{--nbx-rack-bg: rgb(27, 41, 58);--nbx-rack-border: #6c757d;--nbx-rack-slot-bg: #343a40;--nbx-rack-slot-border: #495057;--nbx-rack-slot-hover-bg: #212529;--nbx-rack-link-color: #9ec5fe;--nbx-rack-unit-color: #adb5bd}rect{box-sizing:border-box}text{text-anchor:middle;dominant-baseline:middle}svg{background-color:var(--nbx-rack-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:.875rem}svg .unit{margin:0;padding:5px 0;fill:var(--nbx-rack-unit-color)}svg .hidden{visibility:hidden}svg rect.shaded,svg image.shaded{opacity:25%}svg text.shaded{opacity:50%}svg .rack{fill:none;stroke-width:2px;stroke:var(--nbx-rack-border)}svg .slot{fill:var(--nbx-rack-slot-bg);stroke:var(--nbx-rack-slot-border)}svg .slot:hover{fill:var(--nbx-rack-slot-hover-bg)}svg .slot+.add-device{fill:var(--nbx-rack-link-color);opacity:0;pointer-events:none}svg .slot:hover+.add-device{opacity:1}svg .slot.occupied[class],svg .slot.occupied:hover[class]{fill:url(#occupied)}svg .slot.blocked[class],svg .slot.blocked:hover[class]{fill:url(#blocked)}svg .slot.blocked:hover+.add-device{opacity:0}svg .reservation[class]{fill:url(#reserved)}

+ 3 - 3
netbox/project-static/package.json

@@ -1,6 +1,6 @@
 {
   "name": "netbox",
-  "version": "4.3.0",
+  "version": "4.4.0",
   "main": "dist/netbox.js",
   "license": "Apache-2.0",
   "private": true,
@@ -24,13 +24,13 @@
   "dependencies": {
     "@mdi/font": "7.4.47",
     "@tabler/core": "1.4.0",
-    "bootstrap": "5.3.7",
+    "bootstrap": "5.3.8",
     "clipboard": "2.0.11",
     "flatpickr": "4.6.13",
     "gridstack": "12.3.3",
     "htmx.org": "2.0.6",
     "query-string": "9.2.2",
-    "sass": "1.90.0",
+    "sass": "1.91.0",
     "tom-select": "2.4.3",
     "typeface-inter": "3.18.1",
     "typeface-roboto-mono": "1.1.13"

+ 8 - 4
netbox/project-static/styles/custom/_code.scss

@@ -12,11 +12,13 @@ pre.change-data {
     min-width: fit-content;
 
     &.added {
-      background-color: $green;
+      color: var(--tblr-dark);
+      background-color: $green-300;
     }
 
     &.removed {
-      background-color: $red;
+      color: var(--tblr-dark);
+      background-color: $red-300;
     }
   }
 }
@@ -26,11 +28,13 @@ pre.change-diff {
   border-color: transparent;
 
   &.change-added {
-    background-color: $green;
+    color: var(--tblr-dark);
+    background-color: $green-300;
   }
 
   &.change-removed {
-    background-color: $red;
+    color: var(--tblr-dark);
+    background-color: $red-300;
   }
 }
 

+ 6 - 0
netbox/project-static/styles/overrides/_tomselect.scss

@@ -6,3 +6,9 @@
     }
   }
 }
+
+// Replicate styling of tom-selected <select> fields tagged with .is-invalid to
+// their corresponding TomSelect dropdowns
+select.tomselected.is-invalid + div.ts-wrapper {
+  @extend .is-invalid;
+}

+ 2 - 4
netbox/project-static/styles/svg/rack_elevation.scss

@@ -28,10 +28,6 @@ svg {
   }
 }
 
-* {
-  font-family: $font-family-sans-serif;
-  font-size: $font-size-sm;
-}
 rect {
   box-sizing: border-box;
 }
@@ -42,6 +38,8 @@ text {
 
 svg {
   background-color: var(--nbx-rack-bg);
+  font-family: $font-family-sans-serif;
+  font-size: $font-size-sm;
 
   // Rack unit numbers along left side of rack elevation.
   .unit {

+ 9 - 4
netbox/project-static/yarn.lock

@@ -1116,6 +1116,11 @@ bootstrap@5.3.7:
   resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90"
   integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw==
 
+bootstrap@5.3.8:
+  version "5.3.8"
+  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed"
+  integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==
+
 brace-expansion@^1.1.7:
   version "1.1.11"
   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -3185,10 +3190,10 @@ safe-regex-test@^1.1.0:
     es-errors "^1.3.0"
     is-regex "^1.2.1"
 
-sass@1.90.0:
-  version "1.90.0"
-  resolved "https://registry.yarnpkg.com/sass/-/sass-1.90.0.tgz#d6fc2be49c7c086ce86ea0b231a35bf9e33cb84b"
-  integrity sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==
+sass@1.91.0:
+  version "1.91.0"
+  resolved "https://registry.yarnpkg.com/sass/-/sass-1.91.0.tgz#7d4f7f624b35d43f78da1c339cab24426e28d7fa"
+  integrity sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==
   dependencies:
     chokidar "^4.0.0"
     immutable "^5.0.2"

+ 1 - 1
netbox/templates/inc/missing_prerequisites.html

@@ -10,7 +10,7 @@
       {% endblocktrans %}
     </div>
     <div>
-      {% add_button prerequisite_model %}
+      {% add_button prerequisite_model request.path %}
     </div>
   </div>
 </div>

+ 5 - 5
netbox/templates/inc/panels/related_objects.html

@@ -4,12 +4,12 @@
 <div class="card">
   <h2 class="card-header">{% trans "Related Objects" %}</h2>
   <ul class="list-group list-group-flush" role="presentation">
-    {% for qs, filter_param in related_models %}
-      {% action_url qs.model 'list' as list_url %}
+    {% for related_object_count in related_models %}
+      {% action_url related_object_count.queryset.model 'list' as list_url %}
       {% if list_url %}
-        <a href="{{ list_url }}?{{ filter_param }}={{ object.pk }}" class="list-group-item list-group-item-action d-flex justify-content-between">
-          {{ qs.model|meta:"verbose_name_plural"|bettertitle }}
-          {% with count=qs.count %}
+        <a href="{{ list_url }}?{{ related_object_count.filter_param }}={{ object.pk }}" class="list-group-item list-group-item-action d-flex justify-content-between">
+          {{ related_object_count.name }}
+          {% with count=related_object_count.queryset.count %}
             {% if count %}
               <span class="badge text-bg-primary rounded-pill">{{ count }}</span>
             {% else %}

BIN
netbox/translations/cs/LC_MESSAGES/django.mo


+ 132 - 124
netbox/translations/cs/LC_MESSAGES/django.po

@@ -9,17 +9,17 @@
 # czarnian, 2025
 # Pavel Stetina, 2025
 # Luděk Janča <joelp@email.cz>, 2025
-# Jeremy Stretch, 2025
 # Radim Kabeláč <radim.ekk@gmail.com>, 2025
+# Jeremy Stretch, 2025
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Radim Kabeláč <radim.ekk@gmail.com>, 2025\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -174,8 +174,8 @@ msgstr "Mluvil"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Region (ID)"
@@ -186,8 +186,8 @@ msgstr "Region (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -198,8 +198,8 @@ msgstr "Region (zkratka)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -210,8 +210,8 @@ msgstr "Skupina umístění (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -327,8 +327,8 @@ msgstr "Typ okruhu (URL zkratka)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -338,7 +338,7 @@ msgstr "Místo (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Umístění (ID)"
 
@@ -350,7 +350,7 @@ msgstr "Zakončení A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -359,7 +359,7 @@ msgstr "Zakončení A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -382,7 +382,7 @@ msgstr "Vyhledávání"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -415,7 +415,7 @@ msgstr "Okruh (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Virtuální obvod (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Virtuální obvod (ID)"
 
@@ -463,7 +463,7 @@ msgstr "Rozhraní (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1924,7 +1924,7 @@ msgstr "Komentáře"
 msgid "Assignments"
 msgstr "Úkoly"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Strana"
 
@@ -1978,7 +1978,7 @@ msgstr "Zakončení"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1989,7 +1989,7 @@ msgstr "Zakončení"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2545,7 +2545,7 @@ msgstr "Protokolování změn není u tohoto typu objektu podporováno ({type}).
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "vytvořil"
@@ -3489,7 +3489,7 @@ msgstr "Rodičovské umístění (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Výrobce (ID)"
 
@@ -3497,7 +3497,7 @@ msgstr "Výrobce (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Výrobce (slug)"
 
@@ -3510,14 +3510,14 @@ msgid "Rack type (ID)"
 msgstr "Typ stojanu (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Role (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3526,7 +3526,7 @@ msgstr "Role (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Stojan (ID)"
 
@@ -3624,7 +3624,7 @@ msgstr "Typ modulu (ID)"
 msgid "Power port (ID)"
 msgstr "Napájecí port (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Nadřazená položka inventáře (ID)"
 
@@ -3659,8 +3659,8 @@ msgid "Platform (slug)"
 msgstr "Platforma (URL zkratka)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Název lokality (slug)"
 
@@ -3910,30 +3910,38 @@ msgid "VLAN Translation Policy"
 msgstr "Zásady překladu VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Virtuální rozhraní šasi pro zařízení, když je zařízení hlavní"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr "Virtuální rozhraní šasi pro zařízení, když je zařízení hlavní (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Virtuální rozhraní šasi pro zařízení"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Virtuální rozhraní šasi pro zařízení (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Druh rozhraní"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Rodičovské rozhraní (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Přemostěné rozhraní (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Rozhraní LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3941,78 +3949,78 @@ msgstr "Rozhraní LAG (ID)"
 msgid "MAC Address"
 msgstr "MAC adresa"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Primární MAC adresa (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Primární MAC adresa"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Kontext virtuálního zařízení"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Kontext virtuálního zařízení (identifikátor)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Bezdrátová síť LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Bezdrátové spojení"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Ukončení virtuálního obvodu (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Pozice nadřazeného modulu (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Instalovaný modul (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Instalované zařízení (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Instalované zařízení (název)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Mistr (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Mistr (jméno)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Nájemce (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Nájemce (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Neukončený"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Napájecí panel (ID)"
 
@@ -4027,7 +4035,7 @@ msgstr "Napájecí panel (ID)"
 msgid "Tags"
 msgstr "Značky"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4039,7 +4047,7 @@ msgstr "Značky"
 msgid "Position"
 msgstr "Pozice"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5280,7 +5288,7 @@ msgstr "Nelze adoptovat {model} {name}, protože již patří do modulu"
 msgid "A {model} named {name} already exists"
 msgstr "{model} pojmenovaný {name} již existuje"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5289,7 +5297,7 @@ msgstr "{model} pojmenovaný {name} již existuje"
 msgid "Power Panel"
 msgstr "Napájecí panel"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5695,11 +5703,11 @@ msgstr "Položka inventáře"
 msgid "Inventory Item Role"
 msgstr "Role položky inventáře"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Rozhraní VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5716,7 +5724,7 @@ msgstr "Rozhraní VM"
 msgid "Virtual Machine"
 msgstr "Virtuální stroj"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "MAC adresu lze přiřadit pouze jednomu objektu."
 
@@ -7514,7 +7522,7 @@ msgstr "Elektrické zásuvky"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7554,7 +7562,7 @@ msgstr "Modulová přihrádka"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7584,8 +7592,8 @@ msgid "Allocated draw (W)"
 msgstr "Přidělené losování (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7690,7 +7698,7 @@ msgid "Instances"
 msgstr "Instance"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7701,7 +7709,7 @@ msgid "Console Ports"
 msgstr "Porty konzoly"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7712,7 +7720,7 @@ msgid "Console Server Ports"
 msgstr "Porty konzolového serveru"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7723,7 +7731,7 @@ msgid "Power Ports"
 msgstr "Napájecí porty"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7734,7 +7742,7 @@ msgid "Power Outlets"
 msgstr "Napájecí zásuvky"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7744,7 +7752,7 @@ msgid "Front Ports"
 msgstr "Přední porty"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7755,7 +7763,7 @@ msgid "Rear Ports"
 msgstr "Zadní porty"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7763,7 +7771,7 @@ msgid "Device Bays"
 msgstr "Pozice pro zařízení"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7851,48 +7859,48 @@ msgstr "Rezervace"
 msgid "Non-Racked Devices"
 msgstr "Zařízení bez racku"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Kontext konfigurace"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Konfigurace rendrování"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Virtuální stroje"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Nainstalované zařízení {device} v zátoce {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Odstraněné zařízení {device} od zátoky {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Děti"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Přidán člen <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "Nelze odebrat hlavní zařízení {device} z virtuálního podvozku."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Odstraněno {device} z virtuálního šasi {chassis}"
@@ -9171,98 +9179,98 @@ msgstr "Nepravdivé"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Hodnoty se musí shodovat s tímto regexem: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Hodnota musí být řetězec."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Hodnota musí odpovídat regex '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Hodnota musí být celé číslo."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Hodnota musí být alespoň {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Hodnota nesmí překročit {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Hodnota musí být desetinná."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Hodnota musí být pravdivá nebo nepravdivá."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Hodnoty data musí být ve formátu ISO 8601 (RRRR-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Hodnoty data a času musí být ve formátu ISO 8601 (RRRR-MM-DD HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Neplatná volba ({value}) pro volitelnou sadu {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Neplatná volba (y){value}) pro volitelnou sadu {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Hodnota musí být ID objektu, ne {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Hodnota musí být seznam ID objektů, ne {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Nalezeno neplatné ID objektu: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Povinné pole nesmí být prázdné."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Základní sada předdefinovaných možností (volitelné)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Volby jsou automaticky seřazeny abecedně"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "vlastní sada výběru polí"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "vlastní sady výběru polí"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Musí definovat základní nebo další možnosti."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9644,7 +9652,7 @@ msgid "notifications"
 msgstr "oznámení"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objekty tohoto typu ({type}) nepodporují oznámení."
@@ -9666,11 +9674,11 @@ msgstr "oznamovací skupina"
 msgid "notification groups"
 msgstr "skupiny oznámení"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "předplatné"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "předplatné"
 
@@ -10597,7 +10605,7 @@ msgstr "Název DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN"
@@ -11220,7 +11228,7 @@ msgid "Added"
 msgstr "Přidal"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11362,26 +11370,26 @@ msgstr ""
 "V názvech DNS jsou povoleny pouze alfanumerické znaky, hvězdičky, pomlčky, "
 "tečky a podtržítka"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Rozhraní zařízení"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Rozhraní virtuálních počítačů"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Dětské předpony"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Dětské rozsahy"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Související IP adresy"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Rozhraní zařízení"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Rozhraní virtuálních počítačů"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Toto pole nesmí být prázdné."
@@ -16428,18 +16436,18 @@ msgstr "{value} musí být násobkem {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} Není platným regulárním výrazem."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} musí implementovat get_required_permissions ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} musí implementovat get_required_permissions ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/da/LC_MESSAGES/django.mo


+ 130 - 122
netbox/translations/da/LC_MESSAGES/django.po

@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Danish (https://app.transifex.com/netbox-community/teams/178115/da/)\n"
@@ -171,8 +171,8 @@ msgstr "Talede"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Område (ID)"
@@ -183,8 +183,8 @@ msgstr "Område (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -195,8 +195,8 @@ msgstr "Region (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -207,8 +207,8 @@ msgstr "Områdegruppe (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -324,8 +324,8 @@ msgstr "Kredsløbstype (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -335,7 +335,7 @@ msgstr "Område (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Placering (ID)"
 
@@ -347,7 +347,7 @@ msgstr "Afslutning A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -356,7 +356,7 @@ msgstr "Afslutning A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -379,7 +379,7 @@ msgstr "Søg"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -412,7 +412,7 @@ msgstr "Kredsløb (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Virtuelt kredsløb (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Virtuelt kredsløb (ID)"
 
@@ -460,7 +460,7 @@ msgstr "Grænseflade (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1921,7 +1921,7 @@ msgstr "Bemærkninger"
 msgid "Assignments"
 msgstr "Opgaver"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Side"
 
@@ -1975,7 +1975,7 @@ msgstr "Opsigelser"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1986,7 +1986,7 @@ msgstr "Opsigelser"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2541,7 +2541,7 @@ msgstr "Ændringslogføring understøttes ikke for denne objekttype ({type})."
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "oprettet"
@@ -3487,7 +3487,7 @@ msgstr "Forældreplacering (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Producent (ID)"
 
@@ -3495,7 +3495,7 @@ msgstr "Producent (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Producent (slug)"
 
@@ -3508,14 +3508,14 @@ msgid "Rack type (ID)"
 msgstr "Racktype (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rolle (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3524,7 +3524,7 @@ msgstr "Rolle (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Rack (ID)"
 
@@ -3622,7 +3622,7 @@ msgstr "Modultype (ID)"
 msgid "Power port (ID)"
 msgstr "Strømstik (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Overordnet beholdningspost (ID)"
 
@@ -3657,8 +3657,8 @@ msgid "Platform (slug)"
 msgstr "Platform (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Områdenavn (slug)"
 
@@ -3908,30 +3908,38 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN-oversættelsespolitik"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Virtuelle chassisgrænseflader til enhed, når enheden er master"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr "Virtuelle chassisgrænseflader til enhed, når enheden er master (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Virtuelle chassis-grænseflader til enhed"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Virtuelle chassisgrænseflader til enhed (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Slags grænseflade"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Overordnet grænseflade (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Broet grænseflade (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "LAG-grænseflade (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3939,78 +3947,78 @@ msgstr "LAG-grænseflade (ID)"
 msgid "MAC Address"
 msgstr "MAC-adresse"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Primær MAC-adresse (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Primær MAC-adresse"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Virtuel enhedskontekst"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Virtuel enhedskontekst (identifikator)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Trådløst LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Trådløs forbindelse"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Virtuel kredsløbsafslutning (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Forældremodulplads (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Installeret modul (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Installeret enhed (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Installeret enhed (navn)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Master (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (navn)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Lejer (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Lejer (snegle)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Uafsluttede"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Strømpanel (ID)"
 
@@ -4025,7 +4033,7 @@ msgstr "Strømpanel (ID)"
 msgid "Tags"
 msgstr "Mærker"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4037,7 +4045,7 @@ msgstr "Mærker"
 msgid "Position"
 msgstr "Position"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5278,7 +5286,7 @@ msgstr "Kan ikke adoptere {model} {name} da det allerede hører til et modul"
 msgid "A {model} named {name} already exists"
 msgstr "EN {model} som hedder {name} findes allerede"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5287,7 +5295,7 @@ msgstr "EN {model} som hedder {name} findes allerede"
 msgid "Power Panel"
 msgstr "Strømpanel"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5695,11 +5703,11 @@ msgstr "Lagergenstand"
 msgid "Inventory Item Role"
 msgstr "Lagervarrolle"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "VM-grænseflade"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5716,7 +5724,7 @@ msgstr "VM-grænseflade"
 msgid "Virtual Machine"
 msgstr "Virtuel maskine"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "En MAC-adresse kan kun tildeles et enkelt objekt."
 
@@ -7527,7 +7535,7 @@ msgstr "Strømudtag"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7567,7 +7575,7 @@ msgstr "Modulbugt"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7597,8 +7605,8 @@ msgid "Allocated draw (W)"
 msgstr "Tildelt lodtrækning (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7703,7 +7711,7 @@ msgid "Instances"
 msgstr "forekomster"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7714,7 +7722,7 @@ msgid "Console Ports"
 msgstr "Konsolporte"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7725,7 +7733,7 @@ msgid "Console Server Ports"
 msgstr "Konsolserverporte"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7736,7 +7744,7 @@ msgid "Power Ports"
 msgstr "Strømstik"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7747,7 +7755,7 @@ msgid "Power Outlets"
 msgstr "Strømudtag"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7757,7 +7765,7 @@ msgid "Front Ports"
 msgstr "Frontporte"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7768,7 +7776,7 @@ msgid "Rear Ports"
 msgstr "Bageste porte"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7776,7 +7784,7 @@ msgid "Device Bays"
 msgstr "Enhedsbugter"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7864,48 +7872,48 @@ msgstr "Reservationer"
 msgid "Non-Racked Devices"
 msgstr "Enheder uden rack"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Konfigurationskontekst"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Gengivelseskonfiguration"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Virtuelle maskiner"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Installeret enhed {device} i bugten {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Fjernet enhed {device} fra bugten {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Børn"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Tilføjet medlem <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "Kan ikke fjerne masterenheden {device} fra det virtuelle chassis."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Fjernet {device} fra virtuelt chassis {chassis}"
@@ -9190,99 +9198,99 @@ msgstr "Falsk"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Værdier skal matche denne regex: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Værdien skal være en streng."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Værdien skal matche regex '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Værdien skal være et heltal."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Værdien skal være mindst {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Værdien må ikke overstige {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Værdien skal være en decimal."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Værdien skal være sand eller falsk."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Datoværdierne skal være i ISO 8601-format (ÅÅÅÅ-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Dato- og klokkeslætsværdierne skal være i ISO 8601-format (ÅÅÅÅÅ-MM-DD "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Ugyldigt valg ({value}) til valgsæt {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Ugyldige valg (er) ({value}) til valgsæt {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Værdien skal være et objekt-id, ikke {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Værdien skal være en liste over objekt-id'er, ikke {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Fundet ugyldigt objekt-id: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Obligatorisk felt kan ikke være tomt."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Basisæt af foruddefinerede valg (valgfrit)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Valg sorteres automatisk alfabetisk"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "brugerdefineret felt valgsæt"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "brugerdefinerede feltvalgssæt"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Skal definere base eller ekstra valg."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9663,7 +9671,7 @@ msgid "notifications"
 msgstr "notifikationer"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objekter af denne type ({type}) understøtter ikke underretninger."
@@ -9685,11 +9693,11 @@ msgstr "meddelelsesgruppe"
 msgid "notification groups"
 msgstr "meddelelsesgrupper"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "abonnement"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "abonnementer"
 
@@ -10614,7 +10622,7 @@ msgstr "DNS-navn"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN'er"
@@ -11247,7 +11255,7 @@ msgid "Added"
 msgstr "Tilføjet"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11389,26 +11397,26 @@ msgstr ""
 "Kun alfanumeriske tegn, stjerner, bindestreger, punktum og understregninger "
 "er tilladt i DNS-navne"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Enhedsgrænseflader"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM-grænseflader"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Børnepræfikser"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Børneområder"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Relaterede IP'er"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Enhedsgrænseflader"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM-grænseflader"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Dette felt må ikke være tomt."
@@ -16470,18 +16478,18 @@ msgstr "{value} skal være et multiplum af {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} er ikke et gyldigt regulært udtryk."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} skal implementere get_required_permissions ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} skal implementere get_required_permissions ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/de/LC_MESSAGES/django.mo


+ 133 - 124
netbox/translations/de/LC_MESSAGES/django.po

@@ -10,17 +10,17 @@
 # haagehan, 2024
 # Robin Reinhardt, 2024
 # Niklas, 2025
-# chbally, 2025
 # Jeremy Stretch, 2025
+# chbally, 2025
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2025\n"
+"Last-Translator: chbally, 2025\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"
@@ -176,8 +176,8 @@ msgstr "Spoke"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Region (ID)"
@@ -188,8 +188,8 @@ msgstr "Region (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -200,8 +200,8 @@ msgstr "Region (URL-Slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -212,8 +212,8 @@ msgstr "Standortgruppe (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -329,8 +329,8 @@ msgstr "Transportnetz Typ (URL-Slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -340,7 +340,7 @@ msgstr "Standort (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Lokation (ID)"
 
@@ -352,7 +352,7 @@ msgstr "Abschlusspunkt A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -361,7 +361,7 @@ msgstr "Abschlusspunkt A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -384,7 +384,7 @@ msgstr "Suche"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -417,7 +417,7 @@ msgstr "Transportnetz (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Virtuelle Verbindung (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Virtuelle Verbindung (ID)"
 
@@ -465,7 +465,7 @@ msgstr "Schnittstelle (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1928,7 +1928,7 @@ msgstr "Kommentare"
 msgid "Assignments"
 msgstr "Zuweisungen"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Seite"
 
@@ -1982,7 +1982,7 @@ msgstr "Abschlusspunkte"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1993,7 +1993,7 @@ msgstr "Abschlusspunkte"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2555,7 +2555,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "erstellt"
@@ -3504,7 +3504,7 @@ msgstr "Übergeordnete Lokation (URL-Slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Hersteller (ID)"
 
@@ -3512,7 +3512,7 @@ msgstr "Hersteller (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Hersteller (Slug)"
 
@@ -3525,14 +3525,14 @@ msgid "Rack type (ID)"
 msgstr "Racktyp (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rolle (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3541,7 +3541,7 @@ msgstr "Rolle (URL-Slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Rack (ID)"
 
@@ -3639,7 +3639,7 @@ msgstr "Modultyp (ID)"
 msgid "Power port (ID)"
 msgstr "Stromanschluss (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Übergeordneter Inventarartikel (ID)"
 
@@ -3674,8 +3674,8 @@ msgid "Platform (slug)"
 msgstr "Betriebssystem (URL-Slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Standortname (URL-Slug)"
 
@@ -3925,30 +3925,39 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN-Übersetzungsrichtlinie"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Virtuelle Gehäuseschnittstellen für Gerät, wenn das Gerät Master ist"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Virtuelle Gehäuseschnittstellen für Gerät, wenn das Gerät Master ist (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Virtuelle Gehäuseschnittstellen für Gerät"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Virtuelle Gehäuseschnittstellen für Gerät (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Art der Schnittstelle"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Übergeordnete Schnittstelle (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Überbrückte Schnittstelle (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "LAG-Schnittstelle (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3956,78 +3965,78 @@ msgstr "LAG-Schnittstelle (ID)"
 msgid "MAC Address"
 msgstr "MAC-Adresse"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Primäre MAC-Adresse (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Primäre MAC-Adresse"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Virtual Device Context"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Virtual Device Context (Identifier)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "WLAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "WLAN Verbindung"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Virtueller Verbindungsabschluß (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Hauptmodulschacht (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Installiertes Modul (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Installiertes Gerät (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Installiertes Gerät (Name)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Master (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (Name)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Mandant (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Mandant (URL-Slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Nicht terminiert"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Stromverteiler (ID)"
 
@@ -4042,7 +4051,7 @@ msgstr "Stromverteiler (ID)"
 msgid "Tags"
 msgstr "Tags"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4054,7 +4063,7 @@ msgstr "Tags"
 msgid "Position"
 msgstr "Position"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5308,7 +5317,7 @@ msgstr ""
 msgid "A {model} named {name} already exists"
 msgstr "Ein {model} genannt {name} existiert bereits"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5317,7 +5326,7 @@ msgstr "Ein {model} genannt {name} existiert bereits"
 msgid "Power Panel"
 msgstr "Stromverteiler"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5730,11 +5739,11 @@ msgstr "Inventar-Artikel"
 msgid "Inventory Item Role"
 msgstr "Rolle des Inventarartikels"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "VM-Schnittstelle"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5751,7 +5760,7 @@ msgstr "VM-Schnittstelle"
 msgid "Virtual Machine"
 msgstr "Virtuelle Maschine"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Eine MAC-Adresse kann nur einem einzelnen Objekt zugewiesen werden."
 
@@ -7638,7 +7647,7 @@ msgstr "Steckdosen"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7678,7 +7687,7 @@ msgstr "Moduleinsatz"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7708,8 +7717,8 @@ msgid "Allocated draw (W)"
 msgstr "Zugewiesener Stromverbrauch (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7814,7 +7823,7 @@ msgid "Instances"
 msgstr "Instanzen"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7825,7 +7834,7 @@ msgid "Console Ports"
 msgstr "Konsolenanschlüsse"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7836,7 +7845,7 @@ msgid "Console Server Ports"
 msgstr "Konsolenserveranschlüsse"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7847,7 +7856,7 @@ msgid "Power Ports"
 msgstr "Stromanschlüsse"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7858,7 +7867,7 @@ msgid "Power Outlets"
 msgstr "Steckdosen"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7868,7 +7877,7 @@ msgid "Front Ports"
 msgstr "Frontanschlüsse"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7879,7 +7888,7 @@ msgid "Rear Ports"
 msgstr "Rückanschlüsse"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7887,7 +7896,7 @@ msgid "Device Bays"
 msgstr "Geräteeinsätze"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7975,50 +7984,50 @@ msgstr "Rackreservierungen"
 msgid "Non-Racked Devices"
 msgstr "Nicht in einem Rack befindliche Geräte"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Konfigurationsvorlage"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Konfiguration rendern"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Virtuelle Maschinen"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Gerät {device} im Schacht {device_bay} installiert."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Gerät {device} im Schacht {device_bay} entfernt."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Untergeordnet"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Mitglied hinzugefügt <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "Ein Hauptgerät (Master Device) {device} kann von einem virtuellen Gehäuse "
 "nicht entfernt werden."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "{device} vom virtuellen Gehäuse {chassis} entfernt."
@@ -9341,99 +9350,99 @@ msgid "Values must match this regex: <code>{regex}</code>"
 msgstr ""
 "Die Werte müssen mit diesem Regex übereinstimmen: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Der Wert muss eine Zeichenfolge sein."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Wert muss mit Regex '{regex}' übereinstimmen"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Der Wert muss eine Ganzzahl sein."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Wert muss mindestens {minimum} sein"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Wert darf nicht {maximum} überschreiten"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Der Wert muss eine Dezimalzahl sein."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Der Wert muss wahr oder falsch sein."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Datumswerte müssen im ISO 8601-Format (YYYY-MM-DD) vorliegen."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Datums- und Uhrzeitwerte müssen im ISO 8601-Format (YYYY-MM-DD HH:MM:SS) "
 "vorliegen."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Ungültige Auswahl ({value}) für Auswahlsatz {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Ungültige Auswahl (en) ({value}) für Auswahlsatz {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Der Wert muss eine Objekt-ID sein, nicht {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Der Wert muss eine Liste von Objekt-IDs sein, nicht {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Ungültige Objekt-ID gefunden: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Das erforderliche Feld darf nicht leer sein."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Basissatz vordefinierter Auswahlmöglichkeiten (optional)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Die Auswahlmöglichkeiten werden automatisch alphabetisch sortiert"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "benutzerdefinierter Feldauswahlsatz"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "Benutzerdefinierte Feldoptionen"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Muss Basis- oder zusätzliche Auswahlmöglichkeiten definieren."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9821,7 +9830,7 @@ msgid "notifications"
 msgstr "Benachrichtigungen"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objekte dieses Typs ({type}) unterstützen keine Benachrichtigungen."
@@ -9843,11 +9852,11 @@ msgstr "Benachrichtigungsgruppe"
 msgid "notification groups"
 msgstr "Benachrichtigungsgruppen"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "Abonnement"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "Abonnements"
 
@@ -10787,7 +10796,7 @@ msgstr "DNS-Name"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLANs"
@@ -11431,7 +11440,7 @@ msgid "Added"
 msgstr "Hinzugefügt"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11573,26 +11582,26 @@ msgstr ""
 "In DNS-Namen sind nur alphanumerische Zeichen, Sternchen, Bindestriche, "
 "Punkte und Unterstriche zulässig"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Geräteschnittstellen"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM-Schnittstellen"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "untergeordnete Prefixe"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "untergeordnete Bereiche"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Verwandte IPs"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Geräteschnittstellen"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM-Schnittstellen"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Dieses Feld darf nicht leer sein."
@@ -16697,18 +16706,18 @@ msgstr "{value} muss ein Vielfaches von sein {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} ist kein gültiger regulärer Ausdruck."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} muss get_required_permission() implementieren"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} muss get_required_permission() implementieren"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

+ 129 - 121
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -165,8 +165,8 @@ msgstr ""
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr ""
@@ -177,8 +177,8 @@ msgstr ""
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -189,8 +189,8 @@ msgstr ""
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -201,8 +201,8 @@ msgstr ""
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -318,8 +318,8 @@ msgstr ""
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -329,7 +329,7 @@ msgstr ""
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr ""
 
@@ -341,7 +341,7 @@ msgstr ""
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -350,7 +350,7 @@ msgstr ""
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -373,7 +373,7 @@ msgstr ""
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -406,7 +406,7 @@ msgstr ""
 msgid "Virtual circuit (CID)"
 msgstr ""
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr ""
 
@@ -453,7 +453,7 @@ msgstr ""
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1895,7 +1895,7 @@ msgstr ""
 msgid "Assignments"
 msgstr ""
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr ""
 
@@ -1949,7 +1949,7 @@ msgstr ""
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1960,7 +1960,7 @@ msgstr ""
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2512,7 +2512,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr ""
@@ -3449,7 +3449,7 @@ msgstr ""
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr ""
 
@@ -3457,7 +3457,7 @@ msgstr ""
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr ""
 
@@ -3470,14 +3470,14 @@ msgid "Rack type (ID)"
 msgstr ""
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr ""
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3486,7 +3486,7 @@ msgstr ""
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr ""
 
@@ -3584,7 +3584,7 @@ msgstr ""
 msgid "Power port (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr ""
 
@@ -3619,8 +3619,8 @@ msgid "Platform (slug)"
 msgstr ""
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr ""
 
@@ -3870,30 +3870,38 @@ msgid "VLAN Translation Policy"
 msgstr ""
 
 #: netbox/dcim/filtersets.py:1891
-msgid "Virtual Chassis Interfaces for Device"
+msgid "Virtual Chassis Interfaces for Device when device is master"
 msgstr ""
 
 #: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+
+#: netbox/dcim/filtersets.py:1901
+msgid "Virtual Chassis Interfaces for Device"
+msgstr ""
+
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3901,77 +3909,77 @@ msgstr ""
 msgid "MAC Address"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1973 netbox/templates/wireless/wirelesslan.html:11
+#: netbox/dcim/filtersets.py:1983 netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr ""
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr ""
 
@@ -3986,7 +3994,7 @@ msgstr ""
 msgid "Tags"
 msgstr ""
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -3998,7 +4006,7 @@ msgstr ""
 msgid "Position"
 msgstr ""
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5213,7 +5221,7 @@ msgstr ""
 msgid "A {model} named {name} already exists"
 msgstr ""
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5222,7 +5230,7 @@ msgstr ""
 msgid "Power Panel"
 msgstr ""
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5614,11 +5622,11 @@ msgstr ""
 msgid "Inventory Item Role"
 msgstr ""
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr ""
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5635,7 +5643,7 @@ msgstr ""
 msgid "Virtual Machine"
 msgstr ""
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr ""
 
@@ -7351,7 +7359,7 @@ msgstr ""
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7390,7 +7398,7 @@ msgstr ""
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7420,8 +7428,8 @@ msgid "Allocated draw (W)"
 msgstr ""
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7526,7 +7534,7 @@ msgid "Instances"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7537,7 +7545,7 @@ msgid "Console Ports"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7548,7 +7556,7 @@ msgid "Console Server Ports"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7559,7 +7567,7 @@ msgid "Power Ports"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7570,7 +7578,7 @@ msgid "Power Outlets"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7580,7 +7588,7 @@ msgid "Front Ports"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7591,7 +7599,7 @@ msgid "Rear Ports"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7599,7 +7607,7 @@ msgid "Device Bays"
 msgstr ""
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7687,48 +7695,48 @@ msgstr ""
 msgid "Non-Racked Devices"
 msgstr ""
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr ""
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr ""
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr ""
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr ""
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr ""
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr ""
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr ""
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr ""
@@ -8952,97 +8960,97 @@ msgstr ""
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr ""
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr ""
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9396,7 +9404,7 @@ msgid "notifications"
 msgstr ""
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr ""
@@ -9418,11 +9426,11 @@ msgstr ""
 msgid "notification groups"
 msgstr ""
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr ""
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr ""
 
@@ -10340,7 +10348,7 @@ msgstr ""
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr ""
@@ -10937,7 +10945,7 @@ msgid "Added"
 msgstr ""
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11077,24 +11085,24 @@ msgid ""
 "are allowed in DNS names"
 msgstr ""
 
-#: netbox/ipam/views.py:569
-msgid "Child Prefixes"
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
 msgstr ""
 
-#: netbox/ipam/views.py:605
-msgid "Child Ranges"
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
 msgstr ""
 
-#: netbox/ipam/views.py:951
-msgid "Related IPs"
+#: netbox/ipam/views.py:587
+msgid "Child Prefixes"
 msgstr ""
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
+#: netbox/ipam/views.py:623
+msgid "Child Ranges"
 msgstr ""
 
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
+#: netbox/ipam/views.py:969
+msgid "Related IPs"
 msgstr ""
 
 #: netbox/netbox/api/fields.py:66
@@ -15997,17 +16005,17 @@ msgstr ""
 msgid "{value} is not a valid regular expression."
 msgstr ""
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr ""
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only "

BIN
netbox/translations/es/LC_MESSAGES/django.mo


+ 134 - 122
netbox/translations/es/LC_MESSAGES/django.po

@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n"
@@ -171,8 +171,8 @@ msgstr "Habló"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Región (ID)"
@@ -183,8 +183,8 @@ msgstr "Región (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -195,8 +195,8 @@ msgstr "Región (babosa)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -207,8 +207,8 @@ msgstr "Grupo de sitios (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -324,8 +324,8 @@ msgstr "Tipo de circuito (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -335,7 +335,7 @@ msgstr "Sitio (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Ubicación (ID)"
 
@@ -347,7 +347,7 @@ msgstr "Terminación A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -356,7 +356,7 @@ msgstr "Terminación A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -379,7 +379,7 @@ msgstr "Búsqueda"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -412,7 +412,7 @@ msgstr "Circuito (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Circuito virtual (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Circuito virtual (ID)"
 
@@ -460,7 +460,7 @@ msgstr "Interfaz (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1922,7 +1922,7 @@ msgstr "Comentarios"
 msgid "Assignments"
 msgstr "Asignaciones"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Lado"
 
@@ -1976,7 +1976,7 @@ msgstr "Terminaciones"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1987,7 +1987,7 @@ msgstr "Terminaciones"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2545,7 +2545,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "creado"
@@ -3495,7 +3495,7 @@ msgstr "Ubicación principal (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Fabricante (ID)"
 
@@ -3503,7 +3503,7 @@ msgstr "Fabricante (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Fabricante (babosa)"
 
@@ -3516,14 +3516,14 @@ msgid "Rack type (ID)"
 msgstr "Tipo de bastidor (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Función (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3532,7 +3532,7 @@ msgstr "Rol (babosa)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Rack (ID)"
 
@@ -3630,7 +3630,7 @@ msgstr "Tipo de módulo (ID)"
 msgid "Power port (ID)"
 msgstr "Puerto de alimentación (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Artículo del inventario principal (ID)"
 
@@ -3665,8 +3665,8 @@ msgid "Platform (slug)"
 msgstr "Plataforma (babosa)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Nombre del sitio (slug)"
 
@@ -3916,30 +3916,42 @@ msgid "VLAN Translation Policy"
 msgstr "Política de traducción de VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr ""
+"Interfaces de chasis virtuales para dispositivos cuando el dispositivo es "
+"maestro"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Interfaces de chasis virtuales para dispositivos cuando el dispositivo es "
+"maestro (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Interfaces de chasis virtuales para dispositivos"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Interfaces de chasis virtuales para dispositivos (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Tipo de interfaz"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Interfaz principal (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Interfaz puenteada (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Interfaz LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3947,78 +3959,78 @@ msgstr "Interfaz LAG (ID)"
 msgid "MAC Address"
 msgstr "Dirección MAC"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Dirección MAC principal (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Dirección MAC principal"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Contexto de dispositivo virtual"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Contexto de dispositivo virtual (identificador)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "LAN inalámbrica"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Enlace inalámbrico"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Terminación de circuito virtual (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Compartimento del módulo principal (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Módulo instalado (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Dispositivo instalado (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Dispositivo instalado (nombre)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Maestro (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Maestro (nombre)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Inquilino (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Inquilino (babosa)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Inacabado"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Panel de alimentación (ID)"
 
@@ -4033,7 +4045,7 @@ msgstr "Panel de alimentación (ID)"
 msgid "Tags"
 msgstr "Etiquetas"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4045,7 +4057,7 @@ msgstr "Etiquetas"
 msgid "Position"
 msgstr "Posición"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5297,7 +5309,7 @@ msgstr "No puede adoptar {model} {name} porque ya pertenece a un módulo"
 msgid "A {model} named {name} already exists"
 msgstr "UN {model} llamado {name} ya existe"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5306,7 +5318,7 @@ msgstr "UN {model} llamado {name} ya existe"
 msgid "Power Panel"
 msgstr "Panel de alimentación"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5716,11 +5728,11 @@ msgstr "Artículo de inventario"
 msgid "Inventory Item Role"
 msgstr "Función del artículo de inventario"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Interfaz VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5737,7 +5749,7 @@ msgstr "Interfaz VM"
 msgid "Virtual Machine"
 msgstr "Máquina virtual"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Una dirección MAC solo se puede asignar a un único objeto."
 
@@ -7598,7 +7610,7 @@ msgstr "tomas de corriente"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7638,7 +7650,7 @@ msgstr "Bahía de módulos"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7668,8 +7680,8 @@ msgid "Allocated draw (W)"
 msgstr "Sorteo asignado (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7774,7 +7786,7 @@ msgid "Instances"
 msgstr "Instancias"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7785,7 +7797,7 @@ msgid "Console Ports"
 msgstr "Puertos de consola"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7796,7 +7808,7 @@ msgid "Console Server Ports"
 msgstr "Puertos de servidor de consola"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7807,7 +7819,7 @@ msgid "Power Ports"
 msgstr "Puertos de alimentación"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7818,7 +7830,7 @@ msgid "Power Outlets"
 msgstr "Tomas de corriente"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7828,7 +7840,7 @@ msgid "Front Ports"
 msgstr "Puertos frontales"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7839,7 +7851,7 @@ msgid "Rear Ports"
 msgstr "Puertos traseros"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7847,7 +7859,7 @@ msgid "Device Bays"
 msgstr "Bahías de dispositivos"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7935,50 +7947,50 @@ msgstr "Reservaciones"
 msgid "Non-Racked Devices"
 msgstr "Dispositivos no rakeados"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Contexto de configuración"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Configuración de renderizado"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Máquinas virtuales"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Dispositivo instalado {device} en la bahía {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Dispositivo eliminado {device} desde la bahía {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Niños"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Miembro agregado <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "No se puede eliminar el dispositivo maestro {device} desde el chasis "
 "virtual."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Eliminado {device} desde un chasis virtual {chassis}"
@@ -9286,101 +9298,101 @@ msgid "Values must match this regex: <code>{regex}</code>"
 msgstr ""
 "Los valores deben coincidir con esta expresión regular: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "El valor debe ser una cadena."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "El valor debe coincidir con la expresión regular '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "El valor debe ser un número entero."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "El valor debe ser al menos {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "El valor no debe superar {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "El valor debe ser decimal."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "El valor debe ser verdadero o falso."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Los valores de fecha deben estar en formato ISO 8601 (AAAA-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Los valores de fecha y hora deben estar en formato ISO 8601 (AAAA-MM-DD "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr ""
 "Elección no válida ({value}) para el conjunto de opciones {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr ""
 "Elecciones no válidas ({value}) para el conjunto de opciones {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "El valor debe ser un ID de objeto, no {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "El valor debe ser una lista de identificadores de objetos, no {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Se encontró un ID de objeto no válido: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "El campo obligatorio no puede estar vacío."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Conjunto básico de opciones predefinidas (opcional)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Las opciones se ordenan alfabéticamente automáticamente"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "conjunto de opciones de campo personalizadas"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "conjuntos de opciones de campo personalizadas"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Debe definir opciones básicas o adicionales."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9769,7 +9781,7 @@ msgid "notifications"
 msgstr "notificaciones"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objetos de este tipo ({type}) no admiten notificaciones."
@@ -9791,11 +9803,11 @@ msgstr "grupo de notificaciones"
 msgid "notification groups"
 msgstr "grupos de notificaciones"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "suscripción"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "suscripciones"
 
@@ -10733,7 +10745,7 @@ msgstr "Nombre DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN"
@@ -11371,7 +11383,7 @@ msgid "Added"
 msgstr "Añadido"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11513,26 +11525,26 @@ msgstr ""
 "Solo se permiten caracteres alfanuméricos, asteriscos, guiones, puntos y "
 "guiones bajos en los nombres DNS"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfaces de dispositivos"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Interfaces de VM"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Prefijos infantiles"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Rangos infantiles"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "IPs relacionadas"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfaces de dispositivos"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Interfaces de VM"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Es posible que este campo no esté en blanco."
@@ -16634,17 +16646,17 @@ msgstr "{value} debe ser un múltiplo de {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} no es una expresión regular válida."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__} debe implementar get_required_permission ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} debe implementar get_required_permission ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/fr/LC_MESSAGES/django.mo


+ 135 - 126
netbox/translations/fr/LC_MESSAGES/django.po

@@ -10,21 +10,21 @@
 # thomas rivemale, 2024
 # Jeff Gehlbach, 2024
 # marcpaulchand <paul@u129.fr>, 2025
-# Mathieu, 2025
 # Étienne Brunel, 2025
 # Jean Benoit <jean@unistra.fr>, 2025
 # Julia, 2025
 # Quentin Laurent, 2025
 # Jeremy Stretch, 2025
+# Mathieu, 2025
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2025\n"
+"Last-Translator: Mathieu, 2025\n"
 "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -181,8 +181,8 @@ msgstr "Spoke"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Région (ID)"
@@ -193,8 +193,8 @@ msgstr "Région (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -205,8 +205,8 @@ msgstr "Région (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -217,8 +217,8 @@ msgstr "Groupe de sites (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -334,8 +334,8 @@ msgstr "Type de circuit (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -345,7 +345,7 @@ msgstr "Site (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Lieu (ID)"
 
@@ -357,7 +357,7 @@ msgstr "Terminaison A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -366,7 +366,7 @@ msgstr "Terminaison A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -389,7 +389,7 @@ msgstr "Rechercher"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -422,7 +422,7 @@ msgstr "Circuit (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Circuit virtuel (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Circuit virtuel (ID)"
 
@@ -470,7 +470,7 @@ msgstr "Interface (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1932,7 +1932,7 @@ msgstr "Commentaires"
 msgid "Assignments"
 msgstr "Allocations"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Côté"
 
@@ -1986,7 +1986,7 @@ msgstr "Terminaisons"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1997,7 +1997,7 @@ msgstr "Terminaisons"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2560,7 +2560,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "créé"
@@ -3511,7 +3511,7 @@ msgstr "Localisation du parent (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Fabricant (ID)"
 
@@ -3519,7 +3519,7 @@ msgstr "Fabricant (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Fabricant (slug)"
 
@@ -3532,14 +3532,14 @@ msgid "Rack type (ID)"
 msgstr "Type de baie (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rôle (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3548,7 +3548,7 @@ msgstr "Rôle (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Baie (ID)"
 
@@ -3646,7 +3646,7 @@ msgstr "Type de module (ID)"
 msgid "Power port (ID)"
 msgstr "Port d'alimentation (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Article d'inventaire parent (ID)"
 
@@ -3681,8 +3681,8 @@ msgid "Platform (slug)"
 msgstr "Plateforme (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Nom du site (slug)"
 
@@ -3932,30 +3932,39 @@ msgid "VLAN Translation Policy"
 msgstr "Politique de traduction VLAN"
 
 #: netbox/dcim/filtersets.py:1891
-msgid "Virtual Chassis Interfaces for Device"
-msgstr "Interfaces de châssis virtuelles pour appareils"
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Interfaces de châssis virtuel pour l'appareil quand il est master"
 
 #: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Interfaces de châssis virtuel pour l'appareil quand il est master (ID)"
+
+#: netbox/dcim/filtersets.py:1901
+msgid "Virtual Chassis Interfaces for Device"
+msgstr "Interfaces de châssis virtuel pour l'appareil"
+
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
-msgstr "Interfaces de châssis virtuel pour le périphérique (ID)"
+msgstr "Interfaces de châssis virtuel pour l'appareil (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Type d'interface"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Interface parente (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Interface pontée (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Interface LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3963,78 +3972,78 @@ msgstr "Interface LAG (ID)"
 msgid "MAC Address"
 msgstr "Adresse MAC"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Adresse MAC principale (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Adresse MAC principale"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Contexte du périphérique virtuel"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Contexte du périphérique virtuel (Identifiant)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "LAN sans fil"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Liaison sans fil"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Terminaison du circuit virtuel (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Baie du module parent (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Module installé (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Appareil installé (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Appareil installé (nom)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Maître (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (nom)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Entité (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Entité (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Non terminé"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Panneau d'alimentation (ID)"
 
@@ -4049,7 +4058,7 @@ msgstr "Panneau d'alimentation (ID)"
 msgid "Tags"
 msgstr "Étiquettes"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4061,7 +4070,7 @@ msgstr "Étiquettes"
 msgid "Position"
 msgstr "Position"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5313,7 +5322,7 @@ msgstr ""
 msgid "A {model} named {name} already exists"
 msgstr "UN {model} nommé {name} existe déjà"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5322,7 +5331,7 @@ msgstr "UN {model} nommé {name} existe déjà"
 msgid "Power Panel"
 msgstr "Panneau d'alimentation"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5731,11 +5740,11 @@ msgstr "Article d'inventaire"
 msgid "Inventory Item Role"
 msgstr "Rôle de l'article d'inventaire"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Interface de machine virtuelle"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5752,7 +5761,7 @@ msgstr "Interface de machine virtuelle"
 msgid "Virtual Machine"
 msgstr "Machine virtuelle"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Une adresse MAC ne peut être attribuée qu'à un seul objet."
 
@@ -7612,7 +7621,7 @@ msgstr "Prises de courant"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7652,7 +7661,7 @@ msgstr "Module Bay"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7682,8 +7691,8 @@ msgid "Allocated draw (W)"
 msgstr "Tirage alloué (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7788,7 +7797,7 @@ msgid "Instances"
 msgstr "Instances"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7799,7 +7808,7 @@ msgid "Console Ports"
 msgstr "Ports de console"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7810,7 +7819,7 @@ msgid "Console Server Ports"
 msgstr "Ports du serveur de consoles"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7821,7 +7830,7 @@ msgid "Power Ports"
 msgstr "Ports d'alimentation"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7832,7 +7841,7 @@ msgid "Power Outlets"
 msgstr "Prises de courant"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7842,7 +7851,7 @@ msgid "Front Ports"
 msgstr "Ports avant"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7853,7 +7862,7 @@ msgid "Rear Ports"
 msgstr "Ports arrière"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7861,7 +7870,7 @@ msgid "Device Bays"
 msgstr "Baies pour appareils"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7949,50 +7958,50 @@ msgstr "Réservations"
 msgid "Non-Racked Devices"
 msgstr "Appareils non mis en baie"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Contexte de configuration"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Configuration du rendu"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Machines virtuelles"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Appareil installé {device} dans la baie {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Appareil retiré {device} depuis la baie {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Enfants"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Membre ajouté <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "Impossible de supprimer le périphérique principal {device} depuis le châssis"
 " virtuel."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Supprimé {device} depuis un châssis virtuel {chassis}"
@@ -9318,99 +9327,99 @@ msgstr ""
 "Les valeurs doivent correspondre à cette expression régulière : "
 "<code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "La valeur doit être une chaîne."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "La valeur doit correspondre à « regex »{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "La valeur doit être un entier."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "La valeur doit être d'au moins {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "La valeur ne doit pas dépasser {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "La valeur doit être une décimale."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "La valeur doit être vraie ou fausse."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Les valeurs de date doivent être au format ISO 8601 (AAAA-MM-JJ)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Les valeurs de date et d'heure doivent être au format ISO 8601 (YYYY-MM-DD "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Choix non valide ({value}) pour le set de choix {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Choix (s) non valide ({value}) pour le set de choix {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "La valeur doit être un identifiant d'objet, et non {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "La valeur doit être une liste d'identifiants d'objets, et non {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "ID d'objet non valide trouvé : {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Le champ obligatoire ne peut pas être vide."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Ensemble de base de choix prédéfinis (facultatif)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Les choix sont automatiquement classés par ordre alphabétique"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "ensemble de choix de champs personnalisés"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "ensembles de choix de champs personnalisés"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Doit définir des choix de base ou supplémentaires."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9798,7 +9807,7 @@ msgid "notifications"
 msgstr "notifications"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr ""
@@ -9821,11 +9830,11 @@ msgstr "groupe de notifications"
 msgid "notification groups"
 msgstr "groupes de notifications"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "abonnement"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "abonnements"
 
@@ -10762,7 +10771,7 @@ msgstr "Nom DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN"
@@ -11406,7 +11415,7 @@ msgid "Added"
 msgstr "Ajouté"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11550,26 +11559,26 @@ msgstr ""
 "Seuls les caractères alphanumériques, les astérisques, les tirets, les "
 "points et les traits de soulignement sont autorisés dans les noms DNS"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfaces des appareils"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Interfaces de machines virtuelles"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Préfixes pour enfants"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Plages pour enfants"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "IP associées"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfaces des appareils"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Interfaces de machines virtuelles"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Ce champ n'est peut-être pas vide."
@@ -16676,17 +16685,17 @@ msgstr "{value} doit être un multiple de {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} n'est pas une expression rationnelle valide."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__} doit implémenter get_required_permission()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} doit implémenter get_required_permission()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/it/LC_MESSAGES/django.mo


+ 134 - 122
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n"
@@ -173,8 +173,8 @@ msgstr "Ha parlato"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Regione (ID)"
@@ -185,8 +185,8 @@ msgstr "Regione (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -197,8 +197,8 @@ msgstr "Regione (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -209,8 +209,8 @@ msgstr "Gruppo del sito (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -326,8 +326,8 @@ msgstr "Tipo di circuito (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -337,7 +337,7 @@ msgstr "Sito (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Ubicazione (ID)"
 
@@ -349,7 +349,7 @@ msgstr "Terminazione A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -358,7 +358,7 @@ msgstr "Terminazione A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -381,7 +381,7 @@ msgstr "Cerca"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -414,7 +414,7 @@ msgstr "Circuito (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Circuito virtuale (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Circuito virtuale (ID)"
 
@@ -462,7 +462,7 @@ msgstr "Interfaccia (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1924,7 +1924,7 @@ msgstr "Commenti"
 msgid "Assignments"
 msgstr "Incarichi"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Lato"
 
@@ -1978,7 +1978,7 @@ msgstr "Terminazioni"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1989,7 +1989,7 @@ msgstr "Terminazioni"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2550,7 +2550,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "creato"
@@ -3500,7 +3500,7 @@ msgstr "Sede principale (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Produttore (ID)"
 
@@ -3508,7 +3508,7 @@ msgstr "Produttore (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Produttore (lumaca)"
 
@@ -3521,14 +3521,14 @@ msgid "Rack type (ID)"
 msgstr "Tipo di rack (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Ruolo (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3537,7 +3537,7 @@ msgstr "Ruolo (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Cremagliera (ID)"
 
@@ -3635,7 +3635,7 @@ msgstr "Tipo di modulo (ID)"
 msgid "Power port (ID)"
 msgstr "Porta di alimentazione (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Articolo di inventario principale (ID)"
 
@@ -3670,8 +3670,8 @@ msgid "Platform (slug)"
 msgstr "Piattaforma (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Nome del sito (slug)"
 
@@ -3921,30 +3921,42 @@ msgid "VLAN Translation Policy"
 msgstr "Politica di traduzione VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr ""
+"Interfacce virtuali dello chassis per il dispositivo quando il dispositivo è"
+" master"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Interfacce virtuali dello chassis per il dispositivo quando il dispositivo è"
+" master (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Interfacce virtuali dello chassis per dispositivi"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Interfacce virtuali dello chassis per dispositivi (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Tipo di interfaccia"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Interfaccia principale (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Interfaccia con ponte (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Interfaccia LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3952,78 +3964,78 @@ msgstr "Interfaccia LAG (ID)"
 msgid "MAC Address"
 msgstr "Indirizzo MAC"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Indirizzo MAC (ID) primario"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Indirizzo MAC primario"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Contesto del dispositivo virtuale"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Contesto del dispositivo virtuale (identificatore)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "LAN senza fili"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Collegamento wireless"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Terminazione del circuito virtuale (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Alloggiamento del modulo principale (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Modulo installato (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Dispositivo installato (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Dispositivo installato (nome)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Maestro (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (nome)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Inquilino (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Inquilino (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Interminato"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Pannello di alimentazione (ID)"
 
@@ -4038,7 +4050,7 @@ msgstr "Pannello di alimentazione (ID)"
 msgid "Tags"
 msgstr "Etichette"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4050,7 +4062,7 @@ msgstr "Etichette"
 msgid "Position"
 msgstr "Posizione"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5304,7 +5316,7 @@ msgstr "Non può adottare {model} {name} in quanto appartiene già a un modulo"
 msgid "A {model} named {name} already exists"
 msgstr "UN {model} denominato {name} esiste già"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5313,7 +5325,7 @@ msgstr "UN {model} denominato {name} esiste già"
 msgid "Power Panel"
 msgstr "Pannello di alimentazione"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5725,11 +5737,11 @@ msgstr "Articolo di inventario"
 msgid "Inventory Item Role"
 msgstr "Ruolo dell'articolo di inventario"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Interfaccia VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5746,7 +5758,7 @@ msgstr "Interfaccia VM"
 msgid "Virtual Machine"
 msgstr "Macchina virtuale"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Un indirizzo MAC può essere assegnato a un solo oggetto."
 
@@ -7623,7 +7635,7 @@ msgstr "Prese di corrente"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7663,7 +7675,7 @@ msgstr "Modulo Bay"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7693,8 +7705,8 @@ msgid "Allocated draw (W)"
 msgstr "Pareggio assegnato (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7799,7 +7811,7 @@ msgid "Instances"
 msgstr "Istanze"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7810,7 +7822,7 @@ msgid "Console Ports"
 msgstr "Porte console"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7821,7 +7833,7 @@ msgid "Console Server Ports"
 msgstr "Porte Console Server"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7832,7 +7844,7 @@ msgid "Power Ports"
 msgstr "Porte di alimentazione"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7843,7 +7855,7 @@ msgid "Power Outlets"
 msgstr "Prese di corrente"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7853,7 +7865,7 @@ msgid "Front Ports"
 msgstr "Porte anteriori"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7864,7 +7876,7 @@ msgid "Rear Ports"
 msgstr "Porte posteriori"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7872,7 +7884,7 @@ msgid "Device Bays"
 msgstr "Alloggiamenti per dispositivi"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7960,49 +7972,49 @@ msgstr "Prenotazioni"
 msgid "Non-Racked Devices"
 msgstr "Dispositivi non montati su rack"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Contesto di configurazione"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Configurazione del rendering"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Macchine virtuali"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Dispositivo installato {device} nella baia {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Dispositivo rimosso {device} dalla baia {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Bambini"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Membro aggiunto <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "Impossibile rimuovere il dispositivo master {device} dallo chassis virtuale."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Rimosso {device} da chassis virtuale {chassis}"
@@ -9315,99 +9327,99 @@ msgstr "Falso"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "I valori devono corrispondere a questa regex: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Il valore deve essere una stringa."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Il valore deve corrispondere a regex '{regex}»"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Il valore deve essere un numero intero."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Il valore deve essere almeno {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Il valore non deve superare {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Il valore deve essere decimale."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Il valore deve essere vero o falso."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "I valori della data devono essere in formato ISO 8601 (AAAA-MM-GG)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "I valori di data e ora devono essere in formato ISO 8601 (AAAA-MM-GG "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Scelta non valida ({value}) per il set a scelta {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Scelte non valide ({value}) per il set a scelta {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Il valore deve essere un ID oggetto, non {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Il valore deve essere un elenco di ID oggetto, non {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "È stato trovato un ID oggetto non valido: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Il campo obbligatorio non può essere vuoto."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Set base di scelte predefinite (opzionale)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Le scelte vengono ordinate automaticamente alfabeticamente"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "set di scelta dei campi personalizzati"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "set di scelte di campi personalizzati"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "È necessario definire scelte di base o extra."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9795,7 +9807,7 @@ msgid "notifications"
 msgstr "notifiche"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Oggetti di questo tipo ({type}) non supportano le notifiche."
@@ -9817,11 +9829,11 @@ msgstr "gruppo di notifiche"
 msgid "notification groups"
 msgstr "gruppi di notifica"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "sottoscrizione"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "sottoscrizioni"
 
@@ -10755,7 +10767,7 @@ msgstr "Nome DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN"
@@ -11399,7 +11411,7 @@ msgid "Added"
 msgstr "Aggiunto"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11543,26 +11555,26 @@ msgstr ""
 "Nei nomi DNS sono consentiti solo caratteri alfanumerici, asterischi, "
 "trattini, punti e trattini bassi"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfacce dei dispositivi"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Interfacce VM"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Prefissi per bambini"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Gamme per bambini"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "IP correlati"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfacce dei dispositivi"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Interfacce VM"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Questo campo non può essere vuoto."
@@ -16657,18 +16669,18 @@ msgstr "{value} deve essere un multiplo di {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} non è un'espressione regolare valida."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} deve implementare get_required_permission ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} deve implementare get_required_permission ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/ja/LC_MESSAGES/django.mo


+ 130 - 122
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n"
@@ -170,8 +170,8 @@ msgstr "スポーク"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "リージョン (ID)"
@@ -182,8 +182,8 @@ msgstr "リージョン (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -194,8 +194,8 @@ msgstr "リージョン (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -206,8 +206,8 @@ msgstr "サイトグループ (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -323,8 +323,8 @@ msgstr "回線タイプ (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -334,7 +334,7 @@ msgstr "サイト (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "ロケーション (ID)"
 
@@ -346,7 +346,7 @@ msgstr "ターミネーション A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -355,7 +355,7 @@ msgstr "ターミネーション A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -378,7 +378,7 @@ msgstr "検索"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -411,7 +411,7 @@ msgstr "回線 (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "仮想回線 (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "仮想回線 (ID)"
 
@@ -459,7 +459,7 @@ msgstr "インタフェース (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1920,7 +1920,7 @@ msgstr "コメント"
 msgid "Assignments"
 msgstr "割当"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "サイド"
 
@@ -1974,7 +1974,7 @@ msgstr "終端"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1985,7 +1985,7 @@ msgstr "終端"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2540,7 +2540,7 @@ msgstr "このオブジェクトタイプ ({type}) では変更ログはサポ
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "作成"
@@ -3481,7 +3481,7 @@ msgstr "親のロケーション (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "メーカ (ID)"
 
@@ -3489,7 +3489,7 @@ msgstr "メーカ (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "メーカ (slug)"
 
@@ -3502,14 +3502,14 @@ msgid "Rack type (ID)"
 msgstr "ラックタイプ (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "ロール (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3518,7 +3518,7 @@ msgstr "ロール (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "ラック (ID)"
 
@@ -3616,7 +3616,7 @@ msgstr "モジュールタイプ (ID)"
 msgid "Power port (ID)"
 msgstr "電源ポート (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "親在庫品目 (ID)"
 
@@ -3651,8 +3651,8 @@ msgid "Platform (slug)"
 msgstr "プラットフォーム (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "サイト名 (slug)"
 
@@ -3902,30 +3902,38 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN 変換ポリシー"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "デバイスがマスターの場合のデバイスの仮想シャーシインターフェイス"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr "デバイスがマスターの場合のデバイスの仮想シャーシインターフェイス(ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "バーチャルシャーシインタフェース"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "バーチャルシャーシインタフェース (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "インタフェースの種類"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "親インタフェース (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "ブリッジインタフェース (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "LAG インタフェース (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3933,78 +3941,78 @@ msgstr "LAG インタフェース (ID)"
 msgid "MAC Address"
 msgstr "MAC アドレス"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "プライマリ MAC アドレス (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "プライマリ MAC アドレス"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "仮想デバイスコンテキスト"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "仮想デバイスコンテキスト (識別子)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "無線 LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "無線リンク"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "仮想回線終端 (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "親モジュールベイ (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "インストール済モジュール (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "インストール済デバイス (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "インストール済デバイス (名前)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "マスター (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "マスター (名前)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "テナント (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "テナント (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "未終端"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "電源盤 (ID)"
 
@@ -4019,7 +4027,7 @@ msgstr "電源盤 (ID)"
 msgid "Tags"
 msgstr "タグ"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4031,7 +4039,7 @@ msgstr "タグ"
 msgid "Position"
 msgstr "ポジション"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5258,7 +5266,7 @@ msgstr " {model} {name} は既にモジュールに属しているので採用
 msgid "A {model} named {name} already exists"
 msgstr "{model} {name} は既に存在しています"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5267,7 +5275,7 @@ msgstr "{model} {name} は既に存在しています"
 msgid "Power Panel"
 msgstr "電源盤"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5666,11 +5674,11 @@ msgstr "在庫品目"
 msgid "Inventory Item Role"
 msgstr "在庫品目ロール"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "VM インターフェイス"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5687,7 +5695,7 @@ msgstr "VM インターフェイス"
 msgid "Virtual Machine"
 msgstr "仮想マシン"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "MAC アドレスは 1 つのオブジェクトにのみ割り当てることができます。"
 
@@ -7426,7 +7434,7 @@ msgstr "電源コンセント"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7466,7 +7474,7 @@ msgstr "モジュールベイ"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7496,8 +7504,8 @@ msgid "Allocated draw (W)"
 msgstr "割当電力 (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7602,7 +7610,7 @@ msgid "Instances"
 msgstr "インスタンス"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7613,7 +7621,7 @@ msgid "Console Ports"
 msgstr "コンソールポート"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7624,7 +7632,7 @@ msgid "Console Server Ports"
 msgstr "コンソールサーバポート"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7635,7 +7643,7 @@ msgid "Power Ports"
 msgstr "電源ポート"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7646,7 +7654,7 @@ msgid "Power Outlets"
 msgstr "電源コンセント"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7656,7 +7664,7 @@ msgid "Front Ports"
 msgstr "前面ポート"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7667,7 +7675,7 @@ msgid "Rear Ports"
 msgstr "背面ポート"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7675,7 +7683,7 @@ msgid "Device Bays"
 msgstr "デバイスベイ"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7763,48 +7771,48 @@ msgstr "予約"
 msgid "Non-Racked Devices"
 msgstr "ラック搭載でないデバイス"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "コンフィグコンテキスト"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "レンダーコンフィグ"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "仮想マシン"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "インストール済みデバイス {device} イン・ベイ {device_bay}。"
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "削除されたデバイス {device} ベイから {device_bay}。"
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "子ども"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "メンバー追加 <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "マスターデバイスを削除できません {device} バーチャルシャーシから。"
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "削除済み {device} バーチャルシャーシから {chassis}"
@@ -9055,97 +9063,97 @@ msgstr "偽"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "値は次の正規表現とマッチする必要があります。 <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "値は文字列でなければなりません。"
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "値は正規表現 '{regex}'と一致する必要があります"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "値は整数でなければなりません。"
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "値は {minimum} 以上でなければなりません"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "値は {maximum} を超えてはいけません"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "値は実数でなければなりません。"
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "値は true または false でなければなりません。"
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "日付値は ISO 8601 フォーマット (YYYY-MM-DD) である必要があります。"
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr "日付と時刻の値は ISO 8601 フォーマット (YYYY-MM-DD HH:MM:SS) である必要があります。"
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "{value}は選択肢 {choiceset} に含まれていません。"
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "{value}は選択肢 {choiceset} に含まれていません。"
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "{type}ではなく、オブジェクトIDを指定してください"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "{type} ではなくオブジェクト ID のリストを入力してください"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "無効なオブジェクト ID が見つかりました: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "必須フィールドを空にすることはできません。"
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "定義済みの選択肢の基本セット (オプション)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "選択肢は自動的にアルファベット順に並べられます"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "カスタムフィールド選択肢"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "カスタムフィールド選択肢"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "基本選択肢または追加選択肢を定義する必要があります。"
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9512,7 +9520,7 @@ msgid "notifications"
 msgstr "通知"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "このタイプのオブジェクト ({type}) 通知はサポートしていません。"
@@ -9534,11 +9542,11 @@ msgstr "通知グループ"
 msgid "notification groups"
 msgstr "通知グループ"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "サブスクリプション"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "サブスクリプション"
 
@@ -10460,7 +10468,7 @@ msgstr "DNS名"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN"
@@ -11060,7 +11068,7 @@ msgid "Added"
 msgstr "追加日"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11200,26 +11208,26 @@ msgid ""
 "are allowed in DNS names"
 msgstr "DNS 名に使用できるのは、英数字、アスタリスク、ハイフン、ピリオド、アンダースコアのみです。"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "デバイスインタフェース"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM インタフェース"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "子プレフィックス"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "子レンジ"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "関連IPアドレス"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "デバイスインタフェース"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM インタフェース"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "このフィールドは空白であってはなりません。"
@@ -16190,17 +16198,17 @@ msgstr "{value} は{multiple}の倍数でなければなりません 。"
 msgid "{value} is not a valid regular expression."
 msgstr "{value} は有効な正規表現ではありません。"
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__} get_required_permission () を実装する必要があります"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} get_required_permission () を実装する必要があります"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/nl/LC_MESSAGES/django.mo


+ 132 - 122
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Dutch (https://app.transifex.com/netbox-community/teams/178115/nl/)\n"
@@ -175,8 +175,8 @@ msgstr "Spoke"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Regio (ID)"
@@ -187,8 +187,8 @@ msgstr "Regio (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -199,8 +199,8 @@ msgstr "Regio (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -211,8 +211,8 @@ msgstr "Sitegroep (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -328,8 +328,8 @@ msgstr "Circuittype (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -339,7 +339,7 @@ msgstr "Locatie (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Locatie (ID)"
 
@@ -351,7 +351,7 @@ msgstr "Eindpunt A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -360,7 +360,7 @@ msgstr "Eindpunt A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -383,7 +383,7 @@ msgstr "Zoeken"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -416,7 +416,7 @@ msgstr "Circuit (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Virtueel circuit (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Virtueel circuit (ID)"
 
@@ -464,7 +464,7 @@ msgstr "Interface (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1926,7 +1926,7 @@ msgstr "Opmerkingen"
 msgid "Assignments"
 msgstr "Toewijzingen"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Kant"
 
@@ -1980,7 +1980,7 @@ msgstr "Beëindigingen"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1991,7 +1991,7 @@ msgstr "Beëindigingen"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2553,7 +2553,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "aangemaakt"
@@ -3502,7 +3502,7 @@ msgstr "Locatie van de ouder (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Fabrikant (ID)"
 
@@ -3510,7 +3510,7 @@ msgstr "Fabrikant (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Fabrikant (slug)"
 
@@ -3523,14 +3523,14 @@ msgid "Rack type (ID)"
 msgstr "Racktype (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rol (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3539,7 +3539,7 @@ msgstr "Rol (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Rek (ID)"
 
@@ -3637,7 +3637,7 @@ msgstr "Moduletype (ID)"
 msgid "Power port (ID)"
 msgstr "Voedingspoort (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Onderliggend inventarisitem (ID)"
 
@@ -3672,8 +3672,8 @@ msgid "Platform (slug)"
 msgstr "Platform (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Sitenaam (slug)"
 
@@ -3923,30 +3923,40 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN-vertaalbeleid"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr ""
+"Virtuele chassisinterfaces voor apparaat wanneer het apparaat master is"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Virtuele chassisinterfaces voor apparaat wanneer het apparaat master (ID) is"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Virtuele chassisinterfaces voor apparaten"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Virtuele chassisinterfaces voor apparaat (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Soort interface"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Ouderinterface (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Overbrugde interface (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "LAG-interface (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3954,78 +3964,78 @@ msgstr "LAG-interface (ID)"
 msgid "MAC Address"
 msgstr "MAC-adres"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Primair MAC-adres (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Primair MAC-adres"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Context van het virtuele apparaat"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Context van het virtuele apparaat (ID)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Draadloos LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Draadloze link"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Beëindiging van het virtuele circuit (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Baai voor oudermodule (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Geïnstalleerde module (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Geïnstalleerd apparaat (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Geïnstalleerd apparaat (naam)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Meester (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (naam)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Tenant (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Tenant (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Onbeëindigd"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Voedingspaneel (ID)"
 
@@ -4040,7 +4050,7 @@ msgstr "Voedingspaneel (ID)"
 msgid "Tags"
 msgstr "Labels"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4052,7 +4062,7 @@ msgstr "Labels"
 msgid "Position"
 msgstr "Positie"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5305,7 +5315,7 @@ msgstr "Kan niet adopteren {model} {name} omdat het al bij een module hoort"
 msgid "A {model} named {name} already exists"
 msgstr "EEN {model} genoemd {name} bestaat al"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5314,7 +5324,7 @@ msgstr "EEN {model} genoemd {name} bestaat al"
 msgid "Power Panel"
 msgstr "Voedingspaneel"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5726,11 +5736,11 @@ msgstr "Inventarisitem"
 msgid "Inventory Item Role"
 msgstr "Rol van het inventarisitem"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "VM-interface"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5747,7 +5757,7 @@ msgstr "VM-interface"
 msgid "Virtual Machine"
 msgstr "Virtuele machine"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Een MAC-adres kan slechts aan één object worden toegewezen."
 
@@ -7603,7 +7613,7 @@ msgstr "Stopcontacten"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7643,7 +7653,7 @@ msgstr "Modulebaai"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7673,8 +7683,8 @@ msgid "Allocated draw (W)"
 msgstr "Toegewezen trekking (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7779,7 +7789,7 @@ msgid "Instances"
 msgstr "Instanties"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7790,7 +7800,7 @@ msgid "Console Ports"
 msgstr "Consolepoorten"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7801,7 +7811,7 @@ msgid "Console Server Ports"
 msgstr "Serverpoorten voor de console"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7812,7 +7822,7 @@ msgid "Power Ports"
 msgstr "Voedingspoorten"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7823,7 +7833,7 @@ msgid "Power Outlets"
 msgstr "Stopcontacten"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7833,7 +7843,7 @@ msgid "Front Ports"
 msgstr "Ports aan de voorkant"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7844,7 +7854,7 @@ msgid "Rear Ports"
 msgstr "Poorten achteraan"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7852,7 +7862,7 @@ msgid "Device Bays"
 msgstr "Apparaatvakken"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7940,49 +7950,49 @@ msgstr "Reserveringen"
 msgid "Non-Racked Devices"
 msgstr "Apparaten zonder rack"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Context van de configuratie"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Render-configuratie"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Virtuele machines"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Geïnstalleerd apparaat {device} in de baai {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Apparaat verwijderd {device} van bay {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Kinderen"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Lid toegevoegd <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "Kan het masterapparaat niet verwijderen {device} vanaf het virtuele chassis."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Verwijderd {device} vanaf een virtueel chassis {chassis}"
@@ -9297,99 +9307,99 @@ msgstr "Onwaar"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Waarden moeten overeenkomen met deze regex: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "De waarde moet een tekenreeks zijn."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "De waarde moet overeenkomen met regex '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "De waarde moet een geheel getal zijn."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "De waarde moet minstens {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "De waarde mag niet hoger zijn dan {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "De waarde moet een decimaal getal zijn."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "De waarde moet waar of onwaar zijn."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "De datumwaarden moeten de indeling ISO 8601 hebben (JJJJ-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "De datum- en tijdwaarden moeten de indeling ISO 8601 hebben (JJJJ-MM-DD "
 "H:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Ongeldige keuze ({value}) voor keuzeset {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Ongeldige keuze (s) ({value}) voor keuzeset {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "De waarde moet een object-ID zijn, niet {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "De waarde moet een lijst met object-ID's zijn, niet {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Ongeldige object-ID gevonden: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Het verplichte veld mag niet leeg zijn."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Basisset van vooraf gedefinieerde keuzes (optioneel)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Keuzes worden automatisch alfabetisch gerangschikt"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "aangepaste veldkeuzeset"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "aangepaste veldkeuzesets"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Moet basis- of extra keuzes definiëren."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9775,7 +9785,7 @@ msgid "notifications"
 msgstr "meldingen"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objecten van dit type ({type}) ondersteunen geen meldingen."
@@ -9797,11 +9807,11 @@ msgstr "meldingsgroep"
 msgid "notification groups"
 msgstr "meldingsgroepen"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "abonnement"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "abonnementen"
 
@@ -10736,7 +10746,7 @@ msgstr "DNS-naam"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN's"
@@ -11373,7 +11383,7 @@ msgid "Added"
 msgstr "Toegevoegd"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11518,26 +11528,26 @@ msgstr ""
 "Alleen alfanumerieke tekens, sterretjes, koppeltekens, punten en "
 "onderstrepingstekens zijn toegestaan in DNS-namen"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfaces voor apparaten"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM-interfaces"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Prefixen voor kinderen"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Ranges voor kinderen"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Gerelateerde IP's"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfaces voor apparaten"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM-interfaces"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Dit veld is mogelijk niet leeg."
@@ -16631,18 +16641,18 @@ msgstr "{value} moet een veelvoud zijn van {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} is geen geldige reguliere expressie."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} moet get_required_permission () implementeren"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} moet get_required_permission () implementeren"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/pl/LC_MESSAGES/django.mo


+ 133 - 122
netbox/translations/pl/LC_MESSAGES/django.po

@@ -15,7 +15,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Polish (https://app.transifex.com/netbox-community/teams/178115/pl/)\n"
@@ -174,8 +174,8 @@ msgstr "Mówił"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Region (ID)"
@@ -186,8 +186,8 @@ msgstr "Region (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -198,8 +198,8 @@ msgstr "Region (uproszczona nazwa)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -210,8 +210,8 @@ msgstr "Grupa placówek (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -327,8 +327,8 @@ msgstr "Typ łącza (uproszczona nazwa)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -338,7 +338,7 @@ msgstr "Placówka (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Lokalizacja (ID)"
 
@@ -350,7 +350,7 @@ msgstr "Strona A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -359,7 +359,7 @@ msgstr "Strona A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -382,7 +382,7 @@ msgstr "Szukaj"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -415,7 +415,7 @@ msgstr "Łącze (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Łącze wirtualne (CID dostawcy)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Łącze wirtualne (ID)"
 
@@ -463,7 +463,7 @@ msgstr "Interfejs (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1924,7 +1924,7 @@ msgstr "Komentarze"
 msgid "Assignments"
 msgstr "Zadania"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Strona"
 
@@ -1978,7 +1978,7 @@ msgstr "Zakończenia"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1989,7 +1989,7 @@ msgstr "Zakończenia"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2546,7 +2546,7 @@ msgstr ""
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "utworzony"
@@ -3492,7 +3492,7 @@ msgstr "Lokalizacja nadrzędna (uproszczona nazwa)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Producent (ID)"
 
@@ -3500,7 +3500,7 @@ msgstr "Producent (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Producent (uproszczona nazwa)"
 
@@ -3513,14 +3513,14 @@ msgid "Rack type (ID)"
 msgstr "Typ szafy (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rola (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3529,7 +3529,7 @@ msgstr "Rola (uproszczona nazwa)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Szafa (ID)"
 
@@ -3627,7 +3627,7 @@ msgstr "Typ modułu (ID)"
 msgid "Power port (ID)"
 msgstr "Port zasilania (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Nadrzędny element inwentarza (ID)"
 
@@ -3662,8 +3662,8 @@ msgid "Platform (slug)"
 msgstr "Platforma (uproszczona nazwa)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Nazwa placówki (uproszczona nazwa)"
 
@@ -3913,30 +3913,41 @@ msgid "VLAN Translation Policy"
 msgstr "Polityka tłumaczenia VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr ""
+"Interfejsy wirtualnej obudowy dla urządzenia, gdy urządzenie jest głównym"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Interfejsy wirtualnej obudowy dla urządzenia, gdy urządzenie jest głównym "
+"(ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Interfejsy wirtualnego stosu dla urządzenia"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Interfejsy wirtualnego stosu dla urządzenia (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Typ interfejsu"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Interfejs nadrzędny (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Interfejs mostkowy (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Interfejs LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3944,78 +3955,78 @@ msgstr "Interfejs LAG (ID)"
 msgid "MAC Address"
 msgstr "Adres MAC"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Podstawowy adres MAC (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Podstawowy adres MAC"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Kontekst urządzenia wirtualnego"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Kontekst urządzenia wirtualnego (identyfikator)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Bezprzewodowa sieć LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Połączenie bezprzewodowe"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Zakończenie łącza wirtualnego (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Nadrzędna zatoka modułu (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Zainstalowany moduł (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Zainstalowane urządzenie (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Zainstalowane urządzenie (nazwa)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Master (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (nazwa)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Najemca (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Najemca (uproszczona nazwa)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Niezakończony"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Rozdzielnica zasilająca (ID)"
 
@@ -4030,7 +4041,7 @@ msgstr "Rozdzielnica zasilająca (ID)"
 msgid "Tags"
 msgstr "Tagi"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4042,7 +4053,7 @@ msgstr "Tagi"
 msgid "Position"
 msgstr "Pozycja"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5287,7 +5298,7 @@ msgstr "Nie można adoptować {model} {name} ponieważ już należy do modułu"
 msgid "A {model} named {name} already exists"
 msgstr "A {model} o nazwie {name} już istnieje"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5296,7 +5307,7 @@ msgstr "A {model} o nazwie {name} już istnieje"
 msgid "Power Panel"
 msgstr "Rozdzielnica zasilająca"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5704,11 +5715,11 @@ msgstr "Przedmiot zapasów"
 msgid "Inventory Item Role"
 msgstr "Rola pozycji zapasów"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Interfejs VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5725,7 +5736,7 @@ msgstr "Interfejs VM"
 msgid "Virtual Machine"
 msgstr "Maszyna wirtualna"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Adres MAC można przypisać tylko do jednego obiektu."
 
@@ -7560,7 +7571,7 @@ msgstr "Gniazdka elektryczne"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7600,7 +7611,7 @@ msgstr "Moduł Bay"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7630,8 +7641,8 @@ msgid "Allocated draw (W)"
 msgstr "Przydzielone losowanie (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7736,7 +7747,7 @@ msgid "Instances"
 msgstr "Instancje"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7747,7 +7758,7 @@ msgid "Console Ports"
 msgstr "Porty konsoli"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7758,7 +7769,7 @@ msgid "Console Server Ports"
 msgstr "Porty serwera konsoli"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7769,7 +7780,7 @@ msgid "Power Ports"
 msgstr "Porty zasilania"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7780,7 +7791,7 @@ msgid "Power Outlets"
 msgstr "Gniazdka elektryczne"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7790,7 +7801,7 @@ msgid "Front Ports"
 msgstr "Porty przednie"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7801,7 +7812,7 @@ msgid "Rear Ports"
 msgstr "Tylne porty"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7809,7 +7820,7 @@ msgid "Device Bays"
 msgstr "Wnęsy na urządzenia"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7897,48 +7908,48 @@ msgstr "Rezerwacje"
 msgid "Non-Racked Devices"
 msgstr "Urządzenia poza szafami"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Kontekst konfiguracji"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Konfiguracja renderowania"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Maszyny wirtualne"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Zainstalowane urządzenie {device} w zatoce {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Usunięte urządzenie {device} z zatoki {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Dzieci"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Dodano członka <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "Nie można usunąć urządzenia głównego {device} z wirtualnego podwozia."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Usunięto {device} z wirtualnego podwozia {chassis}"
@@ -9233,99 +9244,99 @@ msgstr "Fałszywe"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Wartości muszą być zgodne z tym regex: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Wartość musi być ciągiem."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Wartość musi być zgodna z regex '{regex}”"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Wartość musi być liczbą całkowitą."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Wartość musi być co najmniej {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Wartość nie może przekraczać {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Wartość musi być dziesiętna."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Wartość musi być prawdziwa lub fałszywa."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Wartości dat muszą być w formacie ISO 8601 (RRRR-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Wartości daty i godziny muszą być zgodne z normą ISO 8601 (RRRR-MM-DD "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Nieprawidłowy wybór ({value}) do wyboru zestawu {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Nieprawidłowy wybór (y) ({value}) do wyboru zestawu {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Wartość musi być identyfikatorem obiektu, a nie {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Wartość musi być listą identyfikatorów obiektów, a nie {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Znaleziono nieprawidłowy identyfikator obiektu: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Pole wymagane nie może być puste."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Podstawowy zestaw predefiniowanych opcji (opcjonalnie)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Wybory są automatycznie uporządkowane alfabetycznie"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "niestandardowy zestaw wyboru pola"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "niestandardowe zestawy wyboru pól"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Musi zdefiniować opcje bazowe lub dodatkowe."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9709,7 +9720,7 @@ msgid "notifications"
 msgstr "powiadomienia"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Obiekty tego typu ({type}) nie obsługują powiadomień."
@@ -9731,11 +9742,11 @@ msgstr "grupa powiadomień"
 msgid "notification groups"
 msgstr "grupy powiadomień"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "subskrypcja"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "subskrypcje"
 
@@ -10664,7 +10675,7 @@ msgstr "Nazwa DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "sieci VLAN"
@@ -11300,7 +11311,7 @@ msgid "Added"
 msgstr "Dodano"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11443,26 +11454,26 @@ msgstr ""
 "W nazwach DNS dozwolone są tylko znaki alfanumeryczne, gwiazdki, łączniki, "
 "kropki i podkreślenia"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfejsy urządzeń"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Interfejsy VM"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Prefiksy podrzędne"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Zakresy dla dzieci"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Powiązane adresy IP"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfejsy urządzeń"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Interfejsy VM"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "To pole może nie być puste."
@@ -16538,17 +16549,17 @@ msgstr "{value} musi być wielokrotnością {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} nie jest prawidłowym wyrażeniem regularnym."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__} musi zaimplementować get_required_permit ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} musi zaimplementować get_required_permit ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/pt/LC_MESSAGES/django.mo


+ 133 - 122
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n"
@@ -173,8 +173,8 @@ msgstr "Spoke"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Região (ID)"
@@ -185,8 +185,8 @@ msgstr "Região (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -197,8 +197,8 @@ msgstr "Região (slug)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -209,8 +209,8 @@ msgstr "Grupo de sites (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -326,8 +326,8 @@ msgstr "Tipo de circuito (slug)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -337,7 +337,7 @@ msgstr "Site (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Local (ID)"
 
@@ -349,7 +349,7 @@ msgstr "Terminação A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -358,7 +358,7 @@ msgstr "Terminação A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -381,7 +381,7 @@ msgstr "Busca"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -414,7 +414,7 @@ msgstr "Circuito (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Circuito virtual (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Circuito virtual (ID)"
 
@@ -462,7 +462,7 @@ msgstr "Interface (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1924,7 +1924,7 @@ msgstr "Comentários"
 msgid "Assignments"
 msgstr "Atribuições"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Lado"
 
@@ -1978,7 +1978,7 @@ msgstr "Terminações"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1989,7 +1989,7 @@ msgstr "Terminações"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2548,7 +2548,7 @@ msgstr "Changelog não é suportado para este tipo de objeto ({type})."
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "criado"
@@ -3497,7 +3497,7 @@ msgstr "Local pai (slug)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Fabricante (ID)"
 
@@ -3505,7 +3505,7 @@ msgstr "Fabricante (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Fabricante (slug)"
 
@@ -3518,14 +3518,14 @@ msgid "Rack type (ID)"
 msgstr "Tipo de rack (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Função (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3534,7 +3534,7 @@ msgstr "Função (slug)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Rack (ID)"
 
@@ -3632,7 +3632,7 @@ msgstr "Tipo de módulo (ID)"
 msgid "Power port (ID)"
 msgstr "Porta de alimentação (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Item principal do inventário (ID)"
 
@@ -3667,8 +3667,8 @@ msgid "Platform (slug)"
 msgstr "Plataforma (slug)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Nome do site (slug)"
 
@@ -3918,30 +3918,41 @@ msgid "VLAN Translation Policy"
 msgstr "Política de Tradução de VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr ""
+"Interfaces de chassi virtual para dispositivo quando o dispositivo é mestre"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Interfaces de chassi virtual para dispositivo quando o dispositivo é mestre "
+"(ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Interfaces de Chassi Virtual para Dispositivo"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Interfaces de Chassi Virtual para Dispositivo (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Tipo de interface"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Interface pai (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Interface bridged (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Interface LAG (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3949,78 +3960,78 @@ msgstr "Interface LAG (ID)"
 msgid "MAC Address"
 msgstr "Endereço MAC"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Endereço MAC primário (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Endereço MAC primário"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Contexto de Dispositivo Virtual"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Contexto de Dispositivo Virtual (ID)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Rede Wireless"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Link Wireless"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Terminação de circuito virtual (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Compartimento de módulo pai (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Módulo instalado (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Dispositivo instalado (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Dispositivo instalado (nome)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Mestre (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Mestre (nome)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Inquilino (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Inquilino (slug)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Não terminado"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Quadro de alimentação (ID)"
 
@@ -4035,7 +4046,7 @@ msgstr "Quadro de alimentação (ID)"
 msgid "Tags"
 msgstr "Etiquetas"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4047,7 +4058,7 @@ msgstr "Etiquetas"
 msgid "Position"
 msgstr "Posição"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5296,7 +5307,7 @@ msgstr "Não é possível adotar {model} {name} pois já pertence a outro módul
 msgid "A {model} named {name} already exists"
 msgstr "Um {model} com nome {name} já existe."
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5305,7 +5316,7 @@ msgstr "Um {model} com nome {name} já existe."
 msgid "Power Panel"
 msgstr "Quadro de Alimentação"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5712,11 +5723,11 @@ msgstr "Item de Inventário"
 msgid "Inventory Item Role"
 msgstr "Função do Item de Inventário"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Interface de VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5733,7 +5744,7 @@ msgstr "Interface de VM"
 msgid "Virtual Machine"
 msgstr "Máquina Virtual"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "Um endereço MAC só pode ser atribuído a um único objeto."
 
@@ -7579,7 +7590,7 @@ msgstr "Tomadas elétricas"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7619,7 +7630,7 @@ msgstr "Compartimento de módulo"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7649,8 +7660,8 @@ msgid "Allocated draw (W)"
 msgstr "Consumo alocado (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7755,7 +7766,7 @@ msgid "Instances"
 msgstr "Instâncias"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7766,7 +7777,7 @@ msgid "Console Ports"
 msgstr "Portas de Console"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7777,7 +7788,7 @@ msgid "Console Server Ports"
 msgstr "Portas de Servidor de Console"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7788,7 +7799,7 @@ msgid "Power Ports"
 msgstr "Portas de Alimentação"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7799,7 +7810,7 @@ msgid "Power Outlets"
 msgstr "Tomadas Elétricas"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7809,7 +7820,7 @@ msgid "Front Ports"
 msgstr "Portas Frontais"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7820,7 +7831,7 @@ msgid "Rear Ports"
 msgstr "Portas Traseiras"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7828,7 +7839,7 @@ msgid "Device Bays"
 msgstr "Compartimentos de Dispositivos"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7916,49 +7927,49 @@ msgstr "Reservas"
 msgid "Non-Racked Devices"
 msgstr "Dispositivos Não Montados em Rack"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Contexto de Configuração"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Renderização de Configuração"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Máquinas Virtuais"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Dispositivo instalado {device} no compartimento {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Dispositivo  {device} removido do compartimento {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Filhos"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Membro <a href=\"{url}\">{device}</a> adicionado"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr ""
 "Não é possível remover o dispositivo principal {device} do chassi virtual."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Removido {device} do chassi virtual {chassis}"
@@ -9262,99 +9273,99 @@ msgid "Values must match this regex: <code>{regex}</code>"
 msgstr ""
 "Os valores devem corresponder a esta expressão regular: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "O valor deve ser uma string."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "O valor deve corresponder à expressão regular '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "O valor deve ser um número inteiro."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "O valor deve ser pelo menos {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "O valor não deve exceder {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "O valor deve ser decimal."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "O valor deve ser verdadeiro ou falso."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Os valores de data devem estar no formato ISO 8601 (AAAA-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Os valores de data e hora devem estar no formato ISO 8601 (AAAA-MM-DD "
 "HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Escolha {value} é inválida para o conjunto de escolhas {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Escolha {value} é inválida para o conjunto de escolhas {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "O valor deve ser um ID de objeto, não {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "O valor deve ser uma lista de IDs de objetos, não {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "ID de objeto inválida encontrada: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "O campo obrigatório não pode estar vazio."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Conjunto básico de opções predefinidas (opcional)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "As opções são ordenadas automaticamente em ordem alfabética"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "conjunto de opções de campo personalizado"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "conjuntos de opções de campos personalizados"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Deve definir opções básicas ou extras."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9739,7 +9750,7 @@ msgid "notifications"
 msgstr "notificações"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Objetos deste tipo ({type}) não suportam notificações."
@@ -9761,11 +9772,11 @@ msgstr "grupo de notificação"
 msgid "notification groups"
 msgstr "grupos de notificação"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "subscrição"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "subscrições"
 
@@ -10697,7 +10708,7 @@ msgstr "Nome DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLANs"
@@ -11327,7 +11338,7 @@ msgid "Added"
 msgstr "Adicionado"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11469,26 +11480,26 @@ msgstr ""
 "Somente caracteres alfanuméricos, asteriscos, hífens, pontos e sublinhados "
 "são permitidos em nomes DNS"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Interfaces de dispositivos"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Interfaces de Máquina Virtual"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Prefixos Filhos"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Intervalos Filhos"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "IPs relacionados"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Interfaces de dispositivos"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Interfaces de Máquina Virtual"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Este campo pode não estar em branco."
@@ -16565,17 +16576,17 @@ msgstr "{value} deve ser um múltiplo de {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} não é uma expressão regular válida."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__} deve implementar get_required_permission ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} deve implementar get_required_permission ()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/ru/LC_MESSAGES/django.mo


Різницю між файлами не показано, бо вона завелика
+ 159 - 146
netbox/translations/ru/LC_MESSAGES/django.po


BIN
netbox/translations/tr/LC_MESSAGES/django.mo


+ 130 - 122
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: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n"
@@ -172,8 +172,8 @@ msgstr "konuştu"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Bölge (ID)"
@@ -184,8 +184,8 @@ msgstr "Bölge (ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -196,8 +196,8 @@ msgstr "Bölge (kısa ad)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -208,8 +208,8 @@ msgstr "Site grubu (ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -325,8 +325,8 @@ msgstr "Devre tipi (kısa ad)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -336,7 +336,7 @@ msgstr "Site (ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Konum (ID)"
 
@@ -348,7 +348,7 @@ msgstr "Fesih A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -357,7 +357,7 @@ msgstr "Fesih A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -380,7 +380,7 @@ msgstr "Arama"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -413,7 +413,7 @@ msgstr "Devre (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "Sanal devre (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Sanal devre (ID)"
 
@@ -461,7 +461,7 @@ msgstr "Arayüz (ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1922,7 +1922,7 @@ msgstr "Yorumlar"
 msgid "Assignments"
 msgstr "Ödevler"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Yan"
 
@@ -1976,7 +1976,7 @@ msgstr "Fesih"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1987,7 +1987,7 @@ msgstr "Fesih"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2544,7 +2544,7 @@ msgstr "Değişiklik günlüğü bu nesne türü için desteklenmez ({type})."
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "oluşturulan"
@@ -3490,7 +3490,7 @@ msgstr "Ana konum (kısa ad)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Üretici (ID)"
 
@@ -3498,7 +3498,7 @@ msgstr "Üretici (ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Üretici (kısa ad)"
 
@@ -3511,14 +3511,14 @@ msgid "Rack type (ID)"
 msgstr "Raf tipi (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Rol (ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3527,7 +3527,7 @@ msgstr "Rol (kısa ad)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Raf (ID)"
 
@@ -3625,7 +3625,7 @@ msgstr "Modül tipi (ID)"
 msgid "Power port (ID)"
 msgstr "Güç bağlantı noktası (ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Ana envanter kalemi (ID)"
 
@@ -3660,8 +3660,8 @@ msgid "Platform (slug)"
 msgstr "Platform (kısa ad)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Site adı (kısa ad)"
 
@@ -3911,30 +3911,38 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN Çeviri Politikası"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Aygıt ana olduğunda Aygıt için Sanal Kasa Arabirimleri"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr "Aygıt ana olduğunda Aygıt için Sanal Kasa Arabirimleri (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Cihaz için Sanal Şasi Arayüzleri"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Cihaz için Sanal Şasi Arayüzleri (ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Arayüz türü"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Ebeveyn arabirimi (ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Köprülü arayüz (ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "LAG arabirimi (ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3942,78 +3950,78 @@ msgstr "LAG arabirimi (ID)"
 msgid "MAC Address"
 msgstr "MAC Adresi"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Birincil MAC adresi (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Birincil MAC adresi"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Sanal Cihaz Bağlamı"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Sanal Cihaz Bağlamı (Tanımlayıcı)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Kablosuz LAN"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Kablosuz bağlantı"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Sanal devre sonlandırma (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Ana modül yuvası (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Yüklü modül (ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Yüklü cihaz (ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Yüklü cihaz (isim)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Master (ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Master (isim)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Kiracı (ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Kiracı (kısa ad)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Sonlandırılmamış"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Güç paneli (ID)"
 
@@ -4028,7 +4036,7 @@ msgstr "Güç paneli (ID)"
 msgid "Tags"
 msgstr "Etiketler"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4040,7 +4048,7 @@ msgstr "Etiketler"
 msgid "Position"
 msgstr "Pozisyon"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5279,7 +5287,7 @@ msgstr "Evlat edinemiyor {model} {name} zaten bir modüle ait olduğu için"
 msgid "A {model} named {name} already exists"
 msgstr "BİR {model} adlandırmak {name} zaten var"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5288,7 +5296,7 @@ msgstr "BİR {model} adlandırmak {name} zaten var"
 msgid "Power Panel"
 msgstr "Güç Paneli"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5695,11 +5703,11 @@ msgstr "Envanter Öğesi"
 msgid "Inventory Item Role"
 msgstr "Envanter Öğesi Rolü"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "VM Arayüzü"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5716,7 +5724,7 @@ msgstr "VM Arayüzü"
 msgid "Virtual Machine"
 msgstr "Sanal Makine"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "MAC adresi yalnızca tek bir nesneye atanabilir."
 
@@ -7508,7 +7516,7 @@ msgstr "Elektrik prizleri"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7548,7 +7556,7 @@ msgstr "Modül Yuvası"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7578,8 +7586,8 @@ msgid "Allocated draw (W)"
 msgstr "Tahsis edilen çekiliş (W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7684,7 +7692,7 @@ msgid "Instances"
 msgstr "Örnekler"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7695,7 +7703,7 @@ msgid "Console Ports"
 msgstr "Konsol Bağlantı Noktaları"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7706,7 +7714,7 @@ msgid "Console Server Ports"
 msgstr "Konsol Sunucusu Bağlantı Noktaları"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7717,7 +7725,7 @@ msgid "Power Ports"
 msgstr "Güç Bağlantı Noktaları"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7728,7 +7736,7 @@ msgid "Power Outlets"
 msgstr "Elektrik Prizleri"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7738,7 +7746,7 @@ msgid "Front Ports"
 msgstr "Ön Bağlantı Noktaları"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7749,7 +7757,7 @@ msgid "Rear Ports"
 msgstr "Arka Bağlantı Noktaları"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7757,7 +7765,7 @@ msgid "Device Bays"
 msgstr "Cihaz Yuvaları"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7845,48 +7853,48 @@ msgstr "Rezervasyon"
 msgid "Non-Racked Devices"
 msgstr "Raf Olmayan Cihazlar"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Yapılandırma Bağlamı"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Oluştur Yapılandırması"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Sanal Makineler"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Yüklü cihaz {device} körfezde {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Kaldırılan cihaz {device} körfezden {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Çocuklar"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Eklenen üye <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "Ana aygıt kaldırılamıyor {device} sanal kasadan."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Kaldırıldı {device} sanal kasadan {chassis}"
@@ -9179,98 +9187,98 @@ msgstr "Yanlış"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Değerler bu normal ifadeyle eşleşmelidir: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Değer bir dize olmalıdır."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Değer regex ile eşleşmelidir '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Değer bir tamsayı olmalıdır."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Değer en az olmalıdır {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Değer geçmemelidir {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Değer ondalık olmalıdır."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Değer doğru veya yanlış olmalıdır."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Tarih değerleri ISO 8601 biçiminde olmalıdır (YYYY-AA-GG)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Tarih ve saat değerleri ISO 8601 biçiminde olmalıdır (YYYY-MM-DD HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Geçersiz seçim ({value}) seçim seti için {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Geçersiz seçim (ler) ({value}) seçim seti için {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Değer bir nesne kimliği olmalıdır, değil {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Değer, nesne kimliklerinin bir listesi olmalıdır, değil {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Geçersiz nesne kimliği bulundu: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Zorunlu alan boş olamaz."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Önceden tanımlanmış seçeneklerin temel kümesi (isteğe bağlı)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Seçenekler otomatik olarak alfabetik olarak sıralanır"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "özel alan seçim kümesi"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "özel alan seçim kümeleri"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Temel veya ekstra seçenekleri tanımlamalıdır."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9654,7 +9662,7 @@ msgid "notifications"
 msgstr "bildirimleri"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Bu tür nesneler ({type}) bildirimleri desteklemez."
@@ -9676,11 +9684,11 @@ msgstr "bildirim grubu"
 msgid "notification groups"
 msgstr "bildirim grupları"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "abonelik"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "abonelikler"
 
@@ -10605,7 +10613,7 @@ msgstr "DNS Adı"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN'lar"
@@ -11224,7 +11232,7 @@ msgid "Added"
 msgstr "Eklendi"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11366,26 +11374,26 @@ msgstr ""
 "DNS adlarında yalnızca alfanümerik karakterlere, yıldızlara, tirelere, "
 "noktalara ve alt çizgilere izin verilir"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Cihaz Arayüzleri"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM Arayüzleri"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Çocuk Önekleri"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Çocuk Aralıkları"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "İlgili IP'ler"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Cihaz Arayüzleri"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM Arayüzleri"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Bu alan boş olmayabilir."
@@ -16445,19 +16453,19 @@ msgstr "{value} bir katı olmalıdır {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} geçerli bir normal ifade değildir."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} get_required_permissions () uygulamasını "
 "uygulamalıdır"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} get_required_permissions () uygulamasını uygulamalıdır"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/uk/LC_MESSAGES/django.mo


+ 131 - 122
netbox/translations/uk/LC_MESSAGES/django.po

@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Ukrainian (https://app.transifex.com/netbox-community/teams/178115/uk/)\n"
@@ -171,8 +171,8 @@ msgstr "Спиця (в колесі)"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "Регіон (ідентифікатор)"
@@ -183,8 +183,8 @@ msgstr "Регіон (ідентифікатор)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -195,8 +195,8 @@ msgstr "Регіон (скорочення)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -207,8 +207,8 @@ msgstr "Група тех. майданчиків (ідентифікатор)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -324,8 +324,8 @@ msgstr "Тип каналу зв'язку (скорочення)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -335,7 +335,7 @@ msgstr "Тех. майданчик (ідентифікатор)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "Місцезнаходження (ідентифікатор)"
 
@@ -347,7 +347,7 @@ msgstr "Припинення A (ідентифікатор)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -356,7 +356,7 @@ msgstr "Припинення A (ідентифікатор)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -379,7 +379,7 @@ msgstr "Пошук"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -412,7 +412,7 @@ msgstr "Канал зв'язку (ідентифікатор)"
 msgid "Virtual circuit (CID)"
 msgstr "Віртуальна схема (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "Віртуальна схема (ідентифікатор)"
 
@@ -460,7 +460,7 @@ msgstr "Інтерфейс (ідентифікатор)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1922,7 +1922,7 @@ msgstr "Коментарі"
 msgid "Assignments"
 msgstr "Завдання"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "Сторона"
 
@@ -1976,7 +1976,7 @@ msgstr "Кінці"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1987,7 +1987,7 @@ msgstr "Кінці"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2542,7 +2542,7 @@ msgstr "Журнал змін не підтримується для цього
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "створено"
@@ -3489,7 +3489,7 @@ msgstr "Батьківське розташування (скорочення)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "Виробник (ідентифікатор)"
 
@@ -3497,7 +3497,7 @@ msgstr "Виробник (ідентифікатор)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "Виробник (скорочення)"
 
@@ -3510,14 +3510,14 @@ msgid "Rack type (ID)"
 msgstr "Тип стійки (ідентифікатор)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "Роль (ідентифікатор)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3526,7 +3526,7 @@ msgstr "Роль (скорочення)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "Стійка (ідентифікатор)"
 
@@ -3624,7 +3624,7 @@ msgstr "Тип модуля (ідентифікатор)"
 msgid "Power port (ID)"
 msgstr "Порт живлення (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "Батьківський предмет інвентарю (ідентифікатор)"
 
@@ -3659,8 +3659,8 @@ msgid "Platform (slug)"
 msgstr "Платформа (скорочення)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "Назва тех. майданчика (скорочення)"
 
@@ -3910,30 +3910,39 @@ msgid "VLAN Translation Policy"
 msgstr "Політика перекладу VLAN"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "Віртуальні інтерфейси шасі для пристрою, коли пристрій є головним"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr ""
+"Віртуальні інтерфейси шасі для пристрою, коли пристрій є головним (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "Віртуальні інтерфейси шасі для пристрою"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "Віртуальні інтерфейси шасі для пристрою (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "Вид інтерфейсу"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "Батьківський інтерфейс (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "Мостовий інтерфейс (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "Інтерфейс LAG (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3941,78 +3950,78 @@ msgstr "Інтерфейс LAG (ідентифікатор)"
 msgid "MAC Address"
 msgstr "MAC-адреса"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "Основна MAC-адреса (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "Основна MAC-адреса"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "Контекст віртуального пристрою"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "Контекст віртуального пристрою (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "Бездротова локальна мережа"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "Бездротова зв'язок"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "Припинення віртуальної схеми (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "Відсік батьківського модуля (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "Встановлений модуль (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "Встановлений пристрій (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "Встановлений пристрій (назва)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "Майстер (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "Майстер (ім'я)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "Орендар (ідентифікатор)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "Орендар (скорочення)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "Незакінчений"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "Панель живлення (ідентифікатор)"
 
@@ -4027,7 +4036,7 @@ msgstr "Панель живлення (ідентифікатор)"
 msgid "Tags"
 msgstr "Мітки"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4039,7 +4048,7 @@ msgstr "Мітки"
 msgid "Position"
 msgstr "Позиція"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5288,7 +5297,7 @@ msgstr ""
 msgid "A {model} named {name} already exists"
 msgstr "А {model} названий {name} вже існує"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5297,7 +5306,7 @@ msgstr "А {model} названий {name} вже існує"
 msgid "Power Panel"
 msgstr "Панель живлення"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5703,11 +5712,11 @@ msgstr "Елемент інвентаря"
 msgid "Inventory Item Role"
 msgstr "Роль елемента інвентаря"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "Інтерфейс VM"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5724,7 +5733,7 @@ msgstr "Інтерфейс VM"
 msgid "Virtual Machine"
 msgstr "Віртуальна машина"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "MAC-адресу можна призначити лише одному об'єкту."
 
@@ -7567,7 +7576,7 @@ msgstr "Розетки"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7607,7 +7616,7 @@ msgstr "Резервуар модулів"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7637,8 +7646,8 @@ msgid "Allocated draw (W)"
 msgstr "Виділена потужність (Вт)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7743,7 +7752,7 @@ msgid "Instances"
 msgstr "Екземпляри"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7754,7 +7763,7 @@ msgid "Console Ports"
 msgstr "Консольні порти"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7765,7 +7774,7 @@ msgid "Console Server Ports"
 msgstr "Порти консольного сервера"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7776,7 +7785,7 @@ msgid "Power Ports"
 msgstr "Порти живлення"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7787,7 +7796,7 @@ msgid "Power Outlets"
 msgstr "Розетки"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7797,7 +7806,7 @@ msgid "Front Ports"
 msgstr "Передні порти"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7808,7 +7817,7 @@ msgid "Rear Ports"
 msgstr "Задні порти"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7816,7 +7825,7 @@ msgid "Device Bays"
 msgstr "Відсіки для пристроїв"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7904,48 +7913,48 @@ msgstr "Бронювання"
 msgid "Non-Racked Devices"
 msgstr "Пристрої без можливості кріплення у стійку"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "Контекст конфігурації"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "Відтворення конфігурації"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "Віртуальні машини"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "Встановлений пристрій {device} в бухті {device_bay}."
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "Видалений пристрій {device} з бухти {device_bay}."
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "Підпорядкований"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "Доданий член <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "Неможливо видалити головний пристрій {device} від віртуального шасі."
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "Вилучено {device} з віртуального шасі {chassis}"
@@ -9241,98 +9250,98 @@ msgstr "Хибно"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "Значення повинні відповідати цьому регексу: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "Значення має бути рядком."
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "Значення має збігатися з регулярним виразом '{regex}'"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "Значення має бути цілим числом."
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "Значення повинно бути меньш, ніж {minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "Значення не повинно перевищувати {maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "Значення має бути десятковим."
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "Значення має бути істинним або хибним."
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "Значення дати повинні бути у форматі ISO 8601 (РРРР-ММ-ДД)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 "Значення дати та часу повинні бути у форматі ISO 8601 (РРРР-ММ-ДД ГГ:ХХ:СС)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "Невірний вибір ({value}) для набору варіантів {choiceset}."
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "Невірний вибір(и) ({value}) для набору варіантів {choiceset}."
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "Значення має бути ідентифікатором об'єкта, а не {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "Значення має бути списком ідентифікаторів об'єктів, а не {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "Знайдено недійсний ідентифікатор об'єкта: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "Обов'язкове поле не може бути порожнім."
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "Базовий набір попередньо визначених варіантів (необов'язково)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "Вибір автоматично впорядковується за алфавітом"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "набір вибору користувацького поля"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "набори вибору користувацького поля"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "Повинен визначити базовий або додатковий вибори."
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9714,7 +9723,7 @@ msgid "notifications"
 msgstr "сповіщення"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "Об'єкти такого типу ({type}) не підтримують сповіщення."
@@ -9736,11 +9745,11 @@ msgstr "група повідомлень"
 msgid "notification groups"
 msgstr "групи повідомлень"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "підписка"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "підписки"
 
@@ -10676,7 +10685,7 @@ msgstr "Ім'я DNS"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLAN'и"
@@ -11311,7 +11320,7 @@ msgid "Added"
 msgstr "Додано"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11453,26 +11462,26 @@ msgstr ""
 "У назвах DNS дозволені лише буквено-цифрові символи, зірочки, дефіси, крапки"
 " та підкреслення"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "Інтерфейси пристрою"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "Інтерфейси віртуальної машини"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "Підпорядковані мережеві префікси"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "Підпорядковані діапазони"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "Пов'язані IP-адреси"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "Інтерфейси пристрою"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "Інтерфейси віртуальної машини"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "Це поле не може бути порожнім."
@@ -16534,18 +16543,18 @@ msgstr "{value} має бути кратним {multiple}."
 msgid "{value} is not a valid regular expression."
 msgstr "{value} не є дійсним регулярним виразом."
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr ""
 "{self.__class__.__name__} повинен реалізувати get_required_permissions ()"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name} повинен реалізувати get_required_permissions()"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

BIN
netbox/translations/zh/LC_MESSAGES/django.mo


+ 130 - 122
netbox/translations/zh/LC_MESSAGES/django.po

@@ -23,7 +23,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-08-12 05:02+0000\n"
+"POT-Creation-Date: 2025-08-26 05:01+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Chinese (https://app.transifex.com/netbox-community/teams/178115/zh/)\n"
@@ -180,8 +180,8 @@ msgstr "分支节点"
 #: netbox/dcim/filtersets.py:215 netbox/dcim/filtersets.py:336
 #: netbox/dcim/filtersets.py:467 netbox/dcim/filtersets.py:1075
 #: netbox/dcim/filtersets.py:1397 netbox/dcim/filtersets.py:1495
-#: netbox/dcim/filtersets.py:2175 netbox/dcim/filtersets.py:2418
-#: netbox/dcim/filtersets.py:2476 netbox/ipam/filtersets.py:954
+#: netbox/dcim/filtersets.py:2188 netbox/dcim/filtersets.py:2431
+#: netbox/dcim/filtersets.py:2489 netbox/ipam/filtersets.py:954
 #: netbox/virtualization/filtersets.py:139 netbox/vpn/filtersets.py:361
 msgid "Region (ID)"
 msgstr "区域(ID)"
@@ -192,8 +192,8 @@ msgstr "区域(ID)"
 #: netbox/dcim/filtersets.py:222 netbox/dcim/filtersets.py:343
 #: netbox/dcim/filtersets.py:474 netbox/dcim/filtersets.py:1082
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:1502
-#: netbox/dcim/filtersets.py:2182 netbox/dcim/filtersets.py:2425
-#: netbox/dcim/filtersets.py:2483 netbox/extras/filtersets.py:602
+#: netbox/dcim/filtersets.py:2195 netbox/dcim/filtersets.py:2438
+#: netbox/dcim/filtersets.py:2496 netbox/extras/filtersets.py:602
 #: netbox/ipam/filtersets.py:961 netbox/virtualization/filtersets.py:146
 #: netbox/vpn/filtersets.py:356
 msgid "Region (slug)"
@@ -204,8 +204,8 @@ msgstr "地区(缩写)"
 #: netbox/dcim/filtersets.py:131 netbox/dcim/filtersets.py:228
 #: netbox/dcim/filtersets.py:349 netbox/dcim/filtersets.py:480
 #: netbox/dcim/filtersets.py:1088 netbox/dcim/filtersets.py:1410
-#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2188
-#: netbox/dcim/filtersets.py:2431 netbox/dcim/filtersets.py:2489
+#: netbox/dcim/filtersets.py:1508 netbox/dcim/filtersets.py:2201
+#: netbox/dcim/filtersets.py:2444 netbox/dcim/filtersets.py:2502
 #: netbox/ipam/filtersets.py:239 netbox/ipam/filtersets.py:967
 #: netbox/virtualization/filtersets.py:152
 msgid "Site group (ID)"
@@ -216,8 +216,8 @@ msgstr "站点组(ID)"
 #: netbox/dcim/filtersets.py:138 netbox/dcim/filtersets.py:235
 #: netbox/dcim/filtersets.py:356 netbox/dcim/filtersets.py:487
 #: netbox/dcim/filtersets.py:1095 netbox/dcim/filtersets.py:1417
-#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2195
-#: netbox/dcim/filtersets.py:2438 netbox/dcim/filtersets.py:2496
+#: netbox/dcim/filtersets.py:1515 netbox/dcim/filtersets.py:2208
+#: netbox/dcim/filtersets.py:2451 netbox/dcim/filtersets.py:2509
 #: netbox/extras/filtersets.py:608 netbox/ipam/filtersets.py:246
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:159
 msgid "Site group (slug)"
@@ -333,8 +333,8 @@ msgstr "线路类型(缩写)"
 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:239
 #: netbox/dcim/filtersets.py:360 netbox/dcim/filtersets.py:455
 #: netbox/dcim/filtersets.py:1099 netbox/dcim/filtersets.py:1422
-#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2200
-#: netbox/dcim/filtersets.py:2442 netbox/dcim/filtersets.py:2501
+#: netbox/dcim/filtersets.py:1520 netbox/dcim/filtersets.py:2213
+#: netbox/dcim/filtersets.py:2455 netbox/dcim/filtersets.py:2514
 #: netbox/ipam/filtersets.py:251 netbox/ipam/filtersets.py:978
 #: netbox/virtualization/filtersets.py:163 netbox/vpn/filtersets.py:371
 msgid "Site (ID)"
@@ -344,7 +344,7 @@ msgstr "站点(ID)"
 #: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:261
 #: netbox/dcim/filtersets.py:372 netbox/dcim/filtersets.py:493
 #: netbox/dcim/filtersets.py:1111 netbox/dcim/filtersets.py:1433
-#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2454
+#: netbox/dcim/filtersets.py:1531 netbox/dcim/filtersets.py:2467
 msgid "Location (ID)"
 msgstr "位置(ID)"
 
@@ -356,7 +356,7 @@ msgstr "接入点A (ID)"
 #: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:81
 #: netbox/core/filtersets.py:140 netbox/core/filtersets.py:177
 #: netbox/dcim/filtersets.py:780 netbox/dcim/filtersets.py:1489
-#: netbox/dcim/filtersets.py:2549 netbox/extras/filtersets.py:45
+#: netbox/dcim/filtersets.py:2562 netbox/extras/filtersets.py:45
 #: netbox/extras/filtersets.py:67 netbox/extras/filtersets.py:96
 #: netbox/extras/filtersets.py:136 netbox/extras/filtersets.py:185
 #: netbox/extras/filtersets.py:213 netbox/extras/filtersets.py:243
@@ -365,7 +365,7 @@ msgstr "接入点A (ID)"
 #: netbox/extras/filtersets.py:496 netbox/extras/filtersets.py:556
 #: netbox/extras/filtersets.py:591 netbox/extras/filtersets.py:750
 #: netbox/extras/filtersets.py:800 netbox/ipam/forms/model_forms.py:492
-#: netbox/netbox/filtersets.py:289 netbox/netbox/forms/__init__.py:22
+#: netbox/netbox/filtersets.py:296 netbox/netbox/forms/__init__.py:22
 #: netbox/netbox/forms/base.py:167
 #: netbox/templates/htmx/object_selector.html:28
 #: netbox/templates/inc/filter_list.html:42
@@ -388,7 +388,7 @@ msgstr "搜索"
 #: netbox/circuits/forms/model_forms.py:163
 #: netbox/circuits/forms/model_forms.py:263
 #: netbox/circuits/tables/circuits.py:107
-#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:73
+#: netbox/circuits/tables/circuits.py:203 netbox/dcim/forms/connections.py:78
 #: netbox/templates/circuits/circuit.html:15
 #: netbox/templates/circuits/circuitgroupassignment.html:30
 #: netbox/templates/circuits/circuittermination.html:19
@@ -421,7 +421,7 @@ msgstr "电路 (ID)"
 msgid "Virtual circuit (CID)"
 msgstr "虚拟电路 (CID)"
 
-#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1982
+#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1992
 msgid "Virtual circuit (ID)"
 msgstr "虚拟电路 (ID)"
 
@@ -469,7 +469,7 @@ msgstr "接口(ID)"
 #: netbox/circuits/tables/providers.py:32 netbox/dcim/forms/bulk_edit.py:137
 #: netbox/dcim/forms/filtersets.py:197 netbox/dcim/forms/model_forms.py:132
 #: netbox/dcim/tables/sites.py:108 netbox/ipam/models/asns.py:123
-#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:232
+#: netbox/ipam/tables/asn.py:27 netbox/ipam/views.py:250
 #: netbox/netbox/navigation/menu.py:179 netbox/netbox/navigation/menu.py:182
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
@@ -1930,7 +1930,7 @@ msgstr "评论"
 msgid "Assignments"
 msgstr "分配"
 
-#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:81
+#: netbox/circuits/tables/circuits.py:116 netbox/dcim/forms/connections.py:86
 msgid "Side"
 msgstr "端"
 
@@ -1984,7 +1984,7 @@ msgstr "终端"
 #: netbox/dcim/forms/bulk_import.py:1007 netbox/dcim/forms/bulk_import.py:1055
 #: netbox/dcim/forms/bulk_import.py:1072 netbox/dcim/forms/bulk_import.py:1084
 #: netbox/dcim/forms/bulk_import.py:1132 netbox/dcim/forms/bulk_import.py:1254
-#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:24
+#: netbox/dcim/forms/bulk_import.py:1650 netbox/dcim/forms/connections.py:29
 #: netbox/dcim/forms/filtersets.py:133 netbox/dcim/forms/filtersets.py:941
 #: netbox/dcim/forms/filtersets.py:973 netbox/dcim/forms/filtersets.py:1119
 #: netbox/dcim/forms/filtersets.py:1310 netbox/dcim/forms/filtersets.py:1335
@@ -1995,7 +1995,7 @@ msgstr "终端"
 #: netbox/dcim/forms/filtersets.py:1713 netbox/dcim/forms/filtersets.py:1737
 #: netbox/dcim/forms/filtersets.py:1761 netbox/dcim/forms/model_forms.py:738
 #: netbox/dcim/forms/model_forms.py:955 netbox/dcim/forms/model_forms.py:1356
-#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1912
+#: netbox/dcim/forms/model_forms.py:1841 netbox/dcim/forms/model_forms.py:1914
 #: netbox/dcim/forms/object_create.py:260 netbox/dcim/tables/connections.py:22
 #: netbox/dcim/tables/connections.py:41 netbox/dcim/tables/connections.py:60
 #: netbox/dcim/tables/devices.py:299 netbox/dcim/tables/devices.py:384
@@ -2550,7 +2550,7 @@ msgstr "此对象类型 ({type}) 不支持更改日志记录。"
 #: netbox/core/models/config.py:18 netbox/core/models/data.py:269
 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52
 #: netbox/extras/models/models.py:814 netbox/extras/models/notifications.py:39
-#: netbox/extras/models/notifications.py:192
+#: netbox/extras/models/notifications.py:195
 #: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32
 msgid "created"
 msgstr "已创建"
@@ -3491,7 +3491,7 @@ msgstr "父级位置(缩写)"
 #: netbox/dcim/filtersets.py:542 netbox/dcim/filtersets.py:707
 #: netbox/dcim/filtersets.py:911 netbox/dcim/filtersets.py:985
 #: netbox/dcim/filtersets.py:1025 netbox/dcim/filtersets.py:1368
-#: netbox/dcim/filtersets.py:2108
+#: netbox/dcim/filtersets.py:2121
 msgid "Manufacturer (ID)"
 msgstr "厂商(ID)"
 
@@ -3499,7 +3499,7 @@ msgstr "厂商(ID)"
 #: netbox/dcim/filtersets.py:548 netbox/dcim/filtersets.py:713
 #: netbox/dcim/filtersets.py:917 netbox/dcim/filtersets.py:991
 #: netbox/dcim/filtersets.py:1031 netbox/dcim/filtersets.py:1374
-#: netbox/dcim/filtersets.py:2114
+#: netbox/dcim/filtersets.py:2127
 msgid "Manufacturer (slug)"
 msgstr "厂商 (缩写)"
 
@@ -3512,14 +3512,14 @@ msgid "Rack type (ID)"
 msgstr "机架类型 (ID)"
 
 #: netbox/dcim/filtersets.py:414 netbox/dcim/filtersets.py:921
-#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2118
+#: netbox/dcim/filtersets.py:1047 netbox/dcim/filtersets.py:2131
 #: netbox/ipam/filtersets.py:376 netbox/ipam/filtersets.py:488
 #: netbox/ipam/filtersets.py:998 netbox/virtualization/filtersets.py:177
 msgid "Role (ID)"
 msgstr "角色(ID)"
 
 #: netbox/dcim/filtersets.py:420 netbox/dcim/filtersets.py:927
-#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2124
+#: netbox/dcim/filtersets.py:1054 netbox/dcim/filtersets.py:2137
 #: netbox/extras/filtersets.py:651 netbox/ipam/filtersets.py:382
 #: netbox/ipam/filtersets.py:494 netbox/ipam/filtersets.py:1004
 #: netbox/virtualization/filtersets.py:184
@@ -3528,7 +3528,7 @@ msgstr "角色 (缩写)"
 
 #: netbox/dcim/filtersets.py:450 netbox/dcim/filtersets.py:1123
 #: netbox/dcim/filtersets.py:1444 netbox/dcim/filtersets.py:1542
-#: netbox/dcim/filtersets.py:2516
+#: netbox/dcim/filtersets.py:2529
 msgid "Rack (ID)"
 msgstr "机柜(ID)"
 
@@ -3626,7 +3626,7 @@ msgstr "模块类型(ID)"
 msgid "Power port (ID)"
 msgstr "电源接口(ID)"
 
-#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2104
+#: netbox/dcim/filtersets.py:907 netbox/dcim/filtersets.py:2117
 msgid "Parent inventory item (ID)"
 msgstr "上一级库存项(ID)"
 
@@ -3661,8 +3661,8 @@ msgid "Platform (slug)"
 msgstr "平台(缩写)"
 
 #: netbox/dcim/filtersets.py:1105 netbox/dcim/filtersets.py:1428
-#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2206
-#: netbox/dcim/filtersets.py:2448 netbox/dcim/filtersets.py:2507
+#: netbox/dcim/filtersets.py:1526 netbox/dcim/filtersets.py:2219
+#: netbox/dcim/filtersets.py:2461 netbox/dcim/filtersets.py:2520
 msgid "Site name (slug)"
 msgstr "站点名字 (缩写)"
 
@@ -3912,30 +3912,38 @@ msgid "VLAN Translation Policy"
 msgstr "VLAN 转换策略"
 
 #: netbox/dcim/filtersets.py:1891
+msgid "Virtual Chassis Interfaces for Device when device is master"
+msgstr "设备为主设备时设备的虚拟机箱接口"
+
+#: netbox/dcim/filtersets.py:1896
+msgid "Virtual Chassis Interfaces for Device when device is master (ID)"
+msgstr "设备为主设备时设备的虚拟机箱接口 (ID)"
+
+#: netbox/dcim/filtersets.py:1901
 msgid "Virtual Chassis Interfaces for Device"
 msgstr "设备的集群接口"
 
-#: netbox/dcim/filtersets.py:1896
+#: netbox/dcim/filtersets.py:1906
 msgid "Virtual Chassis Interfaces for Device (ID)"
 msgstr "设备的集群接口(ID)"
 
-#: netbox/dcim/filtersets.py:1900
+#: netbox/dcim/filtersets.py:1910
 msgid "Kind of interface"
 msgstr "接口类型"
 
-#: netbox/dcim/filtersets.py:1905 netbox/virtualization/filtersets.py:261
+#: netbox/dcim/filtersets.py:1915 netbox/virtualization/filtersets.py:261
 msgid "Parent interface (ID)"
 msgstr "父级接口(ID)"
 
-#: netbox/dcim/filtersets.py:1910 netbox/virtualization/filtersets.py:266
+#: netbox/dcim/filtersets.py:1920 netbox/virtualization/filtersets.py:266
 msgid "Bridged interface (ID)"
 msgstr "桥接接口(ID)"
 
-#: netbox/dcim/filtersets.py:1915
+#: netbox/dcim/filtersets.py:1925
 msgid "LAG interface (ID)"
 msgstr "链路聚合接口(ID)"
 
-#: netbox/dcim/filtersets.py:1923 netbox/dcim/tables/devices.py:616
+#: netbox/dcim/filtersets.py:1933 netbox/dcim/tables/devices.py:616
 #: netbox/dcim/tables/devices.py:1145 netbox/templates/dcim/interface.html:131
 #: netbox/templates/dcim/macaddress.html:11
 #: netbox/templates/dcim/macaddress.html:14
@@ -3943,78 +3951,78 @@ msgstr "链路聚合接口(ID)"
 msgid "MAC Address"
 msgstr "MAC 地址"
 
-#: netbox/dcim/filtersets.py:1928 netbox/virtualization/filtersets.py:275
+#: netbox/dcim/filtersets.py:1938 netbox/virtualization/filtersets.py:275
 msgid "Primary MAC address (ID)"
 msgstr "主 MAC 地址 (ID)"
 
-#: netbox/dcim/filtersets.py:1934 netbox/dcim/forms/model_forms.py:1540
+#: netbox/dcim/filtersets.py:1944 netbox/dcim/forms/model_forms.py:1540
 #: netbox/virtualization/filtersets.py:281
 #: netbox/virtualization/forms/model_forms.py:311
 msgid "Primary MAC address"
 msgstr "主 MAC 地址"
 
-#: netbox/dcim/filtersets.py:1956 netbox/dcim/filtersets.py:1968
+#: netbox/dcim/filtersets.py:1966 netbox/dcim/filtersets.py:1978
 #: netbox/dcim/forms/filtersets.py:1423 netbox/dcim/forms/model_forms.py:1867
 #: netbox/templates/dcim/virtualdevicecontext.html:15
 msgid "Virtual Device Context"
 msgstr "虚拟设备上下文"
 
-#: netbox/dcim/filtersets.py:1962
+#: netbox/dcim/filtersets.py:1972
 msgid "Virtual Device Context (Identifier)"
 msgstr "虚拟设备上下文(ID)"
 
-#: netbox/dcim/filtersets.py:1973
+#: netbox/dcim/filtersets.py:1983
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/wireless/forms/model_forms.py:57
 msgid "Wireless LAN"
 msgstr "无线局域网"
 
-#: netbox/dcim/filtersets.py:1977 netbox/dcim/tables/devices.py:645
+#: netbox/dcim/filtersets.py:1987 netbox/dcim/tables/devices.py:645
 msgid "Wireless link"
 msgstr "无线连接"
 
-#: netbox/dcim/filtersets.py:1987
+#: netbox/dcim/filtersets.py:1997
 msgid "Virtual circuit termination (ID)"
 msgstr "虚拟电路终止 (ID)"
 
-#: netbox/dcim/filtersets.py:2071
+#: netbox/dcim/filtersets.py:2084
 msgid "Parent module bay (ID)"
 msgstr "父模块托架 (ID)"
 
-#: netbox/dcim/filtersets.py:2076
+#: netbox/dcim/filtersets.py:2089
 msgid "Installed module (ID)"
 msgstr "已安装模块(ID)"
 
-#: netbox/dcim/filtersets.py:2087
+#: netbox/dcim/filtersets.py:2100
 msgid "Installed device (ID)"
 msgstr "已安装设备(ID)"
 
-#: netbox/dcim/filtersets.py:2093
+#: netbox/dcim/filtersets.py:2106
 msgid "Installed device (name)"
 msgstr "已安装设备(名称)"
 
-#: netbox/dcim/filtersets.py:2163
+#: netbox/dcim/filtersets.py:2176
 msgid "Master (ID)"
 msgstr "主设备(ID)"
 
-#: netbox/dcim/filtersets.py:2169
+#: netbox/dcim/filtersets.py:2182
 msgid "Master (name)"
 msgstr "主设备(名称)"
 
-#: netbox/dcim/filtersets.py:2211 netbox/tenancy/filtersets.py:250
+#: netbox/dcim/filtersets.py:2224 netbox/tenancy/filtersets.py:250
 msgid "Tenant (ID)"
 msgstr "租户(ID)"
 
-#: netbox/dcim/filtersets.py:2217 netbox/extras/filtersets.py:711
+#: netbox/dcim/filtersets.py:2230 netbox/extras/filtersets.py:711
 #: netbox/tenancy/filtersets.py:256
 msgid "Tenant (slug)"
 msgstr "租户(缩写)"
 
-#: netbox/dcim/filtersets.py:2253 netbox/dcim/forms/filtersets.py:1145
+#: netbox/dcim/filtersets.py:2266 netbox/dcim/forms/filtersets.py:1145
 msgid "Unterminated"
 msgstr "未接终端"
 
-#: netbox/dcim/filtersets.py:2511
+#: netbox/dcim/filtersets.py:2524
 msgid "Power panel (ID)"
 msgstr "电源面板(ID)"
 
@@ -4029,7 +4037,7 @@ msgstr "电源面板(ID)"
 msgid "Tags"
 msgstr "标签"
 
-#: netbox/dcim/forms/bulk_create.py:112 netbox/dcim/forms/filtersets.py:1586
+#: netbox/dcim/forms/bulk_create.py:115 netbox/dcim/forms/filtersets.py:1586
 #: netbox/dcim/forms/model_forms.py:592 netbox/dcim/forms/model_forms.py:651
 #: netbox/dcim/forms/object_create.py:208
 #: netbox/dcim/forms/object_create.py:357 netbox/dcim/tables/devices.py:179
@@ -4041,7 +4049,7 @@ msgstr "标签"
 msgid "Position"
 msgstr "位置"
 
-#: netbox/dcim/forms/bulk_create.py:114
+#: netbox/dcim/forms/bulk_create.py:117
 msgid ""
 "Alphanumeric ranges are supported. (Must match the number of names being "
 "created.)"
@@ -5266,7 +5274,7 @@ msgstr "无法选定 {model} {name} ,因为它已属于某个模块"
 msgid "A {model} named {name} already exists"
 msgstr "名为 {name} 的 {model} 已存在"
 
-#: netbox/dcim/forms/connections.py:49 netbox/dcim/forms/model_forms.py:843
+#: netbox/dcim/forms/connections.py:54 netbox/dcim/forms/model_forms.py:843
 #: netbox/dcim/tables/power.py:66
 #: netbox/templates/dcim/inc/cable_termination.html:42
 #: netbox/templates/dcim/powerfeed.html:24
@@ -5275,7 +5283,7 @@ msgstr "名为 {name} 的 {model} 已存在"
 msgid "Power Panel"
 msgstr "电源面板"
 
-#: netbox/dcim/forms/connections.py:58 netbox/dcim/forms/model_forms.py:871
+#: netbox/dcim/forms/connections.py:63 netbox/dcim/forms/model_forms.py:871
 #: netbox/templates/dcim/powerfeed.html:21
 #: netbox/templates/dcim/powerport.html:80
 msgid "Power Feed"
@@ -5673,11 +5681,11 @@ msgstr "库存项"
 msgid "Inventory Item Role"
 msgstr "库存物品分类"
 
-#: netbox/dcim/forms/model_forms.py:1898
+#: netbox/dcim/forms/model_forms.py:1899
 msgid "VM Interface"
 msgstr "虚拟机接口"
 
-#: netbox/dcim/forms/model_forms.py:1913 netbox/ipam/forms/filtersets.py:631
+#: netbox/dcim/forms/model_forms.py:1915 netbox/ipam/forms/filtersets.py:631
 #: netbox/ipam/forms/model_forms.py:334 netbox/ipam/tables/vlans.py:173
 #: netbox/templates/virtualization/virtualdisk.html:21
 #: netbox/templates/virtualization/virtualmachine.html:12
@@ -5694,7 +5702,7 @@ msgstr "虚拟机接口"
 msgid "Virtual Machine"
 msgstr "虚拟机"
 
-#: netbox/dcim/forms/model_forms.py:1952
+#: netbox/dcim/forms/model_forms.py:1954
 msgid "A MAC address can only be assigned to a single object."
 msgstr "MAC 地址只能分配给单个对象。"
 
@@ -7415,7 +7423,7 @@ msgstr "电源插座"
 
 #: netbox/dcim/tables/devices.py:260 netbox/dcim/tables/devices.py:1122
 #: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1173
-#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2226
+#: netbox/dcim/views.py:1473 netbox/dcim/views.py:2235
 #: netbox/netbox/navigation/menu.py:95 netbox/netbox/navigation/menu.py:259
 #: netbox/templates/dcim/device/base.html:37
 #: netbox/templates/dcim/device_list.html:43
@@ -7455,7 +7463,7 @@ msgstr "设备板卡插槽"
 
 #: netbox/dcim/tables/devices.py:331 netbox/dcim/tables/devicetypes.py:52
 #: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1248
-#: netbox/dcim/views.py:2324 netbox/netbox/navigation/menu.py:104
+#: netbox/dcim/views.py:2333 netbox/netbox/navigation/menu.py:104
 #: netbox/templates/dcim/device/base.html:52
 #: netbox/templates/dcim/device_list.html:71
 #: netbox/templates/dcim/devicetype/base.html:49
@@ -7485,8 +7493,8 @@ msgid "Allocated draw (W)"
 msgstr "分配功率(W)"
 
 #: netbox/dcim/tables/devices.py:582 netbox/ipam/forms/model_forms.py:785
-#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:632
-#: netbox/ipam/views.py:733 netbox/netbox/navigation/menu.py:165
+#: netbox/ipam/tables/fhrp.py:28 netbox/ipam/views.py:650
+#: netbox/ipam/views.py:751 netbox/netbox/navigation/menu.py:165
 #: netbox/netbox/navigation/menu.py:167
 #: netbox/templates/dcim/interface.html:396
 #: netbox/templates/ipam/ipaddress_bulk_add.html:15
@@ -7591,7 +7599,7 @@ msgid "Instances"
 msgstr "实例"
 
 #: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1113
-#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2162
+#: netbox/dcim/views.py:1413 netbox/dcim/views.py:2171
 #: netbox/netbox/navigation/menu.py:98
 #: netbox/templates/dcim/device/base.html:25
 #: netbox/templates/dcim/device_list.html:15
@@ -7602,7 +7610,7 @@ msgid "Console Ports"
 msgstr "Console口"
 
 #: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1128
-#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2178
+#: netbox/dcim/views.py:1428 netbox/dcim/views.py:2187
 #: netbox/netbox/navigation/menu.py:99
 #: netbox/templates/dcim/device/base.html:28
 #: netbox/templates/dcim/device_list.html:22
@@ -7613,7 +7621,7 @@ msgid "Console Server Ports"
 msgstr "Console 服务端口"
 
 #: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1143
-#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2194
+#: netbox/dcim/views.py:1443 netbox/dcim/views.py:2203
 #: netbox/netbox/navigation/menu.py:100
 #: netbox/templates/dcim/device/base.html:31
 #: netbox/templates/dcim/device_list.html:29
@@ -7624,7 +7632,7 @@ msgid "Power Ports"
 msgstr "电源接口"
 
 #: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1158
-#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2210
+#: netbox/dcim/views.py:1458 netbox/dcim/views.py:2219
 #: netbox/netbox/navigation/menu.py:101
 #: netbox/templates/dcim/device/base.html:34
 #: netbox/templates/dcim/device_list.html:36
@@ -7635,7 +7643,7 @@ msgid "Power Outlets"
 msgstr "PDU"
 
 #: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1188
-#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2248
+#: netbox/dcim/views.py:1488 netbox/dcim/views.py:2257
 #: netbox/netbox/navigation/menu.py:96
 #: netbox/templates/dcim/device/base.html:40
 #: netbox/templates/dcim/devicetype/base.html:37
@@ -7645,7 +7653,7 @@ msgid "Front Ports"
 msgstr "前置端口"
 
 #: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1203
-#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2264
+#: netbox/dcim/views.py:1503 netbox/dcim/views.py:2273
 #: netbox/netbox/navigation/menu.py:97
 #: netbox/templates/dcim/device/base.html:43
 #: netbox/templates/dcim/device_list.html:50
@@ -7656,7 +7664,7 @@ msgid "Rear Ports"
 msgstr "后置端口"
 
 #: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1233
-#: netbox/dcim/views.py:2304 netbox/netbox/navigation/menu.py:103
+#: netbox/dcim/views.py:2313 netbox/netbox/navigation/menu.py:103
 #: netbox/templates/dcim/device/base.html:49
 #: netbox/templates/dcim/device_list.html:57
 #: netbox/templates/dcim/devicetype/base.html:46
@@ -7664,7 +7672,7 @@ msgid "Device Bays"
 msgstr "机柜托架"
 
 #: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1218
-#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2284
+#: netbox/dcim/views.py:1518 netbox/dcim/views.py:2293
 #: netbox/netbox/navigation/menu.py:102
 #: netbox/templates/dcim/device/base.html:46
 #: netbox/templates/dcim/device_list.html:64
@@ -7752,48 +7760,48 @@ msgstr "机柜预留"
 msgid "Non-Racked Devices"
 msgstr "未上架设备"
 
-#: netbox/dcim/views.py:2337 netbox/extras/forms/model_forms.py:659
+#: netbox/dcim/views.py:2346 netbox/extras/forms/model_forms.py:659
 #: netbox/templates/extras/configcontext.html:10
 #: netbox/virtualization/forms/model_forms.py:232
 #: netbox/virtualization/views.py:436
 msgid "Config Context"
 msgstr "配置实例"
 
-#: netbox/dcim/views.py:2347 netbox/virtualization/views.py:446
+#: netbox/dcim/views.py:2356 netbox/virtualization/views.py:446
 msgid "Render Config"
 msgstr "提交配置"
 
-#: netbox/dcim/views.py:2360 netbox/extras/tables/tables.py:611
+#: netbox/dcim/views.py:2369 netbox/extras/tables/tables.py:611
 #: netbox/netbox/navigation/menu.py:256 netbox/netbox/navigation/menu.py:258
 #: netbox/virtualization/views.py:208
 msgid "Virtual Machines"
 msgstr "虚拟机"
 
-#: netbox/dcim/views.py:3193
+#: netbox/dcim/views.py:3202
 #, python-brace-format
 msgid "Installed device {device} in bay {device_bay}."
 msgstr "已安装的设备 {device} 在海湾里 {device_bay}。"
 
-#: netbox/dcim/views.py:3234
+#: netbox/dcim/views.py:3243
 #, python-brace-format
 msgid "Removed device {device} from bay {device_bay}."
 msgstr "已移除的设备 {device} 来自海湾 {device_bay}。"
 
-#: netbox/dcim/views.py:3350 netbox/ipam/tables/ip.py:181
+#: netbox/dcim/views.py:3359 netbox/ipam/tables/ip.py:181
 msgid "Children"
 msgstr "子网"
 
-#: netbox/dcim/views.py:3817
+#: netbox/dcim/views.py:3826
 #, python-brace-format
 msgid "Added member <a href=\"{url}\">{device}</a>"
 msgstr "已添加成员 <a href=\"{url}\">{device}</a>"
 
-#: netbox/dcim/views.py:3866
+#: netbox/dcim/views.py:3875
 #, python-brace-format
 msgid "Unable to remove master device {device} from the virtual chassis."
 msgstr "无法移除主设备 {device} 来自虚拟机箱。"
 
-#: netbox/dcim/views.py:3879
+#: netbox/dcim/views.py:3888
 #, python-brace-format
 msgid "Removed {device} from virtual chassis {chassis}"
 msgstr "已移除 {device} 来自虚拟机箱 {chassis}"
@@ -9038,97 +9046,97 @@ msgstr "否"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr "值必须与此正则表达式匹配: <code>{regex}</code>"
 
-#: netbox/extras/models/customfields.py:671
+#: netbox/extras/models/customfields.py:679
 msgid "Value must be a string."
 msgstr "值必须为字符串"
 
-#: netbox/extras/models/customfields.py:673
+#: netbox/extras/models/customfields.py:681
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgstr "值必须与正则表达式'{regex}'匹配"
 
-#: netbox/extras/models/customfields.py:678
+#: netbox/extras/models/customfields.py:686
 msgid "Value must be an integer."
 msgstr "值必须是整数。"
 
-#: netbox/extras/models/customfields.py:681
-#: netbox/extras/models/customfields.py:696
+#: netbox/extras/models/customfields.py:689
+#: netbox/extras/models/customfields.py:704
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgstr "值最少为{minimum}"
 
-#: netbox/extras/models/customfields.py:685
-#: netbox/extras/models/customfields.py:700
+#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:708
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgstr "值最大为{maximum}"
 
-#: netbox/extras/models/customfields.py:693
+#: netbox/extras/models/customfields.py:701
 msgid "Value must be a decimal."
 msgstr "值必须是十进制。"
 
-#: netbox/extras/models/customfields.py:705
+#: netbox/extras/models/customfields.py:713
 msgid "Value must be true or false."
 msgstr "值必须为true或false。"
 
-#: netbox/extras/models/customfields.py:713
+#: netbox/extras/models/customfields.py:721
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr "日期格式必须为 ISO 8601  格式(YYYY-MM-DD)."
 
-#: netbox/extras/models/customfields.py:722
+#: netbox/extras/models/customfields.py:730
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr "日期和时间必须遵循 ISO 8601 格式 (YYYY-MM-DD HH:MM:SS)."
 
-#: netbox/extras/models/customfields.py:729
+#: netbox/extras/models/customfields.py:737
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr "选项集{choiceset}的选项({value})无效。"
 
-#: netbox/extras/models/customfields.py:739
+#: netbox/extras/models/customfields.py:747
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr "选项集{choiceset}的选项({value})无效。"
 
-#: netbox/extras/models/customfields.py:748
+#: netbox/extras/models/customfields.py:756
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgstr "值必须为对象ID, 不是 {type}"
 
-#: netbox/extras/models/customfields.py:754
+#: netbox/extras/models/customfields.py:762
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgstr "值必须为对象ID的列表,不是 {type}"
 
-#: netbox/extras/models/customfields.py:758
+#: netbox/extras/models/customfields.py:766
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgstr "发现错误的对象ID: {id}"
 
-#: netbox/extras/models/customfields.py:761
+#: netbox/extras/models/customfields.py:769
 msgid "Required field cannot be empty."
 msgstr "必填字段不能为空。"
 
-#: netbox/extras/models/customfields.py:781
+#: netbox/extras/models/customfields.py:789
 msgid "Base set of predefined choices (optional)"
 msgstr "预定义选项的基本集合(可选)"
 
-#: netbox/extras/models/customfields.py:793
+#: netbox/extras/models/customfields.py:801
 msgid "Choices are automatically ordered alphabetically"
 msgstr "选项会自动按字母顺序排列"
 
-#: netbox/extras/models/customfields.py:800
+#: netbox/extras/models/customfields.py:808
 msgid "custom field choice set"
 msgstr "自定义字段选择集"
 
-#: netbox/extras/models/customfields.py:801
+#: netbox/extras/models/customfields.py:809
 msgid "custom field choice sets"
 msgstr "自定义字段选择集"
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:851
 msgid "Must define base or extra choices."
 msgstr "必须定义基本选项或额外选项。"
 
-#: netbox/extras/models/customfields.py:867
+#: netbox/extras/models/customfields.py:875
 #, python-brace-format
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -9492,7 +9500,7 @@ msgid "notifications"
 msgstr "通知"
 
 #: netbox/extras/models/notifications.py:99
-#: netbox/extras/models/notifications.py:240
+#: netbox/extras/models/notifications.py:243
 #, python-brace-format
 msgid "Objects of this type ({type}) do not support notifications."
 msgstr "这种类型的对象 ({type}) 不支持通知。"
@@ -9514,11 +9522,11 @@ msgstr "通知组"
 msgid "notification groups"
 msgstr "通知组"
 
-#: netbox/extras/models/notifications.py:223
+#: netbox/extras/models/notifications.py:226
 msgid "subscription"
 msgstr "订阅"
 
-#: netbox/extras/models/notifications.py:224
+#: netbox/extras/models/notifications.py:227
 msgid "subscriptions"
 msgstr "订阅"
 
@@ -10440,7 +10448,7 @@ msgstr "DNS名称"
 
 #: netbox/ipam/forms/filtersets.py:440 netbox/ipam/models/vlans.py:280
 #: netbox/ipam/tables/ip.py:123 netbox/ipam/tables/vlans.py:51
-#: netbox/ipam/views.py:1024 netbox/netbox/navigation/menu.py:200
+#: netbox/ipam/views.py:1042 netbox/netbox/navigation/menu.py:200
 #: netbox/netbox/navigation/menu.py:202
 msgid "VLANs"
 msgstr "VLANs"
@@ -11040,7 +11048,7 @@ msgid "Added"
 msgstr "已添加"
 
 #: netbox/ipam/tables/ip.py:75 netbox/ipam/tables/ip.py:113
-#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:375
+#: netbox/ipam/tables/vlans.py:120 netbox/ipam/views.py:393
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:174
 #: netbox/templates/ipam/vlan.html:100
 msgid "Prefixes"
@@ -11180,26 +11188,26 @@ msgid ""
 "are allowed in DNS names"
 msgstr "DNS 名称中仅允许使用字母数字字符、星号、连字符、句点和下划线"
 
-#: netbox/ipam/views.py:569
+#: netbox/ipam/views.py:64 netbox/ipam/views.py:1337
+msgid "Device Interfaces"
+msgstr "设备接口"
+
+#: netbox/ipam/views.py:69 netbox/ipam/views.py:1355
+msgid "VM Interfaces"
+msgstr "VM接口"
+
+#: netbox/ipam/views.py:587
 msgid "Child Prefixes"
 msgstr "下级前缀"
 
-#: netbox/ipam/views.py:605
+#: netbox/ipam/views.py:623
 msgid "Child Ranges"
 msgstr "子类地址访问"
 
-#: netbox/ipam/views.py:951
+#: netbox/ipam/views.py:969
 msgid "Related IPs"
 msgstr "关联IP"
 
-#: netbox/ipam/views.py:1319
-msgid "Device Interfaces"
-msgstr "设备接口"
-
-#: netbox/ipam/views.py:1337
-msgid "VM Interfaces"
-msgstr "VM接口"
-
 #: netbox/netbox/api/fields.py:66
 msgid "This field may not be blank."
 msgstr "此字段不能为空。"
@@ -16141,17 +16149,17 @@ msgstr "{value} 必须是的倍数 {multiple}。"
 msgid "{value} is not a valid regular expression."
 msgstr "{value} 不是有效的正则表达式。"
 
-#: netbox/utilities/views.py:57
+#: netbox/utilities/views.py:75
 #, python-brace-format
 msgid "{self.__class__.__name__} must implement get_required_permission()"
 msgstr "{self.__class__.__name__}必须实现get_required_permission()方法"
 
-#: netbox/utilities/views.py:93
+#: netbox/utilities/views.py:111
 #, python-brace-format
 msgid "{class_name} must implement get_required_permission()"
 msgstr "{class_name}必须实现get_required_permission()方法"
 
-#: netbox/utilities/views.py:117
+#: netbox/utilities/views.py:135
 #, python-brace-format
 msgid ""
 "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only"

+ 2 - 0
netbox/utilities/forms/fields/csv.py

@@ -114,6 +114,8 @@ class CSVMultipleContentTypeField(forms.ModelMultipleChoiceField):
 
     # TODO: Improve validation of selected ContentTypes
     def prepare_value(self, value):
+        if not value:
+            return None
         if type(value) is str:
             ct_filter = Q()
             for name in value.split(','):

+ 1 - 1
netbox/utilities/templates/buttons/add.html

@@ -1,3 +1,3 @@
-<a href="{{ url }}" class="btn btn-primary" role="button">
+<a href="{{ url }}{% if return_url %}?return_url={{ return_url }}{% endif %}" class="btn btn-primary" role="button">
   <i class="mdi mdi-plus-thick" aria-hidden="true"></i> {{  label }}
 </a>

+ 2 - 1
netbox/utilities/templatetags/buttons.py

@@ -164,7 +164,7 @@ def sync_button(instance):
 
 # TODO: Remove in NetBox v4.7
 @register.inclusion_tag('buttons/add.html')
-def add_button(model, action='add'):
+def add_button(model, action='add', return_url=None):
     try:
         url = get_action_url(model, action=action)
     except NoReverseMatch:
@@ -173,6 +173,7 @@ def add_button(model, action='add'):
     return {
         'url': url,
         'label': _('Add'),
+        'return_url': return_url,
     }
 
 

+ 36 - 5
netbox/utilities/views.py

@@ -1,16 +1,20 @@
+from dataclasses import dataclass
 from typing import Iterable
 
 from django.conf import settings
 from django.contrib.auth.mixins import AccessMixin
 from django.core.exceptions import ImproperlyConfigured
+from django.db.models import QuerySet
 from django.urls import reverse
 from django.urls.exceptions import NoReverseMatch
 from django.utils.translation import gettext_lazy as _
 
+from netbox.api.authentication import TokenAuthentication
 from netbox.plugins import PluginConfig
 from netbox.registry import registry
 from utilities.relations import get_related_models
 from utilities.request import safe_for_redirect
+from utilities.string import title
 from .permissions import resolve_permission
 
 __all__ = (
@@ -19,6 +23,7 @@ __all__ = (
     'GetRelatedModelsMixin',
     'GetReturnURLMixin',
     'ObjectPermissionRequiredMixin',
+    'TokenConditionalLoginRequiredMixin',
     'ViewTab',
     'get_action_url',
     'get_viewname',
@@ -40,6 +45,19 @@ class ConditionalLoginRequiredMixin(AccessMixin):
         return super().dispatch(request, *args, **kwargs)
 
 
+class TokenConditionalLoginRequiredMixin(ConditionalLoginRequiredMixin):
+    def dispatch(self, request, *args, **kwargs):
+        # Attempt to authenticate the user using a DRF token, if provided
+        if settings.LOGIN_REQUIRED and not request.user.is_authenticated:
+            authenticator = TokenAuthentication()
+            auth_info = authenticator.authenticate(request)
+            if auth_info is not None:
+                request.user = auth_info[0]  # User object
+                request.auth = auth_info[1]
+
+        return super().dispatch(request, *args, **kwargs)
+
+
 class ContentTypePermissionRequiredMixin(ConditionalLoginRequiredMixin):
     """
     Similar to Django's built-in PermissionRequiredMixin, but extended to check model-level permission assignments.
@@ -163,8 +181,17 @@ class GetRelatedModelsMixin:
     """
     Provides logic for collecting all related models for the currently viewed model.
     """
+    @dataclass
+    class RelatedObjectCount:
+        queryset: QuerySet
+        filter_param: str
+        label: str = ''
+
+        @property
+        def name(self):
+            return self.label or title(_(self.queryset.model._meta.verbose_name_plural))
 
-    def get_related_models(self, request, instance, omit=[], extra=[]):
+    def get_related_models(self, request, instance, omit=None, extra=None):
         """
         Get related models of the view's `queryset` model without those listed in `omit`. Will be sorted alphabetical.
 
@@ -177,6 +204,7 @@ class GetRelatedModelsMixin:
             extra: Add extra models to the list of automatically determined related models. Can be used to add indirect
                 relationships.
         """
+        omit = omit or []
         model = self.queryset.model
         related = filter(
             lambda m: m[0] is not model and m[0] not in omit,
@@ -184,7 +212,7 @@ class GetRelatedModelsMixin:
         )
 
         related_models = [
-            (
+            self.RelatedObjectCount(
                 model.objects.restrict(request.user, 'view').filter(**(
                     {f'{field}__in': instance}
                     if isinstance(instance, Iterable)
@@ -194,11 +222,14 @@ class GetRelatedModelsMixin:
             )
             for model, field in related
         ]
-        related_models.extend(extra)
+        if extra is not None:
+            related_models.extend([
+                self.RelatedObjectCount(*attrs) for attrs in extra
+            ])
 
         return sorted(
-            filter(lambda qs: qs[0].exists(), related_models),
-            key=lambda qs: qs[0].model._meta.verbose_name.lower(),
+            filter(lambda roc: roc.queryset.exists(), related_models),
+            key=lambda roc: roc.name,
         )
 
 

+ 5 - 5
requirements.txt

@@ -21,9 +21,9 @@ drf-spectacular-sidecar==2025.8.1
 feedparser==6.0.11
 gunicorn==23.0.0
 Jinja2==3.1.6
-jsonschema==4.25.0
+jsonschema==4.25.1
 Markdown==3.8.2
-mkdocs-material==9.6.16
+mkdocs-material==9.6.18
 mkdocstrings==0.30.0
 mkdocstrings-python==1.18.2
 netaddr==1.3.0
@@ -31,12 +31,12 @@ nh3==0.3.0
 Pillow==11.3.0
 psycopg[c,pool]==3.2.9
 PyYAML==6.0.2
-requests==2.32.4
-rq==2.4.1
+requests==2.32.5
+rq==2.5.0
 social-auth-app-django==5.5.1
 social-auth-core==4.7.0
 sorl-thumbnail==12.11.0
-strawberry-graphql==0.278.1
+strawberry-graphql==0.281.0
 strawberry-graphql-django==0.65.1
 svgwrite==1.4.3
 tablib==3.8.0

Деякі файли не було показано, через те що забагато файлів було змінено