diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 21e66ec05be..b87d627edc2 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 671fdbf87a2..6c245c7ef41 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/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index a1bbb0b7efa..7a29c8f08e9 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 diff --git a/base_requirements.txt b/base_requirements.txt index 305df4dbaed..9912f1d6b18 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/configuration/security.md b/docs/configuration/security.md index 45d5bed3f39..15702f6490f 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/docs/configuration/system.md b/docs/configuration/system.md index d0814bca6c2..a1e0ebb17f9 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/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md index 42926243b29..0970b0357c5 100644 --- a/docs/release-notes/version-4.0.md +++ b/docs/release-notes/version-4.0.md @@ -1,5 +1,28 @@ # NetBox v4.0 +## 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 + +* [#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 + +--- + ## v4.0.1 (2024-05-09) ### Enhancements diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index abe8301a22a..67099523105 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/extras/api/views.py b/netbox/extras/api/views.py index 0a53037412f..1f76467b5e2 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'], diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 3738f31028d..8c78ad0dec1 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/ipam/forms/filtersets.py b/netbox/ipam/forms/filtersets.py index 6610bcaf3cc..807205aef39 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) diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index 16ee7bbf0c7..20ba35c6b62 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/ipam/views.py b/netbox/ipam/views.py index 044474ec4eb..2c00c318bcd 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/configuration_example.py b/netbox/netbox/configuration_example.py index b22fd7b2fc7..84ead53390f 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/constants.py b/netbox/netbox/constants.py index 6a69280215d..e797f4f295e 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/graphql/filter_mixins.py b/netbox/netbox/graphql/filter_mixins.py index bfb95856373..322435c7202 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/netbox/plugins/__init__.py b/netbox/netbox/plugins/__init__.py index 8db945e7413..e2f0f22fce4 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 diff --git a/netbox/netbox/preferences.py b/netbox/netbox/preferences.py index d560ef1ddd3..d911aabb08e 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 8fba7cffcbd..dd8ffa2bd92 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' HOSTNAME = platform.node() # Set the base directory two levels up BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -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('/') @@ -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') @@ -801,3 +805,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 diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index 38f7248e647..2697c4bc0ee 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_plugins.py b/netbox/netbox/tests/test_plugins.py index 24bc5300593..9ce20e204c5 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/netbox/tests/test_views.py b/netbox/netbox/tests/test_views.py index 1942471b0d2..ccba73baa96 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) diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 65ab490e0cf..243ae2547d8 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/project-static/package.json b/netbox/project-static/package.json index e11df252065..6a971332e37 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 e7d96b9e50b..5a8df2293d5 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/netbox/templates/core/configrevision.html b/netbox/templates/core/configrevision.html index 0aa7b3f0528..71831e161f2 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 %}
diff --git a/netbox/templates/core/system.html b/netbox/templates/core/system.html index 95aa4bdb312..320038ac661 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 }} diff --git a/netbox/templates/htmx/table.html b/netbox/templates/htmx/table.html index 155e7f9c3e2..f93c86a348b 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 5c94d9569e9..122cdf05011 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 06d3d9b721f..446a77643c3 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 %} \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 " diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo index c0fa4f9d8f2..f276eedd898 100644 Binary files a/netbox/translations/es/LC_MESSAGES/django.mo and b/netbox/translations/es/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/es/LC_MESSAGES/django.po b/netbox/translations/es/LC_MESSAGES/django.po index f4cd43118b3..4db765e3c76 100644 --- a/netbox/translations/es/LC_MESSAGES/django.po +++ b/netbox/translations/es/LC_MESSAGES/django.po @@ -11,7 +11,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: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n" @@ -23,7 +23,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 "Llave" @@ -55,7 +55,7 @@ msgstr "Utilizado por ú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 permitidas" @@ -64,8 +64,8 @@ msgid "Your preferences have been updated." msgstr "Se han actualizado tus preferencias." #: 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 "Planificado" @@ -76,7 +76,7 @@ msgstr "Aprovisionamiento" #: 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 @@ -86,7 +86,7 @@ msgid "Active" msgstr "Activo" #: 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 "Desconectado" @@ -160,8 +160,8 @@ msgstr "Grupo de sitios (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 @@ -261,7 +261,7 @@ msgstr "Terminación 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 @@ -284,7 +284,7 @@ msgstr "Red de proveedores (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" @@ -448,7 +448,7 @@ msgstr "Color" #: 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 @@ -498,7 +498,7 @@ msgstr "Cuenta de proveedor" #: 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 @@ -514,7 +514,7 @@ msgstr "Cuenta de proveedor" #: 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 @@ -558,7 +558,7 @@ msgstr "Estado" #: 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 @@ -696,8 +696,8 @@ msgstr "Red de proveedores" #: 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 @@ -736,7 +736,7 @@ msgstr "Contactos" #: 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 @@ -756,8 +756,8 @@ msgstr "Región" #: 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 @@ -781,8 +781,8 @@ msgstr "Grupo de sitios" #: 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 @@ -1187,7 +1187,7 @@ msgstr "Completado" #: 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 "Falló" @@ -1255,7 +1255,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "Solo se usa para clonar con 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 "Contraseña" @@ -1319,8 +1319,8 @@ msgid "Ignore rules" msgstr "Ignorar las reglas" #: 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 @@ -1393,8 +1393,8 @@ msgstr "Completado 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 "usuario" @@ -1426,7 +1426,7 @@ msgstr "" msgid "Rack Elevations" msgstr "Elevaciones de estanterías" -#: 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 @@ -1463,7 +1463,7 @@ msgid "User Preferences" msgstr "Preferencias de usuario" #: 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 "Misceláneo" @@ -1538,7 +1538,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" @@ -1725,7 +1725,7 @@ msgstr "Última actualización" #: 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" @@ -1734,7 +1734,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 @@ -1779,7 +1779,7 @@ msgstr "Trabajadores" msgid "Host" msgstr "Anfitrión" -#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535 msgid "Port" msgstr "Puerto" @@ -1846,7 +1846,7 @@ msgid "Staging" msgstr "Puesta en escena" #: 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 "Desmantelamiento" @@ -1906,7 +1906,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 "Pulgadas" @@ -1981,7 +1981,7 @@ msgstr "De derecha a izquierda" msgid "Side to rear" msgstr "De lado a atrás" -#: dcim/choices.py:198 dcim/choices.py:1221 +#: dcim/choices.py:198 dcim/choices.py:1225 msgid "Passive" msgstr "Pasivo" @@ -2009,8 +2009,8 @@ msgstr "Internacional/ITA" msgid "Proprietary" msgstr "Proprietario" -#: 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 "Otros" @@ -2023,22 +2023,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 "inalámbrico" -#: dcim/choices.py:950 +#: dcim/choices.py:952 msgid "Virtual interfaces" msgstr "Interfaces virtuales" -#: 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 @@ -2048,152 +2048,152 @@ msgstr "Interfaces virtuales" msgid "Bridge" msgstr "puente" -#: dcim/choices.py:954 +#: dcim/choices.py:956 msgid "Link Aggregation Group (LAG)" msgstr "Grupo de agregación de enlaces (LAG)" -#: dcim/choices.py:958 +#: dcim/choices.py:960 msgid "Ethernet (fixed)" msgstr "Ethernet (fijo)" -#: 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 (placa base)" -#: 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 "serie" -#: dcim/choices.py:1101 +#: dcim/choices.py:1105 msgid "Coaxial" msgstr "Coaxial" -#: dcim/choices.py:1118 +#: dcim/choices.py:1122 msgid "Stacking" msgstr "Apilamiento" -#: dcim/choices.py:1168 +#: dcim/choices.py:1172 msgid "Half" msgstr "Mitad" -#: dcim/choices.py:1169 +#: dcim/choices.py:1173 msgid "Full" msgstr "Lleno" -#: 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 "Auto" -#: dcim/choices.py:1181 +#: dcim/choices.py:1185 msgid "Access" msgstr "Acceso" -#: 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 "Etiquetado" -#: dcim/choices.py:1183 +#: dcim/choices.py:1187 msgid "Tagged (All)" msgstr "Etiquetado (Todos)" -#: dcim/choices.py:1212 +#: dcim/choices.py:1216 msgid "IEEE Standard" msgstr "Estándar IEEE" -#: dcim/choices.py:1223 +#: dcim/choices.py:1227 msgid "Passive 24V (2-pair)" msgstr "Pasivo 24 V (2 pares)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "Pasivo de 24 V (4 pares)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "Pasivo 48 V (2 pares)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "Pasivo de 48 V (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 "Kilómetros" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 +#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "Medidores" -#: dcim/choices.py:1445 +#: dcim/choices.py:1449 msgid "Centimeters" msgstr "Centímetros" -#: dcim/choices.py:1446 +#: dcim/choices.py:1450 msgid "Miles" msgstr "Millas" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 +#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "Pies" -#: 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 "Kilogramos" -#: dcim/choices.py:1464 +#: dcim/choices.py:1468 msgid "Grams" msgstr "Gramos" -#: 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 "Onzas" -#: dcim/choices.py:1512 tenancy/choices.py:17 +#: dcim/choices.py:1516 tenancy/choices.py:17 msgid "Primary" msgstr "Primaria" -#: dcim/choices.py:1513 +#: dcim/choices.py:1517 msgid "Redundant" msgstr "Redundante" -#: dcim/choices.py:1534 +#: dcim/choices.py:1538 msgid "Single phase" msgstr "Monofásico" -#: dcim/choices.py:1535 +#: dcim/choices.py:1539 msgid "Three-phase" msgstr "Trifásico" @@ -2564,7 +2564,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 @@ -2653,7 +2653,7 @@ msgid "Power panel (ID)" msgstr "Panel de alimentación (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 @@ -2742,7 +2742,7 @@ msgstr "Zona horaria" #: 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 @@ -2855,7 +2855,7 @@ msgstr "Unidad 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 @@ -3006,7 +3006,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 @@ -3206,7 +3206,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" @@ -3404,6 +3404,7 @@ msgstr "Chasis 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 @@ -3827,7 +3828,7 @@ msgstr "Conexión" #: 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 "Amable" @@ -5733,7 +5734,7 @@ msgstr "Accesible" #: 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" @@ -5743,7 +5744,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 @@ -5811,8 +5812,8 @@ msgid "Power outlets" msgstr "tomas de corriente" #: 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 @@ -5820,7 +5821,7 @@ msgstr "tomas de corriente" #: 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" @@ -5867,7 +5868,7 @@ msgid "Allocated draw (W)" msgstr "Sorteo asignado (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 @@ -5899,7 +5900,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 @@ -5942,7 +5943,7 @@ msgid "Module Types" msgstr "Tipos de módulos" #: 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" @@ -5963,60 +5964,60 @@ msgstr "Altura en U" msgid "Instances" msgstr "Instancias" -#: 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 "Puertos de consola" -#: 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 "Puertos de servidor de consola" -#: 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 "Puertos de alimentación" -#: 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 "Tomas de corriente" -#: 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 "Puertos frontales" -#: 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 "Puertos traseros" -#: 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 "Bahías 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" @@ -6062,42 +6063,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 "Sitios" -#: dcim/tests/test_api.py:49 +#: dcim/tests/test_api.py:50 msgid "Test case must set peer_termination_type" msgstr "El caso de prueba debe establecer 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 "Reservaciones" -#: 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 no rakeados" -#: 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 configuración" -#: dcim/views.py:2045 virtualization/views.py:418 +#: dcim/views.py:2047 virtualization/views.py:417 msgid "Render Config" msgstr "Configuración de renderizado" -#: 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 virtuales" + +#: dcim/views.py:2989 ipam/tables/ip.py:233 msgid "Children" msgstr "Niños" @@ -6266,7 +6273,7 @@ msgstr "30 días" #: 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 "Crear" @@ -6342,11 +6349,11 @@ msgid "White" msgstr "blanco" #: 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 "Guión" @@ -6501,7 +6508,8 @@ msgid "Cluster type (slug)" msgstr "Tipo de clúster (babosa)" #: 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 clústeres" @@ -6519,7 +6527,7 @@ msgstr "Grupo de inquilinos" msgid "Tenant group (slug)" msgstr "Grupo de inquilinos (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 "Etiqueta" @@ -6638,7 +6646,7 @@ msgstr "Está activo" #: 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" @@ -6742,9 +6750,8 @@ msgid "Choices" msgstr "Opciones" #: 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 "Datos" @@ -6787,7 +6794,7 @@ msgstr "Eliminaciones de objetos" msgid "Job starts" msgstr "Comienza el trabajo" -#: 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 "Cese de puestos" @@ -6799,44 +6806,44 @@ msgstr "Tipo de objeto etiquetado" 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 "Regiones" -#: 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 sitios" -#: 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 "Ubicaciones" -#: 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 "Funciones" -#: 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 clústeres" -#: 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 clústeres" -#: 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 "Clústers" -#: 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" @@ -6854,7 +6861,7 @@ msgstr "Antes" msgid "Time" msgstr "Hora" -#: 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" @@ -6926,7 +6933,7 @@ msgstr "" "Código de plantilla Jinja2 para la URL del enlace. Haga referencia al 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 de plantilla" @@ -6938,13 +6945,13 @@ msgstr "Plantilla de exportación" msgid "Rendering" msgstr "Renderización" -#: 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 "" "El contenido de la plantilla se rellena desde la fuente remota seleccionada " "a continuación." -#: 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 "Debe especificar el contenido local o un archivo de datos" @@ -6987,45 +6994,45 @@ msgstr "Regla del evento" msgid "Conditions" msgstr "Condiciones" -#: extras/forms/model_forms.py:296 +#: extras/forms/model_forms.py:293 msgid "Creations" msgstr "Creaciones" -#: extras/forms/model_forms.py:297 +#: extras/forms/model_forms.py:294 msgid "Updates" msgstr "Actualizaciones" -#: extras/forms/model_forms.py:298 +#: extras/forms/model_forms.py:295 msgid "Deletions" msgstr "Eliminaciones" -#: extras/forms/model_forms.py:299 +#: extras/forms/model_forms.py:296 msgid "Job executions" msgstr "Ejecuciones de trabajos" -#: 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 "Asignación" -#: extras/forms/model_forms.py:485 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "" "Los datos se rellenan desde la fuente remota seleccionada a continuación." -#: extras/forms/model_forms.py:491 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "Debe especificar datos locales o un archivo de datos" -#: 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 "Contenido" @@ -8018,11 +8025,6 @@ msgstr "Fin del trabajo" msgid "Device Roles" msgstr "Funciones del 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 virtuales" - #: extras/tables/tables.py:466 templates/account/profile.html:19 #: templates/users/user.html:21 msgid "Full Name" @@ -8041,19 +8043,13 @@ msgid "Line" msgstr "Línea" #: extras/tables/tables.py:546 extras/tables/tables.py:571 -#: extras/tables/tables.py:575 msgid "Level" msgstr "Nivel" -#: extras/tables/tables.py:549 extras/tables/tables.py:585 +#: extras/tables/tables.py:549 extras/tables/tables.py:580 msgid "Message" msgstr "Mensaje" -#: extras/tables/tables.py:553 extras/tables/tables.py:589 -#: netbox/tables/tables.py:261 -msgid "No results found" -msgstr "No se han encontrado resultados" - #: extras/tables/tables.py:564 msgid "Method" msgstr "Método" @@ -8427,7 +8423,7 @@ msgstr "Nombre 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" @@ -8676,20 +8672,20 @@ msgstr "Asignado a una interfaz" msgid "DNS Name" msgstr "Nombre 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 "IDENTIFICADOR DE 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 @@ -9031,10 +9027,9 @@ msgstr "Las máscaras de direcciones IP iniciales y finales deben coincidir" #: 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 "" -"La dirección final debe ser inferior a la dirección inicial " -"({start_address})" +"La dirección final debe ser mayor que la dirección inicial ({start_address})" #: ipam/models/ip.py:589 #, python-brace-format @@ -9196,7 +9191,7 @@ msgid "The primary function of this VLAN" msgstr "La función principal de esta 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" @@ -9272,7 +9267,7 @@ msgid "Added" msgstr "Añadido" #: 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 "Prefijos" @@ -9373,23 +9368,23 @@ msgstr "" "Solo se permiten caracteres alfanuméricos, asteriscos, guiones, puntos y " "guiones bajos en los nombres DNS" -#: ipam/views.py:536 +#: ipam/views.py:535 msgid "Child Prefixes" msgstr "Prefijos infantiles" -#: ipam/views.py:571 +#: ipam/views.py:570 msgid "Child Ranges" msgstr "Rangos infantiles" -#: ipam/views.py:887 +#: ipam/views.py:886 msgid "Related IPs" msgstr "IPs relacionadas" -#: 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" @@ -9942,7 +9937,7 @@ msgstr "Virtualización" #: 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 virtuales" @@ -10064,44 +10059,44 @@ msgid "Admin" msgstr "Admin" #: 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 "usuarios" -#: 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 "Permisos" -#: 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 "Historial de configuración" -#: 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 "Tareas en segundo plano" -#: 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" @@ -10171,49 +10166,56 @@ msgstr "Navegación HTMX" msgid "Enable dynamic UI navigation" msgstr "Habilitar la navegación dinámica por interfaz de usuario" +#: netbox/preferences.py:26 +msgid "Experimental feature" +msgstr "Función experimental" + #: netbox/preferences.py:29 msgid "Language" msgstr "Idioma" #: netbox/preferences.py:34 -msgid "Forces UI translation to the specified language." -msgstr "" -"Fuerza la traducción de la interfaz de usuario al idioma especificado." +msgid "Forces UI translation to the specified language" +msgstr "Fuerza la traducción de la interfaz de usuario al idioma especificado" + +#: netbox/preferences.py:36 +msgid "Support for translation has been disabled locally" +msgstr "La compatibilidad con la traducción se ha desactivado localmente" -#: netbox/preferences.py:37 +#: netbox/preferences.py:42 msgid "Page length" msgstr "Longitud de página" -#: netbox/preferences.py:39 +#: netbox/preferences.py:44 msgid "The default number of objects to display per page" msgstr "El número predeterminado de objetos que se mostrarán por página" -#: netbox/preferences.py:43 +#: netbox/preferences.py:48 msgid "Paginator placement" msgstr "Colocación del 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 "Parte superior" -#: 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 "" "Dónde se mostrarán los controles del paginador en relación con una tabla" -#: netbox/preferences.py:55 +#: netbox/preferences.py:60 msgid "Data format" msgstr "Formato de datos" -#: netbox/preferences.py:60 +#: netbox/preferences.py:65 msgid "The preferred syntax for displaying generic data within the UI" msgstr "" "La sintaxis preferida para mostrar datos genéricos en la interfaz de usuario" @@ -10231,31 +10233,31 @@ msgstr "No se pueden agregar tiendas al registro después de la inicialización" msgid "Cannot delete stores from registry" msgstr "No se pueden eliminar las tiendas del registro" -#: netbox/settings.py:706 +#: netbox/settings.py:715 msgid "English" msgstr "Inglés" -#: netbox/settings.py:707 +#: netbox/settings.py:716 msgid "Spanish" msgstr "española" -#: netbox/settings.py:708 +#: netbox/settings.py:717 msgid "French" msgstr "francesa" -#: netbox/settings.py:709 +#: netbox/settings.py:718 msgid "Japanese" msgstr "japonés" -#: netbox/settings.py:710 +#: netbox/settings.py:719 msgid "Portuguese" msgstr "portugués" -#: netbox/settings.py:711 +#: netbox/settings.py:720 msgid "Russian" msgstr "rusa" -#: netbox/settings.py:712 +#: netbox/settings.py:721 msgid "Turkish" msgstr "turca" @@ -10271,11 +10273,16 @@ msgstr "Alternar menú desplegable" msgid "Error" msgstr "Error" -#: 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 "No {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" @@ -10296,7 +10303,7 @@ msgstr "Registro de cambios" msgid "Journal" msgstr "diario" -#: 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} debe implementar get_children ()" @@ -10339,7 +10346,7 @@ msgstr "" msgid "The complete exception is provided below" msgstr "La excepción completa se proporciona a continuación" -#: templates/500.html:33 +#: templates/500.html:33 templates/core/system.html:35 msgid "Python version" msgstr "Versión de Python" @@ -10394,7 +10401,7 @@ msgstr "Cambiar contraseña" #: 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" @@ -10437,7 +10444,7 @@ msgid "Columns" msgstr "Columnas" #: 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 "No se encontró ninguno" @@ -10485,7 +10492,6 @@ msgstr "Grupos asignados" #: 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 @@ -10621,7 +10627,7 @@ msgstr "Añadir" #: 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" @@ -10958,39 +10964,39 @@ msgstr "Exportación" msgid "System Status" msgstr "Estado del sistema" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "Versión Django" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" +#: templates/core/system.html:43 +msgid "PostgreSQL version" msgstr "Versión PostgreSQL" -#: templates/core/system.html:43 +#: templates/core/system.html:47 msgid "Database name" msgstr "Nombre de base de datos" -#: templates/core/system.html:47 +#: templates/core/system.html:51 msgid "Database size" msgstr "Tamaño de base de datos" -#: templates/core/system.html:52 +#: templates/core/system.html:56 msgid "Unavailable" msgstr "No disponible" -#: templates/core/system.html:57 +#: templates/core/system.html:61 msgid "RQ workers" msgstr "Trabajadores de RQ" -#: templates/core/system.html:60 +#: templates/core/system.html:64 msgid "default queue" msgstr "cola predeterminada" -#: templates/core/system.html:64 +#: templates/core/system.html:68 msgid "System time" msgstr "Hora del sistema" -#: templates/core/system.html:86 +#: templates/core/system.html:90 msgid "Current Configuration" msgstr "Configuración actual" @@ -11696,7 +11702,7 @@ msgstr "Agregar nuevo miembro" #: 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 "Acciones" @@ -12040,20 +12046,12 @@ msgstr "días" 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 "" "El contexto de configuración local sobrescribe todos los contextos fuente" -#: templates/extras/object_configcontext.html:40 +#: templates/extras/object_configcontext.html:25 msgid "Source Contexts" msgstr "Contextos de origen" @@ -12453,20 +12451,20 @@ msgstr "" "Antes de poder añadir un %(model)s primero debes crear un " "%(prerequisite_model)s." -#: 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 05d27dadd7b..c20c3a06e65 100644 Binary files a/netbox/translations/fr/LC_MESSAGES/django.mo and b/netbox/translations/fr/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/fr/LC_MESSAGES/django.po b/netbox/translations/fr/LC_MESSAGES/django.po index 5aeea306326..75b5c4e56f7 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 258fa9f76aa..c6fa96d0910 100644 Binary files a/netbox/translations/ja/LC_MESSAGES/django.mo and b/netbox/translations/ja/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/ja/LC_MESSAGES/django.po b/netbox/translations/ja/LC_MESSAGES/django.po index 782f07e3feb..78020e5eb0b 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 001c852587a..8ecc863ff56 100644 Binary files a/netbox/translations/pt/LC_MESSAGES/django.mo and b/netbox/translations/pt/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/pt/LC_MESSAGES/django.po b/netbox/translations/pt/LC_MESSAGES/django.po index 4e480caa8f2..ceeef2aa906 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 eba8b13b1c3..eabb86572c0 100644 Binary files a/netbox/translations/ru/LC_MESSAGES/django.mo and b/netbox/translations/ru/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/ru/LC_MESSAGES/django.po b/netbox/translations/ru/LC_MESSAGES/django.po index f1da0833416..131d7346750 100644 --- a/netbox/translations/ru/LC_MESSAGES/django.po +++ b/netbox/translations/ru/LC_MESSAGES/django.po @@ -11,6 +11,7 @@ # Михаил Башкиров, 2024 # Сергей Стрельцов, 2024 # Artem Kotik, 2024 +# Ivan Petrov, 2024 # Jeremy Stretch, 2024 # #, fuzzy @@ -18,7 +19,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: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n" @@ -30,7 +31,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 "Ключ" @@ -62,7 +63,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-адреса" @@ -71,8 +72,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 "Запланировано" @@ -83,7 +84,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 @@ -93,7 +94,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 "Оффлайн" @@ -167,8 +168,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 @@ -268,7 +269,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 @@ -291,7 +292,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" @@ -455,7 +456,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 @@ -505,7 +506,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 @@ -521,7 +522,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 @@ -565,7 +566,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 @@ -703,8 +704,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 @@ -743,7 +744,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 @@ -763,8 +764,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 @@ -788,8 +789,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 @@ -1195,7 +1196,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 "Неисправно" @@ -1263,7 +1264,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "Используется только для клонирования по 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 "Пароль" @@ -1327,8 +1328,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 @@ -1401,8 +1402,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 "Пользователь" @@ -1433,7 +1434,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 @@ -1470,7 +1471,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 "Разное" @@ -1545,7 +1546,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" @@ -1731,7 +1732,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" @@ -1740,7 +1741,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 @@ -1785,7 +1786,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 "Порт" @@ -1852,7 +1853,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 "Вывод из эксплуатации" @@ -1912,7 +1913,7 @@ msgstr "Выведенный(-ая) из использования" msgid "Millimeters" msgstr "Миллиметры" -#: dcim/choices.py:115 dcim/choices.py:1448 +#: dcim/choices.py:115 dcim/choices.py:1452 msgid "Inches" msgstr "Дюймы" @@ -1987,7 +1988,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 "Пассивный" @@ -2015,8 +2016,8 @@ msgstr "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 "Другой" @@ -2029,22 +2030,22 @@ msgstr "ITA/Международный" 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 @@ -2054,152 +2055,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 "Ethernet (фиксированный)" -#: dcim/choices.py:972 +#: dcim/choices.py:974 msgid "Ethernet (modular)" msgstr "Ethernet (модульный)" -#: dcim/choices.py:1008 +#: dcim/choices.py:1010 msgid "Ethernet (backplane)" msgstr "Ethernet (объединительная плата)" -#: 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 "Пассивный режим 24 В (2 пары)" -#: dcim/choices.py:1224 +#: dcim/choices.py:1228 msgid "Passive 24V (4-pair)" msgstr "Пассивное напряжение 24 В (4 пары)" -#: dcim/choices.py:1225 +#: dcim/choices.py:1229 msgid "Passive 48V (2-pair)" msgstr "Пассивное напряжение 48 В (2 пары)" -#: dcim/choices.py:1226 +#: dcim/choices.py:1230 msgid "Passive 48V (4-pair)" msgstr "Пассивное напряжение 48 В (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 "Трехфазный" @@ -2570,7 +2571,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 @@ -2659,7 +2660,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 @@ -2748,7 +2749,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 @@ -2861,7 +2862,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 @@ -3012,7 +3013,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 @@ -3212,7 +3213,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" @@ -3409,6 +3410,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 @@ -3832,7 +3834,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 "Вид" @@ -5714,7 +5716,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 "Устройства" @@ -5724,7 +5726,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 @@ -5792,8 +5794,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 @@ -5801,7 +5803,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 "Интерфейсы" @@ -5848,7 +5850,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 @@ -5880,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 @@ -5923,7 +5925,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 "Платформы" @@ -5944,60 +5946,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" @@ -6043,43 +6045,49 @@ 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 "Потомки" @@ -6248,7 +6256,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 "Создайте" @@ -6324,11 +6332,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 "Сценарий" @@ -6484,7 +6492,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 "Кластерная группа" @@ -6502,7 +6511,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 "Тег" @@ -6621,7 +6630,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 "Типы объектов" @@ -6727,9 +6736,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 "Данные" @@ -6772,7 +6780,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 "Прекращение работы" @@ -6784,44 +6792,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 "Группы тенантов" @@ -6839,7 +6847,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" @@ -6910,7 +6918,7 @@ msgid "" msgstr "" "Код Jinja2 шаблона для URL-адреса. Ссылайтесь на объект как {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 "Код шаблона" @@ -6922,12 +6930,12 @@ 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 "Необходимо указать локальное содержимое или файл данных" @@ -6968,44 +6976,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 "Контент" @@ -7988,11 +7996,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" @@ -8011,19 +8014,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 "Метод" @@ -8393,7 +8390,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" @@ -8642,20 +8639,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 @@ -8996,8 +8993,8 @@ 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 @@ -9155,7 +9152,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" @@ -9231,7 +9228,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 "Префиксы" @@ -9333,23 +9330,23 @@ 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 "Интерфейсы виртуальных машин" @@ -9897,7 +9894,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 "Виртуальные диски" @@ -10019,44 +10016,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 "Разрешения" -#: 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 "Плагины" @@ -10127,48 +10124,56 @@ msgstr "Навигация по HTMX" 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." -msgstr "Принудительно переводит пользовательский интерфейс на указанный язык." +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 "" "Предпочтительный синтаксис для отображения общих данных в пользовательском " @@ -10187,31 +10192,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 "Турецкий" @@ -10227,11 +10232,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 "Нет {model_name} основать" + +#: 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 "Ценность" @@ -10252,7 +10262,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 "{class_name} должен реализовать get_children ()" @@ -10293,7 +10303,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 "Версия для Python" @@ -10348,7 +10358,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 "Отменить" @@ -10391,7 +10401,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 "Ничего не найдено" @@ -10439,7 +10449,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 @@ -10575,7 +10584,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" @@ -10912,39 +10921,39 @@ msgstr "Экспорт" msgid "System Status" msgstr "Состояние системы" -#: templates/core/system.html:35 +#: templates/core/system.html:39 msgid "Django version" msgstr "Версия для Django" -#: templates/core/system.html:39 -msgid "PotsgreSQL version" +#: templates/core/system.html:43 +msgid "PostgreSQL version" msgstr "Версия PostgreSQL" -#: 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 "Работники 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 "Текущая конфигурация" @@ -11648,7 +11657,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 "Действия" @@ -11991,19 +12000,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 "Исходные контексты" @@ -12404,20 +12405,20 @@ 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 "На страницу" @@ -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 769ce9292e7..1c548b4d122 100644 Binary files a/netbox/translations/tr/LC_MESSAGES/django.mo and b/netbox/translations/tr/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/tr/LC_MESSAGES/django.po b/netbox/translations/tr/LC_MESSAGES/django.po index be4afe1cbaf..ee03173645e 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 " diff --git a/netbox/users/forms/model_forms.py b/netbox/users/forms/model_forms.py index e5b9b612e79..7a9f63ea7f6 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 3eab4cb6e87..d7edf1f59c3 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 diff --git a/netbox/utilities/fields.py b/netbox/utilities/fields.py index 3f7ce6f5484..2640f6886e5 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 50917dd0f83..0a9389b1f3b 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 diff --git a/netbox/utilities/templates/builtins/htmx_table.html b/netbox/utilities/templates/builtins/htmx_table.html index 6a7959573af..b3ceed2c74a 100644 --- a/netbox/utilities/templates/builtins/htmx_table.html +++ b/netbox/utilities/templates/builtins/htmx_table.html @@ -1,5 +1,5 @@
diff --git a/netbox/utilities/testing/api.py b/netbox/utilities/testing/api.py index 4802c3ffe0e..019d6e6ca2b 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. @@ -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, diff --git a/netbox/utilities/testing/views.py b/netbox/utilities/testing/views.py index e3b12b4c3c7..6d4ca00df5c 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() diff --git a/netbox/virtualization/graphql/types.py b/netbox/virtualization/graphql/types.py index 8c19e1f1b3b..2d872322b6e 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( diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 1ddd2c92d39..56d8feb2665 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(), diff --git a/requirements.txt b/requirements.txt index 02d9a180b1c..9c3edf6ee3d 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