Преглед изворни кода

Update source translation strings

github-actions пре 2 недеља
родитељ
комит
a6451297a2
1 измењених фајлова са 121 додато и 113 уклоњено
  1. 121 113
      netbox/translations/en/LC_MESSAGES/django.po

+ 121 - 113
netbox/translations/en/LC_MESSAGES/django.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-08-06 05:56+0000\n"
+"POT-Creation-Date: 2026-08-07 05:30+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -497,7 +497,7 @@ msgstr ""
 #: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:427
 #: netbox/extras/forms/bulk_import.py:48 netbox/extras/tables/tables.py:427
 #: netbox/extras/tables/tables.py:515 netbox/extras/tables/tables.py:584
 #: netbox/extras/tables/tables.py:515 netbox/extras/tables/tables.py:584
 #: netbox/extras/ui/panels.py:128 netbox/extras/ui/panels.py:377
 #: netbox/extras/ui/panels.py:128 netbox/extras/ui/panels.py:377
-#: netbox/netbox/tables/tables.py:390
+#: netbox/netbox/tables/tables.py:453
 #: netbox/templates/core/htmx/system_db_schema.html:70
 #: netbox/templates/core/htmx/system_db_schema.html:70
 #: netbox/templates/dcim/panels/interface_connection.html:68
 #: netbox/templates/dcim/panels/interface_connection.html:68
 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16
 #: netbox/templates/wireless/panels/wirelesslink_interface.html:16
@@ -720,7 +720,7 @@ msgstr ""
 #: netbox/ipam/forms/filtersets.py:351 netbox/ipam/forms/filtersets.py:434
 #: netbox/ipam/forms/filtersets.py:351 netbox/ipam/forms/filtersets.py:434
 #: netbox/ipam/forms/filtersets.py:532 netbox/ipam/forms/filtersets.py:546
 #: netbox/ipam/forms/filtersets.py:532 netbox/ipam/forms/filtersets.py:546
 #: netbox/ipam/forms/filtersets.py:571 netbox/ipam/forms/filtersets.py:643
 #: netbox/ipam/forms/filtersets.py:571 netbox/ipam/forms/filtersets.py:643
-#: netbox/ipam/forms/filtersets.py:662 netbox/netbox/tables/tables.py:406
+#: netbox/ipam/forms/filtersets.py:662 netbox/netbox/tables/tables.py:469
 #: netbox/virtualization/forms/filtersets.py:56
 #: netbox/virtualization/forms/filtersets.py:56
 #: netbox/virtualization/forms/filtersets.py:114
 #: netbox/virtualization/forms/filtersets.py:114
 #: netbox/virtualization/forms/filtersets.py:166
 #: netbox/virtualization/forms/filtersets.py:166
@@ -1403,7 +1403,7 @@ msgstr ""
 #: netbox/dcim/models/device_component_templates.py:70
 #: netbox/dcim/models/device_component_templates.py:70
 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:730
 #: netbox/dcim/models/device_components.py:68 netbox/dcim/models/racks.py:730
 #: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:98
 #: netbox/extras/models/configs.py:45 netbox/extras/models/configs.py:98
-#: netbox/extras/models/configs.py:289 netbox/extras/models/customfields.py:153
+#: netbox/extras/models/configs.py:289 netbox/extras/models/customfields.py:154
 #: netbox/extras/models/models.py:79 netbox/extras/models/models.py:188
 #: netbox/extras/models/models.py:79 netbox/extras/models/models.py:188
 #: netbox/extras/models/models.py:471 netbox/extras/models/models.py:539
 #: netbox/extras/models/models.py:471 netbox/extras/models/models.py:539
 #: netbox/extras/models/models.py:623 netbox/extras/models/models.py:766
 #: netbox/extras/models/models.py:623 netbox/extras/models/models.py:766
@@ -1439,7 +1439,7 @@ msgstr ""
 #: netbox/dcim/models/power.py:90 netbox/dcim/models/racks.py:290
 #: netbox/dcim/models/power.py:90 netbox/dcim/models/racks.py:290
 #: netbox/dcim/models/sites.py:175 netbox/extras/models/configs.py:40
 #: netbox/dcim/models/sites.py:175 netbox/extras/models/configs.py:40
 #: netbox/extras/models/configs.py:82 netbox/extras/models/configs.py:285
 #: netbox/extras/models/configs.py:82 netbox/extras/models/configs.py:285
