diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml index 8b4a54182..557cb3d63 100644 --- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml @@ -15,7 +15,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.3.2 + placeholder: v4.3.3 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml index c8b5c7695..77ca1ecc9 100644 --- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml @@ -27,7 +27,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.3.2 + placeholder: v4.3.3 validations: required: true - type: dropdown diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 100d996c6..af1954c9c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@

:jigsaw: Create a plugin · - :rescue_worker_helmet: Become a maintainer · + :briefcase: Work with us! · :heart: Other ideas

@@ -109,21 +109,9 @@ Do you have an idea for something you'd like to build in NetBox, but might not b Check out our [plugin development tutorial](https://github.com/netbox-community/netbox-plugin-tutorial) to get started! -## :rescue_worker_helmet: Become a Maintainer +## :briefcase: Looking for a Job? -We're always looking for motivated individuals to join the maintainers team and help drive NetBox's long-term development. Some of our most sought-after skills include: - -* Python development with a strong focus on the [Django](https://www.djangoproject.com/) framework -* Expertise working with PostgreSQL databases -* Javascript & TypeScript proficiency -* A knack for web application design (HTML & CSS) -* Familiarity with git and software development best practices -* Excellent attention to detail -* Working experience in the field of network operations & engineering - -We generally ask that maintainers dedicate around four hours of work to the project each week on average, which includes both hands-on development and project management tasks such as issue triage. Maintainers are also encouraged (but not required) to attend our bi-weekly Zoom call to catch up on recent items. - -Interested? You can contact our lead maintainer, Jeremy Stretch, at jeremy@netbox.dev or on the [NetDev Community Slack](https://netdev.chat/). We'd love to have you on the team! +At [NetBox Labs](https://netboxlabs.com/), we're always looking for highly skilled and motivated people to join our team. While NetBox is a core part of our product lineup, we have an ever-expanding suite of solutions serving the network automation space. Check out our [current openings](https://netboxlabs.com/careers/) to see if you might be a fit! ## :heart: Other Ways to Contribute diff --git a/README.md b/README.md index 3a29a6fd2..745205a24 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Languages supported CI status

- NetBox Community | + NetBox Community | NetBox Cloud | NetBox Enterprise

diff --git a/base_requirements.txt b/base_requirements.txt index 0c6e308e1..e52ff042e 100644 --- a/base_requirements.txt +++ b/base_requirements.txt @@ -140,7 +140,8 @@ strawberry-graphql # Strawberry GraphQL Django extension # https://github.com/strawberry-graphql/strawberry-django/releases -strawberry-graphql-django +# See #19771 +strawberry-graphql-django==0.60.0 # SVG image rendering (used for rack elevations) # https://github.com/mozman/svgwrite/blob/master/NEWS.rst diff --git a/docs/development/release-checklist.md b/docs/development/release-checklist.md index 3f36a8b87..5478e37e9 100644 --- a/docs/development/release-checklist.md +++ b/docs/development/release-checklist.md @@ -166,7 +166,8 @@ Then, compile these portable (`.po`) files for use in the application: ### Update Version and Changelog -* Update the version number and date in `netbox/release.yaml` and `pyproject.toml`. Add or remove the designation (e.g. `beta1`) if applicable. +* Update the version number and published date in `netbox/release.yaml`. Add or remove the designation (e.g. `beta1`) if applicable. +* Copy the version number from `release.yaml` to `pyproject.toml` in the project root. * Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`. * Add a section for this release at the top of the changelog page for the minor version (e.g. `docs/release-notes/version-4.2.md`) listing all relevant changes made in this release. diff --git a/docs/features/background-jobs.md b/docs/features/background-jobs.md index 204951ba7..fe4a6337a 100644 --- a/docs/features/background-jobs.md +++ b/docs/features/background-jobs.md @@ -2,9 +2,9 @@ NetBox includes the ability to execute certain functions as background tasks. These include: -* [Report](../customization/reports.md) execution * [Custom script](../customization/custom-scripts.md) execution * Synchronization of [remote data sources](../integrations/synchronized-data.md) +* Housekeeping tasks Additionally, NetBox plugins can enqueue their own background tasks. This is accomplished using the [Job model](../models/core/job.md). Background tasks are executed by the `rqworker` process(es). diff --git a/docs/installation/upgrading.md b/docs/installation/upgrading.md index 21ffa9766..0a02f7a04 100644 --- a/docs/installation/upgrading.md +++ b/docs/installation/upgrading.md @@ -135,7 +135,7 @@ Check out the desired release by specifying its tag. For example: ``` cd /opt/netbox && \ -sudo git fetch && \ +sudo git fetch --tags && \ sudo git checkout v4.2.7 ``` diff --git a/docs/plugins/development/background-jobs.md b/docs/plugins/development/background-jobs.md index 9be52c3ca..6fc8c4e75 100644 --- a/docs/plugins/development/background-jobs.md +++ b/docs/plugins/development/background-jobs.md @@ -15,7 +15,6 @@ A background job implements a basic [Job](../../models/core/job.md) executor for ```python title="jobs.py" from netbox.jobs import JobRunner - class MyTestJob(JobRunner): class Meta: name = "My Test Job" @@ -25,6 +24,8 @@ class MyTestJob(JobRunner): # your logic goes here ``` +Completed jobs will have their status updated to "completed" by default, or "errored" if an unhandled exception was raised by the `run()` method. To intentionally mark a job as failed, raise the `core.exceptions.JobFailed` exception. (Note that "failed" differs from "errored" in that a failure may be expected under certain conditions, whereas an error is not.) + You can schedule the background job from within your code (e.g. from a model's `save()` method or a view) by calling `MyTestJob.enqueue()`. This method passes through all arguments to `Job.enqueue()`. However, no `name` argument must be passed, as the background job name will be used instead. !!! tip diff --git a/docs/release-notes/version-4.3.md b/docs/release-notes/version-4.3.md index 25d343884..d36698c00 100644 --- a/docs/release-notes/version-4.3.md +++ b/docs/release-notes/version-4.3.md @@ -1,5 +1,33 @@ # NetBox v4.3 +## v4.3.3 (2025-06-26) + +### Enhancements + +* [#17183](https://github.com/netbox-community/netbox/issues/17183) - Enable associating tags with object types during bulk import +* [#17719](https://github.com/netbox-community/netbox/issues/17719) - Introduce a user preference for table row striping +* [#19492](https://github.com/netbox-community/netbox/issues/19492) - Add a UI button to download the output of an executed custom script +* [#19499](https://github.com/netbox-community/netbox/issues/19499) - Support qualifying interfaces by parent device when bulk importing wireless links + +### Bug Fixes + +* [#19529](https://github.com/netbox-community/netbox/issues/19529) - Fix support for running custom scripts via the `runscript` management command +* [#19555](https://github.com/netbox-community/netbox/issues/19555) - Fix support for `schedule_at` when invoking a custom script via the REST API +* [#19617](https://github.com/netbox-community/netbox/issues/19617) - Ensure consistent styling of "connect" buttons in UI +* [#19640](https://github.com/netbox-community/netbox/issues/19640) - Restore ability to filter FHRP group assignments by device/VM in GraphQL API +* [#19644](https://github.com/netbox-community/netbox/issues/19644) - Atomic transactions should always employ database routing +* [#19659](https://github.com/netbox-community/netbox/issues/19659) - Populate initial device/VM selection for "add a service" button +* [#19665](https://github.com/netbox-community/netbox/issues/19665) - Correct field reference in wireless link model validation +* [#19667](https://github.com/netbox-community/netbox/issues/19667) - Fix `TypeError` exception when creating a new module profile type with no schema +* [#19673](https://github.com/netbox-community/netbox/issues/19673) - Ignore custom field references when compiling table prefetches +* [#19677](https://github.com/netbox-community/netbox/issues/19677) - Fix exception when passing null value to `present_in_vrf` filter +* [#19680](https://github.com/netbox-community/netbox/issues/19680) - Correct chronological ordering of change records resulting from device deletions +* [#19687](https://github.com/netbox-community/netbox/issues/19687) - Cellular interface types should be considered non-connectable +* [#19702](https://github.com/netbox-community/netbox/issues/19702) - Fix `DoesNotExist` exception when deleting a notification group with an associated event rule +* [#19745](https://github.com/netbox-community/netbox/issues/19745) - Fix bulk import of services with IP addresses assigned to FHRP groups + +--- + ## v4.3.2 (2025-06-05) ### Enhancements diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 62056cfbe..0b4439857 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -1,5 +1,5 @@ from django.contrib import messages -from django.db import transaction +from django.db import router, transaction from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ @@ -384,7 +384,7 @@ class CircuitSwapTerminations(generic.ObjectEditView): if termination_a and termination_z: # Use a placeholder to avoid an IntegrityError on the (circuit, term_side) unique constraint - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(CircuitTermination)): termination_a.term_side = '_' termination_a.save() termination_z.term_side = 'A' diff --git a/netbox/core/exceptions.py b/netbox/core/exceptions.py index 5790704c2..b4767a4fa 100644 --- a/netbox/core/exceptions.py +++ b/netbox/core/exceptions.py @@ -1,9 +1,19 @@ from django.core.exceptions import ImproperlyConfigured - -class SyncError(Exception): - pass +__all__ = ( + 'IncompatiblePluginError', + 'JobFailed', + 'SyncError', +) class IncompatiblePluginError(ImproperlyConfigured): pass + + +class JobFailed(Exception): + pass + + +class SyncError(Exception): + pass diff --git a/netbox/core/models/jobs.py b/netbox/core/models/jobs.py index 779e767b6..941f5fe67 100644 --- a/netbox/core/models/jobs.py +++ b/netbox/core/models/jobs.py @@ -187,15 +187,14 @@ class Job(models.Model): """ Mark the job as completed, optionally specifying a particular termination status. """ - valid_statuses = JobStatusChoices.TERMINAL_STATE_CHOICES - if status not in valid_statuses: + if status not in JobStatusChoices.TERMINAL_STATE_CHOICES: raise ValueError( _("Invalid status for job termination. Choices are: {choices}").format( - choices=', '.join(valid_statuses) + choices=', '.join(JobStatusChoices.TERMINAL_STATE_CHOICES) ) ) - # Mark the job as completed + # Set the job's status and completion time self.status = status if error: self.error = error diff --git a/netbox/core/signals.py b/netbox/core/signals.py index 4b537b2d4..8ba8cc244 100644 --- a/netbox/core/signals.py +++ b/netbox/core/signals.py @@ -162,6 +162,12 @@ def handle_deleted_object(sender, instance, **kwargs): getattr(obj, related_field_name).remove(instance) elif type(relation) is ManyToOneRel and relation.field.null is True: setattr(obj, related_field_name, None) + # make sure the object hasn't been deleted - in case of + # deletion chaining of related objects + try: + obj.refresh_from_db() + except DoesNotExist: + continue obj.save() # Enqueue the object for event processing diff --git a/netbox/core/tests/test_changelog.py b/netbox/core/tests/test_changelog.py index 4914dbaf3..df8461076 100644 --- a/netbox/core/tests/test_changelog.py +++ b/netbox/core/tests/test_changelog.py @@ -6,12 +6,13 @@ from rest_framework import status from core.choices import ObjectChangeActionChoices from core.models import ObjectChange, ObjectType from dcim.choices import SiteStatusChoices -from dcim.models import Site +from dcim.models import Site, CableTermination, Device, DeviceType, DeviceRole, Interface, Cable from extras.choices import * from extras.models import CustomField, CustomFieldChoiceSet, Tag from utilities.testing import APITestCase from utilities.testing.utils import create_tags, post_data from utilities.testing.views import ModelViewTestCase +from dcim.models import Manufacturer class ChangeLogViewTest(ModelViewTestCase): @@ -270,6 +271,81 @@ class ChangeLogViewTest(ModelViewTestCase): # Check that no ObjectChange records have been created self.assertEqual(ObjectChange.objects.count(), 0) + def test_ordering_genericrelation(self): + # Create required objects first + manufacturer = Manufacturer.objects.create(name='Manufacturer 1') + device_type = DeviceType.objects.create( + manufacturer=manufacturer, + model='Model 1', + slug='model-1' + ) + device_role = DeviceRole.objects.create( + name='Role 1', + slug='role-1' + ) + site = Site.objects.create( + name='Site 1', + slug='site-1' + ) + + # Create two devices + device1 = Device.objects.create( + name='Device 1', + device_type=device_type, + role=device_role, + site=site + ) + device2 = Device.objects.create( + name='Device 2', + device_type=device_type, + role=device_role, + site=site + ) + + # Create interfaces on both devices + interface1 = Interface.objects.create( + device=device1, + name='eth0', + type='1000base-t' + ) + interface2 = Interface.objects.create( + device=device2, + name='eth0', + type='1000base-t' + ) + + # Create a cable between the interfaces + _ = Cable.objects.create( + a_terminations=[interface1], + b_terminations=[interface2], + status='connected' + ) + + # Delete device1 + request = { + 'path': reverse('dcim:device_delete', kwargs={'pk': device1.pk}), + 'data': post_data({'confirm': True}), + } + self.add_permissions( + 'dcim.delete_device', + 'dcim.delete_interface', + 'dcim.delete_cable', + 'dcim.delete_cabletermination' + ) + response = self.client.post(**request) + self.assertHttpStatus(response, 302) + + # Get the ObjectChange records for delete actions ordered by time + changes = ObjectChange.objects.filter( + action=ObjectChangeActionChoices.ACTION_DELETE + ).order_by('time')[:3] + + # Verify the order of deletion + self.assertEqual(len(changes), 3) + self.assertEqual(changes[0].changed_object_type, ContentType.objects.get_for_model(CableTermination)) + self.assertEqual(changes[1].changed_object_type, ContentType.objects.get_for_model(Interface)) + self.assertEqual(changes[2].changed_object_type, ContentType.objects.get_for_model(Device)) + class ChangeLogAPITest(APITestCase): diff --git a/netbox/dcim/migrations/0206_load_module_type_profiles.py b/netbox/dcim/migrations/0206_load_module_type_profiles.py index 8f131570f..87661a8ac 100644 --- a/netbox/dcim/migrations/0206_load_module_type_profiles.py +++ b/netbox/dcim/migrations/0206_load_module_type_profiles.py @@ -19,7 +19,8 @@ def load_initial_data(apps, schema_editor): 'gpu', 'hard_disk', 'memory', - 'power_supply' + 'power_supply', + 'expansion_card' ) for name in initial_profiles: diff --git a/netbox/dcim/migrations/initial_data/module_type_profiles/expansion_card.json b/netbox/dcim/migrations/initial_data/module_type_profiles/expansion_card.json new file mode 100644 index 000000000..a1d2ffcab --- /dev/null +++ b/netbox/dcim/migrations/initial_data/module_type_profiles/expansion_card.json @@ -0,0 +1,15 @@ +{ + "name": "Expansion card", + "schema": { + "properties": { + "connector_type": { + "type": "string", + "description": "Connector type e.g. PCIe x4" + }, + "bandwidth": { + "type": "integer", + "description": "Total Bandwidth for this module" + } + } + } +} diff --git a/netbox/dcim/utils.py b/netbox/dcim/utils.py index 0931761bf..a03790ea2 100644 --- a/netbox/dcim/utils.py +++ b/netbox/dcim/utils.py @@ -1,6 +1,6 @@ from django.apps import apps from django.contrib.contenttypes.models import ContentType -from django.db import transaction +from django.db import router, transaction def compile_path_node(ct_id, object_id): @@ -53,7 +53,7 @@ def rebuild_paths(terminations): for obj in terminations: cable_paths = CablePath.objects.filter(_nodes__contains=obj) - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(CablePath)): for cp in cable_paths: cp.delete() create_cablepath(cp.origins) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 98223e3b0..304438698 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -1,7 +1,7 @@ from django.contrib import messages from django.contrib.contenttypes.models import ContentType from django.core.paginator import EmptyPage, PageNotAnInteger -from django.db import transaction +from django.db import router, transaction from django.db.models import Prefetch from django.forms import ModelMultipleChoiceField, MultipleHiddenInput, modelformset_factory from django.shortcuts import get_object_or_404, redirect, render @@ -124,7 +124,7 @@ class BulkDisconnectView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View) if form.is_valid(): - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(Cable)): count = 0 cable_ids = set() for obj in self.queryset.filter(pk__in=form.cleaned_data['pk']): @@ -3746,7 +3746,7 @@ class VirtualChassisEditView(ObjectPermissionRequiredMixin, GetReturnURLMixin, V if vc_form.is_valid() and formset.is_valid(): - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(Device)): # Save the VirtualChassis vc_form.save() diff --git a/netbox/extras/forms/scripts.py b/netbox/extras/forms/scripts.py index c237b9991..5f9820b44 100644 --- a/netbox/extras/forms/scripts.py +++ b/netbox/extras/forms/scripts.py @@ -1,13 +1,8 @@ -import os - -from django import forms -from django.conf import settings -from django.core.files.storage import storages -from django.utils.translation import gettext_lazy as _ - from core.choices import JobIntervalChoices from core.forms import ManagedFileForm -from extras.storage import ScriptFileSystemStorage +from django import forms +from django.core.files.storage import storages +from django.utils.translation import gettext_lazy as _ from utilities.datetime import local_now from utilities.forms.widgets import DateTimePicker, NumberWithOptions @@ -74,12 +69,7 @@ class ScriptFileForm(ManagedFileForm): storage = storages.create_storage(storages.backends["scripts"]) filename = self.cleaned_data['upload_file'].name - if isinstance(storage, ScriptFileSystemStorage): - full_path = os.path.join(settings.SCRIPTS_ROOT, filename) - else: - full_path = filename - - self.instance.file_path = full_path + self.instance.file_path = filename data = self.cleaned_data['upload_file'] storage.save(filename, data) diff --git a/netbox/extras/jobs.py b/netbox/extras/jobs.py index d41901dde..733654198 100644 --- a/netbox/extras/jobs.py +++ b/netbox/extras/jobs.py @@ -39,6 +39,9 @@ class ScriptJob(JobRunner): try: try: + # A script can modify multiple models so need to do an atomic lock on + # both the default database (for non ChangeLogged models) and potentially + # any other database (for ChangeLogged models) with transaction.atomic(): script.output = script.run(data, commit) if not commit: diff --git a/netbox/extras/migrations/0129_fix_script_paths.py b/netbox/extras/migrations/0129_fix_script_paths.py new file mode 100644 index 000000000..1ac8af6d8 --- /dev/null +++ b/netbox/extras/migrations/0129_fix_script_paths.py @@ -0,0 +1,56 @@ +from django.conf import settings +from django.core.files.storage import storages +from django.db import migrations +from urllib.parse import urlparse + +from extras.storage import ScriptFileSystemStorage + + +def normalize(url): + parsed_url = urlparse(url) + if not parsed_url.path.endswith('/'): + return url + '/' + return url + + +def fix_script_paths(apps, schema_editor): + """ + Fix script paths for scripts that had incorrect path from NB 4.3. + """ + storage = storages.create_storage(storages.backends["scripts"]) + if not isinstance(storage, ScriptFileSystemStorage): + return + + ScriptModule = apps.get_model('extras', 'ScriptModule') + script_root_path = normalize(settings.SCRIPTS_ROOT) + for script in ScriptModule.objects.filter(file_path__startswith=script_root_path): + script.file_path = script.file_path[len(script_root_path):] + script.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('extras', '0128_tableconfig'), + ] + + operations = [ + migrations.RunPython(code=fix_script_paths, reverse_code=migrations.RunPython.noop), + ] + + +def oc_fix_script_paths(objectchange, reverting): + script_root_path = normalize(settings.SCRIPTS_ROOT) + + for data in (objectchange.prechange_data, objectchange.postchange_data): + if data is None: + continue + + if file_path := data.get('file_path'): + if file_path.startswith(script_root_path): + data['file_path'] = file_path[len(script_root_path):] + + +objectchange_migrators = { + 'extras.scriptmodule': oc_fix_script_paths, +} diff --git a/netbox/extras/models/notifications.py b/netbox/extras/models/notifications.py index 7fe03147c..44874a4c8 100644 --- a/netbox/extras/models/notifications.py +++ b/netbox/extras/models/notifications.py @@ -1,7 +1,7 @@ from functools import cached_property from django.conf import settings -from django.contrib.contenttypes.fields import GenericForeignKey +from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation from django.core.exceptions import ValidationError from django.db import models from django.urls import reverse @@ -144,6 +144,12 @@ class NotificationGroup(ChangeLoggedModel): blank=True, related_name='notification_groups' ) + event_rules = GenericRelation( + to='extras.EventRule', + content_type_field='action_object_type', + object_id_field='action_object_id', + related_query_name='+' + ) objects = RestrictedQuerySet.as_manager() diff --git a/netbox/extras/views.py b/netbox/extras/views.py index ca4596fe8..ea465a4a4 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -1476,7 +1476,16 @@ class ScriptResultView(TableMixin, generic.ObjectView): table = None job = get_object_or_404(Job.objects.all(), pk=kwargs.get('job_pk')) - if job.completed: + # If a direct export output has been requested, return the job data content as a + # downloadable file. + if job.completed and request.GET.get('export') == 'output': + content = (job.data.get("output") or "").encode() + response = HttpResponse(content, content_type='text') + filename = f"{job.object.name or 'script-output'}_{job.completed.strftime('%Y-%m-%d_%H%M%S')}.txt" + response['Content-Disposition'] = f'attachment; filename="{filename}"' + return response + + elif job.completed: table = self.get_table(job, request, bulk_actions=False) log_threshold = request.GET.get('log_threshold', LogLevelChoices.LOG_INFO) diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index dadbc2e2e..b0a7ad408 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -2,7 +2,7 @@ from copy import deepcopy from django.contrib.contenttypes.prefetch import GenericPrefetch from django.core.exceptions import ObjectDoesNotExist, PermissionDenied -from django.db import transaction +from django.db import router, transaction from django.shortcuts import get_object_or_404 from django.utils.translation import gettext as _ from django_pglocks import advisory_lock @@ -295,7 +295,7 @@ class AvailableObjectsView(ObjectValidationMixin, APIView): # Create the new IP address(es) try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): created = serializer.save() self._validate_objects(created) except ObjectDoesNotExist: diff --git a/netbox/ipam/forms/bulk_import.py b/netbox/ipam/forms/bulk_import.py index d17944674..c0aa43461 100644 --- a/netbox/ipam/forms/bulk_import.py +++ b/netbox/ipam/forms/bulk_import.py @@ -633,7 +633,10 @@ class ServiceImportForm(NetBoxModelImportForm): # triggered parent = self.cleaned_data.get('parent') for ip_address in self.cleaned_data.get('ipaddresses', []): - if not ip_address.assigned_object or getattr(ip_address.assigned_object, 'parent_object') != parent: + if not (assigned := ip_address.assigned_object) or ( # no assigned object + (isinstance(parent, FHRPGroup) and assigned != parent) # assigned to FHRPGroup + and getattr(assigned, 'parent_object') != parent # assigned to [VM]Interface + ): raise forms.ValidationError( _("{ip} is not assigned to this parent.").format(ip=ip_address) ) diff --git a/netbox/ipam/graphql/filters.py b/netbox/ipam/graphql/filters.py index 53096af38..c66b8d483 100644 --- a/netbox/ipam/graphql/filters.py +++ b/netbox/ipam/graphql/filters.py @@ -11,10 +11,12 @@ from strawberry_django import FilterLookup, DateFilterLookup from core.graphql.filter_mixins import BaseObjectTypeFilterMixin, ChangeLogFilterMixin from dcim.graphql.filter_mixins import ScopedFilterMixin +from dcim.models import Device from ipam import models from ipam.graphql.filter_mixins import ServiceBaseFilterMixin from netbox.graphql.filter_mixins import NetBoxModelFilterMixin, OrganizationalModelFilterMixin, PrimaryModelFilterMixin from tenancy.graphql.filter_mixins import ContactFilterMixin, TenancyFilterMixin +from virtualization.models import VMInterface if TYPE_CHECKING: from netbox.graphql.filter_lookups import IntegerArrayLookup, IntegerLookup @@ -116,6 +118,30 @@ class FHRPGroupAssignmentFilter(BaseObjectTypeFilterMixin, ChangeLogFilterMixin) strawberry_django.filter_field() ) + @strawberry_django.filter_field() + def device_id(self, queryset, value: list[str], prefix) -> Q: + return self.filter_device('id', value) + + @strawberry_django.filter_field() + def device(self, value: list[str], prefix) -> Q: + return self.filter_device('name', value) + + @strawberry_django.filter_field() + def virtual_machine_id(self, value: list[str], prefix) -> Q: + return Q(interface_id__in=VMInterface.objects.filter(virtual_machine_id__in=value)) + + @strawberry_django.filter_field() + def virtual_machine(self, value: list[str], prefix) -> Q: + return Q(interface_id__in=VMInterface.objects.filter(virtual_machine__name__in=value)) + + def filter_device(self, field, value) -> Q: + """Helper to standardize logic for device and device_id filters""" + devices = Device.objects.filter(**{f'{field}__in': value}) + interface_ids = [] + for device in devices: + interface_ids.extend(device.vc_interfaces().values_list('id', flat=True)) + return Q(interface_id__in=interface_ids) + @strawberry_django.filter_type(models.IPAddress, lookups=True) class IPAddressFilter(ContactFilterMixin, TenancyFilterMixin, PrimaryModelFilterMixin): diff --git a/netbox/ipam/tests/test_views.py b/netbox/ipam/tests/test_views.py index 8ba011d1d..0b4f3b740 100644 --- a/netbox/ipam/tests/test_views.py +++ b/netbox/ipam/tests/test_views.py @@ -1068,6 +1068,9 @@ class ServiceTestCase(ViewTestCases.PrimaryObjectViewTestCase): role = DeviceRole.objects.create(name='Device Role 1', slug='device-role-1') device = Device.objects.create(name='Device 1', site=site, device_type=devicetype, role=role) interface = Interface.objects.create(device=device, name='Interface 1', type=InterfaceTypeChoices.TYPE_VIRTUAL) + fhrp_group = FHRPGroup.objects.create( + name='Group 1', group_id=1234, protocol=FHRPGroupProtocolChoices.PROTOCOL_CARP + ) services = ( Service(parent=device, name='Service 1', protocol=ServiceProtocolChoices.PROTOCOL_TCP, ports=[101]), @@ -1079,6 +1082,7 @@ class ServiceTestCase(ViewTestCases.PrimaryObjectViewTestCase): ip_addresses = ( IPAddress(assigned_object=interface, address='192.0.2.1/24'), IPAddress(assigned_object=interface, address='192.0.2.2/24'), + IPAddress(assigned_object=fhrp_group, address='192.0.2.3/24'), ) IPAddress.objects.bulk_create(ip_addresses) @@ -1100,6 +1104,7 @@ class ServiceTestCase(ViewTestCases.PrimaryObjectViewTestCase): "dcim.device,Device 1,Service 1,tcp,1,192.0.2.1/24,First service", "dcim.device,Device 1,Service 2,tcp,2,192.0.2.2/24,Second service", "dcim.device,Device 1,Service 3,udp,3,,Third service", + "ipam.fhrpgroup,Group 1,Service 4,udp,4,192.0.2.3/24,Fourth service", ) cls.csv_update_data = ( diff --git a/netbox/netbox/api/viewsets/__init__.py b/netbox/netbox/api/viewsets/__init__.py index 649510239..2039f735b 100644 --- a/netbox/netbox/api/viewsets/__init__.py +++ b/netbox/netbox/api/viewsets/__init__.py @@ -2,7 +2,7 @@ import logging from functools import cached_property from django.core.exceptions import ObjectDoesNotExist, PermissionDenied -from django.db import transaction +from django.db import router, transaction from django.db.models import ProtectedError, RestrictedError from django_pglocks import advisory_lock from netbox.constants import ADVISORY_LOCK_KEYS @@ -170,7 +170,7 @@ class NetBoxModelViewSet( # Enforce object-level permissions on save() try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): instance = serializer.save() self._validate_objects(instance) except ObjectDoesNotExist: @@ -190,7 +190,7 @@ class NetBoxModelViewSet( # Enforce object-level permissions on save() try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): instance = serializer.save() self._validate_objects(instance) except ObjectDoesNotExist: diff --git a/netbox/netbox/api/viewsets/mixins.py b/netbox/netbox/api/viewsets/mixins.py index e21be2348..4fedebad5 100644 --- a/netbox/netbox/api/viewsets/mixins.py +++ b/netbox/netbox/api/viewsets/mixins.py @@ -1,5 +1,5 @@ from django.core.exceptions import ObjectDoesNotExist -from django.db import transaction +from django.db import router, transaction from django.http import Http404 from rest_framework import status from rest_framework.response import Response @@ -56,22 +56,22 @@ class SequentialBulkCreatesMixin: which depends on the evaluation of existing objects (such as checking for free space within a rack) functions appropriately. """ - @transaction.atomic def create(self, request, *args, **kwargs): - if not isinstance(request.data, list): - # Creating a single object - return super().create(request, *args, **kwargs) + with transaction.atomic(using=router.db_for_write(self.queryset.model)): + if not isinstance(request.data, list): + # Creating a single object + return super().create(request, *args, **kwargs) - return_data = [] - for data in request.data: - serializer = self.get_serializer(data=data) - serializer.is_valid(raise_exception=True) - self.perform_create(serializer) - return_data.append(serializer.data) + return_data = [] + for data in request.data: + serializer = self.get_serializer(data=data) + serializer.is_valid(raise_exception=True) + self.perform_create(serializer) + return_data.append(serializer.data) - headers = self.get_success_headers(serializer.data) + headers = self.get_success_headers(serializer.data) - return Response(return_data, status=status.HTTP_201_CREATED, headers=headers) + return Response(return_data, status=status.HTTP_201_CREATED, headers=headers) class BulkUpdateModelMixin: @@ -113,7 +113,7 @@ class BulkUpdateModelMixin: return Response(data, status=status.HTTP_200_OK) def perform_bulk_update(self, objects, update_data, partial): - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): data_list = [] for obj in objects: data = update_data.get(obj.id) @@ -157,7 +157,7 @@ class BulkDestroyModelMixin: return Response(status=status.HTTP_204_NO_CONTENT) def perform_bulk_destroy(self, objects): - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): for obj in objects: if hasattr(obj, 'snapshot'): obj.snapshot() diff --git a/netbox/netbox/jobs.py b/netbox/netbox/jobs.py index 3af3af554..7b688e7a2 100644 --- a/netbox/netbox/jobs.py +++ b/netbox/netbox/jobs.py @@ -8,6 +8,7 @@ from django_pglocks import advisory_lock from rq.timeouts import JobTimeoutException from core.choices import JobStatusChoices +from core.exceptions import JobFailed from core.models import Job, ObjectType from netbox.constants import ADVISORY_LOCK_KEYS from netbox.registry import registry @@ -73,15 +74,21 @@ class JobRunner(ABC): This method is called by the Job Scheduler to handle the execution of all job commands. It will maintain the job's metadata and handle errors. For periodic jobs, a new job is automatically scheduled using its `interval`. """ + logger = logging.getLogger('netbox.jobs') + try: job.start() cls(job).run(*args, **kwargs) job.terminate() + except JobFailed: + logger.warning(f"Job {job} failed") + job.terminate(status=JobStatusChoices.STATUS_FAILED) + except Exception as e: job.terminate(status=JobStatusChoices.STATUS_ERRORED, error=repr(e)) if type(e) is JobTimeoutException: - logging.error(e) + logger.error(e) # If the executed job is a periodic job, schedule its next execution at the specified interval. finally: diff --git a/netbox/netbox/models/deletion.py b/netbox/netbox/models/deletion.py new file mode 100644 index 000000000..10416b748 --- /dev/null +++ b/netbox/netbox/models/deletion.py @@ -0,0 +1,90 @@ +import logging + +from django.contrib.contenttypes.fields import GenericRelation +from django.db import router +from django.db.models.deletion import Collector + +logger = logging.getLogger("netbox.models.deletion") + + +class CustomCollector(Collector): + """ + Custom collector that handles GenericRelations correctly. + """ + + def collect( + self, + objs, + source=None, + nullable=False, + collect_related=True, + source_attr=None, + reverse_dependency=False, + keep_parents=False, + fail_on_restricted=True, + ): + """ + Override collect to first collect standard dependencies, + then add GenericRelations to the dependency graph. + """ + # Call parent collect first to get all standard dependencies + super().collect( + objs, + source=source, + nullable=nullable, + collect_related=collect_related, + source_attr=source_attr, + reverse_dependency=reverse_dependency, + keep_parents=keep_parents, + fail_on_restricted=fail_on_restricted, + ) + + # Track which GenericRelations we've already processed to prevent infinite recursion + processed_relations = set() + + # Now add GenericRelations to the dependency graph + for _, instances in list(self.data.items()): + for instance in instances: + # Get all GenericRelations for this model + for field in instance._meta.private_fields: + if isinstance(field, GenericRelation): + # Create a unique key for this relation + relation_key = f"{instance._meta.model_name}.{field.name}" + if relation_key in processed_relations: + continue + processed_relations.add(relation_key) + + # Add the model that the generic relation points to as a dependency + self.add_dependency(field.related_model, instance, reverse_dependency=True) + + +class DeleteMixin: + """ + Mixin to override the model delete function to use our custom collector. + """ + + def delete(self, using=None, keep_parents=False): + """ + Override delete to use our custom collector. + """ + using = using or router.db_for_write(self.__class__, instance=self) + assert self._get_pk_val() is not None, "%s object can't be deleted because its %s attribute is set to None." % ( + self._meta.object_name, + self._meta.pk.attname, + ) + + collector = CustomCollector(using=using) + collector.collect([self], keep_parents=keep_parents) + + return collector.delete() + + delete.alters_data = True + + @classmethod + def verify_mro(cls, instance): + """ + Verify that this mixin is first in the MRO. + """ + mro = instance.__class__.__mro__ + if mro.index(cls) != 0: + raise RuntimeError(f"{cls.__name__} must be first in the MRO. Current MRO: {mro}") diff --git a/netbox/netbox/models/features.py b/netbox/netbox/models/features.py index 25f23c9d3..79145ce70 100644 --- a/netbox/netbox/models/features.py +++ b/netbox/netbox/models/features.py @@ -16,6 +16,7 @@ from extras.choices import * from extras.constants import CUSTOMFIELD_EMPTY_VALUES from extras.utils import is_taggable from netbox.config import get_config +from netbox.models.deletion import DeleteMixin from netbox.registry import registry from netbox.signals import post_clean from utilities.json import CustomFieldJSONEncoder @@ -45,7 +46,7 @@ __all__ = ( # Feature mixins # -class ChangeLoggingMixin(models.Model): +class ChangeLoggingMixin(DeleteMixin, models.Model): """ Provides change logging support for a model. Adds the `created` and `last_updated` fields. """ diff --git a/netbox/netbox/preferences.py b/netbox/netbox/preferences.py index 4fdb7e31f..31e99824e 100644 --- a/netbox/netbox/preferences.py +++ b/netbox/netbox/preferences.py @@ -54,6 +54,14 @@ PREFERENCES = { default='bottom', description=_('Where the paginator controls will be displayed relative to a table') ), + 'ui.tables.striping': UserPreference( + label=_('Striped table rows'), + choices=( + ('', _('Disabled')), + ('true', _('Enabled')), + ), + description=_('Render table rows with alternating colors to increase readability'), + ), # Miscellaneous 'data_format': UserPreference( diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py index d9170aa3d..63fd0ea0e 100644 --- a/netbox/netbox/tables/tables.py +++ b/netbox/netbox/tables/tables.py @@ -166,6 +166,8 @@ class BaseTable(tables.Table): columns = userconfig.get(f"tables.{self.name}.columns") if ordering is None: ordering = userconfig.get(f"tables.{self.name}.ordering") + if userconfig.get("ui.tables.striping"): + self.attrs['class'] += ' table-striped' # Fall back to the default columns & ordering if columns is None and hasattr(settings, 'DEFAULT_USER_PREFERENCES'): diff --git a/netbox/netbox/tests/test_jobs.py b/netbox/netbox/tests/test_jobs.py index e3e24a235..9885f73c5 100644 --- a/netbox/netbox/tests/test_jobs.py +++ b/netbox/netbox/tests/test_jobs.py @@ -7,11 +7,15 @@ from django_rq import get_queue from ..jobs import * from core.models import DataSource, Job from core.choices import JobStatusChoices +from core.exceptions import JobFailed +from utilities.testing import disable_warnings class TestJobRunner(JobRunner): + def run(self, *args, **kwargs): - pass + if kwargs.get('make_fail', False): + raise JobFailed() class JobRunnerTestCase(TestCase): @@ -49,6 +53,12 @@ class JobRunnerTest(JobRunnerTestCase): self.assertEqual(job.status, JobStatusChoices.STATUS_COMPLETED) + def test_handle_failed(self): + with disable_warnings('netbox.jobs'): + job = TestJobRunner.enqueue(immediate=True, make_fail=True) + + self.assertEqual(job.status, JobStatusChoices.STATUS_FAILED) + def test_handle_errored(self): class ErroredJobRunner(TestJobRunner): EXP = Exception('Test error') diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index 4fd23e84c..b52d12d98 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -6,7 +6,7 @@ from django.contrib import messages from django.contrib.contenttypes.fields import GenericForeignKey, GenericRel from django.contrib.contenttypes.models import ContentType from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist, ValidationError -from django.db import transaction, IntegrityError +from django.db import IntegrityError, router, transaction from django.db.models import ManyToManyField, ProtectedError, RestrictedError from django.db.models.fields.reverse_related import ManyToManyRel from django.forms import ModelMultipleChoiceField, MultipleHiddenInput @@ -278,7 +278,7 @@ class BulkCreateView(GetReturnURLMixin, BaseMultiObjectView): logger.debug("Form validation was successful") try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): new_objs = self._create_objects(form, request) # Enforce object-level permissions @@ -501,7 +501,7 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView): try: # Iterate through data and bind each record to a new model form instance. - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): new_objs = self.create_and_update_objects(form, request) # Enforce object-level permissions @@ -681,7 +681,7 @@ class BulkEditView(GetReturnURLMixin, BaseMultiObjectView): if form.is_valid(): logger.debug("Form validation was successful") try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): updated_objects = self._update_objects(form, request) # Enforce object-level permissions @@ -778,7 +778,7 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView): if form.is_valid(): try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): renamed_pks = self._rename_objects(form, selected_objects) if '_apply' in request.POST: @@ -875,7 +875,7 @@ class BulkDeleteView(GetReturnURLMixin, BaseMultiObjectView): queryset = self.queryset.filter(pk__in=pk_list) deleted_count = queryset.count() try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): for obj in queryset: # Take a snapshot of change-logged models if hasattr(obj, 'snapshot'): @@ -980,7 +980,7 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView): } try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): for obj in data['pk']: diff --git a/netbox/netbox/views/generic/feature_views.py b/netbox/netbox/views/generic/feature_views.py index 9ad14a3d0..d8ba2b475 100644 --- a/netbox/netbox/views/generic/feature_views.py +++ b/netbox/netbox/views/generic/feature_views.py @@ -1,7 +1,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.contenttypes.models import ContentType from django.contrib import messages -from django.db import transaction +from django.db import router, transaction from django.db.models import Q from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ @@ -240,7 +240,7 @@ class BulkSyncDataView(GetReturnURLMixin, BaseMultiObjectView): data_file__isnull=False ) - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): for obj in selected_objects: obj.sync(save=True) diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 0db73b7a6..a7acbffc0 100644 --- a/netbox/netbox/views/generic/object_views.py +++ b/netbox/netbox/views/generic/object_views.py @@ -282,7 +282,7 @@ class ObjectEditView(GetReturnURLMixin, BaseObjectView): logger.debug("Form validation was successful") try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(model)): object_created = form.instance.pk is None obj = form.save() @@ -570,7 +570,7 @@ class ComponentCreateView(GetReturnURLMixin, BaseObjectView): if not form.errors and not component_form.errors: try: - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(self.queryset.model)): # Create the new components new_objs = [] for component_form in new_components: diff --git a/netbox/project-static/dist/netbox.css b/netbox/project-static/dist/netbox.css index 3cfdc2e5d..103e5981e 100644 Binary files a/netbox/project-static/dist/netbox.css and b/netbox/project-static/dist/netbox.css differ diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index a7c5be331..2f4422fd6 100644 Binary files a/netbox/project-static/dist/netbox.js and b/netbox/project-static/dist/netbox.js differ diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index ef6cacb96..6e4020dcb 100644 Binary files a/netbox/project-static/dist/netbox.js.map and b/netbox/project-static/dist/netbox.js.map differ diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json index 230a42ff5..bf75a5e38 100644 --- a/netbox/project-static/package.json +++ b/netbox/project-static/package.json @@ -24,13 +24,13 @@ "dependencies": { "@mdi/font": "7.4.47", "@tabler/core": "1.3.2", - "bootstrap": "5.3.6", + "bootstrap": "5.3.7", "clipboard": "2.0.11", "flatpickr": "4.6.13", "gridstack": "12.2.1", - "htmx.org": "2.0.4", - "query-string": "9.2.0", - "sass": "1.89.1", + "htmx.org": "2.0.5", + "query-string": "9.2.1", + "sass": "1.89.2", "tom-select": "2.4.3", "typeface-inter": "3.18.1", "typeface-roboto-mono": "1.1.13" diff --git a/netbox/project-static/styles/custom/racks.scss b/netbox/project-static/styles/custom/racks.scss new file mode 100644 index 000000000..3dd20738d --- /dev/null +++ b/netbox/project-static/styles/custom/racks.scss @@ -0,0 +1,4 @@ +.rack-loading-container { + min-height: 200px; + margin-left: 30px; +} diff --git a/netbox/project-static/styles/netbox.scss b/netbox/project-static/styles/netbox.scss index ab7634cc1..6dbd34846 100644 --- a/netbox/project-static/styles/netbox.scss +++ b/netbox/project-static/styles/netbox.scss @@ -27,3 +27,4 @@ @import 'custom/markdown'; @import 'custom/misc'; @import 'custom/notifications'; +@import 'custom/racks'; diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock index caff535ff..4304afddb 100644 --- a/netbox/project-static/yarn.lock +++ b/netbox/project-static/yarn.lock @@ -1058,6 +1058,11 @@ bootstrap@5.3.6: resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.6.tgz#fbd91ebaff093f5b191a1c01a8c866d24f9fa6e1" integrity sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA== +bootstrap@5.3.7: + version "5.3.7" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90" + integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1954,10 +1959,10 @@ hey-listen@^1.0.8: resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== -htmx.org@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/htmx.org/-/htmx.org-2.0.4.tgz#74fce66b177eb59c6d251ecf1052a2478743bec9" - integrity sha512-HLxMCdfXDOJirs3vBZl/ZLoY+c7PfM4Ahr2Ad4YXh6d22T5ltbTXFFkpx9Tgb2vvmWFMbIc3LqN2ToNkZJvyYQ== +htmx.org@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/htmx.org/-/htmx.org-2.0.5.tgz#88e8d89078b3059d74ac4eb653d80451c144820c" + integrity sha512-ocgvtHCShWFW0DvSV1NbJC7Y5EzUMy2eo5zeWvGj2Ac4LOr7sv9YKg4jzCZJdXN21fXACmCViwKSy+cm6i2dWQ== ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" @@ -2514,10 +2519,10 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -query-string@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.2.0.tgz#bf9909412689117865aac4e05c10422c4839828f" - integrity sha512-YIRhrHujoQxhexwRLxfy3VSjOXmvZRd2nyw1PwL1UUqZ/ys1dEZd1+NSgXkne2l/4X/7OXkigEAuhTX0g/ivJQ== +query-string@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.2.1.tgz#67bd95f6e2cb64eafecfb0504be7cc38bcd4dd11" + integrity sha512-3jTGGLRzlhu/1ws2zlr4Q+GVMLCQTLFOj8CMX5x44cdZG9FQE07x2mQhaNxaKVPNmIDu0mvJ/cEwtY7Pim7hqA== dependencies: decode-uri-component "^0.4.1" filter-obj "^5.1.0" @@ -2660,10 +2665,10 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -sass@1.89.1: - version "1.89.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.89.1.tgz#9281c52c85b4be54264d310fef63a811dfcfb9d9" - integrity sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q== +sass@1.89.2: + version "1.89.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.89.2.tgz#a771716aeae774e2b529f72c0ff2dfd46c9de10e" + integrity sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" diff --git a/netbox/release.yaml b/netbox/release.yaml index 8bb4af910..3d4d74e6a 100644 --- a/netbox/release.yaml +++ b/netbox/release.yaml @@ -1,3 +1,3 @@ -version: "4.3.2" +version: "4.3.3" edition: "Community" -published: "2025-06-05" +published: "2025-06-26" diff --git a/netbox/templates/dcim/inc/rack_elevation.html b/netbox/templates/dcim/inc/rack_elevation.html index 33037c1ff..c51bcec24 100644 --- a/netbox/templates/dcim/inc/rack_elevation.html +++ b/netbox/templates/dcim/inc/rack_elevation.html @@ -1,6 +1,17 @@ {% load i18n %}
- +
+
+
+ {% trans "Loading..." %} +
+
+
diff --git a/netbox/templates/extras/htmx/script_result.html b/netbox/templates/extras/htmx/script_result.html index 3a5964823..e6b4d1823 100644 --- a/netbox/templates/extras/htmx/script_result.html +++ b/netbox/templates/extras/htmx/script_result.html @@ -53,7 +53,16 @@ {# Script output. Legacy reports will not have this. #} {% if 'output' in job.data %}
-

{% trans "Output" %}

+

+ {% trans "Output" %} + {% if job.completed %} +
+ + {% trans "Download" %} + +
+ {% endif %} +

{% if job.data.output %}
{{ job.data.output }}
{% else %} diff --git a/netbox/translations/cs/LC_MESSAGES/django.mo b/netbox/translations/cs/LC_MESSAGES/django.mo index 4e830088d..4c73d16a5 100644 Binary files a/netbox/translations/cs/LC_MESSAGES/django.mo and b/netbox/translations/cs/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/cs/LC_MESSAGES/django.po b/netbox/translations/cs/LC_MESSAGES/django.po index 3a463ef00..3961c9415 100644 --- a/netbox/translations/cs/LC_MESSAGES/django.po +++ b/netbox/translations/cs/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n" @@ -718,7 +718,7 @@ msgstr "Barva" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -835,7 +835,7 @@ msgstr "Účet poskytovatele" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -915,7 +915,7 @@ msgstr "Stav" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -952,8 +952,8 @@ msgstr "Vzdálenost" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Jednotka vzdálenosti" @@ -988,7 +988,7 @@ msgstr "Parametry služby" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1192,7 +1192,7 @@ msgstr "Provozní stav" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Přidělený nájemce" @@ -2542,8 +2542,8 @@ msgstr "Protokolování změn není u tohoto typu objektu podporováno ({type}). #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "vytvořil" @@ -2660,7 +2660,7 @@ msgstr "" "Při inicializaci backendu došlo k chybě. Je třeba nainstalovat závislost: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "naposledy aktualizováno" @@ -2800,7 +2800,7 @@ msgstr "Celé jméno" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2838,7 +2838,7 @@ msgstr "Naposledy aktualizováno" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5130,7 +5130,7 @@ msgid "Side B name" msgstr "Název strany B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Stav připojení" @@ -5342,7 +5342,7 @@ msgid "Connection" msgstr "Připojení" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7339,11 +7339,13 @@ msgstr "Ukončení A" msgid "Termination B" msgstr "Ukončení B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Zařízení A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Zařízení B" @@ -7363,11 +7365,11 @@ msgstr "Stojan A" msgid "Rack B" msgstr "Stojan B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Stránky A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Místo B" @@ -8359,6 +8361,7 @@ msgstr "Je aktivní" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8375,6 +8378,7 @@ msgstr "Typy objektů" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Jeden nebo více přiřazených typů objektů" @@ -8455,15 +8459,15 @@ msgstr "Webový háček {name} nenalezeno" msgid "Script {name} not found" msgstr "Skript {name} nenalezeno" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Typ přiřazeného objektu" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Klasifikace vstupu" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8472,11 +8476,11 @@ msgstr "Klasifikace vstupu" msgid "Users" msgstr "Uživatelé" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Uživatelská jména oddělená čárkami, uzavřená dvojitými uvozovkami" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8489,7 +8493,7 @@ msgstr "Uživatelská jména oddělená čárkami, uzavřená dvojitými uvozovk msgid "Groups" msgstr "Skupiny" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Názvy skupin oddělené čárkami, uzavřené dvojitými uvozovkami" @@ -8782,7 +8786,7 @@ msgstr "Data jsou vyplněna ze vzdáleného zdroje vybraného níže." msgid "Must specify either local data or a data file" msgstr "Musí zadat buď lokální data nebo datový soubor" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Plán na" @@ -8790,7 +8794,7 @@ msgstr "Plán na" msgid "Schedule execution of report to a set time" msgstr "Naplánujte spuštění sestavy na nastavený čas" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Opakuje se každý" @@ -8798,44 +8802,44 @@ msgstr "Opakuje se každý" msgid "Interval at which this report is re-run (in minutes)" msgstr "Interval, ve kterém je tato zpráva znovu spuštěna (v minutách)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (aktuální čas: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Naplánovaný čas musí být v budoucnu." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Odevzdat změny" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "Odevzdat změny do databáze (zrušte zaškrtnutí u suchého spuštění)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Naplánujte spuštění skriptu na nastavený čas" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Interval, ve kterém je tento skript znovu spuštěn (v minutách)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Změny v databázi byly automaticky vráceny." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Skript byl přerušen s chybou: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Došlo k výjimce: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Změny databáze byly vráceny kvůli chybě." @@ -9584,7 +9588,7 @@ msgid "notifications" msgstr "oznámení" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objekty tohoto typu ({type}) nepodporují oznámení." @@ -9598,19 +9602,19 @@ msgstr "skupin" msgid "users" msgstr "uživatelé" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "oznamovací skupina" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "skupiny oznámení" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "předplatné" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "předplatné" @@ -10291,8 +10295,8 @@ msgstr "ID skupiny" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11710,52 +11714,52 @@ msgstr "Odstranit značky" msgid "{class_name} must specify a model class." msgstr "{class_name} musí zadat třídu modelu." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Neznámý název pole '{name}'v datech vlastního pole." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Neplatná hodnota pro vlastní pole '{name}„: {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Vlastní pole '{name}Musí mít jedinečnou hodnotu." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Chybí povinné vlastní pole '{name}„." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Vzdálený zdroj dat" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "datová cesta" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Cesta ke vzdálenému souboru (vzhledem k kořenovému zdroji dat)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "automatická synchronizace povolena" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Povolit automatickou synchronizaci dat při aktualizaci datového souboru" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "datum synchronizováno" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} musí implementovat metodu sync_data ()." @@ -12351,12 +12355,12 @@ msgstr "Chyba" msgid "No {model_name} found" msgstr "{model_name} nenalezeno" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Pole" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Hodnota" @@ -12629,7 +12633,7 @@ msgstr "Přiřazené skupiny" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12854,7 +12858,7 @@ msgstr "Odpojit" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14344,10 +14348,15 @@ msgstr "Souhrn testu" msgid "Log" msgstr "Protokol" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Výstup" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Ke stažení" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Načítání" @@ -14394,10 +14403,6 @@ msgstr "Kontextová data" msgid "Rendered Config" msgstr "Rendrovaná konfigurace" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Ke stažení" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Chyba při vykreslování šablony" @@ -15226,7 +15231,7 @@ msgstr "Nedávná aktivita" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Zobrazit vše" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17086,8 +17091,8 @@ msgstr "Podnikové WPA" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17098,15 +17103,39 @@ msgid "Bridged VLAN" msgstr "Přemostěná VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Místo rodičovského zařízení A (pokud existuje)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Nadřazené zařízení přiřazeného rozhraní A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Rozhraní A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Přiřazené rozhraní A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Místo rodičovského zařízení B (pokud existuje)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Nadřazené zařízení přiřazeného rozhraní B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Rozhraní B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Přiřazené rozhraní B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Strana B" diff --git a/netbox/translations/da/LC_MESSAGES/django.mo b/netbox/translations/da/LC_MESSAGES/django.mo index 79c7364a4..a02572145 100644 Binary files a/netbox/translations/da/LC_MESSAGES/django.mo and b/netbox/translations/da/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/da/LC_MESSAGES/django.po b/netbox/translations/da/LC_MESSAGES/django.po index 5a2d78490..8fea7cc7f 100644 --- a/netbox/translations/da/LC_MESSAGES/django.po +++ b/netbox/translations/da/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Danish (https://app.transifex.com/netbox-community/teams/178115/da/)\n" @@ -717,7 +717,7 @@ msgstr "Farve" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -834,7 +834,7 @@ msgstr "Leverandørkonto" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -914,7 +914,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -951,8 +951,8 @@ msgstr "Afstand" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Afstandsenhed" @@ -987,7 +987,7 @@ msgstr "Serviceparametre" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1191,7 +1191,7 @@ msgstr "Driftsstatus" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Tildelt lejer" @@ -2540,8 +2540,8 @@ msgstr "Ændringslogføring understøttes ikke for denne objekttype ({type})." #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "oprettet" @@ -2659,7 +2659,7 @@ msgstr "" "installeres: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "sidst opdateret" @@ -2800,7 +2800,7 @@ msgstr "Fulde navn" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2838,7 +2838,7 @@ msgstr "Sidst opdateret" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5129,7 +5129,7 @@ msgid "Side B name" msgstr "Side B navn" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Forbindelsesstatus" @@ -5342,7 +5342,7 @@ msgid "Connection" msgstr "Forbindelse" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7354,11 +7354,13 @@ msgstr "Opsigelse A" msgid "Termination B" msgstr "Opsigelse B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Enhed A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Enhed B" @@ -7378,11 +7380,11 @@ msgstr "Rack A" msgid "Rack B" msgstr "Rack B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Område A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Område B" @@ -8375,6 +8377,7 @@ msgstr "Er aktiv" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8391,6 +8394,7 @@ msgstr "Objekttyper" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "En eller flere tildelte objekttyper" @@ -8472,15 +8476,15 @@ msgstr "Webhook {name} ikke fundet" msgid "Script {name} not found" msgstr "Manuskript {name} ikke fundet" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Tildelt objekttype" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Klassificering af indrejse" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8489,11 +8493,11 @@ msgstr "Klassificering af indrejse" msgid "Users" msgstr "Brugere" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Brugernavne adskilt af kommaer, indkapslet med dobbelte anførselstegn" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8506,7 +8510,7 @@ msgstr "Brugernavne adskilt af kommaer, indkapslet med dobbelte anførselstegn" msgid "Groups" msgstr "Grupper" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Gruppenavne adskilt af kommaer, indkapslet med dobbelte anførselstegn" @@ -8799,7 +8803,7 @@ msgstr "Data udfyldes fra den fjerntliggende kilde, der er valgt nedenfor." msgid "Must specify either local data or a data file" msgstr "Skal angive enten lokale data eller en datafil" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Planlæg kl" @@ -8807,7 +8811,7 @@ msgstr "Planlæg kl" msgid "Schedule execution of report to a set time" msgstr "Planlæg udførelse af rapport til et bestemt tidspunkt" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Gentager hver" @@ -8815,44 +8819,44 @@ msgstr "Gentager hver" msgid "Interval at which this report is re-run (in minutes)" msgstr "Interval, hvor denne rapport genkøres (i minutter)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (Aktuel tid: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Planlagt tid skal være i fremtiden." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Foretag ændringer" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "Send ændringer i databasen (fjern markeringen for en tørkørsel)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Planlæg udførelse af script til et bestemt tidspunkt" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Interval, hvor scriptet køres igen (i minutter)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Databaseændringer er blevet tilbageført automatisk." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Script afbrudt med fejl: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Der opstod en undtagelse: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Databaseændringer er blevet tilbageført på grund af fejl." @@ -9605,7 +9609,7 @@ msgid "notifications" msgstr "notifikationer" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objekter af denne type ({type}) understøtter ikke underretninger." @@ -9619,19 +9623,19 @@ msgstr "grupperer" msgid "users" msgstr "brugere" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "meddelelsesgruppe" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "meddelelsesgrupper" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "abonnement" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "abonnementer" @@ -10312,8 +10316,8 @@ msgstr "Gruppe-ID" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11742,51 +11746,51 @@ msgstr "Fjern tags" msgid "{class_name} must specify a model class." msgstr "{class_name} skal angive en modelklasse." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Ukendt feltnavn '{name}'i brugerdefinerede feltdata." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Ugyldig værdi for brugerdefineret felt '{name}„: {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Brugerdefineret felt '{name}“ skal have en unik værdi." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Mangler påkrævet brugerdefineret felt '{name}„." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Fjerndatakilde" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "datastie" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Sti til fjernfil (i forhold til datakildens rod)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "automatisk synkronisering aktiveret" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "Aktivér automatisk synkronisering af data, når datafilen opdateres" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "dato synkroniseret" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} skal implementere en sync_data () metode." @@ -12385,12 +12389,12 @@ msgstr "Fejl" msgid "No {model_name} found" msgstr "Nej {model_name} fundet" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Mark" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Værdi" @@ -12664,7 +12668,7 @@ msgstr "Tildelte grupper" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12889,7 +12893,7 @@ msgstr "Afbryd forbindelsen" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14383,10 +14387,15 @@ msgstr "Testoversigt" msgid "Log" msgstr "Log" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Udgang" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Hent" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Indlæser" @@ -14433,10 +14442,6 @@ msgstr "Kontekstdata" msgid "Rendered Config" msgstr "Renderet konfiguration" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Hent" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Fejl ved gengivelse af skabelon" @@ -15266,7 +15271,7 @@ msgstr "Seneste aktivitet" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Se alle" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17127,8 +17132,8 @@ msgstr "WPA-virksomhed" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17139,15 +17144,39 @@ msgid "Bridged VLAN" msgstr "Broet VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Websted for forældreenhed A (hvis nogen)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Overordnet enhed til tildelt grænseflade A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Grænseflade A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Tildelt grænseflade A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Stedet for forældreenhed B (hvis nogen)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Overordnet enhed til tildelt grænseflade B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Grænseflade B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Tildelt grænseflade B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Side B" diff --git a/netbox/translations/de/LC_MESSAGES/django.mo b/netbox/translations/de/LC_MESSAGES/django.mo index 5d3e5df18..99eeb1b3b 100644 Binary files a/netbox/translations/de/LC_MESSAGES/django.mo and b/netbox/translations/de/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/de/LC_MESSAGES/django.po b/netbox/translations/de/LC_MESSAGES/django.po index 6d59df7b6..c0ab7c7ea 100644 --- a/netbox/translations/de/LC_MESSAGES/django.po +++ b/netbox/translations/de/LC_MESSAGES/django.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: chbally, 2025\n" "Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n" @@ -722,7 +722,7 @@ msgstr "Farbe" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -839,7 +839,7 @@ msgstr "Providerkonto" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -919,7 +919,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -956,8 +956,8 @@ msgstr "Entfernung" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Entfernungseinheit" @@ -992,7 +992,7 @@ msgstr "Service Parameter" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1196,7 +1196,7 @@ msgstr "Betriebsstatus" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Zugewiesener Mandant" @@ -2554,8 +2554,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "erstellt" @@ -2673,7 +2673,7 @@ msgstr "" "Abhängigkeit muss installiert werden: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "zuletzt aktualisiert" @@ -2817,7 +2817,7 @@ msgstr "Vollständiger Name" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2855,7 +2855,7 @@ msgstr "Letzte Aktualisierung" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5157,7 +5157,7 @@ msgid "Side B name" msgstr "Name der Seite B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Status der Verbindung" @@ -5372,7 +5372,7 @@ msgid "Connection" msgstr "Verbindung" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7462,11 +7462,13 @@ msgstr "Abschlusspunkt A" msgid "Termination B" msgstr "Abschlusspunkt B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Gerät A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Gerät B" @@ -7486,11 +7488,11 @@ msgstr "Rack A" msgid "Rack B" msgstr "Rack B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Standort A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Standort B" @@ -8491,6 +8493,7 @@ msgstr "Ist aktiv" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8507,6 +8510,7 @@ msgstr "Typen von Objekten" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Ein oder mehrere zugewiesene Objekttypen" @@ -8595,15 +8599,15 @@ msgstr "Webhook {name} nicht gefunden" msgid "Script {name} not found" msgstr "Skript {name} nicht gefunden" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Zugewiesener Objekttyp" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Die Klassifizierung des Eintrags" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8612,13 +8616,13 @@ msgstr "Die Klassifizierung des Eintrags" msgid "Users" msgstr "Benutzer" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Durch Kommas getrennte Benutzernamen, umgeben von doppelten " "Anführungszeichen" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8631,7 +8635,7 @@ msgstr "" msgid "Groups" msgstr "Gruppen" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "" "Gruppennamen, getrennt durch Kommas, umgeben von doppelten Anführungszeichen" @@ -8933,7 +8937,7 @@ msgstr "Die Daten werden aus der unten ausgewählten Remote-Quelle gefüllt." msgid "Must specify either local data or a data file" msgstr "Muss entweder lokale Daten oder eine Datendatei angeben" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "geplant am" @@ -8941,7 +8945,7 @@ msgstr "geplant am" msgid "Schedule execution of report to a set time" msgstr "Planen Sie die Ausführung des Berichts auf eine festgelegte Zeit" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Wiederholt sich alle" @@ -8949,46 +8953,46 @@ msgstr "Wiederholt sich alle" msgid "Interval at which this report is re-run (in minutes)" msgstr "Intervall, in dem dieser Bericht erneut ausgeführt wird (in Minuten)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (aktuelle Uhrzeit: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Die geplante Zeit muss in der Zukunft liegen." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Änderungen übernehmen" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Änderungen in die Datenbank übernehmen (bei einem Probelauf das Häkchen " "entfernen)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Planen Sie die Ausführung des Skripts auf eine festgelegte Zeit" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Intervall, in dem dieses Skript erneut ausgeführt wird (in Minuten)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Datenbankänderungen wurden automatisch rückgängig gemacht." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Das Skript wurde mit einem Fehler abgebrochen: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Eine Ausnahme ist aufgetreten: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Datenbankänderungen wurden aufgrund eines Fehlers rückgängig gemacht." @@ -9761,7 +9765,7 @@ msgid "notifications" msgstr "Benachrichtigungen" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objekte dieses Typs ({type}) unterstützen keine Benachrichtigungen." @@ -9775,19 +9779,19 @@ msgstr "Gruppen" msgid "users" msgstr "Benutzer" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "Benachrichtigungsgruppe" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "Benachrichtigungsgruppen" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "Abonnement" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "Abonnements" @@ -10476,8 +10480,8 @@ msgstr "Gruppen-ID" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11926,53 +11930,53 @@ msgstr "Tags entfernen" msgid "{class_name} must specify a model class." msgstr "{class_name} muss eine Modellklasse angeben." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Unbekannter Feldname '{name}'in benutzerdefinierten Felddaten." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Ungültiger Wert für das benutzerdefinierte Feld '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Benutzerdefiniertes Feld '{name}'muss einen eindeutigen Wert haben." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Erforderliches benutzerdefiniertes Feld fehlt '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Entfernte Datenquelle" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "Datenpfad" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Pfad zur Remote-Datei (relativ zum Stammverzeichnis)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "Auto-Sync aktiviert" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Automatische Synchronisation von Daten aktivieren, wenn die Datendatei " "aktualisiert wird" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "Datum der Synchronisierung " -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} muss eine sync_data () -Methode implementieren." @@ -12578,12 +12582,12 @@ msgstr "Fehler" msgid "No {model_name} found" msgstr "Kein {model_name} gefunden" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Feld" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Wert" @@ -12860,7 +12864,7 @@ msgstr "Zugewiesene Gruppen" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13085,7 +13089,7 @@ msgstr "Trennen" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14582,10 +14586,15 @@ msgstr "Zusammenfassung des Tests" msgid "Log" msgstr "Log" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Ausgabe" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Herunterladen" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Wird geladen" @@ -14632,10 +14641,6 @@ msgstr "Kontextdaten" msgid "Rendered Config" msgstr "Gerenderte Konfiguration" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Herunterladen" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Fehler beim Rendern der Vorlage" @@ -17371,8 +17376,8 @@ msgstr "WPA Enterprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17383,15 +17388,39 @@ msgid "Bridged VLAN" msgstr "Bridged VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Standort des übergeordneten Geräts A (falls vorhanden)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Übergeordnetes Gerät der zugewiesenen Schnittstelle A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Schnittstelle A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Zugewiesene Schnittstelle A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Standort des übergeordneten Geräts B (falls vorhanden)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Übergeordnetes Gerät der zugewiesenen Schnittstelle B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Schnittstelle B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Zugewiesene Schnittstelle B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Seite B" diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 77bef53c6..7d9c419b8 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-11 05:02+0000\n" +"POT-Creation-Date: 2025-07-03 05:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" #: netbox/account/tables.py:27 netbox/templates/account/token.html:22 #: netbox/templates/users/token.html:17 netbox/users/forms/bulk_import.py:39 -#: netbox/users/forms/model_forms.py:112 +#: netbox/users/forms/model_forms.py:113 msgid "Key" msgstr "" @@ -57,7 +57,7 @@ msgstr "" #: netbox/account/tables.py:45 netbox/templates/account/token.html:55 #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122 -#: netbox/users/forms/model_forms.py:124 +#: netbox/users/forms/model_forms.py:125 msgid "Allowed IPs" msgstr "" @@ -705,7 +705,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:272 netbox/templates/circuits/circuit.html:30 +#: netbox/netbox/tables/tables.py:274 netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 #: netbox/templates/core/datasource.html:38 netbox/templates/dcim/cable.html:15 @@ -804,7 +804,7 @@ msgstr "" #: netbox/templates/vpn/l2vpn.html:26 netbox/templates/vpn/tunnel.html:25 #: netbox/templates/wireless/wirelesslan.html:22 #: netbox/templates/wireless/wirelesslink.html:17 -#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:194 +#: netbox/users/forms/filtersets.py:32 netbox/users/forms/model_forms.py:195 #: netbox/virtualization/forms/bulk_edit.py:71 #: netbox/virtualization/forms/bulk_edit.py:100 #: netbox/virtualization/forms/bulk_import.py:55 @@ -819,7 +819,7 @@ msgstr "" #: netbox/vpn/tables/l2vpn.py:27 netbox/vpn/tables/tunnels.py:48 #: netbox/wireless/forms/bulk_edit.py:46 netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -899,7 +899,7 @@ msgstr "" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -936,8 +936,8 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "" @@ -972,7 +972,7 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:290 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1174,7 +1174,7 @@ msgstr "" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "" @@ -1369,7 +1369,7 @@ msgstr "" #: netbox/templates/extras/configcontext.html:60 #: netbox/templates/ipam/ipaddress.html:59 #: netbox/templates/ipam/vlan_edit.html:42 -#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:314 +#: netbox/tenancy/forms/filtersets.py:87 netbox/users/forms/model_forms.py:315 msgid "Assignment" msgstr "" @@ -2179,7 +2179,7 @@ msgstr "" #: netbox/core/data_backends.py:56 netbox/templates/account/base.html:23 #: netbox/templates/account/password.html:12 -#: netbox/users/forms/model_forms.py:170 +#: netbox/users/forms/model_forms.py:171 msgid "Password" msgstr "" @@ -2231,7 +2231,7 @@ msgstr "" #: netbox/extras/forms/filtersets.py:335 netbox/extras/tables/tables.py:166 #: netbox/extras/tables/tables.py:267 netbox/extras/tables/tables.py:300 #: netbox/extras/tables/tables.py:459 netbox/netbox/preferences.py:22 -#: netbox/templates/core/datasource.html:42 +#: netbox/netbox/preferences.py:61 netbox/templates/core/datasource.html:42 #: netbox/templates/dcim/interface.html:61 #: netbox/templates/extras/customlink.html:17 #: netbox/templates/extras/eventrule.html:17 @@ -2346,7 +2346,7 @@ msgstr "" #: netbox/templates/users/user.html:4 netbox/templates/users/user.html:12 #: netbox/users/filtersets.py:107 netbox/users/filtersets.py:174 #: netbox/users/forms/filtersets.py:84 netbox/users/forms/filtersets.py:125 -#: netbox/users/forms/model_forms.py:155 netbox/users/forms/model_forms.py:192 +#: netbox/users/forms/model_forms.py:156 netbox/users/forms/model_forms.py:193 #: netbox/users/tables.py:19 msgid "User" msgstr "" @@ -2449,7 +2449,7 @@ msgstr "" #: netbox/core/forms/model_forms.py:170 netbox/dcim/forms/filtersets.py:752 #: netbox/templates/core/inc/config_data.html:127 -#: netbox/users/forms/model_forms.py:64 +#: netbox/users/forms/model_forms.py:65 msgid "Miscellaneous" msgstr "" @@ -2510,8 +2510,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "" @@ -2624,7 +2624,7 @@ msgid "" msgstr "" #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "" @@ -2738,12 +2738,12 @@ msgstr "" msgid "Jobs cannot be assigned to this object type ({type})." msgstr "" -#: netbox/core/models/jobs.py:193 +#: netbox/core/models/jobs.py:192 #, python-brace-format msgid "Invalid status for job termination. Choices are: {choices}" msgstr "" -#: netbox/core/models/jobs.py:235 +#: netbox/core/models/jobs.py:234 msgid "" "enqueue() cannot be called with values for both schedule_at and immediate." msgstr "" @@ -2763,7 +2763,7 @@ msgstr "" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:278 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2801,7 +2801,7 @@ msgstr "" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:221 +#: netbox/netbox/tables/tables.py:223 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 netbox/wireless/tables/wirelesslink.py:16 msgid "ID" @@ -3381,8 +3381,9 @@ msgid "Three-phase" msgstr "" #: netbox/dcim/choices.py:1657 netbox/extras/choices.py:53 -#: netbox/netbox/preferences.py:21 netbox/templates/extras/customfield.html:78 -#: netbox/vpn/choices.py:20 netbox/wireless/choices.py:27 +#: netbox/netbox/preferences.py:21 netbox/netbox/preferences.py:60 +#: netbox/templates/extras/customfield.html:78 netbox/vpn/choices.py:20 +#: netbox/wireless/choices.py:27 msgid "Disabled" msgstr "" @@ -5072,7 +5073,7 @@ msgid "Side B name" msgstr "" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "" @@ -7180,11 +7181,13 @@ msgstr "" msgid "Termination B" msgstr "" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "" @@ -7204,11 +7207,11 @@ msgstr "" msgid "Rack B" msgstr "" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "" @@ -8199,7 +8202,7 @@ msgstr "" #: netbox/extras/forms/model_forms.py:254 #: netbox/extras/forms/model_forms.py:297 #: netbox/extras/forms/model_forms.py:450 -#: netbox/extras/forms/model_forms.py:567 netbox/users/forms/model_forms.py:276 +#: netbox/extras/forms/model_forms.py:567 netbox/users/forms/model_forms.py:277 msgid "Object types" msgstr "" @@ -8295,8 +8298,8 @@ msgstr "" #: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 -#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 -#: netbox/users/forms/model_forms.py:248 netbox/users/forms/model_forms.py:300 +#: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:237 +#: netbox/users/forms/model_forms.py:249 netbox/users/forms/model_forms.py:301 #: netbox/users/tables.py:102 msgid "Users" msgstr "" @@ -8312,8 +8315,8 @@ msgstr "" #: netbox/templates/tenancy/contact.html:21 #: netbox/tenancy/forms/bulk_edit.py:139 netbox/tenancy/forms/filtersets.py:78 #: netbox/tenancy/forms/model_forms.py:99 netbox/tenancy/tables/contacts.py:64 -#: netbox/users/forms/model_forms.py:181 netbox/users/forms/model_forms.py:193 -#: netbox/users/forms/model_forms.py:305 netbox/users/tables.py:35 +#: netbox/users/forms/model_forms.py:182 netbox/users/forms/model_forms.py:194 +#: netbox/users/forms/model_forms.py:306 netbox/users/tables.py:35 #: netbox/users/tables.py:106 msgid "Groups" msgstr "" @@ -8589,7 +8592,7 @@ msgstr "" msgid "Must specify either local data or a data file" msgstr "" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "" @@ -8597,7 +8600,7 @@ msgstr "" msgid "Schedule execution of report to a set time" msgstr "" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "" @@ -8605,44 +8608,44 @@ msgstr "" msgid "Interval at which this report is re-run (in minutes)" msgstr "" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr "" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "" -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "" -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "" -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "" -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "" @@ -9341,7 +9344,7 @@ msgid "notifications" msgstr "" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "" @@ -9355,19 +9358,19 @@ msgstr "" msgid "users" msgstr "" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "" @@ -10045,8 +10048,8 @@ msgstr "" #: netbox/wireless/forms/bulk_edit.py:71 netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -10210,7 +10213,7 @@ msgid "" "One of parent or parent_object_id must be included with parent_object_type" msgstr "" -#: netbox/ipam/forms/bulk_import.py:638 +#: netbox/ipam/forms/bulk_import.py:641 #, python-brace-format msgid "{ip} is not assigned to this parent." msgstr "" @@ -11425,51 +11428,51 @@ msgstr "" msgid "{class_name} must specify a model class." msgstr "" -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "" -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "" -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "" -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "" @@ -11832,9 +11835,9 @@ msgstr "" msgid "API Tokens" msgstr "" -#: netbox/netbox/navigation/menu.py:460 netbox/users/forms/model_forms.py:187 -#: netbox/users/forms/model_forms.py:195 netbox/users/forms/model_forms.py:242 -#: netbox/users/forms/model_forms.py:249 +#: netbox/netbox/navigation/menu.py:460 netbox/users/forms/model_forms.py:188 +#: netbox/users/forms/model_forms.py:196 netbox/users/forms/model_forms.py:243 +#: netbox/users/forms/model_forms.py:250 msgid "Permissions" msgstr "" @@ -11957,11 +11960,19 @@ msgstr "" msgid "Where the paginator controls will be displayed relative to a table" msgstr "" -#: netbox/netbox/preferences.py:60 +#: netbox/netbox/preferences.py:58 +msgid "Striped table rows" +msgstr "" + +#: netbox/netbox/preferences.py:63 +msgid "Render table rows with alternating colors to increase readability" +msgstr "" + +#: netbox/netbox/preferences.py:68 msgid "Data format" msgstr "" -#: netbox/netbox/preferences.py:65 +#: netbox/netbox/preferences.py:73 msgid "The preferred syntax for displaying generic data within the UI" msgstr "" @@ -12060,12 +12071,12 @@ msgstr "" msgid "No {model_name} found" msgstr "" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:283 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "" -#: netbox/netbox/tables/tables.py:284 +#: netbox/netbox/tables/tables.py:286 msgid "Value" msgstr "" @@ -12331,7 +12342,7 @@ msgstr "" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13714,7 +13725,7 @@ msgstr "" #: netbox/templates/dcim/virtualchassis_add_member.html:27 #: netbox/templates/generic/object_edit.html:78 #: netbox/templates/users/objectpermission.html:31 -#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:312 +#: netbox/users/forms/filtersets.py:67 netbox/users/forms/model_forms.py:313 msgid "Actions" msgstr "" @@ -14006,10 +14017,15 @@ msgstr "" msgid "Log" msgstr "" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "" @@ -14056,10 +14072,6 @@ msgstr "" msgid "Rendered Config" msgstr "" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "" @@ -14871,7 +14883,7 @@ msgid "View" msgstr "" #: netbox/templates/users/objectpermission.html:52 -#: netbox/users/forms/model_forms.py:315 +#: netbox/users/forms/model_forms.py:316 msgid "Constraints" msgstr "" @@ -15355,60 +15367,60 @@ msgstr "" msgid "Can Delete" msgstr "" -#: netbox/users/forms/model_forms.py:62 +#: netbox/users/forms/model_forms.py:63 msgid "User Interface" msgstr "" -#: netbox/users/forms/model_forms.py:114 +#: netbox/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 "" -#: netbox/users/forms/model_forms.py:126 +#: netbox/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 "" -#: netbox/users/forms/model_forms.py:175 +#: netbox/users/forms/model_forms.py:176 msgid "Confirm password" msgstr "" -#: netbox/users/forms/model_forms.py:178 +#: netbox/users/forms/model_forms.py:179 msgid "Enter the same password as before, for verification." msgstr "" -#: netbox/users/forms/model_forms.py:227 +#: netbox/users/forms/model_forms.py:228 msgid "Passwords do not match! Please check your input and try again." msgstr "" -#: netbox/users/forms/model_forms.py:294 +#: netbox/users/forms/model_forms.py:295 msgid "Additional actions" msgstr "" -#: netbox/users/forms/model_forms.py:297 +#: netbox/users/forms/model_forms.py:298 msgid "Actions granted in addition to those listed above" msgstr "" -#: netbox/users/forms/model_forms.py:313 +#: netbox/users/forms/model_forms.py:314 msgid "Objects" msgstr "" -#: netbox/users/forms/model_forms.py:325 +#: netbox/users/forms/model_forms.py:326 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 "" -#: netbox/users/forms/model_forms.py:364 +#: netbox/users/forms/model_forms.py:365 msgid "At least one action must be selected." msgstr "" -#: netbox/users/forms/model_forms.py:382 +#: netbox/users/forms/model_forms.py:383 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "" @@ -16634,8 +16646,8 @@ msgstr "" #: netbox/wireless/forms/bulk_edit.py:76 netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -16646,15 +16658,39 @@ msgid "Bridged VLAN" msgstr "" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "" diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo index 35c8cd35f..1bb50040c 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 1b02ad724..8bf8650b5 100644 --- a/netbox/translations/es/LC_MESSAGES/django.po +++ b/netbox/translations/es/LC_MESSAGES/django.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n" @@ -717,7 +717,7 @@ msgstr "Color" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -834,7 +834,7 @@ msgstr "Cuenta de proveedor" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -914,7 +914,7 @@ msgstr "Estado" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -951,8 +951,8 @@ msgstr "Distancia" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Unidad de distancia" @@ -987,7 +987,7 @@ msgstr "Parámetros de servicio" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1191,7 +1191,7 @@ msgstr "Estado operativo" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Inquilino asignado" @@ -2544,8 +2544,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "creado" @@ -2664,7 +2664,7 @@ msgstr "" "una dependencia: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "última actualización" @@ -2808,7 +2808,7 @@ msgstr "Nombre completo" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2846,7 +2846,7 @@ msgstr "Última actualización" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5146,7 +5146,7 @@ msgid "Side B name" msgstr "Nombre de la cara B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Estado de conexión" @@ -5359,7 +5359,7 @@ msgid "Connection" msgstr "Conexión" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7422,11 +7422,13 @@ msgstr "Terminación A" msgid "Termination B" msgstr "Terminación B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Dispositivo A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Dispositivo B" @@ -7446,11 +7448,11 @@ msgstr "Bastidor A" msgid "Rack B" msgstr "Estante B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Sitio A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Sitio B" @@ -8449,6 +8451,7 @@ msgstr "Está activo" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8465,6 +8468,7 @@ msgstr "Tipos de objetos" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Uno o más tipos de objetos asignados" @@ -8548,15 +8552,15 @@ msgstr "Webhook {name} no se encontró" msgid "Script {name} not found" msgstr "Guión {name} no se encontró" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Tipo de objeto asignado" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "La clasificación de entrada" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8565,11 +8569,11 @@ msgstr "La clasificación de entrada" msgid "Users" msgstr "usuarios" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Nombres de usuario separados por comas y entre comillas dobles" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8582,7 +8586,7 @@ msgstr "Nombres de usuario separados por comas y entre comillas dobles" msgid "Groups" msgstr "Grupos" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Nombres de grupos separados por comas y entre comillas" @@ -8882,7 +8886,7 @@ msgstr "" msgid "Must specify either local data or a data file" msgstr "Debe especificar datos locales o un archivo de datos" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Programe en" @@ -8890,7 +8894,7 @@ msgstr "Programe en" msgid "Schedule execution of report to a set time" msgstr "Programe la ejecución del informe a una hora determinada" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Se repite cada" @@ -8898,46 +8902,46 @@ msgstr "Se repite cada" msgid "Interval at which this report is re-run (in minutes)" msgstr "Intervalo en el que se vuelve a ejecutar este informe (en minutos)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (hora actual: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "La hora programada debe estar en el futuro." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Confirmar cambios" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Confirme los cambios en la base de datos (desactive la casilla para una " "ejecución en seco)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Programe la ejecución del script a una hora determinada" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Intervalo en el que se vuelve a ejecutar este script (en minutos)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Los cambios en la base de datos se han revertido automáticamente." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Secuencia de comandos abortada con un error: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Se ha producido una excepción: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Los cambios en la base de datos se han revertido debido a un error." @@ -9708,7 +9712,7 @@ msgid "notifications" msgstr "notificaciones" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objetos de este tipo ({type}) no admiten notificaciones." @@ -9722,19 +9726,19 @@ msgstr "grupos" msgid "users" msgstr "usuarios" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "grupo de notificaciones" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "grupos de notificaciones" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "suscripción" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "suscripciones" @@ -10418,8 +10422,8 @@ msgstr "ID de grupo" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11871,53 +11875,53 @@ msgstr "Eliminar etiquetas" msgid "{class_name} must specify a model class." msgstr "{class_name} debe especificar una clase modelo." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Nombre de campo desconocido '{name}'en datos de campo personalizados." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Valor no válido para el campo personalizado '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Campo personalizado '{name}'debe tener un valor único." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Falta el campo personalizado obligatorio '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Fuente de datos remota" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "ruta de datos" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Ruta al archivo remoto (relativa a la raíz de la fuente de datos)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "sincronización automática habilitada" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Habilitar la sincronización automática de datos cuando se actualiza el " "archivo de datos" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "fecha sincronizada" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} debe implementar un método sync_data ()." @@ -12516,12 +12520,12 @@ msgstr "Error" msgid "No {model_name} found" msgstr "No {model_name} encontrado" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Campo" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Valor" @@ -12799,7 +12803,7 @@ msgstr "Grupos asignados" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13024,7 +13028,7 @@ msgstr "Desconectar" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14521,10 +14525,15 @@ msgstr "Resumen de la prueba" msgid "Log" msgstr "Registro" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Salida" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Descargar" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Cargando" @@ -14572,10 +14581,6 @@ msgstr "Datos de contexto" msgid "Rendered Config" msgstr "Configuración renderizada" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Descargar" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Error al renderizar la plantilla" @@ -15407,7 +15412,7 @@ msgstr "Actividad reciente" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Ver todos" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17296,8 +17301,8 @@ msgstr "Empresa WPA" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17308,15 +17313,39 @@ msgid "Bridged VLAN" msgstr "VLAN puenteada" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Sitio del dispositivo principal A (si lo hay)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Dispositivo principal de la interfaz A asignada" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interfaz A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Interfaz A asignada" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Sitio del dispositivo principal B (si lo hay)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Dispositivo principal de la interfaz B asignada" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interfaz B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Interfaz B asignada" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Lado B" diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo index 0960b193d..2e10e3c4d 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 4b85dfe64..90d4e8f7e 100644 --- a/netbox/translations/fr/LC_MESSAGES/django.po +++ b/netbox/translations/fr/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ # Mathieu, 2025 # Étienne Brunel, 2025 # Jean Benoit , 2025 -# Julia Leblond, 2025 +# Julia, 2025 # Jeremy Stretch, 2025 # #, fuzzy @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n" @@ -727,7 +727,7 @@ msgstr "Couleur" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -844,7 +844,7 @@ msgstr "Identifiant de compte du prestataire" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -924,7 +924,7 @@ msgstr "Statut" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -961,8 +961,8 @@ msgstr "Distance" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Unité de distance" @@ -997,7 +997,7 @@ msgstr "Paramètres du service" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1201,7 +1201,7 @@ msgstr "État opérationnel" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Entité associée" @@ -2559,8 +2559,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "créé" @@ -2680,7 +2680,7 @@ msgstr "" "dépendance doit être installée : " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "dernière mise à jour" @@ -2824,7 +2824,7 @@ msgstr "Nom complet" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2862,7 +2862,7 @@ msgstr "Dernière mise à jour" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5160,7 +5160,7 @@ msgid "Side B name" msgstr "Nom de la face B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "État de la connexion" @@ -5375,7 +5375,7 @@ msgid "Connection" msgstr "Connexion" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7420,7 +7420,7 @@ msgstr "emplacement" #: netbox/dcim/models/sites.py:333 msgid "locations" -msgstr "les lieux" +msgstr "emplacements" #: netbox/dcim/models/sites.py:344 #, python-brace-format @@ -7437,11 +7437,13 @@ msgstr "Terminaison A" msgid "Termination B" msgstr "Terminaison B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Appareil A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Appareil B" @@ -7461,11 +7463,11 @@ msgstr "Baie A" msgid "Rack B" msgstr "Baie B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Site A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Site B" @@ -8470,6 +8472,7 @@ msgstr "Est actif" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8486,6 +8489,7 @@ msgstr "Types d'objets" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Un ou plusieurs types d'objets attribués" @@ -8568,15 +8572,15 @@ msgstr "Webhook {name} introuvable" msgid "Script {name} not found" msgstr "Scénario {name} introuvable" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Type d'objet attribué" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "La classification de l'entrée" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8585,12 +8589,12 @@ msgstr "La classification de l'entrée" msgid "Users" msgstr "Utilisateurs" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Noms d'utilisateur séparés par des virgules, encadrés par des guillemets" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8603,7 +8607,7 @@ msgstr "" msgid "Groups" msgstr "Groupes" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Noms de groupes séparés par des virgules, entre guillemets doubles" @@ -8903,7 +8907,7 @@ msgstr "" msgid "Must specify either local data or a data file" msgstr "Doit spécifier des données locales ou un fichier de données" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Horaire à" @@ -8911,7 +8915,7 @@ msgstr "Horaire à" msgid "Schedule execution of report to a set time" msgstr "Planifier l'exécution du rapport à une heure définie" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Récurrent chaque fois" @@ -8919,48 +8923,48 @@ msgstr "Récurrent chaque fois" msgid "Interval at which this report is re-run (in minutes)" msgstr "Intervalle auquel ce rapport est réexécuté (en minutes)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (heure actuelle : {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "L'heure prévue doit se situer dans le futur." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Valider les modifications" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Validez les modifications apportées à la base de données (décochez cette " "case pour une exécution à sec)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Planifier l'exécution du script à une heure définie" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Intervalle auquel ce script est réexécuté (en minutes)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "" "Les modifications apportées à la base de données ont été annulées " "automatiquement." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Le script a été abandonné avec une erreur : " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Une exception s'est produite : " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "" "Les modifications apportées à la base de données ont été annulées en raison " @@ -9738,7 +9742,7 @@ msgid "notifications" msgstr "notifications" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "" @@ -9753,19 +9757,19 @@ msgstr "groupes" msgid "users" msgstr "utilisateurs" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "groupe de notifications" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "groupes de notifications" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "abonnement" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "abonnements" @@ -10450,8 +10454,8 @@ msgstr "ID de groupe" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11910,56 +11914,56 @@ msgstr "Supprimer les étiquettes" msgid "{class_name} must specify a model class." msgstr "{class_name} doit spécifier une classe de modèle." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "" "Nom de champ inconnu '{name}'dans les données de champs personnalisés." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Valeur non valide pour le champ personnalisé '{name}« : {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Champ personnalisé '{name}'doit avoir une valeur unique." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Champ personnalisé obligatoire manquant '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Source de données distante" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "chemin de données" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "" "Chemin vers le fichier distant (par rapport à la racine de la source de " "données)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "synchronisation automatique activée" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Activer la synchronisation automatique des données lors de la mise à jour du" " fichier de données" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "date de synchronisation" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} doit implémenter une méthode sync_data ()." @@ -12561,12 +12565,12 @@ msgstr "Erreur" msgid "No {model_name} found" msgstr "{model_name} non trouvé" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Champ" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Valeur" @@ -12845,7 +12849,7 @@ msgstr "Groupes associés" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13070,7 +13074,7 @@ msgstr "Déconnectez" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14568,10 +14572,15 @@ msgstr "Résumé du test" msgid "Log" msgstr "Journal" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "sortie" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Télécharger" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Chargement" @@ -14618,10 +14627,6 @@ msgstr "Données de contexte" msgid "Rendered Config" msgstr "Configuration rendue" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Télécharger" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Erreur lors du rendu du modèle" @@ -15453,7 +15458,7 @@ msgstr "Activité récente" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Afficher tout" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17341,8 +17346,8 @@ msgstr "WPA Entreprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17353,15 +17358,39 @@ msgid "Bridged VLAN" msgstr "VLAN bridgé" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Site de l'appareil parent A (le cas échéant)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Appareil parent de l'interface A attribuée" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interface A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Interface A attribuée" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Site de l'appareil parent B (le cas échéant)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Appareil parent de l'interface B attribuée" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interface B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Interface B attribuée" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Côté B" diff --git a/netbox/translations/it/LC_MESSAGES/django.mo b/netbox/translations/it/LC_MESSAGES/django.mo index 8e39fccf9..410cdb657 100644 Binary files a/netbox/translations/it/LC_MESSAGES/django.mo and b/netbox/translations/it/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/it/LC_MESSAGES/django.po b/netbox/translations/it/LC_MESSAGES/django.po index 99818a4b4..6da039767 100644 --- a/netbox/translations/it/LC_MESSAGES/django.po +++ b/netbox/translations/it/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Italian (https://app.transifex.com/netbox-community/teams/178115/it/)\n" @@ -719,7 +719,7 @@ msgstr "Colore" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -836,7 +836,7 @@ msgstr "Provider account " #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -916,7 +916,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -953,8 +953,8 @@ msgstr "Distanza" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Unità di distanza" @@ -989,7 +989,7 @@ msgstr "Parametri del servizio" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1193,7 +1193,7 @@ msgstr "Stato operativo" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Tenant assegnato" @@ -2549,8 +2549,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "creato" @@ -2669,7 +2669,7 @@ msgstr "" "necessario installare una dipendenza: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "ultimo aggiornamento" @@ -2813,7 +2813,7 @@ msgstr "Nome completo" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2851,7 +2851,7 @@ msgstr "Ultimo aggiornamento" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5153,7 +5153,7 @@ msgid "Side B name" msgstr "Nome lato B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Stato della connessione" @@ -5366,7 +5366,7 @@ msgid "Connection" msgstr "Connessione" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7448,11 +7448,13 @@ msgstr "Terminazione A" msgid "Termination B" msgstr "Terminazione B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Dispositivo A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Dispositivo B" @@ -7472,11 +7474,11 @@ msgstr "Cremagliera A" msgid "Rack B" msgstr "Cremagliera B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Sito A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Sito B" @@ -8479,6 +8481,7 @@ msgstr "È attivo" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8495,6 +8498,7 @@ msgstr "Tipi di oggetti" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Uno o più tipi di oggetti assegnati" @@ -8578,15 +8582,15 @@ msgstr "Webhook {name} non trovato" msgid "Script {name} not found" msgstr "Sceneggiatura {name} non trovato" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Tipo di oggetto assegnato" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "La classificazione degli ingressi" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8595,11 +8599,11 @@ msgstr "La classificazione degli ingressi" msgid "Users" msgstr "Utenti" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Nomi utente separati da virgole, racchiusi tra virgolette" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8612,7 +8616,7 @@ msgstr "Nomi utente separati da virgole, racchiusi tra virgolette" msgid "Groups" msgstr "Gruppi" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Nomi di gruppo separati da virgole, racchiusi tra virgolette doppie" @@ -8910,7 +8914,7 @@ msgstr "I dati vengono compilati dalla fonte remota selezionata di seguito." msgid "Must specify either local data or a data file" msgstr "È necessario specificare dati locali o un file di dati" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Programma a" @@ -8918,7 +8922,7 @@ msgstr "Programma a" msgid "Schedule execution of report to a set time" msgstr "Pianifica l'esecuzione del rapporto a un orario prestabilito" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Ricorre ogni" @@ -8926,46 +8930,46 @@ msgstr "Ricorre ogni" msgid "Interval at which this report is re-run (in minutes)" msgstr "Intervallo di ripetizione del rapporto (in minuti)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (ora corrente: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "L'orario programmato deve essere futuro." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Effettua modifiche" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Effettua il commit delle modifiche al database (deseleziona l'opzione «dry " "run»)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Pianifica l'esecuzione dello script a un orario prestabilito" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Intervallo di riesecuzione dello script (in minuti)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Le modifiche al database sono state annullate automaticamente." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Script interrotto con errore: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Si è verificata un'eccezione: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Le modifiche al database sono state annullate a causa di un errore." @@ -9735,7 +9739,7 @@ msgid "notifications" msgstr "notifiche" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Oggetti di questo tipo ({type}) non supportano le notifiche." @@ -9749,19 +9753,19 @@ msgstr "gruppi" msgid "users" msgstr "utenti" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "gruppo di notifiche" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "gruppi di notifica" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "sottoscrizione" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "sottoscrizioni" @@ -10446,8 +10450,8 @@ msgstr "ID gruppo" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11901,53 +11905,53 @@ msgstr "Rimuovi tag" msgid "{class_name} must specify a model class." msgstr "{class_name} deve specificare una classe del modello." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Nome di campo sconosciuto '{name}'nei dati dei campi personalizzati." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Valore non valido per il campo personalizzato '{name}»: {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Campo personalizzato '{name}'deve avere un valore univoco." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Campo personalizzato obbligatorio mancante '{name}»." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Fonte dati remota" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "percorso dati" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Percorso del file remoto (relativo alla radice dell'origine dati)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "sincronizzazione automatica abilitata" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Abilita la sincronizzazione automatica dei dati quando il file di dati viene" " aggiornato" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "data sincronizzata" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} deve implementare un metodo sync_data ()." @@ -12550,12 +12554,12 @@ msgstr "Errore" msgid "No {model_name} found" msgstr "No {model_name} trovato" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Campo" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Valore" @@ -12830,7 +12834,7 @@ msgstr "Gruppi assegnati" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13055,7 +13059,7 @@ msgstr "Disconnetti" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14551,10 +14555,15 @@ msgstr "Riepilogo del test" msgid "Log" msgstr "Registro" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Uscita" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Scarica" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Caricamento" @@ -14602,10 +14611,6 @@ msgstr "Dati contestuali" msgid "Rendered Config" msgstr "Configurazione renderizzata" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Scarica" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Errore nel rendering del modello" @@ -15438,7 +15443,7 @@ msgstr "Attività recente" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Visualizza tutto" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17322,8 +17327,8 @@ msgstr "WPA Enterprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17334,15 +17339,39 @@ msgid "Bridged VLAN" msgstr "VLAN con bridge" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Sito del dispositivo principale A (se presente)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Dispositivo padre dell'interfaccia assegnata A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interfaccia A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Interfaccia assegnata A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Sito del dispositivo principale B (se presente)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Dispositivo padre dell'interfaccia assegnata B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interfaccia B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Interfaccia assegnata B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Lato B" diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo index cfbf66038..31d10db03 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 4b996fe0d..97b39b333 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: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n" @@ -716,7 +716,7 @@ msgstr "色" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -833,7 +833,7 @@ msgstr "プロバイダアカウント" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -913,7 +913,7 @@ msgstr "ステータス" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -950,8 +950,8 @@ msgstr "距離" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "距離単位" @@ -986,7 +986,7 @@ msgstr "サービス情報" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1190,7 +1190,7 @@ msgstr "運用状況" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "割当テナント" @@ -2539,8 +2539,8 @@ msgstr "このオブジェクトタイプ ({type}) では変更ログはサポ #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "作成" @@ -2654,7 +2654,7 @@ msgid "" msgstr "バックエンドの初期化中にエラーが発生しました。依存関係をインストールする必要があります。 " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "最終更新日時" @@ -2794,7 +2794,7 @@ msgstr "フルネーム" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2832,7 +2832,7 @@ msgstr "最終更新日" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5116,7 +5116,7 @@ msgid "Side B name" msgstr "サイド B 名" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "接続ステータス" @@ -5324,7 +5324,7 @@ msgid "Connection" msgstr "接続" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7255,11 +7255,13 @@ msgstr "終端 A" msgid "Termination B" msgstr "終端 B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "デバイス A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "デバイス B" @@ -7279,11 +7281,11 @@ msgstr "ラック A" msgid "Rack B" msgstr "ラック B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "サイト A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "サイト B" @@ -8273,6 +8275,7 @@ msgstr "有効" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8289,6 +8292,7 @@ msgstr "オブジェクトタイプ" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "1 つ以上の割当オブジェクトタイプ" @@ -8369,15 +8373,15 @@ msgstr "ウェブフック {name} 見つかりません" msgid "Script {name} not found" msgstr "スクリプト {name} 見つかりません" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "割当オブジェクトタイプ" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "エントリの分類" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8386,11 +8390,11 @@ msgstr "エントリの分類" msgid "Users" msgstr "ユーザ" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "二重引用符で囲まれたカンマ区切りユーザ名" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8403,7 +8407,7 @@ msgstr "二重引用符で囲まれたカンマ区切りユーザ名" msgid "Groups" msgstr "グループ" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "二重引用符で囲まれたカンマで区切りグループ名" @@ -8685,7 +8689,7 @@ msgstr "データは、以下で選択したリモートソースから入力さ msgid "Must specify either local data or a data file" msgstr "ローカルデータまたはデータファイルのいずれかを指定する必要があります" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "スケジュール" @@ -8693,7 +8697,7 @@ msgstr "スケジュール" msgid "Schedule execution of report to a set time" msgstr "レポートの実行をスケジュールする" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "繰り返す" @@ -8701,44 +8705,44 @@ msgstr "繰り返す" msgid "Interval at which this report is re-run (in minutes)" msgstr "実行される間隔 (分)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (現在時刻: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "予定時刻は将来の時刻でなければなりません。" -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "変更をコミット" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "変更をDBにコミットする (dry runの場合はチェックを外す)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "スクリプトの実行をスケジュールする" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "実行される間隔 (分単位)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "データベースの変更は自動的に元に戻されました。" -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "スクリプトがエラーで中止されました: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "例外が発生しました: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "エラーにより、データベースの変更が元に戻されました。" @@ -9456,7 +9460,7 @@ msgid "notifications" msgstr "通知" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "このタイプのオブジェクト ({type}) 通知はサポートしていません。" @@ -9470,19 +9474,19 @@ msgstr "グループ" msgid "users" msgstr "ユーザ" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "通知グループ" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "通知グループ" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "サブスクリプション" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "サブスクリプション" @@ -10162,8 +10166,8 @@ msgstr "グループ ID" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11547,51 +11551,51 @@ msgstr "タグを削除" msgid "{class_name} must specify a model class." msgstr "{class_name} はモデルクラスを指定する必要があります。" -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "カスタムフィールドデータに、不明なフィールド名 '{name}'が存在します。" -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "カスタムフィールドの値が無効です。'{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "カスタムフィールド '{name}'には一意の値が必要です。" -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "必須カスタムフィールド'{name}'が見つかりません。" -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "リモートデータソース" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "データパス" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "リモートファイルへのパス (データソースルートからの相対パス)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "自動同期が有効" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "データファイルの更新時にデータの自動同期を有効にする" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "同期日付" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} はsync_data () メソッドを実装する必要があります。" @@ -12186,12 +12190,12 @@ msgstr "エラー" msgid "No {model_name} found" msgstr "{model_name} が見つかりません" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "フィールド" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "値" @@ -12461,7 +12465,7 @@ msgstr "割当グループ" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12686,7 +12690,7 @@ msgstr "接続解除" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14155,10 +14159,15 @@ msgstr "テスト概要" msgid "Log" msgstr "ログ" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "出力" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "ダウンロード" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "読み込み中" @@ -14205,10 +14214,6 @@ msgstr "コンテキストデータ" msgid "Rendered Config" msgstr "レンダリング設定" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "ダウンロード" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "エラーレンダリングテンプレート" @@ -15029,7 +15034,7 @@ msgstr "最近のアクティビティ" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "[すべて表示]" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -16834,8 +16839,8 @@ msgstr "WPA エンタープライズ" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -16846,15 +16851,39 @@ msgid "Bridged VLAN" msgstr "ブリッジド VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "親デバイス A のサイト (存在する場合)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "割り当てられたインターフェイス A の親デバイス" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "インタフェース A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "割り当てられたインターフェイス A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "親デバイス B のサイト (存在する場合)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "割り当てられたインターフェイス B の親デバイス" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "インタフェース B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "割り当てられたインターフェイス B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "サイド B" diff --git a/netbox/translations/nl/LC_MESSAGES/django.mo b/netbox/translations/nl/LC_MESSAGES/django.mo index 25402516d..fc7825afc 100644 Binary files a/netbox/translations/nl/LC_MESSAGES/django.mo and b/netbox/translations/nl/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/nl/LC_MESSAGES/django.po b/netbox/translations/nl/LC_MESSAGES/django.po index 9eba07d32..0f585bc98 100644 --- a/netbox/translations/nl/LC_MESSAGES/django.po +++ b/netbox/translations/nl/LC_MESSAGES/django.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Dutch (https://app.transifex.com/netbox-community/teams/178115/nl/)\n" @@ -721,7 +721,7 @@ msgstr "Kleur" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -838,7 +838,7 @@ msgstr "Provideraccount" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -918,7 +918,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -955,8 +955,8 @@ msgstr "Afstand" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Afstandseenheid" @@ -991,7 +991,7 @@ msgstr "Serviceparameters" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1195,7 +1195,7 @@ msgstr "Operationele status" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Toegewezen huurder" @@ -2552,8 +2552,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "aangemaakt" @@ -2671,7 +2671,7 @@ msgstr "" "afhankelijkheid worden geïnstalleerd: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "laatst bijgewerkt" @@ -2815,7 +2815,7 @@ msgstr "Volledige naam" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2853,7 +2853,7 @@ msgstr "Laatst bijgewerkt" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5154,7 +5154,7 @@ msgid "Side B name" msgstr "Naam van kant B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Status van de verbinding" @@ -5367,7 +5367,7 @@ msgid "Connection" msgstr "Verbinding" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7428,11 +7428,13 @@ msgstr "Beëindiging A" msgid "Termination B" msgstr "Eindpunt B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Apparaat A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Apparaat B" @@ -7452,11 +7454,11 @@ msgstr "Rek A" msgid "Rack B" msgstr "Rek B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Site A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Locatie B" @@ -8455,6 +8457,7 @@ msgstr "Is actief" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8471,6 +8474,7 @@ msgstr "Objecttypen" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Een of meer toegewezen objecttypen" @@ -8556,15 +8560,15 @@ msgstr "Webhook {name} niet gevonden" msgid "Script {name} not found" msgstr "Script {name} niet gevonden" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Toegewezen objecttype" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "De classificatie van binnenkomst" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8573,12 +8577,12 @@ msgstr "De classificatie van binnenkomst" msgid "Users" msgstr "Gebruikers" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Gebruikersnamen gescheiden door komma's, tussen dubbele aanhalingstekens" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8591,7 +8595,7 @@ msgstr "" msgid "Groups" msgstr "Groepen" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Groepsnamen gescheiden door komma's, tussen dubbele aanhalingstekens" @@ -8891,7 +8895,7 @@ msgstr "" msgid "Must specify either local data or a data file" msgstr "Moet lokale gegevens of een gegevensbestand specificeren" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Schema op" @@ -8899,7 +8903,7 @@ msgstr "Schema op" msgid "Schedule execution of report to a set time" msgstr "Plan de uitvoering van het rapport op een vast tijdstip" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Gebeurd elke" @@ -8907,46 +8911,46 @@ msgstr "Gebeurd elke" msgid "Interval at which this report is re-run (in minutes)" msgstr "Interval waarop dit rapport opnieuw wordt uitgevoerd (in minuten)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (huidige tijd: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "De geplande tijd moet in de toekomst liggen." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Wijzigingen doorvoeren" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Wijzigingen doorvoeren in de database (schakel het vinkje uit voor een " "oefening; een repetitie)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Plan de uitvoering van het script op een bepaald tijdstip" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Interval waarmee dit script opnieuw wordt uitgevoerd (in minuten)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Wijzigingen in de database zijn automatisch teruggedraaid." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Script is met een fout afgebroken: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Er deed zich een uitzondering voor: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Wijzigingen in de database zijn teruggedraaid vanwege een fout." @@ -9715,7 +9719,7 @@ msgid "notifications" msgstr "meldingen" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objecten van dit type ({type}) ondersteunen geen meldingen." @@ -9729,19 +9733,19 @@ msgstr "groepen" msgid "users" msgstr "gebruikers" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "meldingsgroep" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "meldingsgroepen" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "abonnement" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "abonnementen" @@ -10423,8 +10427,8 @@ msgstr "Groeps-ID" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11872,54 +11876,54 @@ msgstr "Tags verwijderen" msgid "{class_name} must specify a model class." msgstr "{class_name} moet een modelklasse specificeren." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Onbekende veldnaam '{name}'in aangepaste veldgegevens." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Ongeldige waarde voor aangepast veld '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Aangepast veld '{name}'moet een unieke waarde hebben." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Ontbreekt het vereiste aangepaste veld '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Externe gegevensbron" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "datapad" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "" "Pad naar extern bestand (ten opzichte van de root van de gegevensbron)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "automatische synchronisatie ingeschakeld" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Automatische synchronisatie van gegevens inschakelen wanneer het " "gegevensbestand wordt bijgewerkt" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "datum gesynchroniseerd" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} moet een sync_data () -methode implementeren." @@ -12520,12 +12524,12 @@ msgstr "Fout" msgid "No {model_name} found" msgstr "Geen {model_name} gevonden" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Veld" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Waarde" @@ -12801,7 +12805,7 @@ msgstr "Toegewezen groepen" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -13026,7 +13030,7 @@ msgstr "Verbinding verbreken" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14524,10 +14528,15 @@ msgstr "Samenvatting van de test" msgid "Log" msgstr "Logboek" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Uitgang" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Downloaden" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Aan het laden" @@ -14574,10 +14583,6 @@ msgstr "Contextgegevens" msgid "Rendered Config" msgstr "Gerenderde configuratie" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Downloaden" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Sjabloon voor weergave van fouten" @@ -15411,7 +15416,7 @@ msgstr "Recente activiteit" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Alles bekijken" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17295,8 +17300,8 @@ msgstr "WPA Enterprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17307,15 +17312,39 @@ msgid "Bridged VLAN" msgstr "Overbrugd VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Site van ouderapparaat A (indien aanwezig)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Ouderapparaat met toegewezen interface A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interface A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Toegewezen interface A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Site van ouderapparaat B (indien aanwezig)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Ouderapparaat van toegewezen interface B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interface B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Toegewezen interface B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Kant B" diff --git a/netbox/translations/pl/LC_MESSAGES/django.mo b/netbox/translations/pl/LC_MESSAGES/django.mo index dc5dfa803..a0b3e1686 100644 Binary files a/netbox/translations/pl/LC_MESSAGES/django.mo and b/netbox/translations/pl/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/pl/LC_MESSAGES/django.po b/netbox/translations/pl/LC_MESSAGES/django.po index 4b70cb761..65329583f 100644 --- a/netbox/translations/pl/LC_MESSAGES/django.po +++ b/netbox/translations/pl/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Polish (https://app.transifex.com/netbox-community/teams/178115/pl/)\n" @@ -719,7 +719,7 @@ msgstr "Kolor" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -836,7 +836,7 @@ msgstr "Konto dostawcy" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -916,7 +916,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -953,8 +953,8 @@ msgstr "Dystans" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Jednostka odległości" @@ -989,7 +989,7 @@ msgstr "Parametry serwisowe" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1193,7 +1193,7 @@ msgstr "Status operacyjny" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Przydzielony najemca" @@ -2544,8 +2544,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "utworzony" @@ -2662,7 +2662,7 @@ msgstr "" "Wystąpił błąd podczas inicjowania zaplecza. Należy zainstalować zależność: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "Ostatnia aktualizacja" @@ -2804,7 +2804,7 @@ msgstr "Pełne imię i nazwisko" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2842,7 +2842,7 @@ msgstr "Ostatnia aktualizacja" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5138,7 +5138,7 @@ msgid "Side B name" msgstr "Nazwa strony B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Status połączenia" @@ -5350,7 +5350,7 @@ msgid "Connection" msgstr "Połączenie" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7386,11 +7386,13 @@ msgstr "Wypowiedzenie A" msgid "Termination B" msgstr "Wypowiedzenie B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Urządzenie A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Urządzenie B" @@ -7410,11 +7412,11 @@ msgstr "Szafa A" msgid "Rack B" msgstr "Szafa B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Strona A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Strona B" @@ -8412,6 +8414,7 @@ msgstr "Jest aktywny" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8428,6 +8431,7 @@ msgstr "Typy obiektów" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Jeden lub więcej przypisanych typów obiektów" @@ -8509,15 +8513,15 @@ msgstr "Hook internetowy {name} nie znaleziono" msgid "Script {name} not found" msgstr "Skrypt {name} nie znaleziono" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Przypisany typ obiektu" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Klasyfikacja wpisu" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8526,12 +8530,12 @@ msgstr "Klasyfikacja wpisu" msgid "Users" msgstr "Użytkownicy" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Nazwy użytkowników oddzielone przecinkami, otoczone podwójnymi cudzysłowami" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8544,7 +8548,7 @@ msgstr "" msgid "Groups" msgstr "Grupy" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Nazwy grup oddzielone przecinkami, otoczone podwójnymi cudzysłowami" @@ -8838,7 +8842,7 @@ msgstr "Dane są wypełniane ze zdalnego źródła wybranego poniżej." msgid "Must specify either local data or a data file" msgstr "Musi określić dane lokalne lub plik danych" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Zaplanuj pod adresem" @@ -8846,7 +8850,7 @@ msgstr "Zaplanuj pod adresem" msgid "Schedule execution of report to a set time" msgstr "Zaplanuj wykonanie raportu na określony czas" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Powtarza się co" @@ -8854,45 +8858,45 @@ msgstr "Powtarza się co" msgid "Interval at which this report is re-run (in minutes)" msgstr "Przedział, w którym raport jest ponownie uruchamiany (w minutach)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (aktualny czas: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Zaplanowany czas musi być w przyszłości." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Zatwierdź zmiany" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Zatwierdź zmiany w bazie danych (usuń zaznaczenie dla suchego uruchomienia)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Zaplanuj wykonanie skryptu na określony czas" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Interwał, w którym ten skrypt jest ponownie uruchamiany (w minutach)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Zmiany w bazie danych zostały wycofane automatycznie." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Skrypt przerwany z błędem: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Wystąpił wyjątek: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Zmiany bazy danych zostały cofnięte z powodu błędu." @@ -9650,7 +9654,7 @@ msgid "notifications" msgstr "powiadomienia" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Obiekty tego typu ({type}) nie obsługują powiadomień." @@ -9664,19 +9668,19 @@ msgstr "grupy" msgid "users" msgstr "użytkownicy" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "grupa powiadomień" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "grupy powiadomień" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "subskrypcja" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "subskrypcje" @@ -10358,8 +10362,8 @@ msgstr "Identyfikator grupy" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11798,51 +11802,51 @@ msgstr "Usuń tagi" msgid "{class_name} must specify a model class." msgstr "{class_name} musi określić klasę modelu." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Nieznana nazwa pola '{name}'w danych pola niestandardowego." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Nieprawidłowa wartość pola niestandardowego '{name}”: {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Pole niestandardowe '{name}„musi mieć unikalną wartość." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Brakujące wymagane pole niestandardowe '{name}”." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Zdalne źródło danych" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "ścieżka danych" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Ścieżka do pliku zdalnego (względem katalogu głównego źródła danych)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "włączona automatyczna synchronizacja" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "Włącz automatyczną synchronizację danych po aktualizacji pliku danych" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "data zsynchronizowana" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} musi wdrożyć metodę sync_data ()." @@ -12443,12 +12447,12 @@ msgstr "Błąd" msgid "No {model_name} found" msgstr "Nie znaleziono {model_name} " -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Pole" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Wartość" @@ -12721,7 +12725,7 @@ msgstr "Przydzielone grupy" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12946,7 +12950,7 @@ msgstr "Odłącz" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14438,10 +14442,15 @@ msgstr "Podsumowanie testu" msgid "Log" msgstr "Dziennik" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Wyjście" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Ściągnij" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Ładowanie" @@ -14488,10 +14497,6 @@ msgstr "Dane kontekstowe" msgid "Rendered Config" msgstr "Wyrenderowana konfiguracja" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Ściągnij" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Szablon renderowania błędu" @@ -15323,7 +15328,7 @@ msgstr "Ostatnia aktywność" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Wyświetl wszystko" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17199,8 +17204,8 @@ msgstr "WPA Przedsiębiorstwo" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17211,15 +17216,39 @@ msgid "Bridged VLAN" msgstr "Zmostkowana sieć VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Miejsce urządzenia nadrzędnego A (jeśli istnieje)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Urządzenie nadrzędne przypisanego interfejsu A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interfejs A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Przypisany interfejs A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Miejsce urządzenia macierzystego B (jeśli istnieje)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Urządzenie nadrzędne przypisanego interfejsu B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interfejs B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Przypisany interfejs B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Strona B" diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo index efa5ec16b..2d7169720 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 efeb5e228..c6e21b2fe 100644 --- a/netbox/translations/pt/LC_MESSAGES/django.po +++ b/netbox/translations/pt/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Fabricio Maciel, 2025\n" "Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n" @@ -719,7 +719,7 @@ msgstr "Cor" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -836,7 +836,7 @@ msgstr "Conta do provedor" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -916,7 +916,7 @@ msgstr "Status" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -953,8 +953,8 @@ msgstr "Distância" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Unidade de distância" @@ -989,7 +989,7 @@ msgstr "Parâmetros do serviço" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1193,7 +1193,7 @@ msgstr "Status operacional" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Inquilino designado" @@ -2547,8 +2547,8 @@ msgstr "Changelog não é suportado para este tipo de objeto ({type})." #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "criado" @@ -2668,7 +2668,7 @@ msgstr "" "instalada: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "última atualização" @@ -2810,7 +2810,7 @@ msgstr "Nome Completo" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2830,7 +2830,7 @@ msgstr "Está Ativo" #: netbox/core/tables/data.py:32 msgid "Last Synced" -msgstr "Última sincronização" +msgstr "Última Sincronização" #: netbox/core/tables/data.py:35 netbox/templates/core/datasource.html:118 msgid "Files" @@ -2848,7 +2848,7 @@ msgstr "Última atualização" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -3636,11 +3636,11 @@ msgstr "Modelo de configuração (ID)" #: netbox/dcim/filtersets.py:954 netbox/dcim/filtersets.py:966 msgid "Parent device role (ID)" -msgstr "Função (ID) do dispositivo principal" +msgstr "Função (ID) do dispositivo pai" #: netbox/dcim/filtersets.py:960 netbox/dcim/filtersets.py:973 msgid "Parent device role (slug)" -msgstr "Função do dispositivo principal (slug)" +msgstr "Função do dispositivo pai(slug)" #: netbox/dcim/filtersets.py:1037 msgid "Device type (slug)" @@ -4813,7 +4813,7 @@ msgstr "Unidade de peso do módulo" #: netbox/dcim/forms/bulk_import.py:484 msgid "Parent Device Role" -msgstr "Função do dispositivo principal" +msgstr "Função do dispositivo pai" #: netbox/dcim/forms/bulk_import.py:486 msgid "Device role not found." @@ -5145,7 +5145,7 @@ msgid "Side B name" msgstr "Nome da terminação no lado B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Status da conexão" @@ -5358,7 +5358,7 @@ msgid "Connection" msgstr "Conexão" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -5495,7 +5495,7 @@ msgstr "Insira um esquema JSON válido para definir os atributos suportados." #: netbox/dcim/forms/model_forms.py:447 msgid "Profile & Attributes" -msgstr "Perfil e atributos" +msgstr "Perfis e Atributos" #: netbox/dcim/forms/model_forms.py:526 #: netbox/templates/dcim/devicerole.html:23 @@ -7025,7 +7025,7 @@ msgstr "perfil de tipo de módulo" #: netbox/dcim/models/modules.py:47 msgid "module type profiles" -msgstr "perfis de tipo de módulo" +msgstr "perfis de tipos de módulo" #: netbox/dcim/models/modules.py:104 msgid "attributes" @@ -7216,7 +7216,7 @@ msgstr "tipos de rack" #: netbox/dcim/models/racks.py:183 netbox/dcim/models/racks.py:375 msgid "Must specify a unit when setting an outer dimension" -msgstr "Deve especificar uma unidade ao definir uma dimensão externa" +msgstr "Unidade deve ser especificada ao definir uma dimensão externa" #: netbox/dcim/models/racks.py:187 netbox/dcim/models/racks.py:379 msgid "Must specify a unit when setting a maximum weight" @@ -7404,11 +7404,13 @@ msgstr "Terminação A" msgid "Termination B" msgstr "Terminação B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Dispositivo A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Dispositivo B" @@ -7428,11 +7430,11 @@ msgstr "Rack A" msgid "Rack B" msgstr "Rack B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Site A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Sítio B" @@ -8433,6 +8435,7 @@ msgstr "Está ativo" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8449,6 +8452,7 @@ msgstr "Tipos de objetos" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Um ou mais tipos de objetos associados" @@ -8531,15 +8535,15 @@ msgstr "Webhook {name} não encontrado" msgid "Script {name} not found" msgstr "Script {name} não encontrado" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Tipo de objeto associado" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "A classificação da entrada" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8548,11 +8552,11 @@ msgstr "A classificação da entrada" msgid "Users" msgstr "Usuários" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Nomes de usuários separados por vírgulas, envoltos por aspas duplas." -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8565,7 +8569,7 @@ msgstr "Nomes de usuários separados por vírgulas, envoltos por aspas duplas." msgid "Groups" msgstr "Grupos" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Nomes de grupo separados por vírgulas, envoltos por aspas duplas." @@ -8795,8 +8799,8 @@ msgid "" "Enter a comma-separated list of column names. Prepend a name with a hyphen " "to reverse the order." msgstr "" -"Insira uma lista separada por vírgulas dos nomes das colunas. Prefixe um " -"nome com um hífen para inverter a ordem." +"Insira uma lista de nomes de colunas separados por vírgulas. Adicione um " +"hífen antes de um nome para inverter a ordem." #: netbox/extras/forms/model_forms.py:340 netbox/utilities/forms/forms.py:118 msgid "Available Columns" @@ -8863,7 +8867,7 @@ msgstr "Os dados são preenchidos a partir da fonte remota selecionada abaixo." msgid "Must specify either local data or a data file" msgstr "Deve especificar dados locais ou um arquivo de dados" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Agende para" @@ -8871,7 +8875,7 @@ msgstr "Agende para" msgid "Schedule execution of report to a set time" msgstr "Agende a execução do relatório em um horário definido" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Repita a cada" @@ -8879,44 +8883,44 @@ msgstr "Repita a cada" msgid "Interval at which this report is re-run (in minutes)" msgstr "Intervalo no qual este relatório é executado novamente (em minutos)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (hora atual: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "O horário agendado deve ser no futuro." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Confirmar alterações" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "Confirme as alterações no banco de dados (desmarque para um teste)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Programe a execução do script para um horário definido" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Intervalo no qual este script é executado novamente (em minutos)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "As alterações no banco de dados foram revertidas automaticamente." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Script abortado com erro: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Ocorreu uma exceção: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "As alterações do banco de dados foram revertidas devido a um erro." @@ -9325,7 +9329,7 @@ msgstr "modelo de código" #: netbox/extras/models/mixins.py:86 msgid "Jinja template code." -msgstr "Código do modelo Jinja." +msgstr "Código de modelo Jinja." #: netbox/extras/models/mixins.py:89 msgid "environment parameters" @@ -9337,13 +9341,13 @@ msgid "" "Any additional parameters to pass when constructing " "the Jinja environment" msgstr "" -"Qualquer parâmetros adicionais passar ao construir o " +"Parâmetros adicionais a serem passados ao construir o " "ambiente Jinja" #: netbox/extras/models/mixins.py:101 #, python-brace-format msgid "Defaults to {default}" -msgstr "O padrão é {default}" +msgstr "Padrão é {default}" #: netbox/extras/models/mixins.py:106 msgid "Filename to give to the rendered export file" @@ -9589,7 +9593,7 @@ msgstr "O tipo de objeto da tabela" #: netbox/extras/models/models.py:540 msgid "table" -msgstr "mesa" +msgstr "tabela" #: netbox/extras/models/models.py:583 msgid "table config" @@ -9597,7 +9601,7 @@ msgstr "configuração da tabela" #: netbox/extras/models/models.py:584 msgid "table configs" -msgstr "configurações de tabela" +msgstr "configurações da tabela" #: netbox/extras/models/models.py:622 #, python-brace-format @@ -9679,7 +9683,7 @@ msgid "notifications" msgstr "notificações" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Objetos deste tipo ({type}) não suportam notificações." @@ -9693,19 +9697,19 @@ msgstr "grupos" msgid "users" msgstr "usuários" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "grupo de notificação" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "grupos de notificação" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "subscrição" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "subscrições" @@ -9779,11 +9783,11 @@ msgstr "Parâmetros de Execução do Script" #: netbox/extras/scripts.py:572 msgid "load_yaml is deprecated and will be removed in v4.4" -msgstr "load_yaml está obsoleto e será removido na v4.4" +msgstr "load_yaml é obsoleto e será removido na versão 4.4" #: netbox/extras/scripts.py:587 msgid "load_json is deprecated and will be removed in v4.4" -msgstr "load_json está obsoleto e será removido na v4.4" +msgstr "load_json é obsoleto e será removido na versão 4.4" #: netbox/extras/tables/columns.py:12 #: netbox/templates/htmx/notifications.html:18 @@ -9862,7 +9866,7 @@ msgstr "MIME Type" #: netbox/templates/extras/configtemplate.html:25 #: netbox/templates/extras/exporttemplate.html:27 msgid "File Name" -msgstr "Nome do arquivo" +msgstr "Nome do Arquivo" #: netbox/extras/tables/tables.py:197 netbox/extras/tables/tables.py:583 #: netbox/templates/extras/configtemplate.html:29 @@ -9899,7 +9903,7 @@ msgstr "Tamanho (Bytes)" #: netbox/extras/tables/tables.py:297 msgid "Table Name" -msgstr "Nome da tabela" +msgstr "Nome da Tabela" #: netbox/extras/tables/tables.py:383 msgid "Read" @@ -10362,7 +10366,7 @@ msgstr "Atribuição de VLAN" #: netbox/ipam/forms/bulk_edit.py:302 netbox/ipam/forms/filtersets.py:309 msgid "Treat as populated" -msgstr "Trate como povoado" +msgstr "Trate como populado" #: netbox/ipam/forms/bulk_edit.py:355 netbox/ipam/models/ip.py:782 msgid "DNS name" @@ -10388,8 +10392,8 @@ msgstr "ID do Grupo" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -10975,7 +10979,7 @@ msgstr "A função principal desta faixa" #: netbox/ipam/models/ip.py:526 msgid "mark populated" -msgstr "marca preenchida" +msgstr "marcar populado" #: netbox/ipam/models/ip.py:528 msgid "Prevent the creation of IP addresses within this range" @@ -10984,7 +10988,7 @@ msgstr "Impedir a criação de endereços IP dentro desse intervalo" #: netbox/ipam/models/ip.py:533 #, python-format msgid "Report space as 100% utilized" -msgstr "Espaço de relatório como 100% utilizado" +msgstr "Reportar intervalo como 100% utilizado" #: netbox/ipam/models/ip.py:542 msgid "IP range" @@ -11073,7 +11077,7 @@ msgstr "Endereço IP duplicado encontrado em {table}: {ipaddress}" #: netbox/ipam/models/ip.py:899 #, python-brace-format msgid "Cannot create IP address {ip} inside range {range}." -msgstr "Não é possível criar endereço IP {ip} dentro do alcance {range}." +msgstr "Não é possível criar o endereço IP {ip} dentro do intervalo {range}." #: netbox/ipam/models/ip.py:920 msgid "" @@ -11315,7 +11319,7 @@ msgstr "Endereço inicial" #: netbox/ipam/tables/ip.py:273 netbox/templates/ipam/iprange.html:29 msgid "Marked Populated" -msgstr "Marcado como preenchido" +msgstr "Marcado como Populado" #: netbox/ipam/tables/ip.py:341 msgid "NAT (Inside)" @@ -11376,7 +11380,7 @@ msgstr "Export Targets" #: netbox/ipam/utils.py:30 msgid "1 IP available" -msgstr "1 IP disponível" +msgstr "Um IP disponível" #: netbox/ipam/utils.py:32 #, python-brace-format @@ -11385,7 +11389,7 @@ msgstr "{count} IPs disponíveis" #: netbox/ipam/utils.py:33 msgid "Many IPs available" -msgstr "Muitos IPs disponíveis" +msgstr "Vários IPs disponíveis" #: netbox/ipam/validators.py:9 #, python-brace-format @@ -11821,53 +11825,53 @@ msgstr "Remover etiquetas" msgid "{class_name} must specify a model class." msgstr "{class_name} deve especificar um modelo de classe." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Nome de campo desconhecido '{name}' nos dados do campo personalizado." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Valor inválido para o campo personalizado '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Campo customizado '{name}' deve ser um valor único." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Campo personalizado obrigatório '{name}' ausente." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Fonte de dados remota" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "caminho dos dados" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Caminho para o arquivo remoto (em relação à raiz da fonte de dados)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "sincronização automática ativada" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Habilita a sincronização automática de dados quando o arquivo de dados for " "atualizado" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "data sincronizada" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} deve implementar um método sync_data ()." @@ -11936,7 +11940,7 @@ msgstr "Contextos de Dispositivos Virtuais" #: netbox/netbox/navigation/menu.py:88 msgid "Module Type Profiles" -msgstr "Perfis de tipo de módulo" +msgstr "Perfis de Tipos de Módulos" #: netbox/netbox/navigation/menu.py:89 msgid "Manufacturers" @@ -12171,7 +12175,7 @@ msgstr "Filtros Salvos" #: netbox/netbox/navigation/menu.py:352 msgid "Table Configs" -msgstr "Configurações de tabela" +msgstr "Configurações da Tabela" #: netbox/netbox/navigation/menu.py:354 msgid "Image Attachments" @@ -12465,12 +12469,12 @@ msgstr "Erro" msgid "No {model_name} found" msgstr "{model_name} não encontrados" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Campo" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Valor" @@ -12745,7 +12749,7 @@ msgstr "Grupos Associados" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12970,7 +12974,7 @@ msgstr "Desconectar" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -13717,11 +13721,11 @@ msgstr "Função da VM" #: netbox/templates/dcim/devicerole.html:67 msgid "Child Device Roles" -msgstr "Funções de dispositivos infantis" +msgstr "Funções dos Dispositivos Filhos" #: netbox/templates/dcim/devicerole.html:71 msgid "Add a Device Role" -msgstr "Adicionar uma função de dispositivo" +msgstr "Adicionar uma Função de Dispositivo" #: netbox/templates/dcim/devicetype.html:18 #: netbox/templates/dcim/moduletype.html:35 @@ -13960,7 +13964,7 @@ msgstr "Nenhum perfil atribuído" #: netbox/templates/dcim/moduletypeprofile.html:13 msgid "Module Type Profile" -msgstr "Perfil do tipo de módulo" +msgstr "Perfil de Tipo de Módulo" #: netbox/templates/dcim/powerfeed.html:53 msgid "Connected Device" @@ -14281,8 +14285,8 @@ msgid "" msgstr "" "Certifique-se de que a versão 14 ou posterior do PostgreSQL esteja em uso. " "Você pode verificar isso conectando-se ao banco de dados usando as " -"credenciais do NetBox e emitindo uma consulta para SELECIONE A VERSÃO " -"()." +"credenciais do NetBox e fazendo uma consulta para SELECT " +"VERSION()." #: netbox/templates/extras/configcontext.html:45 #: netbox/templates/extras/configtemplate.html:53 @@ -14464,10 +14468,15 @@ msgstr "Resumo do Teste" msgid "Log" msgstr "Log" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Saída" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Baixar" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Carregando" @@ -14515,10 +14524,6 @@ msgstr "Dados do Contexto" msgid "Rendered Config" msgstr "Configuração Renderizada" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Baixar" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Erro ao renderizar o modelo" @@ -14604,11 +14609,11 @@ msgstr "Todos" #: netbox/templates/extras/tableconfig.html:10 msgid "Table Config" -msgstr "Configuração da tabela" +msgstr "Configuração da Tabela" #: netbox/templates/extras/tableconfig.html:50 msgid "Columns Displayed" -msgstr "Colunas exibidas" +msgstr "Colunas Exibidas" #: netbox/templates/extras/tableconfig_edit.html:8 #: netbox/utilities/templates/helpers/table_config_form.html:8 @@ -15349,7 +15354,7 @@ msgstr "Atividade Recente" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Visualizar Todos" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17222,8 +17227,8 @@ msgstr "WPA Enterprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17234,15 +17239,39 @@ msgid "Bridged VLAN" msgstr "VLAN Bridged" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Site do dispositivo pai A (se houver)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Dispositivo pai da interface atribuída A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Interface A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Interface atribuída A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Site do dispositivo pai B (se houver)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Dispositivo pai da interface atribuída B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Interface B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Interface atribuída B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Lado B" diff --git a/netbox/translations/ru/LC_MESSAGES/django.mo b/netbox/translations/ru/LC_MESSAGES/django.mo index ef7b9ed6b..2398446cb 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 e1dc0146d..7061eda89 100644 --- a/netbox/translations/ru/LC_MESSAGES/django.po +++ b/netbox/translations/ru/LC_MESSAGES/django.po @@ -12,18 +12,18 @@ # Alexander Ryazanov (alryaz) , 2024 # Vladyslav V. Prodan, 2024 # Michail Tatarinov, 2025 -# Jeremy Stretch, 2025 # Artem Kotik, 2025 # dropclient, 2025 +# Jeremy Stretch, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" -"Last-Translator: dropclient, 2025\n" +"Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -726,7 +726,7 @@ msgstr "Цвет" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -843,7 +843,7 @@ msgstr "Аккаунт провайдера" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -923,7 +923,7 @@ msgstr "Статус" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -960,8 +960,8 @@ msgstr "Расстояние" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Единица измерения расстояний" @@ -996,7 +996,7 @@ msgstr "Параметры Службы" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1200,7 +1200,7 @@ msgstr "Операционный статус" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Назначенный арендатор" @@ -2553,8 +2553,8 @@ msgstr "" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "создан(а)" @@ -2672,7 +2672,7 @@ msgstr "" "зависимость: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "последнее обновление" @@ -2814,7 +2814,7 @@ msgstr "Полное имя" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2852,7 +2852,7 @@ msgstr "Последнее обновление" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5144,7 +5144,7 @@ msgid "Side B name" msgstr "Название стороны B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Состояние подключения" @@ -5358,7 +5358,7 @@ msgid "Connection" msgstr "Подключение" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7397,11 +7397,13 @@ msgstr "Точка подключения A" msgid "Termination B" msgstr "Точка подключения Б" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Устройство A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Устройство Б" @@ -7421,11 +7423,11 @@ msgstr "Стойка A" msgid "Rack B" msgstr "Стойка Б" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Площадка A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Площадка Б" @@ -8424,6 +8426,7 @@ msgstr "Активен" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8440,6 +8443,7 @@ msgstr "Типы объектов" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Один или несколько назначенных типов объектов" @@ -8525,15 +8529,15 @@ msgstr "Вебхук {name} не найден" msgid "Script {name} not found" msgstr "Сценарий {name} не найден" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Назначенный тип объекта" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Классификация записей" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8542,12 +8546,12 @@ msgstr "Классификация записей" msgid "Users" msgstr "Пользователи" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Имена пользователей, разделенные запятыми и заключенные в двойные кавычки" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8560,7 +8564,7 @@ msgstr "" msgid "Groups" msgstr "Группы" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Имена групп, разделенные запятыми и заключенные в двойные кавычки" @@ -8855,7 +8859,7 @@ msgstr "Данные заполняются из удаленного источ msgid "Must specify either local data or a data file" msgstr "Необходимо указать локальные данные или файл данных" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Расписание на" @@ -8863,7 +8867,7 @@ msgstr "Расписание на" msgid "Schedule execution of report to a set time" msgstr "Запланировать выполнение отчета на установленное время" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Повторяется каждый" @@ -8871,45 +8875,45 @@ msgstr "Повторяется каждый" msgid "Interval at which this report is re-run (in minutes)" msgstr "Интервал повторного запуска отчета (в минутах)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (текущее время: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Запланированное время должно быть в будущем." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Зафиксируйте изменения" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Зафиксируйте изменения в базе данных (снимите флажок для пробного запуска)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Запланируйте выполнение скрипта на заданное время" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Интервал повторного запуска этого скрипта (в минутах)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Изменения в базе данных были автоматически отменены." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Скрипт прерван с ошибкой: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Возникло исключение: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Изменения в базе данных отменены из-за ошибки." @@ -9668,7 +9672,7 @@ msgid "notifications" msgstr "уведомления" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Объекты этого типа ({type}) не поддерживают уведомления." @@ -9682,19 +9686,19 @@ msgstr "групп" msgid "users" msgstr "пользователей" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "группа уведомлений" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "группы уведомлений" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "подписка" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "подписки" @@ -10374,8 +10378,8 @@ msgstr "Идентификатор группы" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11814,52 +11818,52 @@ msgstr "Удалить теги" msgid "{class_name} must specify a model class." msgstr "{class_name} необходимо указать класс модели." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Неизвестное имя поля '{name}' в данных для настраиваемых полей." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Неверное значение для настраиваемого поля '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Настраиваемое поле '{name}'должно иметь уникальное значение." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Отсутствует обязательное настраиваемое поле '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Удаленный источник данных" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "путь к данным" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Путь к удаленному файлу (относительно корня источника данных)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "автоматическая синхронизация включена" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Включить автоматическую синхронизацию данных при обновлении файла данных" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "дата синхронизирована" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} должен реализовать метод sync_data ()." @@ -12460,12 +12464,12 @@ msgstr "Ошибка" msgid "No {model_name} found" msgstr "{model_name} не найдена" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Поле" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Значение" @@ -12738,7 +12742,7 @@ msgstr "Назначенные группы" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12964,7 +12968,7 @@ msgstr "Отключить" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14458,10 +14462,15 @@ msgstr "Сводка теста" msgid "Log" msgstr "Журнал" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Вывод" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Скачать" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Загрузка" @@ -14508,10 +14517,6 @@ msgstr "Контекстные данные" msgid "Rendered Config" msgstr "Отображенная конфигурация" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Скачать" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Ошибка при отображении шаблона" @@ -15342,7 +15347,7 @@ msgstr "Недавняя активность" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Показать все" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17217,8 +17222,8 @@ msgstr "Предприятие WPA" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17229,15 +17234,39 @@ msgid "Bridged VLAN" msgstr "Мостовая VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Сайт родительского устройства A (если есть)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Родительское устройство назначенного интерфейса A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Интерфейс A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Назначенный интерфейс A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Сайт родительского устройства B (если есть)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Родительское устройство назначенного интерфейса B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Интерфейс B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Назначенный интерфейс B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Сторона B" diff --git a/netbox/translations/tr/LC_MESSAGES/django.mo b/netbox/translations/tr/LC_MESSAGES/django.mo index 5002c17d2..c527c6d0d 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 1c1409ef2..91df758af 100644 --- a/netbox/translations/tr/LC_MESSAGES/django.po +++ b/netbox/translations/tr/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n" @@ -718,7 +718,7 @@ msgstr "Renk" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -835,7 +835,7 @@ msgstr "Sağlayıcı hesabı" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -915,7 +915,7 @@ msgstr "Durum" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -952,8 +952,8 @@ msgstr "Mesafe" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Mesafe birimi" @@ -988,7 +988,7 @@ msgstr "Servis Parametreleri" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1192,7 +1192,7 @@ msgstr "Operasyonel durum" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Atanan kiracı" @@ -2543,8 +2543,8 @@ msgstr "Değişiklik günlüğü bu nesne türü için desteklenmez ({type})." #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "oluşturulan" @@ -2662,7 +2662,7 @@ msgstr "" " " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "son güncellendi" @@ -2803,7 +2803,7 @@ msgstr "Ad Soyad" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2841,7 +2841,7 @@ msgstr "Son Güncelleme" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5131,7 +5131,7 @@ msgid "Side B name" msgstr "B tarafı adı" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Bağlantı durumu" @@ -5343,7 +5343,7 @@ msgid "Connection" msgstr "Bağlantı" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7335,11 +7335,13 @@ msgstr "Fesih A" msgid "Termination B" msgstr "Sonlandırma B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Aygıt A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Aygıt B" @@ -7359,11 +7361,11 @@ msgstr "Raf A" msgid "Rack B" msgstr "Raf B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Site A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Site B" @@ -8358,6 +8360,7 @@ msgstr "Aktif" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8374,6 +8377,7 @@ msgstr "Nesne türleri" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Bir veya daha fazla atanmış nesne türü" @@ -8456,15 +8460,15 @@ msgstr "Web kancası {name} bulunamadı" msgid "Script {name} not found" msgstr "Senaryo {name} bulunamadı" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Atanan nesne türü" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Girişin sınıflandırılması" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8473,12 +8477,12 @@ msgstr "Girişin sınıflandırılması" msgid "Users" msgstr "Kullanıcılar" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "" "Virgülle ayrılmış, çift tırnak işareti ile çevrelenmiş kullanıcı adları" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8491,7 +8495,7 @@ msgstr "" msgid "Groups" msgstr "Gruplar" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Virgülle ayrılmış, çift tırnak işareti ile çevrelenmiş grup adları" @@ -8785,7 +8789,7 @@ msgstr "Veriler aşağıda seçilen uzak kaynaktan doldurulur." msgid "Must specify either local data or a data file" msgstr "Yerel veri veya veri dosyası belirtmelidir" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Şurada programlayın" @@ -8793,7 +8797,7 @@ msgstr "Şurada programlayın" msgid "Schedule execution of report to a set time" msgstr "Raporun yürütülmesini belirli bir zamana planlayın" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Her birini tekrarlar" @@ -8801,46 +8805,46 @@ msgstr "Her birini tekrarlar" msgid "Interval at which this report is re-run (in minutes)" msgstr "Bu raporun yeniden çalıştırıldığı aralık (dakika cinsinden)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (Geçerli saat: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Planlanan zaman gelecekte olmalıdır." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Değişiklikleri gerçekleştirme" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Veritabanındaki değişiklikleri ilet (kuru çalıştırma için işaretini " "kaldırın)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Komut dosyasının yürütülmesini belirli bir zamana planlayın" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Bu komut dosyasının yeniden çalıştırıldığı aralık (dakika cinsinden)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Veritabanı değişiklikleri otomatik olarak geri alındı." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Komut dosyası hatayla iptal edildi: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Bir istisna oluştu: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Veritabanı değişiklikleri hata nedeniyle geri alındı." @@ -9596,7 +9600,7 @@ msgid "notifications" msgstr "bildirimleri" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Bu tür nesneler ({type}) bildirimleri desteklemez." @@ -9610,19 +9614,19 @@ msgstr "gruplar" msgid "users" msgstr "kullanıcıları" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "bildirim grubu" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "bildirim grupları" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "abonelik" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "abonelikler" @@ -10302,8 +10306,8 @@ msgstr "Grup Kimliği" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11720,53 +11724,53 @@ msgstr "Etiketleri kaldır" msgid "{class_name} must specify a model class." msgstr "{class_name} bir model sınıfı belirtmelidir." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Bilinmeyen alan adı '{name}'özel alan verilerinde." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Özel alan için geçersiz değer '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Özel alan '{name}'benzersiz bir değere sahip olmalıdır." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Gerekli özel alan eksik '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Uzak veri kaynağı" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "veri yolu" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Uzak dosyanın yolu (veri kaynağı köküne göre)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "otomatik senkronizasyon etkin" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" "Veri dosyası güncellendiğinde verilerin otomatik senkronizasyonunu " "etkinleştir" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "senkronize edilen tarih" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} bir sync_data () yöntemi uygulamalıdır." @@ -12365,12 +12369,12 @@ msgstr "Hata" msgid "No {model_name} found" msgstr "Hayır {model_name} bulunan" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Tarla" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Değer" @@ -12644,7 +12648,7 @@ msgstr "Atanan Gruplar" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12869,7 +12873,7 @@ msgstr "Bağlantıyı kes" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14364,10 +14368,15 @@ msgstr "Test Özeti" msgid "Log" msgstr "Günlüğe" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "Çıktı" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "İndir" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Yükleniyor" @@ -14414,10 +14423,6 @@ msgstr "Bağlam Verileri" msgid "Rendered Config" msgstr "Oluşturulan Yapılandırma" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "İndir" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Hata oluşturma şablonu" @@ -15246,7 +15251,7 @@ msgstr "Son Etkinlik" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Tümünü Görüntüle" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17103,8 +17108,8 @@ msgstr "WPA Kurumsal" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17115,15 +17120,39 @@ msgid "Bridged VLAN" msgstr "Köprülü VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Ana cihaz A'nın sitesi (varsa)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Atanan arayüz A'nın ana aygıtı" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Arayüz A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Atanmış arayüz A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Ana cihaz B sitesi (varsa)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Atanan arabirim B'nin ana aygıtı" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Arayüz B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Atanmış arayüz B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "B Tarafı" diff --git a/netbox/translations/uk/LC_MESSAGES/django.mo b/netbox/translations/uk/LC_MESSAGES/django.mo index 57779f662..2ba59ef99 100644 Binary files a/netbox/translations/uk/LC_MESSAGES/django.mo and b/netbox/translations/uk/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/uk/LC_MESSAGES/django.po b/netbox/translations/uk/LC_MESSAGES/django.po index 7985f7f22..95d3a5bbf 100644 --- a/netbox/translations/uk/LC_MESSAGES/django.po +++ b/netbox/translations/uk/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Ukrainian (https://app.transifex.com/netbox-community/teams/178115/uk/)\n" @@ -717,7 +717,7 @@ msgstr "Колір" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -834,7 +834,7 @@ msgstr "Обліковий запис постачальника" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -914,7 +914,7 @@ msgstr "Статус" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -951,8 +951,8 @@ msgstr "Відстань" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "Одиниця відстані" @@ -987,7 +987,7 @@ msgstr "Параметри обслуговування" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1191,7 +1191,7 @@ msgstr "Операційний стан" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "Призначений орендар" @@ -2541,8 +2541,8 @@ msgstr "Журнал змін не підтримується для цього #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "створено" @@ -2659,7 +2659,7 @@ msgstr "" "Виникла помилка при ініціалізації бекенду. Необхідно встановити залежність: " #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "останнє оновлення" @@ -2802,7 +2802,7 @@ msgstr "П.І.Б." #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2840,7 +2840,7 @@ msgstr "Останнє оновлення" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5136,7 +5136,7 @@ msgid "Side B name" msgstr "Назва сторони B" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "Статус підключення" @@ -5350,7 +5350,7 @@ msgid "Connection" msgstr "Підключення" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7392,11 +7392,13 @@ msgstr "Кінець А" msgid "Termination B" msgstr "Кінець Б" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "Пристрій А" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "Пристрій Б" @@ -7416,11 +7418,11 @@ msgstr "Стійка А" msgid "Rack B" msgstr "Стійка Б" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "Тех. майданчик А" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "Тех. майданчик Б" @@ -8418,6 +8420,7 @@ msgstr "Активний" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8434,6 +8437,7 @@ msgstr "Типи об'єктів" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "Один або кілька присвоєних типів об'єктів" @@ -8517,15 +8521,15 @@ msgstr "Веб-хук {name} не знайдено" msgid "Script {name} not found" msgstr "Сценарій {name} не знайдено" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "Призначений тип об'єкта" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "Класифікація вступу" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8534,11 +8538,11 @@ msgstr "Класифікація вступу" msgid "Users" msgstr "Користувачі" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "Імена користувачів, розділені комами, укладені подвійними лапками" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8551,7 +8555,7 @@ msgstr "Імена користувачів, розділені комами, у msgid "Groups" msgstr "Групи" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "Імена груп, розділені комами, укладені подвійними лапками" @@ -8845,7 +8849,7 @@ msgstr "Дані заповнюються з віддаленого джерел msgid "Must specify either local data or a data file" msgstr "Необхідно вказати локальні дані або файл даних" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "Графік роботи в" @@ -8853,7 +8857,7 @@ msgstr "Графік роботи в" msgid "Schedule execution of report to a set time" msgstr "Заплануйте виконання звіту до встановленого часу" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "Повторюється кожного" @@ -8861,45 +8865,45 @@ msgstr "Повторюється кожного" msgid "Interval at which this report is re-run (in minutes)" msgstr "Інтервал, з яким цей звіт повторно виконується (у хвилині)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (поточний час: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "Запланований час повинен бути в майбутньому." -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "Здійснити зміни" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" "Здійснити внесення змін до бази даних (зніміть прапорець для сухого запуску)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "Заплануйте виконання сценарію до встановленого часу" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "Інтервал повторного запуску сценарію (у хвилині)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "Зміни бази даних були автоматично скасовані." -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "Скрипт перерваний з помилкою: " -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "Виняток стався: " -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "Зміни бази даних були скасовані через помилку." @@ -9654,7 +9658,7 @@ msgid "notifications" msgstr "сповіщення" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "Об'єкти такого типу ({type}) не підтримують сповіщення." @@ -9668,19 +9672,19 @@ msgstr "груп" msgid "users" msgstr "користувачів" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "група повідомлень" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "групи повідомлень" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "підписка" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "підписки" @@ -10362,8 +10366,8 @@ msgstr "Ідентифікатор групи" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11804,51 +11808,51 @@ msgstr "Видалити мітки" msgid "{class_name} must specify a model class." msgstr "{class_name} необхідно вказати клас моделі." -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "Невідоме ім'я поля '{name}' у призначених для користувача даних поля." -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "Невірне значення для користувацького поля '{name}': {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "Користувацьке поле '{name}' має мати унікальне значення." -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "Відсутнє обов'язкове користувацьке поле '{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "Віддалене джерело даних" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "шлях даних" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "Шлях до віддаленого файлу (відносно кореня джерела даних)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "увімкнути автоматичну синхронізацію" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "Увімкнути автоматичну синхронізацію даних при оновленні файлу даних" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "дата синхронізована" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name} повинен реалізувати метод sync_data()." @@ -12445,12 +12449,12 @@ msgstr "Помилка" msgid "No {model_name} found" msgstr "{model_name} не знайдено" -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "Поле" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "Значення" @@ -12726,7 +12730,7 @@ msgstr "Призначені групи" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12951,7 +12955,7 @@ msgstr "Відключити" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14440,10 +14444,15 @@ msgstr "Підсумок тесту" msgid "Log" msgstr "Журнал" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "вихід" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "Завантажити" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "Завантаження" @@ -14490,10 +14499,6 @@ msgstr "Контекстні дані" msgid "Rendered Config" msgstr "Відтворена конфігурація" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "Завантажити" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "Помилка візуалізації шаблону" @@ -15323,7 +15328,7 @@ msgstr "Недавня діяльність" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "Переглянути всі" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -17197,8 +17202,8 @@ msgstr "WPA для підприємства" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -17209,15 +17214,39 @@ msgid "Bridged VLAN" msgstr "Мостові VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "Сайт батьківського пристрою А (якщо є)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "Батьківський пристрій призначеного інтерфейсу A" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "Інтерфейс A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "Призначений інтерфейс A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "Сайт батьківського пристрою B (якщо такий є)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "Батьківський пристрій призначеного інтерфейсу B" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "Інтерфейс Б" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "Призначений інтерфейс B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "Сторона Б" diff --git a/netbox/translations/zh/LC_MESSAGES/django.mo b/netbox/translations/zh/LC_MESSAGES/django.mo index f89fcc211..102947fca 100644 Binary files a/netbox/translations/zh/LC_MESSAGES/django.mo and b/netbox/translations/zh/LC_MESSAGES/django.mo differ diff --git a/netbox/translations/zh/LC_MESSAGES/django.po b/netbox/translations/zh/LC_MESSAGES/django.po index 4baaf5f46..47c9b5734 100644 --- a/netbox/translations/zh/LC_MESSAGES/django.po +++ b/netbox/translations/zh/LC_MESSAGES/django.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-06-05 05:01+0000\n" +"POT-Creation-Date: 2025-06-26 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" "Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Chinese (https://app.transifex.com/netbox-community/teams/178115/zh/)\n" @@ -725,7 +725,7 @@ msgstr "颜色" #: netbox/dcim/tables/devices.py:852 netbox/dcim/tables/power.py:77 #: netbox/dcim/tables/racks.py:141 netbox/extras/forms/bulk_import.py:42 #: netbox/extras/tables/tables.py:449 netbox/extras/tables/tables.py:509 -#: netbox/netbox/tables/tables.py:269 +#: netbox/netbox/tables/tables.py:272 #: netbox/templates/circuits/circuit.html:30 #: netbox/templates/circuits/virtualcircuit.html:39 #: netbox/templates/circuits/virtualcircuittermination.html:64 @@ -842,7 +842,7 @@ msgstr "运营商账户" #: netbox/wireless/forms/bulk_edit.py:46 #: netbox/wireless/forms/bulk_edit.py:109 #: netbox/wireless/forms/bulk_import.py:45 -#: netbox/wireless/forms/bulk_import.py:89 +#: netbox/wireless/forms/bulk_import.py:132 #: netbox/wireless/forms/filtersets.py:52 #: netbox/wireless/forms/filtersets.py:111 #: netbox/wireless/tables/wirelesslan.py:52 @@ -922,7 +922,7 @@ msgstr "状态" #: netbox/vpn/forms/filtersets.py:219 netbox/wireless/forms/bulk_edit.py:66 #: netbox/wireless/forms/bulk_edit.py:114 #: netbox/wireless/forms/bulk_import.py:57 -#: netbox/wireless/forms/bulk_import.py:102 +#: netbox/wireless/forms/bulk_import.py:137 #: netbox/wireless/forms/filtersets.py:38 #: netbox/wireless/forms/filtersets.py:103 msgid "Tenant" @@ -959,8 +959,8 @@ msgstr "距离" #: netbox/circuits/forms/bulk_import.py:108 #: netbox/circuits/forms/filtersets.py:213 #: netbox/wireless/forms/bulk_edit.py:138 -#: netbox/wireless/forms/bulk_import.py:121 -#: netbox/wireless/forms/bulk_import.py:124 +#: netbox/wireless/forms/bulk_import.py:156 +#: netbox/wireless/forms/bulk_import.py:159 #: netbox/wireless/forms/filtersets.py:134 msgid "Distance unit" msgstr "距离单位" @@ -995,7 +995,7 @@ msgstr "服务参数" #: netbox/ipam/forms/filtersets.py:406 netbox/ipam/forms/filtersets.py:492 #: netbox/ipam/forms/filtersets.py:505 netbox/ipam/forms/filtersets.py:530 #: netbox/ipam/forms/filtersets.py:601 netbox/ipam/forms/filtersets.py:619 -#: netbox/netbox/tables/tables.py:285 netbox/templates/dcim/moduletype.html:68 +#: netbox/netbox/tables/tables.py:288 netbox/templates/dcim/moduletype.html:68 #: netbox/virtualization/forms/filtersets.py:46 #: netbox/virtualization/forms/filtersets.py:109 #: netbox/virtualization/forms/filtersets.py:204 @@ -1199,7 +1199,7 @@ msgstr "运行状态" #: netbox/virtualization/forms/bulk_import.py:71 #: netbox/virtualization/forms/bulk_import.py:125 #: netbox/vpn/forms/bulk_import.py:63 netbox/wireless/forms/bulk_import.py:61 -#: netbox/wireless/forms/bulk_import.py:106 +#: netbox/wireless/forms/bulk_import.py:141 msgid "Assigned tenant" msgstr "已分配租户" @@ -2548,8 +2548,8 @@ msgstr "此对象类型 ({type}) 不支持更改日志记录。" #: netbox/core/models/config.py:18 netbox/core/models/data.py:269 #: netbox/core/models/files.py:30 netbox/core/models/jobs.py:52 #: netbox/extras/models/models.py:806 netbox/extras/models/notifications.py:39 -#: netbox/extras/models/notifications.py:186 -#: netbox/netbox/models/features.py:53 netbox/users/models/tokens.py:32 +#: netbox/extras/models/notifications.py:192 +#: netbox/netbox/models/features.py:54 netbox/users/models/tokens.py:32 msgid "created" msgstr "已创建" @@ -2663,7 +2663,7 @@ msgid "" msgstr "初始化后端时出错。 需要安装依赖:" #: netbox/core/models/data.py:273 netbox/core/models/files.py:34 -#: netbox/netbox/models/features.py:59 +#: netbox/netbox/models/features.py:60 msgid "last updated" msgstr "最后更新" @@ -2803,7 +2803,7 @@ msgstr "全名" #: netbox/extras/tables/tables.py:341 netbox/extras/tables/tables.py:373 #: netbox/extras/tables/tables.py:453 netbox/extras/tables/tables.py:514 #: netbox/extras/tables/tables.py:637 netbox/extras/tables/tables.py:677 -#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:273 +#: netbox/extras/tables/tables.py:731 netbox/netbox/tables/tables.py:276 #: netbox/templates/core/objectchange.html:58 #: netbox/templates/extras/eventrule.html:78 #: netbox/templates/extras/journalentry.html:18 @@ -2841,7 +2841,7 @@ msgstr "最后更新日期" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 #: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:230 #: netbox/extras/tables/tables.py:504 netbox/extras/tables/tables.py:702 -#: netbox/netbox/tables/tables.py:218 +#: netbox/netbox/tables/tables.py:221 #: netbox/templates/dcim/virtualchassis_edit.html:56 #: netbox/utilities/forms/forms.py:73 #: netbox/wireless/tables/wirelesslink.py:16 @@ -5125,7 +5125,7 @@ msgid "Side B name" msgstr "B端设备名称" #: netbox/dcim/forms/bulk_import.py:1378 -#: netbox/wireless/forms/bulk_import.py:91 +#: netbox/wireless/forms/bulk_import.py:134 msgid "Connection status" msgstr "连接状态" @@ -5331,7 +5331,7 @@ msgid "Connection" msgstr "连接" #: netbox/dcim/forms/filtersets.py:1426 netbox/extras/forms/bulk_edit.py:382 -#: netbox/extras/forms/bulk_import.py:253 +#: netbox/extras/forms/bulk_import.py:261 #: netbox/extras/forms/filtersets.py:527 #: netbox/extras/forms/model_forms.py:759 netbox/extras/tables/tables.py:640 #: netbox/templates/extras/journalentry.html:30 @@ -7243,11 +7243,13 @@ msgstr "本端A" msgid "Termination B" msgstr "对端B" -#: netbox/dcim/tables/cables.py:66 netbox/wireless/tables/wirelesslink.py:22 +#: netbox/dcim/tables/cables.py:66 netbox/wireless/forms/bulk_import.py:97 +#: netbox/wireless/tables/wirelesslink.py:22 msgid "Device A" msgstr "设备A" -#: netbox/dcim/tables/cables.py:72 netbox/wireless/tables/wirelesslink.py:31 +#: netbox/dcim/tables/cables.py:72 netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/tables/wirelesslink.py:31 msgid "Device B" msgstr "设备B" @@ -7267,11 +7269,11 @@ msgstr "机柜A" msgid "Rack B" msgstr "机柜B" -#: netbox/dcim/tables/cables.py:102 +#: netbox/dcim/tables/cables.py:102 netbox/wireless/forms/bulk_import.py:90 msgid "Site A" msgstr "站点A" -#: netbox/dcim/tables/cables.py:108 +#: netbox/dcim/tables/cables.py:108 netbox/wireless/forms/bulk_import.py:111 msgid "Site B" msgstr "站点B" @@ -8261,6 +8263,7 @@ msgstr "激活的" #: netbox/extras/forms/bulk_import.py:139 #: netbox/extras/forms/bulk_import.py:164 #: netbox/extras/forms/bulk_import.py:188 +#: netbox/extras/forms/bulk_import.py:242 #: netbox/extras/forms/filtersets.py:141 netbox/extras/forms/filtersets.py:235 #: netbox/extras/forms/filtersets.py:265 netbox/extras/forms/model_forms.py:50 #: netbox/extras/forms/model_forms.py:222 @@ -8277,6 +8280,7 @@ msgstr "对象类型" #: netbox/extras/forms/bulk_import.py:141 #: netbox/extras/forms/bulk_import.py:166 #: netbox/extras/forms/bulk_import.py:190 +#: netbox/extras/forms/bulk_import.py:244 #: netbox/tenancy/forms/bulk_import.py:95 msgid "One or more assigned object types" msgstr "一个或多个分配对象类型" @@ -8355,15 +8359,15 @@ msgstr "未找到 Webhook {name}" msgid "Script {name} not found" msgstr "未找到脚本{name}" -#: netbox/extras/forms/bulk_import.py:250 +#: netbox/extras/forms/bulk_import.py:258 msgid "Assigned object type" msgstr "分配的对象类型" -#: netbox/extras/forms/bulk_import.py:255 +#: netbox/extras/forms/bulk_import.py:263 msgid "The classification of entry" msgstr "条目的分类" -#: netbox/extras/forms/bulk_import.py:267 +#: netbox/extras/forms/bulk_import.py:275 #: netbox/extras/forms/model_forms.py:398 netbox/netbox/navigation/menu.py:413 #: netbox/templates/extras/notificationgroup.html:41 #: netbox/templates/users/group.html:29 netbox/users/forms/model_forms.py:236 @@ -8372,11 +8376,11 @@ msgstr "条目的分类" msgid "Users" msgstr "用户" -#: netbox/extras/forms/bulk_import.py:271 +#: netbox/extras/forms/bulk_import.py:279 msgid "User names separated by commas, encased with double quotes" msgstr "用户名用逗号分隔,用双引号括起来" -#: netbox/extras/forms/bulk_import.py:274 +#: netbox/extras/forms/bulk_import.py:282 #: netbox/extras/forms/model_forms.py:393 netbox/netbox/navigation/menu.py:295 #: netbox/netbox/navigation/menu.py:433 #: netbox/templates/extras/notificationgroup.html:31 @@ -8389,7 +8393,7 @@ msgstr "用户名用逗号分隔,用双引号括起来" msgid "Groups" msgstr "组" -#: netbox/extras/forms/bulk_import.py:278 +#: netbox/extras/forms/bulk_import.py:286 msgid "Group names separated by commas, encased with double quotes" msgstr "群组名称用逗号分隔,用双引号括起来" @@ -8669,7 +8673,7 @@ msgstr "数据是从下面选择的远程源填充的。" msgid "Must specify either local data or a data file" msgstr "必须指定本地内容或数据文件" -#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:30 +#: netbox/extras/forms/reports.py:17 netbox/extras/forms/scripts.py:25 msgid "Schedule at" msgstr "计划在" @@ -8677,7 +8681,7 @@ msgstr "计划在" msgid "Schedule execution of report to a set time" msgstr "在指定的时间执行报告" -#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:36 +#: netbox/extras/forms/reports.py:23 netbox/extras/forms/scripts.py:31 msgid "Recurs every" msgstr "重复间隔" @@ -8685,44 +8689,44 @@ msgstr "重复间隔" msgid "Interval at which this report is re-run (in minutes)" msgstr "重新运行此报表的间隔(分钟)" -#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:48 +#: netbox/extras/forms/reports.py:35 netbox/extras/forms/scripts.py:43 #, python-brace-format msgid " (current time: {now})" msgstr " (当前时间: {now})" -#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:58 +#: netbox/extras/forms/reports.py:45 netbox/extras/forms/scripts.py:53 msgid "Scheduled time must be in the future." msgstr "预定时间需设置在当前时间之后。" -#: netbox/extras/forms/scripts.py:24 +#: netbox/extras/forms/scripts.py:19 msgid "Commit changes" msgstr "提交更改" -#: netbox/extras/forms/scripts.py:25 +#: netbox/extras/forms/scripts.py:20 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "提交对数据库的更改(取消选中以进行试运行)" -#: netbox/extras/forms/scripts.py:31 +#: netbox/extras/forms/scripts.py:26 msgid "Schedule execution of script to a set time" msgstr "在指定的时间执行脚本" -#: netbox/extras/forms/scripts.py:40 +#: netbox/extras/forms/scripts.py:35 msgid "Interval at which this script is re-run (in minutes)" msgstr "重新运行此脚本的间隔(分钟)" -#: netbox/extras/jobs.py:47 +#: netbox/extras/jobs.py:50 msgid "Database changes have been reverted automatically." msgstr "数据库更改已自动恢复。" -#: netbox/extras/jobs.py:53 +#: netbox/extras/jobs.py:56 msgid "Script aborted with error: " msgstr "脚本因错误而中止:" -#: netbox/extras/jobs.py:63 +#: netbox/extras/jobs.py:66 msgid "An exception occurred: " msgstr "出现异常:" -#: netbox/extras/jobs.py:68 +#: netbox/extras/jobs.py:71 msgid "Database changes have been reverted due to error." msgstr "由于出现错误,数据库更改已回滚。" @@ -9435,7 +9439,7 @@ msgid "notifications" msgstr "通知" #: netbox/extras/models/notifications.py:99 -#: netbox/extras/models/notifications.py:234 +#: netbox/extras/models/notifications.py:240 #, python-brace-format msgid "Objects of this type ({type}) do not support notifications." msgstr "这种类型的对象 ({type}) 不支持通知。" @@ -9449,19 +9453,19 @@ msgstr "组" msgid "users" msgstr "用户" -#: netbox/extras/models/notifications.py:152 +#: netbox/extras/models/notifications.py:158 msgid "notification group" msgstr "通知组" -#: netbox/extras/models/notifications.py:153 +#: netbox/extras/models/notifications.py:159 msgid "notification groups" msgstr "通知组" -#: netbox/extras/models/notifications.py:217 +#: netbox/extras/models/notifications.py:223 msgid "subscription" msgstr "订阅" -#: netbox/extras/models/notifications.py:218 +#: netbox/extras/models/notifications.py:224 msgid "subscriptions" msgstr "订阅" @@ -10141,8 +10145,8 @@ msgstr "组 ID" #: netbox/wireless/forms/bulk_edit.py:119 #: netbox/wireless/forms/bulk_import.py:64 #: netbox/wireless/forms/bulk_import.py:67 -#: netbox/wireless/forms/bulk_import.py:109 -#: netbox/wireless/forms/bulk_import.py:112 +#: netbox/wireless/forms/bulk_import.py:144 +#: netbox/wireless/forms/bulk_import.py:147 #: netbox/wireless/forms/filtersets.py:57 #: netbox/wireless/forms/filtersets.py:116 msgid "Authentication type" @@ -11526,51 +11530,51 @@ msgstr "移除标签" msgid "{class_name} must specify a model class." msgstr "{class_name}必须指定一个模型类。" -#: netbox/netbox/models/features.py:280 +#: netbox/netbox/models/features.py:281 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "自定义字段中的字段名称 '{name}' 未知。" -#: netbox/netbox/models/features.py:286 +#: netbox/netbox/models/features.py:287 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "自定义字段'{name}'的值无效: {error}" -#: netbox/netbox/models/features.py:295 +#: netbox/netbox/models/features.py:296 #, python-brace-format msgid "Custom field '{name}' must have a unique value." msgstr "自定义字段 '{name}'必须具有唯一值。" -#: netbox/netbox/models/features.py:302 +#: netbox/netbox/models/features.py:303 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "缺少必需的自定义字段'{name}'." -#: netbox/netbox/models/features.py:492 +#: netbox/netbox/models/features.py:493 msgid "Remote data source" msgstr "远程数据源" -#: netbox/netbox/models/features.py:502 +#: netbox/netbox/models/features.py:503 msgid "data path" msgstr "文件路径" -#: netbox/netbox/models/features.py:506 +#: netbox/netbox/models/features.py:507 msgid "Path to remote file (relative to data source root)" msgstr "数据源文件路径(相对路径)" -#: netbox/netbox/models/features.py:509 +#: netbox/netbox/models/features.py:510 msgid "auto sync enabled" msgstr "自动同步已启用" -#: netbox/netbox/models/features.py:511 +#: netbox/netbox/models/features.py:512 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "数据文件更新时启用数据自动同步" -#: netbox/netbox/models/features.py:514 +#: netbox/netbox/models/features.py:515 msgid "date synced" msgstr "数据已同步" -#: netbox/netbox/models/features.py:608 +#: netbox/netbox/models/features.py:609 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "{class_name}必须包含sync_data()方法。" @@ -12163,12 +12167,12 @@ msgstr "错误" msgid "No {model_name} found" msgstr "找不到 {model_name} " -#: netbox/netbox/tables/tables.py:278 +#: netbox/netbox/tables/tables.py:281 #: netbox/templates/generic/bulk_import.html:117 msgid "Field" msgstr "字段" -#: netbox/netbox/tables/tables.py:281 +#: netbox/netbox/tables/tables.py:284 msgid "Value" msgstr "值" @@ -12438,7 +12442,7 @@ msgstr "指定用户组" #: netbox/templates/extras/configtemplate.html:77 #: netbox/templates/extras/eventrule.html:66 #: netbox/templates/extras/exporttemplate.html:88 -#: netbox/templates/extras/htmx/script_result.html:60 +#: netbox/templates/extras/htmx/script_result.html:69 #: netbox/templates/extras/webhook.html:65 #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 @@ -12663,7 +12667,7 @@ msgstr "断开" #: netbox/templates/dcim/frontport.html:102 #: netbox/templates/dcim/interface.html:237 #: netbox/templates/dcim/interface.html:257 -#: netbox/templates/dcim/powerfeed.html:127 +#: netbox/templates/dcim/powerfeed.html:123 #: netbox/templates/dcim/poweroutlet.html:85 #: netbox/templates/dcim/poweroutlet.html:86 #: netbox/templates/dcim/powerport.html:73 @@ -14126,10 +14130,15 @@ msgstr "测试总结" msgid "Log" msgstr "日志" -#: netbox/templates/extras/htmx/script_result.html:56 +#: netbox/templates/extras/htmx/script_result.html:57 msgid "Output" msgstr "输出" +#: netbox/templates/extras/htmx/script_result.html:61 +#: netbox/templates/extras/object_render_config.html:60 +msgid "Download" +msgstr "下载" + #: netbox/templates/extras/inc/result_pending.html:4 msgid "Loading" msgstr "加载中" @@ -14176,10 +14185,6 @@ msgstr "实例数据" msgid "Rendered Config" msgstr "提交配置" -#: netbox/templates/extras/object_render_config.html:60 -msgid "Download" -msgstr "下载" - #: netbox/templates/extras/object_render_config.html:68 msgid "Error rendering template" msgstr "渲染模板时出错" @@ -14990,7 +14995,7 @@ msgstr "近期活动" #: netbox/templates/users/inc/user_activity.html:9 msgid "View All" -msgstr "" +msgstr "查看全部" #: netbox/templates/users/objectpermission.html:6 #: netbox/templates/users/objectpermission.html:14 @@ -16778,8 +16783,8 @@ msgstr "WPA Enterprise" #: netbox/wireless/forms/bulk_edit.py:124 #: netbox/wireless/forms/bulk_import.py:70 #: netbox/wireless/forms/bulk_import.py:73 -#: netbox/wireless/forms/bulk_import.py:115 -#: netbox/wireless/forms/bulk_import.py:118 +#: netbox/wireless/forms/bulk_import.py:150 +#: netbox/wireless/forms/bulk_import.py:153 #: netbox/wireless/forms/filtersets.py:62 #: netbox/wireless/forms/filtersets.py:121 msgid "Authentication cipher" @@ -16790,15 +16795,39 @@ msgid "Bridged VLAN" msgstr "桥接 VLAN" #: netbox/wireless/forms/bulk_import.py:94 +msgid "Site of parent device A (if any)" +msgstr "父设备 A 的站点(如果有)" + +#: netbox/wireless/forms/bulk_import.py:100 +msgid "Parent device of assigned interface A" +msgstr "已分配接口 A 的父设备" + +#: netbox/wireless/forms/bulk_import.py:103 #: netbox/wireless/tables/wirelesslink.py:27 msgid "Interface A" msgstr "网络接口A" -#: netbox/wireless/forms/bulk_import.py:98 +#: netbox/wireless/forms/bulk_import.py:106 +msgid "Assigned interface A" +msgstr "分配的接口 A" + +#: netbox/wireless/forms/bulk_import.py:115 +msgid "Site of parent device B (if any)" +msgstr "父设备 B 的站点(如果有)" + +#: netbox/wireless/forms/bulk_import.py:121 +msgid "Parent device of assigned interface B" +msgstr "已分配接口 B 的父设备" + +#: netbox/wireless/forms/bulk_import.py:124 #: netbox/wireless/tables/wirelesslink.py:36 msgid "Interface B" msgstr "网络接口B" +#: netbox/wireless/forms/bulk_import.py:127 +msgid "Assigned interface B" +msgstr "分配的接口 B" + #: netbox/wireless/forms/model_forms.py:166 msgid "Side B" msgstr "B端" diff --git a/netbox/users/forms/model_forms.py b/netbox/users/forms/model_forms.py index 42c3b15f0..d8773feb4 100644 --- a/netbox/users/forms/model_forms.py +++ b/netbox/users/forms/model_forms.py @@ -59,6 +59,7 @@ class UserConfigForm(forms.ModelForm, metaclass=UserConfigFormMetaclass): fieldsets = ( FieldSet( 'locale.language', 'pagination.per_page', 'pagination.placement', 'ui.htmx_navigation', + 'ui.tables.striping', name=_('User Interface') ), FieldSet('data_format', name=_('Miscellaneous')), diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index bfb3382fe..6013a56f4 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -1,6 +1,6 @@ from django.contrib import messages from django.contrib.contenttypes.models import ContentType -from django.db import transaction +from django.db import router, transaction from django.db.models import Prefetch, Sum from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse @@ -297,7 +297,7 @@ class ClusterAddDevicesView(generic.ObjectEditView): if form.is_valid(): device_pks = form.cleaned_data['devices'] - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(Device)): # Assign the selected Devices to the Cluster for device in Device.objects.filter(pk__in=device_pks): @@ -332,7 +332,7 @@ class ClusterRemoveDevicesView(generic.ObjectEditView): if form.is_valid(): device_pks = form.cleaned_data['pk'] - with transaction.atomic(): + with transaction.atomic(using=router.db_for_write(Device)): # Remove the selected Devices from the Cluster for device in Device.objects.filter(pk__in=device_pks): diff --git a/netbox/wireless/forms/bulk_import.py b/netbox/wireless/forms/bulk_import.py index 389dcf25d..29395f814 100644 --- a/netbox/wireless/forms/bulk_import.py +++ b/netbox/wireless/forms/bulk_import.py @@ -2,7 +2,7 @@ from django.utils.translation import gettext_lazy as _ from dcim.choices import LinkStatusChoices from dcim.forms.mixins import ScopedImportForm -from dcim.models import Interface +from dcim.models import Device, Interface, Site from ipam.models import VLAN from netbox.choices import * from netbox.forms import NetBoxModelImportForm @@ -85,18 +85,53 @@ class WirelessLANImportForm(ScopedImportForm, NetBoxModelImportForm): class WirelessLinkImportForm(NetBoxModelImportForm): - status = CSVChoiceField( - label=_('Status'), - choices=LinkStatusChoices, - help_text=_('Connection status') + # Termination A + site_a = CSVModelChoiceField( + label=_('Site A'), + queryset=Site.objects.all(), + required=False, + to_field_name='name', + help_text=_('Site of parent device A (if any)'), + ) + device_a = CSVModelChoiceField( + label=_('Device A'), + queryset=Device.objects.all(), + to_field_name='name', + help_text=_('Parent device of assigned interface A'), ) interface_a = CSVModelChoiceField( label=_('Interface A'), - queryset=Interface.objects.all() + queryset=Interface.objects.all(), + to_field_name='name', + help_text=_('Assigned interface A'), + ) + + # Termination B + site_b = CSVModelChoiceField( + label=_('Site B'), + queryset=Site.objects.all(), + required=False, + to_field_name='name', + help_text=_('Site of parent device B (if any)'), + ) + device_b = CSVModelChoiceField( + label=_('Device B'), + queryset=Device.objects.all(), + to_field_name='name', + help_text=_('Parent device of assigned interface B'), ) interface_b = CSVModelChoiceField( label=_('Interface B'), - queryset=Interface.objects.all() + queryset=Interface.objects.all(), + to_field_name='name', + help_text=_('Assigned interface B'), + ) + + # WirelessLink attributes + status = CSVChoiceField( + label=_('Status'), + choices=LinkStatusChoices, + help_text=_('Connection status'), ) tenant = CSVModelChoiceField( label=_('Tenant'), @@ -127,6 +162,28 @@ class WirelessLinkImportForm(NetBoxModelImportForm): class Meta: model = WirelessLink fields = ( - 'interface_a', 'interface_b', 'ssid', 'tenant', 'auth_type', 'auth_cipher', 'auth_psk', - 'distance', 'distance_unit', 'description', 'comments', 'tags', + 'site_a', 'device_a', 'interface_a', 'site_b', 'device_b', 'interface_b', 'status', 'ssid', 'tenant', + 'auth_type', 'auth_cipher', 'auth_psk', 'distance', 'distance_unit', 'description', 'comments', 'tags', ) + + def __init__(self, data=None, *args, **kwargs): + super().__init__(data, *args, **kwargs) + + if data: + # Limit choices for interface_a to the assigned device_a + interface_a_params = {f'device__{self.fields["device_a"].to_field_name}': data.get('device_a')} + # Limit choices for device_a to the assigned site_a + if site_a := data.get('site_a'): + device_a_params = {f'site__{self.fields["site_a"].to_field_name}': site_a} + self.fields['device_a'].queryset = self.fields['device_a'].queryset.filter(**device_a_params) + interface_a_params.update({f'device__site__{self.fields["site_a"].to_field_name}': site_a}) + self.fields['interface_a'].queryset = self.fields['interface_a'].queryset.filter(**interface_a_params) + + # Limit choices for interface_b to the assigned device_b + interface_b_params = {f'device__{self.fields["device_b"].to_field_name}': data.get('device_b')} + # Limit choices for device_b to the assigned site_b + if site_b := data.get('site_b'): + device_b_params = {f'site__{self.fields["site_b"].to_field_name}': site_b} + self.fields['device_b'].queryset = self.fields['device_b'].queryset.filter(**device_b_params) + interface_b_params.update({f'device__site__{self.fields["site_b"].to_field_name}': site_b}) + self.fields['interface_b'].queryset = self.fields['interface_b'].queryset.filter(**interface_b_params) diff --git a/netbox/wireless/models.py b/netbox/wireless/models.py index 9c73ae5b7..11f9e06eb 100644 --- a/netbox/wireless/models.py +++ b/netbox/wireless/models.py @@ -198,13 +198,13 @@ class WirelessLink(WirelessAuthenticationBase, DistanceMixin, PrimaryModel): super().clean() # Validate interface types - if self.interface_a.type not in WIRELESS_IFACE_TYPES: + if hasattr(self, "interface_a") and self.interface_a.type not in WIRELESS_IFACE_TYPES: raise ValidationError({ 'interface_a': _( "{type} is not a wireless interface." ).format(type=self.interface_a.get_type_display()) }) - if self.interface_b.type not in WIRELESS_IFACE_TYPES: + if hasattr(self, "interface_b") and self.interface_b.type not in WIRELESS_IFACE_TYPES: raise ValidationError({ 'interface_b': _( "{type} is not a wireless interface." diff --git a/netbox/wireless/tests/test_views.py b/netbox/wireless/tests/test_views.py index 975f18c0d..587ae7f89 100644 --- a/netbox/wireless/tests/test_views.py +++ b/netbox/wireless/tests/test_views.py @@ -198,10 +198,10 @@ class WirelessLinkTestCase(ViewTestCases.PrimaryObjectViewTestCase): } cls.csv_data = ( - "interface_a,interface_b,status,tenant", - f"{interfaces[6].pk},{interfaces[7].pk},connected,{tenants[0].name}", - f"{interfaces[8].pk},{interfaces[9].pk},connected,{tenants[1].name}", - f"{interfaces[10].pk},{interfaces[11].pk},connected,{tenants[2].name}", + "device_a,interface_a,device_b,interface_b,status,tenant", + f"{interfaces[6].device.name},{interfaces[6].name},{interfaces[7].device.name},{interfaces[7].name},connected,{tenants[0].name}", + f"{interfaces[8].device.name},{interfaces[8].name},{interfaces[9].device.name},{interfaces[9].name},connected,{tenants[1].name}", + f"{interfaces[10].device.name},{interfaces[10].name},{interfaces[11].device.name},{interfaces[11].name},connected,{tenants[2].name}", ) cls.csv_update_data = ( diff --git a/pyproject.toml b/pyproject.toml index 9cd50e650..855c67dd8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "netbox" -version = "4.3.2" +version = "4.3.3" requires-python = ">=3.10" authors = [ { name = "NetBox Community" } diff --git a/requirements.txt b/requirements.txt index 50b445145..6306370f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,13 @@ -Django==5.2.2 +Django==5.2.3 django-cors-headers==4.7.0 django-debug-toolbar==5.2.0 django-filter==25.1 -django-htmx==1.23.0 +django-htmx==1.23.1 django-graphiql-debug-toolbar==0.2.0 django-mptt==0.17.0 django-pglocks==1.0.4 -django-prometheus==2.3.1 -django-redis==5.4.0 +django-prometheus==2.4.1 +django-redis==6.0.0 django-rich==2.0.0 django-rq==3.0.1 django-storages==1.14.6 @@ -21,7 +21,7 @@ feedparser==6.0.11 gunicorn==23.0.0 Jinja2==3.1.6 jsonschema==4.24.0 -Markdown==3.8 +Markdown==3.8.2 mkdocs-material==9.6.14 mkdocstrings[python]==0.29.1 netaddr==1.3.0 @@ -29,11 +29,11 @@ nh3==0.2.21 Pillow==11.2.1 psycopg[c,pool]==3.2.9 PyYAML==6.0.2 -requests==2.32.3 -rq==2.3.3 +requests==2.32.4 +rq==2.4.0 social-auth-app-django==5.4.3 social-auth-core==4.6.1 -strawberry-graphql==0.271.0 +strawberry-graphql==0.275.4 strawberry-graphql-django==0.60.0 svgwrite==1.4.3 tablib==3.8.0