consolidation of some of the modules, localization fixes, product advisories work, qa work
This commit is contained in:
@@ -1,411 +1,367 @@
|
||||
{
|
||||
"_meta": { "locale": "zh-TW", "namespace": "common", "version": "1.1" },
|
||||
|
||||
"common.error.generic": "Something went wrong.",
|
||||
"common.error.not_found": "The requested resource was not found.",
|
||||
"common.error.entity_not_found": "{0} '{1}' not found.",
|
||||
"common.error.unauthorized": "You do not have permission to perform this action.",
|
||||
"common.error.forbidden": "Access denied.",
|
||||
"common.error.bad_request": "The request is invalid.",
|
||||
"common.error.conflict": "A conflict occurred. The resource may have been modified.",
|
||||
"common.error.timeout": "Request timed out after {0} seconds.",
|
||||
"common.error.server_error": "An internal server error occurred. Please try again later.",
|
||||
"common.error.service_unavailable": "The service is temporarily unavailable.",
|
||||
"common.error.too_many_requests": "Too many requests. Please wait and try again.",
|
||||
"common.error.network": "Network error. Check your connection.",
|
||||
"common.error.body_required": "Request body is required.",
|
||||
"common.error.deserialization_failed": "Failed to deserialize {0}.",
|
||||
"common.error.not_supported": "{0} is not supported.",
|
||||
"common.error.already_exists": "{0} '{1}' already exists.",
|
||||
"common.error.revoked": "{0} '{1}' has been revoked and cannot be used.",
|
||||
"common.error.state_invalid": "{0} '{1}' is not in the expected state. Current state: {2}",
|
||||
|
||||
"common.validation.required": "{0} is required.",
|
||||
"common.validation.invalid": "{0} is invalid.",
|
||||
"common.validation.too_long": "{0} exceeds the maximum length of {1} characters.",
|
||||
"common.validation.too_short": "{0} must be at least {1} characters.",
|
||||
"common.validation.out_of_range": "{0} must be between {1} and {2}.",
|
||||
"common.validation.invalid_format": "{0} has an invalid format.",
|
||||
"common.validation.duplicate": "{0} already exists.",
|
||||
"common.validation.empty_not_allowed": "{0} must not be empty.",
|
||||
"common.validation.empty_after_trim": "{0} must not be empty after trimming.",
|
||||
"common.validation.greater_than_zero": "{0} must be greater than zero.",
|
||||
"common.validation.non_negative": "{0} must be non-negative.",
|
||||
"common.validation.at_least_one": "At least one {0} must be configured.",
|
||||
"common.validation.at_least_n": "{0} must have at least {1} entries.",
|
||||
"common.validation.null_or_empty": "{0} cannot be null or empty.",
|
||||
"common.validation.absolute_uri": "{0} must be an absolute URI.",
|
||||
"common.validation.invalid_regex": "{0} '{1}' is not a valid regular expression.",
|
||||
"common.validation.unknown_value": "{0} '{1}' is not recognized. Allowed values: {2}",
|
||||
"common.validation.max_exceeded": "{0} must be {1} characters or fewer.",
|
||||
|
||||
"common.actions.save": "Save",
|
||||
"common.actions.cancel": "Cancel",
|
||||
"common.actions.delete": "Delete",
|
||||
"common.actions.confirm": "Confirm",
|
||||
"common.actions.submit": "Submit",
|
||||
"common.actions.close": "Close",
|
||||
"common.actions.retry": "Retry",
|
||||
"common.actions.expand": "Expand",
|
||||
"common.actions.collapse": "Collapse",
|
||||
"common.actions.show_more": "Show more",
|
||||
"common.actions.show_less": "Show less",
|
||||
|
||||
"common.status.healthy": "Healthy",
|
||||
"common.status.degraded": "Degraded",
|
||||
"common.status.unavailable": "Unavailable",
|
||||
"common.status.unknown": "Unknown",
|
||||
"common.status.active": "Active",
|
||||
"common.status.inactive": "Inactive",
|
||||
"common.status.pending": "Pending",
|
||||
"common.status.running": "Running",
|
||||
"common.status.completed": "Completed",
|
||||
"common.status.failed": "Failed",
|
||||
"common.status.canceled": "Canceled",
|
||||
"common.status.blocked": "Blocked",
|
||||
|
||||
"common.severity.critical": "Critical",
|
||||
"common.severity.high": "High",
|
||||
"common.severity.medium": "Medium",
|
||||
"common.severity.low": "Low",
|
||||
"common.severity.info": "Info",
|
||||
"common.severity.none": "None",
|
||||
|
||||
"common.time.seconds_ago": "{0} seconds ago",
|
||||
"common.time.minutes_ago": "{0} minutes ago",
|
||||
"common.time.hours_ago": "{0} hours ago",
|
||||
"common.time.days_ago": "{0} days ago",
|
||||
"common.time.just_now": "Just now",
|
||||
|
||||
"common.ui.loading": "Loading...",
|
||||
"common.ui.saving": "Saving...",
|
||||
"common.ui.deleting": "Deleting...",
|
||||
"common.ui.submitting": "Submitting...",
|
||||
"common.ui.no_results": "No results found.",
|
||||
"common.ui.offline": "You are offline.",
|
||||
"common.ui.reconnecting": "Reconnecting...",
|
||||
"common.ui.back_online": "Back online.",
|
||||
|
||||
"auth.dpop.proof_lifetime_invalid": "DPoP proof lifetime must be greater than zero.",
|
||||
"auth.dpop.clock_skew_invalid": "DPoP allowed clock skew must be between 0 seconds and 5 minutes.",
|
||||
"auth.dpop.replay_window_invalid": "DPoP replay window must be greater than or equal to zero.",
|
||||
"auth.dpop.algorithm_required": "At least one allowed DPoP algorithm must be configured.",
|
||||
"auth.dpop.algorithm_empty_after_normalization": "Allowed DPoP algorithms cannot be empty after normalization.",
|
||||
"auth.dpop.options_required": "DPoP options must be provided.",
|
||||
"auth.dpop.nonce_ttl_invalid": "Nonce TTL must be greater than zero.",
|
||||
"auth.dpop.nonce_max_issuance_invalid": "Max issuance per minute must be at least 1.",
|
||||
"auth.dpop.nonce_store_required": "Dpop.Nonce.Store must be specified.",
|
||||
"auth.dpop.nonce_store_invalid": "Dpop.Nonce.Store must be either 'memory' or 'redis'.",
|
||||
"auth.dpop.nonce_redis_required": "Dpop.Nonce.RedisConnectionString must be provided when using the 'redis' store.",
|
||||
"auth.dpop.nonce_audiences_required": "Dpop.Nonce.RequiredAudiences must include at least one audience.",
|
||||
"auth.dpop.token_three_segments": "Token must contain three segments.",
|
||||
"auth.dpop.segment_out_of_range": "Segment index out of range.",
|
||||
"auth.dpop.header_decode_failed": "Unable to decode header.",
|
||||
"auth.dpop.header_missing_typ": "DPoP proof missing typ=dpop+jwt header.",
|
||||
"auth.dpop.header_missing_alg": "DPoP proof missing alg header.",
|
||||
"auth.dpop.header_unsupported_alg": "Unsupported DPoP algorithm.",
|
||||
"auth.dpop.header_missing_jwk": "DPoP proof missing jwk header.",
|
||||
"auth.dpop.header_invalid_jwk": "DPoP proof jwk header is invalid.",
|
||||
"auth.dpop.payload_decode_failed": "Unable to decode payload.",
|
||||
"auth.dpop.payload_missing_htm": "DPoP proof missing htm claim.",
|
||||
"auth.dpop.payload_htm_mismatch": "DPoP htm does not match request method.",
|
||||
"auth.dpop.payload_missing_htu": "DPoP proof missing htu claim.",
|
||||
"auth.dpop.payload_htu_mismatch": "DPoP htu does not match request URI.",
|
||||
"auth.dpop.payload_missing_iat": "DPoP proof missing iat claim.",
|
||||
"auth.dpop.payload_missing_jti": "DPoP proof missing jti claim.",
|
||||
"auth.dpop.payload_iat_invalid": "DPoP proof iat claim is not a valid number.",
|
||||
"auth.dpop.nonce_missing": "DPoP proof missing nonce claim.",
|
||||
"auth.dpop.nonce_mismatch": "DPoP nonce mismatch.",
|
||||
"auth.dpop.proof_future": "DPoP proof issued in the future.",
|
||||
"auth.dpop.proof_expired": "DPoP proof expired.",
|
||||
"auth.dpop.signature_failed": "DPoP proof signature validation failed.",
|
||||
"auth.dpop.replay_detected": "DPoP proof already used.",
|
||||
|
||||
"config.authority.schema_version_required": "Authority configuration requires a positive schemaVersion.",
|
||||
"config.authority.issuer_required": "Authority configuration requires an issuer URL.",
|
||||
"config.authority.issuer_absolute": "Authority issuer must be an absolute URI.",
|
||||
"config.authority.issuer_https": "Authority issuer must use HTTPS unless running on a loopback interface.",
|
||||
"config.authority.duplicate_tenant": "Authority configuration contains duplicate tenant identifier '{0}'.",
|
||||
"config.authority.property_greater_than_zero": "Authority configuration requires {0} to be greater than zero.",
|
||||
"config.authority.property_max": "Authority configuration requires {0} to be less than or equal to {1}.",
|
||||
"config.authority.remote_inference_required": "Authority configuration requires at least one advisory AI remote inference profile when remote inference is enabled.",
|
||||
|
||||
"config.tenant.id_required": "Each tenant requires an id (slug).",
|
||||
"config.tenant.id_format": "Tenant id '{0}' must contain only lowercase letters, digits, and hyphen.",
|
||||
"config.tenant.project_format": "Tenant '{0}' defines project '{1}' which must contain only lowercase letters, digits, and hyphen.",
|
||||
"config.tenant.role_missing_config": "Tenant '{0}' defines role '{1}' without configuration.",
|
||||
"config.tenant.role_scope_required": "Tenant '{0}' role '{1}' must specify at least one scope.",
|
||||
"config.tenant.role_unknown_scope": "Tenant '{0}' role '{1}' references unknown scope '{2}'.",
|
||||
"config.tenant.role_unsupported_attribute": "Tenant '{0}' role '{1}' defines unsupported attribute '{2}'. Allowed attributes: env, owner, business_tier.",
|
||||
"config.tenant.delegation_max_tokens": "Tenant '{0}' delegation maxActiveTokens must be greater than zero when specified.",
|
||||
"config.tenant.remote_inference_disabled": "Tenant remote inference consent cannot be granted when remote inference is disabled.",
|
||||
"config.tenant.remote_inference_consent_version_length": "Tenant remote inference consentVersion must be {0} characters or fewer.",
|
||||
"config.tenant.remote_inference_consented_by_length": "Tenant remote inference consentedBy must be {0} characters or fewer.",
|
||||
"config.tenant.remote_inference_consent_version_required": "Tenant remote inference consent requires consentVersion when consentGranted is true.",
|
||||
"config.tenant.remote_inference_consented_at_required": "Tenant remote inference consent requires consentedAt when consentGranted is true.",
|
||||
|
||||
"config.service_account.id_required": "Delegation service account seeds require an accountId.",
|
||||
"config.service_account.id_format": "Service account id '{0}' must contain lowercase letters, digits, colon, underscore, or hyphen.",
|
||||
"config.service_account.tenant_required": "Service account '{0}' requires a tenant assignment.",
|
||||
"config.service_account.tenant_unknown": "Service account '{0}' references unknown tenant '{1}'.",
|
||||
"config.service_account.scope_required": "Service account '{0}' must specify at least one allowed scope.",
|
||||
"config.service_account.unsupported_attribute": "Service account '{0}' defines unsupported attribute '{1}'. Allowed attributes: env, owner, business_tier.",
|
||||
|
||||
"config.plugin.assembly_required": "Authority plugin '{0}' must define either assemblyName or assemblyPath.",
|
||||
"config.plugin.config_file_required": "Authority plugin '{0}' must define a configFile.",
|
||||
"config.plugin.config_file_missing": "Authority plugin '{0}' specifies configFile '{1}' which does not exist.",
|
||||
"config.plugin.unknown_capability": "Authority plugin '{0}' declares unknown capability '{1}'. Allowed values: password, mfa, clientProvisioning, bootstrap.",
|
||||
"config.plugin.descriptor_null": "Authority plugin descriptor '{0}' is null.",
|
||||
|
||||
"config.delegation.duplicate_account": "Delegation configuration contains duplicate service account id '{0}'.",
|
||||
"config.delegation.quota_max_tokens": "Authority delegation configuration requires {0}.MaxActiveTokens to be greater than zero.",
|
||||
|
||||
"config.mtls.rotation_grace_negative": "Mtls.RotationGrace must be non-negative.",
|
||||
"config.mtls.audiences_required": "Mtls.EnforceForAudiences must include at least one audience when enabled.",
|
||||
"config.mtls.ca_empty": "Mtls.AllowedCertificateAuthorities entries must not be empty.",
|
||||
"config.mtls.san_types_required": "Mtls.AllowedSanTypes must include at least one entry when enabled.",
|
||||
"config.mtls.subject_patterns_empty": "Mtls.AllowedSubjectPatterns entries must not be empty.",
|
||||
"config.mtls.subject_pattern_invalid": "Mtls.AllowedSubjectPatterns entry '{0}' is not a valid regular expression.",
|
||||
|
||||
"config.signing.key_id_required": "Authority signing configuration requires signing.activeKeyId.",
|
||||
"config.signing.key_path_required": "Authority signing configuration requires signing.keyPath.",
|
||||
"config.signing.jwks_cache_range": "Authority signing configuration requires signing.jwksCacheLifetime to be between 00:00:01 and 01:00:00.",
|
||||
"config.signing.additional_key_id_required": "Additional signing keys require a keyId.",
|
||||
"config.signing.additional_key_path_required": "Signing key '{0}' requires a path.",
|
||||
|
||||
"config.bootstrap.api_key_required": "Authority bootstrap configuration requires an API key when enabled.",
|
||||
"config.bootstrap.idp_required": "Authority bootstrap configuration requires a default identity provider name when enabled.",
|
||||
|
||||
"config.rate_limit.permit_limit": "Authority rate limiting '{0}' requires permitLimit to be greater than zero.",
|
||||
"config.rate_limit.queue_limit": "Authority rate limiting '{0}' queueLimit cannot be negative.",
|
||||
"config.rate_limit.window": "Authority rate limiting '{0}' window must be greater than zero and no more than one hour.",
|
||||
|
||||
"config.storage.connection_required": "Authority storage requires a connection string.",
|
||||
"config.storage.timeout_invalid": "Authority storage command timeout must be greater than zero.",
|
||||
|
||||
"config.ack_token.payload_type_required": "notifications.ackTokens.payloadType must be specified when ack tokens are enabled.",
|
||||
"config.ack_token.default_lifetime_invalid": "notifications.ackTokens.defaultLifetime must be greater than zero.",
|
||||
"config.ack_token.max_lifetime_invalid": "notifications.ackTokens.maxLifetime must be greater than zero and greater than or equal to defaultLifetime.",
|
||||
"config.ack_token.key_id_required": "notifications.ackTokens.activeKeyId must be provided when ack tokens are enabled.",
|
||||
"config.ack_token.key_path_required": "notifications.ackTokens.keyPath must be provided when ack tokens are enabled.",
|
||||
"config.ack_token.jwks_cache_range": "notifications.ackTokens.jwksCacheLifetime must be between 00:00:01 and 01:00:00.",
|
||||
|
||||
"config.exceptions.null_template": "Authority exception routing template entries must not be null.",
|
||||
"config.exceptions.duplicate_template": "Authority exception routing template '{0}' is configured more than once.",
|
||||
"config.exceptions.template_id_required": "Authority exception routing templates require an id.",
|
||||
"config.exceptions.template_route_required": "Authority exception routing template '{0}' requires authorityRouteId.",
|
||||
|
||||
"config.sealed_mode.evidence_path_required": "AirGap.SealedMode.EvidencePath must be provided when enforcement is enabled.",
|
||||
"config.sealed_mode.max_age_range": "AirGap.SealedMode.MaxEvidenceAge must be between 00:00:01 and 7.00:00:00.",
|
||||
"config.sealed_mode.cache_lifetime_range": "AirGap.SealedMode.CacheLifetime must be greater than zero and less than or equal to AirGap.SealedMode.MaxEvidenceAge.",
|
||||
|
||||
"config.webhook.hosts_required": "notifications.webhooks.allowedHosts must include at least one host when enabled.",
|
||||
"config.escalation.scope_required": "notifications.escalation.scope must be specified.",
|
||||
|
||||
"config.anti_forgery.audience_required": "vulnerabilityExplorer.workflow.antiForgery.audience must be specified when anti-forgery tokens are enabled.",
|
||||
"config.anti_forgery.default_lifetime_invalid": "vulnerabilityExplorer.workflow.antiForgery.defaultLifetime must be greater than zero.",
|
||||
"config.anti_forgery.max_lifetime_invalid": "vulnerabilityExplorer.workflow.antiForgery.maxLifetime must be greater than zero and greater than or equal to defaultLifetime.",
|
||||
"config.anti_forgery.max_context_entries": "vulnerabilityExplorer.workflow.antiForgery.maxContextEntries must be non-negative.",
|
||||
"config.anti_forgery.max_context_value_length": "vulnerabilityExplorer.workflow.antiForgery.maxContextValueLength must be greater than zero.",
|
||||
|
||||
"config.attachment.default_lifetime_invalid": "vulnerabilityExplorer.attachments.defaultLifetime must be greater than zero when attachment tokens are enabled.",
|
||||
"config.attachment.max_lifetime_invalid": "vulnerabilityExplorer.attachments.maxLifetime must be greater than zero and greater than or equal to defaultLifetime.",
|
||||
"config.attachment.payload_type_required": "vulnerabilityExplorer.attachments.payloadType must be specified when attachment tokens are enabled.",
|
||||
"config.attachment.max_metadata_entries": "vulnerabilityExplorer.attachments.maxMetadataEntries must be non-negative.",
|
||||
"config.attachment.max_metadata_value_length": "vulnerabilityExplorer.attachments.maxMetadataValueLength must be greater than zero.",
|
||||
|
||||
"config.api_lifecycle.sunset_after_deprecation": "Legacy auth sunset date must be after the deprecation date.",
|
||||
"config.api_lifecycle.docs_url_format": "Legacy auth documentation URL must be an absolute HTTP or HTTPS URL.",
|
||||
|
||||
"crypto.provider.algorithm_not_supported": "Signing algorithm '{0}' is not supported by provider '{1}'.",
|
||||
"crypto.provider.hash_not_supported": "Hash algorithm '{0}' is not supported by provider '{1}'.",
|
||||
"crypto.provider.verify_not_supported": "Verification algorithm '{0}' is not supported by provider '{1}'.",
|
||||
"crypto.provider.key_not_registered": "Signing key '{0}' is not registered with provider '{1}'.",
|
||||
"crypto.provider.key_algorithm_mismatch": "Signing key '{0}' is registered for algorithm '{1}', not '{2}'.",
|
||||
"crypto.provider.ec_keys_only": "Provider '{0}' only accepts EC signing keys.",
|
||||
"crypto.provider.no_password_hashing": "Provider '{0}' does not expose password hashing capabilities.",
|
||||
"crypto.provider.no_content_hashing": "Provider '{0}' does not support content hashing.",
|
||||
"crypto.provider.no_ephemeral_verification": "Provider '{0}' does not support ephemeral verification.",
|
||||
"crypto.provider.not_signing_capable": "Signing algorithm '{0}' is not supported by provider '{1}'.",
|
||||
"crypto.provider.es256_only": "Only ES256 signing keys are currently supported by provider '{0}'.",
|
||||
"crypto.provider.p256_required": "ES256 signing keys must use the NIST P-256 curve.",
|
||||
"crypto.provider.curve_mismatch": "Signing key curve mismatch. Expected curve '{0}' for algorithm '{1}'.",
|
||||
|
||||
"crypto.registry.empty": "At least one crypto provider must be registered.",
|
||||
"crypto.registry.algorithm_required": "Algorithm identifier is required.",
|
||||
"crypto.registry.signing_not_supported": "Signing algorithm '{0}' is not supported by any registered provider.",
|
||||
"crypto.registry.hash_not_supported": "Hash algorithm '{0}' is not supported by any registered provider.",
|
||||
"crypto.registry.verify_not_supported": "Verification algorithm '{0}' is not supported by any registered provider.",
|
||||
"crypto.registry.active_profile_required": "Active profile is required.",
|
||||
"crypto.registry.profile_not_found": "Profile ID '{0}' is not found in the registry.",
|
||||
"crypto.registry.profile_id_required": "Profile ID cannot be null or empty.",
|
||||
|
||||
"crypto.key.algorithm_required": "Algorithm identifier is required.",
|
||||
"crypto.key.private_scalar_required": "Private key parameters must include the scalar component.",
|
||||
"crypto.key.verification_only": "This constructor is only for verification-only keys. Set verificationOnly to true.",
|
||||
"crypto.key.public_xy_required": "Public key parameters must include X and Y coordinates.",
|
||||
"crypto.key.private_material_required": "Private key material must be provided.",
|
||||
|
||||
"crypto.hash.algorithm_unsupported": "Unsupported hash algorithm '{0}'.",
|
||||
"crypto.hash.purpose_required": "Purpose cannot be null or empty.",
|
||||
"crypto.hmac.algorithm_unknown": "Unknown HMAC algorithm '{0}'.",
|
||||
"crypto.hmac.algorithm_unsupported": "Unsupported HMAC algorithm '{0}'.",
|
||||
|
||||
"crypto.ecdsa.algorithm_unsupported": "Unsupported ECDSA signing algorithm '{0}'.",
|
||||
"crypto.ecdsa.curve_unsupported": "Unsupported ECDSA curve mapping for algorithm '{0}'.",
|
||||
|
||||
"crypto.digest.required": "Digest is required.",
|
||||
"crypto.digest.prefix_required": "{0} must start with '{1}'.",
|
||||
"crypto.digest.algorithm_unsupported": "Unsupported digest algorithm in '{0}'. Only sha256 is supported.",
|
||||
"crypto.digest.hex_length": "{0} must contain {1} hexadecimal characters.",
|
||||
|
||||
"crypto.password.memory_cost_invalid": "Password hashing memory cost must be greater than zero.",
|
||||
"crypto.password.iterations_invalid": "Password hashing iteration count must be greater than zero.",
|
||||
"crypto.password.parallelism_invalid": "Password hashing parallelism must be greater than zero.",
|
||||
"crypto.password.algorithm_mismatch": "{0} only supports the {1} algorithm.",
|
||||
"crypto.password.pbkdf2_iterations": "PBKDF2 requires a positive iteration count.",
|
||||
|
||||
"crypto.gost.not_der": "Signature is not DER encoded.",
|
||||
"crypto.gost.invalid_der": "Invalid DER structure for GOST signature.",
|
||||
"crypto.gost.raw_length": "Raw GOST signature must be {0} bytes.",
|
||||
"crypto.gost.neither_format": "Signature payload is neither DER nor raw GOST format.",
|
||||
"crypto.gost.coordinate_overflow": "Coordinate exceeds expected length.",
|
||||
|
||||
"crypto.profile.unknown_purpose": "Unknown hash purpose '{0}' in profile '{1}'.",
|
||||
"crypto.compliance.at_least_one_signing": "At least one signing algorithm must be supplied.",
|
||||
"crypto.compliance.at_least_one_hash": "At least one hash algorithm must be supplied.",
|
||||
|
||||
"crypto.ed25519.private_key_size": "Ed25519 private key must be 32 or 64 bytes.",
|
||||
"crypto.ed25519.public_key_size": "Ed25519 public key must be 32 bytes.",
|
||||
"crypto.ed25519.no_hashing": "BouncyCastle Ed25519 provider does not expose hashing capabilities.",
|
||||
"crypto.ed25519.raw_key_required": "Provider '{0}' requires raw Ed25519 private key material.",
|
||||
|
||||
"crypto.sm.no_password_hashing": "SM provider does not expose password hashing.",
|
||||
"crypto.sm.raw_key_required": "SM2 provider requires raw private key bytes (PKCS#8 DER).",
|
||||
"crypto.sm.unsupported_format": "Unsupported SM2 key format. Expect PEM or PKCS#8 DER.",
|
||||
"crypto.sm.disabled": "Provider '{0}' is disabled. Set {1}=1 (or disable RequireEnvironmentGate) to enable software SM2/SM3.",
|
||||
|
||||
"crypto.di.registry_empty": "Crypto provider registry cannot be empty. Configure at least one provider for RU deployments.",
|
||||
"crypto.di.ru_openssl_required": "Linux RU baseline requires provider 'ru.openssl.gost' (set STELLAOPS_CRYPTO_ENABLE_RU_OPENSSL=0 to override explicitly).",
|
||||
"crypto.di.ru_provider_required": "RU Linux baseline is misconfigured: both ru.openssl.gost and ru.pkcs11 are disabled via environment. Enable at least one provider.",
|
||||
"crypto.di.no_plugins_loaded": "No crypto providers were loaded. Check plugin configuration and manifest.",
|
||||
|
||||
"crypto.kms.rotation_via_policy": "{0} rotation must be orchestrated via {1} policies or schedules.",
|
||||
"crypto.kms.revocation_via_policy": "{0} revocation must be managed through {1} APIs or console.",
|
||||
"crypto.kms.public_key_missing_x": "Public key missing X coordinate.",
|
||||
"crypto.kms.public_key_missing_y": "Public key missing Y coordinate.",
|
||||
"crypto.kms.hash_failed": "Failed to hash payload with SHA-256.",
|
||||
"crypto.kms.key_not_found": "Key '{0}' does not exist.",
|
||||
"crypto.kms.key_revoked": "Key '{0}' has been revoked and cannot be rotated.",
|
||||
"crypto.kms.key_revoked_signing": "Key '{0}' is revoked and cannot be used for signing.",
|
||||
"crypto.kms.key_version_not_found": "Key version '{0}' does not exist for key '{1}'.",
|
||||
"crypto.kms.key_no_active_version": "Key '{0}' does not have an active version.",
|
||||
"crypto.kms.key_version_inactive": "Key version '{0}' is not active. Current state: {1}",
|
||||
"crypto.kms.key_no_public_material": "Key '{0}' version '{1}' does not have public key material.",
|
||||
"crypto.kms.algorithm_unsupported": "Algorithm '{0}' is not supported by the file KMS driver.",
|
||||
"crypto.kms.curve_unsupported": "Curve '{0}' is not supported.",
|
||||
"crypto.kms.metadata_failed": "Failed to create or load key metadata.",
|
||||
"crypto.kms.algorithm_mismatch": "Algorithm mismatch. Expected '{0}', received '{1}'.",
|
||||
"crypto.kms.version_exists": "Key version '{0}' already exists for key '{1}'.",
|
||||
"crypto.kms.material_not_found": "Key material for version '{0}' was not found.",
|
||||
"crypto.kms.envelope_deserialize_failed": "Key envelope could not be deserialized.",
|
||||
"crypto.kms.payload_deserialize_failed": "Key payload could not be deserialized.",
|
||||
"crypto.kms.pem_empty": "Public key PEM cannot be empty.",
|
||||
"crypto.kms.no_primary_version": "Crypto key '{0}' does not have an active primary version.",
|
||||
"crypto.kms.es256_only": "Provider '{0}' only supports ES256 signing keys.",
|
||||
"crypto.kms.version_metadata_required": "KMS signing keys must include metadata entry 'kms.version'.",
|
||||
"crypto.kms.missing_public_key": "KMS signing key is missing public key material.",
|
||||
|
||||
"crypto.fido2.curve_unsupported": "Unsupported FIDO2 curve OID '{0}'.",
|
||||
"crypto.fido2.rotation_required": "FIDO2 credential rotation requires new enrolment.",
|
||||
"crypto.fido2.revocation_relying_party": "FIDO2 credential revocation must be managed in the relying party.",
|
||||
"crypto.fido2.missing_x": "FIDO2 public key missing X coordinate.",
|
||||
"crypto.fido2.missing_y": "FIDO2 public key missing Y coordinate.",
|
||||
"crypto.fido2.authenticator_required": "IFido2Authenticator must be registered to use FIDO2 KMS.",
|
||||
|
||||
"crypto.pkcs11.rotation_hsm": "PKCS#11 rotation requires HSM administrative tooling.",
|
||||
"crypto.pkcs11.revocation_hsm": "PKCS#11 revocation must be handled by HSM policies.",
|
||||
"crypto.pkcs11.slot_not_found": "Could not resolve PKCS#11 slot.",
|
||||
"crypto.pkcs11.private_key_not_found": "PKCS#11 private key not found.",
|
||||
"crypto.pkcs11.public_key_not_found": "PKCS#11 public key not found.",
|
||||
"crypto.pkcs11.missing_ec_point": "Public key missing EC point.",
|
||||
"crypto.pkcs11.missing_ec_params": "Public key missing EC parameters.",
|
||||
"crypto.pkcs11.unsupported_point_format": "Unsupported EC point format.",
|
||||
"crypto.pkcs11.curve_oid_unsupported": "Unsupported EC curve OID '{0}'.",
|
||||
"crypto.pkcs11.curve_unsupported": "Unsupported EC curve '{0}'.",
|
||||
|
||||
"common.provcache.sbom_hash_required": "SBOM hash cannot be null or empty.",
|
||||
"common.provcache.fetch_url_absolute": "Lazy fetch base URL must be absolute.",
|
||||
"common.provcache.fetch_url_no_userinfo": "Lazy fetch base URL must not include user info.",
|
||||
"common.provcache.fetch_url_host_required": "Lazy fetch base URL must include a host.",
|
||||
"common.provcache.fetch_url_scheme_invalid": "Lazy fetch base URL scheme '{0}' is not allowed.",
|
||||
"common.provcache.fetch_url_host_invalid": "Lazy fetch base URL host '{0}' is not allowlisted.",
|
||||
"common.provcache.no_chunks_provided": "No chunks provided.",
|
||||
"common.provcache.bundle_deserialize_failed": "Failed to deserialize bundle.",
|
||||
"common.provcache.signer_not_configured": "Signer is not configured.",
|
||||
"common.provcache.signing_requested_no_signer": "Signing requested but no signer is configured.",
|
||||
"common.provcache.cache_entry_not_found": "Cache entry not found for VeriKey: {0}",
|
||||
"common.provcache.chunk_manifest_not_found": "Chunk manifest not found for proof root: {0}",
|
||||
"common.provcache.http_timeout_invalid": "Lazy fetch HTTP timeout must be a positive, non-infinite duration.",
|
||||
"common.provcache.http_base_address_required": "HttpChunkFetcher requires a BaseAddress on the HTTP client.",
|
||||
"common.provcache.merkle_root_mismatch": "Merkle root mismatch. Expected: {0}, Computed: {1}",
|
||||
"common.provcache.chunk_verification_failed": "Chunk {0} verification failed. Expected hash: {1}",
|
||||
"common.provcache.artifact_reference_required": "Artifact reference is required.",
|
||||
"common.provcache.artifact_digest_required": "Artifact digest is required.",
|
||||
"common.provcache.decision_digest_required": "DecisionDigest is required.",
|
||||
"common.provcache.decision_digest_verikey_required": "DecisionDigest.VeriKey is required.",
|
||||
"common.provcache.digest_empty": "Digest cannot be empty.",
|
||||
"common.provcache.time_window_required": "Time window cannot be null or empty.",
|
||||
"common.provcache.vex_hash_required": "VEX hash set hash cannot be null or empty.",
|
||||
"common.provcache.policy_hash_required": "Policy hash cannot be null or empty.",
|
||||
"common.provcache.source_hash_required": "Source hash cannot be null or empty.",
|
||||
"common.provcache.signer_set_hash_required": "Signer set hash cannot be null or empty.",
|
||||
|
||||
"common.evidence.toolchain_required": "ToolChain must be set before building index.",
|
||||
"common.evidence.deserialization_failed": "Failed to deserialize evidence index.",
|
||||
"common.evidence.verdict_deserialization_failed": "Failed to deserialize verdict.",
|
||||
"common.evidence.inputs_json_required": "JSON cannot be null or empty.",
|
||||
"common.evidence.inputs_deserialization_failed": "Failed to deserialize pinned scoring inputs.",
|
||||
"common.evidence.bundle_alert_id_required": "AlertId is required",
|
||||
"common.evidence.bundle_artifact_id_required": "ArtifactId is required",
|
||||
"common.evidence.pdf_export_requires_config": "PDF export requires additional configuration",
|
||||
"common.evidence.invalid_uri_format": "Invalid evidence URI format: {0}. Expected stella://type/path",
|
||||
"common.evidence.invalid_uri_missing_path": "Invalid evidence URI format: {0}. Missing path.",
|
||||
"common.evidence.null_resolver_cannot_resolve": "NullTypeResolver cannot resolve evidence type: {0}",
|
||||
"common.evidence.schema_resource_not_found": "Schema resource not found: {0}",
|
||||
"common.evidence.schema_resource_not_available": "Schema resource not available: {0}",
|
||||
"common.evidence.provenance_deserialize_failed": "Failed to deserialize provenance for evidence {0}",
|
||||
"common.evidence.bundle_deserialize_failed": "Failed to deserialize verdict bundle",
|
||||
"common.evidence.delta_verdict_deserialize_failed": "Failed to deserialize delta verdict",
|
||||
|
||||
"common.canonicalization.value_empty_after_trim": "Value must not be empty after trimming.",
|
||||
"common.canonicalization.deserialize_failed": "Failed to deserialize {0}",
|
||||
"common.canonicalization.datetime_value_null": "DateTimeOffset value is null.",
|
||||
"common.canonicalization.dict_key_null": "Dictionary key cannot be null.",
|
||||
|
||||
"common.audit.replay_token_value_empty": "Token value cannot be empty.",
|
||||
"common.audit.replay_token_empty": "Token cannot be empty.",
|
||||
"common.audit.replay_token_format_invalid": "Invalid replay token format: {0}",
|
||||
"common.audit.replay_token_version_invalid": "Invalid replay token version: {0}",
|
||||
"common.audit.replay_token_expiration_invalid": "Invalid expiration timestamp in replay token: {0}",
|
||||
"common.audit.replay_token_duplicate_context_key": "AdditionalContext contains duplicate key after normalization: '{0}'.",
|
||||
|
||||
"common.artifact.uri_format_invalid": "Invalid URI format: {0}",
|
||||
"common.artifact.uri_scheme_not_supported": "URI scheme not supported: {0}",
|
||||
"common.artifact.file_not_accessible": "File not accessible: {0}",
|
||||
"common.artifact.file_too_large": "File too large: {0} bytes exceeds 100MB limit",
|
||||
"common.artifact.uri_not_accessible": "URI not accessible: {0} returned {1}",
|
||||
"common.artifact.content_too_large": "Content too large: {0} bytes exceeds 100MB limit",
|
||||
"common.artifact.fetch_failed": "Failed to fetch from {0}: {1}",
|
||||
|
||||
"common.delta_verdict.artifact_ref_required": "Artifact reference is required.",
|
||||
"common.delta_verdict.unsupported_signing_algorithm": "Unsupported signing algorithm: {0}",
|
||||
"common.delta_verdict.hmac_secret_required": "HMAC signing requires a base64 secret.",
|
||||
|
||||
"common.eventing.no_entry_assembly": "No entry assembly found",
|
||||
|
||||
"auth.persistence.deserialize_inputs_failed": "Failed to deserialize inputs",
|
||||
"auth.persistence.deserialize_result_failed": "Failed to deserialize result",
|
||||
"auth.persistence.revocation_sequence_mismatch": "Revocation export sequence mismatch. Expected {0}, current {1}.",
|
||||
"auth.persistence.revocation_update_rejected": "Revocation export state update rejected. Expected sequence {0}."
|
||||
"_meta": {
|
||||
"locale": "zh-TW",
|
||||
"namespace": "common",
|
||||
"version": "1.1"
|
||||
},
|
||||
"common.error.generic": "出了點問題。",
|
||||
"common.error.not_found": "未找到請求的資源。",
|
||||
"common.error.entity_not_found": "{0} '{1}' 找不到。",
|
||||
"common.error.unauthorized": "您沒有執行此操作的權限。",
|
||||
"common.error.forbidden": "拒絕訪問。",
|
||||
"common.error.bad_request": "請求無效。",
|
||||
"common.error.conflict": "發生了衝突。資源可能已被修改。",
|
||||
"common.error.timeout": "{0} 秒後請求逾時。",
|
||||
"common.error.server_error": "發生內部伺服器錯誤。請稍後重試。",
|
||||
"common.error.service_unavailable": "該服務暫時無法使用。",
|
||||
"common.error.too_many_requests": "請求太多。請等待並重試。",
|
||||
"common.error.network": "網路錯誤。檢查您的連線。",
|
||||
"common.error.body_required": "請求正文是必需的。",
|
||||
"common.error.deserialization_failed": "無法反序列化 {0}。",
|
||||
"common.error.not_supported": "不支援 {0}。",
|
||||
"common.error.already_exists": "{0} '{1}' 已存在。",
|
||||
"common.error.revoked": "{0} '{1}' 已撤銷,無法使用。",
|
||||
"common.error.state_invalid": "{0} '{1}' 未處於預期狀態。目前狀態:{2}",
|
||||
"common.validation.required": "{0} 為必填項。",
|
||||
"common.validation.invalid": "{0} 無效。",
|
||||
"common.validation.too_long": "{0} 超出了 {1} 字元的最大長度。",
|
||||
"common.validation.too_short": "{0} 必須至少為 {1} 個字元。",
|
||||
"common.validation.out_of_range": "{0} 必須介於 {1} 和 {2} 之間。",
|
||||
"common.validation.invalid_format": "{0} 的格式無效。",
|
||||
"common.validation.duplicate": "{0} 已存在。",
|
||||
"common.validation.empty_not_allowed": "{0} 不得為空。",
|
||||
"common.validation.empty_after_trim": "修剪後{0}不能為空。",
|
||||
"common.validation.greater_than_zero": "{0} 必須大於零。",
|
||||
"common.validation.non_negative": "{0} 必須為非負數。",
|
||||
"common.validation.at_least_one": "至少必須配置一個{0}。",
|
||||
"common.validation.at_least_n": "{0} 必須至少有 {1} 條目。",
|
||||
"common.validation.null_or_empty": "{0} 不能為 null 或為空。",
|
||||
"common.validation.absolute_uri": "{0} 必須是絕對 URI。",
|
||||
"common.validation.invalid_regex": "{0} '{1}' 不是有效的正規表示式。",
|
||||
"common.validation.unknown_value": "{0} '{1}' 無法辨識。允許值:{2}",
|
||||
"common.validation.max_exceeded": "{0} 必須為 {1} 個字元或更少。",
|
||||
"common.actions.save": "儲存",
|
||||
"common.actions.cancel": "取消",
|
||||
"common.actions.delete": "刪除",
|
||||
"common.actions.confirm": "確認",
|
||||
"common.actions.submit": "提交",
|
||||
"common.actions.close": "關閉",
|
||||
"common.actions.retry": "重試",
|
||||
"common.actions.expand": "展開",
|
||||
"common.actions.collapse": "收合",
|
||||
"common.actions.show_more": "顯示更多",
|
||||
"common.actions.show_less": "顯示較少",
|
||||
"common.status.healthy": "健康",
|
||||
"common.status.degraded": "降級",
|
||||
"common.status.unavailable": "不可用",
|
||||
"common.status.unknown": "未知",
|
||||
"common.status.active": "啟用",
|
||||
"common.status.inactive": "停用",
|
||||
"common.status.pending": "待處理",
|
||||
"common.status.running": "執行中",
|
||||
"common.status.completed": "已完成",
|
||||
"common.status.failed": "失敗",
|
||||
"common.status.canceled": "已取消",
|
||||
"common.status.blocked": "已封鎖",
|
||||
"common.severity.critical": "嚴重",
|
||||
"common.severity.high": "高",
|
||||
"common.severity.medium": "中",
|
||||
"common.severity.low": "低",
|
||||
"common.severity.info": "資訊",
|
||||
"common.severity.none": "無",
|
||||
"common.time.seconds_ago": "{0} 秒前",
|
||||
"common.time.minutes_ago": "{0} 分鐘前",
|
||||
"common.time.hours_ago": "{0} 小時前",
|
||||
"common.time.days_ago": "{0} 天前",
|
||||
"common.time.just_now": "現在",
|
||||
"common.ui.loading": "載入中...",
|
||||
"common.ui.saving": "儲存中...",
|
||||
"common.ui.deleting": "正在刪除...",
|
||||
"common.ui.submitting": "正在提交...",
|
||||
"common.ui.no_results": "沒有找到結果。",
|
||||
"common.ui.offline": "您已離線。",
|
||||
"common.ui.reconnecting": "正在重新連線...",
|
||||
"common.ui.back_online": "已重新連線。",
|
||||
"auth.dpop.proof_lifetime_invalid": "DPoP 證明壽命必須大於零。",
|
||||
"auth.dpop.clock_skew_invalid": "DPoP 允許的時鐘偏差必須在 0 秒到 5 分鐘之間。",
|
||||
"auth.dpop.replay_window_invalid": "DPoP 重播視窗必須大於或等於零。",
|
||||
"auth.dpop.algorithm_required": "必須至少配置一種允許的 DPoP 演算法。",
|
||||
"auth.dpop.algorithm_empty_after_normalization": "允許的 DPoP 演算法在歸一化後不能為空。",
|
||||
"auth.dpop.options_required": "必須提供 DPoP 選項。",
|
||||
"auth.dpop.nonce_ttl_invalid": "Nonce TTL 必須大於零。",
|
||||
"auth.dpop.nonce_max_issuance_invalid": "每分鐘最大發行量必須至少為 1。",
|
||||
"auth.dpop.nonce_store_required": "必須指定 Dpop.Nonce.Store。",
|
||||
"auth.dpop.nonce_store_invalid": "Dpop.Nonce.Store 必須是 'memory' 或 'redis'。",
|
||||
"auth.dpop.nonce_redis_required": "使用 'redis' 儲存時必須提供 Dpop.Nonce.RedisConnectionString。",
|
||||
"auth.dpop.nonce_audiences_required": "Dpop.Nonce.RequiredAudiences 必須包含至少一名觀眾。",
|
||||
"auth.dpop.token_three_segments": "令牌必須包含三個段。",
|
||||
"auth.dpop.segment_out_of_range": "段索引超出範圍。",
|
||||
"auth.dpop.header_decode_failed": "無法解碼標頭。",
|
||||
"auth.dpop.header_missing_typ": "DPoP 證明缺少typ=dpop+jwt 標頭。",
|
||||
"auth.dpop.header_missing_alg": "DPoP 證明缺少 alg 標頭。",
|
||||
"auth.dpop.header_unsupported_alg": "不支援的 DPoP 演算法。",
|
||||
"auth.dpop.header_missing_jwk": "DPoP 證明缺少 jwk 標頭。",
|
||||
"auth.dpop.header_invalid_jwk": "DPoP 證明 jwk 標頭無效。",
|
||||
"auth.dpop.payload_decode_failed": "無法解碼有效負載。",
|
||||
"auth.dpop.payload_missing_htm": "DPoP 證明缺少 htm 聲明。",
|
||||
"auth.dpop.payload_htm_mismatch": "DPoP htm 與請求方法不符。",
|
||||
"auth.dpop.payload_missing_htu": "DPoP 證明缺少 htu 聲明。",
|
||||
"auth.dpop.payload_htu_mismatch": "DPoP htu 與請求 URI 不符。",
|
||||
"auth.dpop.payload_missing_iat": "DPoP 證明缺少 IAT 聲明。",
|
||||
"auth.dpop.payload_missing_jti": "DPoP 證據缺少 jti 聲明。",
|
||||
"auth.dpop.payload_iat_invalid": "DPoP 證明 iat 聲明不是有效數字。",
|
||||
"auth.dpop.nonce_missing": "DPoP 證明缺少隨機數字聲明。",
|
||||
"auth.dpop.nonce_mismatch": "DPoP 隨機數不符。",
|
||||
"auth.dpop.proof_future": "未來發布的 DPoP 證明。",
|
||||
"auth.dpop.proof_expired": "DPoP 證明已過期。",
|
||||
"auth.dpop.signature_failed": "DPoP 證明簽章驗證失敗。",
|
||||
"auth.dpop.replay_detected": "DPoP 證明已使用。",
|
||||
"config.authority.schema_version_required": "權限配置需要正的 schemaVersion。",
|
||||
"config.authority.issuer_required": "權限配置需要頒發者 URL。",
|
||||
"config.authority.issuer_absolute": "權限頒發者必須是絕對 URI。",
|
||||
"config.authority.issuer_https": "除非在環回介面上執行,否則授權頒發者必須使用 HTTPS。",
|
||||
"config.authority.duplicate_tenant": "權限設定包含重複的租戶識別碼「{0}」。",
|
||||
"config.authority.property_greater_than_zero": "權限配置要求 {0} 大於零。",
|
||||
"config.authority.property_max": "權限配置要求{0}小於等於{1}。",
|
||||
"config.authority.remote_inference_required": "啟用遠端推理時,權限配置需要至少一個諮詢性 AI 遠端推理設定檔。",
|
||||
"config.tenant.id_required": "每個租戶都需要一個 ID(slug)。",
|
||||
"config.tenant.id_format": "租戶 ID「{0}」只能包含小寫字母、數字與連字號。",
|
||||
"config.tenant.project_format": "租戶「{0}」定義的專案「{1}」只能包含小寫字母、數字與連字號。",
|
||||
"config.tenant.role_missing_config": "租戶「{0}」定義了角色「{1}」,但缺少設定。",
|
||||
"config.tenant.role_scope_required": "租戶「{0}」的角色「{1}」至少必須指定一個範圍。",
|
||||
"config.tenant.role_unknown_scope": "租戶「{0}」的角色「{1}」引用未知範圍「{2}」。",
|
||||
"config.tenant.role_unsupported_attribute": "租戶「{0}」的角色「{1}」定義了不支援的屬性「{2}」。允許的屬性:env、owner、business_tier。",
|
||||
"config.tenant.delegation_max_tokens": "租戶「{0}」的 delegation.maxActiveTokens 在指定時必須大於 0。",
|
||||
"config.tenant.remote_inference_disabled": "當遠端推理停用時,無法授予租戶遠端推理同意。",
|
||||
"config.tenant.remote_inference_consent_version_length": "租戶遠端推理的 consentVersion 不得超過 {0} 個字元。",
|
||||
"config.tenant.remote_inference_consented_by_length": "租戶遠端推理的 consentedBy 不得超過 {0} 個字元。",
|
||||
"config.tenant.remote_inference_consent_version_required": "當 consentGranted=true 時,租戶遠端推理同意需要 consentVersion。",
|
||||
"config.tenant.remote_inference_consented_at_required": "當 consentGranted=true 時,租戶遠端推理同意需要 consentedAt。",
|
||||
"config.service_account.id_required": "委派服務帳戶種子需要 accountId。",
|
||||
"config.service_account.id_format": "服務帳號 ID '{0}' 必須包含小寫字母、數字、冒號、底線或連字號。",
|
||||
"config.service_account.tenant_required": "服務帳戶「{0}」需要指派租戶。",
|
||||
"config.service_account.tenant_unknown": "服務帳戶「{0}」引用了未知租戶「{1}」。",
|
||||
"config.service_account.scope_required": "服務帳戶 '{0}' 必須至少指定一個允許的範圍。",
|
||||
"config.service_account.unsupported_attribute": "服務帳戶 '{0}' 定義了不支援的屬性 '{1}'。允許的屬性:env、owner、business_tier。",
|
||||
"config.plugin.assembly_required": "權限插件 '{0}' 必須定義 assemblyName 或 assemblyPath。",
|
||||
"config.plugin.config_file_required": "權限插件'{0}'必須定義一個configFile。",
|
||||
"config.plugin.config_file_missing": "權限插件 '{0}' 指定的 configFile '{1}' 不存在。",
|
||||
"config.plugin.unknown_capability": "權限插件 '{0}' 宣告未知能力 '{1}'。允許的值:密碼、mfa、clientProvisioning、bootstrap。",
|
||||
"config.plugin.descriptor_null": "權限插件描述符 '{0}' 為空。",
|
||||
"config.delegation.duplicate_account": "委派配置包含重複的服務帳號 ID '{0}'。",
|
||||
"config.delegation.quota_max_tokens": "權限委託配置要求 {0}.MaxActiveTokens 大於零。",
|
||||
"config.mtls.rotation_grace_negative": "Mtls.RotationGrace 必須為非負數。",
|
||||
"config.mtls.audiences_required": "啟用時,Mtls.EnforceForAudiences 必須至少包含一名受眾。",
|
||||
"config.mtls.ca_empty": "Mtls.AllowedCertificateAuthorities 條目不得為空。",
|
||||
"config.mtls.san_types_required": "啟用時,Mtls.AllowedSanTypes 必須至少包含一項。",
|
||||
"config.mtls.subject_patterns_empty": "Mtls.AllowedSubjectPatterns 條目不得為空。",
|
||||
"config.mtls.subject_pattern_invalid": "Mtls.AllowedSubjectPatterns 條目 '{0}' 不是有效的正規表示式。",
|
||||
"config.signing.key_id_required": "權限簽章配置需要 signing.activeKeyId。",
|
||||
"config.signing.key_path_required": "權限簽章配置需要 signing.keyPath。",
|
||||
"config.signing.jwks_cache_range": "權限簽章設定要求 signing.jwksCacheLifetime 介於 00:00:01 和 01:00:00 之間。",
|
||||
"config.signing.additional_key_id_required": "附加簽章金鑰需要 keyId。",
|
||||
"config.signing.additional_key_path_required": "簽名金鑰 '{0}' 需要路徑。",
|
||||
"config.bootstrap.api_key_required": "啟用時,權限引導配置需要 API 金鑰。",
|
||||
"config.bootstrap.idp_required": "啟用時,權限引導配置需要預設身份提供者名稱。",
|
||||
"config.rate_limit.permit_limit": "權限速率限制'{0}'要求permitLimit大於零。",
|
||||
"config.rate_limit.queue_limit": "權限速率限制 '{0}' queueLimit 不能為負數。",
|
||||
"config.rate_limit.window": "權限速率限制'{0}'視窗必須大於零且不超過1小時。",
|
||||
"config.storage.connection_required": "權限儲存需要連接字串。",
|
||||
"config.storage.timeout_invalid": "權限存儲命令超時必須大於零。",
|
||||
"config.ack_token.payload_type_required": "啟用 ack 令牌時必須指定 notifications.ackTokens.payloadType。",
|
||||
"config.ack_token.default_lifetime_invalid": "notifications.ackTokens.defaultLifetime 必須大於零。",
|
||||
"config.ack_token.max_lifetime_invalid": "notifications.ackTokens.maxLifetime 必須大於零且大於或等於defaultLifetime。",
|
||||
"config.ack_token.key_id_required": "啟用 ack 令牌時,必須提供 notifications.ackTokens.activeKeyId。",
|
||||
"config.ack_token.key_path_required": "啟用 ack 令牌時,必須提供 notifications.ackTokens.keyPath。",
|
||||
"config.ack_token.jwks_cache_range": "notifications.ackTokens.jwksCacheLifetime 必須介於 00:00:01 和 01:00:00 之間。",
|
||||
"config.exceptions.null_template": "權限異常路由範本條目不能為空。",
|
||||
"config.exceptions.duplicate_template": "權限異常路由模板'{0}'被配置多次。",
|
||||
"config.exceptions.template_id_required": "權限異常路由範本需要一個 ID。",
|
||||
"config.exceptions.template_route_required": "權限異常路由模板'{0}'需要authorityRouteId。",
|
||||
"config.sealed_mode.evidence_path_required": "啟用強制時必須提供 AirGap.SealedMode.EvidencePath。",
|
||||
"config.sealed_mode.max_age_range": "AirGap.SealedMode.MaxEvidenceAge 必須介於 00:00:01 和 7.00:00:00 之間。",
|
||||
"config.sealed_mode.cache_lifetime_range": "AirGap.SealedMode.CacheLifetime 必須大於零且小於或等於 AirGap.SealedMode.MaxEvidenceAge。",
|
||||
"config.webhook.hosts_required": "啟用時,notifications.webhooks.allowedHosts 必須至少包含一台主機。",
|
||||
"config.escalation.scope_required": "必須指定 notifications.escalation.scope。",
|
||||
"config.anti_forgery.audience_required": "啟用防偽令牌時必須指定 vulnerabilityExplorer.workflow.antiForgery.audience。",
|
||||
"config.anti_forgery.default_lifetime_invalid": "vulnerabilityExplorer.workflow.antiForgery.defaultLifetime 必須大於零。",
|
||||
"config.anti_forgery.max_lifetime_invalid": "vulnerabilityExplorer.workflow.antiForgery.maxLifetime 必須大於零且大於或等於defaultLifetime。",
|
||||
"config.anti_forgery.max_context_entries": "vulnerabilityExplorer.workflow.antiForgery.maxContextEntries 必須為非負數。",
|
||||
"config.anti_forgery.max_context_value_length": "vulnerabilityExplorer.workflow.antiForgery.maxContextValueLength 必須大於零。",
|
||||
"config.attachment.default_lifetime_invalid": "啟用附件令牌時,vulnerabilityExplorer.attachments.defaultLifetime 必須大於零。",
|
||||
"config.attachment.max_lifetime_invalid": "vulnerabilityExplorer.attachments.maxLifetime 必須大於零且大於或等於defaultLifetime。",
|
||||
"config.attachment.payload_type_required": "啟用附件令牌時必須指定 vulnerabilityExplorer.attachments.payloadType。",
|
||||
"config.attachment.max_metadata_entries": "vulnerabilityExplorer.attachments.maxMetadataEntries 必須為非負數。",
|
||||
"config.attachment.max_metadata_value_length": "vulnerabilityExplorer.attachments.maxMetadataValueLength 必須大於零。",
|
||||
"config.api_lifecycle.sunset_after_deprecation": "舊版身份驗證日落日期必須晚於棄用日期。",
|
||||
"config.api_lifecycle.docs_url_format": "舊版驗證文件 URL 必須是絕對 HTTP 或 HTTPS URL。",
|
||||
"crypto.provider.algorithm_not_supported": "提供者 '{1}' 不支援簽名演算法 '{0}'。",
|
||||
"crypto.provider.hash_not_supported": "提供者 '{1}' 不支援哈希演算法 '{0}'。",
|
||||
"crypto.provider.verify_not_supported": "供應商 '{1}' 不支援驗證演算法 '{0}'。",
|
||||
"crypto.provider.key_not_registered": "簽名金鑰 '{0}' 未向提供者 '{1}' 註冊。",
|
||||
"crypto.provider.key_algorithm_mismatch": "簽名金鑰 '{0}' 是為演算法 '{1}' 而不是 '{2}' 註冊的。",
|
||||
"crypto.provider.ec_keys_only": "提供者 '{0}' 僅接受 EC 簽署金鑰。",
|
||||
"crypto.provider.no_password_hashing": "提供程式 '{0}' 不公開密碼雜湊功能。",
|
||||
"crypto.provider.no_content_hashing": "提供者 '{0}' 不支援內容哈希。",
|
||||
"crypto.provider.no_ephemeral_verification": "提供者 '{0}' 不支援臨時驗證。",
|
||||
"crypto.provider.not_signing_capable": "提供者 '{1}' 不支援簽名演算法 '{0}'。",
|
||||
"crypto.provider.es256_only": "提供者 '{0}' 目前僅支援 ES256 簽署金鑰。",
|
||||
"crypto.provider.p256_required": "ES256 簽章金鑰必須使用 NIST P-256 曲線。",
|
||||
"crypto.provider.curve_mismatch": "簽名金鑰曲線不符。演算法 '{1}' 的預期曲線 '{0}'。",
|
||||
"crypto.registry.empty": "必須註冊至少一個加密貨幣提供者。",
|
||||
"crypto.registry.algorithm_required": "需要演算法標識符。",
|
||||
"crypto.registry.signing_not_supported": "任何註冊提供者均不支援簽名演算法 '{0}'。",
|
||||
"crypto.registry.hash_not_supported": "任何註冊提供者均不支援哈希演算法 '{0}'。",
|
||||
"crypto.registry.verify_not_supported": "任何註冊提供者均不支援驗證演算法 '{0}'。",
|
||||
"crypto.registry.active_profile_required": "需要有效的設定檔。",
|
||||
"crypto.registry.profile_not_found": "在註冊表中找不到設定檔 ID '{0}'。",
|
||||
"crypto.registry.profile_id_required": "設定檔 ID 不能為 null 或為空。",
|
||||
"crypto.key.algorithm_required": "需要演算法標識符。",
|
||||
"crypto.key.private_scalar_required": "私鑰參數必須包含標量部分。",
|
||||
"crypto.key.verification_only": "此建構函式僅用於僅驗證金鑰。將 verifyOnly 設為 true。",
|
||||
"crypto.key.public_xy_required": "公鑰參數必須包含 X 和 Y 座標。",
|
||||
"crypto.key.private_material_required": "必須提供私鑰資料。",
|
||||
"crypto.hash.algorithm_unsupported": "不支援的哈希演算法 '{0}'。",
|
||||
"crypto.hash.purpose_required": "目的不能為空。",
|
||||
"crypto.hmac.algorithm_unknown": "未知 HMAC 演算法 '{0}'。",
|
||||
"crypto.hmac.algorithm_unsupported": "不支援的 HMAC 演算法 '{0}'。",
|
||||
"crypto.ecdsa.algorithm_unsupported": "不支援的 ECDSA 簽名演算法 '{0}'。",
|
||||
"crypto.ecdsa.curve_unsupported": "演算法 '{0}' 不支援 ECDSA 曲線映射。",
|
||||
"crypto.digest.required": "需要摘要。",
|
||||
"crypto.digest.prefix_required": "{0} 必須以 '{1}' 開頭。",
|
||||
"crypto.digest.algorithm_unsupported": "'{0}' 中不支援摘要演算法。僅支援 sha256。",
|
||||
"crypto.digest.hex_length": "{0} 必須包含 {1} 十六進位字元。",
|
||||
"crypto.password.memory_cost_invalid": "密碼雜湊記憶體成本必須大於零。",
|
||||
"crypto.password.iterations_invalid": "密碼哈希迭代計數必須大於零。",
|
||||
"crypto.password.parallelism_invalid": "密碼哈希並行度必須大於零。",
|
||||
"crypto.password.algorithm_mismatch": "{0}僅支援{1}演算法。",
|
||||
"crypto.password.pbkdf2_iterations": "PBKDF2 需要正迭代計數。",
|
||||
"crypto.gost.not_der": "簽名不是 DER 編碼的。",
|
||||
"crypto.gost.invalid_der": "GOST 簽章的 DER 結構無效。",
|
||||
"crypto.gost.raw_length": "原始 GOST 簽章必須是 {0} 位元組。",
|
||||
"crypto.gost.neither_format": "簽章有效負載既不是 DER 也不是原始 GOST 格式。",
|
||||
"crypto.gost.coordinate_overflow": "座標超出預期長度。",
|
||||
"crypto.profile.unknown_purpose": "設定檔 '{1}' 中的未知哈希用途 '{0}'。",
|
||||
"crypto.compliance.at_least_one_signing": "必須至少提供一種簽名演算法。",
|
||||
"crypto.compliance.at_least_one_hash": "必須至少提供一種哈希演算法。",
|
||||
"crypto.ed25519.private_key_size": "Ed25519 私鑰必須是 32 或 64 位元組。",
|
||||
"crypto.ed25519.public_key_size": "Ed25519 公鑰必須是 32 位元組。",
|
||||
"crypto.ed25519.no_hashing": "BouncyCastle Ed25519 提供者不公開雜湊功能。",
|
||||
"crypto.ed25519.raw_key_required": "提供者 '{0}' 需要原始 Ed25519 私鑰資料。",
|
||||
"crypto.sm.no_password_hashing": "SM 提供者不會公開密碼雜湊。",
|
||||
"crypto.sm.raw_key_required": "SM2 提供者需要原始私鑰位元組 (PKCS#8 DER)。",
|
||||
"crypto.sm.unsupported_format": "不支援的 SM2 金鑰格式。期待 PEM 或 PKCS#8 DER。",
|
||||
"crypto.sm.disabled": "提供者 '{0}' 已停用。設定 {1}=1(或停用 RequireEnvironmentGate)以啟用軟體 SM2/SM3。",
|
||||
"crypto.di.registry_empty": "加密提供商註冊表不能為空。為 RU 部署配置至少一個提供者。",
|
||||
"crypto.di.ru_openssl_required": "Linux RU 基線需要提供程式 'ru.openssl.gost'(設定 STELLAOPS_CRYPTO_ENABLE_RU_OPENSSL=0 以明確覆蓋)。",
|
||||
"crypto.di.ru_provider_required": "RU Linux 基線設定錯誤:ru.openssl.gost 和 ru.pkcs11 皆透過環境停用。啟用至少一個提供者。",
|
||||
"crypto.di.no_plugins_loaded": "沒有載入加密貨幣提供者。檢查插件配置和清單。",
|
||||
"crypto.kms.rotation_via_policy": "{0} 輪換必須透過 {1} 策略或計畫進行編排。",
|
||||
"crypto.kms.revocation_via_policy": "{0} 撤銷必須透過 {1} API 或控制台進行管理。",
|
||||
"crypto.kms.public_key_missing_x": "公鑰缺少 X 座標。",
|
||||
"crypto.kms.public_key_missing_y": "公鑰缺少 Y 座標。",
|
||||
"crypto.kms.hash_failed": "無法使用 SHA-256 對有效負載進行雜湊處理。",
|
||||
"crypto.kms.key_not_found": "金鑰 '{0}' 不存在。",
|
||||
"crypto.kms.key_revoked": "金鑰 '{0}' 已被撤銷且無法輪換。",
|
||||
"crypto.kms.key_revoked_signing": "金鑰'{0}'已被撤銷,不能用於簽章。",
|
||||
"crypto.kms.key_version_not_found": "金鑰 '{1}' 的金鑰版本 '{0}' 不存在。",
|
||||
"crypto.kms.key_no_active_version": "金鑰 '{0}' 沒有有效版本。",
|
||||
"crypto.kms.key_version_inactive": "金鑰版本 '{0}' 未啟動。目前狀態:{1}",
|
||||
"crypto.kms.key_no_public_material": "金鑰 '{0}' 版本 '{1}' 沒有公鑰材料。",
|
||||
"crypto.kms.algorithm_unsupported": "檔案 KMS 驅動程式不支援演算法 '{0}'。",
|
||||
"crypto.kms.curve_unsupported": "不支援曲線 '{0}'。",
|
||||
"crypto.kms.metadata_failed": "無法建立或載入關鍵元資料。",
|
||||
"crypto.kms.algorithm_mismatch": "演算法不匹配。預期為 '{0}',收到為 '{1}'。",
|
||||
"crypto.kms.version_exists": "金鑰 '{1}' 的金鑰版本 '{0}' 已存在。",
|
||||
"crypto.kms.material_not_found": "未找到 '{0}' 版本的金鑰材料。",
|
||||
"crypto.kms.envelope_deserialize_failed": "密鑰信封無法反序列化。",
|
||||
"crypto.kms.payload_deserialize_failed": "無法反序列化密鑰有效負載。",
|
||||
"crypto.kms.pem_empty": "公鑰 PEM 不能為空。",
|
||||
"crypto.kms.no_primary_version": "加密金鑰 '{0}' 沒有有效的主要版本。",
|
||||
"crypto.kms.es256_only": "提供者 '{0}' 僅支援 ES256 簽署金鑰。",
|
||||
"crypto.kms.version_metadata_required": "KMS 簽章金鑰必須包含元資料條目 'kms.version'。",
|
||||
"crypto.kms.missing_public_key": "KMS 簽署金鑰缺少公鑰材料。",
|
||||
"crypto.fido2.curve_unsupported": "不支援的 FIDO2 曲線 OID '{0}'。",
|
||||
"crypto.fido2.rotation_required": "FIDO2 憑證輪替需要重新註冊。",
|
||||
"crypto.fido2.revocation_relying_party": "FIDO2 憑證吊銷必須在依賴方進行管理。",
|
||||
"crypto.fido2.missing_x": "FIDO2 公鑰缺少 X 座標。",
|
||||
"crypto.fido2.missing_y": "FIDO2 公鑰缺少 Y 座標。",
|
||||
"crypto.fido2.authenticator_required": "必須註冊 IFido2Authenticator 才能使用 FIDO2 KMS。",
|
||||
"crypto.pkcs11.rotation_hsm": "PKCS#11 輪調需要 HSM 管理工具。",
|
||||
"crypto.pkcs11.revocation_hsm": "PKCS#11 撤銷必須由 HSM 策略處理。",
|
||||
"crypto.pkcs11.slot_not_found": "無法解析 PKCS#11 插槽。",
|
||||
"crypto.pkcs11.private_key_not_found": "未找到 PKCS#11 私鑰。",
|
||||
"crypto.pkcs11.public_key_not_found": "未找到 PKCS#11 公鑰。",
|
||||
"crypto.pkcs11.missing_ec_point": "公鑰缺少 EC 點。",
|
||||
"crypto.pkcs11.missing_ec_params": "公鑰缺少 EC 參數。",
|
||||
"crypto.pkcs11.unsupported_point_format": "不受支援的 EC 點格式。",
|
||||
"crypto.pkcs11.curve_oid_unsupported": "不支援的 EC 曲線 OID '{0}'。",
|
||||
"crypto.pkcs11.curve_unsupported": "不支援的 EC 曲線 '{0}'。",
|
||||
"common.provcache.sbom_hash_required": "SBOM 雜湊值不能為 null 或為空。",
|
||||
"common.provcache.fetch_url_absolute": "延遲取得基本 URL 必須是絕對的。",
|
||||
"common.provcache.fetch_url_no_userinfo": "延遲取得基本 URL 不得包含使用者資訊。",
|
||||
"common.provcache.fetch_url_host_required": "延遲取得基本 URL 必須包含主機。",
|
||||
"common.provcache.fetch_url_scheme_invalid": "不允許延遲取得基本 URL 方案 '{0}'。",
|
||||
"common.provcache.fetch_url_host_invalid": "延遲取得基本 URL 主機 '{0}' 未列入允許名單。",
|
||||
"common.provcache.no_chunks_provided": "沒有提供塊。",
|
||||
"common.provcache.bundle_deserialize_failed": "無法反序列化捆綁包。",
|
||||
"common.provcache.signer_not_configured": "未配置簽署者。",
|
||||
"common.provcache.signing_requested_no_signer": "已請求簽名但未配置簽署者。",
|
||||
"common.provcache.cache_entry_not_found": "未找到 VeriKey 的快取條目:{0}",
|
||||
"common.provcache.chunk_manifest_not_found": "未找到證明根的區塊清單:{0}",
|
||||
"common.provcache.http_timeout_invalid": "延遲取得 HTTP 超時必須是正數、非無限持續時間。",
|
||||
"common.provcache.http_base_address_required": "HttpChunkFetcher 需要 HTTP 用戶端上的 BaseAddress。",
|
||||
"common.provcache.merkle_root_mismatch": "梅克爾根不匹配。預期:{0},計算值:{1}",
|
||||
"common.provcache.chunk_verification_failed": "區塊 {0} 驗證失敗。預期哈希值:{1}",
|
||||
"common.provcache.artifact_reference_required": "需要工件參考。",
|
||||
"common.provcache.artifact_digest_required": "需要工件摘要。",
|
||||
"common.provcache.decision_digest_required": "需要決策摘要。",
|
||||
"common.provcache.decision_digest_verikey_required": "DecisionDigest.VeriKey 為必填項。",
|
||||
"common.provcache.digest_empty": "摘要不能為空。",
|
||||
"common.provcache.time_window_required": "時間視窗不能為 null 或為空。",
|
||||
"common.provcache.vex_hash_required": "VEX 雜湊集雜湊不能為 null 或為空。",
|
||||
"common.provcache.policy_hash_required": "策略哈希不能為 null 或為空。",
|
||||
"common.provcache.source_hash_required": "來源哈希不能為 null 或為空。",
|
||||
"common.provcache.signer_set_hash_required": "簽署者集雜湊值不能為 null 或為空。",
|
||||
"common.evidence.toolchain_required": "ToolChain 必須在建立索引之前設定。",
|
||||
"common.evidence.deserialization_failed": "無法反序列化證據索引。",
|
||||
"common.evidence.verdict_deserialization_failed": "無法反序列化判決。",
|
||||
"common.evidence.inputs_json_required": "JSON 不能為 null 或為空。",
|
||||
"common.evidence.inputs_deserialization_failed": "無法反序列化固定的評分輸入。",
|
||||
"common.evidence.bundle_alert_id_required": "警報 ID 為必填項",
|
||||
"common.evidence.bundle_artifact_id_required": "ArtifactId 為必填項",
|
||||
"common.evidence.pdf_export_requires_config": "PDF 匯出需要額外配置",
|
||||
"common.evidence.invalid_uri_format": "無效證據 URI 格式:{0}。預期 stella://type/path",
|
||||
"common.evidence.invalid_uri_missing_path": "無效證據 URI 格式:{0}。缺少路徑。",
|
||||
"common.evidence.null_resolver_cannot_resolve": "NullTypeResolver 無法解析證據類型:{0}",
|
||||
"common.evidence.schema_resource_not_found": "未找到架構資源:{0}",
|
||||
"common.evidence.schema_resource_not_available": "架構資源不可用:{0}",
|
||||
"common.evidence.provenance_deserialize_failed": "無法反序列化證據來源 {0}",
|
||||
"common.evidence.bundle_deserialize_failed": "無法反序列化判決包",
|
||||
"common.evidence.delta_verdict_deserialize_failed": "無法反序列化 delta 判決",
|
||||
"common.canonicalization.value_empty_after_trim": "修剪後值不能為空。",
|
||||
"common.canonicalization.deserialize_failed": "反序列化{0}失敗",
|
||||
"common.canonicalization.datetime_value_null": "DateTimeOffset 值為空。",
|
||||
"common.canonicalization.dict_key_null": "字典鍵不能為空。",
|
||||
"common.audit.replay_token_value_empty": "令牌值不能為空。",
|
||||
"common.audit.replay_token_empty": "令牌不能為空。",
|
||||
"common.audit.replay_token_format_invalid": "無效的重播令牌格式:{0}",
|
||||
"common.audit.replay_token_version_invalid": "無效重放令牌版本:{0}",
|
||||
"common.audit.replay_token_expiration_invalid": "重播令牌中的過期時間戳無效:{0}",
|
||||
"common.audit.replay_token_duplicate_context_key": "標準化後,AdditionalContext 包含重複鍵:'{0}'。",
|
||||
"common.artifact.uri_format_invalid": "無效的 URI 格式:{0}",
|
||||
"common.artifact.uri_scheme_not_supported": "不支援 URI 方案:{0}",
|
||||
"common.artifact.file_not_accessible": "檔案無法存取:{0}",
|
||||
"common.artifact.file_too_large": "檔案太大:{0} 位元組超過 100MB 限制",
|
||||
"common.artifact.uri_not_accessible": "URI 無法存取:{0} 返回 {1}",
|
||||
"common.artifact.content_too_large": "內容太大:{0} 位元組超過 100MB 限制",
|
||||
"common.artifact.fetch_failed": "無法從 {0} 取得:{1}",
|
||||
"common.delta_verdict.artifact_ref_required": "需要工件參考。",
|
||||
"common.delta_verdict.unsupported_signing_algorithm": "不支援的簽章演算法:{0}",
|
||||
"common.delta_verdict.hmac_secret_required": "HMAC 簽章需要 Base64 金鑰。",
|
||||
"common.eventing.no_entry_assembly": "未找到入口組件",
|
||||
"auth.persistence.deserialize_inputs_failed": "無法反序列化輸入",
|
||||
"auth.persistence.deserialize_result_failed": "無法反序列化結果",
|
||||
"auth.persistence.revocation_sequence_mismatch": "撤銷導出序列不符。預期為 {0},目前為 {1}。",
|
||||
"auth.persistence.revocation_update_rejected": "撤銷導出狀態更新被拒絕。預期序列 {0}。"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user