-#: netbox/extras/models/customfields.py:120 netbox/extras/models/models.py:74
+#: netbox/extras/models/customfields.py:121 netbox/extras/models/models.py:74
 #: netbox/extras/models/models.py:183 netbox/extras/models/models.py:361
 #: netbox/extras/models/models.py:183 netbox/extras/models/models.py:361
 #: netbox/extras/models/models.py:467 netbox/extras/models/models.py:529
 #: netbox/extras/models/models.py:467 netbox/extras/models/models.py:529
 #: netbox/extras/models/models.py:619 netbox/extras/models/models.py:761
 #: netbox/extras/models/models.py:619 netbox/extras/models/models.py:761
@@ -1450,7 +1450,7 @@ msgstr ""
 #: netbox/ipam/models/vlans.py:380 netbox/ipam/models/vrfs.py:20
 #: netbox/ipam/models/vlans.py:380 netbox/ipam/models/vrfs.py:20
 #: netbox/ipam/models/vrfs.py:78 netbox/netbox/models/__init__.py:180
 #: netbox/ipam/models/vrfs.py:78 netbox/netbox/models/__init__.py:180
 #: netbox/netbox/models/__init__.py:228 netbox/tenancy/models/contacts.py:85
 #: netbox/netbox/models/__init__.py:228 netbox/tenancy/models/contacts.py:85
-#: netbox/tenancy/models/tenants.py:19 netbox/tenancy/models/tenants.py:45
+#: netbox/tenancy/models/tenants.py:19 netbox/tenancy/models/tenants.py:63
 #: netbox/users/models/owners.py:19 netbox/users/models/owners.py:38
 #: netbox/users/models/owners.py:19 netbox/users/models/owners.py:38
 #: netbox/users/models/permissions.py:23 netbox/users/models/users.py:36
 #: netbox/users/models/permissions.py:23 netbox/users/models/users.py:36
 #: netbox/virtualization/models/clusters.py:52
 #: netbox/virtualization/models/clusters.py:52
@@ -1474,7 +1474,7 @@ msgstr ""
 #: netbox/extras/models/models.py:534 netbox/ipam/models/asns.py:24
 #: netbox/extras/models/models.py:534 netbox/ipam/models/asns.py:24
 #: netbox/ipam/models/vlans.py:47 netbox/netbox/models/__init__.py:184
 #: netbox/ipam/models/vlans.py:47 netbox/netbox/models/__init__.py:184
 #: netbox/netbox/models/__init__.py:233 netbox/tenancy/models/tenants.py:25
 #: netbox/netbox/models/__init__.py:233 netbox/tenancy/models/tenants.py:25
-#: netbox/tenancy/models/tenants.py:50
+#: netbox/tenancy/models/tenants.py:68
 #: netbox/virtualization/models/virtualmachines.py:44
 #: netbox/virtualization/models/virtualmachines.py:44
 #: netbox/vpn/models/l2vpn.py:26 netbox/wireless/models.py:60
 #: netbox/vpn/models/l2vpn.py:26 netbox/wireless/models.py:60
 msgid "slug"
 msgid "slug"
@@ -1577,7 +1577,7 @@ msgstr ""
 #: netbox/ipam/tables/services.py:16 netbox/ipam/tables/services.py:38
 #: netbox/ipam/tables/services.py:16 netbox/ipam/tables/services.py:38
 #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:90
 #: netbox/ipam/tables/vlans.py:33 netbox/ipam/tables/vlans.py:90
 #: netbox/ipam/tables/vlans.py:209 netbox/ipam/tables/vrfs.py:26
 #: netbox/ipam/tables/vlans.py:209 netbox/ipam/tables/vrfs.py:26
-#: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:376
+#: netbox/ipam/tables/vrfs.py:65 netbox/netbox/tables/tables.py:439
 #: netbox/netbox/ui/panels.py:222 netbox/netbox/ui/panels.py:231
 #: netbox/netbox/ui/panels.py:222 netbox/netbox/ui/panels.py:231
 #: netbox/templates/core/htmx/system_db_schema.html:99
 #: netbox/templates/core/htmx/system_db_schema.html:99
 #: netbox/templates/core/plugin.html:54 netbox/templates/core/rq_worker.html:43
 #: netbox/templates/core/plugin.html:54 netbox/templates/core/rq_worker.html:43
@@ -1965,7 +1965,7 @@ msgstr ""
 msgid "Warning"
 msgid "Warning"
 msgstr ""
 msgstr ""
 
 
-#: netbox/core/constants.py:33 netbox/netbox/tables/columns.py:625
+#: netbox/core/constants.py:33 netbox/netbox/tables/columns.py:662
 msgid "Error"
 msgid "Error"
 msgstr ""
 msgstr ""
 
 
