Răsfoiți Sursa

Merge branch 'netbox-community:main' into 17542-Contact_Assignment_to_vpn_tunnels

Antoine Keranflec'h 11 luni în urmă
părinte
comite
bda4f314a4
100 a modificat fișierele cu 2096 adăugiri și 1828 ștergeri
  1. 1 1
      .github/ISSUE_TEMPLATE/01-feature_request.yaml
  2. 1 1
      .github/ISSUE_TEMPLATE/02-bug_report.yaml
  3. 1 1
      .tx/config
  4. 1 1
      CONTRIBUTING.md
  5. 2 1
      base_requirements.txt
  6. 1 1
      docs/configuration/required-parameters.md
  7. 1 1
      docs/customization/custom-links.md
  8. 24 3
      docs/development/release-checklist.md
  9. 1 1
      docs/development/style-guide.md
  10. 4 1
      docs/development/translations.md
  11. 2 2
      docs/integrations/graphql-api.md
  12. 1 1
      docs/integrations/rest-api.md
  13. 47 0
      docs/release-notes/version-4.2.md
  14. 2 0
      mkdocs.yml
  15. 5 0
      netbox/circuits/filtersets.py
  16. 6 1
      netbox/circuits/forms/filtersets.py
  17. 1 2
      netbox/circuits/models/circuits.py
  18. 1 1
      netbox/circuits/search.py
  19. 0 1
      netbox/circuits/tables/providers.py
  20. 22 2
      netbox/circuits/tests/test_filtersets.py
  21. 3 1
      netbox/circuits/views.py
  22. 4 1
      netbox/core/apps.py
  23. 2 0
      netbox/core/choices.py
  24. 2 0
      netbox/core/forms/filtersets.py
  25. 8 0
      netbox/core/plugins.py
  26. 5 3
      netbox/dcim/forms/bulk_edit.py
  27. 1 1
      netbox/dcim/forms/filtersets.py
  28. 8 0
      netbox/dcim/models/devices.py
  29. 1 1
      netbox/dcim/tables/devices.py
  30. 9 4
      netbox/dcim/tables/devicetypes.py
  31. 0 1
      netbox/dcim/tables/sites.py
  32. 21 21
      netbox/dcim/tables/template_code.py
  33. 7 47
      netbox/dcim/views.py
  34. 1 14
      netbox/extras/choices.py
  35. 5 6
      netbox/extras/constants.py
  36. 9 0
      netbox/extras/forms/filtersets.py
  37. 2 2
      netbox/extras/forms/reports.py
  38. 2 2
      netbox/extras/forms/scripts.py
  39. 6 1
      netbox/extras/management/commands/runscript.py
  40. 1 1
      netbox/extras/reports.py
  41. 1 1
      netbox/extras/scripts.py
  42. 1 0
      netbox/extras/tests/test_filtersets.py
  43. 62 6
      netbox/extras/views.py
  44. 7 0
      netbox/ipam/views.py
  45. 0 9
      netbox/netbox/forms/base.py
  46. 10 0
      netbox/netbox/forms/mixins.py
  47. 2 1
      netbox/netbox/models/__init__.py
  48. 2 1
      netbox/netbox/plugins/navigation.py
  49. 3 0
      netbox/netbox/tables/tables.py
  50. 30 0
      netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py
  51. 6 0
      netbox/netbox/tests/dummy_plugin/models.py
  52. 2 0
      netbox/netbox/tests/dummy_plugin/urls.py
  53. 18 1
      netbox/netbox/tests/dummy_plugin/views.py
  54. 23 0
      netbox/netbox/tests/test_models.py
  55. 0 0
      netbox/project-static/dist/netbox.css
  56. 0 0
      netbox/project-static/dist/netbox.js
  57. 0 0
      netbox/project-static/dist/netbox.js.map
  58. 5 4
      netbox/project-static/package.json
  59. 6 2
      netbox/project-static/src/buttons/selectMultiple.ts
  60. 3 1
      netbox/project-static/src/htmx.ts
  61. 157 151
      netbox/project-static/yarn.lock
  62. 2 2
      netbox/release.yaml
  63. 1 0
      netbox/templates/base/base.html
  64. 2 2
      netbox/templates/extras/inc/format_toggle.html
  65. 3 2
      netbox/templates/extras/object_render_config.html
  66. 1 1
      netbox/templates/extras/script_result.html
  67. 16 15
      netbox/templates/extras/tag.html
  68. 2 0
      netbox/templates/inc/panels/related_objects.html
  69. 0 75
      netbox/templates/virtualization/virtualmachine/render_config.html
  70. BIN
      netbox/translations/cs/LC_MESSAGES/django.mo
  71. 88 82
      netbox/translations/cs/LC_MESSAGES/django.po
  72. BIN
      netbox/translations/da/LC_MESSAGES/django.mo
  73. 114 105
      netbox/translations/da/LC_MESSAGES/django.po
  74. BIN
      netbox/translations/de/LC_MESSAGES/django.mo
  75. 100 110
      netbox/translations/de/LC_MESSAGES/django.po
  76. 181 172
      netbox/translations/en/LC_MESSAGES/django.po
  77. BIN
      netbox/translations/es/LC_MESSAGES/django.mo
  78. 125 106
      netbox/translations/es/LC_MESSAGES/django.po
  79. BIN
      netbox/translations/fr/LC_MESSAGES/django.mo
  80. 65 55
      netbox/translations/fr/LC_MESSAGES/django.po
  81. BIN
      netbox/translations/it/LC_MESSAGES/django.mo
  82. 113 99
      netbox/translations/it/LC_MESSAGES/django.po
  83. BIN
      netbox/translations/ja/LC_MESSAGES/django.mo
  84. 72 72
      netbox/translations/ja/LC_MESSAGES/django.po
  85. BIN
      netbox/translations/nl/LC_MESSAGES/django.mo
  86. 153 143
      netbox/translations/nl/LC_MESSAGES/django.po
  87. BIN
      netbox/translations/pl/LC_MESSAGES/django.mo
  88. 114 101
      netbox/translations/pl/LC_MESSAGES/django.po
  89. BIN
      netbox/translations/pt/LC_MESSAGES/django.mo
  90. 37 46
      netbox/translations/pt/LC_MESSAGES/django.po
  91. BIN
      netbox/translations/ru/LC_MESSAGES/django.mo
  92. 20 25
      netbox/translations/ru/LC_MESSAGES/django.po
  93. BIN
      netbox/translations/tr/LC_MESSAGES/django.mo
  94. 110 105
      netbox/translations/tr/LC_MESSAGES/django.po
  95. BIN
      netbox/translations/uk/LC_MESSAGES/django.mo
  96. 98 92
      netbox/translations/uk/LC_MESSAGES/django.po
  97. BIN
      netbox/translations/zh/LC_MESSAGES/django.mo
  98. 113 110
      netbox/translations/zh/LC_MESSAGES/django.po
  99. 6 2
      netbox/utilities/release.py
  100. 1 1
      netbox/utilities/serialization.py

+ 1 - 1
.github/ISSUE_TEMPLATE/01-feature_request.yaml

@@ -15,7 +15,7 @@ body:
     attributes:
     attributes:
       label: NetBox version
       label: NetBox version
       description: What version of NetBox are you currently running?
       description: What version of NetBox are you currently running?
-      placeholder: v4.2.2
+      placeholder: v4.2.4
     validations:
     validations:
       required: true
       required: true
   - type: dropdown
   - type: dropdown

+ 1 - 1
.github/ISSUE_TEMPLATE/02-bug_report.yaml

@@ -27,7 +27,7 @@ body:
     attributes:
     attributes:
       label: NetBox Version
       label: NetBox Version
       description: What version of NetBox are you currently running?
       description: What version of NetBox are you currently running?
-      placeholder: v4.2.2
+      placeholder: v4.2.4
     validations:
     validations:
       required: true
       required: true
   - type: dropdown
   - type: dropdown

+ 1 - 1
.tx/config

@@ -1,7 +1,7 @@
 [main]
 [main]
 host = https://app.transifex.com
 host = https://app.transifex.com
 
 
-[o:netbox-community:p:netbox:r:9cbf4fcf95b3d92e4ebbf1a5e5d1caee]
+[o:netbox-community:p:netbox:r:034999968a7366ba27a8bdf1ab63bf42]
 file_filter            = netbox/translations/<lang>/LC_MESSAGES/django.po
 file_filter            = netbox/translations/<lang>/LC_MESSAGES/django.po
 source_file            = netbox/translations/en/LC_MESSAGES/django.po
 source_file            = netbox/translations/en/LC_MESSAGES/django.po
 type                   = PO
 type                   = PO

+ 1 - 1
CONTRIBUTING.md

@@ -84,7 +84,7 @@ intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Poli
 
 
 * It's very important that you not submit a pull request until a relevant issue has been opened **and** assigned to you. Otherwise, you risk wasting time on work that may ultimately not be needed.
 * It's very important that you not submit a pull request until a relevant issue has been opened **and** assigned to you. Otherwise, you risk wasting time on work that may ultimately not be needed.
 
 
-* New pull requests should generally be based off of the `develop` branch, rather than `master`. The `develop` branch is used for ongoing development, while `master` is used for tracking stable releases. (If you're developing for an upcoming minor release, use `feature` instead.)
+* New pull requests should generally be based off of the `main` branch. This branch, in keeping with the [trunk-based development](https://trunkbaseddevelopment.com/) approach, is used for ongoing development and bug fixes and always represents the newest stable code, from which releases are periodically branched. (If you're developing for an upcoming minor release, use `feature` instead.)
 
 
 * In most cases, it is not necessary to add a changelog entry: A maintainer will take care of this when the PR is merged. (This helps avoid merge conflicts resulting from multiple PRs being submitted simultaneously.)
 * In most cases, it is not necessary to add a changelog entry: A maintainer will take care of this when the PR is merged. (This helps avoid merge conflicts resulting from multiple PRs being submitted simultaneously.)
 
 

+ 2 - 1
base_requirements.txt

@@ -88,7 +88,8 @@ mkdocs-material
 
 
 # Introspection for embedded code
 # Introspection for embedded code
 # https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md
 # https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md
-mkdocstrings[python-legacy]
+# See #18568
+mkdocstrings[python-legacy]==0.27.0
 
 
 # Library for manipulating IP prefixes and addresses
 # Library for manipulating IP prefixes and addresses
 # https://github.com/netaddr/netaddr/blob/master/CHANGELOG.rst
 # https://github.com/netaddr/netaddr/blob/master/CHANGELOG.rst

+ 1 - 1
docs/configuration/required-parameters.md

@@ -2,7 +2,7 @@
 
 
 ## ALLOWED_HOSTS
 ## ALLOWED_HOSTS
 
 
-This is a list of valid fully-qualified domain names (FQDNs) and/or IP addresses that can be used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different; for example, when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server. To help guard against [HTTP Host header attackes](https://docs.djangoproject.com/en/3.0/topics/security/#host-headers-virtual-hosting), NetBox will not permit access to the server via any other hostnames (or IPs).
+This is a list of valid fully-qualified domain names (FQDNs) and/or IP addresses that can be used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different; for example, when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server. To help guard against [HTTP Host header attacks](https://docs.djangoproject.com/en/3.0/topics/security/#host-headers-virtual-hosting), NetBox will not permit access to the server via any other hostnames (or IPs).
 
 
 !!! note
 !!! note
     This parameter must always be defined as a list or tuple, even if only a single value is provided.
     This parameter must always be defined as a list or tuple, even if only a single value is provided.

+ 1 - 1
docs/customization/custom-links.md

@@ -2,7 +2,7 @@
 
 
 Custom links allow users to display arbitrary hyperlinks to external content within NetBox object views. These are helpful for cross-referencing related records in systems outside NetBox. For example, you might create a custom link on the device view which links to the current device in a Network Monitoring System (NMS).
 Custom links allow users to display arbitrary hyperlinks to external content within NetBox object views. These are helpful for cross-referencing related records in systems outside NetBox. For example, you might create a custom link on the device view which links to the current device in a Network Monitoring System (NMS).
 
 
-Custom links are created by navigating to Customization > Custom Links. Each link is associated with a particular NetBox object type (site, device, prefix, etc.) and will be displayed on relevant views. Each link has display text and a URL, and data from the NetBox item being viewed can be included in the link using [Jinja2 template code](https://jinja2docs.readthedocs.io/en/stable/) through the variable `object`, and custom fields through `object.cf`.
+Custom links are created by navigating to Customization > Custom Links. Each link is associated with a particular NetBox object type (site, device, prefix, etc.) and will be displayed on relevant views. Each link has display text and a URL, and data from the NetBox item being viewed can be included in the link using [Jinja template code](https://jinja.palletsprojects.com/en/stable/) through the variable `object`, and custom fields through `object.cf`.
 
 
 For example, you might define a link like this:
 For example, you might define a link like this:
 
 

+ 24 - 3
docs/development/release-checklist.md

@@ -8,6 +8,8 @@ This documentation describes the process of packaging and publishing a new NetBo
 
 
 While major releases generally introduce some very substantial change to the application, they are typically treated the same as minor version increments for the purpose of release packaging.
 While major releases generally introduce some very substantial change to the application, they are typically treated the same as minor version increments for the purpose of release packaging.
 
 
+For patch releases (e.g. upgrading from v4.2.2 to v4.2.3), begin at the [patch releases](#patch-releases) heading below. For minor or major releases, complete the entire checklist.
+
 ## Minor Version Releases
 ## Minor Version Releases
 
 
 ### Address Constrained Dependencies
 ### Address Constrained Dependencies
@@ -85,7 +87,20 @@ In cases where upgrading a dependency to its most recent release is breaking, it
 
 
 ### Update UI Dependencies
 ### Update UI Dependencies
 
 
-Check whether any UI dependencies (JavaScript packages, fonts, etc.) need to be updated by running `yarn outdated` from within the `project-static/` directory. [Upgrade these dependencies](./web-ui.md#updating-dependencies) as necessary, then run `yarn bundle` to generate the necessary files for distribution.
+Check whether any UI dependencies (JavaScript packages, fonts, etc.) need to be updated by running `yarn outdated` from within the `project-static/` directory. [Upgrade these dependencies](./web-ui.md#updating-dependencies) as necessary, then run `yarn bundle` to generate the necessary files for distribution:
+
+```
+$ yarn bundle
+yarn run v1.22.19
+$ node bundle.js
+✅ Bundled source file 'styles/external.scss' to 'netbox-external.css'
+✅ Bundled source file 'styles/netbox.scss' to 'netbox.css'
+✅ Bundled source file 'styles/svg/rack_elevation.scss' to 'rack_elevation.css'
+✅ Bundled source file 'styles/svg/cable_trace.scss' to 'cable_trace.css'
+✅ Bundled source file 'index.ts' to 'netbox.js'
+✅ Copied graphiql files
+Done in 1.00s.
+```
 
 
 ### Rebuild the Device Type Definition Schema
 ### Rebuild the Device Type Definition Schema
 
 
@@ -116,9 +131,12 @@ Then, compile these portable (`.po`) files for use in the application:
 
 
 ### Update Version and Changelog
 ### Update Version and Changelog
 
 
-* Update the version and published date in `release.yaml` with the current version & date. Add a designation (e.g.g `beta1`) if applicable.
+* Update the version number and date in `netbox/release.yaml`. Add or remove the designation (e.g. `beta1`) if applicable.
 * Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`.
 * Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`.
-* Replace the "FUTURE" placeholder in the release notes with the current date.
+* Add a section for this release at the top of the changelog page for the minor version (e.g. `docs/release-notes/version-4.2.md`) listing all relevant changes made in this release.
+
+!!! tip
+    Put yourself in the shoes of the user when recording change notes. Focus on the effect that each change has for the end user, rather than the specific bits of code that were modified in a PR. Ensure that each message conveys meaning absent context of the initial feature request or bug report. Remember to include key words or phrases (such as exception names) that can be easily searched.
 
 
 ### Submit a Pull Request
 ### Submit a Pull Request
 
 
@@ -126,6 +144,9 @@ Commit the above changes and submit a pull request titled **"Release vX.Y.Z"** t
 
 
 Once CI has completed and a colleague has reviewed the PR, merge it. This effects a new release in the `main` branch.
 Once CI has completed and a colleague has reviewed the PR, merge it. This effects a new release in the `main` branch.
 
 
+!!! warning
+    To ensure a streamlined review process, the pull request for a release **must** be limited to the changes outlined in this document. A release PR must never include functional changes to the application: Any unrelated "cleanup" needs to be captured in a separate PR prior to the release being shipped.
+
 ### Create a New Release
 ### Create a New Release
 
 
 Create a [new release](https://github.com/netbox-community/netbox/releases/new) on GitHub with the following parameters.
 Create a [new release](https://github.com/netbox-community/netbox/releases/new) on GitHub with the following parameters.

+ 1 - 1
docs/development/style-guide.md

@@ -22,7 +22,7 @@ NetBox generally follows the [Django style guide](https://docs.djangoproject.com
 
 
 ### Linting
 ### Linting
 
 
-The [ruff](https://docs.astral.sh/ruff/) linter is used to enforce code style. A [pre-commit hook](./getting-started.md#3-enable-pre-commit-hooks) which runs this automatically is included with NetBox. To invoke `ruff` manually, run:
+The [ruff](https://docs.astral.sh/ruff/) linter is used to enforce code style, and is run automatically by [pre-commit](./getting-started.md#5-install-pre-commit). To invoke `ruff` manually, run:
 
 
 ```
 ```
 ruff check netbox/
 ruff check netbox/

+ 4 - 1
docs/development/translations.md

@@ -30,7 +30,7 @@ To download translated strings automatically, you'll need to:
 1. Install the [Transifex CLI client](https://github.com/transifex/cli)
 1. Install the [Transifex CLI client](https://github.com/transifex/cli)
 2. Generate a [Transifex API token](https://app.transifex.com/user/settings/api/)
 2. Generate a [Transifex API token](https://app.transifex.com/user/settings/api/)
 
 
-Once you have the client set up, run the following command:
+Once you have the client set up, run the following command from the project root (e.g. `/opt/netbox/`):
 
 
 ```no-highlight
 ```no-highlight
 TX_TOKEN=$TOKEN tx pull
 TX_TOKEN=$TOKEN tx pull
@@ -46,6 +46,9 @@ Once retrieved, the updated strings need to be compiled into new `.mo` files so
 
 
 Once any new `.mo` files have been generated, they need to be committed and pushed back up to GitHub. (Again, this is typically done as part of publishing a new NetBox release.)
 Once any new `.mo` files have been generated, they need to be committed and pushed back up to GitHub. (Again, this is typically done as part of publishing a new NetBox release.)
 
 
+!!! tip
+    Run `git status` to check that both `*.mo` & `*.po` files have been updated as expected.
+
 ## Proposing New Languages
 ## Proposing New Languages
 
 
 If you'd like to add support for a new language to NetBox, the first step is to [submit a GitHub issue](https://github.com/netbox-community/netbox/issues/new?assignees=&labels=type%3A+translation&projects=&template=translation.yaml) to capture the proposal. While we'd like to add as many languages as possible, we do need to limit the rate at which new languages are added. New languages will be selected according to community interest and the number of volunteers who sign up as translators.
 If you'd like to add support for a new language to NetBox, the first step is to [submit a GitHub issue](https://github.com/netbox-community/netbox/issues/new?assignees=&labels=type%3A+translation&projects=&template=translation.yaml) to capture the proposal. While we'd like to add as many languages as possible, we do need to limit the rate at which new languages are added. New languages will be selected according to community interest and the number of volunteers who sign up as translators.

+ 2 - 2
docs/integrations/graphql-api.md

@@ -1,6 +1,6 @@
 # GraphQL API Overview
 # GraphQL API Overview
 
 
-NetBox provides a read-only [GraphQL](https://graphql.org/) API to complement its REST API. This API is powered by [Strawberry Django](https://strawberry-graphql.github.io/strawberry-django/).
+NetBox provides a read-only [GraphQL](https://graphql.org/) API to complement its REST API. This API is powered by [Strawberry Django](https://strawberry.rocks/).
 
 
 ## Queries
 ## Queries
 
 
@@ -47,7 +47,7 @@ NetBox provides both a singular and plural query field for each object type:
 
 
 For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
 For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
 
 
-For more detail on constructing GraphQL queries, see the [GraphQL queries documentation](https://graphql.org/learn/queries/).  For filtering and lookup syntax, please refer to the [Strawberry Django documentation](https://strawberry-graphql.github.io/strawberry-django/guide/filters/).
+For more detail on constructing GraphQL queries, see the [GraphQL queries documentation](https://graphql.org/learn/queries/).  For filtering and lookup syntax, please refer to the [Strawberry Django documentation](https://strawberry.rocks/docs/django/guide/filters).
 
 
 ## Filtering
 ## Filtering
 
 

+ 1 - 1
docs/integrations/rest-api.md

@@ -2,7 +2,7 @@
 
 
 ## What is a REST API?
 ## What is a REST API?
 
 
-REST stands for [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer). It's a particular type of API which employs HTTP requests and [JavaScript Object Notation (JSON)](https://www.json.org/) to facilitate create, retrieve, update, and delete (CRUD) operations on objects within an application. Each type of operation is associated with a particular HTTP verb:
+REST stands for [representational state transfer](https://en.wikipedia.org/wiki/REST). It's a particular type of API which employs HTTP requests and [JavaScript Object Notation (JSON)](https://www.json.org/) to facilitate create, retrieve, update, and delete (CRUD) operations on objects within an application. Each type of operation is associated with a particular HTTP verb:
 
 
 * `GET`: Retrieve an object or list of objects
 * `GET`: Retrieve an object or list of objects
 * `POST`: Create an object
 * `POST`: Create an object

+ 47 - 0
docs/release-notes/version-4.2.md

@@ -1,5 +1,52 @@
 # NetBox v4.2
 # NetBox v4.2
 
 
+## v4.2.4 (2025-02-21)
+
+### Enhancements
+
+* [#17309](https://github.com/netbox-community/netbox/issues/17309) - Omit empty counts in related object tables
+* [#18277](https://github.com/netbox-community/netbox/issues/18277) - Improve multi-table inheritance in serialization of change-logged models
+* [#18286](https://github.com/netbox-community/netbox/issues/18286) - Add more job duration choices
+* [#18357](https://github.com/netbox-community/netbox/issues/18357) - Display author name in plugin list for locally installed plugins
+* [#18408](https://github.com/netbox-community/netbox/issues/18408) - Add Paused status for virtual machines
+* [#18584](https://github.com/netbox-community/netbox/issues/18584) - Add rack type column to manufacturer list
+
+### Bug Fixes
+
+* [#17436](https://github.com/netbox-community/netbox/issues/17436) - Fix {module} replacement in module bays
+* [#18013](https://github.com/netbox-community/netbox/issues/18013) - Limit object type to selected object in change log filter
+* [#18241](https://github.com/netbox-community/netbox/issues/18241) - Default logging level of custom scripts changed to INFO
+* [#18247](https://github.com/netbox-community/netbox/issues/18247) - Fix visibility of disabled cable paths in dark mode
+* [#18480](https://github.com/netbox-community/netbox/issues/18480) - Clean data passed to script in runscript command
+* [#18555](https://github.com/netbox-community/netbox/issues/18555) - Add default get_absolute_url method to plugin models
+* [#18585](https://github.com/netbox-community/netbox/issues/18585) - Fix filtering circuits by location
+* [#18593](https://github.com/netbox-community/netbox/issues/18593) - Fix "Create & Add Another" IP Address workflow
+* [#18594](https://github.com/netbox-community/netbox/issues/18594) - Enable sorting by ASN count on site and provider lists
+* [#18619](https://github.com/netbox-community/netbox/issues/18619) - Ensure shift-click selection selects only visible list items
+* [#18674](https://github.com/netbox-community/netbox/issues/18674) - Preserve form values when selecting speed on circuit termination
+
+---
+
+## v4.2.3 (2025-02-04)
+
+### Enhancements
+
+* [#18518](https://github.com/netbox-community/netbox/issues/18518) - Add a "hostname" `<meta>` tag to the page header
+
+### Bug Fixes
+
+* [#18497](https://github.com/netbox-community/netbox/issues/18497) - Fix unhandled `FieldDoesNotExist` exception when search results include virtual circuit
+* [#18433](https://github.com/netbox-community/netbox/issues/18433) - Fix MAC address not shown as "primary for interface" in MAC address detail view
+* [#18154](https://github.com/netbox-community/netbox/issues/18154) - Allow anonymous users to change default table preferences
+* [#18515](https://github.com/netbox-community/netbox/issues/18515) - Fix Django `collectstatic` management command in debug mode with Redis not running
+* [#18456](https://github.com/netbox-community/netbox/issues/18456) - Avoid duplicate MAC Address column in interface tables
+* [#18447](https://github.com/netbox-community/netbox/issues/18447) - Fix `FieldError` exception when sorting interface tables on MAC Address columns 
+* [#18438](https://github.com/netbox-community/netbox/issues/18438) - Improve performance in IPAM migration `0072_prefix_cached_relations` when upgrading from v4.1 or earlier
+* [#18436](https://github.com/netbox-community/netbox/issues/18436) - Reset primary MAC address when unassigning MAC address from interface
+* [#18181](https://github.com/netbox-community/netbox/issues/18181) - Fix "Create & Add Another" workflow when adding IP addresses to interfaces
+
+---
+
 ## v4.2.2 (2025-01-17)
 ## v4.2.2 (2025-01-17)
 
 
 ### Bug Fixes
 ### Bug Fixes

+ 2 - 0
mkdocs.yml

@@ -64,6 +64,8 @@ markdown_extensions:
             format: !!python/name:pymdownx.superfences.fence_code_format
             format: !!python/name:pymdownx.superfences.fence_code_format
     - pymdownx.tabbed:
     - pymdownx.tabbed:
         alternate_style: true
         alternate_style: true
+not_in_nav: |
+    /index.md
 nav:
 nav:
     - Introduction: 'introduction.md'
     - Introduction: 'introduction.md'
     - Features:
     - Features:

+ 5 - 0
netbox/circuits/filtersets.py

@@ -234,6 +234,11 @@ class CircuitFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilte
         to_field_name='slug',
         to_field_name='slug',
         label=_('Site (slug)'),
         label=_('Site (slug)'),
     )
     )
+    location_id = django_filters.ModelMultipleChoiceFilter(
+        field_name='terminations___location',
+        label=_('Location (ID)'),
+        queryset=Location.objects.all(),
+    )
     termination_a_id = django_filters.ModelMultipleChoiceFilter(
     termination_a_id = django_filters.ModelMultipleChoiceFilter(
         queryset=CircuitTermination.objects.all(),
         queryset=CircuitTermination.objects.all(),
         label=_('Termination A (ID)'),
         label=_('Termination A (ID)'),

+ 6 - 1
netbox/circuits/forms/filtersets.py

@@ -126,7 +126,7 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFi
             'type_id', 'status', 'install_date', 'termination_date', 'commit_rate', 'distance', 'distance_unit',
             'type_id', 'status', 'install_date', 'termination_date', 'commit_rate', 'distance', 'distance_unit',
             name=_('Attributes')
             name=_('Attributes')
         ),
         ),
-        FieldSet('region_id', 'site_group_id', 'site_id', name=_('Location')),
+        FieldSet('region_id', 'site_group_id', 'site_id', 'location_id', name=_('Location')),
         FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')),
         FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')),
         FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts')),
         FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts')),
     )
     )
@@ -181,6 +181,11 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFi
         },
         },
         label=_('Site')
         label=_('Site')
     )
     )
+    location_id = DynamicModelMultipleChoiceField(
+        queryset=Location.objects.all(),
+        required=False,
+        label=_('Location')
+    )
     install_date = forms.DateField(
     install_date = forms.DateField(
         label=_('Install date'),
         label=_('Install date'),
         required=False,
         required=False,

+ 1 - 2
netbox/circuits/models/circuits.py

@@ -349,9 +349,8 @@ class CircuitTermination(
     def clean(self):
     def clean(self):
         super().clean()
         super().clean()
 
 
-        # Must define either site *or* provider network
         if self.termination is None:
         if self.termination is None:
-            raise ValidationError(_("A circuit termination must attach to termination."))
+            raise ValidationError(_("A circuit termination must attach to a terminating object."))
 
 
     def save(self, *args, **kwargs):
     def save(self, *args, **kwargs):
         # Cache objects associated with the terminating object (for filtering)
         # Cache objects associated with the terminating object (for filtering)

+ 1 - 1
netbox/circuits/search.py

@@ -90,7 +90,7 @@ class VirtualCircuitIndex(SearchIndex):
         ('description', 500),
         ('description', 500),
         ('comments', 5000),
         ('comments', 5000),
     )
     )
-    display_attrs = ('provider', 'provider_network', 'provider_account', 'status', 'tenant', 'description')
+    display_attrs = ('provider_network', 'provider_account', 'status', 'tenant', 'description')
 
 
 
 
 @register_search
 @register_search

+ 0 - 1
netbox/circuits/tables/providers.py

@@ -33,7 +33,6 @@ class ProviderTable(ContactsColumnMixin, NetBoxTable):
         verbose_name=_('ASNs')
         verbose_name=_('ASNs')
     )
     )
     asn_count = columns.LinkedCountColumn(
     asn_count = columns.LinkedCountColumn(
-        accessor=tables.A('asns__count'),
         viewname='ipam:asn_list',
         viewname='ipam:asn_list',
         url_params={'provider_id': 'pk'},
         url_params={'provider_id': 'pk'},
         verbose_name=_('ASN Count')
         verbose_name=_('ASN Count')

+ 22 - 2
netbox/circuits/tests/test_filtersets.py

@@ -3,8 +3,10 @@ from django.test import TestCase
 from circuits.choices import *
 from circuits.choices import *
 from circuits.filtersets import *
 from circuits.filtersets import *
 from circuits.models import *
 from circuits.models import *
-from dcim.choices import InterfaceTypeChoices
-from dcim.models import Cable, Device, DeviceRole, DeviceType, Interface, Manufacturer, Region, Site, SiteGroup
+from dcim.choices import InterfaceTypeChoices, LocationStatusChoices
+from dcim.models import (
+    Cable, Device, DeviceRole, DeviceType, Interface, Location, Manufacturer, Region, Site, SiteGroup
+)
 from ipam.models import ASN, RIR
 from ipam.models import ASN, RIR
 from netbox.choices import DistanceUnitChoices
 from netbox.choices import DistanceUnitChoices
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
@@ -225,6 +227,17 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
         )
         )
         ProviderNetwork.objects.bulk_create(provider_networks)
         ProviderNetwork.objects.bulk_create(provider_networks)
 
 
+        locations = (
+            Location.objects.create(
+                site=sites[0], name='Test Location 1', slug='test-location-1',
+                status=LocationStatusChoices.STATUS_ACTIVE,
+            ),
+            Location.objects.create(
+                site=sites[1], name='Test Location 2', slug='test-location-2',
+                status=LocationStatusChoices.STATUS_ACTIVE,
+            ),
+        )
+
         circuits = (
         circuits = (
             Circuit(
             Circuit(
                 provider=providers[0],
                 provider=providers[0],
@@ -305,7 +318,9 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
 
 
         circuit_terminations = ((
         circuit_terminations = ((
             CircuitTermination(circuit=circuits[0], termination=sites[0], term_side='A'),
             CircuitTermination(circuit=circuits[0], termination=sites[0], term_side='A'),
+            CircuitTermination(circuit=circuits[0], termination=locations[0], term_side='Z'),
             CircuitTermination(circuit=circuits[1], termination=sites[1], term_side='A'),
             CircuitTermination(circuit=circuits[1], termination=sites[1], term_side='A'),
+            CircuitTermination(circuit=circuits[1], termination=locations[1], term_side='Z'),
             CircuitTermination(circuit=circuits[2], termination=sites[2], term_side='A'),
             CircuitTermination(circuit=circuits[2], termination=sites[2], term_side='A'),
             CircuitTermination(circuit=circuits[3], termination=provider_networks[0], term_side='A'),
             CircuitTermination(circuit=circuits[3], termination=provider_networks[0], term_side='A'),
             CircuitTermination(circuit=circuits[4], termination=provider_networks[1], term_side='A'),
             CircuitTermination(circuit=circuits[4], termination=provider_networks[1], term_side='A'),
@@ -395,6 +410,11 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'site': [sites[0].slug, sites[1].slug]}
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
+    def test_location(self):
+        location_ids = Location.objects.values_list('id', flat=True)[:2]
+        params = {'location_id': location_ids}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
     def test_tenant(self):
     def test_tenant(self):
         tenants = Tenant.objects.all()[:2]
         tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}

+ 3 - 1
netbox/circuits/views.py

@@ -4,6 +4,7 @@ from django.shortcuts import get_object_or_404, redirect, render
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
 from dcim.views import PathTraceView
 from dcim.views import PathTraceView
+from ipam.models import ASN
 from netbox.views import generic
 from netbox.views import generic
 from tenancy.views import ObjectContactsView
 from tenancy.views import ObjectContactsView
 from utilities.forms import ConfirmationForm
 from utilities.forms import ConfirmationForm
@@ -20,7 +21,8 @@ from .models import *
 @register_model_view(Provider, 'list', path='', detail=False)
 @register_model_view(Provider, 'list', path='', detail=False)
 class ProviderListView(generic.ObjectListView):
 class ProviderListView(generic.ObjectListView):
     queryset = Provider.objects.annotate(
     queryset = Provider.objects.annotate(
-        count_circuits=count_related(Circuit, 'provider')
+        count_circuits=count_related(Circuit, 'provider'),
+        asn_count=count_related(ASN, 'providers'),
     )
     )
     filterset = filtersets.ProviderFilterSet
     filterset = filtersets.ProviderFilterSet
     filterset_form = forms.ProviderFilterForm
     filterset_form = forms.ProviderFilterForm

+ 4 - 1
netbox/core/apps.py

@@ -28,4 +28,7 @@ class CoreConfig(AppConfig):
 
 
         # Clear Redis cache on startup in development mode
         # Clear Redis cache on startup in development mode
         if settings.DEBUG:
         if settings.DEBUG:
-            cache.clear()
+            try:
+                cache.clear()
+            except Exception:
+                pass

+ 2 - 0
netbox/core/choices.py

@@ -81,8 +81,10 @@ class JobIntervalChoices(ChoiceSet):
     CHOICES = (
     CHOICES = (
         (INTERVAL_MINUTELY, _('Minutely')),
         (INTERVAL_MINUTELY, _('Minutely')),
         (INTERVAL_HOURLY, _('Hourly')),
         (INTERVAL_HOURLY, _('Hourly')),
+        (INTERVAL_HOURLY * 12, _('12 hours')),
         (INTERVAL_DAILY, _('Daily')),
         (INTERVAL_DAILY, _('Daily')),
         (INTERVAL_WEEKLY, _('Weekly')),
         (INTERVAL_WEEKLY, _('Weekly')),
+        (INTERVAL_DAILY * 30, _('30 days')),
     )
     )
 
 
 
 

+ 2 - 0
netbox/core/forms/filtersets.py

@@ -62,6 +62,7 @@ class DataFileFilterForm(NetBoxModelFilterSetForm):
 
 
 
 
 class JobFilterForm(SavedFiltersMixin, FilterForm):
 class JobFilterForm(SavedFiltersMixin, FilterForm):
+    model = Job
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('object_type', 'status', name=_('Attributes')),
         FieldSet('object_type', 'status', name=_('Attributes')),
@@ -162,6 +163,7 @@ class ObjectChangeFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
 class ConfigRevisionFilterForm(SavedFiltersMixin, FilterForm):
+    model = ConfigRevision
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
     )
     )

+ 8 - 0
netbox/core/plugins.py

@@ -80,6 +80,13 @@ def get_local_plugins(plugins=None):
         plugin = importlib.import_module(plugin_name)
         plugin = importlib.import_module(plugin_name)
         plugin_config: PluginConfig = plugin.config
         plugin_config: PluginConfig = plugin.config
 
 
+        if plugin_config.author:
+            author = PluginAuthor(
+                name=plugin_config.author,
+            )
+        else:
+            author = None
+
         local_plugins[plugin_config.name] = Plugin(
         local_plugins[plugin_config.name] = Plugin(
             config_name=plugin_config.name,
             config_name=plugin_config.name,
             title_short=plugin_config.verbose_name,
             title_short=plugin_config.verbose_name,
@@ -88,6 +95,7 @@ def get_local_plugins(plugins=None):
             description_short=plugin_config.description,
             description_short=plugin_config.description,
             is_local=True,
             is_local=True,
             is_installed=True,
             is_installed=True,
+            author=author,
             installed_version=plugin_config.version,
             installed_version=plugin_config.version,
         )
         )
 
 

+ 5 - 3
netbox/dcim/forms/bulk_edit.py

@@ -1411,7 +1411,7 @@ class InterfaceBulkEditForm(
     form_from_model(Interface, [
     form_from_model(Interface, [
         'label', 'type', 'parent', 'bridge', 'lag', 'speed', 'duplex', 'wwn', 'mtu', 'mgmt_only', 'mark_connected',
         'label', 'type', 'parent', 'bridge', 'lag', 'speed', 'duplex', 'wwn', 'mtu', 'mgmt_only', 'mark_connected',
         'description', 'mode', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
         'description', 'mode', 'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
-        'wireless_lans'
+        'wireless_lans', 'vlan_translation_policy'
     ])
     ])
 ):
 ):
     enabled = forms.NullBooleanField(
     enabled = forms.NullBooleanField(
@@ -1564,7 +1564,9 @@ class InterfaceBulkEditForm(
         FieldSet('vdcs', 'mtu', 'tx_power', 'enabled', 'mgmt_only', 'mark_connected', name=_('Operation')),
         FieldSet('vdcs', 'mtu', 'tx_power', 'enabled', 'mgmt_only', 'mark_connected', name=_('Operation')),
         FieldSet('poe_mode', 'poe_type', name=_('PoE')),
         FieldSet('poe_mode', 'poe_type', name=_('PoE')),
         FieldSet('parent', 'bridge', 'lag', name=_('Related Interfaces')),
         FieldSet('parent', 'bridge', 'lag', name=_('Related Interfaces')),
-        FieldSet('mode', 'vlan_group', 'untagged_vlan', 'qinq_svlan', name=_('802.1Q Switching')),
+        FieldSet(
+            'mode', 'vlan_group', 'untagged_vlan', 'qinq_svlan', 'vlan_translation_policy', name=_('802.1Q Switching')
+        ),
         FieldSet(
         FieldSet(
             TabbedGroups(
             TabbedGroups(
                 FieldSet('tagged_vlans', name=_('Assignment')),
                 FieldSet('tagged_vlans', name=_('Assignment')),
@@ -1579,7 +1581,7 @@ class InterfaceBulkEditForm(
     nullable_fields = (
     nullable_fields = (
         'module', 'label', 'parent', 'bridge', 'lag', 'speed', 'duplex', 'wwn', 'vdcs', 'mtu', 'description',
         'module', 'label', 'parent', 'bridge', 'lag', 'speed', 'duplex', 'wwn', 'vdcs', 'mtu', 'description',
         'poe_mode', 'poe_type', 'mode', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
         'poe_mode', 'poe_type', 'mode', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power',
-        'untagged_vlan', 'tagged_vlans', 'qinq_svlan', 'vrf', 'wireless_lans'
+        'untagged_vlan', 'tagged_vlans', 'qinq_svlan', 'vrf', 'wireless_lans', 'vlan_translation_policy',
     )
     )
 
 
     def __init__(self, *args, **kwargs):
     def __init__(self, *args, **kwargs):

+ 1 - 1
netbox/dcim/forms/filtersets.py

@@ -303,7 +303,7 @@ class RackTypeFilterForm(RackBaseFilterForm):
     model = RackType
     model = RackType
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id', 'tag'),
         FieldSet('q', 'filter_id', 'tag'),
-        FieldSet('form_factor', 'width', 'u_height', name=_('Rack Type')),
+        FieldSet('manufacturer_id', 'form_factor', 'width', 'u_height', name=_('Rack Type')),
         FieldSet('starting_unit', 'desc_units', name=_('Numbering')),
         FieldSet('starting_unit', 'desc_units', name=_('Numbering')),
         FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')),
         FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')),
     )
     )

+ 8 - 0
netbox/dcim/models/devices.py

@@ -1298,6 +1298,7 @@ class Module(PrimaryModel, ConfigContextModel):
             else:
             else:
                 # ModuleBays must be saved individually for MPTT
                 # ModuleBays must be saved individually for MPTT
                 for instance in create_instances:
                 for instance in create_instances:
+                    instance.name = instance.name.replace(MODULE_TOKEN, str(self.module_bay.position))
                     instance.save()
                     instance.save()
 
 
             update_fields = ['module']
             update_fields = ['module']
@@ -1531,6 +1532,13 @@ class MACAddress(PrimaryModel):
         self._original_assigned_object_id = self.__dict__.get('assigned_object_id')
         self._original_assigned_object_id = self.__dict__.get('assigned_object_id')
         self._original_assigned_object_type_id = self.__dict__.get('assigned_object_type_id')
         self._original_assigned_object_type_id = self.__dict__.get('assigned_object_type_id')
 
 
+    @cached_property
+    def is_primary(self):
+        if self.assigned_object and hasattr(self.assigned_object, 'primary_mac_address'):
+            if self.assigned_object.primary_mac_address and self.assigned_object.primary_mac_address.pk == self.pk:
+                return True
+        return False
+
     def clean(self, *args, **kwargs):
     def clean(self, *args, **kwargs):
         super().clean()
         super().clean()
         if self._original_assigned_object_id and self._original_assigned_object_type_id:
         if self._original_assigned_object_id and self._original_assigned_object_type_id:

+ 1 - 1
netbox/dcim/tables/devices.py

@@ -671,7 +671,7 @@ class InterfaceTable(BaseInterfaceTable, ModularDeviceComponentTable, PathEndpoi
             'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'description',
             'rf_role', 'rf_channel', 'rf_channel_frequency', 'rf_channel_width', 'tx_power', 'description',
             'mark_connected', 'cable', 'cable_color', 'wireless_link', 'wireless_lans', 'link_peer', 'connection',
             'mark_connected', 'cable', 'cable_color', 'wireless_link', 'wireless_lans', 'link_peer', 'connection',
             'tags', 'vdcs', 'vrf', 'l2vpn', 'tunnel', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans',
             'tags', 'vdcs', 'vrf', 'l2vpn', 'tunnel', 'ip_addresses', 'fhrp_groups', 'untagged_vlan', 'tagged_vlans',
-            'qinq_svlan', 'inventory_items', 'created', 'last_updated',
+            'qinq_svlan', 'inventory_items', 'created', 'last_updated', 'vlan_translation_policy'
         )
         )
         default_columns = ('pk', 'name', 'device', 'label', 'enabled', 'type', 'description')
         default_columns = ('pk', 'name', 'device', 'label', 'enabled', 'type', 'description')
 
 

+ 9 - 4
netbox/dcim/tables/devicetypes.py

@@ -31,6 +31,11 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable):
         verbose_name=_('Name'),
         verbose_name=_('Name'),
         linkify=True
         linkify=True
     )
     )
+    racktype_count = columns.LinkedCountColumn(
+        viewname='dcim:racktype_list',
+        url_params={'manufacturer_id': 'pk'},
+        verbose_name=_('Rack Types')
+    )
     devicetype_count = columns.LinkedCountColumn(
     devicetype_count = columns.LinkedCountColumn(
         viewname='dcim:devicetype_list',
         viewname='dcim:devicetype_list',
         url_params={'manufacturer_id': 'pk'},
         url_params={'manufacturer_id': 'pk'},
@@ -58,12 +63,12 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable):
     class Meta(NetBoxTable.Meta):
     class Meta(NetBoxTable.Meta):
         model = models.Manufacturer
         model = models.Manufacturer
         fields = (
         fields = (
-            'pk', 'id', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count',
-            'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated',
+            'pk', 'id', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count',
+            'platform_count', 'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated',
         )
         )
         default_columns = (
         default_columns = (
-            'pk', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count',
-            'description', 'slug',
+            'pk', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count',
+            'platform_count', 'description', 'slug',
         )
         )
 
 
 
 

+ 0 - 1
netbox/dcim/tables/sites.py

@@ -94,7 +94,6 @@ class SiteTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
         verbose_name=_('ASNs')
         verbose_name=_('ASNs')
     )
     )
     asn_count = columns.LinkedCountColumn(
     asn_count = columns.LinkedCountColumn(
-        accessor=tables.A('asns__count'),
         viewname='ipam:asn_list',
         viewname='ipam:asn_list',
         url_params={'site_id': 'pk'},
         url_params={'site_id': 'pk'},
         verbose_name=_('ASN Count')
         verbose_name=_('ASN Count')

+ 21 - 21
netbox/dcim/tables/template_code.py

@@ -159,8 +159,8 @@ CONSOLEPORT_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     <span class="dropdown">
     <span class="dropdown">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
@@ -172,7 +172,7 @@ CONSOLEPORT_BUTTONS = """
         </ul>
         </ul>
     </span>
     </span>
 {% else %}
 {% else %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
 {% endif %}
 {% endif %}
 """
 """
 
 
@@ -209,8 +209,8 @@ CONSOLESERVERPORT_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     <span class="dropdown">
     <span class="dropdown">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
@@ -222,7 +222,7 @@ CONSOLESERVERPORT_BUTTONS = """
         </ul>
         </ul>
     </span>
     </span>
 {% else %}
 {% else %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
 {% endif %}
 {% endif %}
 """
 """
 
 
@@ -259,8 +259,8 @@ POWERPORT_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     <span class="dropdown">
     <span class="dropdown">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
             <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span>
@@ -271,7 +271,7 @@ POWERPORT_BUTTONS = """
         </ul>
         </ul>
     </span>
     </span>
 {% else %}
 {% else %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
 {% endif %}
 {% endif %}
 """
 """
 
 
@@ -308,14 +308,14 @@ POWEROUTLET_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     {% if not record.mark_connected %}
     {% if not record.mark_connected %}
         <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.poweroutlet&a_terminations={{ record.pk }}&b_terminations_type=dcim.powerport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" title="Connect" class="btn btn-success btn-sm">
         <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.poweroutlet&a_terminations={{ record.pk }}&b_terminations_type=dcim.powerport&termination_b_site={{ object.site.pk }}&termination_b_rack={{ object.rack.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" title="Connect" class="btn btn-success btn-sm">
             <i class="mdi mdi-ethernet-cable" aria-hidden="true"></i>
             <i class="mdi mdi-ethernet-cable" aria-hidden="true"></i>
         </a>
         </a>
     {% else %}
     {% else %}
-        <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+        <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
     {% endif %}
     {% endif %}
 {% endif %}
 {% endif %}
 """
 """
@@ -402,8 +402,8 @@ INTERFACE_BUTTONS = """
         </a>
         </a>
     {% endif %}
     {% endif %}
 {% elif record.is_wired and perms.dcim.add_cable %}
 {% elif record.is_wired and perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     {% if not record.mark_connected %}
     {% if not record.mark_connected %}
     <span class="dropdown">
     <span class="dropdown">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Connect cable">
         <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Connect cable">
@@ -417,7 +417,7 @@ INTERFACE_BUTTONS = """
         </ul>
         </ul>
     </span>
     </span>
     {% else %}
     {% else %}
-        <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+        <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
     {% endif %}
     {% endif %}
 {% elif record.is_wireless and perms.wireless.add_wirelesslink %}
 {% elif record.is_wireless and perms.wireless.add_wirelesslink %}
     <a href="{% url 'wireless:wirelesslink_add' %}?site_a={{ record.device.site.pk }}&location_a={{ record.device.location.pk }}&device_a={{ record.device_id }}&interface_a={{ record.pk }}&site_b={{ record.device.site.pk }}&location_b={{ record.device.location.pk }}" class="btn btn-success btn-sm">
     <a href="{% url 'wireless:wirelesslink_add' %}?site_a={{ record.device.site.pk }}&location_a={{ record.device.location.pk }}&device_a={{ record.device_id }}&interface_a={{ record.pk }}&site_b={{ record.device.site.pk }}&location_b={{ record.device.location.pk }}" class="btn btn-success btn-sm">
@@ -459,8 +459,8 @@ FRONTPORT_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     {% if not record.mark_connected %}
     {% if not record.mark_connected %}
         <span class="dropdown">
         <span class="dropdown">
             <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -476,7 +476,7 @@ FRONTPORT_BUTTONS = """
             </ul>
             </ul>
         </span>
         </span>
     {% else %}
     {% else %}
-        <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+        <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
     {% endif %}
     {% endif %}
 {% endif %}
 {% endif %}
 """
 """
@@ -514,8 +514,8 @@ REARPORT_BUTTONS = """
         </span>
         </span>
     {% endif %}
     {% endif %}
 {% elif perms.dcim.add_cable %}
 {% elif perms.dcim.add_cable %}
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
-    <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i></a>
+    <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-lan-connect" aria-hidden="true"></i></a>
     {% if not record.mark_connected %}
     {% if not record.mark_connected %}
         <span class="dropdown">
         <span class="dropdown">
             <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
             <button type="button" class="btn btn-success btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -531,7 +531,7 @@ REARPORT_BUTTONS = """
             </ul>
             </ul>
         </span>
         </span>
     {% else %}
     {% else %}
-        <a href="#" class="btn btn-outline-dark btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
+        <a href="#" class="btn btn-outline-secondary btn-sm disabled"><i class="mdi mdi-ethernet-cable" aria-hidden="true"></i></a>
     {% endif %}
     {% endif %}
 {% endif %}
 {% endif %}
 """
 """

+ 7 - 47
netbox/dcim/views.py

@@ -4,17 +4,15 @@ from django.core.paginator import EmptyPage, PageNotAnInteger
 from django.db import transaction
 from django.db import transaction
 from django.db.models import Prefetch
 from django.db.models import Prefetch
 from django.forms import ModelMultipleChoiceField, MultipleHiddenInput, modelformset_factory
 from django.forms import ModelMultipleChoiceField, MultipleHiddenInput, modelformset_factory
-from django.http import HttpResponse
 from django.shortcuts import get_object_or_404, redirect, render
 from django.shortcuts import get_object_or_404, redirect, render
 from django.urls import reverse
 from django.urls import reverse
 from django.utils.html import escape
 from django.utils.html import escape
 from django.utils.safestring import mark_safe
 from django.utils.safestring import mark_safe
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 from django.views.generic import View
 from django.views.generic import View
-from jinja2.exceptions import TemplateError
 
 
 from circuits.models import Circuit, CircuitTermination
 from circuits.models import Circuit, CircuitTermination
-from extras.views import ObjectConfigContextView
+from extras.views import ObjectConfigContextView, ObjectRenderConfigView
 from ipam.models import ASN, IPAddress, Prefix, VLANGroup
 from ipam.models import ASN, IPAddress, Prefix, VLANGroup
 from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable
 from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable
 from netbox.constants import DEFAULT_ACTION_PERMISSIONS
 from netbox.constants import DEFAULT_ACTION_PERMISSIONS
@@ -424,7 +422,8 @@ class SiteGroupContactsView(ObjectContactsView):
 @register_model_view(Site, 'list', path='', detail=False)
 @register_model_view(Site, 'list', path='', detail=False)
 class SiteListView(generic.ObjectListView):
 class SiteListView(generic.ObjectListView):
     queryset = Site.objects.annotate(
     queryset = Site.objects.annotate(
-        device_count=count_related(Device, 'site')
+        device_count=count_related(Device, 'site'),
+        asn_count=count_related(ASN, 'sites')
     )
     )
     filterset = filtersets.SiteFilterSet
     filterset = filtersets.SiteFilterSet
     filterset_form = forms.SiteFilterForm
     filterset_form = forms.SiteFilterForm
@@ -966,6 +965,7 @@ class RackReservationBulkDeleteView(generic.BulkDeleteView):
 @register_model_view(Manufacturer, 'list', path='', detail=False)
 @register_model_view(Manufacturer, 'list', path='', detail=False)
 class ManufacturerListView(generic.ObjectListView):
 class ManufacturerListView(generic.ObjectListView):
     queryset = Manufacturer.objects.annotate(
     queryset = Manufacturer.objects.annotate(
+        racktype_count=count_related(RackType, 'manufacturer'),
         devicetype_count=count_related(DeviceType, 'manufacturer'),
         devicetype_count=count_related(DeviceType, 'manufacturer'),
         moduletype_count=count_related(ModuleType, 'manufacturer'),
         moduletype_count=count_related(ModuleType, 'manufacturer'),
         inventoryitem_count=count_related(InventoryItem, 'manufacturer'),
         inventoryitem_count=count_related(InventoryItem, 'manufacturer'),
@@ -2253,54 +2253,14 @@ class DeviceConfigContextView(ObjectConfigContextView):
 
 
 
 
 @register_model_view(Device, 'render-config')
 @register_model_view(Device, 'render-config')
-class DeviceRenderConfigView(generic.ObjectView):
+class DeviceRenderConfigView(ObjectRenderConfigView):
     queryset = Device.objects.all()
     queryset = Device.objects.all()
-    template_name = 'dcim/device/render_config.html'
+    base_template = 'dcim/device/base.html'
     tab = ViewTab(
     tab = ViewTab(
         label=_('Render Config'),
         label=_('Render Config'),
-        weight=2100
+        weight=2100,
     )
     )
 
 
-    def get(self, request, **kwargs):
-        instance = self.get_object(**kwargs)
-        context = self.get_extra_context(request, instance)
-
-        # If a direct export has been requested, return the rendered template content as a
-        # downloadable file.
-        if request.GET.get('export'):
-            content = context['rendered_config'] or context['error_message']
-            response = HttpResponse(content, content_type='text')
-            filename = f"{instance.name or 'config'}.txt"
-            response['Content-Disposition'] = f'attachment; filename="{filename}"'
-            return response
-
-        return render(request, self.get_template_name(), {
-            'object': instance,
-            'tab': self.tab,
-            **context,
-        })
-
-    def get_extra_context(self, request, instance):
-        # Compile context data
-        context_data = instance.get_config_context()
-        context_data.update({'device': instance})
-
-        # Render the config template
-        rendered_config = None
-        error_message = None
-        if config_template := instance.get_config_template():
-            try:
-                rendered_config = config_template.render(context=context_data)
-            except TemplateError as e:
-                error_message = _("An error occurred while rendering the template: {error}").format(error=e)
-
-        return {
-            'config_template': config_template,
-            'context_data': context_data,
-            'rendered_config': rendered_config,
-            'error_message': error_message,
-        }
-
 
 
 @register_model_view(Device, 'virtual-machines')
 @register_model_view(Device, 'virtual-machines')
 class DeviceVirtualMachinesView(generic.ObjectChildrenView):
 class DeviceVirtualMachinesView(generic.ObjectChildrenView):

+ 1 - 14
netbox/extras/choices.py

@@ -155,7 +155,6 @@ class JournalEntryKindChoices(ChoiceSet):
 class LogLevelChoices(ChoiceSet):
 class LogLevelChoices(ChoiceSet):
 
 
     LOG_DEBUG = 'debug'
     LOG_DEBUG = 'debug'
-    LOG_DEFAULT = 'default'
     LOG_INFO = 'info'
     LOG_INFO = 'info'
     LOG_SUCCESS = 'success'
     LOG_SUCCESS = 'success'
     LOG_WARNING = 'warning'
     LOG_WARNING = 'warning'
@@ -163,16 +162,15 @@ class LogLevelChoices(ChoiceSet):
 
 
     CHOICES = (
     CHOICES = (
         (LOG_DEBUG, _('Debug'), 'teal'),
         (LOG_DEBUG, _('Debug'), 'teal'),
-        (LOG_DEFAULT, _('Default'), 'gray'),
         (LOG_INFO, _('Info'), 'cyan'),
         (LOG_INFO, _('Info'), 'cyan'),
         (LOG_SUCCESS, _('Success'), 'green'),
         (LOG_SUCCESS, _('Success'), 'green'),
         (LOG_WARNING, _('Warning'), 'yellow'),
         (LOG_WARNING, _('Warning'), 'yellow'),
         (LOG_FAILURE, _('Failure'), 'red'),
         (LOG_FAILURE, _('Failure'), 'red'),
+
     )
     )
 
 
     SYSTEM_LEVELS = {
     SYSTEM_LEVELS = {
         LOG_DEBUG: logging.DEBUG,
         LOG_DEBUG: logging.DEBUG,
-        LOG_DEFAULT: logging.INFO,
         LOG_INFO: logging.INFO,
         LOG_INFO: logging.INFO,
         LOG_SUCCESS: logging.INFO,
         LOG_SUCCESS: logging.INFO,
         LOG_WARNING: logging.WARNING,
         LOG_WARNING: logging.WARNING,
@@ -180,17 +178,6 @@ class LogLevelChoices(ChoiceSet):
     }
     }
 
 
 
 
-class DurationChoices(ChoiceSet):
-
-    CHOICES = (
-        (60, _('Hourly')),
-        (720, _('12 hours')),
-        (1440, _('Daily')),
-        (10080, _('Weekly')),
-        (43200, _('30 days')),
-    )
-
-
 #
 #
 # Webhooks
 # Webhooks
 #
 #

+ 5 - 6
netbox/extras/constants.py

@@ -76,7 +76,7 @@ DEFAULT_DASHBOARD = [
         'height': 4,
         'height': 4,
         'title': 'NetBox News',
         'title': 'NetBox News',
         'config': {
         'config': {
-            'feed_url': 'http://netbox.dev/rss/',
+            'feed_url': 'https://api.netbox.oss.netboxlabs.com/v1/newsfeed/',
             'max_entries': 10,
             'max_entries': 10,
             'cache_timeout': 14400,
             'cache_timeout': 14400,
             'requires_internet': True,
             'requires_internet': True,
@@ -138,9 +138,8 @@ DEFAULT_DASHBOARD = [
 
 
 LOG_LEVEL_RANK = {
 LOG_LEVEL_RANK = {
     LogLevelChoices.LOG_DEBUG: 0,
     LogLevelChoices.LOG_DEBUG: 0,
-    LogLevelChoices.LOG_DEFAULT: 1,
-    LogLevelChoices.LOG_INFO: 2,
-    LogLevelChoices.LOG_SUCCESS: 3,
-    LogLevelChoices.LOG_WARNING: 4,
-    LogLevelChoices.LOG_FAILURE: 5,
+    LogLevelChoices.LOG_INFO: 1,
+    LogLevelChoices.LOG_SUCCESS: 2,
+    LogLevelChoices.LOG_WARNING: 3,
+    LogLevelChoices.LOG_FAILURE: 4,
 }
 }

+ 9 - 0
netbox/extras/forms/filtersets.py

@@ -37,6 +37,7 @@ __all__ = (
 
 
 
 
 class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
 class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
+    model = CustomField
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet(
         FieldSet(
@@ -115,6 +116,7 @@ class CustomFieldFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
 class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
+    model = CustomFieldChoiceSet
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('base_choices', 'choice', name=_('Choices')),
         FieldSet('base_choices', 'choice', name=_('Choices')),
@@ -129,6 +131,7 @@ class CustomFieldChoiceSetFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
 class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
+    model = CustomLink
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('object_type', 'enabled', 'new_window', 'weight', name=_('Attributes')),
         FieldSet('object_type', 'enabled', 'new_window', 'weight', name=_('Attributes')),
@@ -159,6 +162,7 @@ class CustomLinkFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
 class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
+    model = ExportTemplate
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -200,6 +204,7 @@ class ExportTemplateFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
 class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
+    model = ImageAttachment
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('object_type_id', 'name', name=_('Attributes')),
         FieldSet('object_type_id', 'name', name=_('Attributes')),
@@ -216,6 +221,7 @@ class ImageAttachmentFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
 class SavedFilterFilterForm(SavedFiltersMixin, FilterForm):
+    model = SavedFilter
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id'),
         FieldSet('q', 'filter_id'),
         FieldSet('object_type', 'enabled', 'shared', 'weight', name=_('Attributes')),
         FieldSet('object_type', 'enabled', 'shared', 'weight', name=_('Attributes')),
@@ -314,6 +320,7 @@ class TagFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
 class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
+    model = ConfigContext
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id', 'tag_id'),
         FieldSet('q', 'filter_id', 'tag_id'),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -403,6 +410,7 @@ class ConfigContextFilterForm(SavedFiltersMixin, FilterForm):
 
 
 
 
 class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
 class ConfigTemplateFilterForm(SavedFiltersMixin, FilterForm):
+    model = ConfigTemplate
     fieldsets = (
     fieldsets = (
         FieldSet('q', 'filter_id', 'tag'),
         FieldSet('q', 'filter_id', 'tag'),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
         FieldSet('data_source_id', 'data_file_id', name=_('Data')),
@@ -469,6 +477,7 @@ class JournalEntryFilterForm(NetBoxModelFilterSetForm):
 
 
 
 
 class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
 class NotificationGroupFilterForm(SavedFiltersMixin, FilterForm):
+    model = NotificationGroup
     user_id = DynamicModelMultipleChoiceField(
     user_id = DynamicModelMultipleChoiceField(
         queryset=User.objects.all(),
         queryset=User.objects.all(),
         required=False,
         required=False,

+ 2 - 2
netbox/extras/forms/reports.py

@@ -1,7 +1,7 @@
 from django import forms
 from django import forms
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
-from extras.choices import DurationChoices
+from core.choices import JobIntervalChoices
 from utilities.forms.widgets import DateTimePicker, NumberWithOptions
 from utilities.forms.widgets import DateTimePicker, NumberWithOptions
 from utilities.datetime import local_now
 from utilities.datetime import local_now
 
 
@@ -22,7 +22,7 @@ class ReportForm(forms.Form):
         min_value=1,
         min_value=1,
         label=_("Recurs every"),
         label=_("Recurs every"),
         widget=NumberWithOptions(
         widget=NumberWithOptions(
-            options=DurationChoices
+            options=JobIntervalChoices
         ),
         ),
         help_text=_("Interval at which this report is re-run (in minutes)")
         help_text=_("Interval at which this report is re-run (in minutes)")
     )
     )

+ 2 - 2
netbox/extras/forms/scripts.py

@@ -1,7 +1,7 @@
 from django import forms
 from django import forms
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
-from extras.choices import DurationChoices
+from core.choices import JobIntervalChoices
 from utilities.forms.widgets import DateTimePicker, NumberWithOptions
 from utilities.forms.widgets import DateTimePicker, NumberWithOptions
 from utilities.datetime import local_now
 from utilities.datetime import local_now
 
 
@@ -28,7 +28,7 @@ class ScriptForm(forms.Form):
         min_value=1,
         min_value=1,
         label=_("Recurs every"),
         label=_("Recurs every"),
         widget=NumberWithOptions(
         widget=NumberWithOptions(
-            options=DurationChoices
+            options=JobIntervalChoices
         ),
         ),
         help_text=_("Interval at which this script is re-run (in minutes)")
         help_text=_("Interval at which this script is re-run (in minutes)")
     )
     )

+ 6 - 1
netbox/extras/management/commands/runscript.py

@@ -81,12 +81,17 @@ class Command(BaseCommand):
                     logger.error(f'\t{field}: {error.get("message")}')
                     logger.error(f'\t{field}: {error.get("message")}')
             raise CommandError()
             raise CommandError()
 
 
+        # Remove extra fields from ScriptForm before passng data to script
+        form.cleaned_data.pop('_schedule_at')
+        form.cleaned_data.pop('_interval')
+        form.cleaned_data.pop('_commit')
+
         # Execute the script.
         # Execute the script.
         job = ScriptJob.enqueue(
         job = ScriptJob.enqueue(
             instance=script_obj,
             instance=script_obj,
             user=user,
             user=user,
             immediate=True,
             immediate=True,
-            data=data,
+            data=form.cleaned_data,
             request=NetBoxFakeRequest({
             request=NetBoxFakeRequest({
                 'META': {},
                 'META': {},
                 'POST': data,
                 'POST': data,

+ 1 - 1
netbox/extras/reports.py

@@ -15,7 +15,7 @@ class Report(BaseScript):
 
 
     # There is no generic log() equivalent on BaseScript
     # There is no generic log() equivalent on BaseScript
     def log(self, message):
     def log(self, message):
-        self._log(message, None, level=LogLevelChoices.LOG_DEFAULT)
+        self._log(message, None, level=LogLevelChoices.LOG_INFO)
 
 
     def log_success(self, obj=None, message=None):
     def log_success(self, obj=None, message=None):
         super().log_success(message, obj)
         super().log_success(message, obj)

+ 1 - 1
netbox/extras/scripts.py

@@ -460,7 +460,7 @@ class BaseScript:
     # Logging
     # Logging
     #
     #
 
 
-    def _log(self, message, obj=None, level=LogLevelChoices.LOG_DEFAULT):
+    def _log(self, message, obj=None, level=LogLevelChoices.LOG_INFO):
         """
         """
         Log a message. Do not call this method directly; use one of the log_* wrappers below.
         Log a message. Do not call this method directly; use one of the log_* wrappers below.
         """
         """

+ 1 - 0
netbox/extras/tests/test_filtersets.py

@@ -1118,6 +1118,7 @@ class TagTestCase(TestCase, ChangeLoggedFilterSetTests):
         'devicerole',
         'devicerole',
         'devicetype',
         'devicetype',
         'dummymodel',  # From dummy_plugin
         'dummymodel',  # From dummy_plugin
+        'dummynetboxmodel',  # From dummy_plugin
         'eventrule',
         'eventrule',
         'fhrpgroup',
         'fhrpgroup',
         'frontport',
         'frontport',

+ 62 - 6
netbox/extras/views.py

@@ -10,6 +10,7 @@ from django.utils import timezone
 from django.utils.module_loading import import_string
 from django.utils.module_loading import import_string
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 from django.views.generic import View
 from django.views.generic import View
+from jinja2.exceptions import TemplateError
 
 
 from core.choices import ManagedFileRootPathChoices
 from core.choices import ManagedFileRootPathChoices
 from core.forms import ManagedFileForm
 from core.forms import ManagedFileForm
@@ -885,6 +886,61 @@ class ConfigTemplateBulkSyncDataView(generic.BulkSyncDataView):
     queryset = ConfigTemplate.objects.all()
     queryset = ConfigTemplate.objects.all()
 
 
 
 
+class ObjectRenderConfigView(generic.ObjectView):
+    base_template = None
+    template_name = 'extras/object_render_config.html'
+
+    def get(self, request, **kwargs):
+        instance = self.get_object(**kwargs)
+        context = self.get_extra_context(request, instance)
+
+        # If a direct export has been requested, return the rendered template content as a
+        # downloadable file.
+        if request.GET.get('export'):
+            content = context['rendered_config'] or context['error_message']
+            response = HttpResponse(content, content_type='text')
+            filename = f"{instance.name or 'config'}.txt"
+            response['Content-Disposition'] = f'attachment; filename="{filename}"'
+            return response
+
+        return render(
+            request,
+            self.get_template_name(),
+            {
+                'object': instance,
+                'tab': self.tab,
+                **context,
+            },
+        )
+
+    def get_extra_context_data(self, request, instance):
+        return {
+            f'{instance._meta.model_name}': instance,
+        }
+
+    def get_extra_context(self, request, instance):
+        # Compile context data
+        context_data = instance.get_config_context()
+        context_data.update(self.get_extra_context_data(request, instance))
+
+        # Render the config template
+        rendered_config = None
+        error_message = None
+        if config_template := instance.get_config_template():
+            try:
+                rendered_config = config_template.render(context=context_data)
+            except TemplateError as e:
+                error_message = _("An error occurred while rendering the template: {error}").format(error=e)
+
+        return {
+            'base_template': self.base_template,
+            'config_template': config_template,
+            'context_data': context_data,
+            'rendered_config': rendered_config,
+            'error_message': error_message,
+        }
+
+
 #
 #
 # Image attachments
 # Image attachments
 #
 #
@@ -1315,9 +1371,9 @@ class ScriptResultView(TableMixin, generic.ObjectView):
         index = 0
         index = 0
 
 
         try:
         try:
-            log_threshold = LOG_LEVEL_RANK[request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG)]
+            log_threshold = LOG_LEVEL_RANK[request.GET.get('log_threshold', LogLevelChoices.LOG_INFO)]
         except KeyError:
         except KeyError:
-            log_threshold = LOG_LEVEL_RANK[LogLevelChoices.LOG_DEBUG]
+            log_threshold = LOG_LEVEL_RANK[LogLevelChoices.LOG_INFO]
         if job.data:
         if job.data:
 
 
             if 'log' in job.data:
             if 'log' in job.data:
@@ -1325,7 +1381,7 @@ class ScriptResultView(TableMixin, generic.ObjectView):
                     tests = job.data['tests']
                     tests = job.data['tests']
 
 
                 for log in job.data['log']:
                 for log in job.data['log']:
-                    log_level = LOG_LEVEL_RANK.get(log.get('status'), LogLevelChoices.LOG_DEFAULT)
+                    log_level = LOG_LEVEL_RANK.get(log.get('status'), LogLevelChoices.LOG_INFO)
                     if log_level >= log_threshold:
                     if log_level >= log_threshold:
                         index += 1
                         index += 1
                         result = {
                         result = {
@@ -1348,7 +1404,7 @@ class ScriptResultView(TableMixin, generic.ObjectView):
             for method, test_data in tests.items():
             for method, test_data in tests.items():
                 if 'log' in test_data:
                 if 'log' in test_data:
                     for time, status, obj, url, message in test_data['log']:
                     for time, status, obj, url, message in test_data['log']:
-                        log_level = LOG_LEVEL_RANK.get(status, LogLevelChoices.LOG_DEFAULT)
+                        log_level = LOG_LEVEL_RANK.get(status, LogLevelChoices.LOG_INFO)
                         if log_level >= log_threshold:
                         if log_level >= log_threshold:
                             index += 1
                             index += 1
                             result = {
                             result = {
@@ -1374,9 +1430,9 @@ class ScriptResultView(TableMixin, generic.ObjectView):
         if job.completed:
         if job.completed:
             table = self.get_table(job, request, bulk_actions=False)
             table = self.get_table(job, request, bulk_actions=False)
 
 
-        log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_DEBUG)
+        log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_INFO)
         if log_threshold not in LOG_LEVEL_RANK:
         if log_threshold not in LOG_LEVEL_RANK:
-            log_threshold = LogLevelChoices.LOG_DEBUG
+            log_threshold = LogLevelChoices.LOG_INFO
 
 
         context = {
         context = {
             'script': job.object,
             'script': job.object,

+ 7 - 0
netbox/ipam/views.py

@@ -863,6 +863,13 @@ class IPAddressEditView(generic.ObjectEditView):
 
 
         return obj
         return obj
 
 
+    def get_extra_addanother_params(self, request):
+        if 'interface' in request.GET:
+            return {'interface': request.GET['interface']}
+        elif 'vminterface' in request.GET:
+            return {'vminterface': request.GET['vminterface']}
+        return {}
+
 
 
 # TODO: Standardize or remove this view
 # TODO: Standardize or remove this view
 @register_model_view(IPAddress, 'assign', path='assign', detail=False)
 @register_model_view(IPAddress, 'assign', path='assign', detail=False)

+ 0 - 9
netbox/netbox/forms/base.py

@@ -169,15 +169,6 @@ class NetBoxModelFilterSetForm(CustomFieldsMixin, SavedFiltersMixin, forms.Form)
 
 
     selector_fields = ('filter_id', 'q')
     selector_fields = ('filter_id', 'q')
 
 
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
-
-        # Limit saved filters to those applicable to the form's model
-        object_type = ObjectType.objects.get_for_model(self.model)
-        self.fields['filter_id'].widget.add_query_params({
-            'object_type_id': object_type.pk,
-        })
-
     def _get_custom_fields(self, content_type):
     def _get_custom_fields(self, content_type):
         return super()._get_custom_fields(content_type).exclude(
         return super()._get_custom_fields(content_type).exclude(
             Q(filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED) |
             Q(filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED) |

+ 10 - 0
netbox/netbox/forms/mixins.py

@@ -73,6 +73,16 @@ class SavedFiltersMixin(forms.Form):
         }
         }
     )
     )
 
 
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+
+        # Limit saved filters to those applicable to the form's model
+        if hasattr(self, 'model'):
+            object_type = ObjectType.objects.get_for_model(self.model)
+            self.fields['filter_id'].widget.add_query_params({
+                'object_type_id': object_type.pk,
+            })
+
 
 
 class TagsMixin(forms.Form):
 class TagsMixin(forms.Form):
     tags = DynamicModelMultipleChoiceField(
     tags = DynamicModelMultipleChoiceField(

+ 2 - 1
netbox/netbox/models/__init__.py

@@ -10,6 +10,7 @@ from mptt.models import MPTTModel, TreeForeignKey
 from netbox.models.features import *
 from netbox.models.features import *
 from utilities.mptt import TreeManager
 from utilities.mptt import TreeManager
 from utilities.querysets import RestrictedQuerySet
 from utilities.querysets import RestrictedQuerySet
+from utilities.views import get_viewname
 
 
 
 
 __all__ = (
 __all__ = (
@@ -42,7 +43,7 @@ class NetBoxFeatureSet(
         return f'{settings.STATIC_URL}docs/models/{self._meta.app_label}/{self._meta.model_name}/'
         return f'{settings.STATIC_URL}docs/models/{self._meta.app_label}/{self._meta.model_name}/'
 
 
     def get_absolute_url(self):
     def get_absolute_url(self):
-        return reverse(f'{self._meta.app_label}:{self._meta.model_name}', args=[self.pk])
+        return reverse(get_viewname(self), args=[self.pk])
 
 
 
 
 #
 #

+ 2 - 1
netbox/netbox/plugins/navigation.py

@@ -38,9 +38,10 @@ class PluginMenuItem:
     permissions = []
     permissions = []
     buttons = []
     buttons = []
 
 
-    def __init__(self, link, link_text, staff_only=False, permissions=None, buttons=None):
+    def __init__(self, link, link_text, auth_required=False, staff_only=False, permissions=None, buttons=None):
         self.link = link
         self.link = link
         self.link_text = link_text
         self.link_text = link_text
+        self.auth_required = auth_required
         self.staff_only = staff_only
         self.staff_only = staff_only
         if permissions is not None:
         if permissions is not None:
             if type(permissions) not in (list, tuple):
             if type(permissions) not in (list, tuple):

+ 3 - 0
netbox/netbox/tables/tables.py

@@ -2,6 +2,7 @@ from copy import deepcopy
 from functools import cached_property
 from functools import cached_property
 
 
 import django_tables2 as tables
 import django_tables2 as tables
+from django.conf import settings
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.auth.models import AnonymousUser
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.core.exceptions import FieldDoesNotExist
 from django.core.exceptions import FieldDoesNotExist
@@ -64,6 +65,8 @@ class BaseTable(tables.Table):
         selected_columns = None
         selected_columns = None
         if user is not None and not isinstance(user, AnonymousUser):
         if user is not None and not isinstance(user, AnonymousUser):
             selected_columns = user.config.get(f"tables.{self.name}.columns")
             selected_columns = user.config.get(f"tables.{self.name}.columns")
+        elif isinstance(user, AnonymousUser) and hasattr(settings, 'DEFAULT_USER_PREFERENCES'):
+            selected_columns = settings.DEFAULT_USER_PREFERENCES.get('tables', {}).get(self.name, {}).get('columns')
         if not selected_columns:
         if not selected_columns:
             selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)
             selected_columns = getattr(self.Meta, 'default_columns', self.Meta.fields)
 
 

+ 30 - 0
netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py

@@ -0,0 +1,30 @@
+import taggit.managers
+import utilities.json
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dummy_plugin', '0001_initial'),
+        ('extras', '0122_charfield_null_choices'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='DummyNetBoxModel',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
+                ('created', models.DateTimeField(auto_now_add=True, null=True)),
+                ('last_updated', models.DateTimeField(auto_now=True, null=True)),
+                (
+                    'custom_field_data',
+                    models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder),
+                ),
+                ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')),
+            ],
+            options={
+                'abstract': False,
+            },
+        ),
+    ]

+ 6 - 0
netbox/netbox/tests/dummy_plugin/models.py

@@ -1,5 +1,7 @@
 from django.db import models
 from django.db import models
 
 
+from netbox.models import NetBoxModel
+
 
 
 class DummyModel(models.Model):
 class DummyModel(models.Model):
     name = models.CharField(
     name = models.CharField(
@@ -11,3 +13,7 @@ class DummyModel(models.Model):
 
 
     class Meta:
     class Meta:
         ordering = ['name']
         ordering = ['name']
+
+
+class DummyNetBoxModel(NetBoxModel):
+    pass

+ 2 - 0
netbox/netbox/tests/dummy_plugin/urls.py

@@ -6,4 +6,6 @@ from . import views
 urlpatterns = (
 urlpatterns = (
     path('models/', views.DummyModelsView.as_view(), name='dummy_model_list'),
     path('models/', views.DummyModelsView.as_view(), name='dummy_model_list'),
     path('models/add/', views.DummyModelAddView.as_view(), name='dummy_model_add'),
     path('models/add/', views.DummyModelAddView.as_view(), name='dummy_model_add'),
+
+    path('netboxmodel/<int:pk>/', views.DummyNetBoxModelView.as_view(), name='dummynetboxmodel'),
 )
 )

+ 18 - 1
netbox/netbox/tests/dummy_plugin/views.py

@@ -5,12 +5,17 @@ from django.http import HttpResponse
 from django.views.generic import View
 from django.views.generic import View
 
 
 from dcim.models import Site
 from dcim.models import Site
+from netbox.views import generic
 from utilities.views import register_model_view
 from utilities.views import register_model_view
-from .models import DummyModel
+from .models import DummyModel, DummyNetBoxModel
 # Trigger registration of custom column
 # Trigger registration of custom column
 from .tables import mycol  # noqa: F401
 from .tables import mycol  # noqa: F401
 
 
 
 
+#
+# DummyModel
+#
+
 class DummyModelsView(View):
 class DummyModelsView(View):
 
 
     def get(self, request):
     def get(self, request):
@@ -32,6 +37,18 @@ class DummyModelAddView(View):
         return HttpResponse("Instance created")
         return HttpResponse("Instance created")
 
 
 
 
+#
+# DummyNetBoxModel
+#
+
+class DummyNetBoxModelView(generic.ObjectView):
+    queryset = DummyNetBoxModel.objects.all()
+
+
+#
+# API
+#
+
 @register_model_view(Site, 'extra', path='other-stuff')
 @register_model_view(Site, 'extra', path='other-stuff')
 class ExtraCoreModelView(View):
 class ExtraCoreModelView(View):
 
 

+ 23 - 0
netbox/netbox/tests/test_models.py

@@ -0,0 +1,23 @@
+from unittest import skipIf
+
+from django.conf import settings
+from django.test import TestCase
+
+from core.models import ObjectChange
+from netbox.tests.dummy_plugin.models import DummyNetBoxModel
+
+
+class ModelTest(TestCase):
+
+    def test_get_absolute_url(self):
+        m = ObjectChange()
+        m.pk = 123
+
+        self.assertEqual(m.get_absolute_url(), f'/core/changelog/{m.pk}/')
+
+    @skipIf('netbox.tests.dummy_plugin' not in settings.PLUGINS, "dummy_plugin not in settings.PLUGINS")
+    def test_get_absolute_url_plugin(self):
+        m = DummyNetBoxModel()
+        m.pk = 123
+
+        self.assertEqual(m.get_absolute_url(), f'/plugins/dummy-plugin/netboxmodel/{m.pk}/')

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
netbox/project-static/dist/netbox.css


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
netbox/project-static/dist/netbox.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
netbox/project-static/dist/netbox.js.map


+ 5 - 4
netbox/project-static/package.json

@@ -30,8 +30,8 @@
     "gridstack": "11.3.0",
     "gridstack": "11.3.0",
     "htmx.org": "1.9.12",
     "htmx.org": "1.9.12",
     "query-string": "9.1.1",
     "query-string": "9.1.1",
-    "sass": "1.83.4",
-    "tom-select": "2.4.1",
+    "sass": "1.85.0",
+    "tom-select": "2.4.3",
     "typeface-inter": "3.18.1",
     "typeface-inter": "3.18.1",
     "typeface-roboto-mono": "1.1.13"
     "typeface-roboto-mono": "1.1.13"
   },
   },
@@ -41,7 +41,7 @@
     "@types/node": "^22.3.0",
     "@types/node": "^22.3.0",
     "@typescript-eslint/eslint-plugin": "^8.1.0",
     "@typescript-eslint/eslint-plugin": "^8.1.0",
     "@typescript-eslint/parser": "^8.1.0",
     "@typescript-eslint/parser": "^8.1.0",
-    "esbuild": "^0.23.1",
+    "esbuild": "^0.24.2",
     "esbuild-sass-plugin": "^3.3.1",
     "esbuild-sass-plugin": "^3.3.1",
     "eslint": "<9.0",
     "eslint": "<9.0",
     "eslint-config-prettier": "^9.1.0",
     "eslint-config-prettier": "^9.1.0",
@@ -53,5 +53,6 @@
   },
   },
   "resolutions": {
   "resolutions": {
     "@types/bootstrap/**/@popperjs/core": "^2.11.6"
     "@types/bootstrap/**/@popperjs/core": "^2.11.6"
-  }
+  },
+  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
 }
 }

+ 6 - 2
netbox/project-static/src/buttons/selectMultiple.ts

@@ -43,7 +43,9 @@ function toggleCheckboxRange(
     const typedElement = element as HTMLInputElement;
     const typedElement = element as HTMLInputElement;
     //Change loop's current checkbox state to eventTargetElement checkbox state
     //Change loop's current checkbox state to eventTargetElement checkbox state
     if (changePkCheckboxState === true) {
     if (changePkCheckboxState === true) {
-      typedElement.checked = eventTargetElement.checked;
+      if (!typedElement.closest('tr')?.classList.contains('d-none')) {
+        typedElement.checked = eventTargetElement.checked;
+      }
     }
     }
     //The previously clicked checkbox was above the shift clicked checkbox
     //The previously clicked checkbox was above the shift clicked checkbox
     if (element === previousStateElement) {
     if (element === previousStateElement) {
@@ -52,7 +54,9 @@ function toggleCheckboxRange(
         return;
         return;
       }
       }
       changePkCheckboxState = true;
       changePkCheckboxState = true;
-      typedElement.checked = eventTargetElement.checked;
+      if (!typedElement.closest('tr')?.classList.contains('d-none')) {
+        typedElement.checked = eventTargetElement.checked;
+      }
     }
     }
     //The previously clicked checkbox was below the shift clicked checkbox
     //The previously clicked checkbox was below the shift clicked checkbox
     if (element === eventTargetElement) {
     if (element === eventTargetElement) {

+ 3 - 1
netbox/project-static/src/htmx.ts

@@ -1,5 +1,6 @@
+import { initForms } from './forms';
 import { initButtons } from './buttons';
 import { initButtons } from './buttons';
-import { initClipboard } from './clipboard'
+import { initClipboard } from './clipboard';
 import { initSelects } from './select';
 import { initSelects } from './select';
 import { initObjectSelector } from './objectSelector';
 import { initObjectSelector } from './objectSelector';
 import { initBootstrap } from './bs';
 import { initBootstrap } from './bs';
@@ -9,6 +10,7 @@ import { initQuickAdd } from './quickAdd';
 function initDepedencies(): void {
 function initDepedencies(): void {
   initButtons();
   initButtons();
   initClipboard();
   initClipboard();
+  initForms();
   initSelects();
   initSelects();
   initObjectSelector();
   initObjectSelector();
   initQuickAdd();
   initQuickAdd();

+ 157 - 151
netbox/project-static/yarn.lock

@@ -21,125 +21,130 @@
   resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
   resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
   integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
   integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
 
 
-"@esbuild/aix-ppc64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353"
-  integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==
-
-"@esbuild/android-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018"
-  integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==
-
-"@esbuild/android-arm@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee"
-  integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==
-
-"@esbuild/android-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517"
-  integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==
-
-"@esbuild/darwin-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16"
-  integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==
-
-"@esbuild/darwin-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931"
-  integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==
-
-"@esbuild/freebsd-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc"
-  integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==
-
-"@esbuild/freebsd-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730"
-  integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==
-
-"@esbuild/linux-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383"
-  integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==
-
-"@esbuild/linux-arm@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771"
-  integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==
-
-"@esbuild/linux-ia32@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333"
-  integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==
-
-"@esbuild/linux-loong64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac"
-  integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==
-
-"@esbuild/linux-mips64el@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6"
-  integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==
-
-"@esbuild/linux-ppc64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96"
-  integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==
-
-"@esbuild/linux-riscv64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7"
-  integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==
-
-"@esbuild/linux-s390x@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f"
-  integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==
-
-"@esbuild/linux-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24"
-  integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==
-
-"@esbuild/netbsd-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653"
-  integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==
-
-"@esbuild/openbsd-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7"
-  integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==
-
-"@esbuild/openbsd-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273"
-  integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==
-
-"@esbuild/sunos-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403"
-  integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==
-
-"@esbuild/win32-arm64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2"
-  integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==
-
-"@esbuild/win32-ia32@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac"
-  integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==
-
-"@esbuild/win32-x64@0.23.1":
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699"
-  integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==
+"@esbuild/aix-ppc64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461"
+  integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==
+
+"@esbuild/android-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894"
+  integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==
+
+"@esbuild/android-arm@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3"
+  integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==
+
+"@esbuild/android-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb"
+  integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==
+
+"@esbuild/darwin-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936"
+  integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==
+
+"@esbuild/darwin-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9"
+  integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==
+
+"@esbuild/freebsd-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00"
+  integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==
+
+"@esbuild/freebsd-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f"
+  integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==
+
+"@esbuild/linux-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43"
+  integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==
+
+"@esbuild/linux-arm@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736"
+  integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==
+
+"@esbuild/linux-ia32@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5"
+  integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==
+
+"@esbuild/linux-loong64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc"
+  integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==
+
+"@esbuild/linux-mips64el@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb"
+  integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==
+
+"@esbuild/linux-ppc64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412"
+  integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==
+
+"@esbuild/linux-riscv64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694"
+  integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==
+
+"@esbuild/linux-s390x@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577"
+  integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==
+
+"@esbuild/linux-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f"
+  integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==
+
+"@esbuild/netbsd-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6"
+  integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==
+
+"@esbuild/netbsd-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40"
+  integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==
+
+"@esbuild/openbsd-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f"
+  integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==
+
+"@esbuild/openbsd-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205"
+  integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==
+
+"@esbuild/sunos-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6"
+  integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==
+
+"@esbuild/win32-arm64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85"
+  integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==
+
+"@esbuild/win32-ia32@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2"
+  integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==
+
+"@esbuild/win32-x64@0.24.2":
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b"
+  integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==
 
 
 "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
 "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
   version "4.4.0"
   version "4.4.0"
@@ -1429,35 +1434,36 @@ esbuild-sass-plugin@^3.3.1:
     safe-identifier "^0.4.2"
     safe-identifier "^0.4.2"
     sass "^1.71.1"
     sass "^1.71.1"
 
 
-esbuild@^0.23.1:
-  version "0.23.1"
-  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8"
-  integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==
+esbuild@^0.24.2:
+  version "0.24.2"
+  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d"
+  integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==
   optionalDependencies:
   optionalDependencies:
-    "@esbuild/aix-ppc64" "0.23.1"
-    "@esbuild/android-arm" "0.23.1"
-    "@esbuild/android-arm64" "0.23.1"
-    "@esbuild/android-x64" "0.23.1"
-    "@esbuild/darwin-arm64" "0.23.1"
-    "@esbuild/darwin-x64" "0.23.1"
-    "@esbuild/freebsd-arm64" "0.23.1"
-    "@esbuild/freebsd-x64" "0.23.1"
-    "@esbuild/linux-arm" "0.23.1"
-    "@esbuild/linux-arm64" "0.23.1"
-    "@esbuild/linux-ia32" "0.23.1"
-    "@esbuild/linux-loong64" "0.23.1"
-    "@esbuild/linux-mips64el" "0.23.1"
-    "@esbuild/linux-ppc64" "0.23.1"
-    "@esbuild/linux-riscv64" "0.23.1"
-    "@esbuild/linux-s390x" "0.23.1"
-    "@esbuild/linux-x64" "0.23.1"
-    "@esbuild/netbsd-x64" "0.23.1"
-    "@esbuild/openbsd-arm64" "0.23.1"
-    "@esbuild/openbsd-x64" "0.23.1"
-    "@esbuild/sunos-x64" "0.23.1"
-    "@esbuild/win32-arm64" "0.23.1"
-    "@esbuild/win32-ia32" "0.23.1"
-    "@esbuild/win32-x64" "0.23.1"
+    "@esbuild/aix-ppc64" "0.24.2"
+    "@esbuild/android-arm" "0.24.2"
+    "@esbuild/android-arm64" "0.24.2"
+    "@esbuild/android-x64" "0.24.2"
+    "@esbuild/darwin-arm64" "0.24.2"
+    "@esbuild/darwin-x64" "0.24.2"
+    "@esbuild/freebsd-arm64" "0.24.2"
+    "@esbuild/freebsd-x64" "0.24.2"
+    "@esbuild/linux-arm" "0.24.2"
+    "@esbuild/linux-arm64" "0.24.2"
+    "@esbuild/linux-ia32" "0.24.2"
+    "@esbuild/linux-loong64" "0.24.2"
+    "@esbuild/linux-mips64el" "0.24.2"
+    "@esbuild/linux-ppc64" "0.24.2"
+    "@esbuild/linux-riscv64" "0.24.2"
+    "@esbuild/linux-s390x" "0.24.2"
+    "@esbuild/linux-x64" "0.24.2"
+    "@esbuild/netbsd-arm64" "0.24.2"
+    "@esbuild/netbsd-x64" "0.24.2"
+    "@esbuild/openbsd-arm64" "0.24.2"
+    "@esbuild/openbsd-x64" "0.24.2"
+    "@esbuild/sunos-x64" "0.24.2"
+    "@esbuild/win32-arm64" "0.24.2"
+    "@esbuild/win32-ia32" "0.24.2"
+    "@esbuild/win32-x64" "0.24.2"
 
 
 escape-string-regexp@^4.0.0:
 escape-string-regexp@^4.0.0:
   version "4.0.0"
   version "4.0.0"
@@ -2876,10 +2882,10 @@ toggle-selection@^1.0.6:
   resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
   resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
   integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
   integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
 
 
-tom-select@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.4.1.tgz#6a0b6df8af3df7b09b22dd965eb75ce4d1c547bc"
-  integrity sha512-adI8H8+wk8RRzHYLQ3bXSk2Q+FAq/kzAATrcWlJ2fbIrEzb0VkwaXzKHTAlBwSJrhqbPJvhV/0eypFkED/nAug==
+tom-select@2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/tom-select/-/tom-select-2.4.2.tgz#9764faf6cba51f6571d03a79bb7c1cac1cac7a5a"
+  integrity sha512-2RWjkL3gMDz9E+u8w+tQy9JWsYq8gaSytEVeugKYDeMus6ZtxT1HttLPnXsfHCnBPlsNubVyj5gtUeN+S+bcpA==
   dependencies:
   dependencies:
     "@orchidjs/sifter" "^1.1.0"
     "@orchidjs/sifter" "^1.1.0"
     "@orchidjs/unicode-variants" "^1.1.2"
     "@orchidjs/unicode-variants" "^1.1.2"

+ 2 - 2
netbox/release.yaml

@@ -1,3 +1,3 @@
-version: "4.2.2"
+version: "4.2.4"
 edition: "Community"
 edition: "Community"
-published: "2025-01-17"
+published: "2025-02-21"

+ 1 - 0
netbox/templates/base/base.html

@@ -17,6 +17,7 @@
     <meta charset="UTF-8" />
     <meta charset="UTF-8" />
     <meta name="viewport" content="initial-scale=1, maximum-scale=5, width=device-width, viewport-fit=cover" />
     <meta name="viewport" content="initial-scale=1, maximum-scale=5, width=device-width, viewport-fit=cover" />
     <meta name="htmx-config" content='{"scrollBehavior": "auto"}'>
     <meta name="htmx-config" content='{"scrollBehavior": "auto"}'>
+    <meta name="hostname" content="{{ settings.HOSTNAME }}" />
 
 
     {# Page title #}
     {# Page title #}
     <title>{% block title %}{% trans "Home" %}{% endblock %} | NetBox</title>
     <title>{% block title %}{% trans "Home" %}{% endblock %} | NetBox</title>

+ 2 - 2
netbox/templates/extras/inc/format_toggle.html

@@ -1,4 +1,4 @@
 <div class="btn-group btn-group-sm" role="group">
 <div class="btn-group btn-group-sm" role="group">
-  <a href="?format=json" type="button" class="btn btn-outline-dark{% if format == 'json' %} active{% endif %}">JSON</a>
-  <a href="?format=yaml" type="button" class="btn btn-outline-dark{% if format == 'yaml' %} active{% endif %}">YAML</a>
+  <a href="?format=json" type="button" class="btn {% if format == 'json' %}btn-primary{% else %}btn-outline-secondary{% endif %}">JSON</a>
+  <a href="?format=yaml" type="button" class="btn {% if format == 'yaml' %}btn-primary{% else %}btn-outline-secondary{% endif %}">YAML</a>
 </div>
 </div>

+ 3 - 2
netbox/templates/dcim/device/render_config.html → netbox/templates/extras/object_render_config.html

@@ -1,4 +1,5 @@
-{% extends 'dcim/device/base.html' %}
+{% extends base_template %}
+{% load helpers %}
 {% load static %}
 {% load static %}
 {% load i18n %}
 {% load i18n %}
 
 
@@ -67,7 +68,7 @@
         {% endif %}
         {% endif %}
       {% else %}
       {% else %}
         <div class="alert alert-info">
         <div class="alert alert-info">
-          {% trans "No configuration template has been assigned for this device." %}
+          {% trans "No configuration template has been assigned." %}
         </div>
         </div>
       {% endif %}
       {% endif %}
     </div>
     </div>

+ 1 - 1
netbox/templates/extras/script_result.html

@@ -53,7 +53,7 @@
             <div class="dropdown-menu">
             <div class="dropdown-menu">
               {% for level, name in log_levels.items %}
               {% for level, name in log_levels.items %}
                 <a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}">
                 <a class="dropdown-item d-flex justify-content-between" href="{% url 'extras:script_result' job_pk=job.pk %}?log_threshold={{ level }}">
-                  {{ name }}{% if forloop.first %} ({% trans "All" %}){% endif %}
+                  {{ name }}{% if forloop.counter == 1 %} ({% trans "All" %}){% elif forloop.counter == 2 %} ({% trans "Default" %}){% endif %}
                   {% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %}
                   {% if level == log_threshold %}<span class="badge bg-green ms-auto"></span>{% endif %}
                 </a>
                 </a>
               {% endfor %}
               {% endfor %}

+ 16 - 15
netbox/templates/extras/tag.html

@@ -55,22 +55,23 @@
       </div>
       </div>
       <div class="card">
       <div class="card">
         <h2 class="card-header">{% trans "Tagged Item Types" %}</h2>
         <h2 class="card-header">{% trans "Tagged Item Types" %}</h2>
-        <table class="table table-hover attr-table">
+        <ul class="list-group list-group-flush" role="presentation">
           {% for object_type in object_types %}
           {% for object_type in object_types %}
-            <tr>
-              <td>{{ object_type.content_type.name|bettertitle }}</td>
-              <td>
-                {% with viewname=object_type.content_type.model_class|validated_viewname:"list" %}
-                  {% if viewname %}
-                    <a href="{% url viewname %}?tag={{ object.slug }}">{{ object_type.item_count }}</a>
-                  {% else %}
-                    {{ object_type.item_count }}
-                  {% endif %}
-                {% endwith %}
-              </td>
-            </tr>
+            {% with viewname=object_type.content_type.model_class|validated_viewname:"list" %}
+              {% if viewname %}
+                <a href="{% url viewname %}?tag={{ object.slug }}" class="list-group-item list-group-item-action d-flex justify-content-between">
+                  {{ object_type.content_type.name|bettertitle }}
+                  <span class="badge text-bg-primary rounded-pill">{{ object_type.item_count }}</span>
+                </a>
+              {% else %}
+                <li class="list-group-item list-group-item-action d-flex justify-content-between">
+                  {{ object_type.content_type.name|bettertitle }}
+                  <span class="badge text-bg-primary rounded-pill">{{ object_type.item_count }}</span>
+                </li>
+              {% endif %}
+            {% endwith %}
           {% endfor %}
           {% endfor %}
-        </table>
+        </ul>
       </div>
       </div>
       {% plugin_right_page object %}
       {% plugin_right_page object %}
     </div>
     </div>
@@ -79,7 +80,7 @@
     <div class="col col-md-12">
     <div class="col col-md-12">
       <div class="card">
       <div class="card">
         <h2 class="card-header">{% trans "Tagged Objects" %}</h2>
         <h2 class="card-header">{% trans "Tagged Objects" %}</h2>
-        <div class="card-body table-responsive">
+        <div class="table-responsive">
           {% render_table taggeditem_table 'inc/table.html' %}
           {% render_table taggeditem_table 'inc/table.html' %}
           {% include 'inc/paginator.html' with paginator=taggeditem_table.paginator page=taggeditem_table.page %}
           {% include 'inc/paginator.html' with paginator=taggeditem_table.paginator page=taggeditem_table.page %}
         </div>
         </div>

+ 2 - 0
netbox/templates/inc/panels/related_objects.html

@@ -19,6 +19,8 @@
         </a>
         </a>
         {% endif %}
         {% endif %}
       {% endwith %}
       {% endwith %}
+    {% empty %}
+      <span class="list-group-item text-muted">{% trans "None" %}</span>
     {% endfor %}
     {% endfor %}
   </ul>
   </ul>
 </div>
 </div>

+ 0 - 75
netbox/templates/virtualization/virtualmachine/render_config.html

@@ -1,75 +0,0 @@
-{% extends 'virtualization/virtualmachine/base.html' %}
-{% load static %}
-{% load i18n %}
-
-{% block title %}{{ object }} - {% trans "Config" %}{% endblock %}
-
-{% block content %}
-  <div class="row">
-    <div class="col-5">
-      <div class="card">
-        <h2 class="card-header">{% trans "Config Template" %}</h2>
-        <table class="table table-hover attr-table">
-          <tr>
-            <th scope="row">{% trans "Config Template" %}</th>
-            <td>{{ config_template|linkify|placeholder }}</td>
-          </tr>
-          <tr>
-            <th scope="row">{% trans "Data Source" %}</th>
-            <td>{{ config_template.data_file.source|linkify|placeholder }}</td>
-          </tr>
-          <tr>
-            <th scope="row">{% trans "Data File" %}</th>
-            <td>{{ config_template.data_file|linkify|placeholder }}</td>
-          </tr>
-        </table>
-      </div>
-    </div>
-    <div class="col-7">
-      <div class="card">
-        <div class="accordion accordion-flush" id="renderConfig">
-          <div class="card-body">
-            <div class="accordion-item">
-              <h2 class="accordion-header" id="renderConfigHeading">
-                <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapsedRenderConfig" aria-expanded="false" aria-controls="collapsedRenderConfig">
-                  {% trans "Context Data" %}
-                </button>
-              </h2>
-              <div id="collapsedRenderConfig" class="accordion-collapse collapse" aria-labelledby="renderConfigHeading" data-bs-parent="#renderConfig">
-                <div class="accordion-body">
-                  <pre class="card-body">{{ context_data|pprint }}</pre>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-  <div class="row">
-    <div class="col">
-      {% if config_template %}
-        {% if rendered_config %}
-          <div class="card">
-            <h2 class="card-header d-flex justify-content-between">
-              {% trans "Rendered Config" %}
-              <a href="?export=True" class="btn btn-primary lh-1" role="button">
-                <i class="mdi mdi-download" aria-hidden="true"></i> {% trans "Download" %}
-              </a>
-            </h2>
-            <pre class="card-body">{{ rendered_config }}</pre>
-          </div>
-        {% else %}
-          <div class="alert alert-warning">
-            <h4 class="alert-title mb-1">{% trans "Error rendering template" %}</h4>
-            {% trans error_message %}
-          </div>
-        {% endif %}
-      {% else %}
-        <div class="alert alert-info">
-          {% trans "No configuration template has been assigned for this virtual machine." %}
-        </div>
-      {% endif %}
-    </div>
-  </div>
-{% endblock %}

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


+ 88 - 82
netbox/translations/cs/LC_MESSAGES/django.po

@@ -4,10 +4,10 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # 
 # Translators:
 # Translators:
-# czarnian, 2024
-# Jeremy Stretch, 2024
 # Pavel Valach, 2024
 # Pavel Valach, 2024
 # Matěj Gordon, 2025
 # Matěj Gordon, 2025
+# czarnian, 2025
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
@@ -16,7 +16,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Matěj Gordon, 2025\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n"
 "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -64,7 +64,7 @@ msgstr "Naposledy použitý"
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
 #: netbox/users/forms/model_forms.py:124
 #: netbox/users/forms/model_forms.py:124
 msgid "Allowed IPs"
 msgid "Allowed IPs"
-msgstr "Povolené IP adresy"
+msgstr "Povolené adresy IP"
 
 
 #: netbox/account/views.py:114
 #: netbox/account/views.py:114
 #, python-brace-format
 #, python-brace-format
@@ -179,7 +179,7 @@ msgstr "Region (zkratka)"
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
-msgstr "Skupina stránek (ID)"
+msgstr "Skupina st (ID)"
 
 
 #: netbox/circuits/filtersets.py:51 netbox/circuits/filtersets.py:218
 #: netbox/circuits/filtersets.py:51 netbox/circuits/filtersets.py:218
 #: netbox/dcim/filtersets.py:135 netbox/dcim/filtersets.py:232
 #: netbox/dcim/filtersets.py:135 netbox/dcim/filtersets.py:232
@@ -191,7 +191,7 @@ msgstr "Skupina stránek (ID)"
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
-msgstr "Skupina stránek (slug)"
+msgstr "Skupina míst (zkratka)"
 
 
 #: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
 #: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
 #: netbox/circuits/forms/bulk_edit.py:216
 #: netbox/circuits/forms/bulk_edit.py:216
@@ -252,7 +252,7 @@ msgstr "Skupina stránek (slug)"
 #: netbox/vpn/forms/filtersets.py:266 netbox/wireless/forms/model_forms.py:76
 #: netbox/vpn/forms/filtersets.py:266 netbox/wireless/forms/model_forms.py:76
 #: netbox/wireless/forms/model_forms.py:118
 #: netbox/wireless/forms/model_forms.py:118
 msgid "Site"
 msgid "Site"
-msgstr "Stránky"
+msgstr "Místo"
 
 
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
@@ -262,7 +262,7 @@ msgstr "Stránky"
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
-msgstr "Místo (slug)"
+msgstr "Místo (zkratka)"
 
 
 #: netbox/circuits/filtersets.py:67
 #: netbox/circuits/filtersets.py:67
 msgid "ASN (ID)"
 msgid "ASN (ID)"
@@ -316,7 +316,7 @@ msgstr "Typ okruhu (URL zkratka)"
 #: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
-msgstr "Stránky (ID)"
+msgstr "Místo (ID)"
 
 
 #: netbox/circuits/filtersets.py:233 netbox/circuits/filtersets.py:237
 #: netbox/circuits/filtersets.py:233 netbox/circuits/filtersets.py:237
 msgid "Termination A (ID)"
 msgid "Termination A (ID)"
@@ -371,15 +371,15 @@ msgstr "Síť poskytovatele (ID)"
 
 
 #: netbox/circuits/filtersets.py:335
 #: netbox/circuits/filtersets.py:335
 msgid "Circuit (ID)"
 msgid "Circuit (ID)"
-msgstr "Obvod (ID)"
+msgstr "Okruh (ID)"
 
 
 #: netbox/circuits/filtersets.py:341
 #: netbox/circuits/filtersets.py:341
 msgid "Circuit (CID)"
 msgid "Circuit (CID)"
-msgstr "Obvod (CID)"
+msgstr "Okruh (CID)"
 
 
 #: netbox/circuits/filtersets.py:345
 #: netbox/circuits/filtersets.py:345
 msgid "Circuit group (ID)"
 msgid "Circuit group (ID)"
-msgstr "Skupina obvodů (ID)"
+msgstr "Skupina okruhů (ID)"
 
 
 #: netbox/circuits/filtersets.py:351
 #: netbox/circuits/filtersets.py:351
 msgid "Circuit group (slug)"
 msgid "Circuit group (slug)"
@@ -804,7 +804,7 @@ msgstr "Datum ukončení"
 #: netbox/circuits/forms/bulk_edit.py:158
 #: netbox/circuits/forms/bulk_edit.py:158
 #: netbox/circuits/forms/filtersets.py:186
 #: netbox/circuits/forms/filtersets.py:186
 msgid "Commit rate (Kbps)"
 msgid "Commit rate (Kbps)"
-msgstr "Rychlost odevzdání (Kbps)"
+msgstr "Smluvní rychlost (Kbps)"
 
 
 #: netbox/circuits/forms/bulk_edit.py:173
 #: netbox/circuits/forms/bulk_edit.py:173
 #: netbox/circuits/forms/model_forms.py:112
 #: netbox/circuits/forms/model_forms.py:112
@@ -1042,7 +1042,7 @@ msgstr "Region"
 #: netbox/virtualization/forms/filtersets.py:138
 #: netbox/virtualization/forms/filtersets.py:138
 #: netbox/virtualization/forms/model_forms.py:98
 #: netbox/virtualization/forms/model_forms.py:98
 msgid "Site group"
 msgid "Site group"
-msgstr "Skupina stránek"
+msgstr "Skupina st"
 
 
 #: netbox/circuits/forms/filtersets.py:65
 #: netbox/circuits/forms/filtersets.py:65
 #: netbox/circuits/forms/filtersets.py:83
 #: netbox/circuits/forms/filtersets.py:83
@@ -1160,19 +1160,19 @@ msgstr "barva"
 
 
 #: netbox/circuits/models/circuits.py:36
 #: netbox/circuits/models/circuits.py:36
 msgid "circuit type"
 msgid "circuit type"
-msgstr "typ obvodu"
+msgstr "typ okruhu"
 
 
 #: netbox/circuits/models/circuits.py:37
 #: netbox/circuits/models/circuits.py:37
 msgid "circuit types"
 msgid "circuit types"
-msgstr "typy obvodů"
+msgstr "typy okruhů"
 
 
 #: netbox/circuits/models/circuits.py:48
 #: netbox/circuits/models/circuits.py:48
 msgid "circuit ID"
 msgid "circuit ID"
-msgstr "ID obvodu"
+msgstr "ID okruhu"
 
 
 #: netbox/circuits/models/circuits.py:49
 #: netbox/circuits/models/circuits.py:49
 msgid "Unique circuit ID"
 msgid "Unique circuit ID"
-msgstr "Jedinečné ID obvodu"
+msgstr "Jedinečné ID okruhu"
 
 
 #: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
 #: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52
 #: netbox/core/models/jobs.py:85 netbox/dcim/models/cables.py:49
 #: netbox/core/models/jobs.py:85 netbox/dcim/models/cables.py:49
@@ -1194,11 +1194,11 @@ msgstr "nainstalován"
 
 
 #: netbox/circuits/models/circuits.py:89
 #: netbox/circuits/models/circuits.py:89
 msgid "terminates"
 msgid "terminates"
-msgstr "ukončí"
+msgstr "končí"
 
 
 #: netbox/circuits/models/circuits.py:94
 #: netbox/circuits/models/circuits.py:94
 msgid "commit rate (Kbps)"
 msgid "commit rate (Kbps)"
-msgstr "rychlost odevzdání (Kbps)"
+msgstr "smluvní rychlost (Kbps)"
 
 
 #: netbox/circuits/models/circuits.py:95
 #: netbox/circuits/models/circuits.py:95
 msgid "Committed rate"
 msgid "Committed rate"
@@ -1214,11 +1214,11 @@ msgstr "okruhy"
 
 
 #: netbox/circuits/models/circuits.py:170
 #: netbox/circuits/models/circuits.py:170
 msgid "circuit group"
 msgid "circuit group"
-msgstr "skupina obvodů"
+msgstr "skupina okruhů"
 
 
 #: netbox/circuits/models/circuits.py:171
 #: netbox/circuits/models/circuits.py:171
 msgid "circuit groups"
 msgid "circuit groups"
-msgstr "skupiny obvodů"
+msgstr "skupiny okruhů"
 
 
 #: netbox/circuits/models/circuits.py:195 netbox/ipam/models/fhrp.py:93
 #: netbox/circuits/models/circuits.py:195 netbox/ipam/models/fhrp.py:93
 #: netbox/tenancy/models/contacts.py:134
 #: netbox/tenancy/models/contacts.py:134
@@ -1227,7 +1227,7 @@ msgstr "přednost"
 
 
 #: netbox/circuits/models/circuits.py:213
 #: netbox/circuits/models/circuits.py:213
 msgid "Circuit group assignment"
 msgid "Circuit group assignment"
-msgstr "Přiřazení skupiny obvodů"
+msgstr "Přiřazení skupiny okruhů"
 
 
 #: netbox/circuits/models/circuits.py:214
 #: netbox/circuits/models/circuits.py:214
 msgid "Circuit group assignments"
 msgid "Circuit group assignments"
@@ -1235,7 +1235,7 @@ msgstr "Přiřazení skupin obvodů"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "zakončení"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1297,14 +1297,11 @@ msgstr "zakončení okruhů"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Zakončení okruhu se musí připojit buď k místu, nebo k síti poskytovatele."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Zakončení okruhu se nemůže připojit jak k síti webu, tak k síti "
-"poskytovatele."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1534,7 +1531,7 @@ msgstr "Strana Z"
 #: netbox/circuits/tables/circuits.py:77
 #: netbox/circuits/tables/circuits.py:77
 #: netbox/templates/circuits/circuit.html:55
 #: netbox/templates/circuits/circuit.html:55
 msgid "Commit Rate"
 msgid "Commit Rate"
-msgstr "Míra odevzdání"
+msgstr "Smluvní rychlost"
 
 
 #: netbox/circuits/tables/circuits.py:80
 #: netbox/circuits/tables/circuits.py:80
 #: netbox/circuits/tables/providers.py:48
 #: netbox/circuits/tables/providers.py:48
@@ -1563,7 +1560,7 @@ msgstr "Míra odevzdání"
 #: netbox/vpn/tables/tunnels.py:61 netbox/wireless/tables/wirelesslan.py:27
 #: netbox/vpn/tables/tunnels.py:61 netbox/wireless/tables/wirelesslan.py:27
 #: netbox/wireless/tables/wirelesslan.py:58
 #: netbox/wireless/tables/wirelesslan.py:58
 msgid "Comments"
 msgid "Comments"
-msgstr "Komentář"
+msgstr "Komentáře"
 
 
 #: netbox/circuits/tables/circuits.py:86
 #: netbox/circuits/tables/circuits.py:86
 #: netbox/templates/tenancy/contact.html:84
 #: netbox/templates/tenancy/contact.html:84
@@ -1586,12 +1583,12 @@ msgstr "Počet ASN"
 #: netbox/circuits/views.py:331
 #: netbox/circuits/views.py:331
 #, python-brace-format
 #, python-brace-format
 msgid "No terminations have been defined for circuit {circuit}."
 msgid "No terminations have been defined for circuit {circuit}."
-msgstr "Pro obvod nebyla definována žádná zakončení {circuit}."
+msgstr "Pro okruh {circuit} nebyla definována žádná zakončení ."
 
 
 #: netbox/circuits/views.py:380
 #: netbox/circuits/views.py:380
 #, python-brace-format
 #, python-brace-format
 msgid "Swapped terminations for circuit {circuit}."
 msgid "Swapped terminations for circuit {circuit}."
-msgstr "Vyměněné zakončení pro obvod {circuit}."
+msgstr "Vyměněná zakončení pro okruh {circuit}."
 
 
 #: netbox/core/api/views.py:39
 #: netbox/core/api/views.py:39
 msgid "This user does not have permission to synchronize this data source."
 msgid "This user does not have permission to synchronize this data source."
@@ -1620,7 +1617,7 @@ msgstr "Dokončeno"
 #: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
 #: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239
 #: netbox/dcim/choices.py:1609 netbox/virtualization/choices.py:47
 #: netbox/dcim/choices.py:1609 netbox/virtualization/choices.py:47
 msgid "Failed"
 msgid "Failed"
-msgstr "Neuspěl"
+msgstr "Selhalo"
 
 
 #: netbox/core/choices.py:35 netbox/netbox/navigation/menu.py:335
 #: netbox/core/choices.py:35 netbox/netbox/navigation/menu.py:335
 #: netbox/netbox/navigation/menu.py:339
 #: netbox/netbox/navigation/menu.py:339
@@ -1647,7 +1644,7 @@ msgstr "Naplánováno"
 
 
 #: netbox/core/choices.py:56
 #: netbox/core/choices.py:56
 msgid "Running"
 msgid "Running"
-msgstr "Běh"
+msgstr "Běží"
 
 
 #: netbox/core/choices.py:58
 #: netbox/core/choices.py:58
 msgid "Errored"
 msgid "Errored"
@@ -1656,7 +1653,7 @@ msgstr "Chyba"
 #: netbox/core/choices.py:87 netbox/core/tables/plugins.py:63
 #: netbox/core/choices.py:87 netbox/core/tables/plugins.py:63
 #: netbox/templates/generic/object.html:61
 #: netbox/templates/generic/object.html:61
 msgid "Updated"
 msgid "Updated"
-msgstr "aktualizováno"
+msgstr "Aktualizováno"
 
 
 #: netbox/core/choices.py:88
 #: netbox/core/choices.py:88
 msgid "Deleted"
 msgid "Deleted"
@@ -1725,7 +1722,7 @@ msgstr "Tajný přístupový klíč AWS"
 
 
 #: netbox/core/events.py:27
 #: netbox/core/events.py:27
 msgid "Object created"
 msgid "Object created"
-msgstr "Vytvořený objekt"
+msgstr "Objekt vytvořen"
 
 
 #: netbox/core/events.py:28
 #: netbox/core/events.py:28
 msgid "Object updated"
 msgid "Object updated"
@@ -1737,7 +1734,7 @@ msgstr "Objekt odstraněn"
 
 
 #: netbox/core/events.py:30
 #: netbox/core/events.py:30
 msgid "Job started"
 msgid "Job started"
-msgstr "Práce byla zahájena"
+msgstr "Úloha zahájena"
 
 
 #: netbox/core/events.py:31
 #: netbox/core/events.py:31
 msgid "Job completed"
 msgid "Job completed"
@@ -1850,7 +1847,7 @@ msgstr "Vytvořeno po"
 
 
 #: netbox/core/forms/filtersets.py:89
 #: netbox/core/forms/filtersets.py:89
 msgid "Created before"
 msgid "Created before"
-msgstr "Vytvořeno dříve"
+msgstr "Vytvořeno před"
 
 
 #: netbox/core/forms/filtersets.py:94
 #: netbox/core/forms/filtersets.py:94
 msgid "Scheduled after"
 msgid "Scheduled after"
@@ -1858,7 +1855,7 @@ msgstr "Naplánováno po"
 
 
 #: netbox/core/forms/filtersets.py:99
 #: netbox/core/forms/filtersets.py:99
 msgid "Scheduled before"
 msgid "Scheduled before"
-msgstr "Naplánováno dříve"
+msgstr "Naplánováno před"
 
 
 #: netbox/core/forms/filtersets.py:104
 #: netbox/core/forms/filtersets.py:104
 msgid "Started after"
 msgid "Started after"
@@ -1866,7 +1863,7 @@ msgstr "Začalo po"
 
 
 #: netbox/core/forms/filtersets.py:109
 #: netbox/core/forms/filtersets.py:109
 msgid "Started before"
 msgid "Started before"
-msgstr "Začalo dříve"
+msgstr "Začalo před"
 
 
 #: netbox/core/forms/filtersets.py:114
 #: netbox/core/forms/filtersets.py:114
 msgid "Completed after"
 msgid "Completed after"
@@ -1905,7 +1902,7 @@ msgstr "Po"
 
 
 #: netbox/core/forms/filtersets.py:144 netbox/extras/forms/filtersets.py:450
 #: netbox/core/forms/filtersets.py:144 netbox/extras/forms/filtersets.py:450
 msgid "Before"
 msgid "Before"
-msgstr "Dříve"
+msgstr "Před"
 
 
 #: netbox/core/forms/filtersets.py:148 netbox/core/tables/change_logging.py:29
 #: netbox/core/forms/filtersets.py:148 netbox/core/tables/change_logging.py:29
 #: netbox/extras/forms/model_forms.py:396
 #: netbox/extras/forms/model_forms.py:396
@@ -1941,7 +1938,7 @@ msgstr ""
 #: netbox/core/forms/model_forms.py:153
 #: netbox/core/forms/model_forms.py:153
 #: netbox/templates/dcim/rack_elevation_list.html:6
 #: netbox/templates/dcim/rack_elevation_list.html:6
 msgid "Rack Elevations"
 msgid "Rack Elevations"
-msgstr "Výšky stojanů"
+msgstr "Přehled stojanů"
 
 
 #: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1520
 #: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1520
 #: netbox/dcim/forms/bulk_edit.py:984 netbox/dcim/forms/bulk_edit.py:1372
 #: netbox/dcim/forms/bulk_edit.py:984 netbox/dcim/forms/bulk_edit.py:1372
@@ -2259,16 +2256,16 @@ msgstr "ID úlohy"
 
 
 #: netbox/core/models/jobs.py:112
 #: netbox/core/models/jobs.py:112
 msgid "job"
 msgid "job"
-msgstr "práce"
+msgstr "úloha"
 
 
 #: netbox/core/models/jobs.py:113
 #: netbox/core/models/jobs.py:113
 msgid "jobs"
 msgid "jobs"
-msgstr "pracovní místa"
+msgstr "úlohy"
 
 
 #: netbox/core/models/jobs.py:136
 #: netbox/core/models/jobs.py:136
 #, python-brace-format
 #, python-brace-format
 msgid "Jobs cannot be assigned to this object type ({type})."
 msgid "Jobs cannot be assigned to this object type ({type})."
-msgstr "K tomuto typu objektu nelze přiřadit úlohy ({type})."
+msgstr "K tomuto typu objektu ({type}) nelze přiřadit úlohy."
 
 
 #: netbox/core/models/jobs.py:190
 #: netbox/core/models/jobs.py:190
 #, python-brace-format
 #, python-brace-format
@@ -2278,7 +2275,7 @@ msgstr "Neplatný stav pro ukončení úlohy. Možnosti jsou: {choices}"
 #: netbox/core/models/jobs.py:221
 #: netbox/core/models/jobs.py:221
 msgid ""
 msgid ""
 "enqueue() cannot be called with values for both schedule_at and immediate."
 "enqueue() cannot be called with values for both schedule_at and immediate."
-msgstr "enqueue () nelze volat s hodnotami pro schedule_at a instant."
+msgstr "enqueue() nelze volat s hodnotami pro schedule_at a ihned zároveň."
 
 
 #: netbox/core/signals.py:126
 #: netbox/core/signals.py:126
 #, python-brace-format
 #, python-brace-format
@@ -2396,7 +2393,7 @@ msgstr "Hostitel"
 
 
 #: netbox/core/tables/tasks.py:50 netbox/ipam/forms/filtersets.py:535
 #: netbox/core/tables/tasks.py:50 netbox/ipam/forms/filtersets.py:535
 msgid "Port"
 msgid "Port"
-msgstr "Přístav"
+msgstr "Port"
 
 
 #: netbox/core/tables/tasks.py:54
 #: netbox/core/tables/tasks.py:54
 msgid "DB"
 msgid "DB"
@@ -2445,7 +2442,7 @@ msgstr "Nebyli nalezeni žádní pracovníci"
 #: netbox/core/views.py:90
 #: netbox/core/views.py:90
 #, python-brace-format
 #, python-brace-format
 msgid "Queued job #{id} to sync {datasource}"
 msgid "Queued job #{id} to sync {datasource}"
-msgstr "Úloha ve frontě #{id} synchronizovat {datasource}"
+msgstr "Úloha #{id} k synchronizaci {datasource} zařazena do fronty."
 
 
 #: netbox/core/views.py:319
 #: netbox/core/views.py:319
 #, python-brace-format
 #, python-brace-format
@@ -2455,12 +2452,12 @@ msgstr "Obnovená revize konfigurace #{id}"
 #: netbox/core/views.py:412 netbox/core/views.py:455 netbox/core/views.py:531
 #: netbox/core/views.py:412 netbox/core/views.py:455 netbox/core/views.py:531
 #, python-brace-format
 #, python-brace-format
 msgid "Job {job_id} not found"
 msgid "Job {job_id} not found"
-msgstr "Práce {job_id} nenalezeno"
+msgstr "Úloha {job_id} nenalezena"
 
 
 #: netbox/core/views.py:463
 #: netbox/core/views.py:463
 #, python-brace-format
 #, python-brace-format
 msgid "Job {id} has been deleted."
 msgid "Job {id} has been deleted."
-msgstr "Práce {id} byl vymazán."
+msgstr "Úloha {id} byla vymazána."
 
 
 #: netbox/core/views.py:465
 #: netbox/core/views.py:465
 #, python-brace-format
 #, python-brace-format
@@ -2470,22 +2467,22 @@ msgstr "Chyba při mazání úlohy {id}: {error}"
 #: netbox/core/views.py:478 netbox/core/views.py:496
 #: netbox/core/views.py:478 netbox/core/views.py:496
 #, python-brace-format
 #, python-brace-format
 msgid "Job {id} not found."
 msgid "Job {id} not found."
-msgstr "Práce {id} nenalezeno."
+msgstr "Úloha {id} nenalezena."
 
 
 #: netbox/core/views.py:484
 #: netbox/core/views.py:484
 #, python-brace-format
 #, python-brace-format
 msgid "Job {id} has been re-enqueued."
 msgid "Job {id} has been re-enqueued."
-msgstr "Práce {id} byla znovu zařazena do fronty."
+msgstr "Úloha {id} byla znovu zařazena do fronty."
 
 
 #: netbox/core/views.py:519
 #: netbox/core/views.py:519
 #, python-brace-format
 #, python-brace-format
 msgid "Job {id} has been enqueued."
 msgid "Job {id} has been enqueued."
-msgstr "Práce {id} byl zařazen do fronty."
+msgstr "Úloha {id} byla zařazena do fronty."
 
 
 #: netbox/core/views.py:538
 #: netbox/core/views.py:538
 #, python-brace-format
 #, python-brace-format
 msgid "Job {id} has been stopped."
 msgid "Job {id} has been stopped."
-msgstr "Práce {id} byl zastaven."
+msgstr "Úloha {id} byla zastavena."
 
 
 #: netbox/core/views.py:540
 #: netbox/core/views.py:540
 #, python-brace-format
 #, python-brace-format
@@ -2535,7 +2532,7 @@ msgstr "4-sloupový rám"
 
 
 #: netbox/dcim/choices.py:67
 #: netbox/dcim/choices.py:67
 msgid "4-post cabinet"
 msgid "4-post cabinet"
-msgstr "4-sloupová skříňka"
+msgstr "4-sloupová skříň"
 
 
 #: netbox/dcim/choices.py:68
 #: netbox/dcim/choices.py:68
 msgid "Wall-mounted frame"
 msgid "Wall-mounted frame"
@@ -2547,7 +2544,7 @@ msgstr "Nástěnný rám (vertikální)"
 
 
 #: netbox/dcim/choices.py:70
 #: netbox/dcim/choices.py:70
 msgid "Wall-mounted cabinet"
 msgid "Wall-mounted cabinet"
-msgstr "Nástěnná skříňka"
+msgstr "Nástěnná skříň"
 
 
 #: netbox/dcim/choices.py:71
 #: netbox/dcim/choices.py:71
 msgid "Wall-mounted cabinet (vertical)"
 msgid "Wall-mounted cabinet (vertical)"
@@ -2582,7 +2579,7 @@ msgstr "Milimetry"
 
 
 #: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1555
 #: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1555
 msgid "Inches"
 msgid "Inches"
-msgstr "palce"
+msgstr "Palce"
 
 
 #: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
 #: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207
 #: netbox/dcim/choices.py:254
 #: netbox/dcim/choices.py:254
@@ -2679,12 +2676,12 @@ msgstr "Zdola nahoru"
 
 
 #: netbox/dcim/choices.py:214
 #: netbox/dcim/choices.py:214
 msgid "Top to bottom"
 msgid "Top to bottom"
-msgstr "Nahoru dolů"
+msgstr "Shora dolů"
 
 
 #: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
 #: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259
 #: netbox/dcim/choices.py:1305
 #: netbox/dcim/choices.py:1305
 msgid "Passive"
 msgid "Passive"
-msgstr "pasivní"
+msgstr "Pasivní"
 
 
 #: netbox/dcim/choices.py:216
 #: netbox/dcim/choices.py:216
 msgid "Mixed"
 msgid "Mixed"
@@ -2802,17 +2799,17 @@ msgstr "Auto"
 
 
 #: netbox/dcim/choices.py:1265
 #: netbox/dcim/choices.py:1265
 msgid "Access"
 msgid "Access"
-msgstr "Přístup"
+msgstr "Přístupový"
 
 
 #: netbox/dcim/choices.py:1266 netbox/ipam/tables/vlans.py:172
 #: netbox/dcim/choices.py:1266 netbox/ipam/tables/vlans.py:172
 #: netbox/ipam/tables/vlans.py:217
 #: netbox/ipam/tables/vlans.py:217
 #: netbox/templates/dcim/inc/interface_vlans_table.html:7
 #: netbox/templates/dcim/inc/interface_vlans_table.html:7
 msgid "Tagged"
 msgid "Tagged"
-msgstr "Označeno"
+msgstr "Značkovaný"
 
 
 #: netbox/dcim/choices.py:1267
 #: netbox/dcim/choices.py:1267
 msgid "Tagged (All)"
 msgid "Tagged (All)"
-msgstr "Označeno (Vše)"
+msgstr "Značkovaný (Vše)"
 
 
 #: netbox/dcim/choices.py:1296
 #: netbox/dcim/choices.py:1296
 msgid "IEEE Standard"
 msgid "IEEE Standard"
@@ -2888,7 +2885,7 @@ msgstr "Gramy"
 #: netbox/dcim/choices.py:1572 netbox/templates/dcim/device.html:328
 #: netbox/dcim/choices.py:1572 netbox/templates/dcim/device.html:328
 #: netbox/templates/dcim/rack.html:108
 #: netbox/templates/dcim/rack.html:108
 msgid "Pounds"
 msgid "Pounds"
-msgstr "libry"
+msgstr "Libry"
 
 
 #: netbox/dcim/choices.py:1573
 #: netbox/dcim/choices.py:1573
 msgid "Ounces"
 msgid "Ounces"
@@ -2896,7 +2893,7 @@ msgstr "Unce"
 
 
 #: netbox/dcim/choices.py:1620
 #: netbox/dcim/choices.py:1620
 msgid "Redundant"
 msgid "Redundant"
-msgstr "Redundantní"
+msgstr "Zdvojený"
 
 
 #: netbox/dcim/choices.py:1641
 #: netbox/dcim/choices.py:1641
 msgid "Single phase"
 msgid "Single phase"
@@ -2922,15 +2919,15 @@ msgstr "Nadřazená oblast (ID)"
 
 
 #: netbox/dcim/filtersets.py:92
 #: netbox/dcim/filtersets.py:92
 msgid "Parent region (slug)"
 msgid "Parent region (slug)"
-msgstr "Nadřazená oblast (URL zkratka)"
+msgstr "Nadřazená oblast (zkratka)"
 
 
 #: netbox/dcim/filtersets.py:116
 #: netbox/dcim/filtersets.py:116
 msgid "Parent site group (ID)"
 msgid "Parent site group (ID)"
-msgstr "Nadřazená skupina webů (ID)"
+msgstr "Nadřazená skupina míst (ID)"
 
 
 #: netbox/dcim/filtersets.py:122
 #: netbox/dcim/filtersets.py:122
 msgid "Parent site group (slug)"
 msgid "Parent site group (slug)"
-msgstr "Nadřazená skupina stránek (slimák)"
+msgstr "Nadřazená skupina míst (zkratka)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 #: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
@@ -4231,7 +4228,7 @@ msgstr "Šířka musí být nastavena, pokud není zadán typ stojanu."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "Pokud není zadán typ stojanu, musí být nastavena výška U."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4890,6 +4887,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Pro hromadné vytváření jsou podporovány alfanumerické rozsahy. Smíšené "
+"případy a typy v rámci jednoho rozsahu nejsou podporovány (příklad: "
+"<code>[ge, xe] -0/0/ [0-9]</code>). Žeton <code>{module}</code>, pokud je "
+"přítomen, bude automaticky nahrazen hodnotou pozice při vytváření nového "
+"modulu."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -9595,11 +9597,11 @@ msgstr "Nastavte to jako primární IP pro přiřazené zařízení"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Je mimo pásmo"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Určete tuto adresu jako mimopásmovou IP adresu přiřazeného zařízení"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9609,11 +9611,11 @@ msgstr ""
 
 
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Není určeno žádné zařízení; nelze nastavit jako IP mimo pásmo"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "Nelze nastavit IP mimo pásmo pro virtuální počítače"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9621,7 +9623,7 @@ msgstr "Není určeno žádné rozhraní; nelze nastavit jako primární IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Není určeno žádné rozhraní; nelze nastavit jako IP mimo pásmo"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9780,7 +9782,7 @@ msgstr "Řada ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Přiřazení webu/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9798,7 +9800,7 @@ msgstr "Nastavte z něj primární IP pro zařízení/virtuální počítač"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Nastavte z tohoto pole IP mimo pásmo zařízení"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9811,10 +9813,12 @@ msgstr "IP adresu lze přiřadit pouze jednomu objektu."
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"Nelze znovu přiřadit primární adresu IP pro nadřazené zařízení/virtuální "
+"počítač"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
-msgstr ""
+msgstr "Nelze znovu přiřadit IP adresu mimo pásmo pro nadřazené zařízení"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9827,6 +9831,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Pouze IP adresy přiřazené k rozhraní zařízení mohou být označeny jako IP "
+"adresy mimo pásmo zařízení."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10220,12 +10226,12 @@ msgstr "Nelze nastavit scope_id bez scope_type."
 #: netbox/ipam/models/vlans.py:105
 #: netbox/ipam/models/vlans.py:105
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
-msgstr ""
+msgstr "Spuštění VLAN ID v dosahu ({value}) nemůže být menší než {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
-msgstr ""
+msgstr "Ukončení VLAN ID v rozsahu ({value}) nesmí překročit {maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10233,6 +10239,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"Koncové ID VLAN v rozsahu musí být větší nebo roven počátečnímu ID VLAN "
+"({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12587,7 +12595,7 @@ msgstr "Chyba při vykreslování šablony"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr "Pro toto zařízení nebyla přiřazena žádná konfigurační šablona."
+msgstr ""
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
@@ -13852,7 +13860,7 @@ msgstr "Centrum nápovědy"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Správce Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14266,7 +14274,6 @@ msgstr "Přidat virtuální disk"
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
 msgstr ""
 msgstr ""
-"Pro tento virtuální počítač nebyla přiřazena žádná konfigurační šablona."
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -15365,7 +15372,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} patří k jinému webu ({device_site}) než cluster ({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -16098,7 +16104,7 @@ msgstr "bezdrátové spoje"
 
 
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
-msgstr "Při nastavování bezdrátové vzdálenosti je nutné zadat jednotku"
+msgstr ""
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 114 - 105
netbox/translations/da/LC_MESSAGES/django.po

@@ -6,17 +6,17 @@
 # Translators:
 # Translators:
 # Jeff Gehlbach, 2024
 # Jeff Gehlbach, 2024
 # ch, 2024
 # ch, 2024
-# Frederik Spang Thomsen <frederik@progras.dk>, 2024
-# Jeremy Stretch, 2024
+# Frederik Spang <fst@progras.dk>, 2024
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Danish (https://app.transifex.com/netbox-community/teams/178115/da/)\n"
 "Language-Team: Danish (https://app.transifex.com/netbox-community/teams/178115/da/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -152,7 +152,7 @@ msgstr "Inaktiv"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -164,8 +164,8 @@ msgstr "Område (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Region (slug)"
 msgstr "Region (slug)"
@@ -175,8 +175,8 @@ msgstr "Region (slug)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Områdegruppe (ID)"
 msgstr "Områdegruppe (ID)"
@@ -187,7 +187,7 @@ msgstr "Områdegruppe (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -257,8 +257,8 @@ msgstr "Område"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -277,13 +277,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Leverandør (ID)"
 msgstr "Leverandør (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Leverandør (slug)"
 msgstr "Leverandør (slug)"
 
 
@@ -312,8 +312,8 @@ msgstr "Kredsløbstype (slug)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Område (ID)"
 msgstr "Område (ID)"
@@ -667,7 +667,7 @@ msgstr "Leverandørkonto"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1102,7 +1102,7 @@ msgstr "Opgave"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1235,7 +1235,7 @@ msgstr "Kredsløbsgruppeopgaver"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "afslutning"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1297,15 +1297,11 @@ msgstr "kredsløbsafslutninger"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"En kredsløbsafslutning skal tilsluttes enten et område eller et "
-"leverandørnetværk."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"En kredsløbsafslutning kan ikke knyttes til både et område og et "
-"lerverandørnetværk."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1542,7 +1538,7 @@ msgstr "Forpligtelsesrate"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2935,7 +2931,7 @@ msgid "Parent site group (slug)"
 msgstr "Overordnet områdegruppe (slug)"
 msgstr "Overordnet områdegruppe (slug)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Gruppe (ID)"
 msgstr "Gruppe (ID)"
 
 
@@ -2993,15 +2989,15 @@ msgstr "Racktype (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Rolle (ID)"
 msgstr "Rolle (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Rolle (slug)"
 msgstr "Rolle (slug)"
@@ -3199,7 +3195,7 @@ msgstr "VDC (ID)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Enhedsmodel"
 msgstr "Enhedsmodel"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Grænseflade (ID)"
 msgstr "Grænseflade (ID)"
@@ -3213,8 +3209,8 @@ msgid "Module bay (ID)"
 msgstr "Modulplads (ID)"
 msgstr "Modulplads (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Enhed (ID)"
 msgstr "Enhed (ID)"
@@ -3223,8 +3219,8 @@ msgstr "Enhed (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Rack (navn)"
 msgstr "Rack (navn)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Enhed (navn)"
 msgstr "Enhed (navn)"
@@ -3276,9 +3272,9 @@ msgstr "Tildelt VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3305,19 +3301,19 @@ msgstr "Tildelt VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RED.)"
 msgstr "VRF (RED.)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3479,7 +3475,7 @@ msgstr "Tidszone"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3730,7 +3726,7 @@ msgid "Device Type"
 msgstr "Enhedstype"
 msgstr "Enhedstype"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3838,7 +3834,7 @@ msgstr "Klynge"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4090,11 +4086,11 @@ msgstr "Mærkede VLAN'er"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "Tilføj taggede VLAN'er"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "Fjern mærkede VLAN'er"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4142,7 +4138,7 @@ msgstr "802.1Q-skift"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "Tilføj/fjern"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4220,7 +4216,7 @@ msgstr "Navn på tildelt rolle"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Model af racktype"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4229,11 +4225,11 @@ msgstr "Luftstrømsretning"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "Bredden skal indstilles, hvis der ikke angives en racktype."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "U-højde skal indstilles, hvis der ikke angives en racktype."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4894,6 +4890,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Alfanumeriske intervaller understøttes til masseoprettelse. Blandede sager "
+"og typer inden for et enkelt område understøttes ikke (eksempel: <code>[ge, "
+"xe] -0/0/ [0-9]</code>). Tokenet <code>{module}</code>, hvis den er til "
+"stede, erstattes automatisk med positionsværdien, når du opretter et nyt "
+"modul."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6782,7 +6783,7 @@ msgstr "Modulpladser"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Lagervarer"
 msgstr "Lagervarer"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Modulbugt"
 msgstr "Modulbugt"
@@ -7505,12 +7506,12 @@ msgstr "Bogmærker"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Vis dine personlige bogmærker"
 msgstr "Vis dine personlige bogmærker"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Ukendt handlingstype for en hændelsesregel: {action_type}"
 msgstr "Ukendt handlingstype for en hændelsesregel: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Kan ikke importere hændelsespipeline {name} fejl: {error}"
 msgstr "Kan ikke importere hændelsespipeline {name} fejl: {error}"
@@ -9268,129 +9269,129 @@ msgstr "Eksport af L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "Eksport af L2VPN (identifikator)"
 msgstr "Eksport af L2VPN (identifikator)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Præfiks"
 msgstr "Præfiks"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ID)"
 msgstr "RIR (ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (slug)"
 msgstr "RIR (slug)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "Inden for præfiks"
 msgstr "Inden for præfiks"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "Inden for og med præfiks"
 msgstr "Inden for og med præfiks"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Præfikser, der indeholder dette præfiks eller IP"
 msgstr "Præfikser, der indeholder dette præfiks eller IP"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Maskelængde"
 msgstr "Maskelængde"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "VLAN-nummer (1-4094)"
 msgstr "VLAN-nummer (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Adresse"
 msgstr "Adresse"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Intervaller, der indeholder dette præfiks eller IP"
 msgstr "Intervaller, der indeholder dette præfiks eller IP"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Forældrepræfiks"
 msgstr "Forældrepræfiks"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Virtuel maskine (navn)"
 msgstr "Virtuel maskine (navn)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Virtuel maskine (ID)"
 msgstr "Virtuel maskine (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Grænseflade (navn)"
 msgstr "Grænseflade (navn)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "VM-grænseflade (navn)"
 msgstr "VM-grænseflade (navn)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "VM-grænseflade (ID)"
 msgstr "VM-grænseflade (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "FHRP-gruppe (ID)"
 msgstr "FHRP-gruppe (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Tildeles til en grænseflade"
 msgstr "Tildeles til en grænseflade"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "Er tildelt"
 msgstr "Er tildelt"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Tjeneste (ID)"
 msgstr "Tjeneste (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "NAT inde i IP-adresse (ID)"
 msgstr "NAT inde i IP-adresse (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Tildelt grænseflade"
 msgstr "Tildelt grænseflade"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Tildelt VM grænseflade"
 msgstr "Tildelt VM grænseflade"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "IP-adresse (ID)"
 msgstr "IP-adresse (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "IP adresse"
 msgstr "IP adresse"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "Primær IPv4 (ID)"
 msgstr "Primær IPv4 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "Primær IPv6 (ID)"
 msgstr "Primær IPv6 (ID)"
 
 
@@ -9614,11 +9615,11 @@ msgstr "Gør dette til den primære IP for den tildelte enhed"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Er uden for båndet"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Angiv dette som IP-adressen uden for båndet for den tildelte enhed"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9627,11 +9628,11 @@ msgstr ""
 
 
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Ingen enhed angivet; kan ikke indstilles som IP uden for båndet"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "Kan ikke angive IP uden for båndet til virtuelle maskiner"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9639,7 +9640,7 @@ msgstr "Ingen grænseflade angivet; kan ikke indstilles som primær IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Ingen grænseflade angivet; kan ikke indstilles som IP uden for båndet"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9798,7 +9799,7 @@ msgstr "ASN-rækkevidde"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Område/VLAN-tildeling"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9816,7 +9817,7 @@ msgstr "Gør dette til den primære IP for enheden/VM"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Gør dette til enhedens off-band IP"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9828,11 +9829,13 @@ msgstr "En IP-adresse kan kun tildeles et enkelt objekt."
 
 
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
-msgstr ""
+msgstr "Kan ikke omtildele primær IP-adresse til den overordnede enhed/VM"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgstr ""
 msgstr ""
+"Det er ikke muligt at omfordele IP-adressen uden for båndet til den "
+"overordnede enhed"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9846,6 +9849,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Kun IP-adresser, der er tildelt en enhedsgrænseflade, kan betegnes som en "
+"enheds off-band IP."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10245,11 +10250,15 @@ msgstr "Kan ikke indstille scope_id uden scope_type."
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgstr ""
 msgstr ""
+"Start af VLAN-ID inden for rækkevidde ({value}) kan ikke være mindre end "
+"{minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgstr ""
 msgstr ""
+"Afslutning af VLAN-ID inden for rækkevidde ({value}) kan ikke overstige "
+"{maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10257,6 +10266,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"Afsluttende VLAN-id inden for rækkevidde skal være større end eller lig med "
+"det startende VLAN-id ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12616,7 +12627,7 @@ msgstr "Hent"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Fejl ved gengivelse af skabelon"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13488,7 +13499,7 @@ msgstr "Kør igen"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "Kunne ikke indlæse scripts fra modulet %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -13888,7 +13899,7 @@ msgstr "Hjælpecenter"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Django Admin"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15371,12 +15382,12 @@ msgstr "Hukommelse (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "Disk (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "Størrelse (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15404,8 +15415,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} tilhører et andet område ({device_site}) end cluster "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15583,19 +15592,19 @@ msgstr "GREE"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16135,7 +16144,7 @@ msgstr "trådløse links"
 
 
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
-msgstr "Skal angive en enhed, når du indstiller en trådløs afstand"
+msgstr ""
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 100 - 110
netbox/translations/de/LC_MESSAGES/django.po

@@ -5,22 +5,22 @@
 # 
 # 
 # Translators:
 # Translators:
 # Martin R, 2024
 # Martin R, 2024
-# Niklas, 2024
 # fepilins, 2024
 # fepilins, 2024
 # Steffen, 2024
 # Steffen, 2024
 # haagehan, 2024
 # haagehan, 2024
 # Jeremy Stretch, 2024
 # Jeremy Stretch, 2024
 # Robin Reinhardt, 2024
 # Robin Reinhardt, 2024
-# chbally, 2024
+# chbally, 2025
+# Niklas, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: chbally, 2024\n"
+"Last-Translator: Niklas, 2025\n"
 "Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n"
 "Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -157,7 +157,7 @@ msgstr "Inaktiv"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -169,8 +169,8 @@ msgstr "Region (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Region (URL-Slug)"
 msgstr "Region (URL-Slug)"
@@ -180,8 +180,8 @@ msgstr "Region (URL-Slug)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Standortgruppe (ID)"
 msgstr "Standortgruppe (ID)"
@@ -192,7 +192,7 @@ msgstr "Standortgruppe (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -262,8 +262,8 @@ msgstr "Standort"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -282,13 +282,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Provider (ID)"
 msgstr "Provider (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Provider (URL-Slug)"
 msgstr "Provider (URL-Slug)"
 
 
@@ -317,8 +317,8 @@ msgstr "Transportnetz Typ (URL-Slug)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Standort (ID)"
 msgstr "Standort (ID)"
@@ -672,7 +672,7 @@ msgstr "Providerkonto"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1107,7 +1107,7 @@ msgstr "Zuweisung"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1240,7 +1240,7 @@ msgstr "Transportnetzzuweisungen"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "Abschlusspunkt"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1303,15 +1303,11 @@ msgstr "Transportnetzabschlusspunkte"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Ein Leitungsabschluss muss entweder an einen Standort oder an ein "
-"Providernetzwerk angeschlossen werden."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Ein Leitungsabschluss kann nicht sowohl an einen Standort als auch an ein "
-"Providernetzwerk angeschlossen werden."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1548,7 +1544,7 @@ msgstr "Garantierte Bandbreite"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2951,7 +2947,7 @@ msgid "Parent site group (slug)"
 msgstr "Übergeordnete Standortgruppe (URL-Slug)"
 msgstr "Übergeordnete Standortgruppe (URL-Slug)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Gruppe (ID)"
 msgstr "Gruppe (ID)"
 
 
@@ -3009,15 +3005,15 @@ msgstr "Racktyp (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Rolle (ID)"
 msgstr "Rolle (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Rolle (URL-Slug)"
 msgstr "Rolle (URL-Slug)"
@@ -3215,7 +3211,7 @@ msgstr "VDC (ID)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Modell des Geräts"
 msgstr "Modell des Geräts"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Schnittstelle (ID)"
 msgstr "Schnittstelle (ID)"
@@ -3229,8 +3225,8 @@ msgid "Module bay (ID)"
 msgstr "Modulschacht (ID)"
 msgstr "Modulschacht (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Gerät (ID)"
 msgstr "Gerät (ID)"
@@ -3239,8 +3235,8 @@ msgstr "Gerät (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Rack (Name)"
 msgstr "Rack (Name)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Gerät (Name)"
 msgstr "Gerät (Name)"
@@ -3292,9 +3288,9 @@ msgstr "Zugewiesene VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3321,19 +3317,19 @@ msgstr "Zugewiesene VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RD)"
 msgstr "VRF (RD)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3495,7 +3491,7 @@ msgstr "Zeitzone"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3746,7 +3742,7 @@ msgid "Device Type"
 msgstr "Gerätetyp"
 msgstr "Gerätetyp"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3854,7 +3850,7 @@ msgstr "Cluster"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4589,7 +4585,7 @@ msgstr ""
 #: netbox/dcim/forms/bulk_import.py:1290
 #: netbox/dcim/forms/bulk_import.py:1290
 #, python-brace-format
 #, python-brace-format
 msgid "{side_upper} side termination not found: {device} {name}"
 msgid "{side_upper} side termination not found: {device} {name}"
-msgstr "{side_upper} Seitlicher Abschluss nicht gefunden: {device} {name}"
+msgstr "{side_upper} Standort Abschluss nicht gefunden: {device} {name}"
 
 
 #: netbox/dcim/forms/bulk_import.py:1315 netbox/dcim/forms/model_forms.py:785
 #: netbox/dcim/forms/bulk_import.py:1315 netbox/dcim/forms/model_forms.py:785
 #: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
 #: netbox/dcim/tables/devices.py:1027 netbox/templates/dcim/device.html:132
@@ -4682,7 +4678,7 @@ msgstr ""
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot adopt {model} {name} as it already belongs to a module"
 msgid "Cannot adopt {model} {name} as it already belongs to a module"
 msgstr ""
 msgstr ""
-"Kann nicht adoptieren {model} {name} da es schon zu einem Modul gehört"
+"Kann nicht {model} {name} aufnehmenm, da es schon zu einem Modul gehört"
 
 
 #: netbox/dcim/forms/common.py:153
 #: netbox/dcim/forms/common.py:153
 #, python-brace-format
 #, python-brace-format
@@ -6888,7 +6884,7 @@ msgstr "Moduleinsätze"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Inventarartikel"
 msgstr "Inventarartikel"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Moduleinsatz"
 msgstr "Moduleinsatz"
@@ -7619,12 +7615,12 @@ msgstr "Lesezeichen"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Zeige persönliche Lesezeichen an"
 msgstr "Zeige persönliche Lesezeichen an"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Unbekannter Aktionstyp für eine Ereignisregel: {action_type}"
 msgstr "Unbekannter Aktionstyp für eine Ereignisregel: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Ereignispipeline kann nicht importiert werden {name} Fehler: {error}"
 msgstr "Ereignispipeline kann nicht importiert werden {name} Fehler: {error}"
@@ -8438,8 +8434,7 @@ msgstr "Gewicht anzeigen"
 
 
 #: netbox/extras/models/customfields.py:173
 #: netbox/extras/models/customfields.py:173
 msgid "Fields with higher weights appear lower in a form."
 msgid "Fields with higher weights appear lower in a form."
-msgstr ""
-"Felder mit höheren Gewichten werden in einem Formular niedriger angezeigt."
+msgstr "Höher gewichtete Felder werden im Formular weiter unten angezeigt."
 
 
 #: netbox/extras/models/customfields.py:178
 #: netbox/extras/models/customfields.py:178
 msgid "minimum value"
 msgid "minimum value"
@@ -9431,129 +9426,129 @@ msgstr "L2VPN exportieren"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "L2VPN exportieren (Identifier)"
 msgstr "L2VPN exportieren (Identifier)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Prefix"
 msgstr "Prefix"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ID)"
 msgstr "RIR (ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (URL-Slug)"
 msgstr "RIR (URL-Slug)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "Innerhalb des Prefixes"
 msgstr "Innerhalb des Prefixes"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "Innerhalb und einschließlich Präfix"
 msgstr "Innerhalb und einschließlich Präfix"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Präfixe, die dieses Präfix oder diese IP enthalten"
 msgstr "Präfixe, die dieses Präfix oder diese IP enthalten"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Länge der Maske"
 msgstr "Länge der Maske"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "VLAN-Nummer (1-4094)"
 msgstr "VLAN-Nummer (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Adresse"
 msgstr "Adresse"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Bereiche, die dieses Präfix oder diese IP enthalten"
 msgstr "Bereiche, die dieses Präfix oder diese IP enthalten"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Übergeordnetes Präfix"
 msgstr "Übergeordnetes Präfix"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Virtuelle Maschine (Name)"
 msgstr "Virtuelle Maschine (Name)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Virtuelle Maschine (ID)"
 msgstr "Virtuelle Maschine (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Schnittstelle (Name)"
 msgstr "Schnittstelle (Name)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "VM-Schnittstelle (Name)"
 msgstr "VM-Schnittstelle (Name)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "VM-Schnittstelle (ID)"
 msgstr "VM-Schnittstelle (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "FHRP-Gruppe (ID)"
 msgstr "FHRP-Gruppe (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Ist einer Schnittstelle zugewiesen"
 msgstr "Ist einer Schnittstelle zugewiesen"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "Ist zugewiesen"
 msgstr "Ist zugewiesen"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Dienst (ID)"
 msgstr "Dienst (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
-msgstr "NAT innerhalb der IP-Adresse (ID)"
+msgstr "NAT inside IP-Adresse (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Zugewiesene Schnittstelle"
 msgstr "Zugewiesene Schnittstelle"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Zugewiesene VM-Schnittstelle"
 msgstr "Zugewiesene VM-Schnittstelle"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "IP-Adresse (ID)"
 msgstr "IP-Adresse (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "IP-Adresse"
 msgstr "IP-Adresse"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "Primäre IPv4 (ID)"
 msgstr "Primäre IPv4 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "Primäre IPv6 (ID)"
 msgstr "Primäre IPv6 (ID)"
 
 
@@ -9959,7 +9954,7 @@ msgstr "Ziel der Route"
 #: netbox/templates/ipam/aggregate.html:11
 #: netbox/templates/ipam/aggregate.html:11
 #: netbox/templates/ipam/prefix.html:38
 #: netbox/templates/ipam/prefix.html:38
 msgid "Aggregate"
 msgid "Aggregate"
-msgstr "Aggregat"
+msgstr "Aggregieren"
 
 
 #: netbox/ipam/forms/model_forms.py:135 netbox/templates/ipam/asnrange.html:12
 #: netbox/ipam/forms/model_forms.py:135 netbox/templates/ipam/asnrange.html:12
 msgid "ASN Range"
 msgid "ASN Range"
@@ -9967,7 +9962,7 @@ msgstr "ASN-Bereich"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Standort-/VLAN-Zuweisung"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -10095,9 +10090,7 @@ msgstr "ASN-Bereiche"
 #: netbox/ipam/models/asns.py:72
 #: netbox/ipam/models/asns.py:72
 #, python-brace-format
 #, python-brace-format
 msgid "Starting ASN ({start}) must be lower than ending ASN ({end})."
 msgid "Starting ASN ({start}) must be lower than ending ASN ({end})."
-msgstr ""
-"ASN wird gestartet ({start}) muss niedriger sein als das Ende der ASN "
-"({end})."
+msgstr "Der ASN  ({start}) muss niedriger sein als das letzte ASN ({end})."
 
 
 #: netbox/ipam/models/asns.py:104
 #: netbox/ipam/models/asns.py:104
 msgid "Regional Internet Registry responsible for this AS number space"
 msgid "Regional Internet Registry responsible for this AS number space"
@@ -10171,7 +10164,7 @@ msgstr "Aggregat"
 
 
 #: netbox/ipam/models/ip.py:116
 #: netbox/ipam/models/ip.py:116
 msgid "aggregates"
 msgid "aggregates"
-msgstr "Aggregate"
+msgstr "aggregiert"
 
 
 #: netbox/ipam/models/ip.py:132
 #: netbox/ipam/models/ip.py:132
 msgid "Cannot create aggregate with /0 mask."
 msgid "Cannot create aggregate with /0 mask."
@@ -10227,7 +10220,8 @@ msgstr "ist ein Pool"
 #: netbox/ipam/models/ip.py:267
 #: netbox/ipam/models/ip.py:267
 msgid "All IP addresses within this prefix are considered usable"
 msgid "All IP addresses within this prefix are considered usable"
 msgstr ""
 msgstr ""
-"Alle IP-Adressen innerhalb dieses Prefixes werden als nutzbar betrachtet"
+"Alle IP-Adressen (inklusive Netzwerk- und Broadcast-Adresse) innerhalb "
+"dieses Prefixes werden als nutzbar betrachtet"
 
 
 #: netbox/ipam/models/ip.py:270 netbox/ipam/models/ip.py:537
 #: netbox/ipam/models/ip.py:270 netbox/ipam/models/ip.py:537
 msgid "mark utilized"
 msgid "mark utilized"
@@ -10503,7 +10497,7 @@ msgstr "einzigartigen Raum erzwingen"
 
 
 #: netbox/ipam/models/vrfs.py:43
 #: netbox/ipam/models/vrfs.py:43
 msgid "Prevent duplicate prefixes/IP addresses within this VRF"
 msgid "Prevent duplicate prefixes/IP addresses within this VRF"
-msgstr "Vermeiden Sie doppelte Präfixe/IP-Adressen in diesem VRF"
+msgstr "Vermeiden Sie doppelte Präfixe/IP-Adressen in dieser VRF"
 
 
 #: netbox/ipam/models/vrfs.py:63 netbox/netbox/navigation/menu.py:186
 #: netbox/ipam/models/vrfs.py:63 netbox/netbox/navigation/menu.py:186
 #: netbox/netbox/navigation/menu.py:188
 #: netbox/netbox/navigation/menu.py:188
@@ -10524,7 +10518,7 @@ msgstr "Routenziele"
 
 
 #: netbox/ipam/tables/asn.py:52
 #: netbox/ipam/tables/asn.py:52
 msgid "ASDOT"
 msgid "ASDOT"
-msgstr "ALS PUNKT"
+msgstr "ASDOT"
 
 
 #: netbox/ipam/tables/asn.py:57
 #: netbox/ipam/tables/asn.py:57
 msgid "Site Count"
 msgid "Site Count"
@@ -11552,7 +11546,7 @@ msgstr ""
 #: netbox/netbox/registry.py:14
 #: netbox/netbox/registry.py:14
 #, python-brace-format
 #, python-brace-format
 msgid "Invalid store: {key}"
 msgid "Invalid store: {key}"
-msgstr "Ungültiger Shop: {key}"
+msgstr "Ungültiger Store: {key}"
 
 
 #: netbox/netbox/registry.py:17
 #: netbox/netbox/registry.py:17
 msgid "Cannot add stores to registry after initialization"
 msgid "Cannot add stores to registry after initialization"
@@ -12431,7 +12425,7 @@ msgstr "Warteschlange"
 
 
 #: netbox/templates/core/rq_task.html:65
 #: netbox/templates/core/rq_task.html:65
 msgid "Timeout"
 msgid "Timeout"
-msgstr "Auszeit"
+msgstr "Timeout"
 
 
 #: netbox/templates/core/rq_task.html:69
 #: netbox/templates/core/rq_task.html:69
 msgid "Result TTL"
 msgid "Result TTL"
@@ -12501,7 +12495,7 @@ msgstr "Anzahl fehlgeschlagener Jobs"
 
 
 #: netbox/templates/core/rq_worker.html:75
 #: netbox/templates/core/rq_worker.html:75
 msgid "Total working time"
 msgid "Total working time"
-msgstr "Gesamtarbeitszeit"
+msgstr "Gesamtlaufzeit"
 
 
 #: netbox/templates/core/rq_worker.html:76
 #: netbox/templates/core/rq_worker.html:76
 msgid "seconds"
 msgid "seconds"
@@ -12827,7 +12821,7 @@ msgstr "Fehler beim Rendern der Vorlage"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr "Diesem Gerät wurde keine Konfigurationsvorlage zugewiesen."
+msgstr ""
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
@@ -14098,7 +14092,7 @@ msgstr "Hilfecenter"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Django-Admin"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14513,7 +14507,6 @@ msgstr "Virtuelles Laufwerk hinzufügen"
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
 msgstr ""
 msgstr ""
-"Für diese virtuelle Maschine wurde keine Konfigurationsvorlage zugewiesen."
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -14540,11 +14533,11 @@ msgstr "Secret anzeigen"
 #: netbox/vpn/forms/model_forms.py:316 netbox/vpn/forms/model_forms.py:352
 #: netbox/vpn/forms/model_forms.py:316 netbox/vpn/forms/model_forms.py:352
 #: netbox/vpn/tables/crypto.py:68 netbox/vpn/tables/crypto.py:134
 #: netbox/vpn/tables/crypto.py:68 netbox/vpn/tables/crypto.py:134
 msgid "Proposals"
 msgid "Proposals"
-msgstr "Vorschläge"
+msgstr "Proposals"
 
 
 #: netbox/templates/vpn/ikeproposal.html:10
 #: netbox/templates/vpn/ikeproposal.html:10
 msgid "IKE Proposal"
 msgid "IKE Proposal"
-msgstr "IKE-Vorschlag"
+msgstr "IKE- Proposal"
 
 
 #: netbox/templates/vpn/ikeproposal.html:21 netbox/vpn/forms/bulk_edit.py:97
 #: netbox/templates/vpn/ikeproposal.html:21 netbox/vpn/forms/bulk_edit.py:97
 #: netbox/vpn/forms/bulk_import.py:145 netbox/vpn/forms/filtersets.py:101
 #: netbox/vpn/forms/bulk_import.py:145 netbox/vpn/forms/filtersets.py:101
@@ -14575,7 +14568,7 @@ msgstr "DH-Gruppe"
 #: netbox/templates/vpn/ipsecproposal.html:29
 #: netbox/templates/vpn/ipsecproposal.html:29
 #: netbox/vpn/forms/bulk_edit.py:182 netbox/vpn/models/crypto.py:146
 #: netbox/vpn/forms/bulk_edit.py:182 netbox/vpn/models/crypto.py:146
 msgid "SA lifetime (seconds)"
 msgid "SA lifetime (seconds)"
-msgstr "SA-Lebensdauer (Sekunden)"
+msgstr "SA-Gültigkeitsdauer (Sekunden)"
 
 
 #: netbox/templates/vpn/ipsecpolicy.html:10
 #: netbox/templates/vpn/ipsecpolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:66 netbox/vpn/tables/crypto.py:170
 #: netbox/templates/vpn/ipsecprofile.html:66 netbox/vpn/tables/crypto.py:170
@@ -14660,7 +14653,7 @@ msgstr "Peer-Abschlusspunkt"
 
 
 #: netbox/templates/wireless/inc/authentication_attrs.html:12
 #: netbox/templates/wireless/inc/authentication_attrs.html:12
 msgid "Cipher"
 msgid "Cipher"
-msgstr "Chiffre"
+msgstr "Verschlüsselungsalgorithmus"
 
 
 #: netbox/templates/wireless/inc/authentication_attrs.html:16
 #: netbox/templates/wireless/inc/authentication_attrs.html:16
 msgid "PSK"
 msgid "PSK"
@@ -15638,8 +15631,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} gehört zu einerm anderen Standort ({device_site}) als das Cluster "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15977,7 +15968,7 @@ msgstr "SA-Lebendauer"
 #: netbox/wireless/forms/filtersets.py:64
 #: netbox/wireless/forms/filtersets.py:64
 #: netbox/wireless/forms/filtersets.py:98
 #: netbox/wireless/forms/filtersets.py:98
 msgid "Pre-shared key"
 msgid "Pre-shared key"
-msgstr "Vorab geteilter Schlüssel (Pre-shared key)"
+msgstr "Vorab geteilter Schlüssel (PSK)"
 
 
 #: netbox/vpn/forms/bulk_edit.py:237 netbox/vpn/forms/bulk_import.py:239
 #: netbox/vpn/forms/bulk_edit.py:237 netbox/vpn/forms/bulk_import.py:239
 #: netbox/vpn/forms/filtersets.py:199 netbox/vpn/forms/model_forms.py:370
 #: netbox/vpn/forms/filtersets.py:199 netbox/vpn/forms/model_forms.py:370
@@ -15993,7 +15984,7 @@ msgstr "IPSec-Richtlinie"
 
 
 #: netbox/vpn/forms/bulk_import.py:50
 #: netbox/vpn/forms/bulk_import.py:50
 msgid "Tunnel encapsulation"
 msgid "Tunnel encapsulation"
-msgstr "Tunnelkapselung"
+msgstr "Tunnel Encapsulation"
 
 
 #: netbox/vpn/forms/bulk_import.py:83
 #: netbox/vpn/forms/bulk_import.py:83
 msgid "Operational role"
 msgid "Operational role"
@@ -16140,7 +16131,7 @@ msgstr "Vorschläge"
 
 
 #: netbox/vpn/models/crypto.py:91 netbox/wireless/models.py:39
 #: netbox/vpn/models/crypto.py:91 netbox/wireless/models.py:39
 msgid "pre-shared key"
 msgid "pre-shared key"
-msgstr "vorab geteilter Schlüssel"
+msgstr "vorab geteilter Schlüssel (PSK)"
 
 
 #: netbox/vpn/models/crypto.py:105
 #: netbox/vpn/models/crypto.py:105
 msgid "IKE policies"
 msgid "IKE policies"
@@ -16273,7 +16264,7 @@ msgstr "SA-Lebensdauer"
 
 
 #: netbox/vpn/tables/crypto.py:71
 #: netbox/vpn/tables/crypto.py:71
 msgid "Pre-shared Key"
 msgid "Pre-shared Key"
-msgstr "Vorab geteilter Schlüssel"
+msgstr "Vorab geteilter Schlüssel (PSK)"
 
 
 #: netbox/vpn/tables/crypto.py:103
 #: netbox/vpn/tables/crypto.py:103
 msgid "SA Lifetime (Seconds)"
 msgid "SA Lifetime (Seconds)"
@@ -16390,7 +16381,6 @@ msgstr "Funkverbindungen"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"Beim Einstellen einer Funkentfernung muss eine Einheit angegeben werden"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

Fișier diff suprimat deoarece este prea mare
+ 181 - 172
netbox/translations/en/LC_MESSAGES/django.po


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


+ 125 - 106
netbox/translations/es/LC_MESSAGES/django.po

@@ -4,16 +4,16 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # 
 # Translators:
 # Translators:
-# Jeremy Stretch, 2024
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n"
 "Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -25,7 +25,7 @@ msgstr ""
 #: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
 #: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39
 #: netbox/users/forms/model_forms.py:112
 #: netbox/users/forms/model_forms.py:112
 msgid "Key"
 msgid "Key"
-msgstr "Llave"
+msgstr "Clave"
 
 
 #: netbox/account/tables.py:31 netbox/users/forms/filtersets.py:132
 #: netbox/account/tables.py:31 netbox/users/forms/filtersets.py:132
 msgid "Write Enabled"
 msgid "Write Enabled"
@@ -61,7 +61,7 @@ msgstr "Utilizado por última vez"
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
 #: netbox/users/forms/model_forms.py:124
 #: netbox/users/forms/model_forms.py:124
 msgid "Allowed IPs"
 msgid "Allowed IPs"
-msgstr "IPs permitidas"
+msgstr "IP permitidas"
 
 
 #: netbox/account/views.py:114
 #: netbox/account/views.py:114
 #, python-brace-format
 #, python-brace-format
@@ -117,7 +117,7 @@ msgstr "Activo"
 #: netbox/dcim/choices.py:1659 netbox/virtualization/choices.py:24
 #: netbox/dcim/choices.py:1659 netbox/virtualization/choices.py:24
 #: netbox/virtualization/choices.py:43
 #: netbox/virtualization/choices.py:43
 msgid "Offline"
 msgid "Offline"
-msgstr "Desconectado"
+msgstr "Fuera de línea"
 
 
 #: netbox/circuits/choices.py:25
 #: netbox/circuits/choices.py:25
 msgid "Deprovisioning"
 msgid "Deprovisioning"
@@ -125,7 +125,7 @@ msgstr "Desaprovisionamiento"
 
 
 #: netbox/circuits/choices.py:26
 #: netbox/circuits/choices.py:26
 msgid "Decommissioned"
 msgid "Decommissioned"
-msgstr "Desmantelado"
+msgstr "Retirado"
 
 
 #: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1619
 #: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1619
 #: netbox/tenancy/choices.py:17
 #: netbox/tenancy/choices.py:17
@@ -151,7 +151,7 @@ msgstr "Inactivo"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -163,19 +163,19 @@ msgstr "Región (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
-msgstr "Región (slug)"
+msgstr "Región (babosa)"
 
 
 #: netbox/circuits/filtersets.py:44 netbox/circuits/filtersets.py:211
 #: netbox/circuits/filtersets.py:44 netbox/circuits/filtersets.py:211
 #: netbox/dcim/filtersets.py:128 netbox/dcim/filtersets.py:225
 #: netbox/dcim/filtersets.py:128 netbox/dcim/filtersets.py:225
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Grupo de sitios (ID)"
 msgstr "Grupo de sitios (ID)"
@@ -186,7 +186,7 @@ msgstr "Grupo de sitios (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -256,12 +256,12 @@ msgstr "Sitio"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
-msgstr "Sitio (babosa)"
+msgstr "Sitio (slug)"
 
 
 #: netbox/circuits/filtersets.py:67
 #: netbox/circuits/filtersets.py:67
 msgid "ASN (ID)"
 msgid "ASN (ID)"
@@ -276,15 +276,15 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Proveedor (ID)"
 msgstr "Proveedor (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
-msgstr "Proveedor (babosa)"
+msgstr "Proveedor (slug)"
 
 
 #: netbox/circuits/filtersets.py:167
 #: netbox/circuits/filtersets.py:167
 msgid "Provider account (ID)"
 msgid "Provider account (ID)"
@@ -311,8 +311,8 @@ msgstr "Tipo de circuito (slug)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Sitio (ID)"
 msgstr "Sitio (ID)"
@@ -394,7 +394,7 @@ msgstr "Grupo de circuitos (slug)"
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:175
 #: netbox/netbox/navigation/menu.py:172 netbox/netbox/navigation/menu.py:175
 #: netbox/templates/circuits/provider.html:23
 #: netbox/templates/circuits/provider.html:23
 msgid "ASNs"
 msgid "ASNs"
-msgstr "ASNs"
+msgstr "ASN"
 
 
 #: netbox/circuits/forms/bulk_edit.py:34 netbox/circuits/forms/bulk_edit.py:56
 #: netbox/circuits/forms/bulk_edit.py:34 netbox/circuits/forms/bulk_edit.py:56
 #: netbox/circuits/forms/bulk_edit.py:83
 #: netbox/circuits/forms/bulk_edit.py:83
@@ -666,7 +666,7 @@ msgstr "Cuenta de proveedor"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1101,7 +1101,7 @@ msgstr "Asignación"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1234,7 +1234,7 @@ msgstr "Asignaciones de grupos de circuitos"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "terminación"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1296,15 +1296,11 @@ msgstr "terminaciones de circuitos"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Una terminación de circuito debe conectarse a un sitio o a una red de "
-"proveedores."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Una terminación de circuito no puede conectarse tanto a un sitio como a una "
-"red de proveedores."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1541,7 +1537,7 @@ msgstr "Tasa de compromiso"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2941,7 +2937,7 @@ msgid "Parent site group (slug)"
 msgstr "Grupo de sitios principal (slug)"
 msgstr "Grupo de sitios principal (slug)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Grupo (ID)"
 msgstr "Grupo (ID)"
 
 
@@ -2999,15 +2995,15 @@ msgstr "Tipo de bastidor (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Función (ID)"
 msgstr "Función (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Rol (babosa)"
 msgstr "Rol (babosa)"
@@ -3205,7 +3201,7 @@ msgstr "VDC (IDENTIFICACIÓN)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Modelo de dispositivo"
 msgstr "Modelo de dispositivo"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Interfaz (ID)"
 msgstr "Interfaz (ID)"
@@ -3219,8 +3215,8 @@ msgid "Module bay (ID)"
 msgstr "Bahía de módulos (ID)"
 msgstr "Bahía de módulos (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Dispositivo (ID)"
 msgstr "Dispositivo (ID)"
@@ -3229,8 +3225,8 @@ msgstr "Dispositivo (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Rack (nombre)"
 msgstr "Rack (nombre)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Dispositivo (nombre)"
 msgstr "Dispositivo (nombre)"
@@ -3282,9 +3278,9 @@ msgstr "VID asignado"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3311,19 +3307,19 @@ msgstr "VID asignado"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (ROJO)"
 msgstr "VRF (ROJO)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3485,7 +3481,7 @@ msgstr "Zona horaria"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3736,7 +3732,7 @@ msgid "Device Type"
 msgstr "Tipo de dispositivo"
 msgstr "Tipo de dispositivo"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3844,7 +3840,7 @@ msgstr "Clúster"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4096,11 +4092,11 @@ msgstr "VLAN etiquetadas"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "Agregar VLAN etiquetadas"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "Eliminar las VLAN etiquetadas"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4148,7 +4144,7 @@ msgstr "Conmutación 802.1Q"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "Añadir/eliminar"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4226,7 +4222,7 @@ msgstr "Nombre de la función asignada"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Modelo tipo bastidor"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4235,11 +4231,12 @@ msgstr "Dirección del flujo de aire"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "Se debe establecer el ancho si no se especifica un tipo de bastidor."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
 msgstr ""
 msgstr ""
+"Se debe establecer la altura en U si no se especifica un tipo de bastidor."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4905,6 +4902,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Se admiten rangos alfanuméricos para la creación masiva. No se admiten "
+"mayúsculas y minúsculas ni tipos mezclados dentro de un mismo rango (por "
+"ejemplo: <code>[edad, ex] -0/0/ [0-9]</code>). El token "
+"<code>{module}</code>, si está presente, se reemplazará automáticamente por "
+"el valor de posición al crear un nuevo módulo."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6844,7 +6846,7 @@ msgstr "Bahías de módulos"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Artículos de inventario"
 msgstr "Artículos de inventario"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Bahía de módulos"
 msgstr "Bahía de módulos"
@@ -7573,12 +7575,12 @@ msgstr "Marcadores"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Muestra tus marcadores personales"
 msgstr "Muestra tus marcadores personales"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Tipo de acción desconocido para una regla de evento: {action_type}"
 msgstr "Tipo de acción desconocido para una regla de evento: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "No se puede importar la canalización de eventos {name} error: {error}"
 msgstr "No se puede importar la canalización de eventos {name} error: {error}"
@@ -9368,129 +9370,129 @@ msgstr "Exportación de L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "Exportación de L2VPN (identificador)"
 msgstr "Exportación de L2VPN (identificador)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Prefijo"
 msgstr "Prefijo"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ID)"
 msgstr "RIR (ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (babosa)"
 msgstr "RIR (babosa)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "Dentro del prefijo"
 msgstr "Dentro del prefijo"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "Dentro del prefijo e incluído"
 msgstr "Dentro del prefijo e incluído"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Prefijos que contienen este prefijo o IP"
 msgstr "Prefijos que contienen este prefijo o IP"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Longitud de la máscara"
 msgstr "Longitud de la máscara"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "Número de VLAN (1-4094)"
 msgstr "Número de VLAN (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Dirección"
 msgstr "Dirección"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Intervalos que contienen este prefijo o IP"
 msgstr "Intervalos que contienen este prefijo o IP"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Prefijo principal"
 msgstr "Prefijo principal"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Máquina virtual (nombre)"
 msgstr "Máquina virtual (nombre)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Máquina virtual (ID)"
 msgstr "Máquina virtual (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Interfaz (nombre)"
 msgstr "Interfaz (nombre)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "Interfaz VM (nombre)"
 msgstr "Interfaz VM (nombre)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "Interfaz de máquina virtual (ID)"
 msgstr "Interfaz de máquina virtual (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "Grupo FHRP (ID)"
 msgstr "Grupo FHRP (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Está asignado a una interfaz"
 msgstr "Está asignado a una interfaz"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "Está asignado"
 msgstr "Está asignado"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Servicio (ID)"
 msgstr "Servicio (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "Dirección IP interna de NAT (ID)"
 msgstr "Dirección IP interna de NAT (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Interfaz asignada"
 msgstr "Interfaz asignada"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Interfaz VM asignada"
 msgstr "Interfaz VM asignada"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "Dirección IP (ID)"
 msgstr "Dirección IP (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "dirección IP"
 msgstr "dirección IP"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "IPv4 principal (ID)"
 msgstr "IPv4 principal (ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "IPv6 principal (ID)"
 msgstr "IPv6 principal (ID)"
 
 
@@ -9714,11 +9716,13 @@ msgstr "Conviértase en la IP principal del dispositivo asignado"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Está fuera de banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgstr ""
 msgstr ""
+"Designe esto como la dirección IP fuera de banda para el dispositivo "
+"asignado"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9729,10 +9733,13 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"No se especificó ningún dispositivo; no se puede configurar como IP fuera de"
+" banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
 msgstr ""
 msgstr ""
+"No se puede configurar la IP fuera de banda para las máquinas virtuales"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9742,6 +9749,8 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"No se especificó ninguna interfaz; no se puede configurar como IP fuera de "
+"banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9900,7 +9909,7 @@ msgstr "Gama ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Asignación de sitio/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9918,7 +9927,7 @@ msgstr "Haga que esta sea la IP principal del dispositivo/VM"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Convierta esta en la IP fuera de banda del dispositivo"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9931,10 +9940,14 @@ msgstr "Solo se puede asignar una dirección IP a un único objeto."
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"No se puede reasignar la dirección IP principal para el dispositivo o "
+"máquina virtual principal"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgstr ""
 msgstr ""
+"No se puede reasignar la dirección IP fuera de banda para el dispositivo "
+"principal"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9948,6 +9961,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Solo las direcciones IP asignadas a la interfaz de un dispositivo se pueden "
+"designar como IP fuera de banda de un dispositivo."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10352,11 +10367,15 @@ msgstr "No se puede establecer scope_id sin scope_type."
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgstr ""
 msgstr ""
+"El ID de VLAN inicial está dentro del rango ({value}) no puede ser inferior "
+"a {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgstr ""
 msgstr ""
+"El ID de VLAN final está dentro del rango ({value}) no puede superar "
+"{maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10364,6 +10383,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"El ID de VLAN final dentro del rango debe ser mayor o igual que el ID de "
+"VLAN inicial ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12739,7 +12760,7 @@ msgstr "Descargar"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Error al renderizar la plantilla"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13612,7 +13633,7 @@ msgstr "Corre otra vez"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "No se pudieron cargar los scripts desde el módulo %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -14013,7 +14034,7 @@ msgstr "Centro de ayuda"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Administrador de Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15515,12 +15536,12 @@ msgstr "Memoria (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "Disco (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "Tamaño (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15548,8 +15569,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} pertenece a un sitio diferente ({device_site}) que el clúster "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15735,19 +15754,19 @@ msgstr "GRIS"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16289,7 +16308,7 @@ msgstr "enlaces inalámbricos"
 
 
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
-msgstr "Debe especificar una unidad al configurar una distancia inalámbrica"
+msgstr ""
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 65 - 55
netbox/translations/fr/LC_MESSAGES/django.po

@@ -11,8 +11,10 @@
 # Jean Benoit <jean@unistra.fr>, 2024
 # Jean Benoit <jean@unistra.fr>, 2024
 # thomas rivemale, 2024
 # thomas rivemale, 2024
 # Jeff Gehlbach, 2024
 # Jeff Gehlbach, 2024
-# Jeremy Stretch, 2024
 # marcpaulchand <paul@u129.fr>, 2025
 # marcpaulchand <paul@u129.fr>, 2025
+# Jeremy Stretch, 2025
+# Mathieu, 2025
+# Étienne Brunel, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
@@ -21,7 +23,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: marcpaulchand <paul@u129.fr>, 2025\n"
+"Last-Translator: Étienne Brunel, 2025\n"
 "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n"
 "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -935,7 +937,7 @@ msgstr "État opérationnel"
 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:59
 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:59
 #: netbox/wireless/forms/bulk_import.py:101
 #: netbox/wireless/forms/bulk_import.py:101
 msgid "Assigned tenant"
 msgid "Assigned tenant"
-msgstr "Locataire associé"
+msgstr "Entité associée"
 
 
 #: netbox/circuits/forms/bulk_import.py:120
 #: netbox/circuits/forms/bulk_import.py:120
 #: netbox/templates/circuits/inc/circuit_termination.html:6
 #: netbox/templates/circuits/inc/circuit_termination.html:6
@@ -1242,7 +1244,7 @@ msgstr "Assignations de groupes de circuits"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "résiliation"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1304,15 +1306,11 @@ msgstr "terminaisons de circuits"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Une terminaison de circuit doit être connectée à un site ou à un réseau "
-"fournisseur."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Une terminaison de circuit ne peut pas être connectée à la fois à un site et"
-" à un réseau fournisseur."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -3205,7 +3203,7 @@ msgstr "Est un membre virtuel du châssis"
 
 
 #: netbox/dcim/filtersets.py:1164
 #: netbox/dcim/filtersets.py:1164
 msgid "OOB IP (ID)"
 msgid "OOB IP (ID)"
-msgstr "ASTUCE SUR L'EMPLOI (ID)"
+msgstr "GESTION HORS BANDE (ID)"
 
 
 #: netbox/dcim/filtersets.py:1168
 #: netbox/dcim/filtersets.py:1168
 msgid "Has virtual device context"
 msgid "Has virtual device context"
@@ -3334,7 +3332,7 @@ msgstr "VRF (RD)"
 #: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
-msgstr "L2VPN (IDENTIFIANT)"
+msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
@@ -3380,7 +3378,7 @@ msgstr "Contexte du périphérique virtuel"
 
 
 #: netbox/dcim/filtersets.py:1719
 #: netbox/dcim/filtersets.py:1719
 msgid "Virtual Device Context (Identifier)"
 msgid "Virtual Device Context (Identifier)"
-msgstr "Contexte du périphérique virtuel (identifiant)"
+msgstr "Contexte du périphérique virtuel (Identifiant)"
 
 
 #: netbox/dcim/filtersets.py:1730
 #: netbox/dcim/filtersets.py:1730
 #: netbox/templates/wireless/wirelesslan.html:11
 #: netbox/templates/wireless/wirelesslan.html:11
@@ -3418,12 +3416,12 @@ msgstr "Master (nom)"
 
 
 #: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
 #: netbox/dcim/filtersets.py:1939 netbox/tenancy/filtersets.py:245
 msgid "Tenant (ID)"
 msgid "Tenant (ID)"
-msgstr "Locataire (ID)"
+msgstr "Entité (ID)"
 
 
 #: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
 #: netbox/dcim/filtersets.py:1945 netbox/extras/filtersets.py:618
 #: netbox/tenancy/filtersets.py:251
 #: netbox/tenancy/filtersets.py:251
 msgid "Tenant (slug)"
 msgid "Tenant (slug)"
-msgstr "Locataire (slug)"
+msgstr "Entité (slug)"
 
 
 #: netbox/dcim/filtersets.py:1981 netbox/dcim/forms/filtersets.py:1077
 #: netbox/dcim/filtersets.py:1981 netbox/dcim/forms/filtersets.py:1077
 msgid "Unterminated"
 msgid "Unterminated"
@@ -3474,7 +3472,7 @@ msgstr "Téléphone de contact"
 
 
 #: netbox/dcim/forms/bulk_edit.py:144
 #: netbox/dcim/forms/bulk_edit.py:144
 msgid "Contact E-mail"
 msgid "Contact E-mail"
-msgstr "Adresse électronique de contact"
+msgstr "Adresse mail de contact"
 
 
 #: netbox/dcim/forms/bulk_edit.py:147 netbox/dcim/forms/bulk_import.py:123
 #: netbox/dcim/forms/bulk_edit.py:147 netbox/dcim/forms/bulk_import.py:123
 #: netbox/dcim/forms/model_forms.py:128
 #: netbox/dcim/forms/model_forms.py:128
@@ -3691,7 +3689,7 @@ msgstr "Étiquette d'actif"
 #: netbox/templates/dcim/moduletype.html:41 netbox/templates/dcim/rack.html:65
 #: netbox/templates/dcim/moduletype.html:41 netbox/templates/dcim/rack.html:65
 #: netbox/templates/dcim/racktype.html:28
 #: netbox/templates/dcim/racktype.html:28
 msgid "Airflow"
 msgid "Airflow"
-msgstr "Débit d'air"
+msgstr "Flux d'air"
 
 
 #: netbox/dcim/forms/bulk_edit.py:446 netbox/dcim/forms/bulk_edit.py:925
 #: netbox/dcim/forms/bulk_edit.py:446 netbox/dcim/forms/bulk_edit.py:925
 #: netbox/dcim/forms/bulk_import.py:344 netbox/dcim/forms/bulk_import.py:347
 #: netbox/dcim/forms/bulk_import.py:344 netbox/dcim/forms/bulk_import.py:347
@@ -3732,7 +3730,7 @@ msgstr "Plateforme par défaut"
 #: netbox/dcim/forms/bulk_edit.py:511 netbox/dcim/forms/bulk_edit.py:570
 #: netbox/dcim/forms/bulk_edit.py:511 netbox/dcim/forms/bulk_edit.py:570
 #: netbox/dcim/forms/filtersets.py:502 netbox/dcim/forms/filtersets.py:622
 #: netbox/dcim/forms/filtersets.py:502 netbox/dcim/forms/filtersets.py:622
 msgid "Part number"
 msgid "Part number"
-msgstr "Numéro de pièce"
+msgstr "Référence de pièce"
 
 
 #: netbox/dcim/forms/bulk_edit.py:515
 #: netbox/dcim/forms/bulk_edit.py:515
 msgid "U height"
 msgid "U height"
@@ -4233,7 +4231,7 @@ msgstr "Unité de poids de la baie"
 
 
 #: netbox/dcim/forms/bulk_import.py:245
 #: netbox/dcim/forms/bulk_import.py:245
 msgid "Name of assigned tenant"
 msgid "Name of assigned tenant"
-msgstr "Nom du locataire associé"
+msgstr "Nom de l'entité associée"
 
 
 #: netbox/dcim/forms/bulk_import.py:257
 #: netbox/dcim/forms/bulk_import.py:257
 msgid "Name of assigned role"
 msgid "Name of assigned role"
@@ -4250,11 +4248,11 @@ msgstr "Direction du flux d'air"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "La largeur doit être définie si aucun type de rack n'est spécifié."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "La hauteur U doit être définie si aucun type de rack n'est spécifié."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4340,7 +4338,7 @@ msgstr "Baie attribuée (le cas échéant)"
 
 
 #: netbox/dcim/forms/bulk_import.py:582
 #: netbox/dcim/forms/bulk_import.py:582
 msgid "Face"
 msgid "Face"
-msgstr "Visage"
+msgstr "Orientation"
 
 
 #: netbox/dcim/forms/bulk_import.py:585
 #: netbox/dcim/forms/bulk_import.py:585
 msgid "Mounted rack face"
 msgid "Mounted rack face"
@@ -4427,11 +4425,11 @@ msgstr "Interface pour les parents"
 #: netbox/virtualization/forms/bulk_import.py:162
 #: netbox/virtualization/forms/bulk_import.py:162
 #: netbox/virtualization/forms/model_forms.py:313
 #: netbox/virtualization/forms/model_forms.py:313
 msgid "Bridged interface"
 msgid "Bridged interface"
-msgstr "Interface pontée"
+msgstr "Interface switchée"
 
 
 #: netbox/dcim/forms/bulk_import.py:869
 #: netbox/dcim/forms/bulk_import.py:869
 msgid "Lag"
 msgid "Lag"
-msgstr "Retard"
+msgstr "Lag"
 
 
 #: netbox/dcim/forms/bulk_import.py:873
 #: netbox/dcim/forms/bulk_import.py:873
 msgid "Parent LAG interface"
 msgid "Parent LAG interface"
@@ -4460,7 +4458,7 @@ msgstr "Mode PoE"
 
 
 #: netbox/dcim/forms/bulk_import.py:901
 #: netbox/dcim/forms/bulk_import.py:901
 msgid "Poe type"
 msgid "Poe type"
-msgstr "Type de poteau"
+msgstr "Type de POE"
 
 
 #: netbox/dcim/forms/bulk_import.py:910
 #: netbox/dcim/forms/bulk_import.py:910
 #: netbox/virtualization/forms/bulk_import.py:168
 #: netbox/virtualization/forms/bulk_import.py:168
@@ -4919,6 +4917,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Les plages alphanumériques sont prises en charge pour la création en masse. "
+"Les mélanges de casses ou de types au sein d'une même plage ne sont pas pris"
+" en charge (exemple : <code>[ge,xe]-0/0/[0-9]</code>). Le jeton "
+"<code>{module}</code>, s'il est présent, sera automatiquement remplacé par "
+"la valeur de position lors de la création d'un nouveau module."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -7624,7 +7627,7 @@ msgstr "Type de cluster (slug)"
 #: netbox/extras/filtersets.py:601 netbox/tenancy/forms/forms.py:16
 #: netbox/extras/filtersets.py:601 netbox/tenancy/forms/forms.py:16
 #: netbox/tenancy/forms/forms.py:39
 #: netbox/tenancy/forms/forms.py:39
 msgid "Tenant group"
 msgid "Tenant group"
-msgstr "Groupe de locataires"
+msgstr "Groupe d'entitées"
 
 
 #: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
 #: netbox/extras/filtersets.py:607 netbox/tenancy/filtersets.py:188
 #: netbox/tenancy/filtersets.py:208
 #: netbox/tenancy/filtersets.py:208
@@ -7988,7 +7991,7 @@ msgstr "Clusters"
 #: netbox/extras/forms/filtersets.py:391
 #: netbox/extras/forms/filtersets.py:391
 #: netbox/extras/forms/model_forms.py:557
 #: netbox/extras/forms/model_forms.py:557
 msgid "Tenant groups"
 msgid "Tenant groups"
-msgstr "Groupes de locataires"
+msgstr "Groupes d'entitées"
 
 
 #: netbox/extras/forms/model_forms.py:49
 #: netbox/extras/forms/model_forms.py:49
 msgid "The type(s) of object that have this custom field"
 msgid "The type(s) of object that have this custom field"
@@ -8149,7 +8152,7 @@ msgstr "Groupe de notifications"
 #: netbox/extras/forms/model_forms.py:562 netbox/netbox/navigation/menu.py:26
 #: netbox/extras/forms/model_forms.py:562 netbox/netbox/navigation/menu.py:26
 #: netbox/tenancy/tables/tenants.py:22
 #: netbox/tenancy/tables/tenants.py:22
 msgid "Tenants"
 msgid "Tenants"
-msgstr "Locataires"
+msgstr "Entité"
 
 
 #: netbox/extras/forms/model_forms.py:606
 #: netbox/extras/forms/model_forms.py:606
 msgid "Data is populated from the remote source selected below."
 msgid "Data is populated from the remote source selected below."
@@ -8434,8 +8437,8 @@ msgid ""
 msgstr ""
 msgstr ""
 "Expression régulière à appliquer aux valeurs des champs de texte. Utilisez ^"
 "Expression régulière à appliquer aux valeurs des champs de texte. Utilisez ^"
 " et $ pour forcer la mise en correspondance de la chaîne entière. Par "
 " et $ pour forcer la mise en correspondance de la chaîne entière. Par "
-"exemple, <code>^ [DE A À Z]{3}$</code> limitera les valeurs à exactement "
-"trois lettres majuscules."
+"exemple, <code>^[A-Z]{3}$</code> limitera les valeurs à exactement trois "
+"lettres majuscules."
 
 
 #: netbox/extras/models/customfields.py:201
 #: netbox/extras/models/customfields.py:201
 msgid "choice set"
 msgid "choice set"
@@ -8740,10 +8743,9 @@ msgid ""
 msgstr ""
 msgstr ""
 "Modèle Jinja2 pour un corps de requête personnalisé. Si ce champ est vide, "
 "Modèle Jinja2 pour un corps de requête personnalisé. Si ce champ est vide, "
 "un objet JSON représentant la modification sera inclus. Les données "
 "un objet JSON représentant la modification sera inclus. Les données "
-"contextuelles disponibles incluent : <code>événement</code>, "
-"<code>modèle</code>, <code>horodatage</code>, <code>nom "
-"d'utilisateur</code>, <code>identifiant_demande</code>, et "
-"<code>données</code>."
+"contextuelles disponibles incluent : <code>event</code>, <code>model</code>,"
+" <code>timestamp</code>, <code>username</code>, <code>request_id</code>, et "
+"<code>data</code>."
 
 
 #: netbox/extras/models/models.py:204
 #: netbox/extras/models/models.py:204
 msgid "secret"
 msgid "secret"
@@ -8755,10 +8757,10 @@ msgid ""
 "header containing a HMAC hex digest of the payload body using the secret as "
 "header containing a HMAC hex digest of the payload body using the secret as "
 "the key. The secret is not transmitted in the request."
 "the key. The secret is not transmitted in the request."
 msgstr ""
 msgstr ""
-"Lorsqu'elle sera fournie, la demande comprendra un <code>Signature "
-"X-Hook</code> en-tête contenant un condensé hexadécimal HMAC du corps de la "
-"charge utile en utilisant le secret comme clé. Le secret n'est pas transmis "
-"dans la demande."
+"Lorsqu'elle sera fournie, la demande comprendra un <code>X-Hook-"
+"Signature</code> en-tête contenant un condensé hexadécimal HMAC du corps de "
+"la charge utile en utilisant le secret comme clé. Le secret n'est pas "
+"transmis dans la demande."
 
 
 #: netbox/extras/models/models.py:215
 #: netbox/extras/models/models.py:215
 msgid "Enable SSL certificate verification. Disable with caution!"
 msgid "Enable SSL certificate verification. Disable with caution!"
@@ -8841,13 +8843,11 @@ msgid ""
 "context variable named <code>queryset</code>."
 "context variable named <code>queryset</code>."
 msgstr ""
 msgstr ""
 "Code du modèle Jinja2. La liste des objets exportés est transmise sous forme"
 "Code du modèle Jinja2. La liste des objets exportés est transmise sous forme"
-" de variable de contexte nommée <code>ensemble de requêtes</code>."
+" de variable de contexte nommée <code>queryset</code>."
 
 
 #: netbox/extras/models/models.py:410
 #: netbox/extras/models/models.py:410
 msgid "Defaults to <code>text/plain; charset=utf-8</code>"
 msgid "Defaults to <code>text/plain; charset=utf-8</code>"
-msgstr ""
-"La valeur par défaut est <code>texte/plain ; jeu de caractères = "
-"utf-8</code>"
+msgstr "La valeur par défaut est <code>text/plain; charset=utf-8</code>"
 
 
 #: netbox/extras/models/models.py:413
 #: netbox/extras/models/models.py:413
 msgid "file extension"
 msgid "file extension"
@@ -9743,11 +9743,11 @@ msgstr "Faites-en l'adresse IP principale de l'appareil attribué"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Est hors bande"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Désignez-le comme adresse IP hors bande pour l'appareil attribué"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9758,10 +9758,13 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Aucun appareil n'a été spécifié ; impossible de le définir comme IP hors "
+"bande"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
 msgstr ""
 msgstr ""
+"Impossible de définir une adresse IP hors bande pour les machines virtuelles"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9772,6 +9775,7 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Aucune interface spécifiée ; impossible de définir comme IP hors bande"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9930,7 +9934,7 @@ msgstr "Plage ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Affectation de site/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9949,7 +9953,7 @@ msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Choisissez cette adresse IP hors bande pour l'appareil"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9962,10 +9966,12 @@ msgstr "Une adresse IP ne peut être attribuée qu'à un seul objet."
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"Impossible de réattribuer l'adresse IP principale à l'appareil parent/à la "
+"machine virtuelle"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
-msgstr ""
+msgstr "Impossible de réattribuer l'adresse IP hors bande à l'appareil parent"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9979,6 +9985,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Seules les adresses IP attribuées à l'interface d'un appareil peuvent être "
+"désignées comme IP hors bande pour un appareil."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10389,11 +10397,14 @@ msgstr "Impossible de définir scope_id sans scope_type."
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgstr ""
 msgstr ""
+"ID de VLAN de démarrage dans la plage ({value}) ne peut pas être inférieur à"
+" {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgstr ""
 msgstr ""
+"Fin de l'ID VLAN dans la plage ({value}) ne peut pas dépasser {maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10401,6 +10412,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"L'ID VLAN final dans la plage doit être supérieur ou égal à l'ID VLAN de "
+"départ ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12787,7 +12800,7 @@ msgstr "Télécharger"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Erreur lors du rendu du modèle"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13322,8 +13335,8 @@ msgstr ""
 "installation de NetBox. Ces paquets sont répertoriés dans "
 "installation de NetBox. Ces paquets sont répertoriés dans "
 "<code>requirements.txt</code> et <code>local_requirements.txt</code>, et "
 "<code>requirements.txt</code> et <code>local_requirements.txt</code>, et "
 "sont normalement installés dans le cadre du processus d'installation ou de "
 "sont normalement installés dans le cadre du processus d'installation ou de "
-"mise à jour. Pour vérifier les paquets installés, exécutez <code>Pip "
-"Freeze</code> depuis la console et comparez la sortie à la liste des paquets"
+"mise à jour. Pour vérifier les paquets installés, exécutez <code>pip "
+"freeze</code> depuis la console et comparez la sortie à la liste des paquets"
 " requis."
 " requis."
 
 
 #: netbox/templates/exceptions/import_error.html:20
 #: netbox/templates/exceptions/import_error.html:20
@@ -13661,7 +13674,7 @@ msgstr "Exécutez à nouveau"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "Impossible de charger les scripts depuis le module %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -14063,7 +14076,7 @@ msgstr "Centre d'aide"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Administrateur Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14900,7 +14913,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Réseaux IPv4/IPv6 autorisés à partir desquels le jeton peut être utilisé. "
 "Réseaux IPv4/IPv6 autorisés à partir desquels le jeton peut être utilisé. "
 "Laissez ce champ vide pour éviter toute restriction. Exemple : "
 "Laissez ce champ vide pour éviter toute restriction. Exemple : "
-"<code>10.1.1.0/24 192.168.10,16/32 2001 : db 8:1 : /64</code>"
+"<code>10.1.1.0/24,192.168.10.16/32,2001:db8:1::/64</code>"
 
 
 #: netbox/users/forms/model_forms.py:175
 #: netbox/users/forms/model_forms.py:175
 msgid "Confirm password"
 msgid "Confirm password"
@@ -15192,7 +15205,7 @@ msgid ""
 "<code>1-5,20-30</code>"
 "<code>1-5,20-30</code>"
 msgstr ""
 msgstr ""
 "Spécifiez une ou plusieurs plages numériques séparées par des virgules. "
 "Spécifiez une ou plusieurs plages numériques séparées par des virgules. "
-"Exemple : <code>1 à 5, 20 à 30</code>"
+"Exemple : <code>1-5,20-30</code>"
 
 
 #: netbox/utilities/forms/fields/array.py:47
 #: netbox/utilities/forms/fields/array.py:47
 #, python-brace-format
 #, python-brace-format
@@ -15594,8 +15607,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} appartient à un autre site ({device_site}) puis le cluster "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -16338,7 +16349,6 @@ msgstr "liaisons sans fil"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"Vous devez spécifier une unité lors du réglage d'une distance sans fil"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 113 - 99
netbox/translations/it/LC_MESSAGES/django.po

@@ -7,16 +7,16 @@
 # Jeff Gehlbach, 2024
 # Jeff Gehlbach, 2024
 # Francesco Lombardo, 2024
 # Francesco Lombardo, 2024
 # rizlas, 2024
 # rizlas, 2024
-# Jeremy Stretch, 2024
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n"
 "Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -154,7 +154,7 @@ msgstr "Inattivo"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -166,8 +166,8 @@ msgstr "Regione (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Regione (slug)"
 msgstr "Regione (slug)"
@@ -177,8 +177,8 @@ msgstr "Regione (slug)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Gruppo del sito (ID)"
 msgstr "Gruppo del sito (ID)"
@@ -189,7 +189,7 @@ msgstr "Gruppo del sito (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -259,8 +259,8 @@ msgstr "Sito"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -279,13 +279,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Provider (ID)"
 msgstr "Provider (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Provider (slug)"
 msgstr "Provider (slug)"
 
 
@@ -314,8 +314,8 @@ msgstr "Tipo di circuito (slug)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Sito (ID)"
 msgstr "Sito (ID)"
@@ -669,7 +669,7 @@ msgstr "Provider account "
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1104,7 +1104,7 @@ msgstr "Assegnazione"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1237,7 +1237,7 @@ msgstr "Assegnazioni di gruppi di circuiti"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "fine"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1299,15 +1299,11 @@ msgstr "terminazioni del circuito"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Una terminazione di circuito deve essere collegata a un sito o alla rete di "
-"un provider."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Una terminazione di circuito non può essere collegata sia a un sito che alla"
-" rete di un provider."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1544,7 +1540,7 @@ msgstr "Tasso di impegno"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2947,7 +2943,7 @@ msgid "Parent site group (slug)"
 msgstr "Gruppo del sito principale (slug)"
 msgstr "Gruppo del sito principale (slug)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Gruppo (ID)"
 msgstr "Gruppo (ID)"
 
 
@@ -3005,15 +3001,15 @@ msgstr "Tipo di rack (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Ruolo (ID)"
 msgstr "Ruolo (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Ruolo (slug)"
 msgstr "Ruolo (slug)"
@@ -3211,7 +3207,7 @@ msgstr "VDC (ID)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Modello del dispositivo"
 msgstr "Modello del dispositivo"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Interfaccia (ID)"
 msgstr "Interfaccia (ID)"
@@ -3225,8 +3221,8 @@ msgid "Module bay (ID)"
 msgstr "Alloggiamento per moduli (ID)"
 msgstr "Alloggiamento per moduli (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Dispositivo (ID)"
 msgstr "Dispositivo (ID)"
@@ -3235,8 +3231,8 @@ msgstr "Dispositivo (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Rack (nome)"
 msgstr "Rack (nome)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Dispositivo (nome)"
 msgstr "Dispositivo (nome)"
@@ -3288,9 +3284,9 @@ msgstr "VID assegnato"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3317,19 +3313,19 @@ msgstr "VID assegnato"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (ROSSO)"
 msgstr "VRF (ROSSO)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3491,7 +3487,7 @@ msgstr "Fuso orario"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3742,7 +3738,7 @@ msgid "Device Type"
 msgstr "Tipo di dispositivo"
 msgstr "Tipo di dispositivo"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3850,7 +3846,7 @@ msgstr "Grappolo"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4102,11 +4098,11 @@ msgstr "Taggato VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "Aggiungi VLAN con tag"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "Rimuovi le VLAN contrassegnate"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4154,7 +4150,7 @@ msgstr "Commutazione 802.1Q"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "Aggiungi/Rimuovi"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4234,7 +4230,7 @@ msgstr "Nome del ruolo assegnato"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Modello tipo rack"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4244,10 +4240,12 @@ msgstr "Direzione del flusso d'aria"
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
 msgstr ""
 msgstr ""
+"La larghezza deve essere impostata se non si specifica un tipo di rack."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
 msgstr ""
 msgstr ""
+"L'altezza U deve essere impostata se non si specifica un tipo di rack."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4914,6 +4912,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Gli intervalli alfanumerici sono supportati per la creazione in blocco. I "
+"casi e i tipi misti all'interno di un unico intervallo non sono supportati "
+"(esempio: <code>[età, ex] -0/0/ [0-9]</code>). Il token "
+"<code>{module}</code>, se presente, verrà automaticamente sostituito con il "
+"valore della posizione durante la creazione di un nuovo modulo."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6869,7 +6872,7 @@ msgstr "Alloggiamenti per moduli"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Articoli di inventario"
 msgstr "Articoli di inventario"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Modulo Bay"
 msgstr "Modulo Bay"
@@ -7601,12 +7604,12 @@ msgstr "Segnalibri"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Mostra i tuoi segnalibri personali"
 msgstr "Mostra i tuoi segnalibri personali"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Tipo di azione sconosciuto per una regola di evento: {action_type}"
 msgstr "Tipo di azione sconosciuto per una regola di evento: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Impossibile importare la pipeline di eventi {name} errore: {error}"
 msgstr "Impossibile importare la pipeline di eventi {name} errore: {error}"
@@ -9394,129 +9397,129 @@ msgstr "Esportazione di L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "Esportazione di L2VPN (identificatore)"
 msgstr "Esportazione di L2VPN (identificatore)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Prefisso"
 msgstr "Prefisso"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ID)"
 msgstr "RIR (ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (lumaca)"
 msgstr "RIR (lumaca)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "All'interno del prefisso"
 msgstr "All'interno del prefisso"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "All'interno e incluso il prefisso"
 msgstr "All'interno e incluso il prefisso"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Prefissi che contengono questo prefisso o IP"
 msgstr "Prefissi che contengono questo prefisso o IP"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Lunghezza della maschera"
 msgstr "Lunghezza della maschera"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "Numero VLAN (1-4094)"
 msgstr "Numero VLAN (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Indirizzo"
 msgstr "Indirizzo"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Intervalli che contengono questo prefisso o IP"
 msgstr "Intervalli che contengono questo prefisso o IP"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Prefisso principale"
 msgstr "Prefisso principale"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Macchina virtuale (nome)"
 msgstr "Macchina virtuale (nome)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Macchina virtuale (ID)"
 msgstr "Macchina virtuale (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Interfaccia (nome)"
 msgstr "Interfaccia (nome)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "Interfaccia VM (nome)"
 msgstr "Interfaccia VM (nome)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "Interfaccia VM (ID)"
 msgstr "Interfaccia VM (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "Gruppo FHRP (ID)"
 msgstr "Gruppo FHRP (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "È assegnato a un'interfaccia"
 msgstr "È assegnato a un'interfaccia"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "È assegnato"
 msgstr "È assegnato"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Servizio (ID)"
 msgstr "Servizio (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "Indirizzo IP interno (ID) NAT"
 msgstr "Indirizzo IP interno (ID) NAT"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Interfaccia assegnata"
 msgstr "Interfaccia assegnata"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Interfaccia VM assegnata"
 msgstr "Interfaccia VM assegnata"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "Indirizzo IP (ID)"
 msgstr "Indirizzo IP (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "indirizzo IP"
 msgstr "indirizzo IP"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "IPv4 (ID) primario"
 msgstr "IPv4 (ID) primario"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "IPv6 primario (ID)"
 msgstr "IPv6 primario (ID)"
 
 
@@ -9740,11 +9743,11 @@ msgstr "Imposta questo indirizzo IP primario per il dispositivo assegnato"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "È fuori banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Designalo come indirizzo IP fuori banda per il dispositivo assegnato"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9755,10 +9758,11 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Nessun dispositivo specificato; non può essere impostato come IP fuori banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "Impossibile impostare l'IP fuori banda per le macchine virtuali"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9768,6 +9772,8 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Nessuna interfaccia specificata; non può essere impostato come IP fuori "
+"banda"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9926,7 +9932,7 @@ msgstr "Gamma ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Assegnazione sito/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9945,7 +9951,7 @@ msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Imposta questo indirizzo IP fuori banda per il dispositivo"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9958,10 +9964,14 @@ msgstr "Un indirizzo IP può essere assegnato a un solo oggetto."
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"Impossibile riassegnare l'indirizzo IP primario per il dispositivo/macchina "
+"virtuale principale"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgstr ""
 msgstr ""
+"Impossibile riassegnare l'indirizzo IP fuori banda per il dispositivo "
+"principale"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9975,6 +9985,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Solo gli indirizzi IP assegnati a un'interfaccia del dispositivo possono "
+"essere designati come IP fuori banda per un dispositivo."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10382,11 +10394,14 @@ msgstr "Impossibile impostare scope_id senza scope_type."
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgstr ""
 msgstr ""
+"Avvio dell'ID VLAN nell'intervallo ({value}) non può essere inferiore a "
+"{minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgstr ""
 msgstr ""
+"Termine dell'ID VLAN nell'intervallo ({value}) non può superare {maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10394,6 +10409,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"L'ID VLAN finale nell'intervallo deve essere maggiore o uguale all'ID VLAN "
+"iniziale ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12771,7 +12788,7 @@ msgstr "Scarica"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Errore nel rendering del modello"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13645,7 +13662,7 @@ msgstr "Corri ancora"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "Impossibile caricare gli script dal modulo %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -14047,7 +14064,7 @@ msgstr "Centro assistenza"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Amministratore Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15542,12 +15559,12 @@ msgstr "Memoria (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "Disco (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "Dimensioni (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15575,8 +15592,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} appartiene a un sito diverso ({device_site}) rispetto al cluster "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15764,19 +15779,19 @@ msgstr "GRE"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16319,7 +16334,6 @@ msgstr "collegamenti wireless"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"È necessario specificare un'unità quando si imposta una distanza wireless"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 72 - 72
netbox/translations/ja/LC_MESSAGES/django.po

@@ -6,16 +6,16 @@
 # Translators:
 # Translators:
 # Tatsuya Ueda <ml@tatsuya.info>, 2024
 # Tatsuya Ueda <ml@tatsuya.info>, 2024
 # Jeremy Stretch, 2024
 # Jeremy Stretch, 2024
-# teapot, 2024
+# teapot, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-13 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: teapot, 2024\n"
+"Last-Translator: teapot, 2025\n"
 "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n"
 "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -666,7 +666,7 @@ msgstr "プロバイダアカウント"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1234,7 +1234,7 @@ msgstr "割当回線グループ"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "終端"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1295,12 +1295,12 @@ msgstr "回線終端"
 #: netbox/circuits/models/circuits.py:308
 #: netbox/circuits/models/circuits.py:308
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
-msgstr "回線終端は、サイトまたはプロバイダーネットワークに接続する必要があります。"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
-msgstr "回線終端をサイトとプロバイダーネットワークの両方に接続することはできません。"
+msgstr ""
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1537,7 +1537,7 @@ msgstr "保証帯域"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -1565,7 +1565,7 @@ msgstr "コメント"
 #: netbox/templates/tenancy/contact.html:84
 #: netbox/templates/tenancy/contact.html:84
 #: netbox/tenancy/tables/contacts.py:73
 #: netbox/tenancy/tables/contacts.py:73
 msgid "Assignments"
 msgid "Assignments"
-msgstr "アサイメント"
+msgstr "割当"
 
 
 #: netbox/circuits/tables/providers.py:23
 #: netbox/circuits/tables/providers.py:23
 msgid "Accounts"
 msgid "Accounts"
@@ -1660,7 +1660,7 @@ msgstr "削除"
 
 
 #: netbox/core/constants.py:19 netbox/core/tables/tasks.py:30
 #: netbox/core/constants.py:19 netbox/core/tables/tasks.py:30
 msgid "Finished"
 msgid "Finished"
-msgstr "終了しました"
+msgstr "終了"
 
 
 #: netbox/core/constants.py:21 netbox/core/tables/jobs.py:38
 #: netbox/core/constants.py:21 netbox/core/tables/jobs.py:38
 #: netbox/templates/core/job.html:82
 #: netbox/templates/core/job.html:82
@@ -1670,15 +1670,15 @@ msgstr "開始日時"
 
 
 #: netbox/core/constants.py:22 netbox/core/tables/tasks.py:26
 #: netbox/core/constants.py:22 netbox/core/tables/tasks.py:26
 msgid "Deferred"
 msgid "Deferred"
-msgstr "延期"
+msgstr "延期"
 
 
 #: netbox/core/constants.py:24
 #: netbox/core/constants.py:24
 msgid "Stopped"
 msgid "Stopped"
-msgstr "停止しました"
+msgstr "停止"
 
 
 #: netbox/core/constants.py:25
 #: netbox/core/constants.py:25
 msgid "Cancelled"
 msgid "Cancelled"
-msgstr "キャンセルされました"
+msgstr "キャンセル"
 
 
 #: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
 #: netbox/core/data_backends.py:32 netbox/core/tables/plugins.py:51
 #: netbox/templates/core/plugin.html:88
 #: netbox/templates/core/plugin.html:88
@@ -1923,7 +1923,7 @@ msgstr "バックエンド設定"
 
 
 #: netbox/core/forms/model_forms.py:96
 #: netbox/core/forms/model_forms.py:96
 msgid "File Upload"
 msgid "File Upload"
-msgstr "ファイルのアップロード"
+msgstr "アップロード"
 
 
 #: netbox/core/forms/model_forms.py:108
 #: netbox/core/forms/model_forms.py:108
 msgid "Cannot upload a file and sync from an existing file"
 msgid "Cannot upload a file and sync from an existing file"
@@ -1972,7 +1972,7 @@ msgstr "ページネーション"
 #: netbox/extras/forms/model_forms.py:129
 #: netbox/extras/forms/model_forms.py:129
 #: netbox/templates/core/inc/config_data.html:93
 #: netbox/templates/core/inc/config_data.html:93
 msgid "Validation"
 msgid "Validation"
-msgstr "バリデーション"
+msgstr "検証"
 
 
 #: netbox/core/forms/model_forms.py:164
 #: netbox/core/forms/model_forms.py:164
 #: netbox/templates/account/preferences.html:6
 #: netbox/templates/account/preferences.html:6
@@ -2045,7 +2045,7 @@ msgstr "このオブジェクトタイプ ({type}) では変更ログはサポ
 #: netbox/extras/models/notifications.py:186
 #: netbox/extras/models/notifications.py:186
 #: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
 #: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32
 msgid "created"
 msgid "created"
-msgstr "作成日時"
+msgstr "作成"
 
 
 #: netbox/core/models/config.py:22
 #: netbox/core/models/config.py:22
 msgid "comment"
 msgid "comment"
@@ -2380,7 +2380,7 @@ msgstr "最も古いタスク"
 
 
 #: netbox/core/tables/tasks.py:42 netbox/templates/core/rq_worker_list.html:39
 #: netbox/core/tables/tasks.py:42 netbox/templates/core/rq_worker_list.html:39
 msgid "Workers"
 msgid "Workers"
-msgstr "労働者"
+msgstr "ワーカー"
 
 
 #: netbox/core/tables/tasks.py:46 netbox/vpn/tables/tunnels.py:88
 #: netbox/core/tables/tasks.py:46 netbox/vpn/tables/tunnels.py:88
 msgid "Host"
 msgid "Host"
@@ -2939,7 +2939,7 @@ msgstr "AS (ID)"
 
 
 #: netbox/dcim/filtersets.py:246
 #: netbox/dcim/filtersets.py:246
 msgid "Parent location (ID)"
 msgid "Parent location (ID)"
-msgstr "親の場所 (ID)"
+msgstr "親のロケーション (ID)"
 
 
 #: netbox/dcim/filtersets.py:252
 #: netbox/dcim/filtersets.py:252
 msgid "Parent location (slug)"
 msgid "Parent location (slug)"
@@ -3052,7 +3052,7 @@ msgstr "電源コンセントがある"
 #: netbox/dcim/filtersets.py:1147 netbox/dcim/forms/filtersets.py:559
 #: netbox/dcim/filtersets.py:1147 netbox/dcim/forms/filtersets.py:559
 #: netbox/dcim/forms/filtersets.py:655 netbox/dcim/forms/filtersets.py:876
 #: netbox/dcim/forms/filtersets.py:655 netbox/dcim/forms/filtersets.py:876
 msgid "Has interfaces"
 msgid "Has interfaces"
-msgstr "インタフェースがある"
+msgstr "インタフェースを持つ"
 
 
 #: netbox/dcim/filtersets.py:587 netbox/dcim/filtersets.py:708
 #: netbox/dcim/filtersets.py:587 netbox/dcim/filtersets.py:708
 #: netbox/dcim/filtersets.py:1151 netbox/dcim/forms/filtersets.py:566
 #: netbox/dcim/filtersets.py:1151 netbox/dcim/forms/filtersets.py:566
@@ -3121,7 +3121,7 @@ msgstr "サイト名 (slug)"
 
 
 #: netbox/dcim/filtersets.py:1067
 #: netbox/dcim/filtersets.py:1067
 msgid "Parent bay (ID)"
 msgid "Parent bay (ID)"
-msgstr "ペアレントベイ (ID)"
+msgstr "ベイ (ID)"
 
 
 #: netbox/dcim/filtersets.py:1071
 #: netbox/dcim/filtersets.py:1071
 msgid "VM cluster (ID)"
 msgid "VM cluster (ID)"
@@ -3368,11 +3368,11 @@ msgstr "親モジュールベイ (ID)"
 
 
 #: netbox/dcim/filtersets.py:1808
 #: netbox/dcim/filtersets.py:1808
 msgid "Installed module (ID)"
 msgid "Installed module (ID)"
-msgstr "インストール済モジュール (ID)"
+msgstr "インストール済モジュール (ID)"
 
 
 #: netbox/dcim/filtersets.py:1819
 #: netbox/dcim/filtersets.py:1819
 msgid "Installed device (ID)"
 msgid "Installed device (ID)"
-msgstr "インストール済デバイス (ID)"
+msgstr "インストール済デバイス (ID)"
 
 
 #: netbox/dcim/filtersets.py:1825
 #: netbox/dcim/filtersets.py:1825
 msgid "Installed device (name)"
 msgid "Installed device (name)"
@@ -3467,7 +3467,7 @@ msgstr "タイムゾーン"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3718,7 +3718,7 @@ msgid "Device Type"
 msgstr "デバイスタイプ"
 msgstr "デバイスタイプ"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3826,7 +3826,7 @@ msgstr "クラスタ"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4728,7 +4728,7 @@ msgstr "クラスタグループ"
 
 
 #: netbox/dcim/forms/filtersets.py:1210
 #: netbox/dcim/forms/filtersets.py:1210
 msgid "Cabled"
 msgid "Cabled"
-msgstr "ケーブル接続済"
+msgstr "配線済"
 
 
 #: netbox/dcim/forms/filtersets.py:1217
 #: netbox/dcim/forms/filtersets.py:1217
 msgid "Occupied"
 msgid "Occupied"
@@ -6695,7 +6695,7 @@ msgstr "モジュールベイ"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "在庫品目"
 msgstr "在庫品目"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "モジュールベイ"
 msgstr "モジュールベイ"
@@ -6820,7 +6820,7 @@ msgstr "奥行きをすべて利用する"
 
 
 #: netbox/dcim/tables/devicetypes.py:98
 #: netbox/dcim/tables/devicetypes.py:98
 msgid "U Height"
 msgid "U Height"
-msgstr "U 高さ"
+msgstr "ユニット数"
 
 
 #: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
 #: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26
 #: netbox/dcim/tables/racks.py:89
 #: netbox/dcim/tables/racks.py:89
@@ -7415,12 +7415,12 @@ msgstr "ブックマーク"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "個人用のブックマークを表示する"
 msgstr "個人用のブックマークを表示する"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "イベントルールのアクションタイプが不明です: {action_type}"
 msgstr "イベントルールのアクションタイプが不明です: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "イベントパイプラインをインポートできません {name} エラー: {error}"
 msgstr "イベントパイプラインをインポートできません {name} エラー: {error}"
@@ -7895,7 +7895,7 @@ msgstr "テンプレートコード"
 #: netbox/extras/forms/model_forms.py:247
 #: netbox/extras/forms/model_forms.py:247
 #: netbox/templates/extras/exporttemplate.html:12
 #: netbox/templates/extras/exporttemplate.html:12
 msgid "Export Template"
 msgid "Export Template"
-msgstr "テンプレートをエクスポート"
+msgstr "エクスポートテンプレート"
 
 
 #: netbox/extras/forms/model_forms.py:249
 #: netbox/extras/forms/model_forms.py:249
 msgid "Rendering"
 msgid "Rendering"
@@ -8204,7 +8204,7 @@ msgstr "最大許容値 (数値フィールド用)"
 
 
 #: netbox/extras/models/customfields.py:191
 #: netbox/extras/models/customfields.py:191
 msgid "validation regex"
 msgid "validation regex"
-msgstr "バリデーション正規表現"
+msgstr "検証正規表現"
 
 
 #: netbox/extras/models/customfields.py:193
 #: netbox/extras/models/customfields.py:193
 #, python-brace-format
 #, python-brace-format
@@ -9071,11 +9071,11 @@ msgstr "スタンダード"
 
 
 #: netbox/ipam/choices.py:120
 #: netbox/ipam/choices.py:120
 msgid "CheckPoint"
 msgid "CheckPoint"
-msgstr "チェックポイント"
+msgstr "CheckPoint"
 
 
 #: netbox/ipam/choices.py:123
 #: netbox/ipam/choices.py:123
 msgid "Cisco"
 msgid "Cisco"
-msgstr "シスコ"
+msgstr "Cisco"
 
 
 #: netbox/ipam/choices.py:137
 #: netbox/ipam/choices.py:137
 msgid "Plaintext"
 msgid "Plaintext"
@@ -9295,7 +9295,7 @@ msgstr "重複を禁止する"
 
 
 #: netbox/ipam/forms/bulk_edit.py:88
 #: netbox/ipam/forms/bulk_edit.py:88
 msgid "Is private"
 msgid "Is private"
-msgstr "非公開です"
+msgstr "非公開"
 
 
 #: netbox/ipam/forms/bulk_edit.py:109 netbox/ipam/forms/bulk_edit.py:138
 #: netbox/ipam/forms/bulk_edit.py:109 netbox/ipam/forms/bulk_edit.py:138
 #: netbox/ipam/forms/bulk_edit.py:163 netbox/ipam/forms/bulk_import.py:89
 #: netbox/ipam/forms/bulk_edit.py:163 netbox/ipam/forms/bulk_import.py:89
@@ -9472,7 +9472,7 @@ msgstr "割当インタフェースの親VM (存在する場合)"
 
 
 #: netbox/ipam/forms/bulk_import.py:325
 #: netbox/ipam/forms/bulk_import.py:325
 msgid "Is primary"
 msgid "Is primary"
-msgstr "プライマリ"
+msgstr "プライマリ"
 
 
 #: netbox/ipam/forms/bulk_import.py:326
 #: netbox/ipam/forms/bulk_import.py:326
 msgid "Make this the primary IP for the assigned device"
 msgid "Make this the primary IP for the assigned device"
@@ -9663,7 +9663,7 @@ msgstr "ASN レンジ"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "サイト/VLAN 割り当て"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -10243,7 +10243,7 @@ msgstr "NAT (アウトサイド)"
 
 
 #: netbox/ipam/tables/ip.py:393
 #: netbox/ipam/tables/ip.py:393
 msgid "Assigned"
 msgid "Assigned"
-msgstr "割当済"
+msgstr "割当済"
 
 
 #: netbox/ipam/tables/ip.py:429 netbox/templates/vpn/l2vpntermination.html:16
 #: netbox/ipam/tables/ip.py:429 netbox/templates/vpn/l2vpntermination.html:16
 #: netbox/vpn/forms/filtersets.py:240
 #: netbox/vpn/forms/filtersets.py:240
@@ -10498,7 +10498,7 @@ msgstr "グローバルテーブル内で一意の IP アドレスを強制す
 #: netbox/netbox/config/parameters.py:75
 #: netbox/netbox/config/parameters.py:75
 #: netbox/templates/core/inc/config_data.html:44
 #: netbox/templates/core/inc/config_data.html:44
 msgid "Prefer IPv4"
 msgid "Prefer IPv4"
-msgstr "IPv4 を優先する"
+msgstr "IPv4 を優先"
 
 
 #: netbox/netbox/config/parameters.py:77
 #: netbox/netbox/config/parameters.py:77
 msgid "Prefer IPv4 addresses over IPv6"
 msgid "Prefer IPv4 addresses over IPv6"
@@ -10982,7 +10982,7 @@ msgstr "エクスポートテンプレート"
 
 
 #: netbox/netbox/navigation/menu.py:329
 #: netbox/netbox/navigation/menu.py:329
 msgid "Saved Filters"
 msgid "Saved Filters"
-msgstr "保存済フィルタ"
+msgstr "保存済フィルタ"
 
 
 #: netbox/netbox/navigation/menu.py:331
 #: netbox/netbox/navigation/menu.py:331
 msgid "Image Attachments"
 msgid "Image Attachments"
@@ -11006,7 +11006,7 @@ msgstr "イベントルール"
 
 
 #: netbox/netbox/navigation/menu.py:357
 #: netbox/netbox/navigation/menu.py:357
 msgid "Webhooks"
 msgid "Webhooks"
-msgstr "ウェブフック"
+msgstr "Webhooks"
 
 
 #: netbox/netbox/navigation/menu.py:361 netbox/netbox/navigation/menu.py:365
 #: netbox/netbox/navigation/menu.py:361 netbox/netbox/navigation/menu.py:365
 #: netbox/netbox/views/generic/feature_views.py:153
 #: netbox/netbox/views/generic/feature_views.py:153
@@ -11201,7 +11201,7 @@ msgstr "デンマーク語"
 
 
 #: netbox/netbox/settings.py:762
 #: netbox/netbox/settings.py:762
 msgid "German"
 msgid "German"
-msgstr "ドイツ"
+msgstr "ドイツ"
 
 
 #: netbox/netbox/settings.py:763
 #: netbox/netbox/settings.py:763
 msgid "English"
 msgid "English"
@@ -11899,7 +11899,7 @@ msgstr "ユーザープリファレンス"
 
 
 #: netbox/templates/core/inc/config_data.html:141
 #: netbox/templates/core/inc/config_data.html:141
 msgid "Job retention"
 msgid "Job retention"
-msgstr "仕事の維持"
+msgstr "ジョブの維持"
 
 
 #: netbox/templates/core/job.html:35 netbox/templates/core/rq_task.html:12
 #: netbox/templates/core/job.html:35 netbox/templates/core/rq_task.html:12
 #: netbox/templates/core/rq_task.html:49 netbox/templates/core/rq_task.html:58
 #: netbox/templates/core/rq_task.html:49 netbox/templates/core/rq_task.html:58
@@ -11959,7 +11959,7 @@ msgstr "警告:非アトミックな変更と以前の変更レコードの比
 
 
 #: netbox/templates/core/objectchange.html:131
 #: netbox/templates/core/objectchange.html:131
 msgid "Post-Change Data"
 msgid "Post-Change Data"
-msgstr "変更後データ"
+msgstr "変更後データ"
 
 
 #: netbox/templates/core/objectchange.html:162
 #: netbox/templates/core/objectchange.html:162
 #, python-format
 #, python-format
@@ -12144,11 +12144,11 @@ msgstr "システムステータス"
 
 
 #: netbox/templates/core/system.html:31
 #: netbox/templates/core/system.html:31
 msgid "NetBox release"
 msgid "NetBox release"
-msgstr "ネットボックスリリース"
+msgstr "NetBoxリリース"
 
 
 #: netbox/templates/core/system.html:44
 #: netbox/templates/core/system.html:44
 msgid "Django version"
 msgid "Django version"
-msgstr "ジャンゴバージョン"
+msgstr "Djangoバージョン"
 
 
 #: netbox/templates/core/system.html:48
 #: netbox/templates/core/system.html:48
 msgid "PostgreSQL version"
 msgid "PostgreSQL version"
@@ -12313,7 +12313,7 @@ msgstr "用の NAT"
 #: netbox/templates/virtualization/virtualmachine.html:59
 #: netbox/templates/virtualization/virtualmachine.html:59
 #: netbox/templates/virtualization/virtualmachine.html:75
 #: netbox/templates/virtualization/virtualmachine.html:75
 msgid "NAT"
 msgid "NAT"
-msgstr "ナット"
+msgstr "NAT"
 
 
 #: netbox/templates/dcim/device.html:252 netbox/templates/dcim/rack.html:73
 #: netbox/templates/dcim/device.html:252 netbox/templates/dcim/rack.html:73
 msgid "Power Utilization"
 msgid "Power Utilization"
@@ -12441,11 +12441,11 @@ msgstr "エラーレンダリングテンプレート"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr "このデバイスには設定テンプレートが割り当てられていません。"
+msgstr ""
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
-msgstr "ペアレントベイ"
+msgstr "ベイ"
 
 
 #: netbox/templates/dcim/device_edit.html:48
 #: netbox/templates/dcim/device_edit.html:48
 #: netbox/utilities/templates/form_helpers/render_field.html:22
 #: netbox/utilities/templates/form_helpers/render_field.html:22
@@ -12475,7 +12475,7 @@ msgstr "デバイスベイ"
 
 
 #: netbox/templates/dcim/devicebay.html:43
 #: netbox/templates/dcim/devicebay.html:43
 msgid "Installed Device"
 msgid "Installed Device"
-msgstr "取付済デバイス"
+msgstr "取付済デバイス"
 
 
 #: netbox/templates/dcim/devicebay_depopulate.html:6
 #: netbox/templates/dcim/devicebay_depopulate.html:6
 #, python-format
 #, python-format
@@ -12561,15 +12561,15 @@ msgstr "B サイド"
 
 
 #: netbox/templates/dcim/inc/cable_termination.html:65
 #: netbox/templates/dcim/inc/cable_termination.html:65
 msgid "No termination"
 msgid "No termination"
-msgstr "終了なし"
+msgstr "未終端"
 
 
 #: netbox/templates/dcim/inc/cable_toggle_buttons.html:3
 #: netbox/templates/dcim/inc/cable_toggle_buttons.html:3
 msgid "Mark Planned"
 msgid "Mark Planned"
-msgstr "マーク・プランド"
+msgstr "計画中とマークする"
 
 
 #: netbox/templates/dcim/inc/cable_toggle_buttons.html:6
 #: netbox/templates/dcim/inc/cable_toggle_buttons.html:6
 msgid "Mark Installed"
 msgid "Mark Installed"
-msgstr "取付済とマークする"
+msgstr "取付済とマークする"
 
 
 #: netbox/templates/dcim/inc/connection_endpoints.html:13
 #: netbox/templates/dcim/inc/connection_endpoints.html:13
 msgid "Path Status"
 msgid "Path Status"
@@ -12688,7 +12688,7 @@ msgstr "チャンネル幅"
 #: netbox/wireless/forms/filtersets.py:80 netbox/wireless/models.py:82
 #: netbox/wireless/forms/filtersets.py:80 netbox/wireless/models.py:82
 #: netbox/wireless/models.py:156 netbox/wireless/tables/wirelesslan.py:44
 #: netbox/wireless/models.py:156 netbox/wireless/tables/wirelesslan.py:44
 msgid "SSID"
 msgid "SSID"
-msgstr "言った"
+msgstr "SSID"
 
 
 #: netbox/templates/dcim/interface.html:305
 #: netbox/templates/dcim/interface.html:305
 msgid "LAG Members"
 msgid "LAG Members"
@@ -13273,7 +13273,7 @@ msgstr "スクリプトはソースファイルに存在しなくなりました
 
 
 #: netbox/templates/extras/script_list.html:47
 #: netbox/templates/extras/script_list.html:47
 msgid "Last Run"
 msgid "Last Run"
-msgstr "ラストラン"
+msgstr "最終実行"
 
 
 #: netbox/templates/extras/script_list.html:62
 #: netbox/templates/extras/script_list.html:62
 msgid "Script is no longer present in the source file"
 msgid "Script is no longer present in the source file"
@@ -13285,7 +13285,7 @@ msgstr "決して"
 
 
 #: netbox/templates/extras/script_list.html:85
 #: netbox/templates/extras/script_list.html:85
 msgid "Run Again"
 msgid "Run Again"
-msgstr "もう一度実行"
+msgstr "実行"
 
 
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
@@ -13317,7 +13317,7 @@ msgstr "ログ閾値"
 
 
 #: netbox/templates/extras/script_result.html:56
 #: netbox/templates/extras/script_result.html:56
 msgid "All"
 msgid "All"
-msgstr "[すべて]"
+msgstr "すべて"
 
 
 #: netbox/templates/extras/tag.html:32
 #: netbox/templates/extras/tag.html:32
 msgid "Tagged Items"
 msgid "Tagged Items"
@@ -13557,7 +13557,7 @@ msgstr "新しいリリースが入手可能"
 
 
 #: netbox/templates/home.html:16
 #: netbox/templates/home.html:16
 msgid "is available"
 msgid "is available"
-msgstr "利用可能です"
+msgstr "利用可能"
 
 
 #: netbox/templates/home.html:18
 #: netbox/templates/home.html:18
 msgctxt "Document title"
 msgctxt "Document title"
@@ -13570,7 +13570,7 @@ msgstr "ダッシュボードのロック解除"
 
 
 #: netbox/templates/home.html:49
 #: netbox/templates/home.html:49
 msgid "Lock Dashboard"
 msgid "Lock Dashboard"
-msgstr "ロックダッシュボード"
+msgstr "ダッシュボードのロック"
 
 
 #: netbox/templates/home.html:60
 #: netbox/templates/home.html:60
 msgid "Add Widget"
 msgid "Add Widget"
@@ -13685,7 +13685,7 @@ msgstr "ヘルプセンター"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "ジャンゴ管理者"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14094,7 +14094,7 @@ msgstr "仮想ディスクを追加"
 
 
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
-msgstr "このVMには構成テンプレートが割り当てられていません。"
+msgstr ""
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -14251,7 +14251,7 @@ msgstr "PSK"
 #: netbox/templates/wireless/inc/wirelesslink_interface.html:45
 #: netbox/templates/wireless/inc/wirelesslink_interface.html:45
 msgctxt "Abbreviation for megahertz"
 msgctxt "Abbreviation for megahertz"
 msgid "MHz"
 msgid "MHz"
-msgstr "メガヘルツ"
+msgstr "MHz"
 
 
 #: netbox/templates/wireless/wirelesslan.html:57
 #: netbox/templates/wireless/wirelesslan.html:57
 msgid "Attached Interfaces"
 msgid "Attached Interfaces"
@@ -14454,7 +14454,7 @@ msgstr "通知グループ (ID)"
 
 
 #: netbox/users/forms/bulk_edit.py:26
 #: netbox/users/forms/bulk_edit.py:26
 msgid "First name"
 msgid "First name"
-msgstr "ファーストネーム"
+msgstr "名前"
 
 
 #: netbox/users/forms/bulk_edit.py:31
 #: netbox/users/forms/bulk_edit.py:31
 msgid "Last name"
 msgid "Last name"
@@ -14474,11 +14474,11 @@ msgstr "キーが指定されていない場合は、キーが自動的に生成
 
 
 #: netbox/users/forms/filtersets.py:51 netbox/users/tables.py:42
 #: netbox/users/forms/filtersets.py:51 netbox/users/tables.py:42
 msgid "Is Staff"
 msgid "Is Staff"
-msgstr "スタッフですか"
+msgstr "スタッフ"
 
 
 #: netbox/users/forms/filtersets.py:58 netbox/users/tables.py:45
 #: netbox/users/forms/filtersets.py:58 netbox/users/tables.py:45
 msgid "Is Superuser"
 msgid "Is Superuser"
-msgstr "スーパーユーザですか"
+msgstr "スーパーユーザ"
 
 
 #: netbox/users/forms/filtersets.py:91 netbox/users/tables.py:86
 #: netbox/users/forms/filtersets.py:91 netbox/users/tables.py:86
 msgid "Can View"
 msgid "Can View"
@@ -15156,7 +15156,7 @@ msgstr "シリアル番号"
 msgid ""
 msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
-msgstr "{device} 別のサイトに属している ({device_site}) よりもクラスタ ({cluster_site})"
+msgstr ""
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15572,11 +15572,11 @@ msgstr "トンネルインターフェイス"
 
 
 #: netbox/vpn/forms/model_forms.py:150
 #: netbox/vpn/forms/model_forms.py:150
 msgid "First Termination"
 msgid "First Termination"
-msgstr "1 回目の解約"
+msgstr "1 回目の終端"
 
 
 #: netbox/vpn/forms/model_forms.py:153
 #: netbox/vpn/forms/model_forms.py:153
 msgid "Second Termination"
 msgid "Second Termination"
-msgstr "2 回目の終"
+msgstr "2 回目の終"
 
 
 #: netbox/vpn/forms/model_forms.py:197
 #: netbox/vpn/forms/model_forms.py:197
 msgid "This parameter is required when defining a termination."
 msgid "This parameter is required when defining a termination."
@@ -15605,7 +15605,7 @@ msgstr "認証アルゴリズム"
 
 
 #: netbox/vpn/models/crypto.py:44
 #: netbox/vpn/models/crypto.py:44
 msgid "Diffie-Hellman group ID"
 msgid "Diffie-Hellman group ID"
-msgstr "ディフィー・ヘルマングループ ID"
+msgstr "Diffie-Hellmanグループ ID"
 
 
 #: netbox/vpn/models/crypto.py:50
 #: netbox/vpn/models/crypto.py:50
 msgid "Security association lifetime (in seconds)"
 msgid "Security association lifetime (in seconds)"
@@ -15613,11 +15613,11 @@ msgstr "セキュリティアソシエーションの有効期間 (秒単位)"
 
 
 #: netbox/vpn/models/crypto.py:59
 #: netbox/vpn/models/crypto.py:59
 msgid "IKE proposal"
 msgid "IKE proposal"
-msgstr "イケアの提案"
+msgstr "IKEプロポザール"
 
 
 #: netbox/vpn/models/crypto.py:60
 #: netbox/vpn/models/crypto.py:60
 msgid "IKE proposals"
 msgid "IKE proposals"
-msgstr "IKEの提案"
+msgstr "IKEプロポザール"
 
 
 #: netbox/vpn/models/crypto.py:76
 #: netbox/vpn/models/crypto.py:76
 msgid "version"
 msgid "version"
@@ -15875,7 +15875,7 @@ msgstr "無線リンク"
 
 
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
-msgstr "ワイヤレス距離を設定するときは単位を指定する必要があります"
+msgstr ""
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


Fișier diff suprimat deoarece este prea mare
+ 153 - 143
netbox/translations/nl/LC_MESSAGES/django.po


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


+ 114 - 101
netbox/translations/pl/LC_MESSAGES/django.po

@@ -6,17 +6,17 @@
 # Translators:
 # Translators:
 # Jeff Gehlbach, 2024
 # Jeff Gehlbach, 2024
 # Simplicity sp. z o.o., 2024
 # Simplicity sp. z o.o., 2024
-# Jeremy Stretch, 2024
 # Grzegorz Szymaszek, 2024
 # Grzegorz Szymaszek, 2024
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Grzegorz Szymaszek, 2024\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Polish (https://app.transifex.com/netbox-community/teams/178115/pl/)\n"
 "Language-Team: Polish (https://app.transifex.com/netbox-community/teams/178115/pl/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -154,7 +154,7 @@ msgstr "Nieaktywny"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -166,8 +166,8 @@ msgstr "Region (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Region (identyfikator)"
 msgstr "Region (identyfikator)"
@@ -177,8 +177,8 @@ msgstr "Region (identyfikator)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Grupa witryn (ID)"
 msgstr "Grupa witryn (ID)"
@@ -189,7 +189,7 @@ msgstr "Grupa witryn (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -259,8 +259,8 @@ msgstr "Teren"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -279,13 +279,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Dostawca (ID)"
 msgstr "Dostawca (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Dostawca (identyfikator)"
 msgstr "Dostawca (identyfikator)"
 
 
@@ -314,8 +314,8 @@ msgstr "Typ obwodu (identyfikator)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Teren (ID)"
 msgstr "Teren (ID)"
@@ -669,7 +669,7 @@ msgstr "Konto dostawcy"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1104,7 +1104,7 @@ msgstr "Zlecenie"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1237,7 +1237,7 @@ msgstr "Przydziały grup obwodowych"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "wypowiedzenie"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1298,14 +1298,12 @@ msgstr "zakończenia obwodu"
 #: netbox/circuits/models/circuits.py:308
 #: netbox/circuits/models/circuits.py:308
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
-msgstr "Zakończenie obwodu musi być podłączone do witryny lub sieci dostawcy."
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Zakończenie obwodu nie może połączyć się zarówno z witryną, jak i siecią "
-"dostawcy."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1542,7 +1540,7 @@ msgstr "Współczynnik zatwierdzania"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2937,7 +2935,7 @@ msgid "Parent site group (slug)"
 msgstr "Nadrzędna grupa terenów (identyfikator)"
 msgstr "Nadrzędna grupa terenów (identyfikator)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Grupa (ID)"
 msgstr "Grupa (ID)"
 
 
@@ -2995,15 +2993,15 @@ msgstr "Typ szafy (numer identyfikacyjny)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Rola (ID)"
 msgstr "Rola (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Rola (identyfikator)"
 msgstr "Rola (identyfikator)"
@@ -3201,7 +3199,7 @@ msgstr "VDC (ID)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Model urządzenia"
 msgstr "Model urządzenia"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Interfejs (ID)"
 msgstr "Interfejs (ID)"
@@ -3215,8 +3213,8 @@ msgid "Module bay (ID)"
 msgstr "Osłona modułu (ID)"
 msgstr "Osłona modułu (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Urządzenie (ID)"
 msgstr "Urządzenie (ID)"
@@ -3225,8 +3223,8 @@ msgstr "Urządzenie (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Szafa (nazwa)"
 msgstr "Szafa (nazwa)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Urządzenie (nazwa)"
 msgstr "Urządzenie (nazwa)"
@@ -3278,9 +3276,9 @@ msgstr "Przypisany VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3307,19 +3305,19 @@ msgstr "Przypisany VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RD)"
 msgstr "VRF (RD)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3481,7 +3479,7 @@ msgstr "Strefa czasowa"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3732,7 +3730,7 @@ msgid "Device Type"
 msgstr "Typ urządzenia"
 msgstr "Typ urządzenia"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3840,7 +3838,7 @@ msgstr "Klaster"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4092,11 +4090,11 @@ msgstr "Oznaczone sieci VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "Dodaj oznaczone sieci VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "Usuń oznaczone sieci VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4144,7 +4142,7 @@ msgstr "Przełączanie 802.1Q"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "Dodaj/Usuń"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4222,7 +4220,7 @@ msgstr "Nazwa przypisanej roli"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Model typu stelaża"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4231,11 +4229,11 @@ msgstr "Kierunek przepływu powietrza"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "Szerokość musi być ustawiona, jeśli nie określa się typu stelaża."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "Wysokość U musi być ustawiona, jeśli nie określa się typu stelaża."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4897,6 +4895,11 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Zakresy alfanumeryczne są obsługiwane do tworzenia zbiorczych. Mieszane "
+"przypadki i typy w jednym zakresie nie są obsługiwane (przykład: <code>[ge, "
+"xe] -0/0/ [0-9]</code>). Żeton <code>{module}</code>, jeśli jest obecny, "
+"zostanie automatycznie zastąpiony wartością pozycji podczas tworzenia nowego"
+" modułu."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6810,7 +6813,7 @@ msgstr "Wnęsy modułowe"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Elementy inwentaryzacyjne"
 msgstr "Elementy inwentaryzacyjne"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Moduł Bay"
 msgstr "Moduł Bay"
@@ -7537,12 +7540,12 @@ msgstr "Zakładki"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Pokaż swoje osobiste zakładki"
 msgstr "Pokaż swoje osobiste zakładki"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Nieznany typ akcji dla reguły zdarzenia: {action_type}"
 msgstr "Nieznany typ akcji dla reguły zdarzenia: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Nie można importować pociągu zdarzeń {name} błąd: {error}"
 msgstr "Nie można importować pociągu zdarzeń {name} błąd: {error}"
@@ -9309,129 +9312,129 @@ msgstr "Eksportowanie L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "Eksportowanie L2VPN (identyfikator)"
 msgstr "Eksportowanie L2VPN (identyfikator)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Prefiks"
 msgstr "Prefiks"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ID)"
 msgstr "RIR (ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (identyfikator)"
 msgstr "RIR (identyfikator)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "W prefiksie"
 msgstr "W prefiksie"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "W i włącznie z prefiksem"
 msgstr "W i włącznie z prefiksem"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Prefiksy zawierające ten prefiks lub adres IP"
 msgstr "Prefiksy zawierające ten prefiks lub adres IP"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Długość maski"
 msgstr "Długość maski"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "Numer VLAN (1-4094)"
 msgstr "Numer VLAN (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Adres"
 msgstr "Adres"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Zakresy zawierające ten prefiks lub adres IP"
 msgstr "Zakresy zawierające ten prefiks lub adres IP"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Prefiks nadrzędny"
 msgstr "Prefiks nadrzędny"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Maszyna wirtualna (nazwa)"
 msgstr "Maszyna wirtualna (nazwa)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Maszyna wirtualna (ID)"
 msgstr "Maszyna wirtualna (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Interfejs (nazwa)"
 msgstr "Interfejs (nazwa)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "Interfejs maszyny wirtualnej (nazwa)"
 msgstr "Interfejs maszyny wirtualnej (nazwa)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "Interfejs maszyny wirtualnej (ID)"
 msgstr "Interfejs maszyny wirtualnej (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "Grupa FHRP (ID)"
 msgstr "Grupa FHRP (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Jest przypisany do interfejsu"
 msgstr "Jest przypisany do interfejsu"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "Jest przypisany"
 msgstr "Jest przypisany"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Usługa (ID)"
 msgstr "Usługa (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "NAT wewnątrz adresu IP (ID)"
 msgstr "NAT wewnątrz adresu IP (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Przypisany interfejs"
 msgstr "Przypisany interfejs"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Przypisany interfejs maszyny wirtualnej"
 msgstr "Przypisany interfejs maszyny wirtualnej"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "Adres IP (ID)"
 msgstr "Adres IP (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "Adres IP"
 msgstr "Adres IP"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "Podstawowy IPv4 (ID)"
 msgstr "Podstawowy IPv4 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "Podstawowy IPv6 (ID)"
 msgstr "Podstawowy IPv6 (ID)"
 
 
@@ -9655,11 +9658,11 @@ msgstr "Ustaw to podstawowy adres IP przypisanego urządzenia"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Jest poza pasmem"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Oznacz to jako adres IP poza pasmem przypisanego urządzenia"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9669,11 +9672,11 @@ msgstr ""
 
 
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Brak określonego urządzenia; nie można ustawić jako IP poza pasmem"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "Nie można ustawić adresu IP poza pasmem dla maszyn wirtualnych"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9682,7 +9685,7 @@ msgstr ""
 
 
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Nie określono interfejsu; nie można ustawić jako IP poza pasmem"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9841,7 +9844,7 @@ msgstr "Zakres ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Przypisanie witryny/sieci VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9859,7 +9862,7 @@ msgstr "Ustaw to podstawowy adres IP urządzenia/maszyny wirtualnej"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Ustaw to poza pasmem IP urządzenia"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9872,10 +9875,14 @@ msgstr "Adres IP może być przypisany tylko do jednego obiektu."
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"Nie można ponownie przypisać głównego adresu IP urządzenia "
+"nadrzędnego/maszyny wirtualnej"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgstr ""
 msgstr ""
+"Nie można ponownie przypisać adresu IP poza pasmem dla urządzenia "
+"nadrzędnego"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9889,6 +9896,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Tylko adresy IP przypisane do interfejsu urządzenia mogą być oznaczone jako "
+"adres IP poza pasmem dla urządzenia."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10290,11 +10299,15 @@ msgstr "Nie można ustawić scope_id bez scope_type."
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgstr ""
 msgstr ""
+"Uruchamianie identyfikatora VLAN w zakresie ({value}) nie może być mniejszy "
+"niż {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgstr ""
 msgstr ""
+"Zakończenie identyfikatora VLAN w zakresie ({value}) nie może przekroczyć "
+"{maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10302,6 +10315,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"Kończący identyfikator VLAN w zakresie musi być większy lub równy "
+"początkowemu identyfikatorowi VLAN ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12665,7 +12680,7 @@ msgstr "Ściągnij"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Szablon renderowania błędu"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13536,7 +13551,7 @@ msgstr "Uruchom ponownie"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "Nie można załadować skryptów z modułu %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -13937,7 +13952,7 @@ msgstr "Centrum pomocy"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Administrator Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15430,12 +15445,12 @@ msgstr "Pamięć (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "Dysk (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "Rozmiar (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15463,7 +15478,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} należy do innej strony ({device_site}) niż klaster ({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15646,19 +15660,19 @@ msgstr "GREE"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16200,7 +16214,6 @@ msgstr "łącza bezprzewodowe"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"Należy określić jednostkę podczas ustawiania odległości bezprzewodowej"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 37 - 46
netbox/translations/pt/LC_MESSAGES/django.po

@@ -14,7 +14,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: 2024-12-13 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Fabricio Maciel, 2024\n"
 "Last-Translator: Fabricio Maciel, 2024\n"
 "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n"
 "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n"
@@ -669,7 +669,7 @@ msgstr "Conta do provedor"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -984,7 +984,7 @@ msgstr "Rede do provedor"
 #: netbox/wireless/forms/model_forms.py:87
 #: netbox/wireless/forms/model_forms.py:87
 #: netbox/wireless/forms/model_forms.py:129
 #: netbox/wireless/forms/model_forms.py:129
 msgid "Location"
 msgid "Location"
-msgstr "Localização"
+msgstr "Local"
 
 
 #: netbox/circuits/forms/filtersets.py:32
 #: netbox/circuits/forms/filtersets.py:32
 #: netbox/circuits/forms/filtersets.py:120 netbox/dcim/forms/filtersets.py:144
 #: netbox/circuits/forms/filtersets.py:120 netbox/dcim/forms/filtersets.py:144
@@ -1237,7 +1237,7 @@ msgstr "Atribuições do grupo de circuitos"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "terminação"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1299,15 +1299,11 @@ msgstr "terminações dos circuitos"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Uma terminação de circuito deve ser conectada a um site ou a uma rede do "
-"provedor."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Uma terminação de circuito não pode ser conectada ao mesmo tempo a um site e"
-" a uma rede do provedor."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1544,7 +1540,7 @@ msgstr "Taxa Garantida"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2958,23 +2954,23 @@ msgstr "AS (ID)"
 
 
 #: netbox/dcim/filtersets.py:246
 #: netbox/dcim/filtersets.py:246
 msgid "Parent location (ID)"
 msgid "Parent location (ID)"
-msgstr "Localização principal (ID)"
+msgstr "Local pai (ID)"
 
 
 #: netbox/dcim/filtersets.py:252
 #: netbox/dcim/filtersets.py:252
 msgid "Parent location (slug)"
 msgid "Parent location (slug)"
-msgstr "Localização principal (slug)"
+msgstr "Local pai (slug)"
 
 
 #: netbox/dcim/filtersets.py:258 netbox/dcim/filtersets.py:369
 #: netbox/dcim/filtersets.py:258 netbox/dcim/filtersets.py:369
 #: netbox/dcim/filtersets.py:490 netbox/dcim/filtersets.py:1057
 #: netbox/dcim/filtersets.py:490 netbox/dcim/filtersets.py:1057
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:2182
 #: netbox/dcim/filtersets.py:1404 netbox/dcim/filtersets.py:2182
 msgid "Location (ID)"
 msgid "Location (ID)"
-msgstr "Localização (ID)"
+msgstr "Local (ID)"
 
 
 #: netbox/dcim/filtersets.py:265 netbox/dcim/filtersets.py:376
 #: netbox/dcim/filtersets.py:265 netbox/dcim/filtersets.py:376
 #: netbox/dcim/filtersets.py:497 netbox/dcim/filtersets.py:1410
 #: netbox/dcim/filtersets.py:497 netbox/dcim/filtersets.py:1410
 #: netbox/extras/filtersets.py:542
 #: netbox/extras/filtersets.py:542
 msgid "Location (slug)"
 msgid "Location (slug)"
-msgstr "Localização (slug)"
+msgstr "Local (slug)"
 
 
 #: netbox/dcim/filtersets.py:296 netbox/dcim/filtersets.py:381
 #: netbox/dcim/filtersets.py:296 netbox/dcim/filtersets.py:381
 #: netbox/dcim/filtersets.py:539 netbox/dcim/filtersets.py:678
 #: netbox/dcim/filtersets.py:539 netbox/dcim/filtersets.py:678
@@ -3488,7 +3484,7 @@ msgstr "Fuso horário"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3739,7 +3735,7 @@ msgid "Device Type"
 msgstr "Tipo de Dispositivo"
 msgstr "Tipo de Dispositivo"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3847,7 +3843,7 @@ msgstr "Cluster"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4193,11 +4189,11 @@ msgstr "Site designado"
 
 
 #: netbox/dcim/forms/bulk_import.py:141
 #: netbox/dcim/forms/bulk_import.py:141
 msgid "Parent location"
 msgid "Parent location"
-msgstr "Localização principal"
+msgstr "Local pai"
 
 
 #: netbox/dcim/forms/bulk_import.py:143
 #: netbox/dcim/forms/bulk_import.py:143
 msgid "Location not found."
 msgid "Location not found."
-msgstr "Localização não encontrada."
+msgstr "Local não encontrado."
 
 
 #: netbox/dcim/forms/bulk_import.py:185
 #: netbox/dcim/forms/bulk_import.py:185
 msgid "The manufacturer of this rack type"
 msgid "The manufacturer of this rack type"
@@ -6155,12 +6151,12 @@ msgstr "Rack {rack} não pertence ao site {site}."
 #: netbox/dcim/models/devices.py:840
 #: netbox/dcim/models/devices.py:840
 #, python-brace-format
 #, python-brace-format
 msgid "Location {location} does not belong to site {site}."
 msgid "Location {location} does not belong to site {site}."
-msgstr "Localização {location} não pertence ao site {site}."
+msgstr "Local {location} não pertence ao site {site}."
 
 
 #: netbox/dcim/models/devices.py:846
 #: netbox/dcim/models/devices.py:846
 #, python-brace-format
 #, python-brace-format
 msgid "Rack {rack} does not belong to location {location}."
 msgid "Rack {rack} does not belong to location {location}."
-msgstr "Rack {rack} não pertence à localização {location}."
+msgstr "Rack {rack} não pertence ao local {location}."
 
 
 #: netbox/dcim/models/devices.py:853
 #: netbox/dcim/models/devices.py:853
 msgid "Cannot select a rack face without assigning a rack."
 msgid "Cannot select a rack face without assigning a rack."
@@ -6357,7 +6353,7 @@ msgstr "quadros de alimentação"
 msgid ""
 msgid ""
 "Location {location} ({location_site}) is in a different site than {site}"
 "Location {location} ({location_site}) is in a different site than {site}"
 msgstr ""
 msgstr ""
-"Localização {location} ({location_site}) está em um site diferente do {site}"
+"Local {location} ({location_site}) está em um site diferente do {site}"
 
 
 #: netbox/dcim/models/power.py:108
 #: netbox/dcim/models/power.py:108
 msgid "supply"
 msgid "supply"
@@ -6536,7 +6532,7 @@ msgstr "racks"
 #: netbox/dcim/models/racks.py:375
 #: netbox/dcim/models/racks.py:375
 #, python-brace-format
 #, python-brace-format
 msgid "Assigned location must belong to parent site ({site})."
 msgid "Assigned location must belong to parent site ({site})."
-msgstr "A localização definida deve pertencer ao site principal ({site})."
+msgstr "O local definido deve pertencer ao site principal ({site})."
 
 
 #: netbox/dcim/models/racks.py:393
 #: netbox/dcim/models/racks.py:393
 #, python-brace-format
 #, python-brace-format
@@ -6559,7 +6555,7 @@ msgstr ""
 #: netbox/dcim/models/racks.py:408
 #: netbox/dcim/models/racks.py:408
 #, python-brace-format
 #, python-brace-format
 msgid "Location must be from the same site, {site}."
 msgid "Location must be from the same site, {site}."
-msgstr "A localização deve ser do mesmo site, {site}."
+msgstr "O local deve ser do mesmo site, {site}."
 
 
 #: netbox/dcim/models/racks.py:670
 #: netbox/dcim/models/racks.py:670
 msgid "units"
 msgid "units"
@@ -6653,25 +6649,24 @@ msgstr "sites"
 
 
 #: netbox/dcim/models/sites.py:309
 #: netbox/dcim/models/sites.py:309
 msgid "A location with this name already exists within the specified site."
 msgid "A location with this name already exists within the specified site."
-msgstr "Já existe uma localização com este nome no site especificado."
+msgstr "Já existe um local com este nome no site especificado."
 
 
 #: netbox/dcim/models/sites.py:319
 #: netbox/dcim/models/sites.py:319
 msgid "A location with this slug already exists within the specified site."
 msgid "A location with this slug already exists within the specified site."
-msgstr "Já existe uma localização com este slug no site especificado."
+msgstr "Já existe um local com este slug no site especificado."
 
 
 #: netbox/dcim/models/sites.py:322
 #: netbox/dcim/models/sites.py:322
 msgid "location"
 msgid "location"
-msgstr "localização"
+msgstr "local"
 
 
 #: netbox/dcim/models/sites.py:323
 #: netbox/dcim/models/sites.py:323
 msgid "locations"
 msgid "locations"
-msgstr "localizações"
+msgstr "locais"
 
 
 #: netbox/dcim/models/sites.py:337
 #: netbox/dcim/models/sites.py:337
 #, python-brace-format
 #, python-brace-format
 msgid "Parent location ({parent}) must belong to the same site ({site})."
 msgid "Parent location ({parent}) must belong to the same site ({site})."
-msgstr ""
-"Localização principal ({parent}) deve pertencer ao mesmo site ({site})."
+msgstr "Local principal ({parent}) deve pertencer ao mesmo site ({site})."
 
 
 #: netbox/dcim/tables/cables.py:55
 #: netbox/dcim/tables/cables.py:55
 msgid "Termination A"
 msgid "Termination A"
@@ -6691,11 +6686,11 @@ msgstr "Dispositivo B"
 
 
 #: netbox/dcim/tables/cables.py:78
 #: netbox/dcim/tables/cables.py:78
 msgid "Location A"
 msgid "Location A"
-msgstr "Localização A"
+msgstr "Local A"
 
 
 #: netbox/dcim/tables/cables.py:84
 #: netbox/dcim/tables/cables.py:84
 msgid "Location B"
 msgid "Location B"
-msgstr "Localização B"
+msgstr "Local B"
 
 
 #: netbox/dcim/tables/cables.py:90
 #: netbox/dcim/tables/cables.py:90
 msgid "Rack A"
 msgid "Rack A"
@@ -6840,7 +6835,7 @@ msgstr "Compartimentos de módulos"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Itens de inventário"
 msgstr "Itens de inventário"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Compartimento de módulo"
 msgstr "Compartimento de módulo"
@@ -7571,12 +7566,12 @@ msgstr "Favoritos"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Exibe seus favoritos pessoais"
 msgstr "Exibe seus favoritos pessoais"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Tipo de ação desconhecido para uma regra de evento: {action_type}"
 msgstr "Tipo de ação desconhecido para uma regra de evento: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Não é possível importar o pipeline de eventos {name}: {error}"
 msgstr "Não é possível importar o pipeline de eventos {name}: {error}"
@@ -7937,7 +7932,7 @@ msgstr "Grupos de sites"
 #: netbox/extras/forms/model_forms.py:522 netbox/netbox/navigation/menu.py:20
 #: netbox/extras/forms/model_forms.py:522 netbox/netbox/navigation/menu.py:20
 #: netbox/templates/dcim/site.html:127
 #: netbox/templates/dcim/site.html:127
 msgid "Locations"
 msgid "Locations"
-msgstr "Localizações"
+msgstr "Locais"
 
 
 #: netbox/extras/forms/filtersets.py:361
 #: netbox/extras/forms/filtersets.py:361
 #: netbox/extras/forms/model_forms.py:527
 #: netbox/extras/forms/model_forms.py:527
@@ -9887,7 +9882,7 @@ msgstr "Intervalo de ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Atribuição de Site/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -12720,7 +12715,7 @@ msgstr "Erro ao renderizar o modelo"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr "Nenhum modelo de configuração foi atribuído para este dispositivo."
+msgstr ""
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
@@ -12995,11 +12990,11 @@ msgstr "Part ID"
 
 
 #: netbox/templates/dcim/location.html:17
 #: netbox/templates/dcim/location.html:17
 msgid "Add Child Location"
 msgid "Add Child Location"
-msgstr "Adicionar Sub-Localização"
+msgstr "Adicionar Local Filho"
 
 
 #: netbox/templates/dcim/location.html:77
 #: netbox/templates/dcim/location.html:77
 msgid "Child Locations"
 msgid "Child Locations"
-msgstr "Sub-Localizações"
+msgstr "Locais Filhos"
 
 
 #: netbox/templates/dcim/location.html:81 netbox/templates/dcim/site.html:131
 #: netbox/templates/dcim/location.html:81 netbox/templates/dcim/site.html:131
 msgid "Add a Location"
 msgid "Add a Location"
@@ -13129,7 +13124,7 @@ msgstr "Adicionar Site"
 
 
 #: netbox/templates/dcim/region.html:55
 #: netbox/templates/dcim/region.html:55
 msgid "Child Regions"
 msgid "Child Regions"
-msgstr "Regiões de Sub-Localizações"
+msgstr "Regiões Filhas"
 
 
 #: netbox/templates/dcim/region.html:59
 #: netbox/templates/dcim/region.html:59
 msgid "Add Region"
 msgid "Add Region"
@@ -13160,7 +13155,7 @@ msgstr "Endereço de Entrega"
 #: netbox/templates/tenancy/tenantgroup.html:55
 #: netbox/templates/tenancy/tenantgroup.html:55
 #: netbox/templates/wireless/wirelesslangroup.html:55
 #: netbox/templates/wireless/wirelesslangroup.html:55
 msgid "Child Groups"
 msgid "Child Groups"
-msgstr "Grupos de Sub-Localizações"
+msgstr "Grupos Filhos"
 
 
 #: netbox/templates/dcim/sitegroup.html:59
 #: netbox/templates/dcim/sitegroup.html:59
 msgid "Add Site Group"
 msgid "Add Site Group"
@@ -13989,7 +13984,7 @@ msgstr "Centro de ajuda"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Administrador do Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14403,7 +14398,6 @@ msgstr "Adicionar Disco Virtual"
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
 msgstr ""
 msgstr ""
-"Nenhum modelo de configuração foi atribuído para esta máquina virtual."
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -15513,8 +15507,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} pertence ao site ({device_site}), diferente do que pertence o "
-"cluster ({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -16250,7 +16242,6 @@ msgstr "links wireless"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"É necessário especificar uma unidade ao definir uma distância sem fio."
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 20 - 25
netbox/translations/ru/LC_MESSAGES/django.po

@@ -11,9 +11,9 @@
 # stavr666, 2024
 # stavr666, 2024
 # Alexander Ryazanov (alryaz) <alryaz@xavux.com>, 2024
 # Alexander Ryazanov (alryaz) <alryaz@xavux.com>, 2024
 # Vladyslav V. Prodan, 2024
 # Vladyslav V. Prodan, 2024
-# Jeremy Stretch, 2024
 # Artem Kotik, 2025
 # Artem Kotik, 2025
 # Michail Tatarinov, 2025
 # Michail Tatarinov, 2025
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
@@ -22,7 +22,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Michail Tatarinov, 2025\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n"
 "Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -64,7 +64,7 @@ msgstr "Истекает"
 
 
 #: netbox/account/tables.py:42 netbox/users/forms/filtersets.py:141
 #: netbox/account/tables.py:42 netbox/users/forms/filtersets.py:141
 msgid "Last Used"
 msgid "Last Used"
-msgstr "Последнее использование"
+msgstr "Последний раз использованный"
 
 
 #: netbox/account/tables.py:45 netbox/templates/account/token.html:55
 #: netbox/account/tables.py:45 netbox/templates/account/token.html:55
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122
@@ -75,7 +75,7 @@ msgstr "Разрешенные IP-адреса"
 #: netbox/account/views.py:114
 #: netbox/account/views.py:114
 #, python-brace-format
 #, python-brace-format
 msgid "Logged in as {user}."
 msgid "Logged in as {user}."
-msgstr "Вошел(-ла) в систему как {user}."
+msgstr "Вошел в систему как {user}."
 
 
 #: netbox/account/views.py:164
 #: netbox/account/views.py:164
 msgid "You have logged out."
 msgid "You have logged out."
@@ -83,11 +83,13 @@ msgstr "Вы вышли из системы."
 
 
 #: netbox/account/views.py:216
 #: netbox/account/views.py:216
 msgid "Your preferences have been updated."
 msgid "Your preferences have been updated."
-msgstr "Ваши настройки были обновлены."
+msgstr "Ваши предпочтения обновлены."
 
 
 #: netbox/account/views.py:239
 #: netbox/account/views.py:239
 msgid "LDAP-authenticated user credentials cannot be changed within NetBox."
 msgid "LDAP-authenticated user credentials cannot be changed within NetBox."
-msgstr "Учетные данные доменных пользователей нельзя изменить в NetBox."
+msgstr ""
+"Учетные данные пользователя, аутентифицированные по протоколу LDAP, нельзя "
+"изменить в NetBox."
 
 
 #: netbox/account/views.py:254
 #: netbox/account/views.py:254
 msgid "Your password has been changed successfully."
 msgid "Your password has been changed successfully."
@@ -104,7 +106,7 @@ msgstr "Запланировано"
 
 
 #: netbox/circuits/choices.py:22 netbox/netbox/navigation/menu.py:305
 #: netbox/circuits/choices.py:22 netbox/netbox/navigation/menu.py:305
 msgid "Provisioning"
 msgid "Provisioning"
-msgstr "Эксплутация"
+msgstr "Выделение ресурсов"
 
 
 #: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
 #: netbox/circuits/choices.py:23 netbox/core/tables/tasks.py:22
 #: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
 #: netbox/dcim/choices.py:22 netbox/dcim/choices.py:103
@@ -124,11 +126,11 @@ msgstr "Активный"
 #: netbox/dcim/choices.py:1659 netbox/virtualization/choices.py:24
 #: netbox/dcim/choices.py:1659 netbox/virtualization/choices.py:24
 #: netbox/virtualization/choices.py:43
 #: netbox/virtualization/choices.py:43
 msgid "Offline"
 msgid "Offline"
-msgstr "Оффлайн"
+msgstr "Не в сети"
 
 
 #: netbox/circuits/choices.py:25
 #: netbox/circuits/choices.py:25
 msgid "Deprovisioning"
 msgid "Deprovisioning"
-msgstr "Вывод из эксплуатации"
+msgstr "Выделение резервов"
 
 
 #: netbox/circuits/choices.py:26
 #: netbox/circuits/choices.py:26
 msgid "Decommissioned"
 msgid "Decommissioned"
@@ -137,7 +139,7 @@ msgstr "Списан"
 #: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1619
 #: netbox/circuits/choices.py:90 netbox/dcim/choices.py:1619
 #: netbox/tenancy/choices.py:17
 #: netbox/tenancy/choices.py:17
 msgid "Primary"
 msgid "Primary"
-msgstr "Основной"
+msgstr "Начальное"
 
 
 #: netbox/circuits/choices.py:91 netbox/ipam/choices.py:90
 #: netbox/circuits/choices.py:91 netbox/ipam/choices.py:90
 #: netbox/tenancy/choices.py:18
 #: netbox/tenancy/choices.py:18
@@ -146,7 +148,7 @@ msgstr "Вторичный"
 
 
 #: netbox/circuits/choices.py:92 netbox/tenancy/choices.py:19
 #: netbox/circuits/choices.py:92 netbox/tenancy/choices.py:19
 msgid "Tertiary"
 msgid "Tertiary"
-msgstr "Третичный"
+msgstr "Высшее образование"
 
 
 #: netbox/circuits/choices.py:93 netbox/tenancy/choices.py:20
 #: netbox/circuits/choices.py:93 netbox/tenancy/choices.py:20
 msgid "Inactive"
 msgid "Inactive"
@@ -174,7 +176,7 @@ msgstr "Регион (ID)"
 #: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
-msgstr "Регион (подстрока)"
+msgstr "Регион (пуля)"
 
 
 #: netbox/circuits/filtersets.py:44 netbox/circuits/filtersets.py:211
 #: netbox/circuits/filtersets.py:44 netbox/circuits/filtersets.py:211
 #: netbox/dcim/filtersets.py:128 netbox/dcim/filtersets.py:225
 #: netbox/dcim/filtersets.py:128 netbox/dcim/filtersets.py:225
@@ -197,7 +199,7 @@ msgstr "Группа сайтов (ID)"
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
-msgstr "Группа сайтов (подстрока)"
+msgstr "Группа сайтов (слизень)"
 
 
 #: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
 #: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188
 #: netbox/circuits/forms/bulk_edit.py:216
 #: netbox/circuits/forms/bulk_edit.py:216
@@ -1241,7 +1243,7 @@ msgstr "Назначения групп каналов связи"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "завершение"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1303,15 +1305,11 @@ msgstr "точки подключения канала связи"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Оконечное устройство канала должно быть подключено либо к узлу, либо к сети "
-"провайдера."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Терминатор канала не может быть подключен как к сайту, так и к сети "
-"поставщика."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -9863,7 +9861,7 @@ msgstr "Диапазон ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Назначение сайта/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -12704,7 +12702,7 @@ msgstr "Ошибка при отображении шаблона"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr "Для этого устройства не назначен шаблон конфигурации."
+msgstr ""
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
@@ -13973,7 +13971,7 @@ msgstr "Справочный центр"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Администратор Джанго"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14385,7 +14383,7 @@ msgstr "Добавить виртуальный диск"
 
 
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
-msgstr "Для этой виртуальной машины не назначен шаблон конфигурации."
+msgstr ""
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -15497,8 +15495,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} принадлежит другому сайту ({device_site}), чем кластер "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -16234,7 +16230,6 @@ msgstr "беспроводные соединения"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"При настройке беспроводного расстояния необходимо указать единицу измерения"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 110 - 105
netbox/translations/tr/LC_MESSAGES/django.po

@@ -6,16 +6,16 @@
 # Translators:
 # Translators:
 # Burak Senturk, 2024
 # Burak Senturk, 2024
 # Hamdi Suat Aknar, 2024
 # Hamdi Suat Aknar, 2024
-# Jeremy Stretch, 2024
+# Jeremy Stretch, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: Jeremy Stretch, 2025\n"
 "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n"
 "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -153,7 +153,7 @@ msgstr "Etkin Olmayan"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -165,8 +165,8 @@ msgstr "Bölge (ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Bölge (kısa ad)"
 msgstr "Bölge (kısa ad)"
@@ -176,8 +176,8 @@ msgstr "Bölge (kısa ad)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Site grubu (ID)"
 msgstr "Site grubu (ID)"
@@ -188,7 +188,7 @@ msgstr "Site grubu (ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -258,8 +258,8 @@ msgstr "Site"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -278,13 +278,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Sağlayıcı (ID)"
 msgstr "Sağlayıcı (ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Sağlayıcı (kısa ad)"
 msgstr "Sağlayıcı (kısa ad)"
 
 
@@ -313,8 +313,8 @@ msgstr "Devre tipi (kısa ad)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Site (ID)"
 msgstr "Site (ID)"
@@ -668,7 +668,7 @@ msgstr "Sağlayıcı hesabı"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1103,7 +1103,7 @@ msgstr "Ödev"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1236,7 +1236,7 @@ msgstr "Devre grubu atamaları"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "sonlandırma"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1298,12 +1298,11 @@ msgstr "devre sonlandırmaları"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Bir devre sonlandırma, bir siteye veya bir sağlayıcı ağına bağlanmalıdır."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
-msgstr "Devre sonlandırma hem siteye hem de sağlayıcı ağına bağlanamaz."
+msgstr ""
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1540,7 +1539,7 @@ msgstr "Taahhüt Oranı"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2935,7 +2934,7 @@ msgid "Parent site group (slug)"
 msgstr "Ana site grubu (kısa ad)"
 msgstr "Ana site grubu (kısa ad)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Grup (ID)"
 msgstr "Grup (ID)"
 
 
@@ -2993,15 +2992,15 @@ msgstr "Raf tipi (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Rol (ID)"
 msgstr "Rol (ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Rol (kısa ad)"
 msgstr "Rol (kısa ad)"
@@ -3199,7 +3198,7 @@ msgstr "VDC (KİMLİK)"
 msgid "Device model"
 msgid "Device model"
 msgstr "Cihaz modeli"
 msgstr "Cihaz modeli"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Arayüz (ID)"
 msgstr "Arayüz (ID)"
@@ -3213,8 +3212,8 @@ msgid "Module bay (ID)"
 msgstr "Modül yuvası (ID)"
 msgstr "Modül yuvası (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Cihaz (ID)"
 msgstr "Cihaz (ID)"
@@ -3223,8 +3222,8 @@ msgstr "Cihaz (ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Raf (isim)"
 msgstr "Raf (isim)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Cihaz (isim)"
 msgstr "Cihaz (isim)"
@@ -3276,9 +3275,9 @@ msgstr "Atanmış VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3305,19 +3304,19 @@ msgstr "Atanmış VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RD)"
 msgstr "VRF (RD)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (KİMLİĞİ)"
 msgstr "L2VPN (KİMLİĞİ)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3479,7 +3478,7 @@ msgstr "Saat dilimi"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3730,7 +3729,7 @@ msgid "Device Type"
 msgstr "Cihaz Türü"
 msgstr "Cihaz Türü"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3838,7 +3837,7 @@ msgstr "Küme"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4090,11 +4089,11 @@ msgstr "Etiketli VLAN'lar"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "Etiketli VLAN'lar ekle"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "Etiketli VLAN'ları kaldır"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4142,7 +4141,7 @@ msgstr "802.1Q Anahtarlama"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "Ekle/Kaldır"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4220,7 +4219,7 @@ msgstr "Atanan rolün adı"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Raf tipi modeli"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4229,11 +4228,11 @@ msgstr "Hava akışı yönü"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "Bir raf tipi belirtilmiyorsa genişlik ayarlanmalıdır."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "Bir raf tipi belirtilmiyorsa U yüksekliği ayarlanmalıdır."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4893,6 +4892,10 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"Toplu oluşturma için alfanümerik aralıklar desteklenir. Tek bir aralıktaki "
+"karışık durumlar ve türler desteklenmez (örnek: <code>[ge, xe] -0/0/ "
+"[0-9]</code>). Simge <code>{module}</code>, varsa, yeni bir modül "
+"oluştururken otomatik olarak konum değeri ile değiştirilecektir."
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6765,7 +6768,7 @@ msgstr "Modül bölmeleri"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Envanter kalemleri"
 msgstr "Envanter kalemleri"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Modül Yuvası"
 msgstr "Modül Yuvası"
@@ -7490,12 +7493,12 @@ msgstr "Yer İşaretleri"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Kişisel yer imlerinizi gösterin"
 msgstr "Kişisel yer imlerinizi gösterin"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Bir olay kuralı için bilinmeyen eylem türü: {action_type}"
 msgstr "Bir olay kuralı için bilinmeyen eylem türü: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Olaylar boru hattı içe aktarılamıyor {name} hata: {error}"
 msgstr "Olaylar boru hattı içe aktarılamıyor {name} hata: {error}"
@@ -9260,129 +9263,129 @@ msgstr "L2VPN'i dışa aktarma"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "L2VPN'i dışa aktarma (tanımlayıcı)"
 msgstr "L2VPN'i dışa aktarma (tanımlayıcı)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Önek"
 msgstr "Önek"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RİR (İD)"
 msgstr "RİR (İD)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (kısa ad)"
 msgstr "RIR (kısa ad)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "Önek içinde"
 msgstr "Önek içinde"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "Önek içinde ve dahil olmak üzere"
 msgstr "Önek içinde ve dahil olmak üzere"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Bu önek veya IP'yi içeren önekler"
 msgstr "Bu önek veya IP'yi içeren önekler"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Maske uzunluğu"
 msgstr "Maske uzunluğu"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (KİMLİĞİ)"
 msgstr "VLAN (KİMLİĞİ)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "VLAN numarası (1-4094)"
 msgstr "VLAN numarası (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Adres"
 msgstr "Adres"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Bu önek veya IP'yi içeren aralıklar"
 msgstr "Bu önek veya IP'yi içeren aralıklar"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Ebeveyn öneki"
 msgstr "Ebeveyn öneki"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Sanal makine (isim)"
 msgstr "Sanal makine (isim)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Sanal makine (ID)"
 msgstr "Sanal makine (ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Arayüz (isim)"
 msgstr "Arayüz (isim)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "VM arabirimi (isim)"
 msgstr "VM arabirimi (isim)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "VM arabirimi (ID)"
 msgstr "VM arabirimi (ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "FHRP grubu (ID)"
 msgstr "FHRP grubu (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Bir arayüze atanır"
 msgstr "Bir arayüze atanır"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "Atanmıştır"
 msgstr "Atanmıştır"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Hizmet (ID)"
 msgstr "Hizmet (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "IP adresi içinde NAT (ID)"
 msgstr "IP adresi içinde NAT (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Atanmış arayüz"
 msgstr "Atanmış arayüz"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Atanmış VM arabirimi"
 msgstr "Atanmış VM arabirimi"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "IP adresi (ID)"
 msgstr "IP adresi (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "IP adresi"
 msgstr "IP adresi"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "Birincil IPv4 (ID)"
 msgstr "Birincil IPv4 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "Birincil IPv6 (ID)"
 msgstr "Birincil IPv6 (ID)"
 
 
@@ -9606,11 +9609,11 @@ msgstr "Bunu atanan cihaz için birincil IP yapın"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Bant dışı"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "Bunu atanan aygıtın bant dışı IP adresi olarak belirleyin"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9619,11 +9622,11 @@ msgstr ""
 
 
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Aygıt belirtilmemiş; bant dışı IP olarak ayarlanamıyor"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "Sanal makineler için bant dışı IP ayarlanamıyor"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9631,7 +9634,7 @@ msgstr "Arayüz belirtilmedi; birincil IP olarak ayarlanamıyor"
 
 
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "Arayüz belirtilmedi; bant dışı IP olarak ayarlanamıyor"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9790,7 +9793,7 @@ msgstr "ASN Aralığı"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Site/VLAN Ataması"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9808,7 +9811,7 @@ msgstr "Bunu cihaz/VM için birincil IP yapın"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Bunu cihaz için bant dışı IP yapın"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9820,11 +9823,11 @@ msgstr "IP adresi yalnızca tek bir nesneye atanabilir."
 
 
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
-msgstr ""
+msgstr "Ana aygıt/sanal makine için birincil IP adresi yeniden atanamıyor"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
-msgstr ""
+msgstr "Ana aygıt için bant dışı IP adresi yeniden atanamıyor"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9837,6 +9840,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Yalnızca bir cihaz arayüzüne atanan IP adresleri, bir aygıt için bant dışı "
+"IP olarak belirlenebilir."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10229,12 +10234,12 @@ msgstr "scope_type olmadan scope_id ayarlanamıyor."
 #: netbox/ipam/models/vlans.py:105
 #: netbox/ipam/models/vlans.py:105
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
-msgstr ""
+msgstr "Menzilde VLAN Kimliğini Başlatma ({value}) daha az olamaz {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
-msgstr ""
+msgstr "Menzilde VLAN Kimliğini Sonlandırma ({value}) geçemez {maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
@@ -10242,6 +10247,8 @@ msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
 msgstr ""
 msgstr ""
+"Aralıktaki bitiş VLAN kimliği, başlangıç VLAN kimliğinden daha büyük veya "
+"ona eşit olmalıdır ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12605,7 +12612,7 @@ msgstr "İndir"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Hata oluşturma şablonu"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13476,7 +13483,7 @@ msgstr "Tekrar koş"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "Modülden komut dosyaları yüklenemedi %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -13875,7 +13882,7 @@ msgstr "Yardım Merkezi"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Django Yöneticisi"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15352,12 +15359,12 @@ msgstr "Bellek (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "Disk (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "Boyut (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15385,8 +15392,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} adlı aygıt, ({cluster_site}) kümesinden farklı bir siteye "
-"({device_site})  aittir"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15566,19 +15571,19 @@ msgstr "GREC"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "Tel Koruma"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16118,7 +16123,7 @@ msgstr "kablosuz bağlantılar"
 
 
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
-msgstr "Kablosuz mesafeyi ayarlarken bir birim belirtmelisiniz"
+msgstr ""
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 98 - 92
netbox/translations/uk/LC_MESSAGES/django.po

@@ -13,7 +13,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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "Last-Translator: Vladyslav V. Prodan, 2024\n"
 "Last-Translator: Vladyslav V. Prodan, 2024\n"
 "Language-Team: Ukrainian (https://app.transifex.com/netbox-community/teams/178115/uk/)\n"
 "Language-Team: Ukrainian (https://app.transifex.com/netbox-community/teams/178115/uk/)\n"
@@ -152,7 +152,7 @@ msgstr "Неактивний"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -164,8 +164,8 @@ msgstr "Регіон (ідентифікатор)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "Регіон (скорочення)"
 msgstr "Регіон (скорочення)"
@@ -175,8 +175,8 @@ msgstr "Регіон (скорочення)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "Група тех. майданчиків (ідентифікатор)"
 msgstr "Група тех. майданчиків (ідентифікатор)"
@@ -187,7 +187,7 @@ msgstr "Група тех. майданчиків (ідентифікатор)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -257,8 +257,8 @@ msgstr "Тех. майданчик"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -277,13 +277,13 @@ msgstr "ASN"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "Провайдер (ідентифікатор)"
 msgstr "Провайдер (ідентифікатор)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "Провайдер (скорочення)"
 msgstr "Провайдер (скорочення)"
 
 
@@ -312,8 +312,8 @@ msgstr "Тип каналу зв'язку (скорочення)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "Тех. майданчик (ідентифікатор)"
 msgstr "Тех. майданчик (ідентифікатор)"
@@ -667,7 +667,7 @@ msgstr "Обліковий запис постачальника"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1102,7 +1102,7 @@ msgstr "Призначення"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1235,7 +1235,7 @@ msgstr "Призначення групи каналів зв'язку"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "кінець"
+msgstr ""
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1298,15 +1298,11 @@ msgstr "кінці каналу зв'язку"
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
 msgstr ""
 msgstr ""
-"Кінець каналу зв'язку повинно приєднатися або до тех. майданчику, або до "
-"мережі провайдера."
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
 msgstr ""
 msgstr ""
-"Обідви кінці каналу зв'язку не може приєднатися як до тех. майданчику, так і"
-" до мережі провайдера."
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1543,7 +1539,7 @@ msgstr "Гарантований процент чи коефіцієнт дос
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -2937,7 +2933,7 @@ msgid "Parent site group (slug)"
 msgstr "Батьківська група тех. майданчиків (скорочення)"
 msgstr "Батьківська група тех. майданчиків (скорочення)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "Група (ідентифікатор)"
 msgstr "Група (ідентифікатор)"
 
 
@@ -2995,15 +2991,15 @@ msgstr "Тип стійки (ідентифікатор)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "Роль (ідентифікатор)"
 msgstr "Роль (ідентифікатор)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "Роль (скорочення)"
 msgstr "Роль (скорочення)"
@@ -3201,7 +3197,7 @@ msgstr "Імпульсне джерело живлення (ідентифіка
 msgid "Device model"
 msgid "Device model"
 msgstr "Модель пристрою"
 msgstr "Модель пристрою"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "Інтерфейс (ідентифікатор)"
 msgstr "Інтерфейс (ідентифікатор)"
@@ -3215,8 +3211,8 @@ msgid "Module bay (ID)"
 msgstr "Відсік модуля (ідентифікатор)"
 msgstr "Відсік модуля (ідентифікатор)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "Пристрій (ідентифікатор)"
 msgstr "Пристрій (ідентифікатор)"
@@ -3225,8 +3221,8 @@ msgstr "Пристрій (ідентифікатор)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "Стійка (назва)"
 msgstr "Стійка (назва)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "Пристрій (назва)"
 msgstr "Пристрій (назва)"
@@ -3278,9 +3274,9 @@ msgstr "Призначений VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3307,19 +3303,19 @@ msgstr "Призначений VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RD)"
 msgstr "VRF (RD)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ідентифікатор)"
 msgstr "L2VPN (ідентифікатор)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3481,7 +3477,7 @@ msgstr "Часовий пояс"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3732,7 +3728,7 @@ msgid "Device Type"
 msgstr "Тип пристрою"
 msgstr "Тип пристрою"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3840,7 +3836,7 @@ msgstr "Кластер"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4222,7 +4218,7 @@ msgstr "Назва призначеної ролі"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "Модель типу стійки"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4231,11 +4227,11 @@ msgstr "Напрямок повітряного потоку"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "Ширина повинна бути встановлена, якщо не вказано тип стійки."
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "Висота U повинна бути встановлена, якщо не вказано тип стійки."
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -6826,7 +6822,7 @@ msgstr "Модульні відсіки"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "Елементи інвентаря"
 msgstr "Елементи інвентаря"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "Резервуар модулів"
 msgstr "Резервуар модулів"
@@ -7554,12 +7550,12 @@ msgstr "Закладки"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "Показувати особисті закладки"
 msgstr "Показувати особисті закладки"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "Невідомий тип дії для правила події: {action_type}"
 msgstr "Невідомий тип дії для правила події: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "Не вдається імпортувати конвеєр подій {name} Помилка: {error}"
 msgstr "Не вдається імпортувати конвеєр подій {name} Помилка: {error}"
@@ -9324,129 +9320,129 @@ msgstr "Експорт L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "Експорт L2VPN (ідентифікатор)"
 msgstr "Експорт L2VPN (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "Префікс"
 msgstr "Префікс"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR (ідентифікатор)"
 msgstr "RIR (ідентифікатор)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIR (скорочення)"
 msgstr "RIR (скорочення)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "У межах префікса"
 msgstr "У межах префікса"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "У межах та включаючи префікс"
 msgstr "У межах та включаючи префікс"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "Мережеві префікси, які містять цей префікс або IP"
 msgstr "Мережеві префікси, які містять цей префікс або IP"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "Довжина маски"
 msgstr "Довжина маски"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ідентифікатор)"
 msgstr "VLAN (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "Номер VLAN (1-4094)"
 msgstr "Номер VLAN (1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "Адреса"
 msgstr "Адреса"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "Діапазони, які містять цей префікс або IP"
 msgstr "Діапазони, які містять цей префікс або IP"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "Батьківський префікс"
 msgstr "Батьківський префікс"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "Віртуальна машина (назва)"
 msgstr "Віртуальна машина (назва)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "Віртуальна машина (ідентифікатор)"
 msgstr "Віртуальна машина (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "Інтерфейс (назва)"
 msgstr "Інтерфейс (назва)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "Інтерфейс віртуальної машини (назва)"
 msgstr "Інтерфейс віртуальної машини (назва)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "Інтерфейс віртуальної машини (ідентифікатор)"
 msgstr "Інтерфейс віртуальної машини (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "Група FHRP/VRRP (ідентифікатор)"
 msgstr "Група FHRP/VRRP (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "Призначений до інтерфейсу"
 msgstr "Призначений до інтерфейсу"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "призначається"
 msgstr "призначається"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "Сервіс (ідентифікатор)"
 msgstr "Сервіс (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "NAT внутрішня IP-адреса (ідентифікатор)"
 msgstr "NAT внутрішня IP-адреса (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "Призначений інтерфейс"
 msgstr "Призначений інтерфейс"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "Призначений інтерфейс віртуальної машини"
 msgstr "Призначений інтерфейс віртуальної машини"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "IP-адреса (ідентифікатор)"
 msgstr "IP-адреса (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "IP-адреса"
 msgstr "IP-адреса"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "Первинна адреса IPv4 (ідентифікатор)"
 msgstr "Первинна адреса IPv4 (ідентифікатор)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "Первинна адреса IPv6 (ідентифікатор)"
 msgstr "Первинна адреса IPv6 (ідентифікатор)"
 
 
@@ -9670,11 +9666,13 @@ msgstr "Зробіть це основним IP для призначеного
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "Це для зовнішнього незалежного керування"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgstr ""
 msgstr ""
+"Позначте це як IP-адресу для зовнішнього незалежного керування призначеного "
+"пристрою"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9685,10 +9683,14 @@ msgstr ""
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Пристрій не вказано; неможливо встановити IP для зовнішнього незалежного "
+"керування"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
 msgstr ""
 msgstr ""
+"Не вдається встановити IP для зовнішнього незалежного керування віртуальних "
+"машин"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9697,6 +9699,8 @@ msgstr "Інтерфейс не вказано; неможливо встано
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
 msgstr ""
 msgstr ""
+"Інтерфейс не вказано; неможливо встановити як IP для зовнішнього незалежного"
+" керування"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9855,7 +9859,7 @@ msgstr "Діапазон ASN"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Призначення тех. майданчику/VLAN"
+msgstr ""
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9873,7 +9877,7 @@ msgstr "Зробіть це основним IP для пристрою/вірт
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "Зробіть це IP для зовнішнього незалежного керування пристрою"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9886,10 +9890,14 @@ msgstr "IP-адреса може бути призначена лише одно
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgstr ""
 msgstr ""
+"Не вдається перепризначити первинну IP-адресу для батьківського "
+"пристрою/віртуальної машини"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgstr ""
 msgstr ""
+"Не вдається перепризначити IP-адресу для зовнішнього незалежного керування "
+"батьківського пристрою"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9903,6 +9911,8 @@ msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
 msgstr ""
 msgstr ""
+"Лише IP-адреси, призначені інтерфейсу пристрою, можуть бути позначені як IP "
+"для зовнішнього незалежного керування пристрою."
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -12675,7 +12685,7 @@ msgstr "Завантажити"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "Помилка візуалізації шаблону"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
@@ -13945,7 +13955,7 @@ msgstr "Довідковий центр"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Адміністратор Django"
+msgstr ""
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -15465,8 +15475,6 @@ msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
 msgstr ""
 msgstr ""
-"{device} належить до іншого тех. майданчику ({device_site}) ніж кластер "
-"({cluster_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15653,19 +15661,19 @@ msgstr "GRE"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"
@@ -16206,8 +16214,6 @@ msgstr "бездротові канали зв'язку"
 #: netbox/wireless/models.py:236
 #: netbox/wireless/models.py:236
 msgid "Must specify a unit when setting a wireless distance"
 msgid "Must specify a unit when setting a wireless distance"
 msgstr ""
 msgstr ""
-"Необхідно вказати одиницю виміру при установці відстані бездротового каналу "
-"зв'язку"
 
 
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #: netbox/wireless/models.py:242 netbox/wireless/models.py:248
 #, python-brace-format
 #, python-brace-format

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


+ 113 - 110
netbox/translations/zh/LC_MESSAGES/django.po

@@ -13,17 +13,18 @@
 # Bubu, 2024
 # Bubu, 2024
 # 夏小正, 2024
 # 夏小正, 2024
 # 闻寄云, 2024
 # 闻寄云, 2024
-# jiyin luo, 2024
-# Jeremy Stretch, 2024
+# luo jiyin, 2024
+# Jeremy Stretch, 2025
+# yawei jia, 2025
 # 
 # 
 #, fuzzy
 #, fuzzy
 msgid ""
 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: 2024-12-12 05:02+0000\n"
+"POT-Creation-Date: 2025-01-04 05:02+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
 "PO-Revision-Date: 2023-10-30 17:48+0000\n"
-"Last-Translator: Jeremy Stretch, 2024\n"
+"Last-Translator: yawei jia, 2025\n"
 "Language-Team: Chinese (https://app.transifex.com/netbox-community/teams/178115/zh/)\n"
 "Language-Team: Chinese (https://app.transifex.com/netbox-community/teams/178115/zh/)\n"
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -159,7 +160,7 @@ msgstr "已失效"
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204
-#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959
+#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:45
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358
 msgid "Region (ID)"
 msgid "Region (ID)"
@@ -171,8 +172,8 @@ msgstr "区域(ID)"
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211
-#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346
-#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52
+#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348
+#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353
 msgid "Region (slug)"
 msgid "Region (slug)"
 msgstr "地区(缩写)"
 msgstr "地区(缩写)"
@@ -182,8 +183,8 @@ msgstr "地区(缩写)"
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159
-#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352
-#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58
+#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354
+#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58
 #: netbox/virtualization/filtersets.py:186
 #: netbox/virtualization/filtersets.py:186
 msgid "Site group (ID)"
 msgid "Site group (ID)"
 msgstr "站点组(ID)"
 msgstr "站点组(ID)"
@@ -194,7 +195,7 @@ msgstr "站点组(ID)"
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515
-#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979
+#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:65
 #: netbox/virtualization/filtersets.py:193
 #: netbox/virtualization/filtersets.py:193
 msgid "Site group (slug)"
 msgid "Site group (slug)"
@@ -264,8 +265,8 @@ msgstr "站点"
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458
-#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238
-#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989
+#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240
+#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:75
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363
 msgid "Site (slug)"
 msgid "Site (slug)"
@@ -284,13 +285,13 @@ msgstr "自治系统编号/AS编号"
 
 
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283
-#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243
+#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245
 msgid "Provider (ID)"
 msgid "Provider (ID)"
 msgstr "运营商(ID)"
 msgstr "运营商(ID)"
 
 
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289
-#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249
+#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251
 msgid "Provider (slug)"
 msgid "Provider (slug)"
 msgstr "运营商(缩写)"
 msgstr "运营商(缩写)"
 
 
@@ -319,8 +320,8 @@ msgstr "线路类型(缩写)"
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229
-#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363
-#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69
+#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365
+#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368
 msgid "Site (ID)"
 msgid "Site (ID)"
 msgstr "站点(ID)"
 msgstr "站点(ID)"
@@ -674,7 +675,7 @@ msgstr "运营商账户"
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:924 netbox/dcim/forms/filtersets.py:958
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/forms/filtersets.py:1059 netbox/dcim/forms/filtersets.py:1170
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
 #: netbox/dcim/tables/devices.py:140 netbox/dcim/tables/devices.py:817
-#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:69
+#: netbox/dcim/tables/devices.py:1063 netbox/dcim/tables/modules.py:70
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:126
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
 #: netbox/ipam/forms/bulk_edit.py:256 netbox/ipam/forms/bulk_edit.py:306
@@ -1109,7 +1110,7 @@ msgstr "分配"
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480
-#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493
+#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122
 #: netbox/ipam/tables/vlans.py:226
 #: netbox/ipam/tables/vlans.py:226
@@ -1242,7 +1243,7 @@ msgstr "电路组分配"
 
 
 #: netbox/circuits/models/circuits.py:240
 #: netbox/circuits/models/circuits.py:240
 msgid "termination"
 msgid "termination"
-msgstr "接入终端"
+msgstr "终端"
 
 
 #: netbox/circuits/models/circuits.py:257
 #: netbox/circuits/models/circuits.py:257
 msgid "port speed (Kbps)"
 msgid "port speed (Kbps)"
@@ -1303,12 +1304,12 @@ msgstr "线路接入"
 #: netbox/circuits/models/circuits.py:308
 #: netbox/circuits/models/circuits.py:308
 msgid ""
 msgid ""
 "A circuit termination must attach to either a site or a provider network."
 "A circuit termination must attach to either a site or a provider network."
-msgstr "线路终结必须连接到站点或运营商网络。"
+msgstr "电路终端必须连接到站点或服务提供商网络。"
 
 
 #: netbox/circuits/models/circuits.py:310
 #: netbox/circuits/models/circuits.py:310
 msgid ""
 msgid ""
 "A circuit termination cannot attach to both a site and a provider network."
 "A circuit termination cannot attach to both a site and a provider network."
-msgstr "线路终结不能同时连接到站点和运营商网络。"
+msgstr "电路终端不能同时连接到站点和服务提供商网络。"
 
 
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:22
 #: netbox/circuits/models/providers.py:66
 #: netbox/circuits/models/providers.py:66
@@ -1545,7 +1546,7 @@ msgstr "承诺速率"
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:82
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/circuits/tables/providers.py:107 netbox/dcim/tables/devices.py:1036
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
 #: netbox/dcim/tables/devicetypes.py:92 netbox/dcim/tables/modules.py:29
-#: netbox/dcim/tables/modules.py:72 netbox/dcim/tables/power.py:39
+#: netbox/dcim/tables/modules.py:73 netbox/dcim/tables/power.py:39
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/power.py:96 netbox/dcim/tables/racks.py:84
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/racks.py:145 netbox/dcim/tables/racks.py:225
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
 #: netbox/dcim/tables/sites.py:108 netbox/extras/tables/tables.py:582
@@ -1741,11 +1742,11 @@ msgstr "对象已删除"
 
 
 #: netbox/core/events.py:30
 #: netbox/core/events.py:30
 msgid "Job started"
 msgid "Job started"
-msgstr "作已开始"
+msgstr "作已开始"
 
 
 #: netbox/core/events.py:31
 #: netbox/core/events.py:31
 msgid "Job completed"
 msgid "Job completed"
-msgstr "任务已完成"
+msgstr "作业已完成"
 
 
 #: netbox/core/events.py:32
 #: netbox/core/events.py:32
 msgid "Job failed"
 msgid "Job failed"
@@ -2933,7 +2934,7 @@ msgid "Parent site group (slug)"
 msgstr "上一级站点组(缩写)"
 msgstr "上一级站点组(缩写)"
 
 
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
 #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364
-#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993
+#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995
 msgid "Group (ID)"
 msgid "Group (ID)"
 msgstr "组(ID)"
 msgstr "组(ID)"
 
 
@@ -2991,15 +2992,15 @@ msgstr "机架类型 (ID)"
 
 
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850
-#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493
-#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210
+#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495
+#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210
 msgid "Role (ID)"
 msgid "Role (ID)"
 msgstr "角色(ID)"
 msgstr "角色(ID)"
 
 
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856
-#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387
-#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009
+#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389
+#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011
 #: netbox/virtualization/filtersets.py:216
 #: netbox/virtualization/filtersets.py:216
 msgid "Role (slug)"
 msgid "Role (slug)"
 msgstr "角色 (缩写)"
 msgstr "角色 (缩写)"
@@ -3197,7 +3198,7 @@ msgstr "VDC (ID)"
 msgid "Device model"
 msgid "Device model"
 msgstr "设备型号"
 msgstr "设备型号"
 
 
-#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632
+#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401
 msgid "Interface (ID)"
 msgid "Interface (ID)"
 msgstr "接口(ID)"
 msgstr "接口(ID)"
@@ -3211,8 +3212,8 @@ msgid "Module bay (ID)"
 msgstr "模块托架 (ID)"
 msgstr "模块托架 (ID)"
 
 
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
 #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425
-#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851
-#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161
+#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853
+#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161
 #: netbox/vpn/filtersets.py:379
 #: netbox/vpn/filtersets.py:379
 msgid "Device (ID)"
 msgid "Device (ID)"
 msgstr "设备(ID)"
 msgstr "设备(ID)"
@@ -3221,8 +3222,8 @@ msgstr "设备(ID)"
 msgid "Rack (name)"
 msgid "Rack (name)"
 msgstr "机柜(名称)"
 msgstr "机柜(名称)"
 
 
-#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606
-#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121
+#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608
+#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123
 #: netbox/vpn/filtersets.py:374
 #: netbox/vpn/filtersets.py:374
 msgid "Device (name)"
 msgid "Device (name)"
 msgstr "设备(名称)"
 msgstr "设备(名称)"
@@ -3274,9 +3275,9 @@ msgstr "指定VID"
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/forms/model_forms.py:1385
 #: netbox/dcim/models/device_components.py:711
 #: netbox/dcim/models/device_components.py:711
-#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316
-#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483
-#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595
+#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318
+#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485
+#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279
@@ -3303,19 +3304,19 @@ msgstr "指定VID"
 msgid "VRF"
 msgid "VRF"
 msgstr "VRF"
 msgstr "VRF"
 
 
-#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322
-#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489
-#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601
+#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324
+#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491
+#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603
 msgid "VRF (RD)"
 msgid "VRF (RD)"
 msgstr "VRF (RD)"
 msgstr "VRF (RD)"
 
 
-#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030
+#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032
 #: netbox/vpn/filtersets.py:342
 #: netbox/vpn/filtersets.py:342
 msgid "L2VPN (ID)"
 msgid "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 msgstr "L2VPN (ID)"
 
 
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
 #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433
-#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036
+#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66
 #: netbox/templates/vpn/l2vpntermination.html:12
 #: netbox/templates/vpn/l2vpntermination.html:12
@@ -3475,7 +3476,7 @@ msgstr "时区"
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/forms/object_import.py:187 netbox/dcim/tables/devices.py:96
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devices.py:172 netbox/dcim/tables/devices.py:940
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
 #: netbox/dcim/tables/devicetypes.py:80 netbox/dcim/tables/devicetypes.py:308
-#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:60
+#: netbox/dcim/tables/modules.py:20 netbox/dcim/tables/modules.py:61
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/dcim/tables/racks.py:58 netbox/dcim/tables/racks.py:132
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/devicetype.html:14
 #: netbox/templates/dcim/inventoryitem.html:44
 #: netbox/templates/dcim/inventoryitem.html:44
@@ -3726,7 +3727,7 @@ msgid "Device Type"
 msgstr "设备型号"
 msgstr "设备型号"
 
 
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
 #: netbox/dcim/forms/bulk_edit.py:598 netbox/dcim/forms/model_forms.py:401
-#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:65
+#: netbox/dcim/tables/modules.py:17 netbox/dcim/tables/modules.py:66
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/module.html:65
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/modulebay.html:66
 #: netbox/templates/dcim/moduletype.html:22
 #: netbox/templates/dcim/moduletype.html:22
@@ -3834,7 +3835,7 @@ msgstr "集群"
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:697 netbox/dcim/tables/devices.py:754
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:801 netbox/dcim/tables/devices.py:861
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
 #: netbox/dcim/tables/devices.py:930 netbox/dcim/tables/devices.py:1057
-#: netbox/dcim/tables/modules.py:52 netbox/extras/forms/filtersets.py:321
+#: netbox/dcim/tables/modules.py:53 netbox/extras/forms/filtersets.py:321
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/bulk_import.py:304 netbox/ipam/forms/bulk_import.py:505
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/filtersets.py:551 netbox/ipam/forms/model_forms.py:323
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
 #: netbox/ipam/forms/model_forms.py:712 netbox/ipam/forms/model_forms.py:745
@@ -4086,11 +4087,11 @@ msgstr "已标记 VLANs"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1511
 #: netbox/dcim/forms/bulk_edit.py:1511
 msgid "Add tagged VLANs"
 msgid "Add tagged VLANs"
-msgstr ""
+msgstr "添加带标签的 VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1520
 #: netbox/dcim/forms/bulk_edit.py:1520
 msgid "Remove tagged VLANs"
 msgid "Remove tagged VLANs"
-msgstr ""
+msgstr "移除带标签的 VLAN"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 #: netbox/dcim/forms/bulk_edit.py:1536 netbox/dcim/forms/model_forms.py:1348
 msgid "Wireless LAN group"
 msgid "Wireless LAN group"
@@ -4138,7 +4139,7 @@ msgstr "802.1Q 交换"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1558
 #: netbox/dcim/forms/bulk_edit.py:1558
 msgid "Add/Remove"
 msgid "Add/Remove"
-msgstr ""
+msgstr "添加/删除"
 
 
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 #: netbox/dcim/forms/bulk_edit.py:1617 netbox/dcim/forms/bulk_edit.py:1619
 msgid "Interface mode must be specified to assign VLANs"
 msgid "Interface mode must be specified to assign VLANs"
@@ -4216,7 +4217,7 @@ msgstr "指定规则名称"
 
 
 #: netbox/dcim/forms/bulk_import.py:264
 #: netbox/dcim/forms/bulk_import.py:264
 msgid "Rack type model"
 msgid "Rack type model"
-msgstr ""
+msgstr "机架类型型号"
 
 
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:292 netbox/dcim/forms/bulk_import.py:435
 #: netbox/dcim/forms/bulk_import.py:605
 #: netbox/dcim/forms/bulk_import.py:605
@@ -4225,11 +4226,11 @@ msgstr "风道方向"
 
 
 #: netbox/dcim/forms/bulk_import.py:324
 #: netbox/dcim/forms/bulk_import.py:324
 msgid "Width must be set if not specifying a rack type."
 msgid "Width must be set if not specifying a rack type."
-msgstr ""
+msgstr "如果未指定机架类型,则必须设置宽度。"
 
 
 #: netbox/dcim/forms/bulk_import.py:326
 #: netbox/dcim/forms/bulk_import.py:326
 msgid "U height must be set if not specifying a rack type."
 msgid "U height must be set if not specifying a rack type."
-msgstr ""
+msgstr "如果未指定机架类型,则必须设置 U 高度。"
 
 
 #: netbox/dcim/forms/bulk_import.py:334
 #: netbox/dcim/forms/bulk_import.py:334
 msgid "Parent site"
 msgid "Parent site"
@@ -4875,6 +4876,8 @@ msgid ""
 "present, will be automatically replaced with the position value when "
 "present, will be automatically replaced with the position value when "
 "creating a new module."
 "creating a new module."
 msgstr ""
 msgstr ""
+"批量创建支持字母数字范围。不支持单个范围内的混合大小写和类型(例如: <code>[ge,xe] -0/0/ [0-9]</code>)。代币 "
+"<code>{module}</code>,如果存在,将在创建新模块时自动替换为位置值。"
 
 
 #: netbox/dcim/forms/model_forms.py:1094
 #: netbox/dcim/forms/model_forms.py:1094
 msgid "Console port template"
 msgid "Console port template"
@@ -6680,7 +6683,7 @@ msgstr "设备板卡插槽"
 msgid "Inventory items"
 msgid "Inventory items"
 msgstr "库存项"
 msgstr "库存项"
 
 
-#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:56
+#: netbox/dcim/tables/devices.py:305 netbox/dcim/tables/modules.py:57
 #: netbox/templates/dcim/modulebay.html:17
 #: netbox/templates/dcim/modulebay.html:17
 msgid "Module Bay"
 msgid "Module Bay"
 msgstr "设备板卡插槽"
 msgstr "设备板卡插槽"
@@ -7400,12 +7403,12 @@ msgstr "书签"
 msgid "Show your personal bookmarks"
 msgid "Show your personal bookmarks"
 msgstr "显示您的个人书签"
 msgstr "显示您的个人书签"
 
 
-#: netbox/extras/events.py:147
+#: netbox/extras/events.py:151
 #, python-brace-format
 #, python-brace-format
 msgid "Unknown action type for an event rule: {action_type}"
 msgid "Unknown action type for an event rule: {action_type}"
 msgstr "事件规则的未知操作类型: {action_type}"
 msgstr "事件规则的未知操作类型: {action_type}"
 
 
-#: netbox/extras/events.py:192
+#: netbox/extras/events.py:196
 #, python-brace-format
 #, python-brace-format
 msgid "Cannot import events pipeline {name} error: {error}"
 msgid "Cannot import events pipeline {name} error: {error}"
 msgstr "无法导入事件管道 {name}错误: {error}"
 msgstr "无法导入事件管道 {name}错误: {error}"
@@ -9107,129 +9110,129 @@ msgstr "导出 L2VPN"
 msgid "Exporting L2VPN (identifier)"
 msgid "Exporting L2VPN (identifier)"
 msgstr "导出L2VPN(标识符)"
 msgstr "导出L2VPN(标识符)"
 
 
-#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281
+#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212
 #: netbox/templates/ipam/prefix.html:12
 #: netbox/templates/ipam/prefix.html:12
 msgid "Prefix"
 msgid "Prefix"
 msgstr "前缀"
 msgstr "前缀"
 
 
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
 #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198
-#: netbox/ipam/filtersets.py:221
+#: netbox/ipam/filtersets.py:223
 msgid "RIR (ID)"
 msgid "RIR (ID)"
 msgstr "RIR(ID)"
 msgstr "RIR(ID)"
 
 
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
 #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204
-#: netbox/ipam/filtersets.py:227
+#: netbox/ipam/filtersets.py:229
 msgid "RIR (slug)"
 msgid "RIR (slug)"
 msgstr "RIP(缩写)"
 msgstr "RIP(缩写)"
 
 
-#: netbox/ipam/filtersets.py:285
+#: netbox/ipam/filtersets.py:287
 msgid "Within prefix"
 msgid "Within prefix"
 msgstr "此前缀包含的"
 msgstr "此前缀包含的"
 
 
-#: netbox/ipam/filtersets.py:289
+#: netbox/ipam/filtersets.py:291
 msgid "Within and including prefix"
 msgid "Within and including prefix"
 msgstr "此前缀包含的(包含此前缀)"
 msgstr "此前缀包含的(包含此前缀)"
 
 
-#: netbox/ipam/filtersets.py:293
+#: netbox/ipam/filtersets.py:295
 msgid "Prefixes which contain this prefix or IP"
 msgid "Prefixes which contain this prefix or IP"
 msgstr "包含此前缀或IP的前缀"
 msgstr "包含此前缀或IP的前缀"
 
 
-#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572
+#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196
 #: netbox/ipam/forms/filtersets.py:331
 #: netbox/ipam/forms/filtersets.py:331
 msgid "Mask length"
 msgid "Mask length"
 msgstr "掩码长度"
 msgstr "掩码长度"
 
 
-#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427
+#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427
 msgid "VLAN (ID)"
 msgid "VLAN (ID)"
 msgstr "VLAN (ID)"
 msgstr "VLAN (ID)"
 
 
-#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422
+#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422
 msgid "VLAN number (1-4094)"
 msgid "VLAN number (1-4094)"
 msgstr "VLAN 号(1-4094)"
 msgstr "VLAN 号(1-4094)"
 
 
-#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475
-#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496
+#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477
+#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/templates/tenancy/contact.html:53
 #: netbox/tenancy/forms/bulk_edit.py:113
 #: netbox/tenancy/forms/bulk_edit.py:113
 msgid "Address"
 msgid "Address"
 msgstr "地址"
 msgstr "地址"
 
 
-#: netbox/ipam/filtersets.py:479
+#: netbox/ipam/filtersets.py:481
 msgid "Ranges which contain this prefix or IP"
 msgid "Ranges which contain this prefix or IP"
 msgstr "包含此前缀或IP的范围"
 msgstr "包含此前缀或IP的范围"
 
 
-#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563
+#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565
 msgid "Parent prefix"
 msgid "Parent prefix"
 msgstr "上级前缀"
 msgstr "上级前缀"
 
 
-#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856
-#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385
+#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858
+#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385
 msgid "Virtual machine (name)"
 msgid "Virtual machine (name)"
 msgstr "虚拟机(名称)"
 msgstr "虚拟机(名称)"
 
 
-#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861
-#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282
+#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863
+#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390
 msgid "Virtual machine (ID)"
 msgid "Virtual machine (ID)"
 msgstr "虚拟机(ID)"
 msgstr "虚拟机(ID)"
 
 
-#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97
+#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97
 #: netbox/vpn/filtersets.py:396
 #: netbox/vpn/filtersets.py:396
 msgid "Interface (name)"
 msgid "Interface (name)"
 msgstr "接口(名称)"
 msgstr "接口(名称)"
 
 
-#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108
+#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108
 #: netbox/vpn/filtersets.py:407
 #: netbox/vpn/filtersets.py:407
 msgid "VM interface (name)"
 msgid "VM interface (name)"
 msgstr "虚拟接口(名称)"
 msgstr "虚拟接口(名称)"
 
 
-#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113
+#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113
 msgid "VM interface (ID)"
 msgid "VM interface (ID)"
 msgstr "虚拟接口(ID)"
 msgstr "虚拟接口(ID)"
 
 
-#: netbox/ipam/filtersets.py:648
+#: netbox/ipam/filtersets.py:650
 msgid "FHRP group (ID)"
 msgid "FHRP group (ID)"
 msgstr "FHRP 组 (ID)"
 msgstr "FHRP 组 (ID)"
 
 
-#: netbox/ipam/filtersets.py:652
+#: netbox/ipam/filtersets.py:654
 msgid "Is assigned to an interface"
 msgid "Is assigned to an interface"
 msgstr "分配给接口"
 msgstr "分配给接口"
 
 
-#: netbox/ipam/filtersets.py:656
+#: netbox/ipam/filtersets.py:658
 msgid "Is assigned"
 msgid "Is assigned"
 msgstr "已分配"
 msgstr "已分配"
 
 
-#: netbox/ipam/filtersets.py:668
+#: netbox/ipam/filtersets.py:670
 msgid "Service (ID)"
 msgid "Service (ID)"
 msgstr "服务 (ID)"
 msgstr "服务 (ID)"
 
 
-#: netbox/ipam/filtersets.py:673
+#: netbox/ipam/filtersets.py:675
 msgid "NAT inside IP address (ID)"
 msgid "NAT inside IP address (ID)"
 msgstr "NAT 内部 IP 地址 (ID)"
 msgstr "NAT 内部 IP 地址 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322
+#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322
 msgid "Assigned interface"
 msgid "Assigned interface"
 msgstr "分配的接口"
 msgstr "分配的接口"
 
 
-#: netbox/ipam/filtersets.py:1046
+#: netbox/ipam/filtersets.py:1048
 msgid "Assigned VM interface"
 msgid "Assigned VM interface"
 msgstr "分配的虚拟机接口"
 msgstr "分配的虚拟机接口"
 
 
-#: netbox/ipam/filtersets.py:1136
+#: netbox/ipam/filtersets.py:1138
 msgid "IP address (ID)"
 msgid "IP address (ID)"
 msgstr "IP 地址 (ID)"
 msgstr "IP 地址 (ID)"
 
 
-#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788
+#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788
 msgid "IP address"
 msgid "IP address"
 msgstr "IP 地址"
 msgstr "IP 地址"
 
 
-#: netbox/ipam/filtersets.py:1167
+#: netbox/ipam/filtersets.py:1169
 msgid "Primary IPv4 (ID)"
 msgid "Primary IPv4 (ID)"
 msgstr "首选 IPv4(ID)"
 msgstr "首选 IPv4(ID)"
 
 
-#: netbox/ipam/filtersets.py:1172
+#: netbox/ipam/filtersets.py:1174
 msgid "Primary IPv6 (ID)"
 msgid "Primary IPv6 (ID)"
 msgstr "首选IPv6(ID)"
 msgstr "首选IPv6(ID)"
 
 
@@ -9453,11 +9456,11 @@ msgstr "设置为设备的首选 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:330
 #: netbox/ipam/forms/bulk_import.py:330
 msgid "Is out-of-band"
 msgid "Is out-of-band"
-msgstr ""
+msgstr "处于带外状态"
 
 
 #: netbox/ipam/forms/bulk_import.py:331
 #: netbox/ipam/forms/bulk_import.py:331
 msgid "Designate this as the out-of-band IP address for the assigned device"
 msgid "Designate this as the out-of-band IP address for the assigned device"
-msgstr ""
+msgstr "将其指定为分配设备的带外 IP 地址"
 
 
 #: netbox/ipam/forms/bulk_import.py:371
 #: netbox/ipam/forms/bulk_import.py:371
 msgid "No device or virtual machine specified; cannot set as primary IP"
 msgid "No device or virtual machine specified; cannot set as primary IP"
@@ -9465,11 +9468,11 @@ msgstr "未指定设备或虚拟机;无法设置为首选 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:375
 #: netbox/ipam/forms/bulk_import.py:375
 msgid "No device specified; cannot set as out-of-band IP"
 msgid "No device specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "未指定设备;无法设置为带外 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:379
 #: netbox/ipam/forms/bulk_import.py:379
 msgid "Cannot set out-of-band IP for virtual machines"
 msgid "Cannot set out-of-band IP for virtual machines"
-msgstr ""
+msgstr "无法为虚拟机设置带外 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:383
 #: netbox/ipam/forms/bulk_import.py:383
 msgid "No interface specified; cannot set as primary IP"
 msgid "No interface specified; cannot set as primary IP"
@@ -9477,7 +9480,7 @@ msgstr "未指定接口;无法设置为首选 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:387
 #: netbox/ipam/forms/bulk_import.py:387
 msgid "No interface specified; cannot set as out-of-band IP"
 msgid "No interface specified; cannot set as out-of-band IP"
-msgstr ""
+msgstr "未指定接口;无法设置为带外 IP"
 
 
 #: netbox/ipam/forms/bulk_import.py:422
 #: netbox/ipam/forms/bulk_import.py:422
 msgid "Auth type"
 msgid "Auth type"
@@ -9636,7 +9639,7 @@ msgstr "ASN范围"
 
 
 #: netbox/ipam/forms/model_forms.py:231
 #: netbox/ipam/forms/model_forms.py:231
 msgid "Site/VLAN Assignment"
 msgid "Site/VLAN Assignment"
-msgstr "Site/VLAN 分配"
+msgstr "站点/VLAN 关联"
 
 
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10
 msgid "IP Range"
 msgid "IP Range"
@@ -9654,7 +9657,7 @@ msgstr "将此IP设置为分配设备/虚拟机的首选 IP"
 
 
 #: netbox/ipam/forms/model_forms.py:314
 #: netbox/ipam/forms/model_forms.py:314
 msgid "Make this the out-of-band IP for the device"
 msgid "Make this the out-of-band IP for the device"
-msgstr ""
+msgstr "将此设为设备的带外 IP"
 
 
 #: netbox/ipam/forms/model_forms.py:329
 #: netbox/ipam/forms/model_forms.py:329
 msgid "NAT IP (Inside)"
 msgid "NAT IP (Inside)"
@@ -9666,11 +9669,11 @@ msgstr "IP 地址只能分配给单个对象。"
 
 
 #: netbox/ipam/forms/model_forms.py:398
 #: netbox/ipam/forms/model_forms.py:398
 msgid "Cannot reassign primary IP address for the parent device/VM"
 msgid "Cannot reassign primary IP address for the parent device/VM"
-msgstr ""
+msgstr "无法为父设备/虚拟机重新分配主 IP 地址"
 
 
 #: netbox/ipam/forms/model_forms.py:402
 #: netbox/ipam/forms/model_forms.py:402
 msgid "Cannot reassign out-of-Band IP address for the parent device"
 msgid "Cannot reassign out-of-Band IP address for the parent device"
-msgstr ""
+msgstr "无法为父设备重新分配带外 IP 地址"
 
 
 #: netbox/ipam/forms/model_forms.py:412
 #: netbox/ipam/forms/model_forms.py:412
 msgid ""
 msgid ""
@@ -9681,7 +9684,7 @@ msgstr "只有分配给接口的 IP 地址才能指定为首选 IP。"
 msgid ""
 msgid ""
 "Only IP addresses assigned to a device interface can be designated as the "
 "Only IP addresses assigned to a device interface can be designated as the "
 "out-of-band IP for a device."
 "out-of-band IP for a device."
-msgstr ""
+msgstr "只有分配给设备接口的 IP 地址才能指定为设备的带外 IP。"
 
 
 #: netbox/ipam/forms/model_forms.py:508
 #: netbox/ipam/forms/model_forms.py:508
 msgid "Virtual IP Address"
 msgid "Virtual IP Address"
@@ -10063,19 +10066,19 @@ msgstr "没有作用域类型,无法设置作用域。"
 #: netbox/ipam/models/vlans.py:105
 #: netbox/ipam/models/vlans.py:105
 #, python-brace-format
 #, python-brace-format
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
 msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}"
-msgstr ""
+msgstr "范围内的起始 VLAN ID ({value}) 不能小于 {minimum}"
 
 
 #: netbox/ipam/models/vlans.py:111
 #: netbox/ipam/models/vlans.py:111
 #, python-brace-format
 #, python-brace-format
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
 msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}"
-msgstr ""
+msgstr "在范围内结束 VLAN ID ({value}) 不能超过 {maximum}"
 
 
 #: netbox/ipam/models/vlans.py:118
 #: netbox/ipam/models/vlans.py:118
 #, python-brace-format
 #, python-brace-format
 msgid ""
 msgid ""
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "Ending VLAN ID in range must be greater than or equal to the starting VLAN "
 "ID ({range})"
 "ID ({range})"
-msgstr ""
+msgstr "范围内的结束 VLAN ID 必须大于或等于起始 VLAN ID ({range})"
 
 
 #: netbox/ipam/models/vlans.py:124
 #: netbox/ipam/models/vlans.py:124
 msgid "Ranges cannot overlap."
 msgid "Ranges cannot overlap."
@@ -12408,11 +12411,11 @@ msgstr "下载"
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/dcim/device/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 #: netbox/templates/virtualization/virtualmachine/render_config.html:64
 msgid "Error rendering template"
 msgid "Error rendering template"
-msgstr ""
+msgstr "渲染模板时出错"
 
 
 #: netbox/templates/dcim/device/render_config.html:70
 #: netbox/templates/dcim/device/render_config.html:70
 msgid "No configuration template has been assigned for this device."
 msgid "No configuration template has been assigned for this device."
-msgstr ""
+msgstr "尚未为该设备分配配置模板。"
 
 
 #: netbox/templates/dcim/device_edit.html:44
 #: netbox/templates/dcim/device_edit.html:44
 msgid "Parent Bay"
 msgid "Parent Bay"
@@ -13255,7 +13258,7 @@ msgstr "重新运行"
 #: netbox/templates/extras/script_list.html:133
 #: netbox/templates/extras/script_list.html:133
 #, python-format
 #, python-format
 msgid "Could not load scripts from module %(module)s"
 msgid "Could not load scripts from module %(module)s"
-msgstr ""
+msgstr "无法从模块加载脚本 %(module)s"
 
 
 #: netbox/templates/extras/script_list.html:141
 #: netbox/templates/extras/script_list.html:141
 msgid "No Scripts Found"
 msgid "No Scripts Found"
@@ -13643,7 +13646,7 @@ msgstr "帮助中心"
 
 
 #: netbox/templates/inc/user_menu.html:41
 #: netbox/templates/inc/user_menu.html:41
 msgid "Django Admin"
 msgid "Django Admin"
-msgstr "Django Admin"
+msgstr "Django 管理员"
 
 
 #: netbox/templates/inc/user_menu.html:61
 #: netbox/templates/inc/user_menu.html:61
 msgid "Log Out"
 msgid "Log Out"
@@ -14049,7 +14052,7 @@ msgstr "增加虚拟硬盘"
 
 
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 #: netbox/templates/virtualization/virtualmachine/render_config.html:70
 msgid "No configuration template has been assigned for this virtual machine."
 msgid "No configuration template has been assigned for this virtual machine."
-msgstr ""
+msgstr "尚未为该虚拟机分配配置模板。"
 
 
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ikepolicy.html:10
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166
@@ -15066,12 +15069,12 @@ msgstr "内存 (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:174
 #: netbox/virtualization/forms/bulk_edit.py:174
 msgid "Disk (MB)"
 msgid "Disk (MB)"
-msgstr ""
+msgstr "磁盘 (MB)"
 
 
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/bulk_edit.py:334
 #: netbox/virtualization/forms/filtersets.py:251
 #: netbox/virtualization/forms/filtersets.py:251
 msgid "Size (MB)"
 msgid "Size (MB)"
-msgstr ""
+msgstr "大小 (MB)"
 
 
 #: netbox/virtualization/forms/bulk_import.py:44
 #: netbox/virtualization/forms/bulk_import.py:44
 msgid "Type of cluster"
 msgid "Type of cluster"
@@ -15098,7 +15101,7 @@ msgstr "序列号"
 msgid ""
 msgid ""
 "{device} belongs to a different site ({device_site}) than the cluster "
 "{device} belongs to a different site ({device_site}) than the cluster "
 "({cluster_site})"
 "({cluster_site})"
-msgstr "{device} 属于与集群({cluster_site})不同的站点({device_site})"
+msgstr "{device} 属于与集群 ({cluster_site}) 不同的站点 ({device_site})"
 
 
 #: netbox/virtualization/forms/model_forms.py:192
 #: netbox/virtualization/forms/model_forms.py:192
 msgid "Optionally pin this VM to a specific host device within the cluster"
 msgid "Optionally pin this VM to a specific host device within the cluster"
@@ -15266,19 +15269,19 @@ msgstr "GRE"
 
 
 #: netbox/vpn/choices.py:39
 #: netbox/vpn/choices.py:39
 msgid "WireGuard"
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 
 #: netbox/vpn/choices.py:40
 #: netbox/vpn/choices.py:40
 msgid "OpenVPN"
 msgid "OpenVPN"
-msgstr ""
+msgstr "openVPN"
 
 
 #: netbox/vpn/choices.py:41
 #: netbox/vpn/choices.py:41
 msgid "L2TP"
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 
 #: netbox/vpn/choices.py:42
 #: netbox/vpn/choices.py:42
 msgid "PPTP"
 msgid "PPTP"
-msgstr ""
+msgstr "PPTP"
 
 
 #: netbox/vpn/choices.py:64
 #: netbox/vpn/choices.py:64
 msgid "Hub"
 msgid "Hub"

+ 6 - 2
netbox/utilities/release.py

@@ -30,13 +30,17 @@ class ReleaseInfo:
     edition: str
     edition: str
     published: Union[datetime.date, None] = None
     published: Union[datetime.date, None] = None
     designation: Union[str, None] = None
     designation: Union[str, None] = None
+    build: Union[str, None] = None
     features: FeatureSet = field(default_factory=FeatureSet)
     features: FeatureSet = field(default_factory=FeatureSet)
 
 
     @property
     @property
     def full_version(self):
     def full_version(self):
+        output = self.version
         if self.designation:
         if self.designation:
-            return f"{self.version}-{self.designation}"
-        return self.version
+            output = f"{output}-{self.designation}"
+        if self.build:
+            output = f"{output}-{self.build}"
+        return output
 
 
     @property
     @property
     def name(self):
     def name(self):

+ 1 - 1
netbox/utilities/serialization.py

@@ -29,7 +29,7 @@ def serialize_object(obj, resolve_tags=True, extra=None, exclude=None):
     exclude = exclude or []
     exclude = exclude or []
 
 
     # Include custom_field_data as "custom_fields"
     # Include custom_field_data as "custom_fields"
-    if hasattr(obj, 'custom_field_data'):
+    if 'custom_field_data' in data:
         data['custom_fields'] = data.pop('custom_field_data')
         data['custom_fields'] = data.pop('custom_field_data')
 
 
     # Resolve any assigned tags to their names. Check for tags cached on the instance;
     # Resolve any assigned tags to their names. Check for tags cached on the instance;

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff