metis-desk/modules/resources/src/common/locales/en.json
David 91f1d07e97 Add tests for current operating systems and workplace asset management
- Implement `current-operating-systems-ui.test.py` to validate the functionality of current operating systems in the UI, including tests for source and states, computer changes, responsive design, error handling, and version saving.
- Create `workplace-add-asset.test.py` to test the addition of assets to workstations, covering scenarios such as conflict resolution, responsive design on mobile, error handling during asset creation, and HTTP guards for asset management.
2026-10-25 13:46:06 +01:00

392 lines
21 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"templateIcon": {
"label": "Icon",
"none": "No icon",
"help": "Shown in the catalog and in resources using this template.",
"options": {
"mail": "Mail",
"key": "Access",
"folder": "Folder",
"headphones": "Support",
"monitor": "Operating system",
"layers": "Application",
"shield": "Certificate",
"file-key": "License",
"box": "Resource"
}
},
"resourcePanel": "Resource details",
"closeResourcePanel": "Close resource panel",
"showResourcePanel": "Show selected details",
"allResources": "All",
"filterByTemplate": "Filter by template",
"inventory": "Resources",
"mailboxKind": "Mailbox type",
"corporate": "Corporate",
"external": "External",
"relatedAccount": "Related account",
"resourceTypeId": "Access type",
"systemId": "System",
"environmentId": "Environment",
"newResource": "New resource",
"editResource": "Edit resource",
"viewResource": "Details and history",
"template": "Resource template",
"status": "Status",
"active": "Active",
"inactive": "Inactive",
"notes": "Notes",
"characteristics": "Characteristics",
"chooseValue": "Select a value",
"noValue": "—",
"history": "History",
"recordedBy": "Recorded by {{name}}",
"snapshotNotice": "Template changes update this record. Removed fields with values are retained, and history keeps its original structure.",
"resourceDescription": "Register a mailbox, shared folder, application, certificate, software license or assistance tool for this company.",
"resourceExamples": "Examples: admin@company.com, Administration folder, corporate Zoom, signing certificate or Microsoft 365 subscription.",
"resourceGuidance": "Characteristics are optional unless the template requires them. Never store passwords or private keys.",
"resourceScope": "This record identifies the company resource. Availability and device configuration are managed separately.",
"licenseDescription": "Register a software license or subscription contracted by this company.",
"licenseExamples": "Examples: Microsoft 365 Business Standard per user, ESET Endpoint per device or a perpetual ERP license.",
"licenseGuidance": "All fields are optional. Contracted quantity records seats or units covered by the contract. Expiration and renewal dates may differ; perpetual licenses may have no expiration. Do not enter activation keys.",
"licenseScope": "The application used and its contracted license are separate resources. This record does not allocate seats or calculate remaining capacity.",
"relatedNotice": "The template remains saved if you later cancel the resource.",
"inventoryErrors": {
"INVALID_REQUEST": "Check the form data.",
"INVALID_EMAIL": "Enter a valid email address.",
"CONTEXT_FIXED": "The resource type and context cannot change.",
"REFERENCE_UNAVAILABLE": "Select valid references from this company.",
"INVALID_CHARACTERISTICS": "A characteristic is not part of the template or has an invalid value.",
"REQUIRED_CHARACTERISTICS": "Complete the required template characteristics.",
"TEMPLATE_FIXED": "A resource's template cannot change.",
"TEMPLATE_UNAVAILABLE": "Select an active resource template from this scope.",
"NAME_EXISTS": "A resource with this name and template already exists in this company.",
"RESOURCE_NOT_FOUND": "Resource not found.",
"COMPANY_NOT_FOUND": "Company not found.",
"FORBIDDEN": "Your session does not allow this operation. Sign in again.",
"UNAUTHENTICATED": "Sign in again.",
"INTERNAL_ERROR": "The operation could not be completed.",
"RESOURCE_IN_USE": "The resource has current or historical associations. Deactivate it to preserve them or remove its associations before deleting it.",
"INVALID_DOMAIN_IDENTITY": "Check the domain DNS and NetBIOS names.",
"DOMAIN_DNS_EXISTS": "A domain with this DNS already exists in this company.",
"DIRECTORY_CONTEXT_UNAVAILABLE": "The Active Directory context could not be created or validated. Check existing systems and environments.",
"INVALID_SMB_ADDRESS": "Enter a valid SMB UNC path.",
"SMB_ADDRESS_EXISTS": "An active SMB resource already uses this address.",
"ACCESS_PROJECTION_UNAVAILABLE": "The resource access integration could not be prepared.",
"SMB_ACCESS_INCOMPATIBLE": "The SMB folder requires its automatic integration without a system or environment."
},
"yes": "Yes",
"no": "No",
"title": "Resource catalog",
"companyTitle": "Resource catalog",
"introduction": "Define the characteristics and templates used when registering resources.",
"companyIntroduction": "Use global definitions and add those needed by this company.",
"fields": "Fields",
"templates": "Templates",
"newField": "New field",
"editField": "Edit field",
"newTemplate": "New template",
"templateUsage": "Template use",
"templateUsageHelp": "Allows these resources to be used as profile applications, operating systems, certificates, remote support tools or software licenses. Usage is fixed when the template is created.",
"usage": {
"general": "General",
"application": "Application",
"certificate": "Digital certificate",
"support": "Remote assistance",
"os": "Operating system",
"license": "Software license"
},
"editTemplate": "Edit template",
"name": "Name",
"description": "Description",
"type": "Data type",
"unit": "Unit",
"choices": "List values",
"choicesHelp": "Enter one value per line. Existing values are retained; you can add others.",
"text": "Text",
"number": "Number",
"date": "Date",
"boolean": "Yes / No",
"choice": "List of values",
"activate": "Activate",
"deactivate": "Deactivate",
"inherited": "Global configuration",
"overridden": "Customized for this company",
"reset": "Use global configuration",
"builtin": "Built in",
"global": {
"title": "Global application catalog",
"description": "Product definitions shared across companies. Search by name or provider.",
"application": "Application",
"provider": "Provider",
"open": "Open details",
"edit": "Edit global application",
"create": "New global application",
"all": "All statuses",
"activeFilter": "Active",
"inactiveFilter": "Inactive",
"loading": "Loading applications…",
"refreshing": "Refreshing applications…",
"unavailable": "Applications could not be loaded.",
"stale": "Showing the last available data. Refresh failed.",
"range": "Showing {{from}}–{{to}} applications",
"page": "Page {{page}}",
"previous": "Previous",
"next": "Next",
"pageSize": "Applications per page",
"clear": "Clear filters",
"retry": "Try again",
"search": "Search by name or provider",
"noMatches": "No applications match. Try another search or clear the filters.",
"empty": "There are no global applications yet. The initial administrator can create the first one.",
"firstPage": "Return to the first page",
"readOnly": "The catalog is in read mode. You can view details and deactivate existing applications.",
"identity": "Product identity",
"fixedTemplate": "Template: {{name}}. Global applications use this fixed template.",
"requiredName": "Enter a name of up to 100 characters.",
"compareCurrent": "Open current details to compare",
"formDescription": "Define a reusable product in the global catalog.",
"formExamples": "For example: accounting software or an office application.",
"formGuidance": "Review matching products before creating another one. Do not include license keys, credentials or customer data.",
"formScope": "This form defines the product. Company installations and configurations are managed separately.",
"deactivate": "Deactivate",
"reactivate": "Reactivate",
"stateHelp": "Deactivation preserves the product and its history. Reactivation makes it available again when its required fields are valid.",
"noHistory": "No revisions are available.",
"detailDescription": "Global product definition, shared across companies.",
"url": "Product URL",
"productDescription": "Product description",
"breadcrumb": "Catalog breadcrumb",
"catalogs": "Global catalogs",
"duplicates": "Possible search matches. Review the product and provider; a similar name does not prove equivalence.",
"duplicateAcknowledgment": "I reviewed the catalog and this is a different product.",
"duplicateLoading": "Checking matches…",
"errors": {
"INTERNAL_ERROR": "The operation could not be completed. Keep the form and try again.",
"INVALID_REQUEST": "Review the entered data.",
"RESOURCE_NOT_FOUND": "This global application could not be found.",
"FORBIDDEN": "You do not have permission to manage global applications.",
"UNAUTHENTICATED": "Your session expired. Sign in again.",
"RESOURCE_UPDATE_CONFLICT": "The application changed after you opened the form. Your draft is preserved; open the current details to compare before editing again.",
"RESOURCE_CREATION_CONFLICT": "This creation identity was already used with different data. Review the details before creating another application.",
"GLOBAL_RESOURCE_CATALOG_DISABLED": "The catalog is in read mode. Your form is preserved.",
"REQUIRED_CHARACTERISTICS": "Complete the application's required fields.",
"GLOBAL_APPLICATION_TEMPLATE_UNAVAILABLE": "The global application template is unavailable for new applications.",
"RESOURCE_GLOBAL_FEATURE_DISABLED": "The catalog is in read mode. Your form is preserved."
},
"reviewCatalog": "Review the catalog before creating",
"creationUnavailable": "The catalog or its template does not allow new applications at this time."
},
"own": "Company",
"custom": "Custom",
"origin": "Origin",
"actions": "Actions",
"edit": "Edit",
"copy": "Create copy",
"copyName": "{{name}} (copy)",
"fieldCount": "{{count}} fields",
"search": "Search",
"empty": "No results.",
"loading": "Loading catalog…",
"retry": "Retry",
"save": "Save",
"saving": "Saving…",
"cancel": "Cancel",
"selectField": "Add fields to the template",
"choose": "Select a field",
"addField": "New field",
"required": "Required",
"chooseType": "Select a type",
"view": "View",
"close": "Close",
"viewDefinition": "{{name}}",
"remove": "Remove field: {{name}}",
"noFields": "Add at least one field. All fields are initially optional.",
"fieldHelpText": "Help text",
"fieldHelpHint": "Shown next to the field when creating or editing a resource.",
"protected": "Built-in templates and fields can be edited in the global catalog. A field's data type remains fixed. You can change availability or create a template copy for a company.",
"helpTitle": "What is it for?",
"examplesLabel": "Show examples and guidance",
"fieldDescription": "A field describes an resource characteristic. You can reuse it in several templates.",
"fieldExamples": "Examples: Email address (text), Expiry (date), URL (text) or Provider (text).",
"fieldGuidance": "Add a unit only when useful. Never store passwords or secrets. The data type is fixed after creation.",
"templateDescription": "A template groups the fields displayed for an resource type. It is not a specific mailbox, folder, application or certificate.",
"templateExamples": "Mailbox: address and provider. Shared folder: UNC path. Certificate: holder, issuer and expiry.",
"templateGuidance": "Characteristics are optional by default. Require only information that is always known. Removing a template field does not delete its catalog definition.",
"globalHelp": "Global scope: available to all companies.",
"companyHelp": "Company scope: additions and availability changes affect this company only.",
"disabledField": "Inactive field: retained in this template.",
"disabledFieldsNotice": "This template contains inactive fields. You can activate them in the catalog before using it.",
"quickNotice": "The field remains saved if you later cancel the template.",
"errors": {
"INVALID_REQUEST": "Check the form data.",
"INVALID_CHOICES": "A list needs unique non-empty values. Other data types do not accept list values.",
"INVALID_FIELDS": "The template needs distinct valid fields.",
"NAME_EXISTS": "A definition of this type already has this name.",
"FIELD_UNAVAILABLE": "Only active global or company fields can be added.",
"FIELD_TYPE_FIXED": "The data type and template use cannot change; existing list values cannot be removed.",
"BUILTIN_PROTECTED": "Built-in fields cannot be edited.",
"DEFINITION_NOT_FOUND": "This definition is unavailable in this scope.",
"COMPANY_NOT_FOUND": "Company not found.",
"INTERNAL_ERROR": "The operation could not be completed.",
"FORBIDDEN": "Your session does not allow this operation. Sign in again.",
"UNAUTHENTICATED": "Sign in again.",
"INVALID_SECTIONS": "Sections must have unique names and each field must belong to a section of this template.",
"DOMAIN_FIELDS_REQUIRED": "The domain template must keep its DNS and NetBIOS fields, with DNS required.",
"SMB_FIELD_REQUIRED": "The template must retain its UNC path field."
},
"fieldPicker": {
"entity_one": "field",
"entity_other": "fields",
"helpLabel": "Section and help",
"destination": "Destination section: {{name}}",
"limit": "You have reached the template field limit. Deselect fields from this selection or remove fields from the template to add others.",
"open": "Select fields",
"title": "Add fields to the template",
"help": "Select one or more fields and confirm to add them as optional to the destination section. Only active fields that are not already in the template are shown.",
"select": "Select",
"selectField": "Select {{name}}",
"selected": "Selected fields: {{count}}",
"confirm": "Add fields",
"empty": "There are no more fields available to add.",
"invalid": "The selection exceeds the template field limit."
},
"sections": {
"addField": "Add field",
"expand": "Expand section",
"collapse": "Collapse section",
"reorder": "Reorder",
"reorderHelp": "Drag the handle and drop on the upper or lower half of the target. You can also focus the handle and use the up and down arrow keys. Fields are reordered within their section.",
"fields": "Fields",
"title": "Template sections",
"add": "Add section",
"name": "Section name",
"description": "Description",
"ungrouped": "Unsectioned",
"moveUp": "Move up",
"moveDown": "Move down",
"remove": "Remove section",
"removeField": "Remove field",
"required": "Required",
"assign": "Section",
"help": "Organize fields without changing their values or requirements. Removing a section moves its fields to Unsectioned.",
"empty": "This section has no fields yet."
},
"formLayout": {
"identity": "Resource identification",
"template": "Template details"
},
"creationSteps": {
"label": "New resource steps",
"progress": "Step {{step}} of {{total}}",
"template": "Choose template",
"fields": "Complete fields",
"name": "Name and notes",
"next": "Next",
"previous": "Back",
"nameHelp": "Name suggested from the resource fields. You can edit it.",
"completed": " (completed)",
"templateDescription": "Select the template that defines the resource fields and configuration.",
"fieldsDescription": "Complete the template details. Fields marked with * are required.",
"nameDescription": "Review the suggested name and add notes if you need to provide more context."
},
"resourceLifecycle": {
"activate": "Activate resource",
"deactivate": "Deactivate resource",
"delete": "Delete permanently",
"description": "Delete “{{name}}”? The resource and its history will be deleted. This action cannot be undone.",
"pending": "Deleting…",
"error": "The resource could not be deleted.",
"inUse": "The resource has current or historical associations. Deactivate it to preserve them or remove its associations before deleting it."
},
"directoryContextTitle": "Active Directory context",
"directoryContextConfigured": "System: {{system}} · Environment: {{environment}}",
"directoryContextPending": "The access context will be created automatically when saved. It is not configured yet.",
"directoryDescription": "Register a logical Windows domain independently of any server.",
"directoryExamples": "DNS: company.local. Optional NetBIOS: COMPANY.",
"directoryGuidance": "DNS is unique per company, ignoring case and a trailing dot. Use ASCII punycode for IDN. Editing or deactivating a domain preserves its context.",
"directoryScope": "This record documents the domain; it does not change Active Directory or create accounts, groups or servers.",
"smbAccessAutomatic": "Saving makes this folder available in Accounts and access to document needs and grants. No domain or publisher is required.",
"smbAccessConfigured": "Manage access in Accounts and access. Edit the address and status in this resource.",
"smbAccessHistorical": "This existing resource retains its access configuration. Saving does not convert it or add an integration.",
"smb": {
"copy": "Copy UNC address",
"copied": "Address copied",
"error": "Copy failed. Select the address and copy it manually."
},
"listState": {
"forbidden": "You do not have permission to view this company information.",
"retryCatalog": "Retry catalog",
"inventory": {
"loading": "Loading resources…",
"unavailable": "Resources could not be loaded. You can try again.",
"refreshing": "Updating resources…",
"stale": "Resources could not be updated. Showing the last available data."
},
"catalog": {
"loading": "Loading resources templates. Column configuration and creation will be available when loading finishes.",
"unavailable": "The catalog could not be loaded. Snapshot data is shown; column configuration and creation are unavailable.",
"refreshing": "Updating catalog…",
"stale": "The catalog could not be updated. Showing the last available definitions."
},
"definitions": {
"loading": "Loading catalogue…",
"refreshing": "Updating catalogue…",
"unavailable": "The catalogue could not be loaded. You can try again.",
"stale": "The catalogue could not be updated. Showing the last available definitions.",
"forbidden": "You do not have permission to view this catalogue."
}
},
"applicationSelection": {
"title": "Select software",
"search": "Search by name or provider",
"selection": "Select application",
"product": "Product",
"originProvider": "Origin and provider",
"global": "Global",
"company": "Company",
"empty": "No matches. Change your search or return to the start.",
"loading": "Searching software…",
"confirm": "Select",
"retry": "Try again",
"next": "Next",
"previous": "Previous",
"restart": "Return to start",
"error": "Candidates could not be loaded. Try your search again.",
"capabilitiesError": "The global catalog could not be checked. You can select company software.",
"resolveError": "The selected product could not be resolved. Keep the form and try again.",
"resolving": "Resolving global products…",
"stale": "Showing the last available names. Global products could not be refreshed.",
"applicationTitle": "Select application"
},
"coincidences": {
"title": "Possible matches",
"action": "Find matches in the global catalog",
"notice": "These are review suggestions. Product identity is unconfirmed; this query changes no records or references.",
"search": "Filter matches by name or provider",
"loading": "Checking matches…",
"error": "Matches could not be checked. Retry; available results may be stale.",
"sourceProvider": "Provider",
"partial": "The catalog is reviewed in bounded batches. Continue to review more products; this page is not a total.",
"emptyPage": "No matches on this page. Change the filter or continue if more products remain.",
"empty": "No possible matches were found in the global catalog with these criteria. You can change the filter.",
"open": "Open global details",
"classification": {
"name-provider": "Name and provider match; review before deciding.",
"name-only": "Name match with insufficient information."
},
"reasons": {
"same-normalized-name": "Name matches after normalizing case and spaces.",
"same-provider": "The supplied provider matches.",
"provider-missing": "Provider is missing on one or both resources; matching manufacturers are not assumed.",
"inactive-global": "Inactive global: unavailable for new associations."
}
},
"companyApplications": {
"title": "Available applications",
"origin": "Origin",
"create": "Add company application",
"description": "Includes global applications and applications belonging to this company. New applications are saved only in this company."
}
}