@@ -2381,7 +2381,7 @@ msgstr ""
 #: netbox/dcim/models/device_components.py:859
 #: netbox/dcim/models/device_components.py:859
 #: netbox/dcim/models/device_components.py:1246
 #: netbox/dcim/models/device_components.py:1246
 #: netbox/dcim/models/device_components.py:1294 netbox/dcim/models/power.py:101
 #: netbox/dcim/models/device_components.py:1294 netbox/dcim/models/power.py:101
-#: netbox/extras/models/customfields.py:106 netbox/extras/models/search.py:42
+#: netbox/extras/models/customfields.py:107 netbox/extras/models/search.py:42
 #: netbox/virtualization/models/clusters.py:57
 #: netbox/virtualization/models/clusters.py:57
 #: netbox/virtualization/models/virtualmachines.py:121
 #: netbox/virtualization/models/virtualmachines.py:121
 #: netbox/vpn/models/l2vpn.py:31
 #: netbox/vpn/models/l2vpn.py:31
@@ -2626,7 +2626,7 @@ msgstr ""
 #: netbox/extras/tables/tables.py:518 netbox/extras/tables/tables.py:589
 #: netbox/extras/tables/tables.py:518 netbox/extras/tables/tables.py:589
 #: netbox/extras/tables/tables.py:762 netbox/extras/tables/tables.py:803
 #: netbox/extras/tables/tables.py:762 netbox/extras/tables/tables.py:803
 #: netbox/extras/tables/tables.py:857 netbox/extras/ui/panels.py:378
 #: netbox/extras/tables/tables.py:857 netbox/extras/ui/panels.py:378
-#: netbox/extras/ui/panels.py:507 netbox/netbox/tables/tables.py:394
+#: netbox/extras/ui/panels.py:507 netbox/netbox/tables/tables.py:457
 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64
 #: netbox/tenancy/tables/contacts.py:87 netbox/vpn/tables/l2vpn.py:64
 msgid "Object"
 msgid "Object"
 msgstr ""
 msgstr ""
@@ -2666,7 +2666,7 @@ msgstr ""
 #: netbox/core/tables/jobs.py:14 netbox/core/tables/tasks.py:77
 #: netbox/core/tables/jobs.py:14 netbox/core/tables/tasks.py:77
 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:264
 #: netbox/dcim/tables/devicetypes.py:168 netbox/extras/tables/tables.py:264
 #: netbox/extras/tables/tables.py:579 netbox/extras/tables/tables.py:828
 #: netbox/extras/tables/tables.py:579 netbox/extras/tables/tables.py:828
-#: netbox/netbox/tables/tables.py:252
+#: netbox/netbox/tables/tables.py:315
 #: netbox/templates/dcim/virtualchassis_edit.html:64
 #: netbox/templates/dcim/virtualchassis_edit.html:64
 #: netbox/utilities/forms/forms.py:119
 #: netbox/utilities/forms/forms.py:119
 #: netbox/wireless/tables/wirelesslink.py:16
 #: netbox/wireless/tables/wirelesslink.py:16
@@ -3094,7 +3094,7 @@ msgstr ""
 #: netbox/dcim/tables/devices.py:1235 netbox/ipam/forms/bulk_import.py:608
 #: netbox/dcim/tables/devices.py:1235 netbox/ipam/forms/bulk_import.py:608
 #: netbox/ipam/forms/model_forms.py:817 netbox/ipam/tables/fhrp.py:56
 #: netbox/ipam/forms/model_forms.py:817 netbox/ipam/tables/fhrp.py:56
 #: netbox/ipam/tables/ip.py:334 netbox/ipam/tables/services.py:42
 #: netbox/ipam/tables/ip.py:334 netbox/ipam/tables/services.py:42
-#: netbox/netbox/tables/tables.py:380 netbox/netbox/ui/panels.py:230
+#: netbox/netbox/tables/tables.py:443 netbox/netbox/ui/panels.py:230
 #: netbox/tenancy/forms/bulk_edit.py:33 netbox/tenancy/forms/bulk_edit.py:62
 #: netbox/tenancy/forms/bulk_edit.py:33 netbox/tenancy/forms/bulk_edit.py:62
 #: netbox/tenancy/forms/bulk_import.py:31
 #: netbox/tenancy/forms/bulk_import.py:31
 #: netbox/tenancy/forms/bulk_import.py:64
 #: netbox/tenancy/forms/bulk_import.py:64
