From 4a64a3f6e0d0edf27996422eb2dbe0e197a6bea5 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 May 2024 16:03:13 -0400 Subject: [PATCH 01/21] PRVB --- docs/release-notes/version-4.0.md | 4 ++++ netbox/netbox/settings.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md index 42926243b2..1378d7596c 100644 --- a/docs/release-notes/version-4.0.md +++ b/docs/release-notes/version-4.0.md @@ -1,5 +1,9 @@ # NetBox v4.0 +## v4.0.2 (FUTURE) + +--- + ## v4.0.1 (2024-05-09) ### Enhancements diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 8fba7cffcb..b991c50293 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -25,7 +25,7 @@ # Environment setup # -VERSION = '4.0.1' +VERSION = '4.0.2-dev' HOSTNAME = platform.node() # Set the base directory two levels up BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) From 111cbe5b7cc5870bd85640c93af1bff25b1fd54a Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 10 May 2024 09:30:35 -0700 Subject: [PATCH 02/21] 16077 fix display of config revision --- netbox/templates/core/configrevision.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/templates/core/configrevision.html b/netbox/templates/core/configrevision.html index 0aa7b3f052..71831e161f 100644 --- a/netbox/templates/core/configrevision.html +++ b/netbox/templates/core/configrevision.html @@ -33,7 +33,7 @@
{% trans "Configuration Data" %}
- {% include 'core/inc/config_data.html' with config=config.data %} + {% include 'core/inc/config_data.html' with config=object.data %}
From 4b91e79d1e681b3713333cf66e5a91bcafc8318d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markku=20Leini=C3=B6?= Date: Mon, 13 May 2024 16:37:40 +0300 Subject: [PATCH 03/21] Closes #16090: Show NetBox version if plugin validation fails (#16094) * Closes #16090: Show NetBox version if plugin validation fails * Shorten error message --------- Co-authored-by: Jeremy Stretch --- netbox/netbox/plugins/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/netbox/netbox/plugins/__init__.py b/netbox/netbox/plugins/__init__.py index 8db945e741..e2f0f22fce 100644 --- a/netbox/netbox/plugins/__init__.py +++ b/netbox/netbox/plugins/__init__.py @@ -138,13 +138,15 @@ def validate(cls, user_config, netbox_version): min_version = version.parse(cls.min_version) if current_version < min_version: raise ImproperlyConfigured( - f"Plugin {cls.__module__} requires NetBox minimum version {cls.min_version}." + f"Plugin {cls.__module__} requires NetBox minimum version {cls.min_version} (current: " + f"{netbox_version})." ) if cls.max_version is not None: max_version = version.parse(cls.max_version) if current_version > max_version: raise ImproperlyConfigured( - f"Plugin {cls.__module__} requires NetBox maximum version {cls.max_version}." + f"Plugin {cls.__module__} requires NetBox maximum version {cls.max_version} (current: " + f"{netbox_version})." ) # Verify required configuration settings From dffd52d6b0a4f831f6c061eb52424d119d2ec018 Mon Sep 17 00:00:00 2001 From: Julio-Oliveira-Encora Date: Mon, 13 May 2024 15:39:42 -0300 Subject: [PATCH 04/21] Added Cluster category and cluster, cluster_group for VLAN Group filters. --- netbox/ipam/forms/filtersets.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/netbox/ipam/forms/filtersets.py b/netbox/ipam/forms/filtersets.py index 6610bcaf3c..807205aef3 100644 --- a/netbox/ipam/forms/filtersets.py +++ b/netbox/ipam/forms/filtersets.py @@ -10,7 +10,7 @@ from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField from utilities.forms.rendering import FieldSet -from virtualization.models import VirtualMachine +from virtualization.models import VirtualMachine, ClusterGroup, Cluster from vpn.models import L2VPN __all__ = ( @@ -405,6 +405,7 @@ class VLANGroupFilterForm(NetBoxModelFilterSetForm): fieldsets = ( FieldSet('q', 'filter_id', 'tag'), FieldSet('region', 'sitegroup', 'site', 'location', 'rack', name=_('Location')), + FieldSet('cluster_group', 'cluster', name=_('Cluster')), FieldSet('min_vid', 'max_vid', name=_('VLAN ID')), ) model = VLANGroup @@ -445,6 +446,17 @@ class VLANGroupFilterForm(NetBoxModelFilterSetForm): max_value=VLAN_VID_MAX, label=_('Maximum VID') ) + cluster = DynamicModelMultipleChoiceField( + queryset=Cluster.objects.all(), + required=False, + label=_('Cluster') + ) + cluster_group = DynamicModelMultipleChoiceField( + queryset=ClusterGroup.objects.all(), + required=False, + label=_('Cluster group') + ) + tag = TagFilterField(model) From 5be14b0ee2fcc98581ceaaca6a013fecdc8b0661 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 13 May 2024 08:48:26 -0700 Subject: [PATCH 05/21] 16110 fix typo --- netbox/templates/core/system.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/templates/core/system.html b/netbox/templates/core/system.html index 95aa4bdb31..320038ac66 100644 --- a/netbox/templates/core/system.html +++ b/netbox/templates/core/system.html @@ -40,7 +40,7 @@
{% trans "System Status" %}
{{ stats.django_version }} - {% trans "PotsgreSQL version" %} + {% trans "PostgreSQL version" %} {{ stats.postgresql_version }} From e0f138dea2c31a40caa2c22834d4b4f25bdd49b9 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 May 2024 15:13:50 -0400 Subject: [PATCH 06/21] Closes #16070: Set default template for ObjectChildrenView --- netbox/dcim/views.py | 2 -- netbox/ipam/views.py | 5 ----- netbox/netbox/views/generic/object_views.py | 1 + netbox/virtualization/views.py | 1 - 4 files changed, 1 insertion(+), 8 deletions(-) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index abe8301a22..6709952310 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2093,7 +2093,6 @@ class DeviceVirtualMachinesView(generic.ObjectChildrenView): child_model = VirtualMachine table = VirtualMachineTable filterset = VirtualMachineFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('Virtual Machines'), badge=lambda obj: VirtualMachine.objects.filter(cluster=obj.cluster, device=obj).count(), @@ -2986,7 +2985,6 @@ class InventoryItemChildrenView(generic.ObjectChildrenView): child_model = InventoryItem table = tables.InventoryItemTable filterset = filtersets.InventoryItemFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('Children'), badge=lambda obj: obj.child_items.count(), diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 044474ec4e..2c00c318bc 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -214,7 +214,6 @@ class ASNRangeASNsView(generic.ObjectChildrenView): child_model = ASN table = tables.ASNTable filterset = filtersets.ASNFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('ASNs'), badge=lambda x: x.get_child_asns().count(), @@ -883,7 +882,6 @@ class IPAddressRelatedIPsView(generic.ObjectChildrenView): child_model = IPAddress table = tables.IPAddressTable filterset = filtersets.IPAddressFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('Related IPs'), badge=lambda x: x.get_related_ips().count(), @@ -955,7 +953,6 @@ class VLANGroupVLANsView(generic.ObjectChildrenView): child_model = VLAN table = tables.VLANTable filterset = filtersets.VLANFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('VLANs'), badge=lambda x: x.get_child_vlans().count(), @@ -1111,7 +1108,6 @@ class VLANInterfacesView(generic.ObjectChildrenView): child_model = Interface table = tables.VLANDevicesTable filterset = InterfaceFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('Device Interfaces'), badge=lambda x: x.get_interfaces().count(), @@ -1129,7 +1125,6 @@ class VLANVMInterfacesView(generic.ObjectChildrenView): child_model = VMInterface table = tables.VLANVirtualMachinesTable filterset = VMInterfaceFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('VM Interfaces'), badge=lambda x: x.get_vminterfaces().count(), diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 65ab490e0c..243ae2547d 100644 --- a/netbox/netbox/views/generic/object_views.py +++ b/netbox/netbox/views/generic/object_views.py @@ -93,6 +93,7 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin): child_model = None table = None filterset = None + template_name = 'generic/object_children.html' def get_children(self, request, parent): """ diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 1ddd2c92d3..56d8feb266 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -181,7 +181,6 @@ class ClusterVirtualMachinesView(generic.ObjectChildrenView): child_model = VirtualMachine table = tables.VirtualMachineTable filterset = filtersets.VirtualMachineFilterSet - template_name = 'generic/object_children.html' tab = ViewTab( label=_('Virtual Machines'), badge=lambda obj: obj.virtual_machines.count(), From c7850b586b37c4d2784c8513e7f04e1a7ca7d5e4 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 13 May 2024 16:00:07 -0400 Subject: [PATCH 07/21] Fixes #16101: Fix initial loading of pagination widget for dynamic object tables --- netbox/templates/htmx/table.html | 20 ++++++++++--------- netbox/templates/inc/paginator.html | 3 ++- netbox/templates/inc/table_htmx.html | 2 +- .../templates/builtins/htmx_table.html | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/netbox/templates/htmx/table.html b/netbox/templates/htmx/table.html index 155e7f9c3e..f93c86a348 100644 --- a/netbox/templates/htmx/table.html +++ b/netbox/templates/htmx/table.html @@ -2,15 +2,17 @@ {% load helpers %} {% load render_table from django_tables2 %} -{% with preferences|get_key:"pagination.placement" as paginator_placement %} - {% if paginator_placement == 'top' or paginator_placement == 'both' %} - {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page placement='top' %} - {% endif %} - {% render_table table 'inc/table_htmx.html' %} - {% if paginator_placement != 'top' %} - {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page %} - {% endif %} -{% endwith %} +
+ {% with preferences|get_key:"pagination.placement" as paginator_placement %} + {% if paginator_placement == 'top' or paginator_placement == 'both' %} + {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page placement='top' %} + {% endif %} + {% render_table table 'inc/table_htmx.html' %} + {% if paginator_placement != 'top' %} + {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page %} + {% endif %} + {% endwith %} +
{# Include the updated object count for display elsewhere on the page #}
{{ table.rows|length }}
diff --git a/netbox/templates/inc/paginator.html b/netbox/templates/inc/paginator.html index 5c94d9569e..122cdf0501 100644 --- a/netbox/templates/inc/paginator.html +++ b/netbox/templates/inc/paginator.html @@ -5,7 +5,8 @@
diff --git a/netbox/templates/inc/table_htmx.html b/netbox/templates/inc/table_htmx.html index 06d3d9b721..446a77643c 100644 --- a/netbox/templates/inc/table_htmx.html +++ b/netbox/templates/inc/table_htmx.html @@ -1,5 +1,5 @@ {% load django_tables2 %} - + {% if table.show_header %}
From a20ccfee7ef28adc820da50d3bb3301183c1c08c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 13 May 2024 13:26:14 -0400 Subject: [PATCH 08/21] Update queryset resolution methods for compatibility with Django 5.0 --- netbox/utilities/fields.py | 37 +++++++++++++++++++++++------------ netbox/utilities/querysets.py | 10 +++++----- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/netbox/utilities/fields.py b/netbox/utilities/fields.py index 3f7ce6f548..2640f6886e 100644 --- a/netbox/utilities/fields.py +++ b/netbox/utilities/fields.py @@ -70,14 +70,24 @@ class RestrictedGenericForeignKey(GenericForeignKey): # 1. Capture restrict_params from RestrictedPrefetch (hack) # 2. If restrict_params is set, call restrict() on the queryset for # the related model - def get_prefetch_queryset(self, instances, queryset=None): + def get_prefetch_querysets(self, instances, querysets=None): restrict_params = {} + custom_queryset_dict = {} # Compensate for the hack in RestrictedPrefetch - if type(queryset) is dict: - restrict_params = queryset - elif queryset is not None: - raise ValueError(_("Custom queryset can't be used for this lookup.")) + if type(querysets) is dict: + restrict_params = querysets + + elif querysets is not None: + for queryset in querysets: + ct_id = self.get_content_type( + model=queryset.query.model, using=queryset.db + ).pk + if ct_id in custom_queryset_dict: + raise ValueError( + "Only one queryset is allowed for each content type." + ) + custom_queryset_dict[ct_id] = queryset # For efficiency, group the instances by content type and then do one # query per model @@ -100,15 +110,16 @@ def get_prefetch_queryset(self, instances, queryset=None): ret_val = [] for ct_id, fkeys in fk_dict.items(): - instance = instance_dict[ct_id] - ct = self.get_content_type(id=ct_id, using=instance._state.db) - if restrict_params: - # Override the default behavior to call restrict() on each model's queryset - qs = ct.model_class().objects.filter(pk__in=fkeys).restrict(**restrict_params) - ret_val.extend(qs) + if ct_id in custom_queryset_dict: + # Return values from the custom queryset, if provided. + ret_val.extend(custom_queryset_dict[ct_id].filter(pk__in=fkeys)) else: - # Default behavior - ret_val.extend(ct.get_all_objects_for_this_type(pk__in=fkeys)) + instance = instance_dict[ct_id] + ct = self.get_content_type(id=ct_id, using=instance._state.db) + qs = ct.model_class().objects.filter(pk__in=fkeys) + if restrict_params: + qs = qs.restrict(**restrict_params) + ret_val.extend(qs) # For doing the join in Python, we have to match both the FK val and the # content type, so we use a callable that returns a (fk, class) pair. diff --git a/netbox/utilities/querysets.py b/netbox/utilities/querysets.py index 50917dd0f8..0a9389b1f3 100644 --- a/netbox/utilities/querysets.py +++ b/netbox/utilities/querysets.py @@ -20,14 +20,14 @@ def __init__(self, lookup, user, action='view', queryset=None, to_attr=None): super().__init__(lookup, queryset=queryset, to_attr=to_attr) - def get_current_queryset(self, level): + def get_current_querysets(self, level): params = { 'user': self.restrict_user, 'action': self.restrict_action, } - if qs := super().get_current_queryset(level): - return qs.restrict(**params) + if querysets := super().get_current_querysets(level): + return [qs.restrict(**params) for qs in querysets] # Bit of a hack. If no queryset is defined, pass through the dict of restrict() # kwargs to be handled by the field. This is necessary e.g. for GenericForeignKey @@ -49,11 +49,11 @@ def restrict(self, user, action='view'): permission_required = get_permission_for_model(self.model, action) # Bypass restriction for superusers and exempt views - if user.is_superuser or permission_is_exempt(permission_required): + if user and user.is_superuser or permission_is_exempt(permission_required): qs = self # User is anonymous or has not been granted the requisite permission - elif not user.is_authenticated or permission_required not in user.get_all_permissions(): + elif user is None or not user.is_authenticated or permission_required not in user.get_all_permissions(): qs = self.none() # Filter the queryset to include only objects with allowed attributes From e6ccea0168180fd10b0814609d6749fee14b5764 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 13 May 2024 14:51:14 -0400 Subject: [PATCH 09/21] Refactor & expand search view tests --- netbox/extras/tables/tables.py | 6 +-- netbox/netbox/constants.py | 3 ++ netbox/netbox/tables/tables.py | 3 +- netbox/netbox/tests/test_views.py | 62 ++++++++++++++++++++++++++++--- 4 files changed, 65 insertions(+), 9 deletions(-) diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 3738f31028..8c78ad0dec 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -1,10 +1,10 @@ import json import django_tables2 as tables -from django.conf import settings from django.utils.translation import gettext_lazy as _ from extras.models import * +from netbox.constants import EMPTY_TABLE_TEXT from netbox.tables import BaseTable, NetBoxTable, columns from .template_code import * @@ -550,7 +550,7 @@ class ScriptResultsTable(BaseTable): ) class Meta(BaseTable.Meta): - empty_text = _('No results found') + empty_text = _(EMPTY_TABLE_TEXT) fields = ( 'index', 'time', 'status', 'message', ) @@ -581,7 +581,7 @@ class ReportResultsTable(BaseTable): ) class Meta(BaseTable.Meta): - empty_text = _('No results found') + empty_text = _(EMPTY_TABLE_TEXT) fields = ( 'index', 'method', 'time', 'status', 'object', 'url', 'message', ) diff --git a/netbox/netbox/constants.py b/netbox/netbox/constants.py index 6a69280215..e797f4f295 100644 --- a/netbox/netbox/constants.py +++ b/netbox/netbox/constants.py @@ -41,3 +41,6 @@ # General-purpose tokens CENSOR_TOKEN = '********' CENSOR_TOKEN_CHANGED = '***CHANGED***' + +# Placeholder text for empty tables +EMPTY_TABLE_TEXT = 'No results found' diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index 38f7248e64..2697c4bc0e 100644 --- a/netbox/netbox/tables/tables.py +++ b/netbox/netbox/tables/tables.py @@ -14,6 +14,7 @@ from core.models import ObjectType from extras.choices import * from extras.models import CustomField, CustomLink +from netbox.constants import EMPTY_TABLE_TEXT from netbox.registry import registry from netbox.tables import columns from utilities.paginator import EnhancedPaginator, get_paginate_count @@ -258,7 +259,7 @@ class Meta: attrs = { 'class': 'table table-hover object-list', } - empty_text = _('No results found') + empty_text = _(EMPTY_TABLE_TEXT) def __init__(self, data, highlight=None, **kwargs): self.highlight = highlight diff --git a/netbox/netbox/tests/test_views.py b/netbox/netbox/tests/test_views.py index 1942471b0d..ccba73baa9 100644 --- a/netbox/netbox/tests/test_views.py +++ b/netbox/netbox/tests/test_views.py @@ -1,24 +1,76 @@ import urllib.parse -from utilities.testing import TestCase from django.urls import reverse +from django.test import override_settings + +from dcim.models import Site +from netbox.constants import EMPTY_TABLE_TEXT +from netbox.search.backends import search_backend +from utilities.testing import TestCase class HomeViewTestCase(TestCase): def test_home(self): - url = reverse('home') - response = self.client.get(url) self.assertHttpStatus(response, 200) + +class SearchViewTestCase(TestCase): + + @classmethod + def setUpTestData(cls): + sites = ( + Site(name='Site Alpha', slug='alpha', description='Red'), + Site(name='Site Bravo', slug='bravo', description='Red'), + Site(name='Site Charlie', slug='charlie', description='Green'), + Site(name='Site Delta', slug='delta', description='Green'), + Site(name='Site Echo', slug='echo', description='Blue'), + Site(name='Site Foxtrot', slug='foxtrot', description='Blue'), + ) + Site.objects.bulk_create(sites) + search_backend.cache(sites) + def test_search(self): + url = reverse('search') + response = self.client.get(url) + self.assertHttpStatus(response, 200) + + def test_search_query(self): + url = reverse('search') + params = { + 'q': 'red', + } + query = urllib.parse.urlencode(params) + + # Test without view permission + response = self.client.get(f'{url}?{query}') + self.assertHttpStatus(response, 200) + content = str(response.content) + self.assertIn(EMPTY_TABLE_TEXT, content) + + # Add view permissions & query again. Only matching objects should be listed + self.add_permissions('dcim.view_site') + response = self.client.get(f'{url}?{query}') + self.assertHttpStatus(response, 200) + content = str(response.content) + self.assertIn('Site Alpha', content) + self.assertIn('Site Bravo', content) + self.assertNotIn('Site Charlie', content) + self.assertNotIn('Site Delta', content) + self.assertNotIn('Site Echo', content) + self.assertNotIn('Site Foxtrot', content) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_search_no_results(self): url = reverse('search') params = { - 'q': 'foo', + 'q': 'xxxxxxxxx', # Matches nothing } + query = urllib.parse.urlencode(params) - response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params))) + response = self.client.get(f'{url}?{query}') self.assertHttpStatus(response, 200) + content = str(response.content) + self.assertIn(EMPTY_TABLE_TEXT, content) From b291aa43120a175a8d221a113bbb6475be4ee667 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Mon, 13 May 2024 16:01:30 -0700 Subject: [PATCH 10/21] 16078 make GraphQL NumberFilter optional (#16115) * 16078 make GraphQL NumberFilter optional * 16078 add tests for graphql filtering * 16078 add tests for graphql filtering * 16078 add tests for graphql filtering --- netbox/ipam/tests/test_api.py | 3 ++ netbox/netbox/graphql/filter_mixins.py | 2 +- netbox/utilities/testing/api.py | 60 +++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 7 deletions(-) diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index 16ee7bbf0c..20ba35c6b6 100644 --- a/netbox/ipam/tests/test_api.py +++ b/netbox/ipam/tests/test_api.py @@ -648,6 +648,9 @@ class IPAddressTest(APIViewTestCases.APIViewTestCase): bulk_update_data = { 'description': 'New description', } + graphql_filter = { + 'address': '192.168.0.1/24', + } @classmethod def setUpTestData(cls): diff --git a/netbox/netbox/graphql/filter_mixins.py b/netbox/netbox/graphql/filter_mixins.py index bfb9585637..322435c720 100644 --- a/netbox/netbox/graphql/filter_mixins.py +++ b/netbox/netbox/graphql/filter_mixins.py @@ -87,7 +87,7 @@ def map_strawberry_type(field): pass elif issubclass(type(field), django_filters.NumberFilter): should_create_function = True - attr_type = int + attr_type = int | None elif issubclass(type(field), django_filters.ModelMultipleChoiceFilter): should_create_function = True attr_type = List[str] | None diff --git a/netbox/utilities/testing/api.py b/netbox/utilities/testing/api.py index 4802c3ffe0..563bd84b57 100644 --- a/netbox/utilities/testing/api.py +++ b/netbox/utilities/testing/api.py @@ -440,13 +440,12 @@ def _get_graphql_base_name(self): base_name = self.model._meta.verbose_name.lower().replace(' ', '_') return getattr(self, 'graphql_base_name', base_name) - def _build_query(self, name, **filters): + def _build_query_with_filter(self, name, filter_string): + """ + Called by either _build_query or _build_filtered_query - construct the actual + query given a name and filter string + """ type_class = get_graphql_type_for_model(self.model) - if filters: - filter_string = ', '.join(f'{k}:{v}' for k, v in filters.items()) - filter_string = f'({filter_string})' - else: - filter_string = '' # Compile list of fields to include fields_string = '' @@ -492,6 +491,30 @@ def _build_query(self, name, **filters): return query + def _build_filtered_query(self, name, **filters): + """ + Create a filtered query: i.e. ip_address_list(filters: {address: "1.1.1.1/24"}){. + """ + if filters: + filter_string = ', '.join(f'{k}: "{v}"' for k, v in filters.items()) + filter_string = f'(filters: {{{filter_string}}})' + else: + filter_string = '' + + return self._build_query_with_filter(name, filter_string) + + def _build_query(self, name, **filters): + """ + Create a normal query - unfiltered or with a string query: i.e. site(name: "aaa"){. + """ + if filters: + filter_string = ', '.join(f'{k}:{v}' for k, v in filters.items()) + filter_string = f'({filter_string})' + else: + filter_string = '' + + return self._build_query_with_filter(name, filter_string) + @override_settings(LOGIN_REQUIRED=True) @override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user']) def test_graphql_get_object(self): @@ -550,6 +573,31 @@ def test_graphql_list_objects(self): self.assertNotIn('errors', data) self.assertGreater(len(data['data'][field_name]), 0) + @override_settings(LOGIN_REQUIRED=True) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user']) + def test_graphql_filter_objects(self): + if not hasattr(self, 'graphql_filter'): + return + + url = reverse('graphql') + field_name = f'{self._get_graphql_base_name()}_list' + query = self._build_filtered_query(field_name, **self.graphql_filter) + + # Add object-level permission + obj_perm = ObjectPermission( + name='Test permission', + actions=['view'] + ) + obj_perm.save() + obj_perm.users.add(self.user) + obj_perm.object_types.add(ObjectType.objects.get_for_model(self.model)) + + response = self.client.post(url, data={'query': query}, format="json", **self.header) + self.assertHttpStatus(response, status.HTTP_200_OK) + data = json.loads(response.content) + self.assertNotIn('errors', data) + self.assertGreater(len(data['data'][field_name]), 0) + class APIViewTestCase( GetObjectViewTestCase, ListObjectsViewTestCase, From b67eda403a5a780ea64ce6b8ffe9a917b587223c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 13 May 2024 19:15:40 -0400 Subject: [PATCH 11/21] Changelog for #15119, #16077, #16078, #16090, #16101 --- docs/release-notes/version-4.0.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md index 1378d7596c..50ee040f10 100644 --- a/docs/release-notes/version-4.0.md +++ b/docs/release-notes/version-4.0.md @@ -2,6 +2,17 @@ ## v4.0.2 (FUTURE) +### Enhancements + +* [#15119](https://github.com/netbox-community/netbox/issues/15119) - Add cluster & cluster group UI filter fields for VLAN groups +* [#16090](https://github.com/netbox-community/netbox/issues/16090) - Include current NetBox version when an unsupported plugin is detected + +### Bug Fixes + +* [#16077](https://github.com/netbox-community/netbox/issues/16077) - Fix display of parameter values when viewing configuration revisions +* [#16078](https://github.com/netbox-community/netbox/issues/16078) - Fix integer filters mistakenly marked as required for GraphQL API +* [#16101](https://github.com/netbox-community/netbox/issues/16101) - Fix initial loading of pagination widget for dynamic object tables + --- ## v4.0.1 (2024-05-09) From b8a8db09edc2f5ddde84b06b799f9ac96cc81545 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 07:53:19 -0400 Subject: [PATCH 12/21] Closes #16107: Set `LOGIN_REQUIRED` to True by default (#16122) * Closes #16107: Set LOGIN_REQUIRED to True by default * Update tests --- docs/configuration/security.md | 7 +++++-- netbox/netbox/configuration_example.py | 5 ++--- netbox/netbox/settings.py | 2 +- netbox/netbox/tests/test_plugins.py | 4 +++- netbox/utilities/testing/api.py | 4 ++-- netbox/utilities/testing/views.py | 4 ++-- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/configuration/security.md b/docs/configuration/security.md index 45d5bed3f3..15702f6490 100644 --- a/docs/configuration/security.md +++ b/docs/configuration/security.md @@ -159,9 +159,12 @@ Note that enabling this setting causes NetBox to update a user's session in the ## LOGIN_REQUIRED -Default: False +Default: True + +When enabled, only authenticated users are permitted to access any part of NetBox. Disabling this will allow unauthenticated users to access most areas of NetBox (but not make any changes). -Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox but not make any changes. +!!! info "Changed in NetBox v4.0.2" + Prior to NetBox v4.0.2, this setting was disabled by default. --- diff --git a/netbox/netbox/configuration_example.py b/netbox/netbox/configuration_example.py index b22fd7b2fc..84ead53390 100644 --- a/netbox/netbox/configuration_example.py +++ b/netbox/netbox/configuration_example.py @@ -157,9 +157,8 @@ # authenticated to NetBox indefinitely. LOGIN_PERSISTENCE = False -# Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users -# are permitted to access most data in NetBox but not make any changes. -LOGIN_REQUIRED = False +# Setting this to False will permit unauthenticated users to access most areas of NetBox (but not make any changes). +LOGIN_REQUIRED = True # The length of time (in seconds) for which a user will remain logged into the web UI before being prompted to # re-authenticate. (Default: 1209600 [14 days]) diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index b991c50293..f86760b53f 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -105,7 +105,7 @@ LANGUAGE_COOKIE_PATH = CSRF_COOKIE_PATH LOGGING = getattr(configuration, 'LOGGING', {}) LOGIN_PERSISTENCE = getattr(configuration, 'LOGIN_PERSISTENCE', False) -LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', False) +LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', True) LOGIN_TIMEOUT = getattr(configuration, 'LOGIN_TIMEOUT', None) LOGOUT_REDIRECT_URL = getattr(configuration, 'LOGOUT_REDIRECT_URL', 'home') MEDIA_ROOT = getattr(configuration, 'MEDIA_ROOT', os.path.join(BASE_DIR, 'media')).rstrip('/') diff --git a/netbox/netbox/tests/test_plugins.py b/netbox/netbox/tests/test_plugins.py index 24bc530059..9ce20e204c 100644 --- a/netbox/netbox/tests/test_plugins.py +++ b/netbox/netbox/tests/test_plugins.py @@ -42,6 +42,7 @@ def test_admin(self): url = reverse('admin:dummy_plugin_dummymodel_add') self.assertEqual(url, '/admin/dummy_plugin/dummymodel/add/') + @override_settings(LOGIN_REQUIRED=False) def test_views(self): # Test URL resolution @@ -53,7 +54,7 @@ def test_views(self): response = client.get(url) self.assertEqual(response.status_code, 200) - @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False) def test_api_views(self): # Test URL resolution @@ -65,6 +66,7 @@ def test_api_views(self): response = client.get(url) self.assertEqual(response.status_code, 200) + @override_settings(LOGIN_REQUIRED=False) def test_registered_views(self): # Test URL resolution diff --git a/netbox/utilities/testing/api.py b/netbox/utilities/testing/api.py index 563bd84b57..019d6e6ca2 100644 --- a/netbox/utilities/testing/api.py +++ b/netbox/utilities/testing/api.py @@ -73,7 +73,7 @@ class APIViewTestCases: class GetObjectViewTestCase(APITestCase): - @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False) def test_get_object_anonymous(self): """ GET a single object as an unauthenticated user. @@ -135,7 +135,7 @@ def test_options_object(self): class ListObjectsViewTestCase(APITestCase): brief_fields = [] - @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False) def test_list_objects_anonymous(self): """ GET a list of objects as an unauthenticated user. diff --git a/netbox/utilities/testing/views.py b/netbox/utilities/testing/views.py index e3b12b4c3c..6d4ca00df5 100644 --- a/netbox/utilities/testing/views.py +++ b/netbox/utilities/testing/views.py @@ -62,7 +62,7 @@ class GetObjectViewTestCase(ModelViewTestCase): """ Retrieve a single instance. """ - @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False) def test_get_object_anonymous(self): # Make the request as an unauthenticated user self.client.logout() @@ -421,7 +421,7 @@ class ListObjectsViewTestCase(ModelViewTestCase): """ Retrieve multiple instances. """ - @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False) def test_list_objects_anonymous(self): # Make the request as an unauthenticated user self.client.logout() From c11721833240f1f442cb378c40ef45b80f8896ea Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 08:20:31 -0400 Subject: [PATCH 13/21] Fix permissions for stalebot (see actions/stale #1131) --- .github/workflows/close-stale-issues.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index a1bbb0b7ef..7a29c8f08e 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -7,6 +7,7 @@ on: workflow_dispatch: permissions: + actions: write issues: write pull-requests: write From fcc8eccb6cb7f2e7413e385d655c57cb1745675a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 08:40:34 -0400 Subject: [PATCH 14/21] Closes #16127: Enable loading local settings --- netbox/netbox/settings.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index f86760b53f..23704bfebc 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -801,3 +801,10 @@ def _setting(name, default=None): RQ_QUEUES.update({ f"{plugin_name}.{queue}": RQ_PARAMS for queue in plugin_config.queues }) + +# UNSUPPORTED FUNCTIONALITY: Import any local overrides. +try: + from .local_settings import * + _UNSUPPORTED_SETTINGS = True +except ImportError: + pass From 829bae6b29a7e3481abc7d58f54736ad17c6b68d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 08:03:06 -0400 Subject: [PATCH 15/21] Fixes #16124: Fix GraphQL API support for querying virtual machine interfaces --- netbox/virtualization/graphql/types.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/netbox/virtualization/graphql/types.py b/netbox/virtualization/graphql/types.py index 8c19e1f1b3..2d872322b6 100644 --- a/netbox/virtualization/graphql/types.py +++ b/netbox/virtualization/graphql/types.py @@ -84,7 +84,7 @@ class VirtualMachineType(ConfigContextMixin, ContactsMixin, NetBoxObjectType): primary_ip4: Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')] | None primary_ip6: Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')] | None - interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]] + interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]] services: List[Annotated["ServiceType", strawberry.lazy('ipam.graphql.types')]] virtualdisks: List[Annotated["VirtualDiskType", strawberry.lazy('virtualization.graphql.types')]] @@ -102,8 +102,8 @@ class VMInterfaceType(IPAddressesMixin, ComponentType): vrf: Annotated["VRFType", strawberry.lazy('ipam.graphql.types')] | None tagged_vlans: List[Annotated["VLANType", strawberry.lazy('ipam.graphql.types')]] - bridge_interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]] - child_interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]] + bridge_interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]] + child_interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]] @strawberry_django.type( From 1feb3742e25d5d8c53e31dbe3814f6105f8aa02e Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 14 May 2024 15:21:00 +0200 Subject: [PATCH 16/21] add ENABLE_TRANSLATION setting to optionally turn translation off (#16096) * add USE_I18N setting * change setting name to ENABLE_TRANSLATION * raise a warning in the UI when translation is disabled * Misc cleanup * Rename to TRANSLATION_ENABLED for consistency with other settings --------- Co-authored-by: Anton Myasnikov Co-authored-by: Jeremy Stretch --- docs/configuration/system.md | 8 ++++++++ netbox/netbox/preferences.py | 9 +++++++-- netbox/netbox/settings.py | 4 ++++ netbox/users/forms/model_forms.py | 7 ++----- netbox/users/preferences.py | 4 ++-- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/docs/configuration/system.md b/docs/configuration/system.md index d0814bca6c..a1e0ebb17f 100644 --- a/docs/configuration/system.md +++ b/docs/configuration/system.md @@ -198,3 +198,11 @@ If `STORAGE_BACKEND` is not defined, this setting will be ignored. Default: UTC The time zone NetBox will use when dealing with dates and times. It is recommended to use UTC time unless you have a specific need to use a local time zone. Please see the [list of available time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + +--- + +## TRANSLATION_ENABLED + +Default: True + +Enables language translation for the user interface. (This parameter maps to Django's [USE_I18N](https://docs.djangoproject.com/en/stable/ref/settings/#std-setting-USE_I18N) setting.) diff --git a/netbox/netbox/preferences.py b/netbox/netbox/preferences.py index d560ef1ddd..d911aabb08 100644 --- a/netbox/netbox/preferences.py +++ b/netbox/netbox/preferences.py @@ -23,7 +23,7 @@ def get_page_lengths(): ), description=_('Enable dynamic UI navigation'), default=False, - experimental=True + warning=_('Experimental feature') ), 'locale.language': UserPreference( label=_('Language'), @@ -31,7 +31,12 @@ def get_page_lengths(): ('', _('Auto')), *settings.LANGUAGES, ), - description=_('Forces UI translation to the specified language.') + description=_('Forces UI translation to the specified language'), + warning=( + _("Support for translation has been disabled locally") + if not settings.TRANSLATION_ENABLED + else '' + ) ), 'pagination.per_page': UserPreference( label=_('Page length'), diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 23704bfebc..c9e2d1de19 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -156,6 +156,7 @@ STORAGE_BACKEND = getattr(configuration, 'STORAGE_BACKEND', None) STORAGE_CONFIG = getattr(configuration, 'STORAGE_CONFIG', {}) TIME_ZONE = getattr(configuration, 'TIME_ZONE', 'UTC') +TRANSLATION_ENABLED = getattr(configuration, 'TRANSLATION_ENABLED', True) # Load any dynamic configuration parameters which have been hard-coded in the configuration file for param in CONFIG_PARAMS: @@ -445,6 +446,9 @@ def _setting(name, default=None): # Use timezone-aware datetime objects USE_TZ = True +# Toggle language translation support +USE_I18N = TRANSLATION_ENABLED + # WSGI WSGI_APPLICATION = 'netbox.wsgi.application' SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') diff --git a/netbox/users/forms/model_forms.py b/netbox/users/forms/model_forms.py index e5b9b612e7..7a9f63ea7f 100644 --- a/netbox/users/forms/model_forms.py +++ b/netbox/users/forms/model_forms.py @@ -40,11 +40,8 @@ def __new__(mcs, name, bases, attrs): help_text = f'{field_name}' if preference.description: help_text = f'{preference.description}
{help_text}' - if preference.experimental: - help_text = ( - f' Experimental feature
' - f'{help_text}' - ) + if warning := preference.warning: + help_text = f' {warning}
{help_text}' field_kwargs = { 'label': preference.label, 'choices': preference.choices, diff --git a/netbox/users/preferences.py b/netbox/users/preferences.py index 3eab4cb6e8..d7edf1f59c 100644 --- a/netbox/users/preferences.py +++ b/netbox/users/preferences.py @@ -2,10 +2,10 @@ class UserPreference: """ Represents a configurable user preference. """ - def __init__(self, label, choices, default=None, description='', coerce=lambda x: x, experimental=False): + def __init__(self, label, choices, default=None, description='', coerce=lambda x: x, warning=''): self.label = label self.choices = choices self.default = default if default is not None else choices[0] self.description = description self.coerce = coerce - self.experimental = experimental + self.warning = warning From 34f8bf7caffc2691220d3c1c79b6fa2f1bc08a77 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 09:22:27 -0400 Subject: [PATCH 17/21] Update source strings for translations --- netbox/translations/en/LC_MESSAGES/django.po | 527 +++++++++---------- 1 file changed, 261 insertions(+), 266 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 207bd87e5d..83c6908697 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-06 17:40+0000\n" +"POT-Creation-Date: 2024-05-14 13:22+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" #: account/tables.py:27 templates/account/token.html:22 #: templates/users/token.html:17 users/forms/bulk_import.py:39 -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:113 msgid "Key" msgstr "" @@ -51,7 +51,7 @@ msgstr "" #: account/tables.py:45 templates/account/token.html:55 #: templates/users/token.html:47 users/forms/bulk_edit.py:122 -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "" @@ -60,8 +60,8 @@ msgid "Your preferences have been updated." msgstr "" #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 -#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425 -#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20 +#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429 +#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20 #: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "" @@ -72,7 +72,7 @@ msgstr "" #: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 #: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 -#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385 #: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 ipam/choices.py:154 #: templates/extras/configcontext.html:25 templates/users/user.html:37 #: users/forms/bulk_edit.py:38 virtualization/choices.py:22 @@ -81,7 +81,7 @@ msgid "Active" msgstr "" #: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218 -#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24 +#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24 #: virtualization/choices.py:43 msgid "Offline" msgstr "" @@ -155,8 +155,8 @@ msgstr "" #: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 #: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 #: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 -#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 -#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203 #: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 #: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 #: templates/circuits/inc/circuit_termination.html:32 @@ -251,7 +251,7 @@ msgstr "" #: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 #: netbox/forms/__init__.py:22 netbox/forms/base.py:165 #: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 -#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7 #: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 #: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 #: utilities/forms/forms.py:104 @@ -274,7 +274,7 @@ msgstr "" #: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 #: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 #: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 +#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218 #: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 #: templates/circuits/provider.html:23 msgid "ASNs" @@ -434,7 +434,7 @@ msgstr "" #: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:283 extras/tables/tables.py:355 -#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: extras/tables/tables.py:473 netbox/tables/tables.py:237 #: templates/circuits/circuit.html:30 templates/core/datasource.html:38 #: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 #: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 @@ -484,7 +484,7 @@ msgstr "" #: ipam/forms/bulk_import.py:256 ipam/forms/bulk_import.py:292 #: ipam/forms/bulk_import.py:458 ipam/forms/filtersets.py:209 #: ipam/forms/filtersets.py:274 ipam/forms/filtersets.py:348 -#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:457 +#: ipam/forms/filtersets.py:501 ipam/forms/model_forms.py:457 #: ipam/tables/ip.py:236 ipam/tables/ip.py:309 ipam/tables/ip.py:359 #: ipam/tables/ip.py:421 ipam/tables/ip.py:448 ipam/tables/vlans.py:122 #: ipam/tables/vlans.py:227 templates/circuits/circuit.html:34 @@ -500,7 +500,7 @@ msgstr "" #: templates/virtualization/virtualmachine.html:19 templates/vpn/tunnel.html:25 #: templates/wireless/wirelesslan.html:22 #: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70 #: virtualization/forms/bulk_edit.py:118 virtualization/forms/bulk_import.py:54 #: virtualization/forms/bulk_import.py:80 virtualization/forms/filtersets.py:62 #: virtualization/forms/filtersets.py:160 virtualization/tables/clusters.py:74 @@ -542,7 +542,7 @@ msgstr "" #: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 #: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 #: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 #: templates/dcim/device.html:78 templates/dcim/location.html:49 @@ -678,8 +678,8 @@ msgstr "" #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 #: extras/filtersets.py:488 extras/forms/filtersets.py:329 #: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 -#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430 +#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590 #: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 #: templates/dcim/inc/cable_termination.html:12 templates/dcim/location.html:26 #: templates/dcim/powerpanel.html:26 templates/dcim/rack.html:26 @@ -715,8 +715,8 @@ msgstr "" #: dcim/forms/object_create.py:375 dcim/tables/devices.py:148 #: dcim/tables/sites.py:85 extras/filtersets.py:455 ipam/forms/bulk_edit.py:206 #: ipam/forms/bulk_edit.py:438 ipam/forms/bulk_edit.py:512 -#: ipam/forms/filtersets.py:216 ipam/forms/filtersets.py:414 -#: ipam/forms/filtersets.py:463 ipam/forms/model_forms.py:562 +#: ipam/forms/filtersets.py:216 ipam/forms/filtersets.py:415 +#: ipam/forms/filtersets.py:475 ipam/forms/model_forms.py:562 #: templates/dcim/device.html:17 templates/dcim/rack.html:16 #: templates/dcim/rackreservation.html:22 templates/dcim/region.html:26 #: templates/dcim/site.html:30 templates/ipam/prefix.html:49 @@ -735,8 +735,8 @@ msgstr "" #: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 #: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 #: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 -#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420 +#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575 #: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 #: virtualization/forms/filtersets.py:138 #: virtualization/forms/model_forms.py:98 @@ -760,8 +760,8 @@ msgstr "" #: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 #: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 #: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 -#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 -#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527 +#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253 #: virtualization/forms/filtersets.py:45 virtualization/forms/filtersets.py:103 #: virtualization/forms/filtersets.py:194 #: virtualization/forms/filtersets.py:239 vpn/forms/filtersets.py:213 @@ -1156,7 +1156,7 @@ msgstr "" #: core/choices.py:22 core/choices.py:59 core/constants.py:20 #: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 -#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 +#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "" @@ -1224,7 +1224,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:174 +#: templates/account/password.html:11 users/forms/model_forms.py:171 msgid "Password" msgstr "" @@ -1287,8 +1287,8 @@ msgid "Ignore rules" msgstr "" #: core/forms/filtersets.py:27 core/forms/model_forms.py:97 -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 -#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:154 #: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:18 @@ -1361,8 +1361,8 @@ msgstr "" #: templates/inc/user_menu.html:15 templates/users/token.html:21 #: templates/users/user.html:6 templates/users/user.html:14 #: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 -#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 -#: users/forms/model_forms.py:196 users/tables.py:19 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:156 +#: users/forms/model_forms.py:193 users/tables.py:19 msgid "User" msgstr "" @@ -1392,7 +1392,7 @@ msgstr "" msgid "Rack Elevations" msgstr "" -#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: core/forms/model_forms.py:157 dcim/choices.py:1417 #: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 #: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 #: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 @@ -1429,7 +1429,7 @@ msgid "User Preferences" msgstr "" #: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 -#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "" @@ -1504,7 +1504,7 @@ msgid "type" msgstr "" #: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 -#: extras/tables/tables.py:582 templates/core/datasource.html:58 +#: extras/tables/tables.py:577 templates/core/datasource.html:58 msgid "URL" msgstr "" @@ -1683,7 +1683,7 @@ msgstr "" #: core/tables/jobs.py:10 core/tables/tasks.py:76 #: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 -#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: extras/tables/tables.py:350 netbox/tables/tables.py:187 #: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 #: wireless/tables/wirelesslink.py:16 msgid "ID" @@ -1692,7 +1692,7 @@ msgstr "" #: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 #: extras/tables/tables.py:287 extras/tables/tables.py:360 #: extras/tables/tables.py:478 extras/tables/tables.py:509 -#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: extras/tables/tables.py:574 netbox/tables/tables.py:241 #: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 #: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 #: vpn/tables/l2vpn.py:64 @@ -1737,7 +1737,7 @@ msgstr "" msgid "Host" msgstr "" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "" @@ -1804,7 +1804,7 @@ msgid "Staging" msgstr "" #: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223 -#: dcim/choices.py:1426 virtualization/choices.py:23 +#: dcim/choices.py:1430 virtualization/choices.py:23 #: virtualization/choices.py:48 msgid "Decommissioning" msgstr "" @@ -1864,7 +1864,7 @@ msgstr "" msgid "Millimeters" msgstr "" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "" @@ -1938,7 +1938,7 @@ msgstr "" msgid "Side to rear" msgstr "" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "" @@ -1966,8 +1966,8 @@ msgstr "" msgid "Proprietary" msgstr "" -#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 -#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 +#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141 +#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350 #: netbox/navigation/menu.py:187 msgid "Other" msgstr "" @@ -1980,22 +1980,22 @@ msgstr "" msgid "Physical" msgstr "" -#: dcim/choices.py:795 dcim/choices.py:952 +#: dcim/choices.py:795 dcim/choices.py:954 msgid "Virtual" msgstr "" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408 #: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 #: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 #: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303 #: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 #: dcim/tables/devices.py:656 templates/dcim/interface.html:106 #: templates/virtualization/vminterface.html:43 @@ -2005,152 +2005,152 @@ msgstr "" msgid "Bridge" msgstr "" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "" -#: dcim/choices.py:1036 +#: dcim/choices.py:1040 msgid "Cellular" msgstr "" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/choices.py:1090 dcim/forms/filtersets.py:303 #: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 #: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 #: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "" -#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 +#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "" -#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 +#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 #: templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "" -#: dcim/choices.py:1288 dcim/choices.py:1384 +#: dcim/choices.py:1292 dcim/choices.py:1388 msgid "Copper" msgstr "" -#: dcim/choices.py:1311 +#: dcim/choices.py:1315 msgid "Fiber Optic" msgstr "" -#: dcim/choices.py:1400 +#: dcim/choices.py:1404 msgid "Fiber" msgstr "" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 +#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "" -#: dcim/choices.py:1443 +#: dcim/choices.py:1447 msgid "Kilometers" msgstr "" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "" -#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: dcim/choices.py:1467 templates/dcim/device.html:319 #: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "" -#: dcim/choices.py:1465 templates/dcim/rack.html:153 +#: dcim/choices.py:1469 templates/dcim/rack.html:153 msgid "Pounds" msgstr "" -#: dcim/choices.py:1466 +#: dcim/choices.py:1470 msgid "Ounces" msgstr "" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "" @@ -2521,7 +2521,7 @@ msgstr "" #: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 #: dcim/tables/devices.py:566 ipam/filtersets.py:1022 -#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133 #: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 #: templates/vpn/l2vpntermination.html:12 #: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 @@ -2610,7 +2610,7 @@ msgid "Power panel (ID)" msgstr "" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495 #: netbox/forms/base.py:84 netbox/forms/mixins.py:81 #: netbox/tables/columns.py:458 #: templates/circuits/inc/circuit_termination.html:118 @@ -2697,7 +2697,7 @@ msgstr "" #: ipam/forms/bulk_import.py:261 ipam/forms/bulk_import.py:297 #: ipam/forms/bulk_import.py:463 ipam/forms/filtersets.py:236 #: ipam/forms/filtersets.py:282 ipam/forms/filtersets.py:353 -#: ipam/forms/filtersets.py:497 ipam/forms/model_forms.py:186 +#: ipam/forms/filtersets.py:509 ipam/forms/model_forms.py:186 #: ipam/forms/model_forms.py:219 ipam/forms/model_forms.py:248 #: ipam/forms/model_forms.py:680 ipam/tables/ip.py:257 ipam/tables/ip.py:313 #: ipam/tables/ip.py:363 ipam/tables/vlans.py:126 ipam/tables/vlans.py:230 @@ -2809,7 +2809,7 @@ msgstr "" #: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 #: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 #: dcim/tables/power.py:70 dcim/tables/racks.py:148 ipam/forms/bulk_edit.py:465 -#: ipam/forms/filtersets.py:434 ipam/forms/model_forms.py:601 +#: ipam/forms/filtersets.py:435 ipam/forms/model_forms.py:601 #: templates/dcim/device.html:29 templates/dcim/inc/cable_termination.html:16 #: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 #: templates/dcim/rack/base.html:4 templates/dcim/rackreservation.html:19 @@ -2959,7 +2959,7 @@ msgstr "" #: dcim/tables/devices.py:862 dcim/tables/devices.py:914 #: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 #: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551 #: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 #: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 #: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 @@ -3157,7 +3157,7 @@ msgid "Mode" msgstr "" #: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498 #: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 #: virtualization/forms/model_forms.py:321 msgid "VLAN group" @@ -3354,6 +3354,7 @@ msgstr "" #: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 #: dcim/tables/devices.py:207 extras/filtersets.py:548 #: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452 #: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 #: templates/virtualization/cluster.html:10 #: templates/virtualization/virtualmachine.html:88 @@ -3765,7 +3766,7 @@ msgstr "" #: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 #: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 -#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: extras/forms/model_forms.py:551 extras/tables/tables.py:512 #: templates/extras/journalentry.html:30 msgid "Kind" msgstr "" @@ -5530,7 +5531,7 @@ msgstr "" #: dcim/tables/sites.py:143 extras/tables/tables.py:435 #: netbox/navigation/menu.py:56 netbox/navigation/menu.py:60 #: netbox/navigation/menu.py:62 virtualization/forms/model_forms.py:122 -#: virtualization/tables/clusters.py:83 virtualization/views.py:211 +#: virtualization/tables/clusters.py:83 virtualization/views.py:210 msgid "Devices" msgstr "" @@ -5540,7 +5541,7 @@ msgid "VMs" msgstr "" #: dcim/tables/devices.py:105 dcim/tables/devices.py:221 -#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:14 #: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 @@ -5608,8 +5609,8 @@ msgid "Power outlets" msgstr "" #: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 -#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245 +#: dcim/views.py:1931 netbox/navigation/menu.py:81 #: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 @@ -5617,7 +5618,7 @@ msgstr "" #: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "" @@ -5664,7 +5665,7 @@ msgid "Allocated draw (W)" msgstr "" #: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 -#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 +#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690 #: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 #: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 #: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 @@ -5696,7 +5697,7 @@ msgid "VDCs" msgstr "" #: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024 #: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 #: templates/dcim/inc/panels/inventory_items.html:6 @@ -5739,7 +5740,7 @@ msgid "Module Types" msgstr "" #: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 -#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: extras/forms/model_forms.py:413 extras/tables/tables.py:430 #: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "" @@ -5760,60 +5761,60 @@ msgstr "" msgid "Instances" msgstr "" -#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 -#: dcim/views.py:1869 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185 +#: dcim/views.py:1871 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "" -#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 -#: dcim/views.py:1884 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200 +#: dcim/views.py:1886 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "" -#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 -#: dcim/views.py:1899 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215 +#: dcim/views.py:1901 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "" -#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 -#: dcim/views.py:1914 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230 +#: dcim/views.py:1916 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 -#: dcim/views.py:1950 netbox/navigation/menu.py:82 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260 +#: dcim/views.py:1952 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 -#: dcim/views.py:1965 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275 +#: dcim/views.py:1967 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005 #: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986 #: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" @@ -5859,42 +5860,47 @@ msgid "Max Weight" msgstr "" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393 #: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 #: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 #: netbox/navigation/menu.py:17 msgid "Sites" msgstr "" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "" -#: dcim/views.py:135 +#: dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "" -#: dcim/views.py:696 netbox/navigation/menu.py:28 +#: dcim/views.py:698 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "" -#: dcim/views.py:714 templates/dcim/location.html:90 +#: dcim/views.py:716 templates/dcim/location.html:90 #: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "" -#: dcim/views.py:2035 extras/forms/model_forms.py:456 +#: dcim/views.py:2037 extras/forms/model_forms.py:453 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:407 msgid "Config Context" msgstr "" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "" -#: dcim/views.py:2970 ipam/tables/ip.py:233 +#: dcim/views.py:2097 extras/tables/tables.py:440 netbox/navigation/menu.py:234 +#: netbox/navigation/menu.py:236 virtualization/views.py:185 +msgid "Virtual Machines" +msgstr "" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "" @@ -6063,7 +6069,7 @@ msgstr "" #: templates/extras/eventrule.html:40 #: templates/generic/bulk_add_component.html:68 #: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 msgid "Create" msgstr "" @@ -6139,11 +6145,11 @@ msgid "White" msgstr "" #: extras/choices.py:320 extras/forms/model_forms.py:242 -#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 +#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10 msgid "Webhook" msgstr "" -#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: extras/choices.py:321 extras/forms/model_forms.py:312 #: templates/extras/script/base.html:29 msgid "Script" msgstr "" @@ -6291,7 +6297,8 @@ msgid "Cluster type (slug)" msgstr "" #: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 -#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 +#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615 +#: virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "" @@ -6307,7 +6314,7 @@ msgstr "" msgid "Tenant group (slug)" msgstr "" -#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: extras/filtersets.py:575 extras/forms/model_forms.py:371 #: templates/extras/tag.html:11 msgid "Tag" msgstr "" @@ -6426,7 +6433,7 @@ msgstr "" #: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 #: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 #: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 -#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273 msgid "Object types" msgstr "" @@ -6525,9 +6532,8 @@ msgid "Choices" msgstr "" #: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 -#: templates/core/job.html:78 templates/extras/configcontext.html:82 -#: templates/extras/eventrule.html:90 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448 +#: templates/core/job.html:78 templates/extras/eventrule.html:90 msgid "Data" msgstr "" @@ -6570,7 +6576,7 @@ msgstr "" msgid "Job starts" msgstr "" -#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297 msgid "Job terminations" msgstr "" @@ -6582,44 +6588,44 @@ msgstr "" msgid "Allowed object type" msgstr "" -#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383 #: netbox/navigation/menu.py:18 msgid "Regions" msgstr "" -#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388 msgid "Site groups" msgstr "" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398 #: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403 msgid "Device types" msgstr "" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408 msgid "Roles" msgstr "" -#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418 msgid "Cluster types" msgstr "" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423 msgid "Cluster groups" msgstr "" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428 #: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 #: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433 msgid "Tenant groups" msgstr "" @@ -6637,7 +6643,7 @@ msgstr "" msgid "Time" msgstr "" -#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282 #: extras/tables/tables.py:470 templates/extras/eventrule.html:77 #: templates/extras/objectchange.html:45 msgid "Action" @@ -6698,7 +6704,7 @@ msgid "" "Jinja2 template code for the link URL. Reference the object as {example}." msgstr "" -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500 msgid "Template code" msgstr "" @@ -6710,11 +6716,11 @@ msgstr "" msgid "Rendering" msgstr "" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "" @@ -6753,44 +6759,44 @@ msgstr "" msgid "Conditions" msgstr "" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "" -#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 +#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "" -#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321 #: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 #: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:314 +#: users/forms/model_forms.py:311 msgid "Assignment" msgstr "" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "" -#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:55 msgid "Content" msgstr "" @@ -7711,11 +7717,6 @@ msgstr "" msgid "Device Roles" msgstr "" -#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 -#: netbox/navigation/menu.py:236 virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -7734,19 +7735,13 @@ msgid "Line" msgstr "" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "" - #: extras/tables/tables.py:564 msgid "Method" msgstr "" @@ -8116,7 +8111,7 @@ msgstr "" #: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 #: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 -#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22 #: templates/ipam/inc/panels/fhrp_groups.html:24 templates/ipam/service.html:32 #: templates/ipam/servicetemplate.html:19 msgid "Protocol" @@ -8361,20 +8356,20 @@ msgstr "" msgid "DNS Name" msgstr "" -#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513 #: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "" -#: ipam/forms/filtersets.py:440 +#: ipam/forms/filtersets.py:441 msgid "Minimum VID" msgstr "" -#: ipam/forms/filtersets.py:446 +#: ipam/forms/filtersets.py:447 msgid "Maximum VID" msgstr "" -#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318 #: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 #: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 #: templates/virtualization/virtualmachine.html:12 @@ -8702,7 +8697,7 @@ msgstr "" #: ipam/models/ip.py:577 #, python-brace-format msgid "" -"Ending address must be lower than the starting address ({start_address})" +"Ending address must be greater than the starting address ({start_address})" msgstr "" #: ipam/models/ip.py:589 @@ -8852,7 +8847,7 @@ msgid "The primary function of this VLAN" msgstr "" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: ipam/views.py:957 netbox/navigation/menu.py:180 #: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "" @@ -8924,7 +8919,7 @@ msgid "Added" msgstr "" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: ipam/views.py:348 netbox/navigation/menu.py:152 #: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "" @@ -9023,23 +9018,23 @@ msgid "" "are allowed in DNS names" msgstr "" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "" -#: ipam/views.py:1115 +#: ipam/views.py:1112 msgid "Device Interfaces" msgstr "" -#: ipam/views.py:1133 +#: ipam/views.py:1129 msgid "VM Interfaces" msgstr "" @@ -9575,7 +9570,7 @@ msgstr "" #: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 -#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 +#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388 msgid "Virtual Disks" msgstr "" @@ -9697,44 +9692,44 @@ msgid "Admin" msgstr "" #: netbox/navigation/menu.py:373 templates/users/group.html:29 -#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 -#: users/forms/model_forms.py:300 users/tables.py:102 +#: users/forms/model_forms.py:233 users/forms/model_forms.py:245 +#: users/forms/model_forms.py:297 users/tables.py:102 msgid "Users" msgstr "" -#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 -#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182 +#: users/forms/model_forms.py:194 users/forms/model_forms.py:302 #: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "" -#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: netbox/navigation/menu.py:413 templates/account/base.html:21 #: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "" -#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 -#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 -#: users/forms/model_forms.py:249 +#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188 +#: users/forms/model_forms.py:196 users/forms/model_forms.py:239 +#: users/forms/model_forms.py:246 msgid "Permissions" msgstr "" -#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432 #: templates/core/system.html:7 msgid "System" msgstr "" -#: netbox/navigation/menu.py:432 +#: netbox/navigation/menu.py:437 msgid "Configuration History" msgstr "" -#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8 #: templates/core/rq_task_list.html:22 msgid "Background Tasks" msgstr "" -#: netbox/navigation/menu.py:475 templates/500.html:35 -#: templates/account/preferences.html:22 templates/core/system.html:76 +#: netbox/navigation/menu.py:482 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:80 msgid "Plugins" msgstr "" @@ -9797,47 +9792,55 @@ msgstr "" msgid "Enable dynamic UI navigation" msgstr "" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "" + #: netbox/preferences.py:29 msgid "Language" msgstr "" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." +msgid "Forces UI translation to the specified language" +msgstr "" + +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" msgstr "" -#: netbox/preferences.py:37 +#: netbox/preferences.py:42 msgid "Page length" msgstr "" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" msgstr "" -#: netbox/preferences.py:45 +#: netbox/preferences.py:50 msgid "Bottom" msgstr "" -#: netbox/preferences.py:46 +#: netbox/preferences.py:51 msgid "Top" msgstr "" -#: netbox/preferences.py:47 +#: netbox/preferences.py:52 msgid "Both" msgstr "" -#: netbox/preferences.py:50 +#: netbox/preferences.py:55 msgid "Where the paginator controls will be displayed relative to a table" msgstr "" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "" @@ -9854,31 +9857,31 @@ msgstr "" msgid "Cannot delete stores from registry" msgstr "" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "" @@ -9894,11 +9897,16 @@ msgstr "" msgid "Error" msgstr "" -#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 +#: netbox/tables/tables.py:56 +#, python-brace-format +msgid "No {model_name} found" +msgstr "" + +#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117 msgid "Field" msgstr "" -#: netbox/tables/tables.py:248 +#: netbox/tables/tables.py:249 msgid "Value" msgstr "" @@ -9919,7 +9927,7 @@ msgstr "" msgid "Journal" msgstr "" -#: netbox/views/generic/object_views.py:105 +#: netbox/views/generic/object_views.py:106 #, python-brace-format msgid "{class_name} must implement get_children()" msgstr "" @@ -9958,7 +9966,7 @@ msgstr "" msgid "The complete exception is provided below" msgstr "" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" msgstr "" @@ -10013,7 +10021,7 @@ msgstr "" #: templates/generic/bulk_rename.html:63 #: templates/generic/confirmation_form.html:19 #: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 -#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 +#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "" @@ -10056,7 +10064,7 @@ msgid "Columns" msgstr "" #: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 -#: templates/extras/object_configcontext.html:55 +#: templates/extras/object_configcontext.html:43 msgid "None found" msgstr "" @@ -10104,7 +10112,6 @@ msgstr "" #: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 #: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 #: templates/extras/htmx/script_result.html:56 -#: templates/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:123 #: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 #: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 @@ -10240,7 +10247,7 @@ msgstr "" #: templates/dcim/moduletype/component_templates.html:20 #: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 #: templates/generic/object_edit.html:47 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 #: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" @@ -10575,39 +10582,39 @@ msgstr "" msgid "System Status" msgstr "" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" +#: templates/core/system.html:43 +msgid "PostgreSQL version" msgstr "" -#: templates/core/system.html:43 +#: templates/core/system.html:47 msgid "Database name" msgstr "" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "" @@ -11308,7 +11315,7 @@ msgstr "" #: templates/dcim/virtualchassis_add_member.html:27 #: templates/generic/object_edit.html:78 #: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:312 +#: users/forms/model_forms.py:309 msgid "Actions" msgstr "" @@ -11620,19 +11627,11 @@ msgstr "" msgid "Indefinite" msgstr "" -#: templates/extras/object_configcontext.html:11 -msgid "Rendered Context" -msgstr "" - -#: templates/extras/object_configcontext.html:22 -msgid "Local Context" -msgstr "" - -#: templates/extras/object_configcontext.html:34 +#: templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "" @@ -12012,20 +12011,20 @@ msgid "" "%(prerequisite_model)s." msgstr "" -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "" @@ -12087,11 +12086,11 @@ msgstr "" msgid "Virtual IP Addresses" msgstr "" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "" @@ -12132,11 +12131,11 @@ msgstr "" msgid "Assign an IP Address" msgstr "" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "" @@ -12257,11 +12256,11 @@ msgstr "" msgid "Errors" msgstr "" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "" @@ -12374,7 +12373,7 @@ msgstr "" msgid "View" msgstr "" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "" @@ -12853,60 +12852,60 @@ msgstr "" msgid "Can Delete" msgstr "" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " "accessible once the token has been created." msgstr "" -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for " "no restrictions. Example: 10.1.1.0/24,192.168.10.16/32,2001:" "db8:1::/64" msgstr "" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "" -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " "objects will result in a logical OR operation." msgstr "" -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "" -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "" @@ -13068,18 +13067,14 @@ msgstr "" msgid "More than 50" msgstr "" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "" - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " "in the format 'app.model'" msgstr "" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " From c95dd0b4d1309e8cdc1e977ff824a0b9d96158e1 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 09:30:28 -0400 Subject: [PATCH 18/21] Update translations --- netbox/translations/es/LC_MESSAGES/django.mo | Bin 223152 -> 223103 bytes netbox/translations/es/LC_MESSAGES/django.po | 533 ++++++------- netbox/translations/fr/LC_MESSAGES/django.mo | Bin 224983 -> 224951 bytes netbox/translations/fr/LC_MESSAGES/django.po | 533 ++++++------- netbox/translations/ja/LC_MESSAGES/django.mo | Bin 238061 -> 237497 bytes netbox/translations/ja/LC_MESSAGES/django.po | 798 +++++++++---------- netbox/translations/pt/LC_MESSAGES/django.mo | Bin 220178 -> 220128 bytes netbox/translations/pt/LC_MESSAGES/django.po | 531 ++++++------ netbox/translations/ru/LC_MESSAGES/django.mo | Bin 281266 -> 281203 bytes netbox/translations/ru/LC_MESSAGES/django.po | 533 ++++++------- netbox/translations/tr/LC_MESSAGES/django.mo | Bin 214500 -> 214472 bytes netbox/translations/tr/LC_MESSAGES/django.po | 532 ++++++------- 12 files changed, 1715 insertions(+), 1745 deletions(-) diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo index c0fa4f9d8f2fd7893ffe5b641a6493a447825e1c..f276eedd8985553b907eb698b134a67ba785e238 100644 GIT binary patch delta 62224 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�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." -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "Selección de páginas" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "Mostrando %(start)s-%(end)s de %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "Opciones de paginación" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "Por página" @@ -12528,11 +12526,11 @@ msgstr "Clave de autenticación" msgid "Virtual IP Addresses" msgstr "Direcciones IP virtuales" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "Asignar IP" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "Creación masiva" @@ -12573,11 +12571,11 @@ msgstr "NAT (exterior)" msgid "Assign an IP Address" msgstr "Asignar una dirección IP" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "Seleccione la dirección IP" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "Resultados de la búsqueda" @@ -12698,11 +12696,11 @@ msgstr "Logotipo de NetBox" msgid "Errors" msgstr "Errores" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "Iniciar sesión" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "O" @@ -12825,7 +12823,7 @@ msgstr "Permiso" msgid "View" msgstr "Ver" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "Restricciones" @@ -13305,11 +13303,11 @@ msgstr "Puede cambiar" msgid "Can Delete" msgstr "Puede eliminar" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "Interfaz de usuario" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -13319,7 +13317,7 @@ msgstr "" "su clave antes de enviar este formulario, ya que es posible que ya " "no se pueda acceder a él una vez que se haya creado el token." -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13329,33 +13327,33 @@ msgstr "" "blanco para que no haya restricciones. Ejemplo: 10.1.1.0/24, " "192.168.10.16/32, 2001:db 8:1: :/64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "Confirme la contraseña" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "Introduce la misma contraseña que antes para verificarla." -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" "¡Las contraseñas no coinciden! Compruebe los datos introducidos e inténtelo " "de nuevo." -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "Acciones adicionales" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "Acciones concedidas además de las enumeradas anteriormente" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "Objetos" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13366,11 +13364,11 @@ msgstr "" "este tipo. Una lista de varios objetos dará como resultado una operación OR " "lógica." -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "Debe seleccionarse al menos una acción." -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "Filtro no válido para {model}: {error}" @@ -13551,12 +13549,7 @@ msgstr "" msgid "More than 50" msgstr "Más de 50" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "" -"El conjunto de consultas personalizado no se puede usar para esta búsqueda." - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13565,7 +13558,7 @@ msgstr "" "%s(%r) no es válido. El parámetro to_model de CounterCacheField debe ser una" " cadena con el formato 'app.model'" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo index 05d27dadd7b9fcccc40d0770219e21b4bb4a9456..c20c3a06e6520b80f6a7764b05cc5d780452f4c0 100644 GIT binary patch delta 62231 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 diff --git a/netbox/translations/fr/LC_MESSAGES/django.po b/netbox/translations/fr/LC_MESSAGES/django.po index 5aeea30632..75b5c4e56f 100644 --- a/netbox/translations/fr/LC_MESSAGES/django.po +++ b/netbox/translations/fr/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-06 17:40+0000\n" +"POT-Creation-Date: 2024-05-14 13:22+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2024\n" "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n" @@ -26,7 +26,7 @@ msgstr "" #: account/tables.py:27 templates/account/token.html:22 #: templates/users/token.html:17 users/forms/bulk_import.py:39 -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:113 msgid "Key" msgstr "Clé" @@ -58,7 +58,7 @@ msgstr "Dernière utilisation" #: account/tables.py:45 templates/account/token.html:55 #: templates/users/token.html:47 users/forms/bulk_edit.py:122 -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "IP autorisées" @@ -67,8 +67,8 @@ msgid "Your preferences have been updated." msgstr "Vos préférences ont été mises à jour." #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 -#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425 -#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20 +#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429 +#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20 #: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "Planifié" @@ -79,7 +79,7 @@ msgstr "Approvisionnement" #: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 #: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 -#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385 #: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 #: ipam/choices.py:154 templates/extras/configcontext.html:25 #: templates/users/user.html:37 users/forms/bulk_edit.py:38 @@ -89,7 +89,7 @@ msgid "Active" msgstr "Actif" #: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218 -#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24 +#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24 #: virtualization/choices.py:43 msgid "Offline" msgstr "Hors ligne" @@ -163,8 +163,8 @@ msgstr "Groupe de sites (slug)" #: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 #: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 #: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 -#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 -#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203 #: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 #: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 #: templates/circuits/inc/circuit_termination.html:32 @@ -264,7 +264,7 @@ msgstr "Résiliation A (ID)" #: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 #: netbox/forms/__init__.py:22 netbox/forms/base.py:165 #: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 -#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7 #: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 #: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 #: utilities/forms/forms.py:104 @@ -287,7 +287,7 @@ msgstr "Réseau fournisseur (ID)" #: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 #: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 #: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 +#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218 #: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 #: templates/circuits/provider.html:23 msgid "ASNs" @@ -451,7 +451,7 @@ msgstr "Couleur" #: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:283 extras/tables/tables.py:355 -#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: extras/tables/tables.py:473 netbox/tables/tables.py:237 #: templates/circuits/circuit.html:30 templates/core/datasource.html:38 #: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 #: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 @@ -501,7 +501,7 @@ msgstr "Identifiant de compte du prestataire" #: ipam/forms/bulk_import.py:191 ipam/forms/bulk_import.py:256 #: ipam/forms/bulk_import.py:292 ipam/forms/bulk_import.py:458 #: ipam/forms/filtersets.py:209 ipam/forms/filtersets.py:274 -#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489 +#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501 #: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309 #: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448 #: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227 @@ -517,7 +517,7 @@ msgstr "Identifiant de compte du prestataire" #: templates/virtualization/virtualmachine.html:19 #: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22 #: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70 #: virtualization/forms/bulk_edit.py:118 #: virtualization/forms/bulk_import.py:54 #: virtualization/forms/bulk_import.py:80 @@ -561,7 +561,7 @@ msgstr "Statut" #: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 #: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 #: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 #: templates/dcim/device.html:78 templates/dcim/location.html:49 @@ -699,8 +699,8 @@ msgstr "Réseau de fournisseurs" #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 #: extras/filtersets.py:488 extras/forms/filtersets.py:329 #: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 -#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430 +#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590 #: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 #: templates/dcim/inc/cable_termination.html:12 #: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26 @@ -739,7 +739,7 @@ msgstr "Contacts" #: dcim/tables/sites.py:85 extras/filtersets.py:455 #: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438 #: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216 -#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463 +#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475 #: ipam/forms/model_forms.py:562 templates/dcim/device.html:17 #: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22 #: templates/dcim/region.html:26 templates/dcim/site.html:30 @@ -759,8 +759,8 @@ msgstr "Région" #: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 #: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 #: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 -#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420 +#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575 #: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 #: virtualization/forms/filtersets.py:138 #: virtualization/forms/model_forms.py:98 @@ -784,8 +784,8 @@ msgstr "Groupe de sites" #: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 #: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 #: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 -#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 -#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527 +#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253 #: virtualization/forms/filtersets.py:45 #: virtualization/forms/filtersets.py:103 #: virtualization/forms/filtersets.py:194 @@ -1191,7 +1191,7 @@ msgstr "Terminé" #: core/choices.py:22 core/choices.py:59 core/constants.py:20 #: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 -#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 +#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "Échoué" @@ -1259,7 +1259,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "Utilisé uniquement pour le clonage avec HTTP(S)" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:174 +#: templates/account/password.html:11 users/forms/model_forms.py:171 msgid "Password" msgstr "Mot de passe" @@ -1323,8 +1323,8 @@ msgid "Ignore rules" msgstr "Ignorer les règles" #: core/forms/filtersets.py:27 core/forms/model_forms.py:97 -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 -#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:154 #: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:18 @@ -1397,8 +1397,8 @@ msgstr "Terminé avant" #: templates/inc/user_menu.html:15 templates/users/token.html:21 #: templates/users/user.html:6 templates/users/user.html:14 #: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 -#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 -#: users/forms/model_forms.py:196 users/tables.py:19 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:156 +#: users/forms/model_forms.py:193 users/tables.py:19 msgid "User" msgstr "Utilisateur" @@ -1432,7 +1432,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Élévations des baies" -#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: core/forms/model_forms.py:157 dcim/choices.py:1417 #: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 #: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 #: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 @@ -1469,7 +1469,7 @@ msgid "User Preferences" msgstr "Préférences de l'utilisateur" #: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 -#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "Divers" @@ -1545,7 +1545,7 @@ msgid "type" msgstr "type" #: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 -#: extras/tables/tables.py:582 templates/core/datasource.html:58 +#: extras/tables/tables.py:577 templates/core/datasource.html:58 msgid "URL" msgstr "URL" @@ -1733,7 +1733,7 @@ msgstr "Dernière mise à jour" #: core/tables/jobs.py:10 core/tables/tasks.py:76 #: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 -#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: extras/tables/tables.py:350 netbox/tables/tables.py:187 #: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 #: wireless/tables/wirelesslink.py:16 msgid "ID" @@ -1742,7 +1742,7 @@ msgstr "IDENTIFIANT" #: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 #: extras/tables/tables.py:287 extras/tables/tables.py:360 #: extras/tables/tables.py:478 extras/tables/tables.py:509 -#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: extras/tables/tables.py:574 netbox/tables/tables.py:241 #: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 #: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 #: vpn/tables/l2vpn.py:64 @@ -1787,7 +1787,7 @@ msgstr "Travailleurs" msgid "Host" msgstr "Hôte" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "Port" @@ -1854,7 +1854,7 @@ msgid "Staging" msgstr "Mise en scène" #: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223 -#: dcim/choices.py:1426 virtualization/choices.py:23 +#: dcim/choices.py:1430 virtualization/choices.py:23 #: virtualization/choices.py:48 msgid "Decommissioning" msgstr "Démantèlement" @@ -1914,7 +1914,7 @@ msgstr "Obsolète" msgid "Millimeters" msgstr "Millimètres" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "Pouces" @@ -1989,7 +1989,7 @@ msgstr "De droite à gauche" msgid "Side to rear" msgstr "D'un côté à l'arrière" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "Passif" @@ -2017,8 +2017,8 @@ msgstr "International/ITA" msgid "Proprietary" msgstr "Propriétaire" -#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 -#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 +#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141 +#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350 #: netbox/navigation/menu.py:187 msgid "Other" msgstr "Autres" @@ -2031,22 +2031,22 @@ msgstr "ITA/International" msgid "Physical" msgstr "Physique" -#: dcim/choices.py:795 dcim/choices.py:952 +#: dcim/choices.py:795 dcim/choices.py:954 msgid "Virtual" msgstr "Virtuel" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408 #: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 #: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 #: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "Sans fil" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "Interfaces virtuelles" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303 #: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 #: dcim/tables/devices.py:656 templates/dcim/interface.html:106 #: templates/virtualization/vminterface.html:43 @@ -2056,152 +2056,152 @@ msgstr "Interfaces virtuelles" msgid "Bridge" msgstr "Passerelle" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "Groupe d'agrégation de liens (LAG)" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "Ethernet (fixe)" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "Ethernet (modulaire)" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "Ethernet (panneau arrière)" -#: dcim/choices.py:1036 +#: dcim/choices.py:1040 msgid "Cellular" msgstr "Cellulaire" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/choices.py:1090 dcim/forms/filtersets.py:303 #: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 #: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 #: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "Série" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "Coaxiale" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "Empilage" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "La moitié" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "Complet" -#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 +#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "Automatique" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "Accès" -#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 +#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 #: templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Tagué" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "Tagué (Tous)" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "Norme IEEE" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "24 V passif (2 paires)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "24 V passif (4 paires)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "48 V passif (2 paires)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "48 V passif (4 paires)" -#: dcim/choices.py:1288 dcim/choices.py:1384 +#: dcim/choices.py:1292 dcim/choices.py:1388 msgid "Copper" msgstr "Cuivre" -#: dcim/choices.py:1311 +#: dcim/choices.py:1315 msgid "Fiber Optic" msgstr "fibre optique" -#: dcim/choices.py:1400 +#: dcim/choices.py:1404 msgid "Fiber" msgstr "Fibre" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 +#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "Connecté" -#: dcim/choices.py:1443 +#: dcim/choices.py:1447 msgid "Kilometers" msgstr "Kilomètres" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Compteurs" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "Centimètres" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "Miles" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Pieds" -#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: dcim/choices.py:1467 templates/dcim/device.html:319 #: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "Kilogrammes" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "Grammes" -#: dcim/choices.py:1465 templates/dcim/rack.html:153 +#: dcim/choices.py:1469 templates/dcim/rack.html:153 msgid "Pounds" msgstr "Livres" -#: dcim/choices.py:1466 +#: dcim/choices.py:1470 msgid "Ounces" msgstr "Onces" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "Primaire" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "Redondant" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "Monophasé" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "Triphasé" @@ -2572,7 +2572,7 @@ msgstr "L2VPN (IDENTIFIANT)" #: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 #: dcim/tables/devices.py:566 ipam/filtersets.py:1022 -#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133 #: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 #: templates/vpn/l2vpntermination.html:12 #: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 @@ -2661,7 +2661,7 @@ msgid "Power panel (ID)" msgstr "Panneau d'alimentation (ID)" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495 #: netbox/forms/base.py:84 netbox/forms/mixins.py:81 #: netbox/tables/columns.py:458 #: templates/circuits/inc/circuit_termination.html:118 @@ -2750,7 +2750,7 @@ msgstr "Fuseau horaire" #: ipam/forms/bulk_import.py:196 ipam/forms/bulk_import.py:261 #: ipam/forms/bulk_import.py:297 ipam/forms/bulk_import.py:463 #: ipam/forms/filtersets.py:236 ipam/forms/filtersets.py:282 -#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497 +#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509 #: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219 #: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680 #: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363 @@ -2863,7 +2863,7 @@ msgstr "Unité de poids" #: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 #: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 #: dcim/tables/power.py:70 dcim/tables/racks.py:148 -#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434 +#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435 #: ipam/forms/model_forms.py:601 templates/dcim/device.html:29 #: templates/dcim/inc/cable_termination.html:16 #: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 @@ -3014,7 +3014,7 @@ msgstr "Plateforme" #: dcim/tables/devices.py:862 dcim/tables/devices.py:914 #: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 #: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551 #: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 #: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 #: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 @@ -3214,7 +3214,7 @@ msgid "Mode" msgstr "Mode" #: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498 #: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 #: virtualization/forms/model_forms.py:321 msgid "VLAN group" @@ -3412,6 +3412,7 @@ msgstr "Châssis virtuel" #: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 #: dcim/tables/devices.py:207 extras/filtersets.py:548 #: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452 #: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 #: templates/virtualization/cluster.html:10 #: templates/virtualization/virtualmachine.html:88 @@ -3835,7 +3836,7 @@ msgstr "Connexion" #: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 #: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 -#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: extras/forms/model_forms.py:551 extras/tables/tables.py:512 #: templates/extras/journalentry.html:30 msgid "Kind" msgstr "Type" @@ -5738,7 +5739,7 @@ msgstr "Joignable" #: extras/tables/tables.py:435 netbox/navigation/menu.py:56 #: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62 #: virtualization/forms/model_forms.py:122 -#: virtualization/tables/clusters.py:83 virtualization/views.py:211 +#: virtualization/tables/clusters.py:83 virtualization/views.py:210 msgid "Devices" msgstr "Appareils" @@ -5748,7 +5749,7 @@ msgid "VMs" msgstr "machines virtuelles" #: dcim/tables/devices.py:105 dcim/tables/devices.py:221 -#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:14 #: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 @@ -5816,8 +5817,8 @@ msgid "Power outlets" msgstr "Prises de courant" #: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 -#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245 +#: dcim/views.py:1931 netbox/navigation/menu.py:81 #: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 @@ -5825,7 +5826,7 @@ msgstr "Prises de courant" #: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "Interfaces" @@ -5872,7 +5873,7 @@ msgid "Allocated draw (W)" msgstr "Tirage alloué (W)" #: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 -#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 +#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690 #: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 #: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 #: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 @@ -5904,7 +5905,7 @@ msgid "VDCs" msgstr "VDC" #: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024 #: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 #: templates/dcim/inc/panels/inventory_items.html:6 @@ -5947,7 +5948,7 @@ msgid "Module Types" msgstr "Types de modules" #: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 -#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: extras/forms/model_forms.py:413 extras/tables/tables.py:430 #: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "Plateformes" @@ -5968,60 +5969,60 @@ msgstr "Hauteur en U" msgid "Instances" msgstr "Instances" -#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 -#: dcim/views.py:1869 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185 +#: dcim/views.py:1871 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "Ports de console" -#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 -#: dcim/views.py:1884 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200 +#: dcim/views.py:1886 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "Ports du serveur de consoles" -#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 -#: dcim/views.py:1899 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215 +#: dcim/views.py:1901 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "Ports d'alimentation" -#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 -#: dcim/views.py:1914 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230 +#: dcim/views.py:1916 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "Prises de courant" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 -#: dcim/views.py:1950 netbox/navigation/menu.py:82 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260 +#: dcim/views.py:1952 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "Ports avant" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 -#: dcim/views.py:1965 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275 +#: dcim/views.py:1967 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "Ports arrière" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005 #: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "Baies pour appareils" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986 #: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" @@ -6067,42 +6068,48 @@ msgid "Max Weight" msgstr "Poids maximum" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393 #: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 #: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 #: netbox/navigation/menu.py:17 msgid "Sites" msgstr "Sites" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "Le scénario de test doit définir peer_termination_type" -#: dcim/views.py:135 +#: dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "Déconnecté {count} {type}" -#: dcim/views.py:696 netbox/navigation/menu.py:28 +#: dcim/views.py:698 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "Réservations" -#: dcim/views.py:714 templates/dcim/location.html:90 +#: dcim/views.py:716 templates/dcim/location.html:90 #: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "Appareils non rackés" -#: dcim/views.py:2035 extras/forms/model_forms.py:456 +#: dcim/views.py:2037 extras/forms/model_forms.py:453 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:407 msgid "Config Context" msgstr "Contexte de configuration" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "Configuration du rendu" -#: dcim/views.py:2970 ipam/tables/ip.py:233 +#: dcim/views.py:2097 extras/tables/tables.py:440 +#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236 +#: virtualization/views.py:185 +msgid "Virtual Machines" +msgstr "Machines virtuelles" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "Enfants" @@ -6272,7 +6279,7 @@ msgstr "30 jours" #: templates/extras/eventrule.html:40 #: templates/generic/bulk_add_component.html:68 #: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 msgid "Create" msgstr "Créez" @@ -6348,11 +6355,11 @@ msgid "White" msgstr "blanc" #: extras/choices.py:320 extras/forms/model_forms.py:242 -#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 +#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10 msgid "Webhook" msgstr "Webhook" -#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: extras/choices.py:321 extras/forms/model_forms.py:312 #: templates/extras/script/base.html:29 msgid "Script" msgstr "Scénario" @@ -6511,7 +6518,8 @@ msgid "Cluster type (slug)" msgstr "Type de cluster (slug)" #: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 -#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 +#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615 +#: virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "Groupe de clusters" @@ -6529,7 +6537,7 @@ msgstr "Groupe de locataires" msgid "Tenant group (slug)" msgstr "Groupe de locataires (slug)" -#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: extras/filtersets.py:575 extras/forms/model_forms.py:371 #: templates/extras/tag.html:11 msgid "Tag" msgstr "Balise" @@ -6648,7 +6656,7 @@ msgstr "Est actif" #: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 #: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 #: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 -#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273 msgid "Object types" msgstr "Types d'objets" @@ -6751,9 +6759,8 @@ msgid "Choices" msgstr "Choix" #: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 -#: templates/core/job.html:78 templates/extras/configcontext.html:82 -#: templates/extras/eventrule.html:90 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448 +#: templates/core/job.html:78 templates/extras/eventrule.html:90 msgid "Data" msgstr "Données" @@ -6796,7 +6803,7 @@ msgstr "Suppressions d'objets" msgid "Job starts" msgstr "Début du travail" -#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297 msgid "Job terminations" msgstr "Résiliations d'emploi" @@ -6808,44 +6815,44 @@ msgstr "Type d'objet balisé" msgid "Allowed object type" msgstr "Type d'objet autorisé" -#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383 #: netbox/navigation/menu.py:18 msgid "Regions" msgstr "Régions" -#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388 msgid "Site groups" msgstr "Groupes de sites" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398 #: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "Localisations" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403 msgid "Device types" msgstr "Types d'appareils" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408 msgid "Roles" msgstr "Rôles" -#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418 msgid "Cluster types" msgstr "Types de clusters" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423 msgid "Cluster groups" msgstr "Groupes de clusters" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428 #: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 #: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "Clusters" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433 msgid "Tenant groups" msgstr "Groupes de locataires" @@ -6863,7 +6870,7 @@ msgstr "Avant" msgid "Time" msgstr "Heure" -#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282 #: extras/tables/tables.py:470 templates/extras/eventrule.html:77 #: templates/extras/objectchange.html:45 msgid "Action" @@ -6935,7 +6942,7 @@ msgid "" msgstr "" "Code modèle Jinja2 pour l'URL du lien. Référencez l'objet comme {example}." -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500 msgid "Template code" msgstr "Code du modèle" @@ -6947,13 +6954,13 @@ msgstr "Modèle d'exportation" msgid "Rendering" msgstr "Rendu" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "" "Le contenu du modèle est renseigné à partir de la source distante " "sélectionnée ci-dessous." -#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "Doit spécifier un contenu local ou un fichier de données" @@ -6994,46 +7001,46 @@ msgstr "Règle de l'événement" msgid "Conditions" msgstr "Les conditions" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "Créations" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "mises à jour" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "Suppressions" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "Exécutions de tâches" -#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 +#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "Locataires" -#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321 #: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 #: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:314 +#: users/forms/model_forms.py:311 msgid "Assignment" msgstr "Affectation" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "" "Les données sont renseignées à partir de la source distante sélectionnée ci-" "dessous." -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "Doit spécifier des données locales ou un fichier de données" -#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:55 msgid "Content" msgstr "Contenu" @@ -8040,11 +8047,6 @@ msgstr "Fin du travail" msgid "Device Roles" msgstr "Rôles des appareils" -#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 -#: netbox/navigation/menu.py:236 virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "Machines virtuelles" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -8063,19 +8065,13 @@ msgid "Line" msgstr "Ligne" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "Niveau" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "Message" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "Aucun résultat trouvé" - #: extras/tables/tables.py:564 msgid "Method" msgstr "Méthode" @@ -8450,7 +8446,7 @@ msgstr "Nom DNS" #: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 #: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 -#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22 #: templates/ipam/inc/panels/fhrp_groups.html:24 #: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19 msgid "Protocol" @@ -8700,20 +8696,20 @@ msgstr "Affecté à une interface" msgid "DNS Name" msgstr "Nom DNS" -#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513 #: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "IDENTIFIANT DE VLAN" -#: ipam/forms/filtersets.py:440 +#: ipam/forms/filtersets.py:441 msgid "Minimum VID" msgstr "VID minimum" -#: ipam/forms/filtersets.py:446 +#: ipam/forms/filtersets.py:447 msgid "Maximum VID" msgstr "VID maximum" -#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318 #: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 #: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 #: templates/virtualization/virtualmachine.html:12 @@ -9057,10 +9053,9 @@ msgstr "Les masques d'adresse IP de début et de fin doivent correspondre" #: ipam/models/ip.py:577 #, python-brace-format msgid "" -"Ending address must be lower than the starting address ({start_address})" +"Ending address must be greater than the starting address ({start_address})" msgstr "" -"L'adresse de fin doit être inférieure à l'adresse de départ " -"({start_address})" +"L'adresse de fin doit être supérieure à l'adresse de début ({start_address})" #: ipam/models/ip.py:589 #, python-brace-format @@ -9225,7 +9220,7 @@ msgid "The primary function of this VLAN" msgstr "La principale fonction de ce VLAN" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: ipam/views.py:957 netbox/navigation/menu.py:180 #: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "VLAN" @@ -9301,7 +9296,7 @@ msgid "Added" msgstr "Ajouté" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: ipam/views.py:348 netbox/navigation/menu.py:152 #: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "Préfixes" @@ -9404,23 +9399,23 @@ msgstr "" "Seuls les caractères alphanumériques, les astérisques, les tirets, les " "points et les traits de soulignement sont autorisés dans les noms DNS" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "Préfixes pour enfants" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "Plages pour enfants" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "IP associées" -#: ipam/views.py:1115 +#: ipam/views.py:1112 msgid "Device Interfaces" msgstr "Interfaces des appareils" -#: ipam/views.py:1133 +#: ipam/views.py:1129 msgid "VM Interfaces" msgstr "Interfaces de machines virtuelles" @@ -9975,7 +9970,7 @@ msgstr "Virtualisation" #: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 -#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 +#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388 msgid "Virtual Disks" msgstr "Disques virtuels" @@ -10097,44 +10092,44 @@ msgid "Admin" msgstr "Administrateur" #: netbox/navigation/menu.py:373 templates/users/group.html:29 -#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 -#: users/forms/model_forms.py:300 users/tables.py:102 +#: users/forms/model_forms.py:233 users/forms/model_forms.py:245 +#: users/forms/model_forms.py:297 users/tables.py:102 msgid "Users" msgstr "Utilisateurs" -#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 -#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182 +#: users/forms/model_forms.py:194 users/forms/model_forms.py:302 #: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "Groupes" -#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: netbox/navigation/menu.py:413 templates/account/base.html:21 #: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "Jetons d'API" -#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 -#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 -#: users/forms/model_forms.py:249 +#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188 +#: users/forms/model_forms.py:196 users/forms/model_forms.py:239 +#: users/forms/model_forms.py:246 msgid "Permissions" msgstr "Autorisations" -#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432 #: templates/core/system.html:7 msgid "System" msgstr "Système" -#: netbox/navigation/menu.py:432 +#: netbox/navigation/menu.py:437 msgid "Configuration History" msgstr "Historique de configuration" -#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8 #: templates/core/rq_task_list.html:22 msgid "Background Tasks" msgstr "Tâches d'arrière-plan" -#: netbox/navigation/menu.py:475 templates/500.html:35 -#: templates/account/preferences.html:22 templates/core/system.html:76 +#: netbox/navigation/menu.py:482 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:80 msgid "Plugins" msgstr "Plug-ins" @@ -10205,49 +10200,57 @@ msgstr "Navigation HTML" msgid "Enable dynamic UI navigation" msgstr "Activer la navigation dynamique dans l'interface utilisateur" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "Fonctionnalité expérimentale" + #: netbox/preferences.py:29 msgid "Language" msgstr "Langue" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." +msgid "Forces UI translation to the specified language" msgstr "" -"Force la traduction de l'interface utilisateur dans la langue spécifiée." +"Force la traduction de l'interface utilisateur dans la langue spécifiée" -#: netbox/preferences.py:37 +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" +msgstr "La prise en charge de la traduction a été désactivée localement" + +#: netbox/preferences.py:42 msgid "Page length" msgstr "Longueur de page" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "Le nombre d'objets par défaut à afficher par page" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" msgstr "Emplacement du paginateur" -#: netbox/preferences.py:45 +#: netbox/preferences.py:50 msgid "Bottom" msgstr "En bas" -#: netbox/preferences.py:46 +#: netbox/preferences.py:51 msgid "Top" msgstr "Haut" -#: netbox/preferences.py:47 +#: netbox/preferences.py:52 msgid "Both" msgstr "Les deux" -#: netbox/preferences.py:50 +#: netbox/preferences.py:55 msgid "Where the paginator controls will be displayed relative to a table" msgstr "" "Où les commandes du paginateur seront affichées par rapport à un tableau" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "Format des données" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "" "Syntaxe préférée pour afficher des données génériques dans l'interface " @@ -10266,31 +10269,31 @@ msgstr "Impossible d'ajouter des magasins au registre après l'initialisation" msgid "Cannot delete stores from registry" msgstr "Impossible de supprimer des magasins du registre" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "Anglais" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "espagnol" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "français" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "japonais" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "portugais" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "russe" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "Turc" @@ -10306,11 +10309,16 @@ msgstr "Basculer vers le menu déroulant" msgid "Error" msgstr "Erreur" -#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 +#: netbox/tables/tables.py:56 +#, python-brace-format +msgid "No {model_name} found" +msgstr "Non {model_name} trouvé" + +#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117 msgid "Field" msgstr "Champ" -#: netbox/tables/tables.py:248 +#: netbox/tables/tables.py:249 msgid "Value" msgstr "Valeur" @@ -10331,7 +10339,7 @@ msgstr "Journal des modifications" msgid "Journal" msgstr "Journal" -#: netbox/views/generic/object_views.py:105 +#: netbox/views/generic/object_views.py:106 #, python-brace-format msgid "{class_name} must implement get_children()" msgstr "{class_name} doit implémenter get_children ()" @@ -10374,7 +10382,7 @@ msgstr "" msgid "The complete exception is provided below" msgstr "L'exception complète est fournie ci-dessous" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" msgstr "Version Python" @@ -10430,7 +10438,7 @@ msgstr "Modifier le mot de passe" #: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63 #: templates/generic/confirmation_form.html:19 #: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 -#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 +#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "Annuler" @@ -10473,7 +10481,7 @@ msgid "Columns" msgstr "Colonnes" #: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 -#: templates/extras/object_configcontext.html:55 +#: templates/extras/object_configcontext.html:43 msgid "None found" msgstr "Aucun n'a été trouvé" @@ -10521,7 +10529,6 @@ msgstr "Groupes assignés" #: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 #: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 #: templates/extras/htmx/script_result.html:56 -#: templates/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:123 #: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 #: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 @@ -10657,7 +10664,7 @@ msgstr "Ajouter" #: templates/dcim/moduletype/component_templates.html:20 #: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 #: templates/generic/object_edit.html:47 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 #: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" @@ -10994,39 +11001,39 @@ msgstr "Exporter" msgid "System Status" msgstr "État du système" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "Version de Django" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" +#: templates/core/system.html:43 +msgid "PostgreSQL version" msgstr "Version de PostgreSQL" -#: templates/core/system.html:43 +#: templates/core/system.html:47 msgid "Database name" msgstr "Nom de base de données" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "Taille de base de données" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "Non disponible" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "Travailleurs de RQ" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "file d'attente par défaut" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "Heure du système" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "Configuration actuelle" @@ -11731,7 +11738,7 @@ msgstr "Ajouter un nouveau membre" #: templates/dcim/virtualchassis_add_member.html:27 #: templates/generic/object_edit.html:78 #: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:312 +#: users/forms/model_forms.py:309 msgid "Actions" msgstr "Des actions" @@ -12078,19 +12085,11 @@ msgstr "jours" msgid "Indefinite" msgstr "Indéfini" -#: templates/extras/object_configcontext.html:11 -msgid "Rendered Context" -msgstr "Contexte rendu" - -#: templates/extras/object_configcontext.html:22 -msgid "Local Context" -msgstr "Contexte local" - -#: templates/extras/object_configcontext.html:34 +#: templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Le contexte de configuration local remplace tous les contextes source" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "Contextes sources" @@ -12491,20 +12490,20 @@ msgstr "" "Avant de pouvoir ajouter un %(model)s vous devez d'abord créer un " "%(prerequisite_model)s." -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "Sélection de page" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "Montrant %(start)s-%(end)s de %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "Options de pagination" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "Par page" @@ -12566,11 +12565,11 @@ msgstr "Clé d'authentification" msgid "Virtual IP Addresses" msgstr "Adresses IP virtuelles" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "Attribuer une IP" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "Création en bloc" @@ -12611,11 +12610,11 @@ msgstr "NAT (extérieur)" msgid "Assign an IP Address" msgstr "Attribuer une adresse IP" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "Sélectionnez l'adresse IP" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "Résultats de recherche" @@ -12736,11 +12735,11 @@ msgstr "Logo NetBox" msgid "Errors" msgstr "Erreurs" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "Connectez-vous" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "Ou" @@ -12863,7 +12862,7 @@ msgstr "Autorisation" msgid "View" msgstr "Afficher" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "Contraintes" @@ -13343,11 +13342,11 @@ msgstr "Peut changer" msgid "Can Delete" msgstr "Peut supprimer" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "Interface utilisateur" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -13357,7 +13356,7 @@ msgstr "" "d'enregistrer votre clé avant de soumettre ce formulaire, car il se" " peut qu'il ne soit plus accessible une fois le jeton créé." -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13367,33 +13366,33 @@ msgstr "" "Laissez ce champ vide pour éviter toute restriction. Exemple : " "10.1.1.0/24 192.168.10,16/32 2001 : db 8:1 : /64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "Confirmer mot de passe" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "" "Entrez le même mot de passe que précédemment, à des fins de vérification." -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" "Les mots de passe ne correspondent pas ! Vérifiez votre saisie et réessayez." -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "Actions supplémentaires" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "Actions accordées en plus de celles énumérées ci-dessus" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "Objets" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13403,11 +13402,11 @@ msgstr "" "autorisés. Laissez null pour correspondre à tous les objets de ce type. Une " "liste de plusieurs objets entraînera une opération OR logique." -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "Au moins une action doit être sélectionnée." -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "Filtre non valide pour {model}: {error}" @@ -13585,13 +13584,7 @@ msgstr "" msgid "More than 50" msgstr "Plus de 50" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "" -"Le jeu de requêtes personnalisé ne peut pas être utilisé pour cette " -"recherche." - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13600,7 +13593,7 @@ msgstr "" "%s(%r) n'est pas valide. Le paramètre to_model de CounterCacheField doit " "être une chaîne au format « app.model »" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo index 258fa9f76aae82bb273b25a25e01c4ae5b9466bc..c6fa96d0910a72d355f2cbbc1570cce128ffd288 100644 GIT binary patch delta 64940 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 delta 65425 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 OavC}8Y3t2;&i@B<@$=IF diff --git a/netbox/translations/ja/LC_MESSAGES/django.po b/netbox/translations/ja/LC_MESSAGES/django.po index 782f07e3fe..78020e5eb0 100644 --- a/netbox/translations/ja/LC_MESSAGES/django.po +++ b/netbox/translations/ja/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-06 17:40+0000\n" +"POT-Creation-Date: 2024-05-14 13:22+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2024\n" "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n" @@ -25,7 +25,7 @@ msgstr "" #: account/tables.py:27 templates/account/token.html:22 #: templates/users/token.html:17 users/forms/bulk_import.py:39 -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:113 msgid "Key" msgstr "Key" @@ -57,7 +57,7 @@ msgstr "最終使用日" #: account/tables.py:45 templates/account/token.html:55 #: templates/users/token.html:47 users/forms/bulk_edit.py:122 -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "許可された IP" @@ -66,19 +66,19 @@ msgid "Your preferences have been updated." msgstr "設定が更新されました。" #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 -#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425 -#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20 +#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429 +#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20 #: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "計画中" #: circuits/choices.py:22 netbox/navigation/menu.py:289 msgid "Provisioning" -msgstr "開通" +msgstr "プロビジョニング" #: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 #: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 -#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385 #: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 #: ipam/choices.py:154 templates/extras/configcontext.html:25 #: templates/users/user.html:37 users/forms/bulk_edit.py:38 @@ -88,14 +88,14 @@ msgid "Active" msgstr "アクティブ" #: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218 -#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24 +#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24 #: virtualization/choices.py:43 msgid "Offline" msgstr "オフライン" #: circuits/choices.py:25 msgid "Deprovisioning" -msgstr "解約" +msgstr "デプロビジョニング" #: circuits/choices.py:26 msgid "Decommissioned" @@ -162,8 +162,8 @@ msgstr "サイトグループ (slug)" #: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 #: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 #: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 -#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 -#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203 #: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 #: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 #: templates/circuits/inc/circuit_termination.html:32 @@ -263,7 +263,7 @@ msgstr "ターミネーション A (ID)" #: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 #: netbox/forms/__init__.py:22 netbox/forms/base.py:165 #: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 -#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7 #: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 #: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 #: utilities/forms/forms.py:104 @@ -286,7 +286,7 @@ msgstr "プロバイダネットワーク (ID)" #: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 #: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 #: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 +#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218 #: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 #: templates/circuits/provider.html:23 msgid "ASNs" @@ -450,7 +450,7 @@ msgstr "色" #: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:283 extras/tables/tables.py:355 -#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: extras/tables/tables.py:473 netbox/tables/tables.py:237 #: templates/circuits/circuit.html:30 templates/core/datasource.html:38 #: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 #: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 @@ -500,7 +500,7 @@ msgstr "プロバイダアカウント" #: ipam/forms/bulk_import.py:191 ipam/forms/bulk_import.py:256 #: ipam/forms/bulk_import.py:292 ipam/forms/bulk_import.py:458 #: ipam/forms/filtersets.py:209 ipam/forms/filtersets.py:274 -#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489 +#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501 #: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309 #: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448 #: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227 @@ -516,7 +516,7 @@ msgstr "プロバイダアカウント" #: templates/virtualization/virtualmachine.html:19 #: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22 #: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70 #: virtualization/forms/bulk_edit.py:118 #: virtualization/forms/bulk_import.py:54 #: virtualization/forms/bulk_import.py:80 @@ -560,7 +560,7 @@ msgstr "ステータス" #: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 #: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 #: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 #: templates/dcim/device.html:78 templates/dcim/location.html:49 @@ -698,8 +698,8 @@ msgstr "プロバイダネットワーク" #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 #: extras/filtersets.py:488 extras/forms/filtersets.py:329 #: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 -#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430 +#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590 #: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 #: templates/dcim/inc/cable_termination.html:12 #: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26 @@ -738,7 +738,7 @@ msgstr "連絡先" #: dcim/tables/sites.py:85 extras/filtersets.py:455 #: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438 #: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216 -#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463 +#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475 #: ipam/forms/model_forms.py:562 templates/dcim/device.html:17 #: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22 #: templates/dcim/region.html:26 templates/dcim/site.html:30 @@ -758,8 +758,8 @@ msgstr "リージョン" #: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 #: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 #: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 -#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420 +#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575 #: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 #: virtualization/forms/filtersets.py:138 #: virtualization/forms/model_forms.py:98 @@ -783,8 +783,8 @@ msgstr "サイトグループ" #: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 #: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 #: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 -#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 -#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527 +#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253 #: virtualization/forms/filtersets.py:45 #: virtualization/forms/filtersets.py:103 #: virtualization/forms/filtersets.py:194 @@ -1185,7 +1185,7 @@ msgstr "完了" #: core/choices.py:22 core/choices.py:59 core/constants.py:20 #: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 -#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 +#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "失敗" @@ -1253,7 +1253,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "HTTP (S) でのcloneに使用されます" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:174 +#: templates/account/password.html:11 users/forms/model_forms.py:171 msgid "Password" msgstr "パスワード" @@ -1317,8 +1317,8 @@ msgid "Ignore rules" msgstr "ignoreルール" #: core/forms/filtersets.py:27 core/forms/model_forms.py:97 -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 -#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:154 #: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:18 @@ -1391,8 +1391,8 @@ msgstr "以前に完了" #: templates/inc/user_menu.html:15 templates/users/token.html:21 #: templates/users/user.html:6 templates/users/user.html:14 #: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 -#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 -#: users/forms/model_forms.py:196 users/tables.py:19 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:156 +#: users/forms/model_forms.py:193 users/tables.py:19 msgid "User" msgstr "ユーザ" @@ -1422,7 +1422,7 @@ msgstr "同期するファイルをアップロードするか、データファ msgid "Rack Elevations" msgstr "ラック図" -#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: core/forms/model_forms.py:157 dcim/choices.py:1417 #: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 #: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 #: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 @@ -1459,7 +1459,7 @@ msgid "User Preferences" msgstr "ユーザ設定" #: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 -#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "その他" @@ -1534,7 +1534,7 @@ msgid "type" msgstr "タイプ" #: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 -#: extras/tables/tables.py:582 templates/core/datasource.html:58 +#: extras/tables/tables.py:577 templates/core/datasource.html:58 msgid "URL" msgstr "URL" @@ -1714,7 +1714,7 @@ msgstr "最終更新日" #: core/tables/jobs.py:10 core/tables/tasks.py:76 #: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 -#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: extras/tables/tables.py:350 netbox/tables/tables.py:187 #: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 #: wireless/tables/wirelesslink.py:16 msgid "ID" @@ -1723,7 +1723,7 @@ msgstr "ID" #: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 #: extras/tables/tables.py:287 extras/tables/tables.py:360 #: extras/tables/tables.py:478 extras/tables/tables.py:509 -#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: extras/tables/tables.py:574 netbox/tables/tables.py:241 #: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 #: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 #: vpn/tables/l2vpn.py:64 @@ -1738,7 +1738,7 @@ msgstr "間隔" #: vpn/forms/bulk_edit.py:141 vpn/forms/bulk_import.py:172 #: vpn/tables/crypto.py:61 msgid "Version" -msgstr "[バージョン]" +msgstr "バージョン" #: core/tables/plugins.py:20 msgid "Package" @@ -1768,7 +1768,7 @@ msgstr "労働者" msgid "Host" msgstr "ホスト" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "ポート" @@ -1835,7 +1835,7 @@ msgid "Staging" msgstr "ステージング" #: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223 -#: dcim/choices.py:1426 virtualization/choices.py:23 +#: dcim/choices.py:1430 virtualization/choices.py:23 #: virtualization/choices.py:48 msgid "Decommissioning" msgstr "廃止" @@ -1895,7 +1895,7 @@ msgstr "廃止済" msgid "Millimeters" msgstr "ミリメートル" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "インチ" @@ -1970,7 +1970,7 @@ msgstr "右から左" msgid "Side to rear" msgstr "側面から背面" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "パッシブ" @@ -1998,8 +1998,8 @@ msgstr "International/ITA" msgid "Proprietary" msgstr "独自規格" -#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 -#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 +#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141 +#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350 #: netbox/navigation/menu.py:187 msgid "Other" msgstr "その他" @@ -2012,22 +2012,22 @@ msgstr "ITA/International" msgid "Physical" msgstr "物理" -#: dcim/choices.py:795 dcim/choices.py:952 +#: dcim/choices.py:795 dcim/choices.py:954 msgid "Virtual" msgstr "仮想" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408 #: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 #: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 #: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "無線" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "仮想インタフェース" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303 #: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 #: dcim/tables/devices.py:656 templates/dcim/interface.html:106 #: templates/virtualization/vminterface.html:43 @@ -2037,152 +2037,152 @@ msgstr "仮想インタフェース" msgid "Bridge" msgstr "ブリッジ" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "リンクアグリゲーション (LAG)" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "イーサネット (固定)" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "イーサネット (モジュール)" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "イーサネット (バックプレーン)" -#: dcim/choices.py:1036 +#: dcim/choices.py:1040 msgid "Cellular" msgstr "セルラー" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/choices.py:1090 dcim/forms/filtersets.py:303 #: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 #: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 #: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "シリアル" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "同軸" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "スタック" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "半二重" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "全二重" -#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 +#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "自動" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "アクセス" -#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 +#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 #: templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "タグ付き" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "タグ付き (全て)" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "IEEE スタンダード" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "パッシブ 24V (2 ペア)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "パッシブ 24V (4ペア)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "パッシブ 48V (2 ペア)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "パッシブ 48V (4ペア)" -#: dcim/choices.py:1288 dcim/choices.py:1384 +#: dcim/choices.py:1292 dcim/choices.py:1388 msgid "Copper" msgstr "カッパー" -#: dcim/choices.py:1311 +#: dcim/choices.py:1315 msgid "Fiber Optic" msgstr "光ファイバー" -#: dcim/choices.py:1400 +#: dcim/choices.py:1404 msgid "Fiber" msgstr "ファイバー" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 +#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "接続済" -#: dcim/choices.py:1443 +#: dcim/choices.py:1447 msgid "Kilometers" msgstr "キロメートル" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "メートル" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "センチメートル" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "マイル" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "フィート" -#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: dcim/choices.py:1467 templates/dcim/device.html:319 #: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "キログラム" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "グラム" -#: dcim/choices.py:1465 templates/dcim/rack.html:153 +#: dcim/choices.py:1469 templates/dcim/rack.html:153 msgid "Pounds" msgstr "ポンド" -#: dcim/choices.py:1466 +#: dcim/choices.py:1470 msgid "Ounces" msgstr "オンス" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "プライマリ" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "冗長" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "単相" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "三相" @@ -2553,7 +2553,7 @@ msgstr "L2VPN (ID)" #: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 #: dcim/tables/devices.py:566 ipam/filtersets.py:1022 -#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133 #: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 #: templates/vpn/l2vpntermination.html:12 #: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 @@ -2642,7 +2642,7 @@ msgid "Power panel (ID)" msgstr "電源盤 (ID)" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495 #: netbox/forms/base.py:84 netbox/forms/mixins.py:81 #: netbox/tables/columns.py:458 #: templates/circuits/inc/circuit_termination.html:118 @@ -2729,7 +2729,7 @@ msgstr "タイムゾーン" #: ipam/forms/bulk_import.py:196 ipam/forms/bulk_import.py:261 #: ipam/forms/bulk_import.py:297 ipam/forms/bulk_import.py:463 #: ipam/forms/filtersets.py:236 ipam/forms/filtersets.py:282 -#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497 +#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509 #: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219 #: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680 #: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363 @@ -2842,7 +2842,7 @@ msgstr "重量単位" #: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 #: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 #: dcim/tables/power.py:70 dcim/tables/racks.py:148 -#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434 +#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435 #: ipam/forms/model_forms.py:601 templates/dcim/device.html:29 #: templates/dcim/inc/cable_termination.html:16 #: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 @@ -2993,7 +2993,7 @@ msgstr "プラットフォーム" #: dcim/tables/devices.py:862 dcim/tables/devices.py:914 #: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 #: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551 #: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 #: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 #: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 @@ -3193,7 +3193,7 @@ msgid "Mode" msgstr "モード" #: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498 #: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 #: virtualization/forms/model_forms.py:321 msgid "VLAN group" @@ -3390,6 +3390,7 @@ msgstr "バーチャルシャーシ" #: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 #: dcim/tables/devices.py:207 extras/filtersets.py:548 #: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452 #: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 #: templates/virtualization/cluster.html:10 #: templates/virtualization/virtualmachine.html:88 @@ -3803,7 +3804,7 @@ msgstr "接続" #: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 #: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 -#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: extras/forms/model_forms.py:551 extras/tables/tables.py:512 #: templates/extras/journalentry.html:30 msgid "Kind" msgstr "種類" @@ -5590,7 +5591,7 @@ msgstr "到達可能" #: extras/tables/tables.py:435 netbox/navigation/menu.py:56 #: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62 #: virtualization/forms/model_forms.py:122 -#: virtualization/tables/clusters.py:83 virtualization/views.py:211 +#: virtualization/tables/clusters.py:83 virtualization/views.py:210 msgid "Devices" msgstr "デバイス" @@ -5600,7 +5601,7 @@ msgid "VMs" msgstr "VM" #: dcim/tables/devices.py:105 dcim/tables/devices.py:221 -#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:14 #: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 @@ -5668,8 +5669,8 @@ msgid "Power outlets" msgstr "電源コンセント" #: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 -#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245 +#: dcim/views.py:1931 netbox/navigation/menu.py:81 #: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 @@ -5677,7 +5678,7 @@ msgstr "電源コンセント" #: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "インタフェース" @@ -5724,7 +5725,7 @@ msgid "Allocated draw (W)" msgstr "割当電力 (W)" #: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 -#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 +#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690 #: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 #: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 #: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 @@ -5756,7 +5757,7 @@ msgid "VDCs" msgstr "VDC" #: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024 #: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 #: templates/dcim/inc/panels/inventory_items.html:6 @@ -5799,7 +5800,7 @@ msgid "Module Types" msgstr "モジュールタイプ" #: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 -#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: extras/forms/model_forms.py:413 extras/tables/tables.py:430 #: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "プラットフォーム" @@ -5820,60 +5821,60 @@ msgstr "U 高さ" msgid "Instances" msgstr "インスタンス" -#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 -#: dcim/views.py:1869 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185 +#: dcim/views.py:1871 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "コンソールポート" -#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 -#: dcim/views.py:1884 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200 +#: dcim/views.py:1886 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "コンソールサーバポート" -#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 -#: dcim/views.py:1899 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215 +#: dcim/views.py:1901 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "電源ポート" -#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 -#: dcim/views.py:1914 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230 +#: dcim/views.py:1916 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "電源コンセント" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 -#: dcim/views.py:1950 netbox/navigation/menu.py:82 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260 +#: dcim/views.py:1952 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "前面ポート" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 -#: dcim/views.py:1965 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275 +#: dcim/views.py:1967 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "背面ポート" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005 #: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "デバイスベイ" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986 #: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" @@ -5919,42 +5920,48 @@ msgid "Max Weight" msgstr "最大重量" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393 #: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 #: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 #: netbox/navigation/menu.py:17 msgid "Sites" msgstr "サイト" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "テストケースは peer_termination_type を設定する必要があります" -#: dcim/views.py:135 +#: dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "切断されました {count} {type}" -#: dcim/views.py:696 netbox/navigation/menu.py:28 +#: dcim/views.py:698 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "予約" -#: dcim/views.py:714 templates/dcim/location.html:90 +#: dcim/views.py:716 templates/dcim/location.html:90 #: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "ラック搭載でないデバイス" -#: dcim/views.py:2035 extras/forms/model_forms.py:456 +#: dcim/views.py:2037 extras/forms/model_forms.py:453 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:407 msgid "Config Context" msgstr "コンフィグコンテキスト" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "レンダーコンフィグ" -#: dcim/views.py:2970 ipam/tables/ip.py:233 +#: dcim/views.py:2097 extras/tables/tables.py:440 +#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236 +#: virtualization/views.py:185 +msgid "Virtual Machines" +msgstr "仮想マシン" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "子ども" @@ -6123,7 +6130,7 @@ msgstr "30 日毎" #: templates/extras/eventrule.html:40 #: templates/generic/bulk_add_component.html:68 #: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 msgid "Create" msgstr "作成" @@ -6199,11 +6206,11 @@ msgid "White" msgstr "白" #: extras/choices.py:320 extras/forms/model_forms.py:242 -#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 +#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10 msgid "Webhook" msgstr "Webhook" -#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: extras/choices.py:321 extras/forms/model_forms.py:312 #: templates/extras/script/base.html:29 msgid "Script" msgstr "スクリプト" @@ -6351,7 +6358,8 @@ msgid "Cluster type (slug)" msgstr "クラスタタイプ (slug)" #: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 -#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 +#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615 +#: virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "クラスタグループ" @@ -6369,7 +6377,7 @@ msgstr "テナントグループ" msgid "Tenant group (slug)" msgstr "テナントグループ (slug)" -#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: extras/filtersets.py:575 extras/forms/model_forms.py:371 #: templates/extras/tag.html:11 msgid "Tag" msgstr "タグ" @@ -6488,7 +6496,7 @@ msgstr "有効" #: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 #: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 #: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 -#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273 msgid "Object types" msgstr "オブジェクトタイプ" @@ -6589,9 +6597,8 @@ msgid "Choices" msgstr "選択肢" #: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 -#: templates/core/job.html:78 templates/extras/configcontext.html:82 -#: templates/extras/eventrule.html:90 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448 +#: templates/core/job.html:78 templates/extras/eventrule.html:90 msgid "Data" msgstr "データ" @@ -6634,7 +6641,7 @@ msgstr "オブジェクト削除" msgid "Job starts" msgstr "ジョブの開始" -#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297 msgid "Job terminations" msgstr "ジョブの終了" @@ -6646,44 +6653,44 @@ msgstr "タグ付きオブジェクトタイプ" msgid "Allowed object type" msgstr "許可されるオブジェクトタイプ" -#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383 #: netbox/navigation/menu.py:18 msgid "Regions" msgstr "リージョン" -#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388 msgid "Site groups" msgstr "サイトグループ" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398 #: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "ロケーション" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403 msgid "Device types" msgstr "デバイスタイプ" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408 msgid "Roles" msgstr "ロール" -#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418 msgid "Cluster types" msgstr "クラスタタイプ" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423 msgid "Cluster groups" msgstr "クラスタグループ" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428 #: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 #: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "クラスタ" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433 msgid "Tenant groups" msgstr "テナントグループ" @@ -6701,7 +6708,7 @@ msgstr "以前" msgid "Time" msgstr "時間" -#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282 #: extras/tables/tables.py:470 templates/extras/eventrule.html:77 #: templates/extras/objectchange.html:45 msgid "Action" @@ -6764,7 +6771,7 @@ msgid "" "Jinja2 template code for the link URL. Reference the object as {example}." msgstr "リンク URL の Jinja2 テンプレートコード。オブジェクトを次のように参照します。 {example}。" -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500 msgid "Template code" msgstr "テンプレートコード" @@ -6776,11 +6783,11 @@ msgstr "テンプレートをエクスポート" msgid "Rendering" msgstr "レンダリング" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "選択したリモートソースから、テンプレートコンテンツが入力されます。" -#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "ローカルコンテンツまたはデータファイルのいずれかを指定する必要があります" @@ -6819,44 +6826,44 @@ msgstr "イベントルール" msgid "Conditions" msgstr "条件" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "作成" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "更新" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "削除" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "ジョブの実行" -#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 +#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "テナント" -#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321 #: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 #: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:314 +#: users/forms/model_forms.py:311 msgid "Assignment" msgstr "割当" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "データは、以下で選択したリモートソースから入力されます。" -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "ローカルデータまたはデータファイルのいずれかを指定する必要があります" -#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:55 msgid "Content" msgstr "コンテンツ" @@ -7799,11 +7806,6 @@ msgstr "ジョブ終了" msgid "Device Roles" msgstr "デバイスロール" -#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 -#: netbox/navigation/menu.py:236 virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "[仮想マシン]" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -7822,19 +7824,13 @@ msgid "Line" msgstr "ライン" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "レベル" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "メッセージ" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "結果が見つかりません" - #: extras/tables/tables.py:564 msgid "Method" msgstr "メソッド" @@ -8158,7 +8154,7 @@ msgstr "アドレスパターン" #: ipam/forms/bulk_edit.py:48 msgid "Enforce unique space" -msgstr "IPアドレスの重複を禁止する" +msgstr "重複を禁止する" #: ipam/forms/bulk_edit.py:86 msgid "Is private" @@ -8204,7 +8200,7 @@ msgstr "DNS ネーム" #: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 #: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 -#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22 #: templates/ipam/inc/panels/fhrp_groups.html:24 #: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19 msgid "Protocol" @@ -8450,20 +8446,20 @@ msgstr "インタフェースに割当済" msgid "DNS Name" msgstr "DNS名" -#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513 #: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "VLAN ID" -#: ipam/forms/filtersets.py:440 +#: ipam/forms/filtersets.py:441 msgid "Minimum VID" msgstr "最小 VID" -#: ipam/forms/filtersets.py:446 +#: ipam/forms/filtersets.py:447 msgid "Maximum VID" msgstr "VID の最大値" -#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318 #: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 #: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 #: templates/virtualization/virtualmachine.html:12 @@ -8720,7 +8716,7 @@ msgstr "このプレフィックスの主な機能" #: ipam/models/ip.py:264 msgid "is a pool" -msgstr "プールです" +msgstr "プールか" #: ipam/models/ip.py:266 msgid "All IP addresses within this prefix are considered usable" @@ -8728,7 +8724,7 @@ msgstr "このプレフィックス内のすべての IP アドレスが使用 #: ipam/models/ip.py:269 ipam/models/ip.py:536 msgid "mark utilized" -msgstr "使用済みマーク" +msgstr "使用済み" #: ipam/models/ip.py:293 msgid "prefixes" @@ -8750,7 +8746,7 @@ msgstr "グローバルテーブル" #: ipam/models/ip.py:325 #, python-brace-format msgid "Duplicate prefix found in {table}: {prefix}" -msgstr "に重複したプレフィックスが見つかりました {table}: {prefix}" +msgstr "重複したプレフィックスが見つかりました {table}: {prefix}" #: ipam/models/ip.py:494 msgid "start address" @@ -8766,11 +8762,11 @@ msgstr "終了アドレス" #: ipam/models/ip.py:525 msgid "Operational status of this range" -msgstr "この範囲の運用状況" +msgstr "この範囲の動作状況" #: ipam/models/ip.py:533 msgid "The primary function of this range" -msgstr "このシリーズの主な機能" +msgstr "この範囲の主な機能" #: ipam/models/ip.py:547 msgid "IP range" @@ -8782,22 +8778,22 @@ msgstr "IP アドレス範囲" #: ipam/models/ip.py:564 msgid "Starting and ending IP address versions must match" -msgstr "開始 IP アドレスと終了 IP アドレスのバージョンが一致している必要があります" +msgstr "開始・終了 IP アドレスのバージョンが一致している必要があります" #: ipam/models/ip.py:570 msgid "Starting and ending IP address masks must match" -msgstr "開始 IP アドレスマスクと終了 IP アドレスマスクは一致する必要があります" +msgstr "開始・終了 IP アドレスマスクは一致する必要があります" #: ipam/models/ip.py:577 #, python-brace-format msgid "" -"Ending address must be lower than the starting address ({start_address})" -msgstr "終了アドレスは開始アドレスより小さくなければなりません ({start_address})" +"Ending address must be greater than the starting address ({start_address})" +msgstr "終了アドレスは開始アドレスより大きくなければなりません ({start_address})" #: ipam/models/ip.py:589 #, python-brace-format msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}" -msgstr "定義されたアドレスが範囲と重複しています {overlapping_range} VRF で {vrf}" +msgstr "VRF{vrf}において、定義されたアドレスが範囲{overlapping_range}と重複しています " #: ipam/models/ip.py:598 #, python-brace-format @@ -8814,7 +8810,7 @@ msgstr "この IP の動作ステータス" #: ipam/models/ip.py:740 msgid "The functional role of this IP" -msgstr "この IP の機能的ロール" +msgstr "この IP の役割" #: ipam/models/ip.py:764 templates/ipam/ipaddress.html:72 msgid "NAT (inside)" @@ -8822,7 +8818,7 @@ msgstr "NAT (インサイド)" #: ipam/models/ip.py:765 msgid "The IP for which this address is the \"outside\" IP" -msgstr "このアドレスが「外部」IPであるIP" +msgstr "このアドレスが「アウトサイド」IPであるIP" #: ipam/models/ip.py:772 msgid "Hostname or FQDN (not case-sensitive)" @@ -8839,13 +8835,13 @@ msgstr "/0 マスクで IP アドレスを作成することはできません #: ipam/models/ip.py:850 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." -msgstr "{ip} はネットワーク ID で、インタフェースに割り当てることはできません。" +msgstr "{ip} はネットワーク ID のため、インタフェースに割り当てることはできません。" #: ipam/models/ip.py:861 #, python-brace-format msgid "" "{ip} is a broadcast address, which may not be assigned to an interface." -msgstr "{ip} はブロードキャストアドレスで、インタフェースに割り当てることはできません。" +msgstr "{ip} はブロードキャストアドレスのため、インタフェースに割り当てることはできません。" #: ipam/models/ip.py:875 #, python-brace-format @@ -8870,7 +8866,7 @@ msgstr "サービステンプレート" #: ipam/models/services.py:94 msgid "The specific IP addresses (if any) to which this service is bound" -msgstr "このサービスがバインドされている特定の IP アドレス (存在する場合)" +msgstr "このサービスがバインドされている IP アドレス (存在する場合)" #: ipam/models/services.py:101 msgid "service" @@ -8900,7 +8896,7 @@ msgstr "子VLANの最小許容ID" #: ipam/models/vlans.py:58 msgid "maximum VLAN ID" -msgstr "VLAN ID の最大数" +msgstr "最大VLAN ID" #: ipam/models/vlans.py:64 msgid "Highest permissible ID of a child VLAN" @@ -8912,19 +8908,19 @@ msgstr "VLAN グループ" #: ipam/models/vlans.py:95 msgid "Cannot set scope_type without scope_id." -msgstr "scope_id なしでスコープタイプを設定することはできません。" +msgstr "scope_id なしでscope_typeを設定することはできません。" #: ipam/models/vlans.py:97 msgid "Cannot set scope_id without scope_type." -msgstr "スコープタイプなしでスコープIDを設定することはできません。" +msgstr "scope_typeなしでscope_idを設定することはできません。" #: ipam/models/vlans.py:102 msgid "Maximum child VID must be greater than or equal to minimum child VID" -msgstr "子供 VID の最大数は、子供 VID の最小値以上でなければなりません" +msgstr "最大子 VID は、最小子VID の値以上でなければなりません" #: ipam/models/vlans.py:145 msgid "The specific site to which this VLAN is assigned (if any)" -msgstr "この VLAN が割り当てられている特定のサイト (存在する場合)" +msgstr "この VLAN が割り当てられているサイト (存在する場合)" #: ipam/models/vlans.py:153 msgid "VLAN group (optional)" @@ -8943,7 +8939,7 @@ msgid "The primary function of this VLAN" msgstr "この VLAN の主な機能" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: ipam/views.py:957 netbox/navigation/menu.py:180 #: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "VLAN" @@ -8953,24 +8949,24 @@ msgstr "VLAN" msgid "" "VLAN is assigned to group {group} (scope: {scope}); cannot also assign to " "site {site}." -msgstr "VLANはグループに割り当てられています {group} (スコープ: {scope}); サイトへの割り当てもできません {site}。" +msgstr "VLANはグループ{group}に割り当てられています (スコープ: {scope}) サイト{site}への割り当てはできません 。" #: ipam/models/vlans.py:238 #, python-brace-format msgid "VID must be between {minimum} and {maximum} for VLANs in group {group}" -msgstr "VID はその間にある必要があります {minimum} そして {maximum} グループ内の VLAN 用 {group}" +msgstr "グループ{group}内の VLANにおいて、VID は{minimum}から{maximum}の間である必要があります" #: ipam/models/vrfs.py:30 msgid "route distinguisher" -msgstr "ルート識別子" +msgstr "ルート識別子(RD)" #: ipam/models/vrfs.py:31 msgid "Unique route distinguisher (as defined in RFC 4364)" -msgstr "一意のルート識別子 (RFC 4364 で定義されているとおり)" +msgstr "一意のルート識別子 (RFC 4364 におけるRoute Distinguisher)" #: ipam/models/vrfs.py:42 msgid "enforce unique space" -msgstr "ユニークな空間を強制" +msgstr "重複を禁止する" #: ipam/models/vrfs.py:43 msgid "Prevent duplicate prefixes/IP addresses within this VRF" @@ -8995,7 +8991,7 @@ msgstr "ルートターゲット" #: ipam/tables/asn.py:52 msgid "ASDOT" -msgstr "アズドット" +msgstr "ASDOT" #: ipam/tables/asn.py:57 msgid "Site Count" @@ -9008,14 +9004,14 @@ msgstr "プロバイダ数" #: ipam/tables/ip.py:94 netbox/navigation/menu.py:166 #: netbox/navigation/menu.py:168 msgid "Aggregates" -msgstr "アグリゲート" +msgstr "集約" #: ipam/tables/ip.py:124 msgid "Added" -msgstr "追加しました" +msgstr "追加日" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: ipam/views.py:348 netbox/navigation/menu.py:152 #: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "プレフィックス" @@ -9037,7 +9033,7 @@ msgstr "プレフィックス (フラット)" #: ipam/tables/ip.py:224 msgid "Depth" -msgstr "奥行き" +msgstr "階層" #: ipam/tables/ip.py:261 msgid "Pool" @@ -9045,7 +9041,7 @@ msgstr "プール" #: ipam/tables/ip.py:264 ipam/tables/ip.py:317 msgid "Marked Utilized" -msgstr "「使用済み」とマークされています" +msgstr "使用済み" #: ipam/tables/ip.py:301 msgid "Start address" @@ -9061,7 +9057,7 @@ msgstr "NAT (アウトサイド)" #: ipam/tables/ip.py:389 msgid "Assigned" -msgstr "割り当て済み" +msgstr "割当済み" #: ipam/tables/ip.py:424 templates/vpn/l2vpntermination.html:16 #: vpn/forms/filtersets.py:240 @@ -9075,11 +9071,11 @@ msgstr "スコープタイプ" #: ipam/tables/vlans.py:107 ipam/tables/vlans.py:210 #: templates/dcim/inc/interface_vlans_table.html:4 msgid "VID" -msgstr "ヴィド" +msgstr "VID" #: ipam/tables/vrfs.py:30 msgid "RD" -msgstr "赤" +msgstr "RD" #: ipam/tables/vrfs.py:33 msgid "Unique" @@ -9096,41 +9092,41 @@ msgstr "エクスポートターゲット" #: ipam/validators.py:9 #, python-brace-format msgid "{prefix} is not a valid prefix. Did you mean {suggested}?" -msgstr "{prefix} は有効なプレフィックスではありません。もしかして? {suggested}?" +msgstr "{prefix} は有効なプレフィックスではありません。もしかして{suggested}?" #: ipam/validators.py:16 #, python-format msgid "The prefix length must be less than or equal to %(limit_value)s." -msgstr "プレフィックスの長さは以下でなければなりません %(limit_value)s。" +msgstr "プレフィックス長は%(limit_value)s以下でなければなりません 。" #: ipam/validators.py:24 #, python-format msgid "The prefix length must be greater than or equal to %(limit_value)s." -msgstr "プレフィックス長は以下以上でなければなりません %(limit_value)s。" +msgstr "プレフィックス長は%(limit_value)s以上でなければなりません 。" #: ipam/validators.py:33 msgid "" "Only alphanumeric characters, asterisks, hyphens, periods, and underscores " "are allowed in DNS names" -msgstr "DNS 名に使用できるのは、英数字、アスタリスク、ハイフン、ピリオド、およびアンダースコアのみです。" +msgstr "DNS 名に使用できるのは、英数字、アスタリスク、ハイフン、ピリオド、アンダースコアのみです。" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "子プレフィックス" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "子レンジ" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "関連IPアドレス" -#: ipam/views.py:1115 +#: ipam/views.py:1112 msgid "Device Interfaces" msgstr "デバイスインタフェース" -#: ipam/views.py:1133 +#: ipam/views.py:1129 msgid "VM Interfaces" msgstr "VM インタフェース" @@ -9142,7 +9138,7 @@ msgstr "このフィールドは空白であってはなりません。" msgid "" "Value must be passed directly (e.g. \"foo\": 123); do not use a dictionary " "or list." -msgstr "値は直接渡す必要があります (例:「foo」: 123)。辞書やリストは使用しないでください。" +msgstr "値は直接渡す必要があります (例: \"foo\": 123)。辞書やリストは使用しないでください。" #: netbox/api/fields.py:89 #, python-brace-format @@ -9152,16 +9148,16 @@ msgstr "{value} は有効な選択肢ではありません。" #: netbox/api/fields.py:102 #, python-brace-format msgid "Invalid content type: {content_type}" -msgstr "コンテンツタイプが無効です: {content_type}" +msgstr "コンテントタイプが無効です: {content_type}" #: netbox/api/fields.py:103 msgid "Invalid value. Specify a content type as '.'." -msgstr "値が無効です。コンテンツタイプを 'として指定してください'。" +msgstr "値が無効です。コンテントタイプを '.'として指定してください。" #: netbox/authentication/__init__.py:138 #, python-brace-format msgid "Invalid permission {permission} for model {model}" -msgstr "権限が無効です {permission} モデル用 {model}" +msgstr "モデル{model}において権限{permission}が無効です " #: netbox/choices.py:49 msgid "Dark Red" @@ -9225,7 +9221,7 @@ msgstr "ダークグレー" #: netbox/choices.py:131 msgid "Direct" -msgstr "ダイレクト" +msgstr "直接" #: netbox/choices.py:132 msgid "Upload" @@ -9237,7 +9233,7 @@ msgstr "自動検出" #: netbox/choices.py:159 msgid "Comma" -msgstr "コンマ" +msgstr "カンマ" #: netbox/choices.py:160 msgid "Semicolon" @@ -9286,7 +9282,7 @@ msgstr "各ページの下部に表示する追加コンテンツ" #: netbox/config/parameters.py:68 msgid "Globally unique IP space" -msgstr "グローバルに唯一無二のIPスペース" +msgstr "グローバルに一意なIP空間" #: netbox/config/parameters.py:70 msgid "Enforce unique IP addressing within the global table" @@ -9306,7 +9302,7 @@ msgstr "ラックユニットの高さ" #: netbox/config/parameters.py:86 msgid "Default unit height for rendered rack elevations" -msgstr "レンダリングされたラック高さのデフォルト単位高さ" +msgstr "ラック図を描画する際の、ユニットの高さのデフォルト値" #: netbox/config/parameters.py:91 msgid "Rack unit width" @@ -9314,7 +9310,7 @@ msgstr "ラックユニット幅" #: netbox/config/parameters.py:93 msgid "Default unit width for rendered rack elevations" -msgstr "レンダリングされたラック高さのデフォルト単位幅" +msgstr "ラック図を描画する際の、ユニットの幅のデフォルト値" #: netbox/config/parameters.py:100 msgid "Powerfeed voltage" @@ -9350,7 +9346,7 @@ msgstr "ユーザ提供コンテンツの URL に許可されているスキー #: netbox/config/parameters.py:136 msgid "Default page size" -msgstr "既定のページサイズ" +msgstr "デフォルトページサイズ" #: netbox/config/parameters.py:142 msgid "Maximum page size" @@ -9358,7 +9354,7 @@ msgstr "最大ページサイズ" #: netbox/config/parameters.py:150 templates/core/inc/config_data.html:96 msgid "Custom validators" -msgstr "カスタムバリデーター" +msgstr "カスタムバリデータ" #: netbox/config/parameters.py:152 msgid "Custom validation rules (JSON)" @@ -9366,7 +9362,7 @@ msgstr "カスタム検証ルール (JSON)" #: netbox/config/parameters.py:160 templates/core/inc/config_data.html:104 msgid "Protection rules" -msgstr "保護規則" +msgstr "保護ルール" #: netbox/config/parameters.py:162 msgid "Deletion protection rules (JSON)" @@ -9390,7 +9386,7 @@ msgstr "メンテナンスモードを有効にする" #: netbox/config/parameters.py:188 templates/core/inc/config_data.html:133 msgid "GraphQL enabled" -msgstr "GraphQL 対応" +msgstr "GraphQLの有効化" #: netbox/config/parameters.py:190 msgid "Enable the GraphQL API" @@ -9402,7 +9398,7 @@ msgstr "変更履歴の保存" #: netbox/config/parameters.py:197 msgid "Days to retain changelog history (set to zero for unlimited)" -msgstr "変更履歴の保存日数 (無制限の場合はゼロに設定)" +msgstr "変更履歴の保存日数 (無制限の場合は0)" #: netbox/config/parameters.py:202 msgid "Job result retention" @@ -9410,7 +9406,7 @@ msgstr "ジョブ結果の保存" #: netbox/config/parameters.py:204 msgid "Days to retain job result history (set to zero for unlimited)" -msgstr "ジョブの結果履歴を保存する日数 (無制限の場合はゼロに設定)" +msgstr "ジョブの結果履歴を保存する日数 (無制限の場合は0)" #: netbox/config/parameters.py:209 templates/core/inc/config_data.html:145 msgid "Maps URL" @@ -9456,27 +9452,27 @@ msgstr "タグを追加" #: netbox/forms/base.py:123 msgid "Remove tags" -msgstr "タグを削除する" +msgstr "タグを削除" #: netbox/forms/mixins.py:38 #, python-brace-format msgid "{class_name} must specify a model class." -msgstr "{class_name} モデルクラスを指定する必要があります。" +msgstr "{class_name} はモデルクラスを指定する必要があります。" #: netbox/models/features.py:277 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." -msgstr "不明なフィールド名 '{name}'はカスタムフィールドデータにあります。" +msgstr "カスタムフィールドデータに、不明なフィールド名 '{name}'が存在します。" #: netbox/models/features.py:283 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" -msgstr "カスタムフィールド 'の値が無効です{name}': {error}" +msgstr "カスタムフィールドの値が無効です。'{name}': {error}" #: netbox/models/features.py:290 #, python-brace-format msgid "Missing required custom field '{name}'." -msgstr "必須カスタムフィールド 'が見つかりません{name}'。" +msgstr "必須カスタムフィールド'{name}'が見つかりません。" #: netbox/models/features.py:441 msgid "Remote data source" @@ -9500,12 +9496,12 @@ msgstr "データファイルの更新時にデータの自動同期を有効に #: netbox/models/features.py:463 msgid "date synced" -msgstr "日付が同期されました" +msgstr "同期日付" #: netbox/models/features.py:557 #, python-brace-format msgid "{class_name} must implement a sync_data() method." -msgstr "{class_name} sync_data () メソッドを実装する必要があります。" +msgstr "{class_name} はsync_data () メソッドを実装する必要があります。" #: netbox/navigation/menu.py:11 msgid "Organization" @@ -9635,15 +9631,15 @@ msgstr "L2 VPN" #: netbox/navigation/menu.py:213 templates/vpn/l2vpn.html:56 #: templates/vpn/tunnel.html:72 vpn/tables/tunnels.py:58 msgid "Terminations" -msgstr "ターミネーション" +msgstr "終端" #: netbox/navigation/menu.py:219 msgid "IKE Proposals" -msgstr "IKEの提案" +msgstr "IKEプロポザール" #: netbox/navigation/menu.py:220 templates/vpn/ikeproposal.html:41 msgid "IKE Policies" -msgstr "IKE ポリシー" +msgstr "IKE ポリシ" #: netbox/navigation/menu.py:221 msgid "IPSec Proposals" @@ -9651,7 +9647,7 @@ msgstr "IPsec プロポーザル" #: netbox/navigation/menu.py:222 templates/vpn/ipsecproposal.html:37 msgid "IPSec Policies" -msgstr "IPsec ポリシー" +msgstr "IPsec ポリシ" #: netbox/navigation/menu.py:223 templates/vpn/ikepolicy.html:38 #: templates/vpn/ipsecpolicy.html:25 @@ -9666,7 +9662,7 @@ msgstr "仮想化" #: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 -#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 +#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388 msgid "Virtual Disks" msgstr "仮想ディスク" @@ -9726,7 +9722,7 @@ msgstr "カスタムフィールド" #: netbox/navigation/menu.py:310 msgid "Custom Field Choices" -msgstr "カスタムフィールド選択" +msgstr "カスタムフィールド選択肢" #: netbox/navigation/menu.py:311 msgid "Custom Links" @@ -9734,11 +9730,11 @@ msgstr "カスタムリンク" #: netbox/navigation/menu.py:312 msgid "Export Templates" -msgstr "テンプレートをエクスポート" +msgstr "エクスポートテンプレート" #: netbox/navigation/menu.py:313 msgid "Saved Filters" -msgstr "保存済みフィルター" +msgstr "保存済みフィルタ" #: netbox/navigation/menu.py:315 msgid "Image Attachments" @@ -9788,44 +9784,44 @@ msgid "Admin" msgstr "管理者" #: netbox/navigation/menu.py:373 templates/users/group.html:29 -#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 -#: users/forms/model_forms.py:300 users/tables.py:102 +#: users/forms/model_forms.py:233 users/forms/model_forms.py:245 +#: users/forms/model_forms.py:297 users/tables.py:102 msgid "Users" msgstr "ユーザ" -#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 -#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182 +#: users/forms/model_forms.py:194 users/forms/model_forms.py:302 #: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "グループ" -#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: netbox/navigation/menu.py:413 templates/account/base.html:21 #: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "API トークン" -#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 -#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 -#: users/forms/model_forms.py:249 +#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188 +#: users/forms/model_forms.py:196 users/forms/model_forms.py:239 +#: users/forms/model_forms.py:246 msgid "Permissions" -msgstr "パーミッション" +msgstr "権限" -#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432 #: templates/core/system.html:7 msgid "System" msgstr "システム" -#: netbox/navigation/menu.py:432 +#: netbox/navigation/menu.py:437 msgid "Configuration History" msgstr "設定履歴" -#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8 #: templates/core/rq_task_list.html:22 msgid "Background Tasks" msgstr "バックグラウンドタスク" -#: netbox/navigation/menu.py:475 templates/500.html:35 -#: templates/account/preferences.html:22 templates/core/system.html:76 +#: netbox/navigation/menu.py:482 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:80 msgid "Plugins" msgstr "プラグイン" @@ -9839,14 +9835,14 @@ msgstr "ボタンはタプルまたはリストとして渡す必要がありま #: netbox/plugins/navigation.py:73 msgid "Button color must be a choice within ButtonColorChoices." -msgstr "ボタンの色はButtonColorChoices内で選択する必要があります。" +msgstr "ボタンの色はButtonColorChoicesから選択する必要があります。" #: netbox/plugins/registration.py:25 #, python-brace-format msgid "" "PluginTemplateExtension class {template_extension} was passed as an " "instance!" -msgstr "プラグインテンプレート拡張クラス {template_extension} インスタンスとして渡されました!" +msgstr "PluginTemplateExtension クラス {template_extension} がインスタンスとして渡されました!" #: netbox/plugins/registration.py:31 #, python-brace-format @@ -9854,7 +9850,7 @@ msgid "" "{template_extension} is not a subclass of " "netbox.plugins.PluginTemplateExtension!" msgstr "" -"{template_extension} Netbox.plugins.Plugins.PluginTemplate Extension " +"{template_extension} はnetbox.plugins.Plugins.PluginTemplate Extension " "のサブクラスではありません!" #: netbox/plugins/registration.py:37 @@ -9862,26 +9858,26 @@ msgstr "" msgid "" "PluginTemplateExtension class {template_extension} does not define a valid " "model!" -msgstr "プラグインテンプレート拡張クラス {template_extension} 有効なモデルが定義されていません!" +msgstr "PluginTemplateExtension クラス {template_extension}は 有効なモデルが定義されていません!" #: netbox/plugins/registration.py:47 #, python-brace-format msgid "{item} must be an instance of netbox.plugins.PluginMenuItem" -msgstr "{item} netbox.Plugins.PluginMenuItem のインスタンスでなければなりません" +msgstr "{item} はnetbox.Plugins.PluginMenuItem のインスタンスでなければなりません" #: netbox/plugins/registration.py:60 #, python-brace-format msgid "{menu_link} must be an instance of netbox.plugins.PluginMenuItem" -msgstr "{menu_link} netbox.Plugins.PluginMenuItem のインスタンスでなければなりません" +msgstr "{menu_link} はnetbox.plugins.PluginMenuItem のインスタンスでなければなりません" #: netbox/plugins/registration.py:65 #, python-brace-format msgid "{button} must be an instance of netbox.plugins.PluginMenuButton" -msgstr "{button} Netbox.Plugins.Plugin.MenuButton のインスタンスでなければなりません" +msgstr "{button} netbox.plugins.Plugin.MenuButton のインスタンスでなければなりません" #: netbox/plugins/templates.py:35 msgid "extra_context must be a dictionary" -msgstr "エクストラコンテキストはディクショナリでなければなりません" +msgstr "extra_contextはディクショナリでなければなりません" #: netbox/preferences.py:19 msgid "HTMX Navigation" @@ -9891,47 +9887,55 @@ msgstr "HTMX ナビゲーション" msgid "Enable dynamic UI navigation" msgstr "動的 UI ナビゲーションを有効にする" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "実験的機能" + #: netbox/preferences.py:29 msgid "Language" msgstr "言語" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." -msgstr "UI を指定された言語に強制的に翻訳します。" +msgid "Forces UI translation to the specified language" +msgstr "UI を指定された言語に強制的に翻訳します" + +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" +msgstr "翻訳のサポートはローカルで無効になっています" -#: netbox/preferences.py:37 +#: netbox/preferences.py:42 msgid "Page length" msgstr "ページの長さ" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "1 ページに表示するデフォルトのオブジェクト数" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" -msgstr "ページネーターの配置" +msgstr "ページネータの配置" -#: netbox/preferences.py:45 +#: netbox/preferences.py:50 msgid "Bottom" -msgstr "ボトム" +msgstr "下部" -#: netbox/preferences.py:46 +#: netbox/preferences.py:51 msgid "Top" -msgstr "トップ" +msgstr "上部" -#: netbox/preferences.py:47 +#: netbox/preferences.py:52 msgid "Both" msgstr "両方" -#: netbox/preferences.py:50 +#: netbox/preferences.py:55 msgid "Where the paginator controls will be displayed relative to a table" -msgstr "ページネーターコントロールがテーブルを基準にして表示される場所" +msgstr "テーブルを基とした、ページネータが表示される場所" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "データ形式" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "UI 内で汎用データを表示するための推奨構文" @@ -9942,37 +9946,37 @@ msgstr "ストアが無効です: {key}" #: netbox/registry.py:17 msgid "Cannot add stores to registry after initialization" -msgstr "初期化後にストアをレジストリに追加できない" +msgstr "初期化後にストアをレジストリに追加できません" #: netbox/registry.py:20 msgid "Cannot delete stores from registry" msgstr "レジストリからストアを削除できません" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "英語" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "スペイン語" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "フランス語" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "日本語" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "ポルトガル語" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "ロシア語" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "トルコ語" @@ -9986,15 +9990,20 @@ msgstr "ドロップダウンを切り替え" #: netbox/tables/columns.py:552 templates/core/job.html:35 msgid "Error" -msgstr "[エラー]" +msgstr "エラー" + +#: netbox/tables/tables.py:56 +#, python-brace-format +msgid "No {model_name} found" +msgstr "いいえ {model_name} 見つけた" -#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 +#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117 msgid "Field" msgstr "フィールド" -#: netbox/tables/tables.py:248 +#: netbox/tables/tables.py:249 msgid "Value" -msgstr "価値" +msgstr "値" #: netbox/tests/dummy_plugin/navigation.py:29 msgid "Dummy Plugin" @@ -10003,7 +10012,7 @@ msgstr "ダミープラグイン" #: netbox/views/generic/bulk_views.py:405 #, python-brace-format msgid "Row {i}: Object with ID {id} does not exist" -msgstr "行 {i}: ID を持つオブジェクト {id} 存在しない" +msgstr "行 {i}: ID {id}のオブジェクトは存在しません" #: netbox/views/generic/feature_views.py:38 msgid "Changelog" @@ -10013,16 +10022,16 @@ msgstr "変更ログ" msgid "Journal" msgstr "ジャーナル" -#: netbox/views/generic/object_views.py:105 +#: netbox/views/generic/object_views.py:106 #, python-brace-format msgid "{class_name} must implement get_children()" -msgstr "{class_name} get_children () を実装する必要があります" +msgstr "{class_name} はget_children () を実装する必要があります" #: netbox/views/misc.py:43 msgid "" "There was an error loading the dashboard configuration. A default dashboard " "is in use." -msgstr "ダッシュボードの設定をロード中にエラーが発生しました。既定のダッシュボードが使用中です。" +msgstr "ダッシュボード設定の読込中にエラーが発生しました。デフォルトのダッシュボードが使用中です。" #: templates/403.html:4 msgid "Access Denied" @@ -10042,7 +10051,7 @@ msgstr "要求されたページは存在しません" #: templates/500.html:7 templates/500.html:18 msgid "Server Error" -msgstr "サーバーエラー" +msgstr "サーバエラー" #: templates/500.html:23 msgid "There was a problem with your request. Please contact an administrator" @@ -10050,23 +10059,23 @@ msgstr "リクエストに問題がありました。管理者に問い合わせ #: templates/500.html:28 msgid "The complete exception is provided below" -msgstr "完全な例外は以下のとおりです。" +msgstr "The complete exception is provided below" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" -msgstr "パイソンバージョン" +msgstr "Python version" #: templates/500.html:34 templates/core/system.html:31 msgid "NetBox version" -msgstr "ネットボックスバージョン" +msgstr "NetBox version" #: templates/500.html:36 msgid "None installed" -msgstr "取付なし" +msgstr "None installed" #: templates/500.html:39 msgid "If further assistance is required, please post to the" -msgstr "さらにサポートが必要な場合は、次のアドレスに投稿してください" +msgstr "さらにサポートが必要な場合は、以下サイトに投稿してください。" #: templates/500.html:39 msgid "NetBox discussion forum" @@ -10074,11 +10083,11 @@ msgstr "NetBox ディスカッションフォーラム" #: templates/500.html:39 msgid "on GitHub" -msgstr "GitHub で" +msgstr "(GitHub)" #: templates/500.html:42 templates/base/40x.html:17 msgid "Home Page" -msgstr "[ホームページ]" +msgstr "ホームページ" #: templates/account/base.html:7 templates/inc/user_menu.html:27 #: vpn/forms/bulk_edit.py:255 vpn/forms/filtersets.py:189 @@ -10107,7 +10116,7 @@ msgstr "パスワードを変更" #: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63 #: templates/generic/confirmation_form.html:19 #: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 -#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 +#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "キャンセル" @@ -10127,7 +10136,7 @@ msgstr "保存" #: templates/account/preferences.html:34 msgid "Table Configurations" -msgstr "テーブル構成" +msgstr "テーブル設定" #: templates/account/preferences.html:39 msgid "Clear table preferences" @@ -10135,7 +10144,7 @@ msgstr "テーブル設定をクリア" #: templates/account/preferences.html:47 msgid "Toggle All" -msgstr "[すべて切り替え]" +msgstr "すべて切り替え" #: templates/account/preferences.html:49 msgid "Table" @@ -10150,7 +10159,7 @@ msgid "Columns" msgstr "コラム" #: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 -#: templates/extras/object_configcontext.html:55 +#: templates/extras/object_configcontext.html:43 msgid "None found" msgstr "何も見つかりませんでした" @@ -10165,11 +10174,11 @@ msgstr "アカウント詳細" #: templates/account/profile.html:29 templates/tenancy/contact.html:43 #: templates/users/user.html:25 tenancy/forms/bulk_edit.py:109 msgid "Email" -msgstr "電子メール" +msgstr "メール" #: templates/account/profile.html:33 templates/users/user.html:29 msgid "Account Created" -msgstr "アカウントが作成されました" +msgstr "アカウント作成日時" #: templates/account/profile.html:37 templates/users/user.html:33 msgid "Last Login" @@ -10198,7 +10207,6 @@ msgstr "割当グループ" #: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 #: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 #: templates/extras/htmx/script_result.html:56 -#: templates/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:123 #: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 #: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 @@ -10208,7 +10216,7 @@ msgstr "割当グループ" #: templates/users/objectpermission.html:87 templates/users/user.html:58 #: templates/users/user.html:68 msgid "None" -msgstr "[なし]" +msgstr "なし" #: templates/account/profile.html:68 templates/users/user.html:78 msgid "Recent Activity" @@ -10227,7 +10235,7 @@ msgstr "トークン" #: templates/account/token.html:39 templates/users/token.html:31 #: users/forms/bulk_edit.py:107 msgid "Write enabled" -msgstr "書き込み有効" +msgstr "書き込み可能" #: templates/account/token.html:51 templates/users/token.html:43 msgid "Last used" @@ -10334,11 +10342,11 @@ msgstr "追加" #: templates/dcim/moduletype/component_templates.html:20 #: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 #: templates/generic/object_edit.html:47 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 #: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" -msgstr "[編集]" +msgstr "編集" #: templates/circuits/inc/circuit_termination.html:18 msgid "Swap" @@ -10481,7 +10489,7 @@ msgstr "パラメータが定義されていません" #: templates/core/datasource.html:114 msgid "Files" -msgstr "[ファイル]" +msgstr "ファイル" #: templates/core/inc/config_data.html:7 msgid "Rack elevations" @@ -10619,7 +10627,7 @@ msgstr "キューに入っているジョブ" #, python-format msgid "" "Select all %(count)s %(object_type_plural)s matching query" -msgstr "[選択] すべて %(count)s %(object_type_plural)s マッチングクエリ" +msgstr "選択 すべて %(count)s %(object_type_plural)s マッチングクエリ" #: templates/core/rq_worker.html:10 msgid "Worker Info" @@ -10669,39 +10677,39 @@ msgstr "エクスポート" msgid "System Status" msgstr "システムステータス" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "ジャンゴバージョン" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" -msgstr "PostgreSQL バージョン" - #: templates/core/system.html:43 +msgid "PostgreSQL version" +msgstr "ポスグレ SQL バージョン" + +#: templates/core/system.html:47 msgid "Database name" msgstr "データベース名" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "データベースサイズ" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "ご利用いただけません" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "RQ ワーカー" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "デフォルトキュー" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "システムタイム" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "現在の構成" @@ -10866,7 +10874,7 @@ msgstr "サービスを追加" #: templates/virtualization/virtualmachine/base.html:22 #: templates/virtualization/virtualmachine_list.html:8 msgid "Add Components" -msgstr "[構成要素を追加]" +msgstr "構成要素を追加" #: templates/dcim/device/consoleports.html:24 msgid "Add Console Ports" @@ -10943,7 +10951,7 @@ msgstr "レンダリング設定" #: templates/dcim/device/render_config.html:55 #: templates/virtualization/virtualmachine/render_config.html:55 msgid "Download" -msgstr "[ダウンロード]" +msgstr "ダウンロード" #: templates/dcim/device/render_config.html:61 #: templates/virtualization/virtualmachine/render_config.html:61 @@ -10962,7 +10970,7 @@ msgstr "リジェネレートslug" #: templates/dcim/device_edit.html:49 templates/generic/bulk_remove.html:21 #: utilities/templates/helpers/table_config_form.html:23 msgid "Remove" -msgstr "[削除]" +msgstr "削除" #: templates/dcim/device_edit.html:110 msgid "Local Config Context Data" @@ -10987,7 +10995,7 @@ msgstr "取付済みデバイス" #: templates/dcim/devicebay_depopulate.html:6 #, python-format msgid "Remove %(device)s from %(device_bay)s?" -msgstr "[削除] %(device)s から %(device_bay)s?" +msgstr "削除 %(device)s から %(device_bay)s?" #: templates/dcim/devicebay_depopulate.html:13 #, python-format @@ -11008,7 +11016,7 @@ msgstr "ベイ" #: templates/dcim/devicerole.html:14 templates/dcim/platform.html:17 msgid "Add Device" -msgstr "[デバイスを追加]" +msgstr "デバイスを追加" #: templates/dcim/devicerole.html:40 msgid "VM Role" @@ -11016,7 +11024,7 @@ msgstr "VMのロール" #: templates/dcim/devicetype.html:18 templates/dcim/moduletype.html:18 msgid "Model Name" -msgstr "[モデル名]" +msgstr "モデル名" #: templates/dcim/devicetype.html:25 templates/dcim/moduletype.html:22 msgid "Part Number" @@ -11104,7 +11112,7 @@ msgstr "クリア" #: templates/dcim/inc/interface_vlans_table.html:47 msgid "Clear All" -msgstr "[すべてクリア]" +msgstr "すべてクリア" #: templates/dcim/interface.html:17 msgid "Add Child Interface" @@ -11404,7 +11412,7 @@ msgstr "新しいメンバーを追加" #: templates/dcim/virtualchassis_add_member.html:27 #: templates/generic/object_edit.html:78 #: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:312 +#: users/forms/model_forms.py:309 msgid "Actions" msgstr "アクション" @@ -11551,11 +11559,11 @@ msgstr "環境パラメータ" #: templates/extras/configtemplate.html:67 #: templates/extras/exporttemplate.html:79 msgid "Template" -msgstr "[テンプレート]" +msgstr "テンプレート" #: templates/extras/customfield.html:30 templates/extras/customlink.html:21 msgid "Group Name" -msgstr "[グループ名]" +msgstr "グループ名" #: templates/extras/customfield.html:42 msgid "Cloneable" @@ -11563,7 +11571,7 @@ msgstr "クローン可能" #: templates/extras/customfield.html:52 msgid "Default Value" -msgstr "[既定値]" +msgstr "既定値" #: templates/extras/customfield.html:61 msgid "Search Weight" @@ -11591,11 +11599,11 @@ msgstr "検証ルール" #: templates/extras/customfield.html:106 msgid "Minimum Value" -msgstr "[最小値]" +msgstr "最小値" #: templates/extras/customfield.html:110 msgid "Maximum Value" -msgstr "[最大値]" +msgstr "最大値" #: templates/extras/customfield.html:114 msgid "Regular Expression" @@ -11680,7 +11688,7 @@ msgstr "マイムタイプ" #: templates/extras/exporttemplate.html:27 msgid "File Extension" -msgstr "[ファイル拡張子]" +msgstr "ファイル拡張子" #: templates/extras/htmx/script_result.html:10 msgid "Scheduled for" @@ -11729,19 +11737,11 @@ msgstr "日々" msgid "Indefinite" msgstr "無期限" -#: templates/extras/object_configcontext.html:11 -msgid "Rendered Context" -msgstr "レンダリングされたコンテキスト" - -#: templates/extras/object_configcontext.html:22 -msgid "Local Context" -msgstr "ローカルコンテキスト" - -#: templates/extras/object_configcontext.html:34 +#: templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "ローカル設定コンテキストはすべてのソースコンテキストを上書きします" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "ソースコンテキスト" @@ -11764,7 +11764,7 @@ msgstr "前へ" #: templates/extras/objectchange.html:84 msgid "Next" -msgstr "[次へ]" +msgstr "次へ" #: templates/extras/objectchange.html:92 msgid "Object Created" @@ -11793,7 +11793,7 @@ msgstr "変更後のデータ" #: templates/extras/objectchange.html:153 #, python-format msgid "See All %(count)s Changes" -msgstr "[すべて表示] %(count)s 変更点" +msgstr "すべて表示 %(count)s 変更点" #: templates/extras/report/base.html:30 msgid "Report" @@ -11806,7 +11806,7 @@ msgstr "スクリプトを実行する権限がありません" #: templates/extras/script.html:40 templates/extras/script.html:44 #: templates/extras/script_list.html:88 msgid "Run Script" -msgstr "[スクリプトを実行]" +msgstr "スクリプトを実行" #: templates/extras/script/jobs.html:16 msgid "Script no longer exists in the source file." @@ -11893,7 +11893,7 @@ msgstr "一括作成" #: templates/generic/bulk_add_component.html:34 #: templates/generic/bulk_delete.html:32 templates/generic/bulk_edit.html:33 msgid "Selected Objects" -msgstr "[選択オブジェクト]" +msgstr "選択オブジェクト" #: templates/generic/bulk_add_component.html:58 msgid "to Add" @@ -11939,7 +11939,7 @@ msgstr "直接インポート" #: templates/generic/bulk_import.html:30 msgid "Upload File" -msgstr "[ファイルをアップロード]" +msgstr "ファイルをアップロード" #: templates/generic/bulk_import.html:58 templates/generic/bulk_import.html:80 #: templates/generic/bulk_import.html:102 @@ -11964,7 +11964,7 @@ msgstr "フォーマット:YYYY-MM-DD" #: templates/generic/bulk_import.html:183 msgid "Specify true or false" -msgstr "[真] または [偽] を指定してください" +msgstr "真/偽を指定してください" #: templates/generic/bulk_import.html:195 msgid "Required fields must be specified for all objects." @@ -12067,7 +12067,7 @@ msgid "" "Select all %(count)s " "%(object_type_plural)s matching query" msgstr "" -"[選択] すべて %(count)s " +"選択 すべて %(count)s " "%(object_type_plural)s マッチングクエリ" #: templates/home.html:15 @@ -12118,7 +12118,7 @@ msgstr "このアクションの結果、次のオブジェクトが削除され #: templates/htmx/object_selector.html:5 msgid "Select" -msgstr "[選択]" +msgstr "選択" #: templates/inc/filter_list.html:42 #: utilities/templates/helpers/table_config_form.html:39 @@ -12133,20 +12133,20 @@ msgid "" msgstr "" "追加する前に %(model)s 最初に作成する必要があります %(prerequisite_model)s。" -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "ページ選択" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "表示中 %(start)s-%(end)s の %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "ページネーションオプション" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "1 ページあたり" @@ -12208,17 +12208,17 @@ msgstr "認証キー" msgid "Virtual IP Addresses" msgstr "仮想 IP アドレス" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "IP アドレスを割り当てる" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "一括作成" #: templates/ipam/inc/panels/fhrp_groups.html:10 msgid "Create Group" -msgstr "[グループを作成]" +msgstr "グループを作成" #: templates/ipam/inc/panels/fhrp_groups.html:15 msgid "Assign Group" @@ -12238,7 +12238,7 @@ msgstr "ショー利用可能" #: templates/ipam/inc/toggle_available.html:13 msgid "Show All" -msgstr "[すべて表示]" +msgstr "すべて表示" #: templates/ipam/ipaddress.html:23 templates/ipam/iprange.html:45 #: templates/ipam/prefix.html:24 @@ -12253,11 +12253,11 @@ msgstr "NAT (アウトサイド)" msgid "Assign an IP Address" msgstr "IP アドレスを割り当てる" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "IP アドレスを選択" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "検索結果" @@ -12331,7 +12331,7 @@ msgstr "最大長" #: templates/ipam/rir.html:10 msgid "Add Aggregate" -msgstr "アグリゲートを追加" +msgstr "集約を追加" #: templates/ipam/routetarget.html:38 msgid "Importing VRFs" @@ -12378,11 +12378,11 @@ msgstr "ネットボックスロゴ" msgid "Errors" msgstr "エラー" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "サインイン" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "または" @@ -12500,7 +12500,7 @@ msgstr "許可" msgid "View" msgstr "ビュー" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "制約" @@ -12980,11 +12980,11 @@ msgstr "変更可能" msgid "Can Delete" msgstr "削除可能" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "ユーザインタフェース" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -12993,7 +12993,7 @@ msgstr "" "キーの長さは 40 文字以上でなければなりません。 キーは必ず記録してください。 " "このフォームを送信する前に。トークンが作成されるとアクセスできなくなる可能性があるためです。" -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13002,31 +13002,31 @@ msgstr "" "トークンを使用できる許可された IPv4/IPv6 ネットワーク。制限がない場合は空白のままにしてください。例: " "10.1.1.0/24,192.168.10.16/32,2001: db 8:1:: /64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "パスワードを確認" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "確認のため、以前と同じパスワードを入力します。" -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "パスワードが一致しません!入力内容を確認して、もう一度試してください。" -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "その他のアクション" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "上記以外に付与されたアクション" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" -msgstr "[オブジェクト]" +msgstr "オブジェクト" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13035,11 +13035,11 @@ msgstr "" "許可されたオブジェクトのみを返すクエリセットフィルターの JSON 式。null " "のままにしておくと、このタイプのすべてのオブジェクトに一致します。複数のオブジェクトのリストでは、論理 OR 演算が行われます。" -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "少なくとも 1 つのアクションを選択する必要があります。" -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "のフィルタが無効です {model}: {error}" @@ -13063,7 +13063,7 @@ msgstr "許可" #: users/models/permissions.py:53 users/models/users.py:47 msgid "permissions" -msgstr "許可" +msgstr "権限" #: users/models/preferences.py:30 users/models/preferences.py:31 msgid "user preferences" @@ -13205,11 +13205,7 @@ msgstr "削除できません {objects}。 {count} 依存オブ msgid "More than 50" msgstr "50 個以上" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "カスタムクエリセットはこの検索には使用できません。" - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13218,7 +13214,7 @@ msgstr "" "%s(%r) は無効です。CounterCacheField の to_model パラメータは 'app.model' " "形式の文字列でなければなりません" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " @@ -13445,7 +13441,7 @@ msgstr "未定義" #: utilities/templates/buttons/bookmark.html:9 msgid "Unbookmark" -msgstr "[ブックマーク解除]" +msgstr "ブックマーク解除" #: utilities/templates/buttons/bookmark.html:13 msgid "Bookmark" @@ -13461,7 +13457,7 @@ msgstr "現在のビュー" #: utilities/templates/buttons/export.html:8 msgid "All Data" -msgstr "[すべてのデータ]" +msgstr "すべてのデータ" #: utilities/templates/buttons/export.html:28 msgid "Add export template" @@ -13795,7 +13791,7 @@ msgstr "DSA シグネチャ" #: vpn/choices.py:198 vpn/choices.py:199 vpn/choices.py:200 vpn/choices.py:201 #, python-brace-format msgid "Group {n}" -msgstr "[グループ] {n}" +msgstr "グループ {n}" #: vpn/choices.py:241 msgid "Ethernet Private LAN" diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo index 001c852587a627497f566a86de67ee5aa05637af..8ecc863ff56798bfc6cd54dc8593ce2d5c63da97 100644 GIT binary patch delta 62220 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 delta 62179 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 diff --git a/netbox/translations/pt/LC_MESSAGES/django.po b/netbox/translations/pt/LC_MESSAGES/django.po index 4e480caa8f..ceeef2aa90 100644 --- a/netbox/translations/pt/LC_MESSAGES/django.po +++ b/netbox/translations/pt/LC_MESSAGES/django.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-06 17:40+0000\n" +"POT-Creation-Date: 2024-05-14 13:22+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2024\n" "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n" @@ -24,7 +24,7 @@ msgstr "" #: account/tables.py:27 templates/account/token.html:22 #: templates/users/token.html:17 users/forms/bulk_import.py:39 -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:113 msgid "Key" msgstr "Chave" @@ -56,7 +56,7 @@ msgstr "Usado pela última vez" #: account/tables.py:45 templates/account/token.html:55 #: templates/users/token.html:47 users/forms/bulk_edit.py:122 -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "IPs permitidos" @@ -65,8 +65,8 @@ msgid "Your preferences have been updated." msgstr "Suas preferências foram atualizadas." #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 -#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425 -#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20 +#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429 +#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20 #: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "Planejado" @@ -77,7 +77,7 @@ msgstr "Provisionamento" #: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 #: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 -#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385 #: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 #: ipam/choices.py:154 templates/extras/configcontext.html:25 #: templates/users/user.html:37 users/forms/bulk_edit.py:38 @@ -87,7 +87,7 @@ msgid "Active" msgstr "Ativo" #: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218 -#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24 +#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24 #: virtualization/choices.py:43 msgid "Offline" msgstr "Off-line" @@ -161,8 +161,8 @@ msgstr "Grupo de sites (slug)" #: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 #: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 #: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 -#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 -#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203 #: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 #: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 #: templates/circuits/inc/circuit_termination.html:32 @@ -262,7 +262,7 @@ msgstr "Rescisão A (ID)" #: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 #: netbox/forms/__init__.py:22 netbox/forms/base.py:165 #: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 -#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7 #: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 #: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 #: utilities/forms/forms.py:104 @@ -285,7 +285,7 @@ msgstr "Rede do provedor (ID)" #: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 #: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 #: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 +#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218 #: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 #: templates/circuits/provider.html:23 msgid "ASNs" @@ -449,7 +449,7 @@ msgstr "Cor" #: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:283 extras/tables/tables.py:355 -#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: extras/tables/tables.py:473 netbox/tables/tables.py:237 #: templates/circuits/circuit.html:30 templates/core/datasource.html:38 #: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 #: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 @@ -499,7 +499,7 @@ msgstr "Conta do provedor" #: ipam/forms/bulk_import.py:191 ipam/forms/bulk_import.py:256 #: ipam/forms/bulk_import.py:292 ipam/forms/bulk_import.py:458 #: ipam/forms/filtersets.py:209 ipam/forms/filtersets.py:274 -#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489 +#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501 #: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309 #: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448 #: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227 @@ -515,7 +515,7 @@ msgstr "Conta do provedor" #: templates/virtualization/virtualmachine.html:19 #: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22 #: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70 #: virtualization/forms/bulk_edit.py:118 #: virtualization/forms/bulk_import.py:54 #: virtualization/forms/bulk_import.py:80 @@ -559,7 +559,7 @@ msgstr "Status" #: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 #: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 #: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 #: templates/dcim/device.html:78 templates/dcim/location.html:49 @@ -697,8 +697,8 @@ msgstr "Rede de provedores" #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 #: extras/filtersets.py:488 extras/forms/filtersets.py:329 #: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 -#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430 +#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590 #: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 #: templates/dcim/inc/cable_termination.html:12 #: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26 @@ -737,7 +737,7 @@ msgstr "Contatos" #: dcim/tables/sites.py:85 extras/filtersets.py:455 #: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438 #: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216 -#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463 +#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475 #: ipam/forms/model_forms.py:562 templates/dcim/device.html:17 #: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22 #: templates/dcim/region.html:26 templates/dcim/site.html:30 @@ -757,8 +757,8 @@ msgstr "Região" #: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 #: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 #: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 -#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420 +#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575 #: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 #: virtualization/forms/filtersets.py:138 #: virtualization/forms/model_forms.py:98 @@ -782,8 +782,8 @@ msgstr "Grupo de sites" #: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 #: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 #: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 -#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 -#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527 +#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253 #: virtualization/forms/filtersets.py:45 #: virtualization/forms/filtersets.py:103 #: virtualization/forms/filtersets.py:194 @@ -1188,7 +1188,7 @@ msgstr "Concluído" #: core/choices.py:22 core/choices.py:59 core/constants.py:20 #: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 -#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 +#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "Falhou" @@ -1256,7 +1256,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "Usado apenas para clonagem com HTTP (S)" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:174 +#: templates/account/password.html:11 users/forms/model_forms.py:171 msgid "Password" msgstr "Senha" @@ -1320,8 +1320,8 @@ msgid "Ignore rules" msgstr "Ignorar regras" #: core/forms/filtersets.py:27 core/forms/model_forms.py:97 -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 -#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:154 #: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:18 @@ -1394,8 +1394,8 @@ msgstr "Concluído antes" #: templates/inc/user_menu.html:15 templates/users/token.html:21 #: templates/users/user.html:6 templates/users/user.html:14 #: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 -#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 -#: users/forms/model_forms.py:196 users/tables.py:19 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:156 +#: users/forms/model_forms.py:193 users/tables.py:19 msgid "User" msgstr "Usuário" @@ -1429,7 +1429,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Elevações da cremalheira" -#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: core/forms/model_forms.py:157 dcim/choices.py:1417 #: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 #: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 #: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 @@ -1466,7 +1466,7 @@ msgid "User Preferences" msgstr "Preferências do usuário" #: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 -#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "Diversos" @@ -1541,7 +1541,7 @@ msgid "type" msgstr "tipo" #: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 -#: extras/tables/tables.py:582 templates/core/datasource.html:58 +#: extras/tables/tables.py:577 templates/core/datasource.html:58 msgid "URL" msgstr "URL" @@ -1727,7 +1727,7 @@ msgstr "Última atualização" #: core/tables/jobs.py:10 core/tables/tasks.py:76 #: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 -#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: extras/tables/tables.py:350 netbox/tables/tables.py:187 #: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 #: wireless/tables/wirelesslink.py:16 msgid "ID" @@ -1736,7 +1736,7 @@ msgstr "CARTEIRA DE IDENTIDADE" #: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 #: extras/tables/tables.py:287 extras/tables/tables.py:360 #: extras/tables/tables.py:478 extras/tables/tables.py:509 -#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: extras/tables/tables.py:574 netbox/tables/tables.py:241 #: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 #: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 #: vpn/tables/l2vpn.py:64 @@ -1781,7 +1781,7 @@ msgstr "Trabalhadores" msgid "Host" msgstr "Hospedeiro" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "Porto" @@ -1848,7 +1848,7 @@ msgid "Staging" msgstr "Encenação" #: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223 -#: dcim/choices.py:1426 virtualization/choices.py:23 +#: dcim/choices.py:1430 virtualization/choices.py:23 #: virtualization/choices.py:48 msgid "Decommissioning" msgstr "Descomissionamento" @@ -1908,7 +1908,7 @@ msgstr "Obsoleto" msgid "Millimeters" msgstr "Milímetros" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "Polegadas" @@ -1983,7 +1983,7 @@ msgstr "Da direita para a esquerda" msgid "Side to rear" msgstr "De lado para trás" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "Passivo" @@ -2011,8 +2011,8 @@ msgstr "Internacional/ITA" msgid "Proprietary" msgstr "Proprietário" -#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 -#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 +#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141 +#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350 #: netbox/navigation/menu.py:187 msgid "Other" msgstr "Outros" @@ -2025,22 +2025,22 @@ msgstr "ITA/Internacional" msgid "Physical" msgstr "Físico" -#: dcim/choices.py:795 dcim/choices.py:952 +#: dcim/choices.py:795 dcim/choices.py:954 msgid "Virtual" msgstr "Virtual" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408 #: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 #: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 #: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "Sem fio" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "Interfaces virtuais" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303 #: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 #: dcim/tables/devices.py:656 templates/dcim/interface.html:106 #: templates/virtualization/vminterface.html:43 @@ -2050,152 +2050,152 @@ msgstr "Interfaces virtuais" msgid "Bridge" msgstr "Ponte" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "Grupo de agregação de links (LAG)" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "Ethernet (fixa)" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "Ethernet (modular)" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "Ethernet (painel traseiro)" -#: dcim/choices.py:1036 +#: dcim/choices.py:1040 msgid "Cellular" msgstr "Celular" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/choices.py:1090 dcim/forms/filtersets.py:303 #: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 #: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 #: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "Serial" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "Coaxial" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "Empilhamento" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "Metade" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "Completo" -#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 +#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "Automático" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "Acesso" -#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 +#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 #: templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Marcado" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "Marcado (Todos)" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "Padrão IEEE" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "24V passivo (2 pares)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "24V passivo (4 pares)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "48V passivo (2 pares)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "48V passivo (4 pares)" -#: dcim/choices.py:1288 dcim/choices.py:1384 +#: dcim/choices.py:1292 dcim/choices.py:1388 msgid "Copper" msgstr "Cobre" -#: dcim/choices.py:1311 +#: dcim/choices.py:1315 msgid "Fiber Optic" msgstr "Fibra óptica" -#: dcim/choices.py:1400 +#: dcim/choices.py:1404 msgid "Fiber" msgstr "Fibra" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 +#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "Conectado" -#: dcim/choices.py:1443 +#: dcim/choices.py:1447 msgid "Kilometers" msgstr "Quilômetros" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Metros" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "Centímetros" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "Miles" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Pés" -#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: dcim/choices.py:1467 templates/dcim/device.html:319 #: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "Quilogramas" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "Gramas" -#: dcim/choices.py:1465 templates/dcim/rack.html:153 +#: dcim/choices.py:1469 templates/dcim/rack.html:153 msgid "Pounds" msgstr "Libras" -#: dcim/choices.py:1466 +#: dcim/choices.py:1470 msgid "Ounces" msgstr "Onças" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "Primário" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "Redundante" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "Fase única" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "Trifásico" @@ -2566,7 +2566,7 @@ msgstr "L2VPN (ID)" #: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 #: dcim/tables/devices.py:566 ipam/filtersets.py:1022 -#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133 #: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 #: templates/vpn/l2vpntermination.html:12 #: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 @@ -2655,7 +2655,7 @@ msgid "Power panel (ID)" msgstr "Painel de alimentação (ID)" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495 #: netbox/forms/base.py:84 netbox/forms/mixins.py:81 #: netbox/tables/columns.py:458 #: templates/circuits/inc/circuit_termination.html:118 @@ -2744,7 +2744,7 @@ msgstr "Fuso horário" #: ipam/forms/bulk_import.py:196 ipam/forms/bulk_import.py:261 #: ipam/forms/bulk_import.py:297 ipam/forms/bulk_import.py:463 #: ipam/forms/filtersets.py:236 ipam/forms/filtersets.py:282 -#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497 +#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509 #: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219 #: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680 #: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363 @@ -2857,7 +2857,7 @@ msgstr "Unidade de peso" #: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 #: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 #: dcim/tables/power.py:70 dcim/tables/racks.py:148 -#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434 +#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435 #: ipam/forms/model_forms.py:601 templates/dcim/device.html:29 #: templates/dcim/inc/cable_termination.html:16 #: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 @@ -3008,7 +3008,7 @@ msgstr "Plataforma" #: dcim/tables/devices.py:862 dcim/tables/devices.py:914 #: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 #: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551 #: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 #: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 #: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 @@ -3208,7 +3208,7 @@ msgid "Mode" msgstr "Modo" #: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498 #: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 #: virtualization/forms/model_forms.py:321 msgid "VLAN group" @@ -3405,6 +3405,7 @@ msgstr "Chassi virtual" #: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 #: dcim/tables/devices.py:207 extras/filtersets.py:548 #: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452 #: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 #: templates/virtualization/cluster.html:10 #: templates/virtualization/virtualmachine.html:88 @@ -3826,7 +3827,7 @@ msgstr "Conexão" #: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 #: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 -#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: extras/forms/model_forms.py:551 extras/tables/tables.py:512 #: templates/extras/journalentry.html:30 msgid "Kind" msgstr "Gentil" @@ -5715,7 +5716,7 @@ msgstr "Acessível" #: extras/tables/tables.py:435 netbox/navigation/menu.py:56 #: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62 #: virtualization/forms/model_forms.py:122 -#: virtualization/tables/clusters.py:83 virtualization/views.py:211 +#: virtualization/tables/clusters.py:83 virtualization/views.py:210 msgid "Devices" msgstr "Dispositivos" @@ -5725,7 +5726,7 @@ msgid "VMs" msgstr "VMs" #: dcim/tables/devices.py:105 dcim/tables/devices.py:221 -#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:14 #: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 @@ -5793,8 +5794,8 @@ msgid "Power outlets" msgstr "Tomadas elétricas" #: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 -#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245 +#: dcim/views.py:1931 netbox/navigation/menu.py:81 #: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 @@ -5802,7 +5803,7 @@ msgstr "Tomadas elétricas" #: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "Interfaces" @@ -5849,7 +5850,7 @@ msgid "Allocated draw (W)" msgstr "Sorteio alocado (W)" #: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 -#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 +#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690 #: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 #: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 #: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 @@ -5881,7 +5882,7 @@ msgid "VDCs" msgstr "VDCs" #: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024 #: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 #: templates/dcim/inc/panels/inventory_items.html:6 @@ -5924,7 +5925,7 @@ msgid "Module Types" msgstr "Tipos de módulo" #: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 -#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: extras/forms/model_forms.py:413 extras/tables/tables.py:430 #: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "Plataformas" @@ -5945,60 +5946,60 @@ msgstr "Altura U" msgid "Instances" msgstr "Instâncias" -#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 -#: dcim/views.py:1869 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185 +#: dcim/views.py:1871 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "Portas de console" -#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 -#: dcim/views.py:1884 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200 +#: dcim/views.py:1886 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "Portas do servidor de console" -#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 -#: dcim/views.py:1899 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215 +#: dcim/views.py:1901 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "Portas de alimentação" -#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 -#: dcim/views.py:1914 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230 +#: dcim/views.py:1916 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "Tomadas elétricas" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 -#: dcim/views.py:1950 netbox/navigation/menu.py:82 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260 +#: dcim/views.py:1952 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "Portas frontais" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 -#: dcim/views.py:1965 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275 +#: dcim/views.py:1967 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "Portas traseiras" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005 #: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "Compartimentos de dispositivos" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986 #: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" @@ -6044,42 +6045,48 @@ msgid "Max Weight" msgstr "Peso máximo" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393 #: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 #: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 #: netbox/navigation/menu.py:17 msgid "Sites" msgstr "Sites" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "O caso de teste deve definir peer_termination_type" -#: dcim/views.py:135 +#: dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "Desconectado {count} {type}" -#: dcim/views.py:696 netbox/navigation/menu.py:28 +#: dcim/views.py:698 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "Reservas" -#: dcim/views.py:714 templates/dcim/location.html:90 +#: dcim/views.py:716 templates/dcim/location.html:90 #: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "Dispositivos sem rack" -#: dcim/views.py:2035 extras/forms/model_forms.py:456 +#: dcim/views.py:2037 extras/forms/model_forms.py:453 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:407 msgid "Config Context" msgstr "Contexto de configuração" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "Configuração de renderização" -#: dcim/views.py:2970 ipam/tables/ip.py:233 +#: dcim/views.py:2097 extras/tables/tables.py:440 +#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236 +#: virtualization/views.py:185 +msgid "Virtual Machines" +msgstr "Máquinas virtuais" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "Crianças" @@ -6248,7 +6255,7 @@ msgstr "30 dias" #: templates/extras/eventrule.html:40 #: templates/generic/bulk_add_component.html:68 #: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 msgid "Create" msgstr "Criar" @@ -6324,11 +6331,11 @@ msgid "White" msgstr "Branco" #: extras/choices.py:320 extras/forms/model_forms.py:242 -#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 +#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10 msgid "Webhook" msgstr "Webhook" -#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: extras/choices.py:321 extras/forms/model_forms.py:312 #: templates/extras/script/base.html:29 msgid "Script" msgstr "Roteiro" @@ -6486,7 +6493,8 @@ msgid "Cluster type (slug)" msgstr "Tipo de cluster (slug)" #: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 -#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 +#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615 +#: virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "Grupo de clusters" @@ -6504,7 +6512,7 @@ msgstr "Grupo de inquilinos" msgid "Tenant group (slug)" msgstr "Grupo de inquilinos (lesma)" -#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: extras/filtersets.py:575 extras/forms/model_forms.py:371 #: templates/extras/tag.html:11 msgid "Tag" msgstr "Tag" @@ -6623,7 +6631,7 @@ msgstr "Está ativo" #: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 #: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 #: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 -#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273 msgid "Object types" msgstr "Tipos de objetos" @@ -6726,9 +6734,8 @@ msgid "Choices" msgstr "Escolhas" #: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 -#: templates/core/job.html:78 templates/extras/configcontext.html:82 -#: templates/extras/eventrule.html:90 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448 +#: templates/core/job.html:78 templates/extras/eventrule.html:90 msgid "Data" msgstr "Dados" @@ -6771,7 +6778,7 @@ msgstr "Exclusões de objetos" msgid "Job starts" msgstr "Início do trabalho" -#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297 msgid "Job terminations" msgstr "Rescisões de trabalho" @@ -6783,44 +6790,44 @@ msgstr "Tipo de objeto marcado" msgid "Allowed object type" msgstr "Tipo de objeto permitido" -#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383 #: netbox/navigation/menu.py:18 msgid "Regions" msgstr "Regiões" -#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388 msgid "Site groups" msgstr "Grupos de sites" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398 #: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "Localizações" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403 msgid "Device types" msgstr "Tipos de dispositivos" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408 msgid "Roles" msgstr "Funções" -#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418 msgid "Cluster types" msgstr "Tipos de cluster" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423 msgid "Cluster groups" msgstr "Grupos de clusters" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428 #: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 #: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "Clusters" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433 msgid "Tenant groups" msgstr "Grupos de inquilinos" @@ -6838,7 +6845,7 @@ msgstr "Antes" msgid "Time" msgstr "Tempo" -#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282 #: extras/tables/tables.py:470 templates/extras/eventrule.html:77 #: templates/extras/objectchange.html:45 msgid "Action" @@ -6910,7 +6917,7 @@ msgstr "" "Código do modelo Jinja2 para o URL do link. Faça referência ao objeto como " "{example}." -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500 msgid "Template code" msgstr "Código do modelo" @@ -6922,13 +6929,13 @@ msgstr "Modelo de exportação" msgid "Rendering" msgstr "Renderização" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "" "O conteúdo do modelo é preenchido a partir da fonte remota selecionada " "abaixo." -#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "Deve especificar o conteúdo local ou um arquivo de dados" @@ -6969,44 +6976,44 @@ msgstr "Regra do evento" msgid "Conditions" msgstr "Condições" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "Criações" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "Atualizações" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "Exclusões" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "Execuções de empregos" -#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 +#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "Inquilinos" -#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321 #: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 #: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:314 +#: users/forms/model_forms.py:311 msgid "Assignment" msgstr "Atribuição" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "Os dados são preenchidos a partir da fonte remota selecionada abaixo." -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "Deve especificar dados locais ou um arquivo de dados" -#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:55 msgid "Content" msgstr "Conteúdo" @@ -7995,11 +8002,6 @@ msgstr "Fim do trabalho" msgid "Device Roles" msgstr "Funções do dispositivo" -#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 -#: netbox/navigation/menu.py:236 virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "Máquinas virtuais" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -8018,19 +8020,13 @@ msgid "Line" msgstr "Linha" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "Nível" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "Mensagem" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "Nenhum resultado encontrado" - #: extras/tables/tables.py:564 msgid "Method" msgstr "Método" @@ -8404,7 +8400,7 @@ msgstr "Nome DNS" #: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 #: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 -#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22 #: templates/ipam/inc/panels/fhrp_groups.html:24 #: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19 msgid "Protocol" @@ -8653,20 +8649,20 @@ msgstr "Atribuído a uma interface" msgid "DNS Name" msgstr "Nome do DNS" -#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513 #: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "ID DA VLAN" -#: ipam/forms/filtersets.py:440 +#: ipam/forms/filtersets.py:441 msgid "Minimum VID" msgstr "VID mínimo" -#: ipam/forms/filtersets.py:446 +#: ipam/forms/filtersets.py:447 msgid "Maximum VID" msgstr "VID máximo" -#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318 #: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 #: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 #: templates/virtualization/virtualmachine.html:12 @@ -9007,9 +9003,9 @@ msgstr "As máscaras de endereço IP inicial e final devem corresponder" #: ipam/models/ip.py:577 #, python-brace-format msgid "" -"Ending address must be lower than the starting address ({start_address})" +"Ending address must be greater than the starting address ({start_address})" msgstr "" -"O endereço final deve ser menor que o endereço inicial ({start_address})" +"O endereço final deve ser maior que o endereço inicial ({start_address})" #: ipam/models/ip.py:589 #, python-brace-format @@ -9169,7 +9165,7 @@ msgid "The primary function of this VLAN" msgstr "A função principal desta VLAN" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: ipam/views.py:957 netbox/navigation/menu.py:180 #: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "VLANs" @@ -9244,7 +9240,7 @@ msgid "Added" msgstr "Adicionado" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: ipam/views.py:348 netbox/navigation/menu.py:152 #: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "Prefixos" @@ -9345,23 +9341,23 @@ msgstr "" "Somente caracteres alfanuméricos, asteriscos, hífens, pontos e sublinhados " "são permitidos em nomes DNS" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "Prefixos infantis" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "Intervalos para crianças" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "IPs relacionados" -#: ipam/views.py:1115 +#: ipam/views.py:1112 msgid "Device Interfaces" msgstr "Interfaces de dispositivos" -#: ipam/views.py:1133 +#: ipam/views.py:1129 msgid "VM Interfaces" msgstr "Interfaces de VM" @@ -9909,7 +9905,7 @@ msgstr "Virtualização" #: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 -#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 +#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388 msgid "Virtual Disks" msgstr "Discos virtuais" @@ -10031,44 +10027,44 @@ msgid "Admin" msgstr "Administrador" #: netbox/navigation/menu.py:373 templates/users/group.html:29 -#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 -#: users/forms/model_forms.py:300 users/tables.py:102 +#: users/forms/model_forms.py:233 users/forms/model_forms.py:245 +#: users/forms/model_forms.py:297 users/tables.py:102 msgid "Users" msgstr "Usuários" -#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 -#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182 +#: users/forms/model_forms.py:194 users/forms/model_forms.py:302 #: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "Grupos" -#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: netbox/navigation/menu.py:413 templates/account/base.html:21 #: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "Tokens de API" -#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 -#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 -#: users/forms/model_forms.py:249 +#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188 +#: users/forms/model_forms.py:196 users/forms/model_forms.py:239 +#: users/forms/model_forms.py:246 msgid "Permissions" msgstr "Permissões" -#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432 #: templates/core/system.html:7 msgid "System" msgstr "Sistema" -#: netbox/navigation/menu.py:432 +#: netbox/navigation/menu.py:437 msgid "Configuration History" msgstr "Histórico de configuração" -#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8 #: templates/core/rq_task_list.html:22 msgid "Background Tasks" msgstr "Tarefas de fundo" -#: netbox/navigation/menu.py:475 templates/500.html:35 -#: templates/account/preferences.html:22 templates/core/system.html:76 +#: netbox/navigation/menu.py:482 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:80 msgid "Plugins" msgstr "Plugins" @@ -10138,47 +10134,55 @@ msgstr "Navegação HTMX" msgid "Enable dynamic UI navigation" msgstr "Habilitar navegação dinâmica na interface do usuário" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "Característica experimental" + #: netbox/preferences.py:29 msgid "Language" msgstr "Idioma" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." -msgstr "Força a tradução da interface do usuário para o idioma especificado." +msgid "Forces UI translation to the specified language" +msgstr "Força a tradução da interface do usuário para o idioma especificado" -#: netbox/preferences.py:37 +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" +msgstr "O suporte para tradução foi desativado localmente" + +#: netbox/preferences.py:42 msgid "Page length" msgstr "Comprimento da página" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "O número padrão de objetos a serem exibidos por página" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" msgstr "Posicionamento do paginador" -#: netbox/preferences.py:45 +#: netbox/preferences.py:50 msgid "Bottom" msgstr "Parte inferior" -#: netbox/preferences.py:46 +#: netbox/preferences.py:51 msgid "Top" msgstr "Topo" -#: netbox/preferences.py:47 +#: netbox/preferences.py:52 msgid "Both" msgstr "Ambos" -#: netbox/preferences.py:50 +#: netbox/preferences.py:55 msgid "Where the paginator controls will be displayed relative to a table" msgstr "Onde os controles do paginador serão exibidos em relação a uma tabela" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "Formato de dados" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "A sintaxe preferida para exibir dados genéricos na interface" @@ -10195,31 +10199,31 @@ msgstr "Não é possível adicionar lojas ao registro após a inicialização" msgid "Cannot delete stores from registry" msgstr "Não é possível excluir lojas do registro" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "Inglês" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "espanhol" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "francês" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "japonesa" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "portuguesa" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "russa" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "turca" @@ -10235,11 +10239,16 @@ msgstr "Alternar lista suspensa" msgid "Error" msgstr "Erro" -#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 +#: netbox/tables/tables.py:56 +#, python-brace-format +msgid "No {model_name} found" +msgstr "Não {model_name} encontrado" + +#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117 msgid "Field" msgstr "Campo" -#: netbox/tables/tables.py:248 +#: netbox/tables/tables.py:249 msgid "Value" msgstr "Valor" @@ -10260,7 +10269,7 @@ msgstr "Registro de alterações" msgid "Journal" msgstr "Diário" -#: netbox/views/generic/object_views.py:105 +#: netbox/views/generic/object_views.py:106 #, python-brace-format msgid "{class_name} must implement get_children()" msgstr "{class_name} deve implementar get_children ()" @@ -10302,7 +10311,7 @@ msgstr "" msgid "The complete exception is provided below" msgstr "A exceção completa é fornecida abaixo" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" msgstr "Versão Python" @@ -10357,7 +10366,7 @@ msgstr "Alterar senha" #: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63 #: templates/generic/confirmation_form.html:19 #: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 -#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 +#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "Cancelar" @@ -10400,7 +10409,7 @@ msgid "Columns" msgstr "Colunas" #: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 -#: templates/extras/object_configcontext.html:55 +#: templates/extras/object_configcontext.html:43 msgid "None found" msgstr "Nenhum encontrado" @@ -10448,7 +10457,6 @@ msgstr "Grupos atribuídos" #: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 #: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 #: templates/extras/htmx/script_result.html:56 -#: templates/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:123 #: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 #: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 @@ -10584,7 +10592,7 @@ msgstr "Adicionar" #: templates/dcim/moduletype/component_templates.html:20 #: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 #: templates/generic/object_edit.html:47 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 #: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" @@ -10921,39 +10929,39 @@ msgstr "Exportar" msgid "System Status" msgstr "Status do sistema" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "Versão Django" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" +#: templates/core/system.html:43 +msgid "PostgreSQL version" msgstr "Versão PostgreSQL" -#: templates/core/system.html:43 +#: templates/core/system.html:47 msgid "Database name" msgstr "Nome do banco de dados" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "Tamanho do banco de dados" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "Indisponível" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "Trabalhadores de RQ" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "fila padrão" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "Hora do sistema" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "Configuração atual" @@ -11657,7 +11665,7 @@ msgstr "Adicionar novo membro" #: templates/dcim/virtualchassis_add_member.html:27 #: templates/generic/object_edit.html:78 #: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:312 +#: users/forms/model_forms.py:309 msgid "Actions" msgstr "Ações" @@ -12000,20 +12008,12 @@ msgstr "dias" msgid "Indefinite" msgstr "Indefinido" -#: templates/extras/object_configcontext.html:11 -msgid "Rendered Context" -msgstr "Contexto renderizado" - -#: templates/extras/object_configcontext.html:22 -msgid "Local Context" -msgstr "Contexto local" - -#: templates/extras/object_configcontext.html:34 +#: templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "" "O contexto de configuração local substitui todos os contextos de origem" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "Contextos de origem" @@ -12412,20 +12412,20 @@ msgstr "" "Antes que você possa adicionar um %(model)s você deve primeiro criar um " "%(prerequisite_model)s." -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "Seleção de página" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "Mostrando %(start)s-%(end)s do %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "Opções de paginação" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "Por página" @@ -12487,11 +12487,11 @@ msgstr "Chave de autenticação" msgid "Virtual IP Addresses" msgstr "Endereços IP virtuais" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "Atribuir IP" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "Criação em massa" @@ -12532,11 +12532,11 @@ msgstr "NAT (externo)" msgid "Assign an IP Address" msgstr "Atribuir um endereço IP" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "Selecione o endereço IP" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "Resultados da pesquisa" @@ -12657,11 +12657,11 @@ msgstr "Logotipo da NetBox" msgid "Errors" msgstr "Erros" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "Entrar" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "Ou" @@ -12784,7 +12784,7 @@ msgstr "Permissão" msgid "View" msgstr "Visualizar" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "Restrições" @@ -13264,11 +13264,11 @@ msgstr "Pode mudar" msgid "Can Delete" msgstr "Pode excluir" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "Interface de usuário" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -13278,7 +13278,7 @@ msgstr "" "gravar sua chave antes de enviar este formulário, pois ele pode não" " estar mais acessível depois que o token for criado." -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13288,31 +13288,31 @@ msgstr "" "sem restrições. Exemplo: 10.1.1.0/24.192.168.10.16/32, 2001:db 8:1: " ":/64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "Confirme a senha" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "Digite a mesma senha de antes, para verificação." -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "As senhas não coincidem! Verifique sua entrada e tente novamente." -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "Ações adicionais" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "Ações concedidas além das listadas acima" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "Objetos" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13322,11 +13322,11 @@ msgstr "" "permitidos. Deixe null para corresponder a todos os objetos desse tipo. Uma " "lista de vários objetos resultará em uma operação OR lógica." -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "Pelo menos uma ação deve ser selecionada." -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "Filtro inválido para {model}: {error}" @@ -13501,12 +13501,7 @@ msgstr "" msgid "More than 50" msgstr "Mais de 50" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "" -"O conjunto de consultas personalizado não pode ser usado para essa pesquisa." - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13515,7 +13510,7 @@ msgstr "" "%s(%r) é inválido. O parâmetro to_model para CounterCacheField deve ser uma " "string no formato 'app.model'" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " diff --git a/netbox/translations/ru/LC_MESSAGES/django.mo b/netbox/translations/ru/LC_MESSAGES/django.mo index eba8b13b1c3c97036c45df0d567890ccc62f6750..eabb86572c088958bf65920ccace7933d7c82fce 100644 GIT binary patch delta 62332 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 z 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." -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "Выбор страницы" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "показывая %(start)s-%(end)s из %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "Варианты разбиения на страницы" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "На страницу" @@ -12479,11 +12480,11 @@ msgstr "Ключ аутентификации" msgid "Virtual IP Addresses" msgstr "Виртуальные IP-адреса" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "Назначить IP-адрес" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "Массовое создание" @@ -12524,11 +12525,11 @@ msgstr "NAT (снаружи)" msgid "Assign an IP Address" msgstr "Назначьте IP-адрес" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "Выберите IP-адрес" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "Результаты поиска" @@ -12649,11 +12650,11 @@ msgstr "Логотип NetBox" msgid "Errors" msgstr "Ошибки" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "Войти" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "Или" @@ -12774,7 +12775,7 @@ msgstr "Разрешение" msgid "View" msgstr "Вид" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "Ограничения" @@ -13079,7 +13080,7 @@ msgstr "Родительская группа арендаторов (ID)" #: tenancy/filtersets.py:176 msgid "Parent tenant group (slug)" -msgstr "Родительская группа арендаторов (slug)" +msgstr "Родительская группа арендаторов (короткая метка)" #: tenancy/filtersets.py:182 tenancy/filtersets.py:202 msgid "Tenant group (ID)" @@ -13254,11 +13255,11 @@ msgstr "Может измениться" msgid "Can Delete" msgstr "Можно удалить" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "Пользовательский интерфейс" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -13268,7 +13269,7 @@ msgstr "" "свой ключ до отправки этой формы, так как после создания токена она" " может быть недоступна." -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13278,33 +13279,33 @@ msgstr "" "поле пустым, чтобы не было ограничений. Пример: 10.1.1.0/24, " "192.168.10.16/32, 2001:DB8:1::/64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "Подтвердите пароль" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "Введите тот же пароль, что и раньше, для проверки." -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" "Пароли не совпадают! Пожалуйста, проверьте введенные данные и попробуйте " "снова." -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "Дополнительные действия" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "Действия, предпринятые в дополнение к перечисленным выше" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "Объекты" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13314,11 +13315,11 @@ msgstr "" "Оставьте значение null для соответствия всем объектам этого типа. Список из " "нескольких объектов приведет к логической операции ИЛИ." -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "Должно быть выбрано хотя бы одно действие." -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "Неверный фильтр для {model}: {error}" @@ -13496,11 +13497,7 @@ msgstr "" msgid "More than 50" msgstr "Более 50" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "Настраиваемый набор запросов нельзя использовать для этого поиска." - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13509,7 +13506,7 @@ msgstr "" "%s(%r) недействителен. Параметр to_model для CounterCacheField должен быть " "строкой в формате app.model" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " diff --git a/netbox/translations/tr/LC_MESSAGES/django.mo b/netbox/translations/tr/LC_MESSAGES/django.mo index 769ce9292e7be74ed121cdac146b581a85e3730d..1c548b4d12224fc893226c2d7cfe1d27fe03164d 100644 GIT binary patch delta 62210 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

il5$@hjmOb` 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 F_dh(Iu_pik delta 62178 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 diff --git a/netbox/translations/tr/LC_MESSAGES/django.po b/netbox/translations/tr/LC_MESSAGES/django.po index be4afe1cba..ee03173645 100644 --- a/netbox/translations/tr/LC_MESSAGES/django.po +++ b/netbox/translations/tr/LC_MESSAGES/django.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-06 17:40+0000\n" +"POT-Creation-Date: 2024-05-14 13:22+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2024\n" "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n" @@ -24,7 +24,7 @@ msgstr "" #: account/tables.py:27 templates/account/token.html:22 #: templates/users/token.html:17 users/forms/bulk_import.py:39 -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:113 msgid "Key" msgstr "Anahtar" @@ -56,7 +56,7 @@ msgstr "Son Kullanım" #: account/tables.py:45 templates/account/token.html:55 #: templates/users/token.html:47 users/forms/bulk_edit.py:122 -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "İzin verilen IP'ler" @@ -65,8 +65,8 @@ msgid "Your preferences have been updated." msgstr "Tercihleriniz güncellendi." #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 -#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425 -#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20 +#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429 +#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20 #: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "Planlanan" @@ -77,7 +77,7 @@ msgstr "Tedarik" #: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 #: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 -#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385 #: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 #: ipam/choices.py:154 templates/extras/configcontext.html:25 #: templates/users/user.html:37 users/forms/bulk_edit.py:38 @@ -87,7 +87,7 @@ msgid "Active" msgstr "Aktif" #: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218 -#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24 +#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24 #: virtualization/choices.py:43 msgid "Offline" msgstr "Çevrim dışı" @@ -161,8 +161,8 @@ msgstr "Site grubu (kısa ad)" #: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 #: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 #: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 -#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 -#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203 #: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 #: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 #: templates/circuits/inc/circuit_termination.html:32 @@ -262,7 +262,7 @@ msgstr "Fesih A (ID)" #: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 #: netbox/forms/__init__.py:22 netbox/forms/base.py:165 #: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 -#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7 #: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 #: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 #: utilities/forms/forms.py:104 @@ -285,7 +285,7 @@ msgstr "Sağlayıcı Ağı (ID)" #: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 #: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 #: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 +#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218 #: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 #: templates/circuits/provider.html:23 msgid "ASNs" @@ -449,7 +449,7 @@ msgstr "Renk" #: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:283 extras/tables/tables.py:355 -#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: extras/tables/tables.py:473 netbox/tables/tables.py:237 #: templates/circuits/circuit.html:30 templates/core/datasource.html:38 #: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 #: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 @@ -499,7 +499,7 @@ msgstr "Sağlayıcı hesabı" #: ipam/forms/bulk_import.py:191 ipam/forms/bulk_import.py:256 #: ipam/forms/bulk_import.py:292 ipam/forms/bulk_import.py:458 #: ipam/forms/filtersets.py:209 ipam/forms/filtersets.py:274 -#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489 +#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501 #: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309 #: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448 #: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227 @@ -515,7 +515,7 @@ msgstr "Sağlayıcı hesabı" #: templates/virtualization/virtualmachine.html:19 #: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22 #: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70 #: virtualization/forms/bulk_edit.py:118 #: virtualization/forms/bulk_import.py:54 #: virtualization/forms/bulk_import.py:80 @@ -559,7 +559,7 @@ msgstr "Durum" #: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 #: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 #: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 #: templates/dcim/device.html:78 templates/dcim/location.html:49 @@ -697,8 +697,8 @@ msgstr "Sağlayıcı ağı" #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 #: extras/filtersets.py:488 extras/forms/filtersets.py:329 #: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 -#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430 +#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590 #: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 #: templates/dcim/inc/cable_termination.html:12 #: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26 @@ -737,7 +737,7 @@ msgstr "İletişim" #: dcim/tables/sites.py:85 extras/filtersets.py:455 #: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438 #: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216 -#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463 +#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475 #: ipam/forms/model_forms.py:562 templates/dcim/device.html:17 #: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22 #: templates/dcim/region.html:26 templates/dcim/site.html:30 @@ -757,8 +757,8 @@ msgstr "Bölge" #: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 #: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 #: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 -#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420 +#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575 #: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 #: virtualization/forms/filtersets.py:138 #: virtualization/forms/model_forms.py:98 @@ -782,8 +782,8 @@ msgstr "Site grubu" #: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 #: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 #: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 -#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 -#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527 +#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253 #: virtualization/forms/filtersets.py:45 #: virtualization/forms/filtersets.py:103 #: virtualization/forms/filtersets.py:194 @@ -1185,7 +1185,7 @@ msgstr "Tamamlandı" #: core/choices.py:22 core/choices.py:59 core/constants.py:20 #: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 -#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 +#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "Başarısız" @@ -1253,7 +1253,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "Yalnızca HTTP (S) ile klonlama için kullanılır" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:174 +#: templates/account/password.html:11 users/forms/model_forms.py:171 msgid "Password" msgstr "Şifre" @@ -1317,8 +1317,8 @@ msgid "Ignore rules" msgstr "Kuralları yok sayın" #: core/forms/filtersets.py:27 core/forms/model_forms.py:97 -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 -#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:154 #: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:18 @@ -1391,8 +1391,8 @@ msgstr "Daha önce tamamlandı" #: templates/inc/user_menu.html:15 templates/users/token.html:21 #: templates/users/user.html:6 templates/users/user.html:14 #: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 -#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 -#: users/forms/model_forms.py:196 users/tables.py:19 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:156 +#: users/forms/model_forms.py:193 users/tables.py:19 msgid "User" msgstr "Kullanıcı" @@ -1424,7 +1424,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Raf Yükseltmeleri" -#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: core/forms/model_forms.py:157 dcim/choices.py:1417 #: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 #: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 #: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 @@ -1461,7 +1461,7 @@ msgid "User Preferences" msgstr "Kullanıcı Tercihleri" #: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 -#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "Çeşitli" @@ -1536,7 +1536,7 @@ msgid "type" msgstr "türü" #: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 -#: extras/tables/tables.py:582 templates/core/datasource.html:58 +#: extras/tables/tables.py:577 templates/core/datasource.html:58 msgid "URL" msgstr "URL" @@ -1721,7 +1721,7 @@ msgstr "Son Güncelleme" #: core/tables/jobs.py:10 core/tables/tasks.py:76 #: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 -#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: extras/tables/tables.py:350 netbox/tables/tables.py:187 #: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 #: wireless/tables/wirelesslink.py:16 msgid "ID" @@ -1730,7 +1730,7 @@ msgstr "KİMLİK" #: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 #: extras/tables/tables.py:287 extras/tables/tables.py:360 #: extras/tables/tables.py:478 extras/tables/tables.py:509 -#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: extras/tables/tables.py:574 netbox/tables/tables.py:241 #: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 #: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 #: vpn/tables/l2vpn.py:64 @@ -1775,7 +1775,7 @@ msgstr "İşçiler" msgid "Host" msgstr "Ana bilgisayar" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "Liman" @@ -1842,7 +1842,7 @@ msgid "Staging" msgstr "Sahneleme" #: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223 -#: dcim/choices.py:1426 virtualization/choices.py:23 +#: dcim/choices.py:1430 virtualization/choices.py:23 #: virtualization/choices.py:48 msgid "Decommissioning" msgstr "Hizmetten çıkarma" @@ -1902,7 +1902,7 @@ msgstr "Kullanımdan kaldırıldı" msgid "Millimeters" msgstr "Milimetre" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "İnç" @@ -1977,7 +1977,7 @@ msgstr "Sağdan sola" msgid "Side to rear" msgstr "Yandan arkaya" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "Pasif" @@ -2005,8 +2005,8 @@ msgstr "Uluslararası/ITA" msgid "Proprietary" msgstr "Tescilli" -#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 -#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 +#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141 +#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350 #: netbox/navigation/menu.py:187 msgid "Other" msgstr "Diğer" @@ -2019,22 +2019,22 @@ msgstr "ITA/Uluslararası" msgid "Physical" msgstr "Fiziksel" -#: dcim/choices.py:795 dcim/choices.py:952 +#: dcim/choices.py:795 dcim/choices.py:954 msgid "Virtual" msgstr "Sanal" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408 #: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 #: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 #: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "Kablosuz" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "Sanal arayüzler" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303 #: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 #: dcim/tables/devices.py:656 templates/dcim/interface.html:106 #: templates/virtualization/vminterface.html:43 @@ -2044,152 +2044,152 @@ msgstr "Sanal arayüzler" msgid "Bridge" msgstr "Köprü" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "Bağlantı Toplama Grubu (LAG)" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "Ethernet (sabit)" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "Ethernet (modüler)" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "Ethernet (arka panel)" -#: dcim/choices.py:1036 +#: dcim/choices.py:1040 msgid "Cellular" msgstr "Hücresel" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/choices.py:1090 dcim/forms/filtersets.py:303 #: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 #: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 #: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "Seri" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "Koaksiyel" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "İstifleme" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "Yarım" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "Dolu" -#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 +#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "Oto" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "Erişim" -#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 +#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213 #: templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" msgstr "Etiketlenmiş" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "Etiketlenmiş (Tümü)" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "IEEE Standardı" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "Pasif 24V (2 çift)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "Pasif 24V (4 çift)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "Pasif 48V (2 çift)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "Pasif 48V (4 çift)" -#: dcim/choices.py:1288 dcim/choices.py:1384 +#: dcim/choices.py:1292 dcim/choices.py:1388 msgid "Copper" msgstr "Bakır" -#: dcim/choices.py:1311 +#: dcim/choices.py:1315 msgid "Fiber Optic" msgstr "Fiber Optik" -#: dcim/choices.py:1400 +#: dcim/choices.py:1404 msgid "Fiber" msgstr "Elyaf" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 +#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "Bağlı" -#: dcim/choices.py:1443 +#: dcim/choices.py:1447 msgid "Kilometers" msgstr "Kilometre" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Sayaçlar" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "Santimetre" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "Mil" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Ayaklar" -#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: dcim/choices.py:1467 templates/dcim/device.html:319 #: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "Kilogram" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "Gramlar" -#: dcim/choices.py:1465 templates/dcim/rack.html:153 +#: dcim/choices.py:1469 templates/dcim/rack.html:153 msgid "Pounds" msgstr "Pound'lar" -#: dcim/choices.py:1466 +#: dcim/choices.py:1470 msgid "Ounces" msgstr "ons" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "Birincil" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "Yedekli" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "Tek fazlı" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "Üç fazlı" @@ -2560,7 +2560,7 @@ msgstr "L2VPN (KİMLİĞİ)" #: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 #: dcim/tables/devices.py:566 ipam/filtersets.py:1022 -#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133 #: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 #: templates/vpn/l2vpntermination.html:12 #: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 @@ -2649,7 +2649,7 @@ msgid "Power panel (ID)" msgstr "Güç paneli (ID)" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495 #: netbox/forms/base.py:84 netbox/forms/mixins.py:81 #: netbox/tables/columns.py:458 #: templates/circuits/inc/circuit_termination.html:118 @@ -2738,7 +2738,7 @@ msgstr "Saat dilimi" #: ipam/forms/bulk_import.py:196 ipam/forms/bulk_import.py:261 #: ipam/forms/bulk_import.py:297 ipam/forms/bulk_import.py:463 #: ipam/forms/filtersets.py:236 ipam/forms/filtersets.py:282 -#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497 +#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509 #: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219 #: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680 #: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363 @@ -2851,7 +2851,7 @@ msgstr "Ağırlık birimi" #: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 #: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 #: dcim/tables/power.py:70 dcim/tables/racks.py:148 -#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434 +#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435 #: ipam/forms/model_forms.py:601 templates/dcim/device.html:29 #: templates/dcim/inc/cable_termination.html:16 #: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 @@ -3002,7 +3002,7 @@ msgstr "Platform" #: dcim/tables/devices.py:862 dcim/tables/devices.py:914 #: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 #: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551 #: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 #: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 #: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 @@ -3202,7 +3202,7 @@ msgid "Mode" msgstr "Modu" #: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498 #: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 #: virtualization/forms/model_forms.py:321 msgid "VLAN group" @@ -3399,6 +3399,7 @@ msgstr "Sanal şasi" #: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 #: dcim/tables/devices.py:207 extras/filtersets.py:548 #: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452 #: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 #: templates/virtualization/cluster.html:10 #: templates/virtualization/virtualmachine.html:88 @@ -3820,7 +3821,7 @@ msgstr "Bağlantı" #: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 #: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 -#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: extras/forms/model_forms.py:551 extras/tables/tables.py:512 #: templates/extras/journalentry.html:30 msgid "Kind" msgstr "Tür" @@ -5658,7 +5659,7 @@ msgstr "Ulaşılabilir" #: extras/tables/tables.py:435 netbox/navigation/menu.py:56 #: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62 #: virtualization/forms/model_forms.py:122 -#: virtualization/tables/clusters.py:83 virtualization/views.py:211 +#: virtualization/tables/clusters.py:83 virtualization/views.py:210 msgid "Devices" msgstr "Aygıtlar" @@ -5668,7 +5669,7 @@ msgid "VMs" msgstr "Sanal Makineler" #: dcim/tables/devices.py:105 dcim/tables/devices.py:221 -#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:14 #: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 @@ -5736,8 +5737,8 @@ msgid "Power outlets" msgstr "Elektrik prizleri" #: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 -#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245 +#: dcim/views.py:1931 netbox/navigation/menu.py:81 #: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 @@ -5745,7 +5746,7 @@ msgstr "Elektrik prizleri" #: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "Arayüzler" @@ -5792,7 +5793,7 @@ msgid "Allocated draw (W)" msgstr "Tahsis edilen çekiliş (W)" #: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 -#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 +#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690 #: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 #: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 #: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 @@ -5824,7 +5825,7 @@ msgid "VDCs" msgstr "VDC'ler" #: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024 #: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 #: templates/dcim/inc/panels/inventory_items.html:6 @@ -5867,7 +5868,7 @@ msgid "Module Types" msgstr "Modül Çeşitleri" #: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 -#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: extras/forms/model_forms.py:413 extras/tables/tables.py:430 #: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "Platformlar" @@ -5888,60 +5889,60 @@ msgstr "U Yüksekliği" msgid "Instances" msgstr "Örnekler" -#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 -#: dcim/views.py:1869 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185 +#: dcim/views.py:1871 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "Konsol Bağlantı Noktaları" -#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 -#: dcim/views.py:1884 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200 +#: dcim/views.py:1886 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "Konsol Sunucusu Bağlantı Noktaları" -#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 -#: dcim/views.py:1899 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215 +#: dcim/views.py:1901 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "Güç Bağlantı Noktaları" -#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 -#: dcim/views.py:1914 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230 +#: dcim/views.py:1916 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "Elektrik Prizleri" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 -#: dcim/views.py:1950 netbox/navigation/menu.py:82 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260 +#: dcim/views.py:1952 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "Ön Bağlantı Noktaları" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 -#: dcim/views.py:1965 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275 +#: dcim/views.py:1967 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "Arka Bağlantı Noktaları" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005 #: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "Aygıt Yuvaları" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986 #: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" @@ -5987,42 +5988,48 @@ msgid "Max Weight" msgstr "Maksimum Ağırlık" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393 #: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 #: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 #: netbox/navigation/menu.py:17 msgid "Sites" msgstr "Siteler" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "Test senaryosu peer_termination_type ayarlamalıdır" -#: dcim/views.py:135 +#: dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "Bağlantısı kesildi {count} {type}" -#: dcim/views.py:696 netbox/navigation/menu.py:28 +#: dcim/views.py:698 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "Rezervasyon" -#: dcim/views.py:714 templates/dcim/location.html:90 +#: dcim/views.py:716 templates/dcim/location.html:90 #: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "Raf Olmayan Cihazlar" -#: dcim/views.py:2035 extras/forms/model_forms.py:456 +#: dcim/views.py:2037 extras/forms/model_forms.py:453 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:407 msgid "Config Context" msgstr "Yapılandırma Bağlamı" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "Oluştur Yapılandırması" -#: dcim/views.py:2970 ipam/tables/ip.py:233 +#: dcim/views.py:2097 extras/tables/tables.py:440 +#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236 +#: virtualization/views.py:185 +msgid "Virtual Machines" +msgstr "Sanal Makineler" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "Çocuklar" @@ -6191,7 +6198,7 @@ msgstr "30 gün" #: templates/extras/eventrule.html:40 #: templates/generic/bulk_add_component.html:68 #: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 msgid "Create" msgstr "Oluştur" @@ -6267,11 +6274,11 @@ msgid "White" msgstr "Beyaz" #: extras/choices.py:320 extras/forms/model_forms.py:242 -#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 +#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10 msgid "Webhook" msgstr "Web kancası" -#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: extras/choices.py:321 extras/forms/model_forms.py:312 #: templates/extras/script/base.html:29 msgid "Script" msgstr "Senaryo" @@ -6424,7 +6431,8 @@ msgid "Cluster type (slug)" msgstr "Küme tipi (kısa ad)" #: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 -#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 +#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615 +#: virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "Küme grubu" @@ -6442,7 +6450,7 @@ msgstr "Kiracı grubu" msgid "Tenant group (slug)" msgstr "Kiracı grubu (kısa ad)" -#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: extras/filtersets.py:575 extras/forms/model_forms.py:371 #: templates/extras/tag.html:11 msgid "Tag" msgstr "etiket" @@ -6561,7 +6569,7 @@ msgstr "Aktif" #: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 #: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 #: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 -#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273 msgid "Object types" msgstr "Nesne türleri" @@ -6664,9 +6672,8 @@ msgid "Choices" msgstr "Seçenekler" #: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 -#: templates/core/job.html:78 templates/extras/configcontext.html:82 -#: templates/extras/eventrule.html:90 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448 +#: templates/core/job.html:78 templates/extras/eventrule.html:90 msgid "Data" msgstr "Veriler" @@ -6709,7 +6716,7 @@ msgstr "Nesne silme" msgid "Job starts" msgstr "İş başlıyor" -#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297 msgid "Job terminations" msgstr "İş sonlandırmaları" @@ -6721,44 +6728,44 @@ msgstr "Etiketli nesne türü" msgid "Allowed object type" msgstr "İzin verilen nesne türü" -#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383 #: netbox/navigation/menu.py:18 msgid "Regions" msgstr "Bölgeler" -#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388 msgid "Site groups" msgstr "Site grupları" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398 #: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "Konumlar" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403 msgid "Device types" msgstr "Aygıt türleri" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408 msgid "Roles" msgstr "Roller" -#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418 msgid "Cluster types" msgstr "Küme türleri" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423 msgid "Cluster groups" msgstr "Küme grupları" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428 #: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 #: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "Kümeler" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433 msgid "Tenant groups" msgstr "Kiracı grupları" @@ -6776,7 +6783,7 @@ msgstr "Önce" msgid "Time" msgstr "Zaman" -#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282 #: extras/tables/tables.py:470 templates/extras/eventrule.html:77 #: templates/extras/objectchange.html:45 msgid "Action" @@ -6847,7 +6854,7 @@ msgstr "" "Bağlantı metni için Jinja2 şablon kodu. Nesneyi {example} şeklinde referans " "alabilirsiniz. " -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500 msgid "Template code" msgstr "Şablon kodu" @@ -6859,11 +6866,11 @@ msgstr "Dışa Aktar Şablonu" msgid "Rendering" msgstr "Oluşturma" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "Şablon içeriği aşağıda seçilen uzak kaynaktan doldurulur." -#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "Yerel içerik veya veri dosyası belirtmelidir" @@ -6904,44 +6911,44 @@ msgstr "Etkinlik Kuralı" msgid "Conditions" msgstr "Koşullar" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "Kreasyonlar" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "Güncellemeler" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "Silme" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "İş yürütmeleri" -#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 +#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "Kiracılar" -#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321 #: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 #: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:314 +#: users/forms/model_forms.py:311 msgid "Assignment" msgstr "Ödev" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "Veriler aşağıda seçilen uzak kaynaktan doldurulur." -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "Yerel veri veya veri dosyası belirtmelidir" -#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:55 msgid "Content" msgstr "İçerik" @@ -7919,11 +7926,6 @@ msgstr "İş Sonu" msgid "Device Roles" msgstr "Aygıt Rolleri" -#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 -#: netbox/navigation/menu.py:236 virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "Sanal Makineler" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -7942,19 +7944,13 @@ msgid "Line" msgstr "Çizgi" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "Seviye" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "Mesaj" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "Hiçbir sonuç bulunamadı" - #: extras/tables/tables.py:564 msgid "Method" msgstr "Yöntemi" @@ -8324,7 +8320,7 @@ msgstr "DNS adı" #: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 #: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 -#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22 #: templates/ipam/inc/panels/fhrp_groups.html:24 #: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19 msgid "Protocol" @@ -8571,20 +8567,20 @@ msgstr "Bir arayüze atandı" msgid "DNS Name" msgstr "DNS Adı" -#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513 #: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "VLAN KİMLİĞİ" -#: ipam/forms/filtersets.py:440 +#: ipam/forms/filtersets.py:441 msgid "Minimum VID" msgstr "Minimum VID" -#: ipam/forms/filtersets.py:446 +#: ipam/forms/filtersets.py:447 msgid "Maximum VID" msgstr "Maksimum VID" -#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318 #: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 #: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 #: templates/virtualization/virtualmachine.html:12 @@ -8922,9 +8918,9 @@ msgstr "Başlangıç ve bitiş IP adresi maskeleri eşleşmelidir" #: ipam/models/ip.py:577 #, python-brace-format msgid "" -"Ending address must be lower than the starting address ({start_address})" +"Ending address must be greater than the starting address ({start_address})" msgstr "" -"Bitiş adresi başlangıç adresinden daha düşük olmalıdır ({start_address})" +"Bitiş adresi başlangıç adresinden daha büyük olmalıdır ({start_address})" #: ipam/models/ip.py:589 #, python-brace-format @@ -9077,7 +9073,7 @@ msgid "The primary function of this VLAN" msgstr "Bu VLAN'ın birincil işlevi" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: ipam/views.py:957 netbox/navigation/menu.py:180 #: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "VLAN'lar" @@ -9152,7 +9148,7 @@ msgid "Added" msgstr "Eklendi" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: ipam/views.py:348 netbox/navigation/menu.py:152 #: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "Önekler" @@ -9253,23 +9249,23 @@ msgstr "" "DNS adlarında yalnızca alfanümerik karakterlere, yıldızlara, tirelere, " "noktalara ve alt çizgilere izin verilir" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "Çocuk Önekleri" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "Çocuk Aralıkları" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "İlgili IP'ler" -#: ipam/views.py:1115 +#: ipam/views.py:1112 msgid "Device Interfaces" msgstr "Aygıt Arayüzleri" -#: ipam/views.py:1133 +#: ipam/views.py:1129 msgid "VM Interfaces" msgstr "VM Arayüzleri" @@ -9816,7 +9812,7 @@ msgstr "Sanallaştırma" #: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 -#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 +#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388 msgid "Virtual Disks" msgstr "Sanal Diskler" @@ -9938,44 +9934,44 @@ msgid "Admin" msgstr "Yönetici" #: netbox/navigation/menu.py:373 templates/users/group.html:29 -#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 -#: users/forms/model_forms.py:300 users/tables.py:102 +#: users/forms/model_forms.py:233 users/forms/model_forms.py:245 +#: users/forms/model_forms.py:297 users/tables.py:102 msgid "Users" msgstr "Kullanıcılar" -#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 -#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182 +#: users/forms/model_forms.py:194 users/forms/model_forms.py:302 #: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "Gruplar" -#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: netbox/navigation/menu.py:413 templates/account/base.html:21 #: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "API Belirteçleri" -#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 -#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 -#: users/forms/model_forms.py:249 +#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188 +#: users/forms/model_forms.py:196 users/forms/model_forms.py:239 +#: users/forms/model_forms.py:246 msgid "Permissions" msgstr "İzinler" -#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432 #: templates/core/system.html:7 msgid "System" msgstr "Sistem" -#: netbox/navigation/menu.py:432 +#: netbox/navigation/menu.py:437 msgid "Configuration History" msgstr "Yapılandırma Geçmişi" -#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8 #: templates/core/rq_task_list.html:22 msgid "Background Tasks" msgstr "Arka Plan Görevleri" -#: netbox/navigation/menu.py:475 templates/500.html:35 -#: templates/account/preferences.html:22 templates/core/system.html:76 +#: netbox/navigation/menu.py:482 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:80 msgid "Plugins" msgstr "Eklentiler" @@ -10045,47 +10041,55 @@ msgstr "HTMX Navigasyon" msgid "Enable dynamic UI navigation" msgstr "Dinamik kullanıcı arayüzü gezinmesini etkinleştir" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "Deneysel özellik" + #: netbox/preferences.py:29 msgid "Language" msgstr "Dil" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." -msgstr "Kullanıcı arabirimi çevirisini belirtilen dile zorlar." +msgid "Forces UI translation to the specified language" +msgstr "Kullanıcı arabirimi çevirisini belirtilen dile zorlar" + +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" +msgstr "Çeviri desteği yerel olarak devre dışı bırakıldı" -#: netbox/preferences.py:37 +#: netbox/preferences.py:42 msgid "Page length" msgstr "Sayfa uzunluğu" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "Sayfa başına görüntülenecek varsayılan nesne sayısı" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" msgstr "Paginator yerleşimi" -#: netbox/preferences.py:45 +#: netbox/preferences.py:50 msgid "Bottom" msgstr "Alt" -#: netbox/preferences.py:46 +#: netbox/preferences.py:51 msgid "Top" msgstr "Üst" -#: netbox/preferences.py:47 +#: netbox/preferences.py:52 msgid "Both" msgstr "İkisi de" -#: netbox/preferences.py:50 +#: netbox/preferences.py:55 msgid "Where the paginator controls will be displayed relative to a table" msgstr "Paginator kontrollerinin bir tabloya göre görüntüleneceği yer" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "Veri biçimi" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "" "Kullanıcı arayüzünde genel verileri görüntülemek için tercih edilen " @@ -10104,31 +10108,31 @@ msgstr "Başlatıldıktan sonra kayıt defterine mağazalar eklenemiyor" msgid "Cannot delete stores from registry" msgstr "Mağazalar kayıt defterinden silinemiyor" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "İngilizce" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "İspanyolca" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "Fransızca" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "Japonca" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "Portekizce" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "Rusça" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "Türkçe" @@ -10144,11 +10148,16 @@ msgstr "Açılır menüyü Aç/Kapat" msgid "Error" msgstr "Hata" -#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 +#: netbox/tables/tables.py:56 +#, python-brace-format +msgid "No {model_name} found" +msgstr "Hayır {model_name} bulunan" + +#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117 msgid "Field" msgstr "Tarla" -#: netbox/tables/tables.py:248 +#: netbox/tables/tables.py:249 msgid "Value" msgstr "Değer" @@ -10169,7 +10178,7 @@ msgstr "Değişiklik Günlüğü" msgid "Journal" msgstr "dergi" -#: netbox/views/generic/object_views.py:105 +#: netbox/views/generic/object_views.py:106 #, python-brace-format msgid "{class_name} must implement get_children()" msgstr "{class_name} get_children () uygulamasını uygulamalıdır" @@ -10210,7 +10219,7 @@ msgstr "İsteğinizle ilgili bir sorun oluştu. Lütfen bir yöneticiye başvuru msgid "The complete exception is provided below" msgstr "Tam istisna aşağıda verilmiştir" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" msgstr "Python sürümü" @@ -10265,7 +10274,7 @@ msgstr "Şifreyi Değiştir" #: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63 #: templates/generic/confirmation_form.html:19 #: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 -#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 +#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "İptal" @@ -10308,7 +10317,7 @@ msgid "Columns" msgstr "Sütunlar" #: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 -#: templates/extras/object_configcontext.html:55 +#: templates/extras/object_configcontext.html:43 msgid "None found" msgstr "Hiçbiri bulunamadı" @@ -10356,7 +10365,6 @@ msgstr "Atanan Gruplar" #: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 #: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 #: templates/extras/htmx/script_result.html:56 -#: templates/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:123 #: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 #: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 @@ -10492,7 +10500,7 @@ msgstr "Ekle" #: templates/dcim/moduletype/component_templates.html:20 #: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 #: templates/generic/object_edit.html:47 -#: templates/ipam/inc/ipaddress_edit_header.html:10 +#: templates/ipam/inc/ipaddress_edit_header.html:7 #: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" @@ -10829,39 +10837,39 @@ msgstr "İhracat" msgid "System Status" msgstr "Sistem Durumu" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "Django sürümü" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" -msgstr "PotsgreSQL sürümü" - #: templates/core/system.html:43 +msgid "PostgreSQL version" +msgstr "PostgreSQL sürümü" + +#: templates/core/system.html:47 msgid "Database name" msgstr "Veritabanı adı" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "Veritabanı boyutu" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "Kullanılamıyor" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "RQ çalışanları" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "varsayılan kuyruk" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "Sistem zamanı" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "Geçerli Yapılandırma" @@ -11567,7 +11575,7 @@ msgstr "Yeni Üye Ekle" #: templates/dcim/virtualchassis_add_member.html:27 #: templates/generic/object_edit.html:78 #: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:312 +#: users/forms/model_forms.py:309 msgid "Actions" msgstr "Eylemler" @@ -11910,19 +11918,11 @@ msgstr "günler" msgid "Indefinite" msgstr "belirsiz" -#: templates/extras/object_configcontext.html:11 -msgid "Rendered Context" -msgstr "Oluşturulan Bağlam" - -#: templates/extras/object_configcontext.html:22 -msgid "Local Context" -msgstr "Yerel Bağlam" - -#: templates/extras/object_configcontext.html:34 +#: templates/extras/object_configcontext.html:19 msgid "The local config context overwrites all source contexts" msgstr "Yerel yapılandırma bağlamı tüm kaynak bağlamların üzerine yazar" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "Kaynak Bağlamları" @@ -12319,20 +12319,20 @@ msgstr "" "%(model)s eklemeden önce %(prerequisite_model)s " "oluşturmalısınız." -#: templates/inc/paginator.html:14 +#: templates/inc/paginator.html:15 msgid "Page selection" msgstr "Sayfa seçimi" -#: templates/inc/paginator.html:74 +#: templates/inc/paginator.html:75 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "Gösterme %(start)s-%(end)s dan %(total)s" -#: templates/inc/paginator.html:81 +#: templates/inc/paginator.html:82 msgid "Pagination options" msgstr "Sayfalama seçenekleri" -#: templates/inc/paginator.html:85 +#: templates/inc/paginator.html:86 msgid "Per Page" msgstr "Sayfa Başına" @@ -12394,11 +12394,11 @@ msgstr "Kimlik Doğrulama Anahtarı" msgid "Virtual IP Addresses" msgstr "Sanal IP Adresleri" -#: templates/ipam/inc/ipaddress_edit_header.html:19 +#: templates/ipam/inc/ipaddress_edit_header.html:13 msgid "Assign IP" msgstr "IP atayın" -#: templates/ipam/inc/ipaddress_edit_header.html:28 +#: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Bulk Create" msgstr "Toplu Oluşturma" @@ -12439,11 +12439,11 @@ msgstr "NAT (dış)" msgid "Assign an IP Address" msgstr "IP Adresi Atama" -#: templates/ipam/ipaddress_assign.html:23 +#: templates/ipam/ipaddress_assign.html:22 msgid "Select IP Address" msgstr "IP Adresini Seçin" -#: templates/ipam/ipaddress_assign.html:39 +#: templates/ipam/ipaddress_assign.html:35 msgid "Search Results" msgstr "Arama Sonuçları" @@ -12564,11 +12564,11 @@ msgstr "NetBox logosu" msgid "Errors" msgstr "Hatalar" -#: templates/login.html:53 +#: templates/login.html:67 msgid "Sign In" msgstr "Oturum aç" -#: templates/login.html:61 +#: templates/login.html:75 msgctxt "Denotes an alternative option" msgid "Or" msgstr "Veya" @@ -12690,7 +12690,7 @@ msgstr "İzin" msgid "View" msgstr "Görünüm" -#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312 msgid "Constraints" msgstr "Kısıtlamalar" @@ -13170,11 +13170,11 @@ msgstr "Değişebilir" msgid "Can Delete" msgstr "Silebilir" -#: users/forms/model_forms.py:66 +#: users/forms/model_forms.py:63 msgid "User Interface" msgstr "Kullanıcı Arayüzü" -#: users/forms/model_forms.py:118 +#: users/forms/model_forms.py:115 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " @@ -13184,7 +13184,7 @@ msgstr "" "kaydettiğinizden emin olun belirteç oluşturulduktan sonra artık " "erişilemeyebileceğinden, bu formu göndermeden önce." -#: users/forms/model_forms.py:130 +#: users/forms/model_forms.py:127 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for" " no restrictions. Example: " @@ -13194,32 +13194,32 @@ msgstr "" "olmadan boş bırakın. Örnek: 10.1.1.0/24.192.168.10.16/32,2001: db 8:1:" " :/64" -#: users/forms/model_forms.py:179 +#: users/forms/model_forms.py:176 msgid "Confirm password" msgstr "Şifreyi onayla" -#: users/forms/model_forms.py:182 +#: users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "Doğrulama için öncekiyle aynı şifreyi girin." -#: users/forms/model_forms.py:231 +#: users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" "Şifreler eşleşmiyor! Lütfen girdilerinizi kontrol edin ve tekrar deneyin." -#: users/forms/model_forms.py:294 +#: users/forms/model_forms.py:291 msgid "Additional actions" msgstr "Ek eylemler" -#: users/forms/model_forms.py:297 +#: users/forms/model_forms.py:294 msgid "Actions granted in addition to those listed above" msgstr "Yukarıda listelenenlere ek olarak verilen eylemler" -#: users/forms/model_forms.py:313 +#: users/forms/model_forms.py:310 msgid "Objects" msgstr "Nesneler" -#: users/forms/model_forms.py:325 +#: users/forms/model_forms.py:322 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " @@ -13229,11 +13229,11 @@ msgstr "" "ifadesi. Bu türdeki tüm nesneleri eşleştirmek için null bırakın. Birden çok " "nesnenin listesi mantıksal bir OR işlemi ile sonuçlanır." -#: users/forms/model_forms.py:364 +#: users/forms/model_forms.py:361 msgid "At least one action must be selected." msgstr "En az bir eylem seçilmelidir." -#: users/forms/model_forms.py:382 +#: users/forms/model_forms.py:379 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "Geçersiz filtre {model}: {error}" @@ -13404,11 +13404,7 @@ msgstr "" msgid "More than 50" msgstr "50'den fazla" -#: utilities/fields.py:80 -msgid "Custom queryset can't be used for this lookup." -msgstr "Özel sorgu kümesi bu arama için kullanılamaz." - -#: utilities/fields.py:146 +#: utilities/fields.py:157 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " @@ -13417,7 +13413,7 @@ msgstr "" "%s(%r) geçersiz. counterCacheField için to_model parametresi 'app.model' " "biçiminde bir dize olmalıdır" -#: utilities/fields.py:156 +#: utilities/fields.py:167 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " From e5ab48e3c5b1f376b38fd3cf2a0e0b5040ab2111 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 10:10:09 -0400 Subject: [PATCH 19/21] Fixes #16123: Fix custom script execution via REST API --- netbox/extras/api/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 0a53037412..1f76467b5e 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -240,9 +240,9 @@ def post(self, request, pk): raise RQWorkerNotRunningException() if input_serializer.is_valid(): - script.result = Job.enqueue( + Job.enqueue( run_script, - instance=script.module, + instance=script, name=script.python_class.class_name, user=request.user, data=input_serializer.data['data'], From beb9b96395b90049e292a992637a4da8f512ca96 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 10:35:00 -0400 Subject: [PATCH 20/21] Changelog for #16096, #16107, #16123, #16124, #16127 --- docs/release-notes/version-4.0.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md index 50ee040f10..a136da5bd6 100644 --- a/docs/release-notes/version-4.0.md +++ b/docs/release-notes/version-4.0.md @@ -6,12 +6,17 @@ * [#15119](https://github.com/netbox-community/netbox/issues/15119) - Add cluster & cluster group UI filter fields for VLAN groups * [#16090](https://github.com/netbox-community/netbox/issues/16090) - Include current NetBox version when an unsupported plugin is detected +* [#16096](https://github.com/netbox-community/netbox/issues/16096) - Introduce the `ENABLE_TRANSLATION` configuration parameter +* [#16107](https://github.com/netbox-community/netbox/issues/16107) - Change the default value for `LOGIN_REQUIRED` to True +* [#16127](https://github.com/netbox-community/netbox/issues/16127) - Add integration point for unsupported settings ### Bug Fixes * [#16077](https://github.com/netbox-community/netbox/issues/16077) - Fix display of parameter values when viewing configuration revisions * [#16078](https://github.com/netbox-community/netbox/issues/16078) - Fix integer filters mistakenly marked as required for GraphQL API * [#16101](https://github.com/netbox-community/netbox/issues/16101) - Fix initial loading of pagination widget for dynamic object tables +* [#16123](https://github.com/netbox-community/netbox/issues/16123) - Fix custom script execution via REST API +* [#16124](https://github.com/netbox-community/netbox/issues/16124) - Fix GraphQL API support for querying virtual machine interfaces --- From 70c0aec53a96f61bc4d641d8995c91a64ec0365c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 14 May 2024 11:02:17 -0400 Subject: [PATCH 21/21] Release v4.0.2 --- .github/ISSUE_TEMPLATE/bug_report.yaml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yaml | 2 +- base_requirements.txt | 2 +- docs/release-notes/version-4.0.md | 5 ++++- netbox/netbox/settings.py | 2 +- netbox/project-static/package.json | 2 +- netbox/project-static/yarn.lock | 14 +++++++------- requirements.txt | 8 ++++---- 8 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 21e66ec05b..b87d627edc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -26,7 +26,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.0.1 + placeholder: v4.0.2 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index 671fdbf87a..6c245c7ef4 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.0.1 + placeholder: v4.0.2 validations: required: true - type: dropdown diff --git a/base_requirements.txt b/base_requirements.txt index 305df4dbae..9912f1d6b1 100644 --- a/base_requirements.txt +++ b/base_requirements.txt @@ -131,7 +131,7 @@ social-auth-app-django strawberry-graphql # Strawberry GraphQL Django extension -# https://github.com/strawberry-graphql/strawberry-django/blob/main/CHANGELOG.md +# https://github.com/strawberry-graphql/strawberry-django/releases strawberry-graphql-django # SVG image rendering (used for rack elevations) diff --git a/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md index a136da5bd6..0970b0357c 100644 --- a/docs/release-notes/version-4.0.md +++ b/docs/release-notes/version-4.0.md @@ -1,6 +1,9 @@ # NetBox v4.0 -## v4.0.2 (FUTURE) +## v4.0.2 (2024-05-14) + +!!! warning "Important" + This release includes an important security fix, and is a strongly recommended update for all users. More details will follow. ### Enhancements diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index c9e2d1de19..dd8ffa2bd9 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -25,7 +25,7 @@ # Environment setup # -VERSION = '4.0.2-dev' +VERSION = '4.0.2' HOSTNAME = platform.node() # Set the base directory two levels up BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json index e11df25206..6a971332e3 100644 --- a/netbox/project-static/package.json +++ b/netbox/project-static/package.json @@ -30,7 +30,7 @@ "gridstack": "10.1.2", "htmx.org": "1.9.12", "query-string": "9.0.0", - "sass": "1.77.0", + "sass": "1.77.1", "tom-select": "2.3.1", "typeface-inter": "3.18.1", "typeface-roboto-mono": "1.1.13" diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock index e7d96b9e50..5a8df2293d 100644 --- a/netbox/project-static/yarn.lock +++ b/netbox/project-static/yarn.lock @@ -1816,9 +1816,9 @@ ignore@^5.2.0: integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" + integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== import-fresh@^3.2.1: version "3.3.0" @@ -2482,10 +2482,10 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -sass@1.77.0: - version "1.77.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.0.tgz#e736c69aff9fae4a4e6dae60a979eee9c942f321" - integrity sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw== +sass@1.77.1: + version "1.77.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.1.tgz#018cdfb206afd14724030c02e9fefd8f30a76cd0" + integrity sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" diff --git a/requirements.txt b/requirements.txt index 02d9a180b1..9c3edf6ee3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,18 +20,18 @@ feedparser==6.0.11 gunicorn==22.0.0 Jinja2==3.1.4 Markdown==3.6 -mkdocs-material==9.5.21 +mkdocs-material==9.5.22 mkdocstrings[python-legacy]==0.25.1 netaddr==1.2.1 nh3==0.2.17 Pillow==10.3.0 -psycopg[c,pool]==3.1.18 +psycopg[c,pool]==3.1.19 PyYAML==6.0.1 requests==2.31.0 social-auth-app-django==5.4.1 social-auth-core==4.5.4 -strawberry-graphql==0.227.4 -strawberry-graphql-django==0.39.2 +strawberry-graphql==0.229.0 +strawberry-graphql-django==0.40.0 svgwrite==1.4.3 tablib==3.6.1 tzdata==2024.1