@@ -5987,7 +5987,7 @@ msgstr ""
 #: netbox/dcim/models/cables.py:112
 #: netbox/dcim/models/cables.py:112
 #: netbox/dcim/models/device_component_templates.py:64
 #: netbox/dcim/models/device_component_templates.py:64
 #: netbox/dcim/models/device_components.py:62
 #: netbox/dcim/models/device_components.py:62
-#: netbox/extras/models/customfields.py:139
+#: netbox/extras/models/customfields.py:140
 msgid "label"
 msgid "label"
 msgstr ""
 msgstr ""
 
 
@@ -7106,7 +7106,7 @@ msgstr ""
 msgid "Numeric identifier unique to the parent device"
 msgid "Numeric identifier unique to the parent device"
 msgstr ""
 msgstr ""
 
 
-#: netbox/dcim/models/devices.py:1298 netbox/extras/models/customfields.py:264
+#: netbox/dcim/models/devices.py:1298 netbox/extras/models/customfields.py:265
 #: netbox/extras/models/models.py:125 netbox/extras/models/models.py:934
 #: netbox/extras/models/models.py:125 netbox/extras/models/models.py:934
 #: netbox/netbox/models/__init__.py:154 netbox/netbox/models/__init__.py:193
 #: netbox/netbox/models/__init__.py:154 netbox/netbox/models/__init__.py:193
 #: netbox/netbox/models/__init__.py:243
 #: netbox/netbox/models/__init__.py:243
@@ -8743,13 +8743,13 @@ msgstr ""
 
 
 #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66
 #: netbox/extras/forms/bulk_edit.py:65 netbox/extras/forms/bulk_import.py:66
 #: netbox/extras/forms/filtersets.py:99
 #: netbox/extras/forms/filtersets.py:99
-#: netbox/extras/models/customfields.py:248 netbox/extras/ui/panels.py:155
+#: netbox/extras/models/customfields.py:249 netbox/extras/ui/panels.py:155
 msgid "UI visible"
 msgid "UI visible"
 msgstr ""
 msgstr ""
 
 
 #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72
 #: netbox/extras/forms/bulk_edit.py:70 netbox/extras/forms/bulk_import.py:72
 #: netbox/extras/forms/filtersets.py:104
 #: netbox/extras/forms/filtersets.py:104
-#: netbox/extras/models/customfields.py:255 netbox/extras/ui/panels.py:156
+#: netbox/extras/models/customfields.py:256 netbox/extras/ui/panels.py:156
 msgid "UI editable"
 msgid "UI editable"
 msgstr ""
 msgstr ""
 
 
@@ -8997,8 +8997,8 @@ msgid "The classification of entry"
 msgstr ""
 msgstr ""
 
 
 #: netbox/extras/forms/bulk_import.py:337 netbox/extras/tables/tables.py:768
 #: netbox/extras/forms/bulk_import.py:337 netbox/extras/tables/tables.py:768
-#: netbox/netbox/tables/tables.py:346 netbox/netbox/tables/tables.py:361
-#: netbox/netbox/tables/tables.py:384 netbox/netbox/ui/panels.py:243
+#: netbox/netbox/tables/tables.py:409 netbox/netbox/tables/tables.py:424
+#: netbox/netbox/tables/tables.py:447 netbox/netbox/ui/panels.py:243
 #: netbox/templates/dcim/htmx/cable_edit.html:110
 #: netbox/templates/dcim/htmx/cable_edit.html:110
 #: netbox/templates/generic/bulk_edit.html:99
 #: netbox/templates/generic/bulk_edit.html:99
 #: netbox/templates/inc/panels/comments.html:5
 #: netbox/templates/inc/panels/comments.html:5
@@ -9148,7 +9148,7 @@ msgid "Specify query parameters as a JSON object."
 msgstr ""
 msgstr ""
 
 
 #: netbox/extras/forms/model_forms.py:82
 #: netbox/extras/forms/model_forms.py:82
-#: netbox/extras/models/customfields.py:234
+#: netbox/extras/models/customfields.py:235
 msgid "A JSON schema definition for validating the custom field value"
 msgid "A JSON schema definition for validating the custom field value"
 msgstr ""
 msgstr ""
 
 
@@ -9445,126 +9445,126 @@ msgstr ""
 msgid "Line: {lineno}"
 msgid "Line: {lineno}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:103
+#: netbox/extras/models/customfields.py:104
 msgid "The object(s) to which this field applies."
 msgid "The object(s) to which this field applies."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:110
+#: netbox/extras/models/customfields.py:111
 msgid "The type of data this custom field holds"
 msgid "The type of data this custom field holds"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:117
+#: netbox/extras/models/customfields.py:118
 msgid "The type of NetBox object this field maps to (for object fields)"
 msgid "The type of NetBox object this field maps to (for object fields)"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:123
+#: netbox/extras/models/customfields.py:124
 msgid "Internal field name"
 msgid "Internal field name"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:127
+#: netbox/extras/models/customfields.py:128
 msgid "Only alphanumeric characters and underscores are allowed."
 msgid "Only alphanumeric characters and underscores are allowed."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:132
+#: netbox/extras/models/customfields.py:133
 msgid "Double underscores are not permitted in custom field names."
 msgid "Double underscores are not permitted in custom field names."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:143
+#: netbox/extras/models/customfields.py:144
 msgid ""
 msgid ""
 "Name of the field as displayed to users (if not provided, 'the field's name "
 "Name of the field as displayed to users (if not provided, 'the field's name "
 "will be used)"
 "will be used)"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:147 netbox/extras/models/models.py:382
+#: netbox/extras/models/customfields.py:148 netbox/extras/models/models.py:382
 msgid "group name"
 msgid "group name"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:150
+#: netbox/extras/models/customfields.py:151
 msgid "Custom fields within the same group will be displayed together"
 msgid "Custom fields within the same group will be displayed together"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:158
+#: netbox/extras/models/customfields.py:159
 msgid "required"
 msgid "required"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:160
+#: netbox/extras/models/customfields.py:161
 msgid ""
 msgid ""
 "This field is required when creating new objects or editing an existing "
 "This field is required when creating new objects or editing an existing "
 "object."
 "object."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:163
+#: netbox/extras/models/customfields.py:164
 msgid "must be unique"
 msgid "must be unique"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:165
+#: netbox/extras/models/customfields.py:166
 msgid "The value of this field must be unique for the assigned object"
 msgid "The value of this field must be unique for the assigned object"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:168
+#: netbox/extras/models/customfields.py:169
 msgid "search weight"
 msgid "search weight"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:171
+#: netbox/extras/models/customfields.py:172
 msgid ""
 msgid ""
 "Weighting for search. Lower values are considered more important. Fields "
 "Weighting for search. Lower values are considered more important. Fields "
 "with a search weight of zero will be ignored."
 "with a search weight of zero will be ignored."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:176
+#: netbox/extras/models/customfields.py:177
 msgid "filter logic"
 msgid "filter logic"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:180
+#: netbox/extras/models/customfields.py:181
 msgid ""
 msgid ""
 "Loose matches any instance of a given string; exact matches the entire field."
 "Loose matches any instance of a given string; exact matches the entire field."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:183
+#: netbox/extras/models/customfields.py:184
 msgid "default"
 msgid "default"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:187
+#: netbox/extras/models/customfields.py:188
 msgid ""
 msgid ""
 "Default value for the field (must be a JSON value). Encapsulate strings with "
 "Default value for the field (must be a JSON value). Encapsulate strings with "
 "double quotes (e.g. \"Foo\")."
 "double quotes (e.g. \"Foo\")."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:194
+#: netbox/extras/models/customfields.py:195
 msgid ""
 msgid ""
 "Filter the object selection choices using a query_params dict (must be a "
 "Filter the object selection choices using a query_params dict (must be a "
 "JSON value).Encapsulate strings with double quotes (e.g. \"Foo\")."
 "JSON value).Encapsulate strings with double quotes (e.g. \"Foo\")."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:200
+#: netbox/extras/models/customfields.py:201
 msgid "display weight"
 msgid "display weight"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:201
+#: netbox/extras/models/customfields.py:202
 msgid "Fields with higher weights appear lower in a form."
 msgid "Fields with higher weights appear lower in a form."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:208
+#: netbox/extras/models/customfields.py:209
 msgid "minimum value"
 msgid "minimum value"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:209
+#: netbox/extras/models/customfields.py:210
 msgid "Minimum allowed value (for numeric fields)"
 msgid "Minimum allowed value (for numeric fields)"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:216
+#: netbox/extras/models/customfields.py:217
 msgid "maximum value"
 msgid "maximum value"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:217
+#: netbox/extras/models/customfields.py:218
 msgid "Maximum allowed value (for numeric fields)"
 msgid "Maximum allowed value (for numeric fields)"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:223
+#: netbox/extras/models/customfields.py:224
 msgid "validation regex"
 msgid "validation regex"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:225
+#: netbox/extras/models/customfields.py:226
 #, python-brace-format
 #, python-brace-format
 msgid ""
 msgid ""
 "Regular expression to enforce on text field values. Use ^ and $ to force "
 "Regular expression to enforce on text field values. Use ^ and $ to force "
@@ -9572,221 +9572,221 @@ msgid ""
 "values to exactly three uppercase letters."
 "values to exactly three uppercase letters."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:233
+#: netbox/extras/models/customfields.py:234
 msgid "validation schema"
 msgid "validation schema"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:240
+#: netbox/extras/models/customfields.py:241
 msgid "choice set"
 msgid "choice set"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:249
+#: netbox/extras/models/customfields.py:250
 msgid "Specifies whether the custom field is displayed in the UI"
 msgid "Specifies whether the custom field is displayed in the UI"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:256
+#: netbox/extras/models/customfields.py:257
 msgid "Specifies whether the custom field value can be edited in the UI"
 msgid "Specifies whether the custom field value can be edited in the UI"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:260
+#: netbox/extras/models/customfields.py:261
 msgid "is cloneable"
 msgid "is cloneable"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:261
+#: netbox/extras/models/customfields.py:262
 msgid "Replicate this value when cloning objects"
 msgid "Replicate this value when cloning objects"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:281
+#: netbox/extras/models/customfields.py:282
 msgid "custom field"
 msgid "custom field"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:282
+#: netbox/extras/models/customfields.py:283
 msgid "custom fields"
 msgid "custom fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:420
+#: netbox/extras/models/customfields.py:440
 #, python-brace-format
 #, python-brace-format
 msgid "Invalid default value \"{value}\": {error}"
 msgid "Invalid default value \"{value}\": {error}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:427
+#: netbox/extras/models/customfields.py:447
 msgid "A minimum value may be set only for numeric fields"
 msgid "A minimum value may be set only for numeric fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:429
+#: netbox/extras/models/customfields.py:449
 msgid "A maximum value may be set only for numeric fields"
 msgid "A maximum value may be set only for numeric fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:439
+#: netbox/extras/models/customfields.py:459
 msgid "Regular expression validation is supported only for text and URL fields"
 msgid "Regular expression validation is supported only for text and URL fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:445
+#: netbox/extras/models/customfields.py:465
 msgid "JSON schema validation is supported only for JSON fields"
 msgid "JSON schema validation is supported only for JSON fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:451
+#: netbox/extras/models/customfields.py:471
 msgid "Uniqueness cannot be enforced for boolean fields"
 msgid "Uniqueness cannot be enforced for boolean fields"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:461
+#: netbox/extras/models/customfields.py:481
 msgid "Selection fields must specify a set of choices."
 msgid "Selection fields must specify a set of choices."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:465
+#: netbox/extras/models/customfields.py:485
 msgid "Choices may be set only on selection fields."
 msgid "Choices may be set only on selection fields."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:472
+#: netbox/extras/models/customfields.py:492
 msgid "Object fields must define an object type."
 msgid "Object fields must define an object type."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:476
+#: netbox/extras/models/customfields.py:496
 #, python-brace-format
 #, python-brace-format
 msgid "{type} fields may not define an object type."
 msgid "{type} fields may not define an object type."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:483
+#: netbox/extras/models/customfields.py:503
 msgid "A related object filter can be defined only for object fields."
 msgid "A related object filter can be defined only for object fields."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:487
+#: netbox/extras/models/customfields.py:507
 msgid "Filter must be defined as a dictionary mapping attributes to values."
 msgid "Filter must be defined as a dictionary mapping attributes to values."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:576
+#: netbox/extras/models/customfields.py:596
 msgid "True"
 msgid "True"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:577
+#: netbox/extras/models/customfields.py:597
 msgid "False"
 msgid "False"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:630
-#: netbox/extras/models/customfields.py:683
+#: netbox/extras/models/customfields.py:650
+#: netbox/extras/models/customfields.py:703
 #, python-brace-format
 #, python-brace-format
 msgid "Values must match this regex: <code>{regex}</code>"
 msgid "Values must match this regex: <code>{regex}</code>"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:785
-#: netbox/extras/models/customfields.py:792
+#: netbox/extras/models/customfields.py:813
+#: netbox/extras/models/customfields.py:820
 msgid "Value must be a string."
 msgid "Value must be a string."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:787
-#: netbox/extras/models/customfields.py:794
+#: netbox/extras/models/customfields.py:815
+#: netbox/extras/models/customfields.py:822
 #, python-brace-format
 #, python-brace-format
 msgid "Value must match regex '{regex}'"
 msgid "Value must match regex '{regex}'"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:799
+#: netbox/extras/models/customfields.py:827
 msgid "Value must be an integer."
 msgid "Value must be an integer."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:802
-#: netbox/extras/models/customfields.py:817
+#: netbox/extras/models/customfields.py:830
+#: netbox/extras/models/customfields.py:845
 #, python-brace-format
 #, python-brace-format
 msgid "Value must be at least {minimum}"
 msgid "Value must be at least {minimum}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:806
-#: netbox/extras/models/customfields.py:821
+#: netbox/extras/models/customfields.py:834
+#: netbox/extras/models/customfields.py:849
 #, python-brace-format
 #, python-brace-format
 msgid "Value must not exceed {maximum}"
 msgid "Value must not exceed {maximum}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:814
+#: netbox/extras/models/customfields.py:842
 msgid "Value must be a decimal."
 msgid "Value must be a decimal."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:826
+#: netbox/extras/models/customfields.py:854
 msgid "Value must be true or false."
 msgid "Value must be true or false."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:834
+#: netbox/extras/models/customfields.py:862
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:843
+#: netbox/extras/models/customfields.py:871
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:850
+#: netbox/extras/models/customfields.py:878
 #, python-brace-format
 #, python-brace-format
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgid "Invalid choice ({value}) for choice set {choiceset}."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:860
+#: netbox/extras/models/customfields.py:888
 #, python-brace-format
 #, python-brace-format
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgid "Invalid choice(s) ({value}) for choice set {choiceset}."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:869
+#: netbox/extras/models/customfields.py:897
 #, python-brace-format
 #, python-brace-format
 msgid "Value must be an object ID, not {type}"
 msgid "Value must be an object ID, not {type}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:875
+#: netbox/extras/models/customfields.py:903
 #, python-brace-format
 #, python-brace-format
 msgid "Value must be a list of object IDs, not {type}"
 msgid "Value must be a list of object IDs, not {type}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:879
+#: netbox/extras/models/customfields.py:907
 #, python-brace-format
 #, python-brace-format
 msgid "Found invalid object ID: {id}"
 msgid "Found invalid object ID: {id}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:888
+#: netbox/extras/models/customfields.py:916
 #, python-brace-format
 #, python-brace-format
 msgid "Value does not conform to the assigned schema: {error}"
 msgid "Value does not conform to the assigned schema: {error}"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:892
+#: netbox/extras/models/customfields.py:920
 msgid "Required field cannot be empty."
 msgid "Required field cannot be empty."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:912
+#: netbox/extras/models/customfields.py:940
 msgid "Base set of predefined choices (optional)"
 msgid "Base set of predefined choices (optional)"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:924
+#: netbox/extras/models/customfields.py:952
 msgid "Choices are automatically ordered alphabetically"
 msgid "Choices are automatically ordered alphabetically"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:931
+#: netbox/extras/models/customfields.py:959
 msgid "custom field choice set"
 msgid "custom field choice set"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:932
+#: netbox/extras/models/customfields.py:960
 msgid "custom field choice sets"
 msgid "custom field choice sets"
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:992
+#: netbox/extras/models/customfields.py:1020
 msgid "Must define base or extra choices."
 msgid "Must define base or extra choices."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:998
+#: netbox/extras/models/customfields.py:1026
 msgid "Color mappings must be defined as a JSON object."
 msgid "Color mappings must be defined as a JSON object."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:1010
+#: netbox/extras/models/customfields.py:1038
 #, python-brace-format
 #, python-brace-format
 msgid "Duplicate value '{value}' found in extra choices."
 msgid "Duplicate value '{value}' found in extra choices."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:1027
+#: netbox/extras/models/customfields.py:1055
 #, python-brace-format
 #, python-brace-format
 msgid ""
 msgid ""
 "Color mappings must reference an existing choice value. Invalid value(s): "
 "Color mappings must reference an existing choice value. Invalid value(s): "
 "{values}."
 "{values}."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:1034
+#: netbox/extras/models/customfields.py:1062
 #, python-brace-format
 #, python-brace-format
 msgid "Invalid color value(s): {colors}. Use a supported named color."
 msgid "Invalid color value(s): {colors}. Use a supported named color."
 msgstr ""
 msgstr ""
 
 
-#: netbox/extras/models/customfields.py:1057
+#: netbox/extras/models/customfields.py:1085
 #, python-brace-format
 #, python-brace-format
 msgid ""
 msgid ""
 "Cannot remove choice {choice} as there are {model} objects which reference "
 "Cannot remove choice {choice} as there are {model} objects which reference "
@@ -10319,8 +10319,8 @@ msgstr ""
 #: netbox/extras/tables/tables.py:535 netbox/extras/tables/tables.py:565
 #: netbox/extras/tables/tables.py:535 netbox/extras/tables/tables.py:565
 #: netbox/extras/tables/tables.py:656 netbox/extras/tables/tables.py:712
 #: netbox/extras/tables/tables.py:656 netbox/extras/tables/tables.py:712
 #: netbox/netbox/forms/mixins.py:166 netbox/netbox/forms/mixins.py:191
 #: netbox/netbox/forms/mixins.py:166 netbox/netbox/forms/mixins.py:191
-#: netbox/netbox/tables/tables.py:343 netbox/netbox/tables/tables.py:358
-#: netbox/netbox/tables/tables.py:373 netbox/templates/generic/object.html:61
+#: netbox/netbox/tables/tables.py:406 netbox/netbox/tables/tables.py:421
+#: netbox/netbox/tables/tables.py:436 netbox/templates/generic/object.html:61
 #: netbox/users/forms/model_forms.py:556
 #: netbox/users/forms/model_forms.py:556
 msgid "Owner"
 msgid "Owner"
 msgstr ""
 msgstr ""
@@ -12539,8 +12539,8 @@ msgstr ""
 msgid "Owner group"
 msgid "Owner group"
 msgstr ""
 msgstr ""
 
 
-#: netbox/netbox/forms/mixins.py:182 netbox/netbox/tables/tables.py:339
-#: netbox/netbox/tables/tables.py:354 netbox/netbox/tables/tables.py:369
+#: netbox/netbox/forms/mixins.py:182 netbox/netbox/tables/tables.py:402
+#: netbox/netbox/tables/tables.py:417 netbox/netbox/tables/tables.py:432
 #: netbox/users/forms/model_forms.py:544
 #: netbox/users/forms/model_forms.py:544
 msgid "Owner Group"
 msgid "Owner Group"
 msgstr ""
 msgstr ""
@@ -13326,17 +13326,17 @@ msgstr ""
 msgid "Toggle Dropdown"
 msgid "Toggle Dropdown"
 msgstr ""
 msgstr ""
 
 
-#: netbox/netbox/tables/tables.py:62
+#: netbox/netbox/tables/tables.py:63
 #, python-brace-format
 #, python-brace-format
 msgid "No {model_name} found"
 msgid "No {model_name} found"
 msgstr ""
 msgstr ""
 
 
-#: netbox/netbox/tables/tables.py:399
+#: netbox/netbox/tables/tables.py:462
 #: netbox/templates/generic/bulk_import.html:148
 #: netbox/templates/generic/bulk_import.html:148
 msgid "Field"
 msgid "Field"
 msgstr ""
 msgstr ""
 
 
-#: netbox/netbox/tables/tables.py:402
+#: netbox/netbox/tables/tables.py:465
 #: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9
 #: netbox/templates/extras/panels/customfieldchoiceset_choices.html:9
 msgid "Value"
 msgid "Value"
 msgstr ""
 msgstr ""
@@ -15921,19 +15921,27 @@ msgstr ""
 msgid "tenant groups"
 msgid "tenant groups"
 msgstr ""
 msgstr ""
 
 
-#: netbox/tenancy/models/tenants.py:71
+#: netbox/tenancy/models/tenants.py:48
+#, python-brace-format
+msgid ""
+"Unable to delete tenant group {tenant_group}. Ungrouping its tenants, "
+"including those of any nested groups, would create duplicate tenant names or "
+"slugs."
+msgstr ""
+
+#: netbox/tenancy/models/tenants.py:89
 msgid "Tenant name must be unique per group."
 msgid "Tenant name must be unique per group."
 msgstr ""
 msgstr ""
 
 
-#: netbox/tenancy/models/tenants.py:81
+#: netbox/tenancy/models/tenants.py:99
 msgid "Tenant slug must be unique per group."
 msgid "Tenant slug must be unique per group."
 msgstr ""
 msgstr ""
 
 
-#: netbox/tenancy/models/tenants.py:89
+#: netbox/tenancy/models/tenants.py:107
 msgid "tenant"
 msgid "tenant"
 msgstr ""
 msgstr ""
 
 
-#: netbox/tenancy/models/tenants.py:90
+#: netbox/tenancy/models/tenants.py:108
 msgid "tenants"
 msgid "tenants"
 msgstr ""
 msgstr ""