diff --git a/Directory.Build.props b/Directory.Build.props index bbd50286dd..c11b9eab81 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,7 +9,7 @@ - 3.856.0 + 3.857.0 $(VersionSuffix)-$(BuildNumber) $(NoWarn);S3875;S4457 diff --git a/module.ignore b/module.ignore index d641cb5cf3..d1981acc1e 100644 --- a/module.ignore +++ b/module.ignore @@ -5,13 +5,11 @@ Azure.Messaging.EventGrid.dll Azure.Security.KeyVault.Secrets.dll Dapper.dll DnsClient.dll -dotnet-swagger.dll EntityFrameworkCore.Triggers.dll FluentValidation.dll Hangfire.AspNetCore.dll Hangfire.Console.dll Hangfire.Core.dll -Hangfire.Core.resources.dll Hangfire.MemoryStorage.dll Hangfire.MySql.dll Hangfire.NetCore.dll @@ -36,9 +34,6 @@ Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll Microsoft.AspNetCore.JsonPatch.dll Microsoft.AspNetCore.Metadata.dll Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll -Microsoft.AspNetCore.Server.Kestrel.Https.dll -Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll -Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll Microsoft.AspNetCore.SignalR.Client.Core.dll Microsoft.AspNetCore.SignalR.Client.dll Microsoft.AspNetCore.SignalR.Common.dll @@ -50,6 +45,7 @@ Microsoft.Azure.SignalR.Common.dll Microsoft.Azure.SignalR.dll Microsoft.Azure.SignalR.Protocols.dll Microsoft.Bcl.AsyncInterfaces.dll +Microsoft.Bcl.TimeProvider.dll Microsoft.CodeAnalysis.CSharp.dll Microsoft.CodeAnalysis.CSharp.resources.dll Microsoft.CodeAnalysis.CSharp.Workspaces.dll @@ -66,20 +62,28 @@ Microsoft.EntityFrameworkCore.Design.dll Microsoft.EntityFrameworkCore.dll Microsoft.EntityFrameworkCore.Relational.dll Microsoft.EntityFrameworkCore.SqlServer.dll -Microsoft.Extensions.Caching.Memory.dll +Microsoft.Extensions.AmbientMetadata.Application.dll +Microsoft.Extensions.Compliance.Abstractions.dll Microsoft.Extensions.Configuration.AzureAppConfiguration.dll +Microsoft.Extensions.Configuration.Binder.dll Microsoft.Extensions.DependencyInjection.Abstractions.dll -Microsoft.Extensions.DependencyInjection.dll +Microsoft.Extensions.DependencyInjection.AutoActivation.dll Microsoft.Extensions.DependencyModel.dll Microsoft.Extensions.DiagnosticAdapter.dll +Microsoft.Extensions.Diagnostics.ExceptionSummarization.dll Microsoft.Extensions.Features.dll +Microsoft.Extensions.Http.Diagnostics.dll Microsoft.Extensions.Http.Polly.dll +Microsoft.Extensions.Http.Resilience.dll Microsoft.Extensions.Identity.Core.dll Microsoft.Extensions.Identity.Stores.dll Microsoft.Extensions.Logging.Abstractions.dll Microsoft.Extensions.Logging.AzureAppServices.dll +Microsoft.Extensions.ObjectPool.dll Microsoft.Extensions.Options.dll -Microsoft.Extensions.PlatformAbstractions.dll +Microsoft.Extensions.Resilience.dll +Microsoft.Extensions.Telemetry.Abstractions.dll +Microsoft.Extensions.Telemetry.dll Microsoft.Identity.Client.dll Microsoft.Identity.Client.Extensions.Msal.dll Microsoft.IdentityModel.Abstractions.dll @@ -88,10 +92,12 @@ Microsoft.IdentityModel.Logging.dll Microsoft.IdentityModel.Protocols.dll Microsoft.IdentityModel.Protocols.OpenIdConnect.dll Microsoft.IdentityModel.Tokens.dll +Microsoft.IdentityModel.Validators.dll +Microsoft.IO.RecyclableMemoryStream.dll +Microsoft.Net.Http.Headers.dll Microsoft.NET.StringTools.dll Microsoft.OpenApi.dll Microsoft.SqlServer.Server.dll -Microsoft.VisualStudio.Web.BrowserLink.dll Microsoft.Win32.SystemEvents.dll Mono.TextTemplating.dll MySqlConnector.dll @@ -124,7 +130,9 @@ package-lock.json Pipelines.Sockets.Unofficial.dll Polly.Core.dll Polly.dll +Polly.Extensions.dll Polly.Extensions.Http.dll +Polly.RateLimiting.dll Pomelo.EntityFrameworkCore.MySql.dll RedLockNet.Abstractions.dll RedLockNet.SERedis.dll @@ -139,7 +147,6 @@ Serilog.Settings.Configuration.dll Serilog.Sinks.Console.dll Serilog.Sinks.Debug.dll Serilog.Sinks.File.dll -sni.dll StackExchange.Redis.dll Swashbuckle.AspNetCore.Annotations.dll Swashbuckle.AspNetCore.Filters.Abstractions.dll @@ -156,13 +163,11 @@ System.Composition.Hosting.dll System.Composition.Runtime.dll System.Composition.TypedParts.dll System.Configuration.ConfigurationManager.dll -System.Data.SqlClient.dll System.Drawing.Common.dll System.IdentityModel.Tokens.Jwt.dll System.IO.Abstractions.dll System.Linq.Async.dll System.Memory.Data.dll -System.Net.WebSockets.WebSocketProtocol.dll System.Runtime.Caching.dll System.Security.Cryptography.ProtectedData.dll System.Security.Cryptography.Xml.dll diff --git a/src/VirtoCommerce.Platform.Security/Extensions/ClaimsPrincipalExtensions.cs b/src/VirtoCommerce.Platform.Security/Extensions/ClaimsPrincipalExtensions.cs index dbcd511187..579c6489d4 100644 --- a/src/VirtoCommerce.Platform.Security/Extensions/ClaimsPrincipalExtensions.cs +++ b/src/VirtoCommerce.Platform.Security/Extensions/ClaimsPrincipalExtensions.cs @@ -14,7 +14,7 @@ public static bool IsExternalSignIn(this ClaimsPrincipal claimsPrincipal) public static string GetAuthenticationMethod(this ClaimsPrincipal claimsPrincipal) { - return claimsPrincipal?.GetClaim(ClaimTypes.AuthenticationMethod); + return claimsPrincipal?.FindFirstValue(ClaimTypes.AuthenticationMethod); } public static ClaimsPrincipal SetAuthenticationMethod(this ClaimsPrincipal claimsPrincipal, string value, IList destinations) diff --git a/src/VirtoCommerce.Platform.Security/VirtoCommerce.Platform.Security.csproj b/src/VirtoCommerce.Platform.Security/VirtoCommerce.Platform.Security.csproj index 1348953fe9..4a713e9cd7 100644 --- a/src/VirtoCommerce.Platform.Security/VirtoCommerce.Platform.Security.csproj +++ b/src/VirtoCommerce.Platform.Security/VirtoCommerce.Platform.Security.csproj @@ -22,6 +22,7 @@ + diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Common.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Common.json index 20c00e1650..24e307ba8c 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Common.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Common.json @@ -5,121 +5,147 @@ "activate": "Aktivieren", "assign": "Zuweisen", "cancel": "Abbrechen", - "clear": " Löschen", - "clear-all": "Alle löschen", + "clear": "Löschen", + "clear-all": "Alles löschen", "clone": "Klonen", "close": "Schließen", "confirm": "Bestätigen", "copy-link": "Link kopieren", + "copy": "Kopieren", "create": "Erstellen", "cut": "Ausschneiden", "delete": "Löschen", + "add-all": "Alle hinzufügen", + "remove-all": "Alle löschen", "download": "Herunterladen", "edit": "Bearbeiten", "export": "Exportieren", "generate": "Generieren", "import": "Importieren", + "import-sample-data": "Beispieldaten importieren", "install": "Installieren", "manage": "Verwalten", "more": "Mehr", "no": "Nein", "new-folder": "Neuer Ordner", "new-license": "Lizenz erneuern", - "ok": "Ok", + "ok": "OK", "paste": "Einfügen", - "pick-selected": "Abholung ausgewählt", + "pick-selected": "Ausgewählte auswählen", "preview": "Vorschau", - "open-browser": "In Browser öffnen", + "open-browser": "Im Browser öffnen", "redo": "Wiederholen", "refresh": "Aktualisieren", "remove": "Entfernen", "reset": "Zurücksetzen", - "restart": "Neu starten", + "restart": "Neustart", "save": "Speichern", "send": "Senden", "select-all": "Alle auswählen", + "set-to-default": "Auf Standard setzen", "start-export": "Export starten", "settings": "Einstellungen", "sign-out": "Abmelden", - "undo": "Rückgängig machen", + "undo": "Rückgängig", "uninstall": "Deinstallieren", - "unselect-all": "Markierung aufheben", + "unselect-all": "Alle abwählen", "update": "Aktualisieren", "upload": "Hochladen", "yes": "Ja", - "add-new-property": "Neue Eigenschaft", - "manage-type-properties": "Typen verwalten", + "add-new-property": "Neue Eigenschaft hinzufügen", + "manage-type-properties": "Eigenschaftstypen", "manage-profile": "Profil verwalten", "minimize": "Minimieren", "maximize": "Maximieren", - "stop-sending": "Senden", + "stop-sending": "Senden stoppen", "set-active": "Aktiv setzen", "reject-user": "Benutzer ablehnen", "change-password": "Passwort ändern", + "unlock-account": "Konto entsperren", + "lock-account": "Konto sperren", "today": "Heute", - "see-details": "Siehe Einzelheiten", - "dismiss": "Weggetreten" + "time": "Zeit", + "now": "Jetzt", + "date": "Datum", + "see-details": "Details anzeigen", + "dismiss": "Verwerfen", + "hide-empty-property-values": "Leere Werte ausblenden", + "show-empty-property-values": "Leere Werte anzeigen", + "titles": { + "refresh": "Aktualisieren", + "new-folder": "Neuer Ordner", + "upload": "Hochladen" + } }, "list": { "no-data": "Keine Daten", - "count": "Anzahl" + "count": "Anzahl", + "loading": "Wird geladen...", + "item-not-found": "Fehler: Nicht gefunden" }, "placeholders": { - "n-a": "N/A", - "no-file": "Datei wählen", - "search-keyword": "Durchsuchen..." + "n-a": "N/V", + "no-file": "Datei auswählen", + "search-keyword": "Suchbegriff eingeben...", + "select-value": "Wert auswählen", + "select-values": "Werte auswählen" }, "dialogs": { "delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählten Einträge löschen?" + "title": "Löschbestätigung", + "message": "Sind Sie sicher, dass Sie die ausgewählten Einträge löschen möchten?" } }, "properties": { "short-text": { - "title": "Kurztext", - "description": "Texte kürzer als 1024 Zeichen." + "title": "Kurzer Text", + "description": "Textwerte unter 1024 Zeichen" }, "long-text": { "title": "Langer Text", - "description": "Text ohne Längenbeschränkung." + "description": "Unbegrenzter Text ohne Größenbeschränkung" }, "integer": { "title": "Ganzzahl", - "description": "Ganzzahl." + "description": "Ganze Zahl" }, "decimal": { - "title": "Anzahl", - "description": "Zahl mit ." + "title": "Dezimalzahl", + "description": "Dezimalzahl mit einer Genauigkeit von 18 und einer Skalierung von 4" }, "date-time": { "title": "Datum und Uhrzeit", - "description": "Datum auswählen." + "description": "Datum auswählen" }, "boolean": { - "title": "boolean", - "description": "Ja oder Nein" + "title": "Boolesch", + "description": "Schaltertyp" }, "html": { "title": "HTML", - "description": "HTML-Markup." + "description": "HTML-Markup" }, "undefined": { - "title": "Nicht definiert" + "title": "Undefiniert" + }, + "image": { + "title": "Bild", + "description": "Bildtyp" } }, "genericValueInput": { "placeholders": { - "short-text": "Kurztext eingeben", + "short-text": "Kurzen Text eingeben", "secure-string": "Geheimen Text eingeben", - "url": " URL eingeben", + "email": "E-Mail eingeben", + "url": "URL eingeben", "long-text": "Langen Text eingeben", - "integer": "Ganzzahl eingeben", + "integer": "Ganze Zahl eingeben", "number": "Dezimalzahl eingeben", "date-time": "Datum auswählen", "short-text-multivalue": "Wert hinzufügen", - "integer-multivalue": "Integer hinzufügen", - "number-multivalue": "Dezimal hinzufügen", + "integer-multivalue": "Ganzzahl hinzufügen", + "number-multivalue": "Dezimalzahl hinzufügen", "short-text-dictionary": "Wert auswählen", "short-text-dictionary-multivalue": "Wert auswählen", "short-text-multilang": "Wert eingeben", @@ -128,12 +154,35 @@ "short-text-dictionary-multilang": "Wert auswählen", "short-text-dictionary-multivalue-multilang": "Wert auswählen", "long-text-dictionary-multivalue-multilang": "Wert auswählen" - }, - "short-text-input": { - "placeholder": "Wert eingeben", - "required": "Erforderlich", - "maxLength": "Dieses Feld darf nicht mehr als {{number}} Zeichen enthalten" } + }, + "short-text-input": { + "placeholder": "Wert eingeben", + "required": "Dieses Feld ist erforderlich", + "maxLength": "Dieses Feld darf nicht mehr als {{number}} Zeichen enthalten" + }, + "validators": { + "uriWithoutQuery": { + "error": "Ungültiges URI-Format. Stellen Sie sicher, dass die URI keine Abfrageparameter enthält" + } + }, + "errors": { + "generic-error": "Fehler", + "400": "Ungültige Anfrage", + "401": "Nicht autorisiert", + "403": "Verboten", + "404": "Nicht gefunden", + "405": "Methode nicht erlaubt", + "406": "Nicht akzeptabel", + "407": "Proxy-Authentifizierung erforderlich", + "408": "Zeitüberschreitung der Anfrage", + "409": "Konflikt", + "429": "Zu viele Anfragen", + "500": "Interner Serverfehler", + "501": "Nicht implementiert", + "502": "Schlechtes Gateway", + "503": "Dienst nicht verfügbar", + "504": "Gateway-Zeitüberschreitung" } } -} +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Platform.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Platform.json index 87f9928612..4dc1c7733d 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Platform.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/de.VirtoCommerce.Platform.json @@ -1,63 +1,72 @@ { "platform": { "menu": { - "home": "Start", + "home": "Startseite", "browse": "Durchsuchen", "configuration": "Konfiguration", "notifications": "Benachrichtigungen", - "more": " Mehr", + "more": "Mehr", "settings": "Einstellungen", "dynamic-properties": "Dynamische Eigenschaften", "security": "Sicherheit", "modules": "Module", "export-import": "Export & Import", "user-profile": "Benutzerprofil", - "assets": "Medien", - "toggle-favorites": "Umschalttaste+Leertaste zu Favoriten umschalten", - "help": "hilfe" + "assets": "Assets", + "toggle-favorites": "Umschalt + Leertaste zum Umschalten der Favoriten", + "help": "Hilfe" }, "navigation": { "back": "Zurück" }, "blades": { "system-info": { - "title": "Plattform Informationen" + "title": "Plattforminformationen", + "labels": { + "clr-version": "CLR-Version", + "environment-name": "Umgebungsmodus", + "is-64-bit-os": "64-Bit-Betriebssystem", + "is-64-bit-process": "64-Bit-Prozess", + "database-provider": "Datenbankanbieter" + } }, "asset-list": { - "title": "Medien", + "title": "Asset-Verwaltung", + "bread-crumb-top": "Alle Assets", "labels": { "picture": "Bild", - "name": " Name", - "size": " Größe", + "name": "Name", + "size": "Größe", "modified": "Geändert", "actions": "Aktionen", - "group": "Groep" + "group": "Gruppe", + "language": "Sprache" } }, "asset-upload": { - "title": "Dateien hochladen", + "title": "Asset-Upload", "labels": { "select-files": "Dateien auswählen", - "drag-note": "Hochzuladende Dateien hier hinziehen", - "progress": " Fortschritt", - "asset-uploaded": "Dateien hochgeladen." + "drag-note": "Dateien hierher ziehen und ablegen", + "progress": "Fortschritt", + "asset-uploaded": "Asset(s) hochgeladen" }, "placeholders": { - "image-url": "Bild von URL importieren" + "image-url": "Datei-URL hier einfügen" } }, "operation-list": { "labels": { - "login": "Einloggen", + "login": "Anmeldung", "details": "Details", "time": "Zeit" } }, "dynamicObject-list": { - "title": "Dynamische Eigenschaften", - "subtitle": "Dynamische Eigenschaften verwalten", + "title": "Dynamische Objekttypen", + "subtitle": "Objekttyp auswählen, um dynamische Eigenschaften zu verwalten", "labels": { - "no-objects": "Keine Objekte unterstützt dynamische Eigenschaften." + "no-objects": "Noch keine Objekte unterstützen dynamische Eigenschaften" } }, "dynamicProperty-detail": { @@ -65,45 +74,45 @@ "subtitle": "Eigenschaft verwalten", "subtitle-new": "Neue Eigenschaft", "labels": { - "property-name": "Name", + "property-name": "Eigenschaftsname", "required": "Erforderlich", - "multivalue": "Mehrere Werte möglich", + "multivalue": "Mehrwert", "multilingual": "Mehrsprachig", "dictionary": "Wörterbuch", "description": "Beschreibung", - "display-order": "Bestellung anzeigen", + "display-order": "Anzeigereihenfolge", "display-name": "Anzeigename", - "value-type": "Typ", - "dictionary-values": "Wörterbucheinträge", + "value-type": "Werttyp", + "dictionary-values": "Wörterbuch-Werte", "manage-dictionary": "Wörterbuch verwalten" }, "placeholders": { - "description": "Beschreibung der Eigenschaft", + "description": "Eigenschaftsbeschreibung eingeben", "display-name": "Anzeigename eingeben...", - "display-order": "Bestellung anzeigen" + "display-order": "Anzeigereihenfolge" }, "validations": { - "multivalue": "Mehrwert-Eigenschaft kann nur Kurztext-, Integer- oder Dezimal-Wert-Typ haben.", - "multilingual": "Nur Text oder HTML-Wert kann mehrsprachig sein.", - "dictionary": "Nur Wörterbücher der Werttyp ShortText werden unterstützt." + "multivalue": "Mehrwertige Eigenschaft kann nur ShortText, Integer oder Decimal als Werttyp haben", + "multilingual": "Nur Text oder HTML-Wert kann mehrsprachig sein", + "dictionary": "Nur Wörterbücher vom Werttyp ShortText werden unterstützt" } }, "dynamicProperty-list": { - "subtitle": "Verwalten Sie die dynamische Eigenschaften", + "subtitle": "Dynamische Eigenschaften verwalten", "labels": { - "no-properties": "Keine dynamische Eigenschaften." + "no-properties": "Noch keine dynamischen Eigenschaften" } }, "notifications-menu": { - "subtitle": "Arbeiten mit Benachrichtigungen System" + "subtitle": "Arbeiten mit dem Benachrichtigungssystem" }, "property-dictionary": { - "title": "Wörterbucheinträge", - "subtitle": "Wörterbucheinträge verwalten", + "title": "Wörterbuch-Werte", + "subtitle": "Wörterbuch-Werte verwalten", "labels": { "edit-value": "Wert bearbeiten", "new-value": "Neuer Wert", - "dictionary-name": "Wörterbuch Eintrag name", + "dictionary-name": "Name des Wörterbucheintrags", "localized-values": "Lokalisierte Werte", "current-values": "Aktuelle Werte", "name": "Name", @@ -111,10 +120,10 @@ }, "validations": { "dictionary-name-required": "Erforderlich", - "dictionary-name": "Doppelte Namen gefunden", + "dictionary-name": "Doppelter Name gefunden", "localized-values-required": "Erforderlich", - "localized-values": "Doppelte Namen gefunden", - "dictionary": "Nur Wörterbücher der Werttyp ShortText werden unterstützt." + "localized-values": "Doppelter Name gefunden", + "dictionary": "Nur Wörterbücher vom Werttyp ShortText werden unterstützt" }, "placeholders": { "dictionary-name": "Namen eingeben", @@ -122,35 +131,48 @@ } }, "propertyValue-list": { - "title": "Eigenschaften Werte", + "title": "Dynamische Eigenschaften", + "subtitle": "", "labels": { - "header": "Eigenschaften Werte", - "no-properties": "Diese Einheit hat keine dynamischen Eigenschaften haben. Verwalten klicken Sie auf Eigenschaften und einige Eigenschaften erstellen. Schließen und aktuelle Einheit Ansicht öffnen dynamische Eigenschaften geladen zu erhalten." + "header": "Eigenschaftswerte", + "no-properties": "Diese Entität hat noch keine dynamischen Eigenschaften. Klicken Sie auf 'Eigenschaftstypen' und erstellen Sie einige Eigenschaften. Schließen und öffnen Sie die aktuelle Entitätsansicht erneut, um dynamische Eigenschaften zu laden" + } + }, + "edit-array": { + "validations": { + "new-value-required": "Erforderlich" + }, + "labels": { + "new-value": "Neuer Wert", + "current-values": "Aktuelle Werte", + "values": "Werte" + }, + "placeholders": { + "value": "Wert eingeben" } }, "export-main": { - "title": "Daten exportieren", + "title": "Datenexport", "labels": { - "select-file": "Wählen Sie die zu importierende Datei", - "platform-entries": "Plattform Einträge", - "choose-modules": "Module wählen Sie exportieren", - "download-url": "URL herunterladen", + "platform-entries": "Plattformeinträge", + "choose-modules": "Module zum Exportieren auswählen", + "download-url": "Download-URL", "errors": "Fehler", - "start": "Starten", + "start": "Start", "end": "Ende" }, "menu": { "security": { "title": "Sicherheit", - "description": "Benutzerkonten und Rollen" + "description": "Konten und Rollen" }, "binary": { "title": "Binär", - "description": "Binäre Daten" + "description": "Binärdaten" }, "settings": { "title": "Einstellungen", - "description": "Plattform Einstellungen" + "description": "Plattformeinstellungen" }, "dynamic-props": { "title": "Dynamische Eigenschaften", @@ -159,34 +181,38 @@ } }, "import-main": { - "title": "Daten importieren", + "title": "Datenimport", "labels": { "start-import": "Import starten", - "select-file": "Wählen Sie die zu importierende Datei", - "upload-progress": "Fortschritte hochladen", - "import-data-information": "Importieren von Daten", - "author": "Thema", - "data-file-created": "Daten Datei erstellt", - "created-platform-version": "In der Plattform Version erstellt", - "platform-entries": "Plattform Einträge", - "choose-modules": "Wählen Sie Module zu importieren.", + "select-file": "Wählen Sie eine .zip-Datei zum Importieren aus. Die Datei muss vom Commerce Manager-Datenexport erstellt worden sein", + "drag-note": "Ziehen Sie eine .zip-Datei zum Importieren hierher. Die Datei muss vom Commerce Manager-Datenexport erstellt worden sein", + "upload-failed": "Upload fehlgeschlagen", + "upload-progress": "Upload-Fortschritt", + "import-progress": "Import-Fortschritt", + "import-finished": "Import abgeschlossen", + "import-data-information": "Import-Dateninformationen", + "author": "Autor", + "data-file-created": "Datendatei erstellt", + "created-platform-version": "Erstellt in Plattformversion", + "platform-entries": "Plattformeinträge", + "choose-modules": "Module zum Importieren auswählen", "no-data": "Keine Daten", "errors": "Fehler", - "start": "Starten", + "start": "Start", "end": "Ende" }, "menu": { "security": { "title": "Sicherheit", - "description": "Benutzerkonten und Rollen" + "description": "Konten und Rollen" }, "binary": { "title": "Binär", - "description": "Binäre Daten" + "description": "Binärdaten" }, "settings": { "title": "Einstellungen", - "description": "Plattform Einstellungen" + "description": "Plattformeinstellungen" }, "dynamic-props": { "title": "Dynamische Eigenschaften", @@ -195,93 +221,99 @@ } }, "exportImport-main": { - "title": "Importieren und Exportieren von Daten", + "title": "Datenexport und -import", "menu": { "export": { - "title": "Exportieren", - "description": "Die Daten werden in einer Datei gespeichert, damit sie später importiert werden kann." + "title": "Export", + "description": "Daten werden in eine Datei gespeichert, damit sie später importiert werden können" }, "import": { - "title": "Importieren", - "description": "Import von Daten einer exportierten Datei." + "title": "Import", + "description": "Daten aus einer exportierten Datei importieren" } } }, "resolve-result": { - "title": "Vorschau Ergebnis", + "title": "Vorschau des Ergebnisses", "labels": { "subject": "Betreff", - "body": "Körper" + "body": "Inhalt" } }, "module-settings-detail": { - "title": "Einstellungen des Moduls" + "title": "Moduleinstellungen" }, "module-wizard-progress-step": { - "title-install": "Modul einbauen", - "title-update": "Baugruppe aktualisieren", - "title-uninstall": "Modul deinstallieren", + "title-install": "Modulinstallation", + "title-update": "Modulaktualisierung", + "title-uninstall": "Moduldeinstallation", "labels": { - "start": "Starten", + "start": "Start", "end": "Ende", - "progress-messages": "Die Statusmeldungen", - "process-completed": "Die Installation ist abgeschlossen.", - "restart-application": "Starten Sie die Anwendung neu, jetzt oder später." + "progress-messages": "Fortschrittsmeldungen", + "process-completed": "Modulinstallationsprozess abgeschlossen", + "restart-application": "Starten Sie die Anwendung jetzt oder später neu" } }, "module-detail": { - "title": "Informationen zum Modul", + "title": "Modulinformationen", "labels": { "i-accept-the": "Ich akzeptiere die", "license-link": "Lizenz", "license": "Lizenz", - "agreement": "Vereinbarung.", - "install-from-file": "Installieren/Modul von lokalem Dateisystem aktualisieren", - "select-module-file": "Ein Modul (.zip-Datei) aus Ihrem lokalen Dateisystem hochladen.", - "upload-progress": "Hochladen Fortschritte", - "module-info": "Modul info", + "agreement": "Vereinbarung", + "install-from-file": "Modul aus Datei installieren / aktualisieren", + "select-module-file": "Laden Sie eine Moduldatei (.zip) aus einer externen Quelle außerhalb des zentralen Modulrepositories hoch", + "upload-progress": "Upload-Fortschritt", + "module-info": "Modulinfo", "title": "Titel", - "author": "Thema", + "official": "Offizielles Modul von {{$owner}}", + "owners": "Entwickelt von {{$owner}}", + "author": "Autor", "authors": "Autoren", "id": "ID", "version": "Version", - "project-information": "Informationen zum Projekt", + "project-information": "Projektinformationen", "description": "Beschreibung", - "platform-version": "Plattform Version", + "platform-version": "Plattformversion", "dependencies": "Abhängigkeiten", + "optional-dependencies": "Optionale Abhängigkeiten", "tags": "Tags", - "install-version": "Installieren Sie version", + "install-version": "Installationsversion", "errors": "Fehler" } }, "modules-main": { "title": "Module", "labels": { - "updates": "Updates", + "updates": "Aktualisierungen", "available": "Verfügbar", "installed": "Installiert", "withErrors": "Fehler", - "advanced": "Weitere Optionen" + "advanced": "Erweitert" } }, "modules-list": { - "subtitle": "Module Management", + "subtitle": "Modulverwaltung", "labels": { - "grouping": "Modul Bundles anzeigen", + "grouping": "Modulbündel anzeigen", "ungrouped": "Andere", - "no-updates": "Keine Aktualisierungen gefunden.", - "no-modules-part1": "Keine neue Module zu installieren.", - "no-installed-modules": "Keine installierten Module.", + "no-updates": "Keine Aktualisierungen gefunden", + "no-modules-part1": "Keine neuen Module zum Installieren", + "no-installed-modules": "Keine installierten Module gefunden", "icon": "Symbol", + "up-to-date": "Modul ist auf dem neuesten Stand", + "update-available": "Aktualisierung für dieses Modul verfügbar", "module": "Modul", "version": "Version", - "author": "Thema", - "installed": "Installierte Module" + "author": "Autor", + "installed": "Installierte Module", + "manual-install-warning": "Warnung! Manuell installierte Module werden nicht gestartet, da RefreshProbingFolderOnStart auf false gesetzt ist" } }, "history": { "title": "Systemereignisse", - "subtitle": "Veranstaltungen Geschichte", + "subtitle": "Ereignisverlauf", "labels": { "type": "Typ", "title": "Titel", @@ -290,58 +322,38 @@ } }, "historyDetailDefault": { - "title": "Event Detail", - "subtitle": "Event Detail", + "title": "Ereignisdetail", + "subtitle": "Ereignisdetail", "labels": { - "start": "Starten", + "start": "Start", "end": "Ende", - "errors": "Fehler" + "elapsed": "Vergangen", + "errors": "Fehler", + "stats": "{{ processedCount }} von {{ totalCount }} Datensätzen verarbeitet" } }, "menuHeader": { "labels": { - "history": "Geschichte", - "clear-recent": "Löschen Sie alle kürzlich" - } - }, - "account-api": { - "title": "API-Konto", - "title-new": "Neue API-Konto", - "labels": { - "is-active": "Ist aktiv", - "account-name": "Name der Konto", - "account-type": "Kontotyp", - "secret-key": "Geheimer Schlüssel" - }, - "placeholders": { - "account-name": "Namen eingeben", - "account-type": "Wählen Sie aus...", - "secret-key": "Geheime Schlüssel generieren", - "app-id": "Erzeugen..." - } - }, - "account-api-list": { - "labels": { - "is-active": "Ist aktiv", - "name": "Name" + "history": "Verlauf", + "clear-recent": "Alle kürzlichen löschen" } }, "account-changePassword": { "labels": { + "title": "Bitte geben Sie ein neues Passwort ein", + "login": "Anmelden", + "force-change-info": "Ihr Passwort ist abgelaufen. Sie müssen das Passwort ändern, um fortzufahren und den Manager zu nutzen", "current-password": "Aktuelles Passwort", "new-password": "Neues Passwort", - "repeat-password": "Passwort wiederholen", - "force-password-change": "Veranlassen Sie, dass dieser Benutzer bei der ersten Anmeldung sein Passwort ändert" + "repeat-password": "Neues Passwort wiederholen", + "cancel": "Abbrechen", + "save": "Ändern", + "fail": "Entschuldigung, wir konnten das Passwort für diesen Benutzer nicht zurücksetzen" }, "validations": { - "repeat-password": "Das neue Passwort stimmt nicht überein!", - "invalid-token": "Passwort zurücksetzen Token ist ungültig oder abgelaufen", - "password-too-weak": "Neues Passwort entspricht nicht einer oder mehreren Passwortsicherheitsrichtlinien:", - "passwordTooShort": "Passwörter müssen {{parameter}} oder mehr Zeichen lang sein", - "passwordRequiresLower": "Passwörter müssen mindestens einen Kleinbuchstaben enthalten ('a'-'z')", - "passwordRequiresUpper": "Passwörter müssen mindestens einen Großbuchstaben haben ('A'-'Z')", - "passwordRequiresDigit": "Passwörter müssen mindestens eine Ziffer haben ('0'-'9')", - "passwordRequiresNonAlphanumeric": "Passwörter müssen mindestens ein nicht alphanumerisches Zeichen enthalten" + "current-password": "Erforderlich", + "new-password": "Altes und neues Passwort sind identisch!", + "repeat-password": "Neue Passwörter stimmen nicht überein!" }, "placeholders": { "current-password": "Aktuelles Passwort eingeben", @@ -350,13 +362,23 @@ } }, "account-resetPassword": { - "subtitle": "Ändern Sie Ihr Passwort", + "subtitle": "Benutzerpasswort ändern", "labels": { "new-password": "Neues Passwort", - "repeat-password": "Passwort wiederholen" + "repeat-password": "Passwort wiederholen", + "force-password-change": "Diesen Benutzer zwingen, sein Passwort bei der nächsten Anmeldung zu ändern" }, "validations": { - "repeat-password": "Das neue Passwort stimmt nicht überein!" + "repeat-password": "Neue Passwörter stimmen nicht überein!", + "invalid-token": "Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen", + "password-too-weak": "Das neue Passwort entspricht nicht einer oder mehreren Passwort-Sicherheitsrichtlinien:", + "passwordTooShort": "Passwörter müssen {{parameter}} oder mehr Zeichen lang sein", + "passwordRequiresUniqueChars": "Passwörter müssen mindestens {{parameter}} verschiedene Zeichen verwenden", + "passwordRequiresLower": "Passwörter müssen mindestens einen Kleinbuchstaben ('a'-'z') enthalten", + "passwordRequiresUpper": "Passwörter müssen mindestens einen Großbuchstaben ('A'-'Z') enthalten", + "passwordRequiresDigit": "Passwörter müssen mindestens eine Ziffer ('0'-'9') enthalten", + "passwordRequiresNonAlphanumeric": "Passwörter müssen mindestens ein nicht-alphanumerisches Zeichen enthalten", + "recentPasswordUsed": "Sie haben dieses Passwort in der Vergangenheit verwendet. Wählen Sie ein anderes" }, "placeholders": { "new-password": "Neues Passwort eingeben", @@ -368,14 +390,22 @@ "labels": { "user-information": "Benutzerinformationen", "is-administrator": "Ist Administrator", - "account-type": "Kontentyp", - "login": "Einloggen", - "account-state": "Konto Zustand", - "account-email": "E-mail" + "account-type": "Kontotyp", + "login": "Anmeldung", + "account-state": "Kontostatus", + "account-email": "E-Mail", + "locked-state": "Gesperrter Zustand", + "status": "Status", + "verified": "Verifiziert", + "resend-link": "Link erneut senden", + "link-sent": "Der Link wurde gesendet", + "last-login-date": "Letztes Anmeldedatum" }, "placeholders": { - "account-type": "Wählen Sie aus...", - "email": "Voer email in" + "account-type": "Auswählen ...", + "email": "E-Mail eingeben", + "user-name": "Benutzernamen eingeben", + "status": "Auswählen ..." } }, "account-list": { @@ -383,20 +413,30 @@ "subtitle": "Sicherheitsdienst", "labels": { "name": "Name", - "account-type": "Kontentyp", - "login": "Einloggen", - "state": "Zustand" + "account-type": "Kontotyp", + "login": "Anmeldung", + "state": "Zustand", + "status": "Status" + } + }, + "account-api": { + "labels": { + "api-key": "API-Schlüssel", + "is-active": "ist aktiv" + }, + "placeholders": { + "api-key": "API-Schlüssel eingeben" } }, "role-detail": { - "subtitle": "Rolle details", + "subtitle": "Rollendetails", "labels": { "summary": "Zusammenfassung", "name": "Name", "description": "Beschreibung", "assigned-permissions": "Zugewiesene Berechtigungen", "permission-name": "Name", - "assigned-scopes": "Zugeordnete Bereiche", + "assigned-scopes": "Zugewiesene Bereiche", "no-permissions-assigned": "Keine Berechtigungen zugewiesen" }, "placeholders": { @@ -405,32 +445,32 @@ } }, "account-roles": { - "subtitle": "Zuweisen von Rollen", + "subtitle": "Rollen zuweisen", "labels": { - "select-roles": "Wählen Sie Rollen zuweisen", - "no-roles": "Keine Rollen zuweisen." + "select-roles": "Rollen zum Zuweisen auswählen", + "no-roles": "Keine Rollen zum Zuweisen" } }, "account-roles-list": { "title": "", "labels": { "assigned-roles": "Zugewiesene Rollen", - "no-assigned": "Keine Rollen zugewiesen." + "no-assigned": "Keine Rollen zugewiesen" } }, "permission-scopes": { - "subtitle": "Erlaubnis Scopes konfigurieren", + "subtitle": "Berechtigungsbereiche konfigurieren", "labels": { - "select-bounded-scopes": "Wählen Sie begrenzte Bereiche", - "selected": "Ausgewählte", - "scope-name": "Umfang der Name und die Parameter", - "no-scopes": "Keine Scopes." + "select-bounded-scopes": "Begrenzte Bereiche auswählen", + "selected": "Ausgewählt", + "scope-name": "Bereichsname und Parameter", + "no-scopes": "Keine Bereiche" } }, "role-permissions": { - "subtitle": "Zuweisen von Berechtigungen", + "subtitle": "Berechtigungen zuweisen", "labels": { - "select-permissions": "Wählen Sie Berechtigungen zuweisen" + "select-permissions": "Berechtigungen zum Zuweisen auswählen" } }, "new-role-wizard": { @@ -439,7 +479,7 @@ "summary": "Zusammenfassung", "name": "Name", "description": "Beschreibung", - "assign-permissions": "Zuweisen von Berechtigungen" + "assign-permissions": "Berechtigungen zuweisen" }, "placeholders": { "name": "Namen eingeben", @@ -448,44 +488,121 @@ }, "role-list": { "title": "Rollen", - "subtitle": "Security Service", + "subtitle": "Sicherheitsdienst", "labels": { "name": "Name" } }, + "oauthapps": { + "labels": { + "clientId": "Client-ID", + "displayName": "Anzeigename", + "type": "Typ", + "clientSecret": "Client-Geheimnis", + "assigned-permissions": "Zugewiesene Berechtigungen", + "redirectUris": "Weiterleitungs-URIs", + "postLogoutRedirectUris": "Post-Logout-Weiterleitungs-URIs" + }, + "placeholders": { + "clientId": "Client-ID eingeben", + "displayName": "Anzeigenamen eingeben", + "type": "Typ eingeben", + "clientSecret": "Client-Geheimnis eingeben" + } + }, + "oauthapps-list": { + "title": "OAuth-Anwendungen", + "subtitle": "Sicherheitsdienst" + }, + "oauthapps-detail": { + "title": "OAuth-Anwendung bearbeiten", + "title-new": "OAuth-Anwendung erstellen", + "subtitle": "Sicherheitsdienst", + "labels": { + "clientSecret-warning": "Achtung! Sie müssen das Geheimnis jetzt kopieren. Es wird nach dem Schließen des Fensters verborgen", + "urls": "URLs" + }, + "blades": { + "edit-redirectUris": { + "title": "Weiterleitungs-URIs", + "subtitle": "Weiterleitungs-URIs verwalten" + }, + "edit-postLogoutRedirectUris": { + "title": "Post-Logout-Weiterleitungs-URIs", + "subtitle": "Post-Logout-Weiterleitungs-URIs verwalten" + } + } + }, "login": { "labels": { - "sign-in": "Melden Sie sich bei {{title}} Manager", - "login": "Einloggen", + "sign-in": "Anmelden bei {{title}} Manager", + "login": "Anmeldung", "password": "Passwort", - "remember-me": "Erinnern Sie sich an mich", - "external-sign-in": "Melden Sie sich mit {{displayName}} an", - "forgot-password": "Haben Sie Ihr Passwort vergessen?", + "remember-me": "Angemeldet bleiben", + "external-sign-in": "Anmelden mit {{displayName}}", + "forgot-password": "Passwort vergessen?", "log-in": "Anmelden", - "or": "oder" + "log-in-placeholder": "Geben Sie Ihre E-Mail oder Ihren Benutzernamen ein", + "password-placeholder": "Geben Sie Ihr Passwort ein", + "azure-log-in-label": "Über Azure bei der Admin-Site anmelden", + "password-log-in-type": "Systembenutzer", + "or": "oder", + "signing-in": "Anmeldung läuft..." + } + }, + "forgotpassword": { + "title": "Passwort vergessen?", + "labels": { + "login": "Anmeldung oder E-Mail", + "description": "Wir senden Ihnen eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts", + "success": "E-Mail mit Anweisungen wurde an Sie gesendet", + "fail": "Entschuldigung, wir konnten das Passwort für diesen Benutzer nicht zurücksetzen", + "back": "Zurück", + "submit": "Absenden", + "time-limit": "Sie können es in {{countdown}} erneut versuchen", + "time-limit-end": "Sie können es jetzt erneut versuchen" + }, + "placeholders": { + "login-or-email": "Bitte geben Sie Anmeldung oder E-Mail ein" + } + }, + "access-denied": { + "title": "Zugriff verweigert", + "labels": { + "message": "Sie haben keinen Zugriff auf diese Ressource. Bitte kontaktieren Sie Ihren Administrator", + "button": "Mit anderen Anmeldedaten anmelden" + } + }, + "resetpassword": { + "title": "Passwort zurücksetzen", + "labels": { + "success": "Ihr Passwort wurde zurückgesetzt", + "fail": "Entschuldigung, wir konnten das Passwort für diesen Benutzer nicht zurücksetzen", + "submit": "Zurücksetzen", + "log-in": "Anmelden" } }, "license": { "title": "Aktuelle Lizenz", - "title-new": "Neue Lizenz aktivieren", + "title-new": "Neue Lizenzaktivierung", "license-info": "Lizenzinformationen", - "license-activation": "Aktivieren der Lizenz", - "labels": { - "info-running-no-license": "Diese Instanz von virto Commerce läuft unter der", - "info-open-source-license": "Open Source Community Lizenz.", - "info0": "Erwerb oder Erneuerung der Lizenz", - "info1": "Füllen Sie das Formular aus ", - "info2": "Wir werden uns sobald wie möglich mit Ihnen in Verbindung setzen.", - "info3": "Sobald Sie den Aktivierungscode und / oder die Lizenzdatei erhalten haben, füllen Sie eines der folgenden Aktivierungsfelder aus.", - "info4": "Das System zeigt Ihnen die neuen Lizenzinformationen an. Überprüfen Sie diese und klicken Sie auf Aktivieren, um zu bestätigen.", - "customer": "Lizenz ausgestellt auf", + "license-activation": "Lizenzaktivierung", + "labels": { + "info-running-no-license": "Diese Instanz von Virto Commerce läuft auf", + "info-open-source-license": "Open Source Community Lizenz", + "info0": "Lizenz erwerben oder erneuern:", + "info1": "Reichen Sie das ", + "info2": "Wir werden Ihre Anfrage bearbeiten und Sie bald kontaktieren", + "info3": "Sobald Sie den \"Aktivierungscode\" und/oder die Lizenzdatei erhalten haben, füllen Sie eines der Aktivierungsfelder unten aus", + "info4": "Das System zeigt Ihnen die neuen Lizenzinformationen an. Überprüfen Sie diese und klicken Sie auf \"Aktivieren\", um zu bestätigen", + "customer": "Lizenz ausgestellt für", "type": "Typ", "expiration": "Ablauf", "email": "Kunden-E-Mail", - "request-license": "License Request Form.", - "code-descr": "Geben Sie den erhaltenen Aktivierungscode ein und drücken Sie [Enter]. Dies ist die schnellste Aktivierungsmethode. (Benötigt Internetverbindung)", - "file-descr": "Optional können Sie die erhaltene Lizenzdatei hochladen. (Off-line-Aktivierung)", - "upload-progress": "Fortschritte hochladen", + "request-license": "Lizenzantragsformular", + "code-descr": "Geben Sie den erhaltenen \"Aktivierungscode\" ein und drücken Sie [Enter]. Dies ist die schnellste Methode zur Lizenzaktivierung. (Internetverbindung erforderlich)", + "file-descr": "Optional können Sie die erhaltene Lizenzdatei bereitstellen. (Offline-Aktivierung)", + "upload-progress": "Upload-Fortschritt", "errors": "Aktivierungsfehler" }, "placeholders": { @@ -494,21 +611,21 @@ }, "new-account-wizard": { "labels": { - "email": "E-mail", - "login": "Einloggen", + "login": "Anmeldung", + "email": "E-Mail", "password": "Passwort", "repeat-password": "Passwort wiederholen", - "assign-roles": "Zuweisen von Rollen" + "assign-roles": "Rollen zuweisen" }, "placeholders": { - "email": "E-Mail-Adresse eingeben", - "login": "Einloggen eingeben", + "email": "E-Mail eingeben", + "login": "Anmeldung eingeben", "password": "Neues Passwort eingeben", "repeat-password": "Neues Passwort wiederholen" }, "validations": { - "repeat-password": "Eingegebene Passwörter stimmen nicht überein!", - "password-too-weak": "Das eingegebene Passwort entspricht nicht einer oder mehreren Passwortsicherheitsrichtlinien:" + "repeat-password": "Die eingegebenen Passwörter stimmen nicht überein!", + "password-too-weak": "Das eingegebene Passwort entspricht nicht einer oder mehreren Passwort-Sicherheitsrichtlinien:" } }, "security-main": { @@ -519,7 +636,7 @@ "title": "Einstellungen" }, "setting-dictionary": { - "subtitle": "Wörterbuch Werte verwalten", + "subtitle": "Wörterbucheinträge verwalten", "labels": { "new-value": "Bitte Wert eingeben", "current-values": "Aktuelle Werte", @@ -534,61 +651,93 @@ } }, "settings-detail": { - "title": "Modul Einstellungen", - "hide-description": "Verstecken" + "title": "Einstellungswerte", + "hide-description": "Ausblenden" }, "settingGroup-list": { "title": "Einstellungen", - "bread-crumb-top": "Alle" + "bread-crumb-top": "Alle Einstellungen" + }, + "settings-uploader": { + "drag-drop-comment": "Datei hierher ziehen und ablegen", + "or": "oder", + "browse-your-files": "Ihre Dateien durchsuchen" }, "localizable-setting-value-list": { - "subtitle": "Wörterbuch Werte verwalten" + "subtitle": "Wörterbucheinträge verwalten" }, "localizable-setting-value-details": { - "title": "Wörterbuch wert bearbeiten", + "title": "Wörterbucheintrag bearbeiten", "alias": "Systemwert" }, "user-profile": { - "title": "User Profil", + "title": "Benutzerprofil", "labels": { "language": "Sprache", + "language-description": "Anzeigesprache. Leer lassen, um Browser- oder Fallback-Sprache zu verwenden", "regional-format": "Regionales Format", - "timezone": "Zeitzone" + "regional-format-description": "Regionales Format für Zahlen, Währung, Datum und Uhrzeit. Leer lassen, um Browser- oder Fallback-Regionalformat zu verwenden", + "time-zone": "Zeitzone", + "time-zone-description": "Aktuelle Benutzer-Zeitzone im IANA-Format (tz-Datenbank). Wählen Sie die nächstgelegene Stadt in Ihrer Zeitzone. Leer lassen, um Browser- oder Fallback-Zeitzone zu verwenden", + "use-time-ago": "Zeit-Ago-Format verwenden, wenn möglich", + "full-date-threshold-group": "Vollständiges Datumsformat für Daten verwenden, die älter sind als...", + "full-date-threshold-description": "Numerischer Wert der Zeiteinheiten", + "full-date-threshold-unit-description": "Zeiteinheit (z.B. Stunden oder Jahre)" + }, + "placeholders": { + "full-date-threshold": "Schwellenwert eingeben", + "full-date-threshold-unit": "Schwellenwerteinheit auswählen" + }, + "full-date-threshold-units": { + "Never": "Nie", + "Seconds": "Sekunden", + "Minutes": "Minuten", + "Hours": "Stunden", + "Days": "Tage", + "Weeks": "Wochen", + "Months": "Monate", + "Quarters": "Quartale", + "Years": "Jahre" } } }, "templates": { "sampleDataChoose": { "labels": { - "choose-sample-data-type": "Wählen Sie beispieldaten Typ", + "choose-sample-data-type": "Beispieldatentyp auswählen", "size": "Größe", "version": "Version" } }, "sampleDataInitialization": { "labels": { - "sample-data-initialization": "Beispieldaten Initialisierung", - "starting-initialization": "Starten von Beispieldaten Initialisierung...", + "sample-data-initialization": "Beispieldaten-Initialisierung", + "starting-initialization": "Starte Beispieldaten-Initialisierung...", "errors": "Fehler", - "start": "Starten", + "start": "Start", "end": "Ende" } }, "licensing": { - "license-absent": "Common License", - "license-present": "{{type}} Lizenz ist bis zum {{expirationDate | amParse | date}}", - "community": "Sie nutzen die Community Edition. klicken Sie hier um eine kommerzielle Lizenz zu beantragen.", - "expired": "Ihre Lizenz ist am {{expirationDate | amParse | date}} abgelaufen, bitte erneuern.", - "purchase": "Kauf", - "renew": "Aktualisieren", - "expiration-date": "Gültig bis" + "license-absent": "Community-Lizenz", + "license-present": "{{type}}-Lizenz, läuft am {{expirationDate | amParse | date}} ab", + "community": "Community-Edition wird ausgeführt, klicken Sie hier, um eine kommerzielle Lizenz anzufordern", + "expired": "Ihre Lizenz ist am {{expirationDate | amParse | date}} abgelaufen, bitte erneuern Sie sie", + "purchase": "Kaufen", + "renew": "Erneuern", + "expiration-date": "Ablaufdatum" + }, + "password-expiry": { + "expire-days": "Um Ihr Konto zu schützen, müssen Sie Ihr Passwort in {{count}} Tagen ändern.", + "expire-today": "Um Ihr Konto zu schützen, müssen Sie Ihr Passwort heute ändern.", + "change-link": "Jetzt ändern" }, "modulesAutoInstallation": { "labels": { - "module-auto-installation": "Module automatische Installation", - "loading": "Abrufen der Module Informationen...", - "finished": "Installation abgeschlossen. Klicken Sie auf Neu starten, um fortzufahren.", - "start": "Starten", + "module-auto-installation": "Automatische Modulinstallation", + "loading": "Modulinformationen werden abgerufen...", + "finished": "Installation abgeschlossen. Klicken Sie auf Neustart, um fortzufahren", + "start": "Start", "end": "Ende" } } @@ -596,7 +745,7 @@ "widgets": { "operations": { "title": "Änderungen", - "blade-subtitle": "Änderunggeschichte" + "blade-subtitle": "Änderungsverlauf" }, "dynamicProperty": { "title": "Dynamische Eigenschaften" @@ -605,8 +754,8 @@ "title": "Einstellungen" }, "accountApi": { - "title": "API-Konten", - "blade-subtitle": "API-Konten" + "title": "API-Schlüssel", + "blade-subtitle": "API-Schlüssel" }, "accountRoles": { "title": "Rollen", @@ -615,12 +764,12 @@ }, "dialogs": { "folders-delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählten Dateien oder Ordner löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählten Ordner oder Dateien löschen möchten?" }, "properties-save": { "title": "Änderungen speichern", - "message": "Die Eigenschaften wurden geändert. Möchten Sie die Änderungen bestätigen?" + "message": "Die Eigenschaften wurden geändert. Möchten Sie die Änderungen speichern?" }, "notification-template-save": { "title": "Änderungen speichern", @@ -631,79 +780,265 @@ "message": "Die Rolle wurde geändert. Möchten Sie die Änderungen speichern?" }, "roles-delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählten Rollen löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählten Rollen löschen möchten?" }, "account-save": { "title": "Änderungen speichern", "message": "Das Konto wurde geändert. Möchten Sie die Änderungen speichern?" }, "account-delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählten Konten löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählten Konten löschen möchten?" + }, + "oauthapps-save": { + "title": "Änderungen speichern", + "message": "Die OAuth-Anwendung wurde geändert. Möchten Sie die Änderungen speichern?" + }, + "oauthapps-delete": { + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählte OAuth-Anwendung löschen möchten?" }, "dynamic-property-delete": { - "title": "Bestätigung löschen", - "message": "Sind Sie sicher, dass Sie diese dynamische Eigenschaft löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie diese dynamische Eigenschaft löschen möchten?" }, "settings-value-delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählten Werte löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählten Werte löschen möchten?" }, "settings-save": { "title": "Änderungen speichern", - "message": "Die Einstellungen wurden geändert. Möchten Sie die Änderungen bestätigen?" + "message": "Die Einstellungen wurden geändert. Möchten Sie die Änderungen speichern?" }, "settings-delete": { - "title": "Bestätigung löschen", + "title": "Löschen bestätigen", "message": "Die Einstellungen wurden geändert. Möchten Sie die Änderungen speichern?" }, "localizable-setting-value-delete": { - "title": "Bestätigung löschen", - "message": "Möchten Sie die ausgewählte Wörterbuch Werte löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie die ausgewählten Wörterbucheinträge löschen möchten?" }, "localizable-setting-value-save": { "title": "Änderungen speichern", - "message": "This dictionary value has been modified. Do you want to save changes?" + "message": "Dieser Wörterbucheintrag wurde geändert. Möchten Sie die Änderungen speichern?" }, "email-sending-success": { - "title": "Erfolg senden", - "message": "E-Mail wurde erfolgreich gesendet." + "title": "Senden erfolgreich", + "message": "E-Mail wurde erfolgreich gesendet!" }, "email-send-error": { "title": "Fehler beim Senden", - "message": "E-Mail wurde nicht gesendet! Fehler {{error}}" + "message": "E-Mail wurde nicht gesendet! Fehler: {{error}}" }, "dictionary-items-delete": { - "title": "Bestätigung löschen", - "message": "Sind Sie sicher, dass Sie die {{quantity}} ausgewählte Wörterbuch(s) Element(e) löschen wollen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie {{quantity}} ausgewählte(n) Wörterbucheintrag/-einträge löschen möchten?" }, "module-action": { - "title-install": "Installieren bestätigung", - "title-update": "Aktualisierung bestätigung", - "title-delete": "Bestätigung der Deinstallation", - "message0-install": "Sie werden jetzt installieren.", - "message0-update": "Sie werden jetzt aktualisieren.", - "message0-delete": "Sie werden jetzt deinstallieren.", - "message1-install": "Die folgenden Abhängigkeiten wird auch installiert werden", - "message1-delete": "Die folgenden je Module werden auch deinstalliert werden.", + "title-install": "Installation bestätigen", + "title-update": "Aktualisierung bestätigen", + "title-delete": "Deinstallation bestätigen", + "message0-install": "Sie sind dabei, Folgendes zu installieren:", + "message0-update": "Sie sind dabei, Folgendes zu aktualisieren:", + "message0-delete": "Sie sind dabei, Folgendes zu deinstallieren:", + "message1-install": "Die folgenden Abhängigkeiten werden ebenfalls installiert:", + "message1-delete": "Die folgenden abhängigen Module werden ebenfalls deinstalliert:", "message2-install": "Auswahl und Abhängigkeiten installieren?", - "message2-update": "Auswahl aktualisieren und Abhängigkeiten?", - "message2-delete": "Deinstallieren Sie diese und alle je Module?" + "message2-update": "Auswahl und Abhängigkeiten aktualisieren?", + "message2-delete": "Dieses und ALLE abhängigen Module deinstallieren?" }, "module-delete": { - "title": "Bestätigung löschen", - "message": "Sind Sie sicher, dass Sie dieses Modul deinstallieren wollen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie dieses Modul deinstallieren möchten?" }, "api-key-delete": { - "title": "Bestätigung löschen", - "message": "Sind Sie sicher, dass Sie diese API-Schlüssel löschen?" + "title": "Löschen bestätigen", + "message": "Sind Sie sicher, dass Sie diesen API-Schlüssel löschen möchten?" + }, + "app-restart": { + "title": "Anwendungsbeendigung", + "message": "Starten Sie die Anwendung neu, um die Änderungen zu übernehmen. Je nach Ihrem Hosting-Dienst kann die Anwendung automatisch neu gestartet werden oder Sie müssen dies manuell tun. Sind Sie sicher, dass Sie die Anwendung jetzt schließen möchten?" + }, + "error-details": { + "title": "Fehlerdetails" + }, + "impersonate-no-url": { + "title": "Anmeldung im Namen von", + "message": "Die Shop-URL wurde nicht zu den Shop-Einstellungen hinzugefügt. Bitte kontaktieren Sie den Administrator" + }, + "asset-upload-error": { + "title": "Upload-Fehler", + "message": "Wählen Sie einen Ordner aus! Eine Datei kann nicht im Stammverzeichnis hochgeladen werden!" + }, + "run-import": { + "title": "Import bestätigen", + "message": "Sind Sie sicher, dass Sie Beispieldaten importieren möchten?" + }, + "create-folder": { + "title": "Ein Ordnername muss den folgenden Benennungsregeln entsprechen:\n Der Ordnername muss zwischen 3 und 63 Zeichen lang sein.\n Der Ordnername muss mit einem Buchstaben oder einer Zahl beginnen und darf nur Buchstaben, Zahlen und Bindestriche (-) enthalten.\n Jeder Bindestrich (-) muss unmittelbar vor und nach einem Buchstaben oder einer Zahl stehen; aufeinanderfolgende Bindestriche sind nicht erlaubt.\n Alle Buchstaben in einem Ordnernamen müssen klein geschrieben sein" + }, + "storefront-cache-reset-successfully": { + "title": "Cache zurückgesetzt", + "message": "Der Cache der Frontend-Anwendung wurde erfolgreich zurückgesetzt" + } + }, + "commands": { + "login-on-behalf": "Im Namen von anmelden", + "reset-storefront-cache": "Cache zurücksetzen" + } + }, + "permissions": { + "platform:asset:access": "Assets im Hauptmenü anzeigen", + "platform:asset:delete": "Platform-Assets löschen", + "platform:asset:update": "Platform-Assets ändern", + "platform:asset:create": "Neue Platform-Assets hochladen", + "platform:asset:read": "Platform-Assets herunterladen", + "platform:module:read": "Moduldetails anzeigen", + "platform:module:access": "Module im Hauptmenü anzeigen", + "platform:module:manage": "Module installieren/deinstallieren", + "platform:setting:read": "Platform-Einstellungen lesen", + "platform:setting:access": "Einstellungen im Hauptmenü anzeigen", + "platform:setting:update": "Platform-Einstellungen ändern", + "platform:dynamic_properties:read": "Details dynamischer Eigenschaften anzeigen", + "platform:dynamic_properties:create": "Neue dynamische Eigenschaften erstellen", + "platform:dynamic_properties:access": "Dynamische Eigenschaften im Hauptmenü anzeigen", + "platform:dynamic_properties:update": "Dynamische Eigenschaften ändern", + "platform:dynamic_properties:delete": "Dynamische Eigenschaften löschen", + "platform:security:read": "Benutzer- und Rollendetails anzeigen", + "platform:security:create": "Neue Benutzer und Rollen erstellen", + "platform:security:access": "Sicherheit im Hauptmenü anzeigen", + "platform:security:update": "Benutzer und Rollen ändern", + "platform:security:delete": "Benutzer und Rollen löschen", + "platform:security:verifyEmail": "Verifizierten Status ändern und Verifizierungs-E-Mail senden", + "background_jobs:manage": "Zugriff auf die Hangfire-Konsole", + "platform:exportImport:access": "Export/Import im Hauptmenü anzeigen", + "platform:import": "Platform- und Moduldaten importieren", + "platform:export": "Platform- und Moduldaten exportieren", + "platform:security:loginOnBehalf": "Im Namen eines Kunden anmelden" + }, + "settings": { + "VirtoCommerce": { + "Core": { + "General": { + "Languages": { + "title": "Sprachen", + "description": "Liste der verfügbaren Sprachen" + } + } + }, + "ModulesAutoInstalled": { + "description": "Die Markierung zeigt an, dass die Module automatisch installiert wurden", + "title": "Module installiert" + }, + "ModulesAutoInstallState": { + "title": "Status der automatischen Modulinstallation", + "description": "Aktueller Status des Assistenten für die automatische Modulinstallation" + }, + "SetupStep": { + "title": "Aktueller Einrichtungsschritt", + "description": "Aktueller Schritt im Einrichtungsassistenten" + }, + "SampleDataState": { + "title": "Status der Beispieldaten", + "description": "Aktueller Status des Beispieldaten-Assistenten" + }, + "SendDiagnosticData": { + "title": "Diagnosedaten senden", + "description": "VC-Plattform-Diagnosedaten an VC senden. Kann nur mit dem Kauf einer Lizenz deaktiviert werden" + }, + "Platform": { + "Security": { + "AccountTypes": { + "description": "Wörterbuch für mögliche Kontotypen", + "title": "Kontotypen" + }, + "DefaultAccountType": { + "title": "Standard-Kontotyp", + "description": "Standardwert für den Kontotyp beim Erstellen eines neuen Kontos" + }, + "DefaultAccountStatus": { + "title": "Standard-Kontostatus", + "description": "Standardwert für den Kontostatus beim Erstellen eines neuen Kontos" + }, + "DefaultExternalAccountStatus": { + "title": "Standard-Status für externe Konten", + "description": "Standardwert für den Kontostatus beim Erstellen eines neuen Kontos während der externen Anmeldung" + }, + "EnablePruneExpiredTokensJob": { + "description": "Aktiviert das Entfernen abgelaufener und ungültiger Token/Autorisierungen", + "title": "Abgelaufene Token entfernen" + }, + "CronPruneExpiredTokensJob": { + "description": "Cron-Ausdruck für den Job zum Entfernen abgelaufener und ungültiger Token/Autorisierungen", + "title": "Cron für den Token-Entfernungsjob" + }, + "FileExtensionsBlackList": { + "description": "Von der Plattform verbotene Dateierweiterungen für den Upload (zusätzlich zu 'FileExtensionsBlackList' in appsettings.json)", + "title": "Schwarze Liste" + }, + "FileExtensionsWhiteList": { + "description": "Von der Plattform erlaubte Dateierweiterungen für den Upload (zusätzlich zu 'FileExtensionsWhiteList' in appsettings.json)", + "title": "Weiße Liste" + } + }, + "UI": { + "MainMenu": { + "State": { + "description": "Gespeicherter Zustand des Hauptmenüs", + "title": "Gespeicherter Zustand des Hauptmenüs" + } + }, + "Language": { + "description": "Standardsprache (zweistelliger Code aus ISO 639-1, Groß-/Kleinschreibung wird ignoriert). Beispiel: de, en", + "title": "Sprache" + }, + "RegionalFormat": { + "description": "Standardregionalformat (CLDR-Gebietsschema-Code, mit Bindestrich oder Unterstrich als Trennzeichen, Groß-/Kleinschreibung wird ignoriert). Beispiel: de, de_DE, sr_Cyrl, sr_Cyrl_RS", + "title": "Regionales Format" + }, + "TimeZone": { + "description": "Standard-Zeitzone (IANA-Zeitzonenname [tz-Datenbank], genau wie in der Datenbank, Groß-/Kleinschreibung beachten). Beispiele: Europe/Berlin, America/New_York", + "title": "Zeitzone" + }, + "UseTimeAgo": { + "description": "Wenn auf true gesetzt (Standard), zeigt das System das Datum im Format 'vor einigen Sekunden' an, wann immer möglich", + "title": "Zeit-Ago-Format verwenden, wenn möglich" + }, + "FullDateThreshold": { + "description": "Das Zeit-Ago-Format wechselt nach einer bestimmten Anzahl von Zeiteinheiten zu einem vollständigen Datumsformat", + "title": "Schwellenwert für vollständiges Datum" + }, + "FullDateThresholdUnit": { + "description": "Einheit des Schwellenwerts für vollständiges Datum", + "title": "Einheit des Schwellenwerts für vollständiges Datum" + }, + "Customization": { + "description": "JSON enthält Personalisierungseinstellungen der Manager-Benutzeroberfläche", + "title": "Die Anpassung der Manager-Benutzeroberfläche" + }, + "ShowMeridian": { + "description": "Zeitmeridian-Anzeige (AM oder PM) anzeigen", + "title": "Zeitmeridian anzeigen" + } + }, + "Cache": { + "Enabled": { + "description": "Diese Einstellung ermöglicht es Ihnen, das Caching für die gesamte Plattformanwendung global zu aktivieren und zu deaktivieren", + "title": "Cache global aktivieren oder deaktivieren" + }, + "AbsoulteExpiration": { + "description": "Gibt die maximale Zeit an, für die die zwischengespeicherten Daten im Cache gespeichert werden. Format: [-][d.]hh:mm:ss[.fffffff]", + "title": "Globale Lebensdauer von Objekten im Cache" + } + } + }, + "Other": { + "AccountStatuses": { + "title": "Kontostatus", + "description": "Kontostatus ändern" + } } - // temproraly disabled restart feature, show english dialog version - //"app-restart": { - // "title": "Anwendungsneustart", - // "message": "Sind Sie sicher, dass Sie die Anwendung neu starten möchten?" - //} } } } diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Common.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Common.json index 0a52c8fabc..541bb51893 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Common.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Common.json @@ -41,14 +41,14 @@ "restart": "Restart", "save": "Save", "send": "Send", - "select-all": "Select All", + "select-all": "Select all", "set-to-default": "Set to default", "start-export": "Start export", "settings": "Settings", "sign-out": "Sign out", "undo": "Undo", "uninstall": "Uninstall", - "unselect-all": "Unselect All", + "unselect-all": "Unselect all", "update": "Update", "upload": "Upload", "yes": "Yes", @@ -67,7 +67,7 @@ "time": "Time", "now": "Now", "date": "Date", - "see-details": "See details", + "see-details": "View details", "dismiss": "Dismiss", "hide-empty-property-values": "Hide empty values", "show-empty-property-values": "Show empty values", @@ -81,7 +81,7 @@ "no-data": "No data", "count": "Count", "loading": "Loading...", - "item-not-found": "Error: Not Found" + "item-not-found": "Error: Not found" }, "placeholders": { "n-a": "N/A", @@ -98,39 +98,39 @@ }, "properties": { "short-text": { - "title": "Short Text", - "description": "Text values less than 1024 chars." + "title": "Short text", + "description": "Text values under 1024 characters" }, "long-text": { - "title": "Long Text", - "description": "Huge amount text without size limit." + "title": "Long text", + "description": "Unlimited text with no size restriction" }, "integer": { "title": "Integer", - "description": "Integer number." + "description": "Integer number" }, "decimal": { "title": "Decimal Number", - "description": "Decimal number with precision 18 and scale 4." + "description": "Decimal number with a precision of 18 and a scale of 4" }, "date-time": { "title": "Date time", - "description": "Select date." + "description": "Select date" }, "boolean": { "title": "Boolean", - "description": "Switch type." + "description": "Switch type" }, "html": { "title": "HTML", - "description": "HTML markup." + "description": "HTML markup" }, "undefined": { "title": "Undefined" }, "image": { "title": "Image", - "description": "Image type." + "description": "Image type" } }, "genericValueInput": { @@ -163,26 +163,26 @@ }, "validators": { "uriWithoutQuery": { - "error": "Invalid uri format. Make shure uri dosn't have query params." + "error": "Invalid URI format. Ensure the URI doesn't have query parameters" } }, "errors": { "generic-error": "Error", - "400": "Bad Request", + "400": "Bad request", "401": "Unauthorized", "403": "Forbidden", - "404": "Not Found", - "405": "Method Not Allowed", - "406": "Not Acceptable", - "407": "Proxy Authentication Required", - "408": "Request Timeout", + "404": "Not found", + "405": "Method not allowed", + "406": "Not acceptable", + "407": "Proxy authentication required", + "408": "Request timeout", "409": "Conflict", - "429": "Too Many Requests", - "500": "Internal Server Error", - "501": "Not Implemented", - "502": "Bad Gateway", - "503": "Service Unavailable", - "504": "Gateway Timeout" + "429": "Too many requests", + "500": "Internal server error", + "501": "Not implemented", + "502": "Bad gateway", + "503": "Service unavailable", + "504": "Gateway timeout" } } } diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Platform.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Platform.json index beebdbec61..5e431c66e5 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Platform.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/en.VirtoCommerce.Platform.json @@ -49,7 +49,7 @@ "select-files": "Select files", "drag-note": "Drag and drop files here", "progress": "Progress", - "asset-uploaded": "Asset(s) uploaded." + "asset-uploaded": "Asset(s) uploaded" }, "placeholders": { "image-url": "Paste file URL here" @@ -66,7 +66,7 @@ "title": "Dynamic object types", "subtitle": "Pick object type to manage dynamic properties", "labels": { - "no-objects": "No objects supports dynamic properties yet." + "no-objects": "No objects support dynamic properties yet" } }, "dynamicProperty-detail": { @@ -82,7 +82,7 @@ "description": "Description", "display-order": "Display order", "display-name": "Display name", - "value-type": "Value Type", + "value-type": "Value type", "dictionary-values": "Dictionary values", "manage-dictionary": "Manage dictionary" }, @@ -92,15 +92,15 @@ "display-order": "Display order" }, "validations": { - "multivalue": "Multivalue property can have only ShortText, Integer or Decimal value type.", - "multilingual": "Only text or HTML value can be multilingual.", - "dictionary": "Only dictionaries of value type ShortText are supported." + "multivalue": "Multivalue property can have only ShortText, Integer or Decimal value type", + "multilingual": "Only text or HTML value can be multilingual", + "dictionary": "Only dictionaries of the ShortText value type are supported" } }, "dynamicProperty-list": { "subtitle": "Manage dynamic properties", "labels": { - "no-properties": "No dynamic properties yet." + "no-properties": "No dynamic properties yet" } }, "notifications-menu": { @@ -123,7 +123,7 @@ "dictionary-name": "Duplicate name found", "localized-values-required": "Required", "localized-values": "Duplicate name found", - "dictionary": "Only dictionaries of value type ShortText are supported." + "dictionary": "Only dictionaries of the ShortText value type are supported" }, "placeholders": { "dictionary-name": "Enter name", @@ -135,7 +135,7 @@ "subtitle": "", "labels": { "header": "Properties values", - "no-properties": "This entity doesn't have any dynamic properties yet. Click 'Types of properties' and create some properties. Close and reopen current entity view to get dynamic properties loaded." + "no-properties": "This entity doesn't have any dynamic properties yet. Click 'Types of properties' and create some properties. Close and reopen current entity view to load dynamic properties" } }, "edit-array": { @@ -156,7 +156,7 @@ "labels": { "platform-entries": "Platform entries", "choose-modules": "Choose modules to export", - "download-url": "Download Url", + "download-url": "Download URL", "errors": "Errors", "start": "Start", "end": "End" @@ -184,8 +184,8 @@ "title": "Data import", "labels": { "start-import": "Start import", - "select-file": "Select .zip file to import. The file must be produced by Commerce Manager data export.", - "drag-note": "Drag and drop .zip file to import. The file must be produced by Commerce Manager data export.", + "select-file": "Select .zip file to import. The file must be produced by Commerce Manager data export", + "drag-note": "Drag and drop .zip file to import. The file must be produced by Commerce Manager data export", "upload-failed": "Upload failed", "upload-progress": "Upload progress", "import-progress": "Import progress", @@ -193,7 +193,7 @@ "import-data-information": "Import data information", "author": "Author", "data-file-created": "Data file created", - "created-platform-version": "Created in platform version", + "created-platform-version": "Created in Platform version", "platform-entries": "Platform entries", "choose-modules": "Choose modules to import", "no-data": "No data", @@ -225,11 +225,11 @@ "menu": { "export": { "title": "Export", - "description": "Data will be saved out to a file so it can later be imported." + "description": "Data will be saved out to a file so it can be imported later" }, "import": { "title": "Import", - "description": "Import data from an exported file." + "description": "Import data from an exported file" } } }, @@ -251,8 +251,8 @@ "start": "Start", "end": "End", "progress-messages": "Progress messages", - "process-completed": "Module installation process completed.", - "restart-application": "Restart the application now or later." + "process-completed": "Module installation process completed", + "restart-application": "Restart the application now or later" } }, "module-detail": { @@ -261,9 +261,9 @@ "i-accept-the": "I accept the", "license-link": "license", "license": "License", - "agreement": "agreement.", + "agreement": "agreement", "install-from-file": "Install / update module from file", - "select-module-file": "Upload a module (.zip) file from outside the central modules repository", + "select-module-file": "Upload a module (.zip) file from an external source outside the central modules repository", "upload-progress": "Upload progress", "module-info": "Module info", "title": "Title", @@ -273,9 +273,9 @@ "authors": "Authors", "id": "ID", "version": "Version", - "project-information": "Project Information", + "project-information": "Project information", "description": "Description", - "platform-version": "Platform Version", + "platform-version": "Platform version", "dependencies": "Dependencies", "optional-dependencies": "Optional dependencies", "tags": "Tags", @@ -296,19 +296,19 @@ "modules-list": { "subtitle": "Modules management", "labels": { - "grouping": "Show Module bundles", + "grouping": "Show module bundles", "ungrouped": "Other", - "no-updates": "No updates found.", - "no-modules-part1": "No new Modules to install.", - "no-installed-modules": "No installed Modules found.", + "no-updates": "No updates found", + "no-modules-part1": "No new modules to install", + "no-installed-modules": "No installed modules found", "icon": "Icon", "up-to-date": "Module is up to date", "update-available": "Update available for this module", "module": "Module", "version": "Version", "author": "Author", - "installed": "Installed Modules", - "manual-install-warning": "Warning! Manually installed modules will not start because RefreshProbingFolderOnStart set to false." + "installed": "Installed modules", + "manual-install-warning": "Warning! Manually installed modules will not start because RefreshProbingFolderOnStart is set to false" } }, "history": { @@ -342,13 +342,13 @@ "labels": { "title": "Please enter a new password", "login": "Login", - "force-change-info": "Your password has expired. You must change the password to continue using the manager.", + "force-change-info": "Your password has expired. You must change the password to continue using the manager", "current-password": "Current password", "new-password": "New password", "repeat-password": "Repeat new password", "cancel": "Cancel", "save": "Change", - "fail": "Sorry, we could't reset password for this user." + "fail": "Sorry, we could't reset password for this user" }, "validations": { "current-password": "Required", @@ -371,14 +371,14 @@ "validations": { "repeat-password": "New passwords do not match!", "invalid-token": "Reset password token is invalid or expired", - "password-too-weak": "New password does not comply one or more password security policies:", + "password-too-weak": "New password does not comply with one or more password security policies:", "passwordTooShort": "Passwords must be {{parameter}} or more characters long", "passwordRequiresUniqueChars": "Passwords must use at least {{parameter}} different characters", "passwordRequiresLower": "Passwords must have at least one lowercase ('a'-'z')", "passwordRequiresUpper": "Passwords must have at least one uppercase ('A'-'Z')", "passwordRequiresDigit": "Passwords must have at least one digit ('0'-'9')", "passwordRequiresNonAlphanumeric": "Passwords must have at least one non alphanumeric character", - "recentPasswordUsed": "You have used this password in the past. Choose another one." + "recentPasswordUsed": "You have used this password in the past. Choose another one" }, "placeholders": { "new-password": "Enter new password", @@ -386,7 +386,7 @@ } }, "account-detail": { - "title-new": "New Account", + "title-new": "New account", "labels": { "user-information": "User information", "is-administrator": "Is administrator", @@ -421,11 +421,11 @@ }, "account-api": { "labels": { - "api-key": "Api key", + "api-key": "API key", "is-active": "is active" }, "placeholders": { - "api-key": "Enter an Api key" + "api-key": "Enter API key" } }, "role-detail": { @@ -448,14 +448,14 @@ "subtitle": "Assign roles", "labels": { "select-roles": "Select roles to assign", - "no-roles": "No roles to assign." + "no-roles": "No roles to assign" } }, "account-roles-list": { "title": "", "labels": { "assigned-roles": "Assigned roles", - "no-assigned": "No roles assigned." + "no-assigned": "No roles assigned" } }, "permission-scopes": { @@ -464,7 +464,7 @@ "select-bounded-scopes": "Select bounded scopes", "selected": "Selected", "scope-name": "Scope name and parameters", - "no-scopes": "No scopes." + "no-scopes": "No scopes" } }, "role-permissions": { @@ -474,7 +474,7 @@ } }, "new-role-wizard": { - "title": "New Role", + "title": "New role", "labels": { "summary": "Summary", "name": "Name", @@ -495,7 +495,7 @@ }, "oauthapps": { "labels": { - "clientId": "Client id", + "clientId": "Client Id", "displayName": "Display name", "type": "Type", "clientSecret": "Client secret", @@ -504,7 +504,7 @@ "postLogoutRedirectUris": "Post logout redirect URIs" }, "placeholders": { - "clientId": "Input client id", + "clientId": "Input client Id", "displayName": "Input display name", "type": "Input type", "clientSecret": "Input client secret" @@ -519,17 +519,17 @@ "title-new": "Create OAuth application", "subtitle": "Security service", "labels": { - "clientSecret-warning": "Warning! You must copy the secret now. It will be hidden after closing the blade.", - "urls": "Urls" + "clientSecret-warning": "Warning! You must copy the secret now. It will be hidden after closing the blade", + "urls": "URLs" }, "blades": { "edit-redirectUris": { - "title": "Redirect uris", - "subtitle": "Manage redirect uris" + "title": "Redirect URIs", + "subtitle": "Manage redirect URIs" }, "edit-postLogoutRedirectUris": { - "title": "Post logout redirect uris", - "subtitle": "Manage post logout redirect uris" + "title": "Post logout redirect URIs", + "subtitle": "Manage post logout redirect URIs" } } }, @@ -544,7 +544,7 @@ "log-in": "Log in", "log-in-placeholder": "Enter your email or user name", "password-placeholder": "Enter your password", - "azure-log-in-label": "Login to admin site through Azure", + "azure-log-in-label": "Log in to admin site through Azure", "password-log-in-type": "System user", "or": "or", "signing-in": "Signing in..." @@ -554,22 +554,22 @@ "title": "Forgot your password?", "labels": { "login": "Login or email", - "description": "We will send you an email with instructions on how to reset your password.", - "success": "Email with instructions has been sent to you.", - "fail": "Sorry, we could't reset password for this user.", + "description": "We will send you an email with instructions on how to reset your password", + "success": "Email with instructions has been sent to you", + "fail": "Sorry, we could't reset password for this user", "back": "Back", "submit": "Submit", "time-limit": "You can try again in {{countdown}}", - "time-limit-end": "You can try again now." + "time-limit-end": "You can try again now" }, "placeholders": { - "login-or-email": "Please enter login or email" + "login-or-email": "Enter login or email" } }, "access-denied": { "title": "Access denied", "labels": { - "message": "You don't have access to this resource. Please contact your administrator.", + "message": "You don't have access to this resource. Please contact your administrator", "button": "Login with another credentials" } }, @@ -577,7 +577,7 @@ "title": "Password reset", "labels": { "success": "Your password was reset", - "fail": "Sorry, we couldn't reset password for this user.", + "fail": "Sorry, we couldn't reset password for this user", "submit": "Reset", "log-in": "Sign in" } @@ -589,17 +589,17 @@ "license-activation": "License activation", "labels": { "info-running-no-license": "This instance of Virto Commerce is running on", - "info-open-source-license": "Open Source Community license.", + "info-open-source-license": "Open Source Community license", "info0": "Acquiring or renewing the license:", "info1": "Submit the ", - "info2": "We'll process your request and should contact you soon.", - "info3": "Once you receive the \"Activation Code\" and / or the License file, fill one of the activation fields below.", - "info4": "The system will display you the new license information. Review it and click \"Activate\" to confirm.", + "info2": "We'll process your request and should contact you soon", + "info3": "Once you receive the \"Activation Code\" and / or the License file, fill one of the activation fields below", + "info4": "The system will display the new license information. Review it and click \"Activate\" to confirm", "customer": "License issued to", "type": "Type", "expiration": "Expiration", "email": "Customer email", - "request-license": "License request form.", + "request-license": "License request form", "code-descr": "Enter the received license \"Activation Code\" and hit [Enter]. This is the quickest license activation method. (Requires internet connection)", "file-descr": "Optionally, provide the received License file. (Off-line activation)", "upload-progress": "Upload progress", @@ -625,7 +625,7 @@ }, "validations": { "repeat-password": "Entered passwords do not match!", - "password-too-weak": "Entered password does not comply one or more password security policies:" + "password-too-weak": "Entered password does not comply with one or more password security policies:" } }, "security-main": { @@ -674,11 +674,11 @@ "title": "User profile", "labels": { "language": "Language", - "language-description": "Display language. Clear to use browser or fallback language.", + "language-description": "Display language. Clear to use browser or fallback language", "regional-format": "Regional format", - "regional-format-description": "Regional format of numbers, currency, date and time. Clear to use browser or fallback regional format.", + "regional-format-description": "Regional format of numbers, currency, date and time. Clear to use browser or fallback regional format", "time-zone": "Time zone", - "time-zone-description": "Current user time zone in IANA (tz database) format. Select the nearest city in your time zone. Clear to use browser or fallback time zone.", + "time-zone-description": "Current user time zone in IANA (tz database) format. Select the nearest city in your time zone. Clear to use browser or fallback time zone", "use-time-ago": "Use time ago format if it is possible", "full-date-threshold-group": "Use full date format for dates earlier than...", "full-date-threshold-description": "Numeric value of time units", @@ -721,8 +721,8 @@ "licensing": { "license-absent": "Community license", "license-present": "{{type}} license, expires on {{expirationDate | amParse | date}}", - "community": "Running community edition, click to request a commercial license.", - "expired": "You license has expired on {{expirationDate | amParse | date}}, please renew.", + "community": "Running community edition, click to request a commercial license", + "expired": "Your license has expired on {{expirationDate | amParse | date}}, please renew", "purchase": "Purchase", "renew": "Renew", "expiration-date": "Expiration Date" @@ -736,7 +736,7 @@ "labels": { "module-auto-installation": "Modules auto installation", "loading": "Retrieving modules information...", - "finished": "Installation finished. Click Restart to continue.", + "finished": "Installation finished. Click Restart to continue", "start": "Start", "end": "End" } @@ -754,8 +754,8 @@ "title": "Settings" }, "accountApi": { - "title": "Api key", - "blade-subtitle": "Api key" + "title": "API key", + "blade-subtitle": "API key" }, "accountRoles": { "title": "Roles", @@ -769,7 +769,7 @@ }, "properties-save": { "title": "Save changes", - "message": "The properties have been modified. Do you want to confirm changes?" + "message": "The properties have been modified. Do you want to save changes?" }, "notification-template-save": { "title": "Save changes", @@ -777,19 +777,19 @@ }, "role-save": { "title": "Save changes", - "message": "The Role has been modified. Do you want to save changes?" + "message": "The role has been modified. Do you want to save changes?" }, "roles-delete": { "title": "Delete confirmation", - "message": "Are you sure you want to delete selected Roles?" + "message": "Are you sure you want to delete selected roles?" }, "account-save": { "title": "Save changes", - "message": "The Account has been modified. Do you want to save changes?" + "message": "The account has been modified. Do you want to save changes?" }, "account-delete": { "title": "Delete confirmation", - "message": "Are you sure you want to delete selected Accounts?" + "message": "Are you sure you want to delete selected accounts?" }, "oauthapps-save": { "title": "Save changes", @@ -801,23 +801,23 @@ }, "dynamic-property-delete": { "title": "Delete confirmation", - "message": "Are you sure you want to delete this Dynamic Property?" + "message": "Are you sure you want to delete this dynamic Property?" }, "settings-value-delete": { "title": "Delete confirmation", - "message": "Are you sure you want to delete selected Values?" + "message": "Are you sure you want to delete selected values?" }, "settings-save": { "title": "Save changes", - "message": "The settings has been modified. Do you want to confirm changes?" + "message": "The settings has been modified. Do you want to save changes?" }, "settings-delete": { "title": "Delete confirmation", "message": "The settings has been modified. Do you want to save changes?" }, "localizable-setting-value-delete": { - "title": "Confirm Delete", - "message": "Are you sure you want to delete the selected dictionary values?" + "title": "Delete confirmation", + "message": "Are you sure you want to delete selected dictionary values?" }, "localizable-setting-value-save": { "title": "Save changes", @@ -825,11 +825,11 @@ }, "email-sending-success": { "title": "Sending success", - "message": "Email was sent successfully!" + "message": "Email has been sent successfully!" }, "email-send-error": { "title": "Error in sending", - "message": "Email wasn't send! Error: {{error}}" + "message": "Email hasn't been sent! Error: {{error}}" }, "dictionary-items-delete": { "title": "Delete confirmation", @@ -850,7 +850,7 @@ }, "module-delete": { "title": "Delete confirmation", - "message": "Are you sure you want to uninstall this Module?" + "message": "Are you sure you want to uninstall this module?" }, "api-key-delete": { "title": "Delete confirmation", @@ -858,29 +858,29 @@ }, "app-restart": { "title": "Application shutdown", - "message": "To apply changes, it is need to restart the application. Depending on hosting service, the application will be restarted automatically or you should do it manually. Are you sure you want to shutdown the application now?" + "message": "Restart the application to apply changes. Depending on your hosting service, the application may restart automatically or you may need to do it manually. Are you sure you want to close the application now?" }, "error-details": { - "title": "The error details" + "title": "Error details" }, "impersonate-no-url": { "title": "Login on behalf", - "message": "Store URL was not added in the store setting. Please contact administrator." + "message": "Store URL was not added to the store setting. Please contact administrator" }, "asset-upload-error": { - "title": "Error in upload", - "message": "Need to choose a folder! Can't upload a file to the root!" + "title": "Upload error", + "message": "Choose a folder! Can't upload a file to the root!" }, "run-import": { "title": "Import confirmation", "message": "Are you sure you want to import sample data?" }, "create-folder": { - "title": "A folder name must conform to the following naming rules:\n Folder name must be from 3 through 63 characters long.\n Folder name must start with a letter or number, and can contain only letters, numbers, and the dash (-) character.\n Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted.\n All letters in a folder name must be lowercase." + "title": "A folder name must conform to the following naming rules:\n Folder name must be between 3 and 63 characters long.\n Folder name must start with a letter or number, and can only contain letters, numbers, and hyphen (-).\n Each hyphen (-) must be immediately preceded and followed by a letter or number; consecutive hyphens are not permitted.\n All letters in a folder name must be lower case" }, "storefront-cache-reset-successfully": { "title": "Cache reset", - "message": "Storefront cache has been reset successfully." + "message": "Frontend Application cache has been reset successfully" } }, "commands": { @@ -889,32 +889,32 @@ } }, "permissions": { - "platform:asset:access": "Allows to see Assets in the main menu", - "platform:asset:delete": "Allows to delete platform assets", - "platform:asset:update": "Allows to change platform assets", - "platform:asset:create": "Allows to upload new platform assets", - "platform:asset:read": "Allows to download platform assets", - "platform:module:read": "Allows to view module details", - "platform:module:access": "Allows to see Modules in the main menu", - "platform:module:manage": "Allows to install/uninstall modules", - "platform:setting:read": "Allows to read platform settings", - "platform:setting:access": "Allows to see Settings in the main menu", - "platform:setting:update": "Allows to change platform settings", - "platform:dynamic_properties:read": "Allows to view dynamic property details", - "platform:dynamic_properties:create": "Allows to create new dynamic properties", - "platform:dynamic_properties:access": "Allows to see Dynamic Properties in the main menu", - "platform:dynamic_properties:update": "Allows to change dynamic properties", - "platform:dynamic_properties:delete": "Allows to delete dynamic properties", - "platform:security:read": "Allows to view user and roles details", - "platform:security:create": "Allows to create a new users and roles", - "platform:security:access": "Allows to see Security in the main menu", - "platform:security:update": "Allows to change an users and roles", - "platform:security:delete": "Allows to delete an users and roles", - "platform:security:verifyEmail": "Allows to change verified state and send verification email", - "background_jobs:manage": "Allows to access to the Hangfire console", - "platform:exportImport:access": "Allows to see Export/Import in the main menu", - "platform:import": "Allows to import platform and modules data", - "platform:export": "Allows to export platform and modules data", + "platform:asset:access": "View assets in the main menu", + "platform:asset:delete": "Delete Platform assets", + "platform:asset:update": "Change Platform assets", + "platform:asset:create": "Upload new Platform assets", + "platform:asset:read": "Download Platform assets", + "platform:module:read": "View module details", + "platform:module:access": "View modules in the main menu", + "platform:module:manage": "Install/uninstall modules", + "platform:setting:read": "Read Platform settings", + "platform:setting:access": "View settings in the main menu", + "platform:setting:update": "Change Platform settings", + "platform:dynamic_properties:read": "View dynamic property details", + "platform:dynamic_properties:create": "Create new dynamic properties", + "platform:dynamic_properties:access": "View dynamic properties in the main menu", + "platform:dynamic_properties:update": "Change dynamic properties", + "platform:dynamic_properties:delete": "Delete dynamic properties", + "platform:security:read": "View user and roles details", + "platform:security:create": "Create new users and roles", + "platform:security:access": "View security in the main menu", + "platform:security:update": "Change users and roles", + "platform:security:delete": "Delete users and roles", + "platform:security:verifyEmail": "Change verified state and send verification email", + "background_jobs:manage": "Access to the Hangfire console", + "platform:exportImport:access": "View Export/Import in the main menu", + "platform:import": "Import Platform and modules data", + "platform:export": "Export Platform and modules data", "platform:security:loginOnBehalf": "Login on behalf of a customer" }, "settings": { @@ -933,19 +933,19 @@ }, "ModulesAutoInstallState": { "title": "Modules autoinstall state", - "description": "The current state of autoinstall modules wizard" + "description": "Current state of autoinstall modules wizard" }, "SetupStep": { "title": "Current setup step", - "description": "The current step in the setup wizard" + "description": "Current step in the setup wizard" }, "SampleDataState": { "title": "Sample data state", - "description": "The current state of sample data wizard" + "description": "Current state of sample data wizard" }, "SendDiagnosticData": { "title": "Send diagnostic data", - "description": "Send VC Platform diagnostic data to VC. Can switch off only if a paid license acquired." + "description": "Send VC Platform diagnostic data to VC. Can only be disabled with purchase of a licence" }, "Platform": { "Security": { @@ -966,27 +966,27 @@ "description": "Default value for account status when creating a new account during external sign in" }, "EnablePruneExpiredTokensJob": { - "description": "Enables prune expired and invalid tokens/authorizations", + "description": "Enables the pruning of expired and invalid tokens/authorizations", "title": "Prune expired tokens" }, "CronPruneExpiredTokensJob": { - "description": "Cron expression for prune expired and invalid tokens/authorizations job", + "description": "Cron expression for the job to prune expired and invalid tokens/authorizations", "title": "Cron for the tokens prune job" }, "FileExtensionsBlackList": { - "description": "Files extensions prohibited to upload by the platform (additionally to 'FileExtensionsBlackList' in appsettings.json)", + "description": "File extensions prohibited from upload by the Platform (additionally to 'FileExtensionsBlackList' in appsettings.json)", "title": "Black list" }, "FileExtensionsWhiteList": { - "description": "Files extensions allowed to upload by the platform (additionally to 'FileExtensionsWhiteList' in appsettings.json)", + "description": "File extensions permitted for upload by the Platform (additionally to 'FileExtensionsWhiteList' in appsettings.json)", "title": "White list" } }, "UI": { "MainMenu": { "State": { - "description": "Persisted state of main menu", - "title": "Persisted state of main menu" + "description": "Persisted state of the main menu", + "title": "Persisted state of the main menu" } }, "Language": { @@ -1002,11 +1002,11 @@ "title": "Time zone" }, "UseTimeAgo": { - "description": "When set to true (by default), system will display date in format like 'a few seconds ago' when possible", - "title": "Use time ago format when is possible" + "description": "When set to true (the default), the system displays the date in 'a few seconds ago' format whenever possible", + "title": "Use time ago format when possible" }, "FullDateThreshold": { - "description": "Number of units after time ago format will be switched to full date format", + "description": "The time-ago format will switch to a full date format after a certain number of time units", "title": "Full date threshold" }, "FullDateThresholdUnit": { @@ -1024,12 +1024,12 @@ }, "Cache": { "Enabled": { - "description": "Using this setting, you can turn on and off cache globally for the entire platform application", + "description": "This setting allows you to globally enable and disable caching for the entire Platform application", "title": "Enable or disable cache globally" }, "AbsoulteExpiration": { - "description": "Specifies the maximum time that the cached data to be stored in the cache. Format: [-][d.]hh:mm:ss[.fffffff]", - "title": "The global lifetime of objects in the cache" + "description": "Specifies the maximum time the cached data is stored in the cache. Format: [-][d.]hh:mm:ss[.fffffff]", + "title": "Global lifetime of objects in cache" } } }, diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Common.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Common.json new file mode 100644 index 0000000000..8364db962d --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Common.json @@ -0,0 +1,188 @@ +{ + "platform": { + "commands": { + "add": "Añadir", + "activate": "Activar", + "assign": "Asignar", + "cancel": "Cancelar", + "clear": "Limpiar", + "clear-all": "Limpiar todo", + "clone": "Clonar", + "close": "Cerrar", + "confirm": "Confirmar", + "copy-link": "Copiar enlace", + "copy": "Copiar", + "create": "Crear", + "cut": "Cortar", + "delete": "Eliminar", + "add-all": "Añadir todo", + "remove-all": "Eliminar todo", + "download": "Descargar", + "edit": "Editar", + "export": "Exportar", + "generate": "Generar", + "import": "Importar", + "import-sample-data": "Importar datos de muestra", + "install": "Instalar", + "manage": "Gestionar", + "more": "Más", + "no": "No", + "new-folder": "Nueva carpeta", + "new-license": "Renovar licencia", + "ok": "Aceptar", + "paste": "Pegar", + "pick-selected": "Seleccionar elegidos", + "preview": "Vista previa", + "open-browser": "Abrir en el navegador", + "redo": "Rehacer", + "refresh": "Actualizar", + "remove": "Eliminar", + "reset": "Restablecer", + "restart": "Reiniciar", + "save": "Guardar", + "send": "Enviar", + "select-all": "Seleccionar todo", + "set-to-default": "Establecer por defecto", + "start-export": "Iniciar exportación", + "settings": "Configuración", + "sign-out": "Cerrar sesión", + "undo": "Deshacer", + "uninstall": "Desinstalar", + "unselect-all": "Deseleccionar todo", + "update": "Actualizar", + "upload": "Subir", + "yes": "Sí", + "add-new-property": "Añadir nueva propiedad", + "manage-type-properties": "Tipos de propiedades", + "manage-profile": "Gestionar perfil", + "minimize": "Minimizar", + "maximize": "Maximizar", + "stop-sending": "Detener envío", + "set-active": "Establecer como activo", + "reject-user": "Rechazar usuario", + "change-password": "Cambiar contraseña", + "unlock-account": "Desbloquear cuenta", + "lock-account": "Bloquear cuenta", + "today": "Hoy", + "time": "Hora", + "now": "Ahora", + "date": "Fecha", + "see-details": "Ver detalles", + "dismiss": "Descartar", + "hide-empty-property-values": "Ocultar valores vacíos", + "show-empty-property-values": "Mostrar valores vacíos", + "titles": { + "refresh": "Actualizar", + "new-folder": "Nueva carpeta", + "upload": "Subir" + } + }, + "list": { + "no-data": "Sin datos", + "count": "Cantidad", + "loading": "Cargando...", + "item-not-found": "Error: No encontrado" + }, + "placeholders": { + "n-a": "N/A", + "no-file": "Elegir archivo", + "search-keyword": "Buscar palabra clave...", + "select-value": "Seleccionar valor", + "select-values": "Seleccionar valores" + }, + "dialogs": { + "delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar las entradas seleccionadas?" + } + }, + "properties": { + "short-text": { + "title": "Texto corto", + "description": "Valores de texto de menos de 1024 caracteres" + }, + "long-text": { + "title": "Texto largo", + "description": "Texto ilimitado sin restricción de tamaño" + }, + "integer": { + "title": "Entero", + "description": "Número entero" + }, + "decimal": { + "title": "Número decimal", + "description": "Número decimal con una precisión de 18 y una escala de 4" + }, + "date-time": { + "title": "Fecha y hora", + "description": "Seleccionar fecha" + }, + "boolean": { + "title": "Booleano", + "description": "Tipo interruptor" + }, + "html": { + "title": "HTML", + "description": "Marcado HTML" + }, + "undefined": { + "title": "Indefinido" + }, + "image": { + "title": "Imagen", + "description": "Tipo de imagen" + } + }, + "genericValueInput": { + "placeholders": { + "short-text": "Introducir texto corto", + "secure-string": "Introducir texto secreto", + "email": "Introducir correo electrónico", + "url": "Introducir URL", + "long-text": "Introducir texto largo", + "integer": "Introducir número entero", + "number": "Introducir número decimal", + "date-time": "Elegir fecha", + "short-text-multivalue": "Añadir valor", + "integer-multivalue": "Añadir entero", + "number-multivalue": "Añadir decimal", + "short-text-dictionary": "Seleccionar valor", + "short-text-dictionary-multivalue": "Seleccionar valor", + "short-text-multilang": "Introducir valor", + "long-text-multilang": "Introducir valor", + "short-text-multivalue-multilang": "Añadir valor", + "short-text-dictionary-multilang": "Seleccionar valor", + "short-text-dictionary-multivalue-multilang": "Seleccionar valor", + "long-text-dictionary-multivalue-multilang": "Seleccionar valor" + } + }, + "short-text-input": { + "placeholder": "Introducir valor", + "required": "Este campo es obligatorio", + "maxLength": "Este campo no debe contener más de {{number}} caracteres" + }, + "validators": { + "uriWithoutQuery": { + "error": "Formato de URI no válido. Asegúrese de que la URI no tenga parámetros de consulta" + } + }, + "errors": { + "generic-error": "Error", + "400": "Solicitud incorrecta", + "401": "No autorizado", + "403": "Prohibido", + "404": "No encontrado", + "405": "Método no permitido", + "406": "No aceptable", + "407": "Autenticación de proxy requerida", + "408": "Tiempo de espera de la solicitud", + "409": "Conflicto", + "429": "Demasiadas solicitudes", + "500": "Error interno del servidor", + "501": "No implementado", + "502": "Puerta de enlace incorrecta", + "503": "Servicio no disponible", + "504": "Tiempo de espera de la puerta de enlace" + } + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Countries.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Countries.json new file mode 100644 index 0000000000..294b2d5457 --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Countries.json @@ -0,0 +1,270 @@ +{ + "platform": { + "countries": { + "AFG": "Afganistán", + "EGY": "Egipto", + "ALA": "Åland", + "ALB": "Albania", + "DZA": "Argelia", + "ASM": "Samoa Americana", + "VIR": "Islas Vírgenes de los Estados Unidos", + "AND": "Andorra", + "AGO": "Angola", + "AIA": "Anguila", + "ATA": "Antártida (estatus especial por el Tratado Antártico)", + "ATG": "Antigua y Barbuda", + "GNQ": "Guinea Ecuatorial", + "ARG": "Argentina", + "ARM": "Armenia", + "ABW": "Aruba", + "AZE": "Azerbaiyán", + "ETH": "Etiopía", + "AUS": "Australia", + "BHS": "Bahamas", + "BHR": "Baréin", + "BGD": "Bangladesh", + "BRB": "Barbados", + "BLR": "Bielorrusia", + "BEL": "Bélgica", + "BLZ": "Belice", + "BEN": "Benín", + "BMU": "Bermudas", + "BTN": "Bután", + "BOL": "Bolivia", + "BES": "Bonaire, San Eustaquio y Saba", + "BIH": "Bosnia y Herzegovina", + "BWA": "Botsuana", + "BVT": "Isla Bouvet", + "BRA": "Brasil", + "VGB": "Islas Vírgenes Británicas", + "IOT": "Territorio Británico del Océano Índico", + "BRN": "Brunéi", + "BGR": "Bulgaria", + "BFA": "Burkina Faso", + "BDI": "Burundi", + "CHL": "Chile", + "CHN": "República Popular China", + "COK": "Islas Cook", + "CRI": "Costa Rica", + "CUW": "Curazao", + "DNK": "Dinamarca", + "DEU": "Alemania", + "DMA": "Dominica", + "DOM": "República Dominicana", + "DJI": "Yibuti", + "ECU": "Ecuador", + "CIV": "Costa de Marfil", + "SLV": "El Salvador", + "ERI": "Eritrea", + "EST": "Estonia", + "SWZ": "Esuatini", + "FLK": "Islas Malvinas", + "FRO": "Islas Feroe", + "FJI": "Fiyi", + "FIN": "Finlandia", + "FRA": "Francia", + "GUF": "Guayana Francesa", + "PYF": "Polinesia Francesa", + "ATF": "Tierras Australes y Antárticas Francesas", + "GAB": "Gabón", + "GMB": "Gambia", + "GEO": "Georgia", + "GHA": "Ghana", + "GIB": "Gibraltar", + "GRD": "Granada", + "GRC": "Grecia", + "GRL": "Groenlandia", + "GLP": "Guadalupe", + "GUM": "Guam", + "GTM": "Guatemala", + "GGY": "Guernsey", + "GIN": "Guinea", + "GNB": "Guinea-Bisáu", + "GUY": "Guyana", + "HTI": "Haití", + "HMD": "Islas Heard y McDonald", + "HND": "Honduras", + "HKG": "Hong Kong", + "IND": "India", + "IDN": "Indonesia", + "IMN": "Isla de Man", + "IRQ": "Irak", + "IRN": "Irán", + "IRL": "Irlanda", + "ISL": "Islandia", + "ISR": "Israel", + "ITA": "Italia", + "JAM": "Jamaica", + "JPN": "Japón", + "YEM": "Yemen", + "JEY": "Jersey", + "JOR": "Jordania", + "CYM": "Islas Caimán", + "KHM": "Camboya", + "CMR": "Camerún", + "CAN": "Canadá", + "CPV": "Cabo Verde", + "KAZ": "Kazajistán", + "QAT": "Catar", + "KEN": "Kenia", + "KGZ": "Kirguistán", + "KIR": "Kiribati", + "CCK": "Islas Cocos", + "COL": "Colombia", + "COM": "Comoras", + "COD": "República Democrática del Congo", + "COG": "República del Congo", + "PRK": "Corea del Norte", + "KOR": "Corea del Sur", + "HRV": "Croacia", + "CUB": "Cuba", + "KWT": "Kuwait", + "LAO": "Laos", + "LSO": "Lesoto", + "LVA": "Letonia", + "LBN": "Líbano", + "LBR": "Liberia", + "LBY": "Libia", + "LIE": "Liechtenstein", + "LTU": "Lituania", + "LUX": "Luxemburgo", + "MAC": "Macao", + "MDG": "Madagascar", + "MWI": "Malaui", + "MYS": "Malasia", + "MDV": "Maldivas", + "MLI": "Malí", + "MLT": "Malta", + "MAR": "Marruecos", + "MHL": "Islas Marshall", + "MTQ": "Martinica", + "MRT": "Mauritania", + "MUS": "Mauricio", + "MYT": "Mayotte", + "MEX": "México", + "FSM": "Micronesia", + "MDA": "Moldavia", + "MCO": "Mónaco", + "MNG": "Mongolia", + "MNE": "Montenegro", + "MSR": "Montserrat", + "MOZ": "Mozambique", + "MMR": "Myanmar", + "NAM": "Namibia", + "NRU": "Nauru", + "NPL": "Nepal", + "NCL": "Nueva Caledonia", + "NZL": "Nueva Zelanda", + "NIC": "Nicaragua", + "NLD": "Países Bajos", + "NER": "Níger", + "NGA": "Nigeria", + "NIU": "Niue", + "MNP": "Islas Marianas del Norte", + "MKD": "Macedonia del Norte", + "NFK": "Isla Norfolk", + "NOR": "Noruega", + "OMN": "Omán", + "AUT": "Austria", + "TLS": "Timor Oriental", + "PAK": "Pakistán", + "PSE": "Palestina", + "PLW": "Palaos", + "PAN": "Panamá", + "PNG": "Papúa Nueva Guinea", + "PRY": "Paraguay", + "PER": "Perú", + "PHL": "Filipinas", + "PCN": "Islas Pitcairn", + "POL": "Polonia", + "PRT": "Portugal", + "PRI": "Puerto Rico", + "REU": "Reunión", + "RWA": "Ruanda", + "ROU": "Rumania", + "RUS": "Rusia", + "SLB": "Islas Salomón", + "BLM": "San Bartolomé", + "MAF": "San Martín (parte francesa)", + "ZMB": "Zambia", + "WSM": "Samoa", + "SMR": "San Marino", + "STP": "Santo Tomé y Príncipe", + "SAU": "Arabia Saudita", + "SWE": "Suecia", + "CHE": "Suiza", + "SEN": "Senegal", + "SRB": "Serbia", + "SYC": "Seychelles", + "SLE": "Sierra Leona", + "ZWE": "Zimbabue", + "SGP": "Singapur", + "SXM": "San Martín (parte neerlandesa)", + "SVK": "Eslovaquia", + "SVN": "Eslovenia", + "SOM": "Somalia", + "ESP": "España", + "LKA": "Sri Lanka", + "SHN": "Santa Elena, Ascensión y Tristán de Acuña", + "KNA": "San Cristóbal y Nieves", + "LCA": "Santa Lucía", + "SPM": "San Pedro y Miquelón", + "VCT": "San Vicente y las Granadinas", + "ZAF": "Sudáfrica", + "SDN": "Sudán", + "SGS": "Islas Georgias del Sur y Sandwich del Sur", + "SSD": "Sudán del Sur", + "SUR": "Surinam", + "SJM": "Svalbard y Jan Mayen", + "SYR": "Siria", + "TJK": "Tayikistán", + "TWN": "Taiwán", + "TZA": "Tanzania", + "THA": "Tailandia", + "TGO": "Togo", + "TKL": "Tokelau", + "TON": "Tonga", + "TTO": "Trinidad y Tobago", + "TCD": "Chad", + "CZE": "República Checa", + "TUN": "Túnez", + "TUR": "Turquía", + "TKM": "Turkmenistán", + "TCA": "Islas Turcas y Caicos", + "TUV": "Tuvalu", + "UGA": "Uganda", + "UKR": "Ucrania", + "HUN": "Hungría", + "UMI": "Islas Ultramarinas Menores de Estados Unidos", + "URY": "Uruguay", + "UZB": "Uzbekistán", + "VUT": "Vanuatu", + "VAT": "Ciudad del Vaticano", + "VEN": "Venezuela", + "ARE": "Emiratos Árabes Unidos", + "USA": "Estados Unidos", + "GBR": "Reino Unido", + "VNM": "Vietnam", + "WLF": "Wallis y Futuna", + "CXR": "Isla de Navidad", + "ESH": "Sahara Occidental", + "CAF": "República Centroafricana", + "CYP": "Chipre" + }, + "CAN": { + "AB": "Alberta", + "BC": "Columbia Británica", + "MB": "Manitoba", + "NB": "Nuevo Brunswick", + "NL": "Terranova y Labrador", + "NT": "Territorios del Noroeste", + "NS": "Nueva Escocia", + "NU": "Nunavut", + "ON": "Ontario", + "PE": "Isla del Príncipe Eduardo", + "QC": "Quebec", + "SK": "Saskatchewan", + "YT": "Yukón" + } + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Platform.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Platform.json new file mode 100644 index 0000000000..e2a71eeb8a --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/es.VirtoCommerce.Platform.json @@ -0,0 +1,1044 @@ +{ + "platform": { + "menu": { + "home": "Inicio", + "browse": "Explorar", + "configuration": "Configuración", + "notifications": "Notificaciones", + "more": "Más", + "settings": "Ajustes", + "dynamic-properties": "Propiedades dinámicas", + "security": "Seguridad", + "modules": "Módulos", + "export-import": "Exportar e Importar", + "user-profile": "Perfil de usuario", + "assets": "Activos", + "toggle-favorites": "Shift + Espacio para alternar favoritos", + "help": "Ayuda" + }, + "navigation": { + "back": "Atrás" + }, + "blades": { + "system-info": { + "title": "Información de la plataforma", + "labels": { + "clr-version": "Versión CLR", + "environment-name": "Modo de entorno", + "is-64-bit-os": "Sistema operativo de 64 bits", + "is-64-bit-process": "Proceso de 64 bits", + "database-provider": "Proveedor de base de datos" + } + }, + "asset-list": { + "title": "Gestión de activos", + "bread-crumb-top": "Todos los activos", + "labels": { + "picture": "Imagen", + "name": "Nombre", + "size": "Tamaño", + "modified": "Modificado", + "actions": "Acciones", + "group": "Grupo", + "language": "Idioma" + } + }, + "asset-upload": { + "title": "Subida de activos", + "labels": { + "select-files": "Seleccionar archivos", + "drag-note": "Arrastrar y soltar archivos aquí", + "progress": "Progreso", + "asset-uploaded": "Activo(s) subido(s)" + }, + "placeholders": { + "image-url": "Pegar URL del archivo aquí" + } + }, + "operation-list": { + "labels": { + "login": "Iniciar sesión", + "details": "Detalles", + "time": "Tiempo" + } + }, + "dynamicObject-list": { + "title": "Tipos de objetos dinámicos", + "subtitle": "Seleccionar tipo de objeto para gestionar propiedades dinámicas", + "labels": { + "no-objects": "Aún no hay objetos que soporten propiedades dinámicas" + } + }, + "dynamicProperty-detail": { + "title": "Gestionar propiedad", + "subtitle": "Gestionar propiedad", + "subtitle-new": "Nueva propiedad", + "labels": { + "property-name": "Nombre de la propiedad", + "required": "Obligatorio", + "multivalue": "Multivalor", + "multilingual": "Multilingüe", + "dictionary": "Diccionario", + "description": "Descripción", + "display-order": "Orden de visualización", + "display-name": "Nombre para mostrar", + "value-type": "Tipo de valor", + "dictionary-values": "Valores del diccionario", + "manage-dictionary": "Gestionar diccionario" + }, + "placeholders": { + "description": "Introducir descripción de la propiedad", + "display-name": "Introducir nombre para mostrar...", + "display-order": "Orden de visualización" + }, + "validations": { + "multivalue": "La propiedad multivalor solo puede tener tipos de valor Texto corto, Entero o Decimal", + "multilingual": "Solo el texto o HTML pueden ser multilingües", + "dictionary": "Solo se admiten diccionarios del tipo de valor Texto corto" + } + }, + "dynamicProperty-list": { + "subtitle": "Gestionar propiedades dinámicas", + "labels": { + "no-properties": "Aún no hay propiedades dinámicas" + } + }, + "notifications-menu": { + "subtitle": "Trabajando con el sistema de notificaciones" + }, + "property-dictionary": { + "title": "Valores del diccionario", + "subtitle": "Gestionar valores del diccionario", + "labels": { + "edit-value": "Editar valor", + "new-value": "Nuevo valor", + "dictionary-name": "Nombre de entrada del diccionario", + "localized-values": "Valores localizados", + "current-values": "Valores actuales", + "name": "Nombre", + "values": "Valores" + }, + "validations": { + "dictionary-name-required": "Obligatorio", + "dictionary-name": "Se encontró un nombre duplicado", + "localized-values-required": "Obligatorio", + "localized-values": "Se encontró un nombre duplicado", + "dictionary": "Solo se admiten diccionarios del tipo de valor Texto corto" + }, + "placeholders": { + "dictionary-name": "Introducir nombre", + "localized-values": "Introducir valor" + } + }, + "propertyValue-list": { + "title": "Propiedades dinámicas", + "subtitle": "", + "labels": { + "header": "Valores de propiedades", + "no-properties": "Esta entidad aún no tiene propiedades dinámicas. Haga clic en 'Tipos de propiedades' y cree algunas propiedades. Cierre y vuelva a abrir la vista de la entidad actual para cargar las propiedades dinámicas" + } + }, + "edit-array": { + "validations": { + "new-value-required": "Obligatorio" + }, + "labels": { + "new-value": "Nuevo valor", + "current-values": "Valores actuales", + "values": "Valores" + }, + "placeholders": { + "value": "Introducir valor" + } + }, + "export-main": { + "title": "Exportación de datos", + "labels": { + "platform-entries": "Entradas de la plataforma", + "choose-modules": "Elegir módulos para exportar", + "download-url": "URL de descarga", + "errors": "Errores", + "start": "Inicio", + "end": "Fin" + }, + "menu": { + "security": { + "title": "Seguridad", + "description": "Cuentas y roles" + }, + "binary": { + "title": "Binario", + "description": "Datos binarios" + }, + "settings": { + "title": "Ajustes", + "description": "Ajustes de la plataforma" + }, + "dynamic-props": { + "title": "Propiedades dinámicas", + "description": "Propiedades dinámicas de la plataforma" + } + } + }, + "import-main": { + "title": "Importación de datos", + "labels": { + "start-import": "Iniciar importación", + "select-file": "Seleccionar archivo .zip para importar. El archivo debe ser producido por la exportación de datos del Commerce Manager", + "drag-note": "Arrastrar y soltar archivo .zip para importar. El archivo debe ser producido por la exportación de datos del Commerce Manager", + "upload-failed": "Fallo en la subida", + "upload-progress": "Progreso de subida", + "import-progress": "Progreso de importación", + "import-finished": "Importación finalizada", + "import-data-information": "Información de datos de importación", + "author": "Autor", + "data-file-created": "Archivo de datos creado", + "created-platform-version": "Creado en la versión de la Plataforma", + "platform-entries": "Entradas de la plataforma", + "choose-modules": "Elegir módulos para importar", + "no-data": "Sin datos", + "errors": "Errores", + "start": "Inicio", + "end": "Fin" + }, + "menu": { + "security": { + "title": "Seguridad", + "description": "Cuentas y roles" + }, + "binary": { + "title": "Binario", + "description": "Datos binarios" + }, + "settings": { + "title": "Ajustes", + "description": "Ajustes de la plataforma" + }, + "dynamic-props": { + "title": "Propiedades dinámicas", + "description": "Propiedades dinámicas de la plataforma" + } + } + }, + "exportImport-main": { + "title": "Exportación e importación de datos", + "menu": { + "export": { + "title": "Exportar", + "description": "Los datos se guardarán en un archivo para poder importarlos más tarde" + }, + "import": { + "title": "Importar", + "description": "Importar datos desde un archivo exportado" + } + } + }, + "resolve-result": { + "title": "Vista previa del resultado", + "labels": { + "subject": "Asunto", + "body": "Cuerpo" + } + }, + "module-settings-detail": { + "title": "Ajustes del módulo" + }, + "module-wizard-progress-step": { + "title-install": "Instalación del módulo", + "title-update": "Actualización del módulo", + "title-uninstall": "Desinstalación del módulo", + "labels": { + "start": "Inicio", + "end": "Fin", + "progress-messages": "Mensajes de progreso", + "process-completed": "Proceso de instalación del módulo completado", + "restart-application": "Reiniciar la aplicación ahora o más tarde" + } + }, + "module-detail": { + "title": "Información del módulo", + "labels": { + "i-accept-the": "Acepto la", + "license-link": "licencia", + "license": "Licencia", + "agreement": "acuerdo", + "install-from-file": "Instalar / actualizar módulo desde archivo", + "select-module-file": "Subir un archivo de módulo (.zip) desde una fuente externa fuera del repositorio central de módulos", + "upload-progress": "Progreso de subida", + "module-info": "Información del módulo", + "title": "Título", + "official": "Módulo oficial de {{$owner}}", + "owners": "Desarrollado por {{$owner}}", + "author": "Autor", + "authors": "Autores", + "id": "ID", + "version": "Versión", + "project-information": "Información del proyecto", + "description": "Descripción", + "platform-version": "Versión de la plataforma", + "dependencies": "Dependencias", + "optional-dependencies": "Dependencias opcionales", + "tags": "Etiquetas", + "install-version": "Instalar versión", + "errors": "Errores" + } + }, + "modules-main": { + "title": "Módulos", + "labels": { + "updates": "Actualizaciones", + "available": "Disponibles", + "installed": "Instalados", + "withErrors": "Errores", + "advanced": "Avanzado" + } + }, + "modules-list": { + "subtitle": "Gestión de módulos", + "labels": { + "grouping": "Mostrar paquetes de módulos", + "ungrouped": "Otros", + "no-updates": "No se encontraron actualizaciones", + "no-modules-part1": "No hay nuevos módulos para instalar", + "no-installed-modules": "No se encontraron módulos instalados", + "icon": "Icono", + "up-to-date": "El módulo está actualizado", + "update-available": "Actualización disponible para este módulo", + "module": "Módulo", + "version": "Versión", + "author": "Autor", + "installed": "Módulos instalados", + "manual-install-warning": "¡Advertencia! Los módulos instalados manualmente no se iniciarán porque RefreshProbingFolderOnStart está configurado como falso" + } + }, + "history": { + "title": "Eventos del sistema", + "subtitle": "Historial de eventos", + "labels": { + "type": "Tipo", + "title": "Título", + "created": "Creado", + "description": "Descripción" + } + }, + "historyDetailDefault": { + "title": "Detalle del evento", + "subtitle": "Detalle del evento", + "labels": { + "start": "Inicio", + "end": "Fin", + "elapsed": "Transcurrido", + "errors": "Errores", + "stats": "Procesados {{ processedCount }} de {{ totalCount }} registros" + } + }, + "menuHeader": { + "labels": { + "history": "Historial", + "clear-recent": "Borrar todo lo reciente" + } + }, + "account-changePassword": { + "labels": { + "title": "Por favor, introduce una nueva contraseña", + "login": "Iniciar sesión", + "force-change-info": "Tu contraseña ha caducado. Debes cambiar la contraseña para continuar usando el gestor", + "current-password": "Contraseña actual", + "new-password": "Nueva contraseña", + "repeat-password": "Repetir nueva contraseña", + "cancel": "Cancelar", + "save": "Cambiar", + "fail": "Lo sentimos, no pudimos restablecer la contraseña para este usuario" + }, + "validations": { + "current-password": "Requerido", + "new-password": "¡La contraseña antigua y la nueva son iguales!", + "repeat-password": "¡Las nuevas contraseñas no coinciden!" + }, + "placeholders": { + "current-password": "Introduce la contraseña actual", + "new-password": "Introduce la nueva contraseña", + "repeat-password": "Repite la nueva contraseña" + } + }, + "account-resetPassword": { + "subtitle": "Cambiar contraseña de usuario", + "labels": { + "new-password": "Nueva contraseña", + "repeat-password": "Repetir contraseña", + "force-password-change": "Hacer que este usuario cambie su contraseña la próxima vez que inicie sesión" + }, + "validations": { + "repeat-password": "¡Las nuevas contraseñas no coinciden!", + "invalid-token": "El token de restablecimiento de contraseña no es válido o ha caducado", + "password-too-weak": "La nueva contraseña no cumple con una o más políticas de seguridad de contraseñas:", + "passwordTooShort": "Las contraseñas deben tener {{parameter}} o más caracteres", + "passwordRequiresUniqueChars": "Las contraseñas deben usar al menos {{parameter}} caracteres diferentes", + "passwordRequiresLower": "Las contraseñas deben tener al menos una minúscula ('a'-'z')", + "passwordRequiresUpper": "Las contraseñas deben tener al menos una mayúscula ('A'-'Z')", + "passwordRequiresDigit": "Las contraseñas deben tener al menos un dígito ('0'-'9')", + "passwordRequiresNonAlphanumeric": "Las contraseñas deben tener al menos un carácter no alfanumérico", + "recentPasswordUsed": "Has usado esta contraseña en el pasado. Elige otra" + }, + "placeholders": { + "new-password": "Introduce la nueva contraseña", + "repeat-password": "Repite la nueva contraseña" + } + }, + "account-detail": { + "title-new": "Nueva cuenta", + "labels": { + "user-information": "Información del usuario", + "is-administrator": "Es administrador", + "account-type": "Tipo de cuenta", + "login": "Nombre de usuario", + "account-state": "Estado de la cuenta", + "account-email": "Correo electrónico", + "locked-state": "Estado de bloqueo", + "status": "Estado", + "verified": "Verificado", + "resend-link": "Reenviar enlace", + "link-sent": "El enlace fue enviado", + "last-login-date": "Fecha del último inicio de sesión" + }, + "placeholders": { + "account-type": "Seleccionar ...", + "email": "Introduce el correo electrónico", + "user-name": "Introduce el nombre de usuario", + "status": "Seleccionar ..." + } + }, + "account-list": { + "title": "Usuarios", + "subtitle": "Servicio de seguridad", + "labels": { + "name": "Nombre", + "account-type": "Tipo de cuenta", + "login": "Nombre de usuario", + "state": "Estado", + "status": "Estado" + } + }, + "account-api": { + "labels": { + "api-key": "Clave API", + "is-active": "está activa" + }, + "placeholders": { + "api-key": "Introduce la clave API" + } + }, + "role-detail": { + "subtitle": "Detalles del rol", + "labels": { + "summary": "Resumen", + "name": "Nombre", + "description": "Descripción", + "assigned-permissions": "Permisos asignados", + "permission-name": "Nombre", + "assigned-scopes": "Ámbitos asignados", + "no-permissions-assigned": "No hay permisos asignados" + }, + "placeholders": { + "name": "Introduce el nombre", + "description": "Introduce la descripción" + } + }, + "account-roles": { + "subtitle": "Asignar roles", + "labels": { + "select-roles": "Selecciona roles para asignar", + "no-roles": "No hay roles para asignar" + } + }, + "account-roles-list": { + "title": "", + "labels": { + "assigned-roles": "Roles asignados", + "no-assigned": "No hay roles asignados" + } + }, + "permission-scopes": { + "subtitle": "Configurar ámbitos de permisos", + "labels": { + "select-bounded-scopes": "Seleccionar ámbitos limitados", + "selected": "Seleccionado", + "scope-name": "Nombre del ámbito y parámetros", + "no-scopes": "No hay ámbitos" + } + }, + "role-permissions": { + "subtitle": "Asignar permisos", + "labels": { + "select-permissions": "Selecciona permisos para asignar" + } + }, + "new-role-wizard": { + "title": "Nuevo rol", + "labels": { + "summary": "Resumen", + "name": "Nombre", + "description": "Descripción", + "assign-permissions": "Asignar permisos" + }, + "placeholders": { + "name": "Introduce el nombre", + "description": "Introduce la descripción" + } + }, + "role-list": { + "title": "Roles", + "subtitle": "Servicio de seguridad", + "labels": { + "name": "Nombre" + } + }, + "oauthapps": { + "labels": { + "clientId": "ID de cliente", + "displayName": "Nombre para mostrar", + "type": "Tipo", + "clientSecret": "Secreto del cliente", + "assigned-permissions": "Permisos asignados", + "redirectUris": "URIs de redirección", + "postLogoutRedirectUris": "URIs de redirección post-cierre de sesión" + }, + "placeholders": { + "clientId": "Introduce el ID de cliente", + "displayName": "Introduce el nombre para mostrar", + "type": "Introduce el tipo", + "clientSecret": "Introduce el secreto del cliente" + } + }, + "oauthapps-list": { + "title": "Aplicaciones OAuth", + "subtitle": "Servicio de seguridad" + }, + "oauthapps-detail": { + "title": "Editar aplicación OAuth", + "title-new": "Crear aplicación OAuth", + "subtitle": "Servicio de seguridad", + "labels": { + "clientSecret-warning": "¡Advertencia! Debes copiar el secreto ahora. Se ocultará después de cerrar el panel", + "urls": "URLs" + }, + "blades": { + "edit-redirectUris": { + "title": "URIs de redirección", + "subtitle": "Gestionar URIs de redirección" + }, + "edit-postLogoutRedirectUris": { + "title": "URIs de redirección post-cierre de sesión", + "subtitle": "Gestionar URIs de redirección post-cierre de sesión" + } + } + }, + "login": { + "labels": { + "sign-in": "Iniciar sesión en el Gestor de {{title}}", + "login": "Usuario", + "password": "Contraseña", + "remember-me": "Recordarme", + "external-sign-in": "Iniciar sesión con {{displayName}}", + "forgot-password": "¿Olvidaste tu contraseña?", + "log-in": "Iniciar sesión", + "log-in-placeholder": "Introduce tu correo electrónico o nombre de usuario", + "password-placeholder": "Introduce tu contraseña", + "azure-log-in-label": "Iniciar sesión en el sitio de administración a través de Azure", + "password-log-in-type": "Usuario del sistema", + "or": "o", + "signing-in": "Iniciando sesión..." + } + }, + "forgotpassword": { + "title": "¿Olvidaste tu contraseña?", + "labels": { + "login": "Usuario o correo electrónico", + "description": "Te enviaremos un correo electrónico con instrucciones para restablecer tu contraseña", + "success": "Se te ha enviado un correo electrónico con instrucciones", + "fail": "Lo sentimos, no pudimos restablecer la contraseña para este usuario", + "back": "Volver", + "submit": "Enviar", + "time-limit": "Puedes intentarlo de nuevo en {{countdown}}", + "time-limit-end": "Puedes intentarlo de nuevo ahora" + }, + "placeholders": { + "login-or-email": "Introduce usuario o correo electrónico" + } + }, + "access-denied": { + "title": "Acceso denegado", + "labels": { + "message": "No tienes acceso a este recurso. Por favor, contacta con tu administrador", + "button": "Iniciar sesión con otras credenciales" + } + }, + "resetpassword": { + "title": "Restablecimiento de contraseña", + "labels": { + "success": "Tu contraseña ha sido restablecida", + "fail": "Lo sentimos, no pudimos restablecer la contraseña para este usuario", + "submit": "Restablecer", + "log-in": "Iniciar sesión" + } + }, + "license": { + "title": "Licencia actual", + "title-new": "Activación de nueva licencia", + "license-info": "Información de licencia", + "license-activation": "Activación de licencia", + "labels": { + "info-running-no-license": "Esta instancia de Virto Commerce está funcionando con", + "info-open-source-license": "licencia Comunitaria de Código Abierto", + "info0": "Adquirir o renovar la licencia:", + "info1": "Envía el ", + "info2": "Procesaremos tu solicitud y nos pondremos en contacto contigo pronto", + "info3": "Una vez que recibas el \"Código de Activación\" y/o el archivo de Licencia, completa uno de los campos de activación a continuación", + "info4": "El sistema mostrará la nueva información de licencia. Revísala y haz clic en \"Activar\" para confirmar", + "customer": "Licencia emitida para", + "type": "Tipo", + "expiration": "Vencimiento", + "email": "Correo electrónico del cliente", + "request-license": "Formulario de solicitud de licencia", + "code-descr": "Introduce el \"Código de Activación\" de licencia recibido y presiona [Enter]. Este es el método de activación de licencia más rápido. (Requiere conexión a internet)", + "file-descr": "Opcionalmente, proporciona el archivo de Licencia recibido. (Activación sin conexión)", + "upload-progress": "Progreso de carga", + "errors": "Error de activación" + }, + "placeholders": { + "code": "Introduce el código de activación" + } + }, + "new-account-wizard": { + "labels": { + "login": "Usuario", + "email": "Correo electrónico", + "password": "Contraseña", + "repeat-password": "Repetir contraseña", + "assign-roles": "Asignar roles" + }, + "placeholders": { + "email": "Introduce el correo electrónico", + "login": "Introduce el usuario", + "password": "Introduce la nueva contraseña", + "repeat-password": "Repite la nueva contraseña" + }, + "validations": { + "repeat-password": "Las contraseñas introducidas no coinciden", + "password-too-weak": "La contraseña introducida no cumple con una o más políticas de seguridad de contraseñas:" + } + }, + "security-main": { + "title": "Seguridad", + "subtitle": "Gestión de usuarios" + }, + "entitySetting-list": { + "title": "Configuraciones" + }, + "setting-dictionary": { + "subtitle": "Gestionar valores del diccionario", + "labels": { + "new-value": "Por favor, introduce un valor", + "current-values": "Valores actuales", + "value": "Valor" + }, + "validations": { + "new-value-required": "Obligatorio", + "new-value": "Se ha encontrado un valor duplicado" + }, + "placeholders": { + "new-value": "Por favor, introduce un valor" + } + }, + "settings-detail": { + "title": "Valores de configuración", + "hide-description": "Ocultar" + }, + "settingGroup-list": { + "title": "Configuraciones", + "bread-crumb-top": "Todas las configuraciones" + }, + "settings-uploader": { + "drag-drop-comment": "Arrastra y suelta el archivo aquí", + "or": "o", + "browse-your-files": "explora tus archivos" + }, + "localizable-setting-value-list": { + "subtitle": "Gestionar valores del diccionario" + }, + "localizable-setting-value-details": { + "title": "Editar valor del diccionario", + "alias": "Valor del sistema" + }, + "user-profile": { + "title": "Perfil de usuario", + "labels": { + "language": "Idioma", + "language-description": "Idioma de visualización. Deja en blanco para usar el idioma del navegador o el idioma predeterminado", + "regional-format": "Formato regional", + "regional-format-description": "Formato regional de números, moneda, fecha y hora. Deja en blanco para usar el formato regional del navegador o el predeterminado", + "time-zone": "Zona horaria", + "time-zone-description": "Zona horaria actual del usuario en formato IANA (base de datos tz). Selecciona la ciudad más cercana en tu zona horaria. Deja en blanco para usar la zona horaria del navegador o la predeterminada", + "use-time-ago": "Usar formato de tiempo relativo si es posible", + "full-date-threshold-group": "Usar formato de fecha completa para fechas anteriores a...", + "full-date-threshold-description": "Valor numérico de unidades de tiempo", + "full-date-threshold-unit-description": "Unidad de tiempo (por ejemplo, horas o años)" + }, + "placeholders": { + "full-date-threshold": "Introduce el valor umbral", + "full-date-threshold-unit": "Selecciona la unidad umbral" + }, + "full-date-threshold-units": { + "Never": "Nunca", + "Seconds": "Segundos", + "Minutes": "Minutos", + "Hours": "Horas", + "Days": "Días", + "Weeks": "Semanas", + "Months": "Meses", + "Quarters": "Trimestres", + "Years": "Años" + } + } + }, + "templates": { + "sampleDataChoose": { + "labels": { + "choose-sample-data-type": "Elige el tipo de datos de muestra", + "size": "tamaño", + "version": "versión" + } + }, + "sampleDataInitialization": { + "labels": { + "sample-data-initialization": "Inicialización de datos de muestra", + "starting-initialization": "Iniciando la inicialización de datos de muestra...", + "errors": "Errores", + "start": "Inicio", + "end": "Fin" + } + }, + "licensing": { + "license-absent": "Licencia comunitaria", + "license-present": "Licencia {{type}}, vence el {{expirationDate | amParse | date}}", + "community": "Ejecutando edición comunitaria, haz clic para solicitar una licencia comercial", + "expired": "Tu licencia ha vencido el {{expirationDate | amParse | date}}, por favor renuévala", + "purchase": "Comprar", + "renew": "Renovar", + "expiration-date": "Fecha de vencimiento" + }, + "password-expiry": { + "expire-days": "Para proteger tu cuenta, necesitarás cambiar tu contraseña en {{count}} días. ", + "expire-today": "Para proteger tu cuenta, necesitarás cambiar tu contraseña hoy. ", + "change-link": "Cambiar ahora" + }, + "modulesAutoInstallation": { + "labels": { + "module-auto-installation": "Instalación automática de módulos", + "loading": "Recuperando información de módulos...", + "finished": "Instalación finalizada. Haz clic en Reiniciar para continuar", + "start": "Inicio", + "end": "Fin" + } + } + }, + "widgets": { + "operations": { + "title": "Cambios", + "blade-subtitle": "Historial de cambios" + }, + "dynamicProperty": { + "title": "Propiedades dinámicas" + }, + "entitySettings": { + "title": "Configuraciones" + }, + "accountApi": { + "title": "Clave API", + "blade-subtitle": "Clave API" + }, + "accountRoles": { + "title": "Roles", + "blade-subtitle": "Gestionar roles" + } + }, + "dialogs": { + "folders-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar las carpetas o archivos seleccionados?" + }, + "properties-save": { + "title": "Guardar cambios", + "message": "Las propiedades han sido modificadas. ¿Quieres guardar los cambios?" + }, + "notification-template-save": { + "title": "Guardar cambios", + "message": "La plantilla de notificación ha sido modificada. ¿Quieres guardar los cambios?" + }, + "role-save": { + "title": "Guardar cambios", + "message": "El rol ha sido modificado. ¿Quieres guardar los cambios?" + }, + "roles-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar los roles seleccionados?" + }, + "account-save": { + "title": "Guardar cambios", + "message": "La cuenta ha sido modificada. ¿Quieres guardar los cambios?" + }, + "account-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar las cuentas seleccionadas?" + }, + "oauthapps-save": { + "title": "Guardar cambios", + "message": "La aplicación OAuth ha sido modificada. ¿Quieres guardar los cambios?" + }, + "oauthapps-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar la aplicación OAuth seleccionada?" + }, + "dynamic-property-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar esta propiedad dinámica?" + }, + "settings-value-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar los valores seleccionados?" + }, + "settings-save": { + "title": "Guardar cambios", + "message": "Las configuraciones han sido modificadas. ¿Quieres guardar los cambios?" + }, + "settings-delete": { + "title": "Confirmación de eliminación", + "message": "Las configuraciones han sido modificadas. ¿Quieres guardar los cambios?" + }, + "localizable-setting-value-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar los valores de diccionario seleccionados?" + }, + "localizable-setting-value-save": { + "title": "Guardar cambios", + "message": "Este valor de diccionario ha sido modificado. ¿Quieres guardar los cambios?" + }, + "email-sending-success": { + "title": "Envío exitoso", + "message": "¡El correo electrónico ha sido enviado con éxito!" + }, + "email-send-error": { + "title": "Error en el envío", + "message": "¡El correo electrónico no ha sido enviado! Error: {{error}}" + }, + "dictionary-items-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar {{quantity}} elemento(s) de diccionario seleccionado(s)?" + }, + "module-action": { + "title-install": "Confirmación de instalación", + "title-update": "Confirmación de actualización", + "title-delete": "Confirmación de desinstalación", + "message0-install": "Estás a punto de instalar:", + "message0-update": "Estás a punto de actualizar:", + "message0-delete": "Estás a punto de desinstalar:", + "message1-install": "Las siguientes dependencias también se instalarán:", + "message1-delete": "Los siguientes módulos dependientes también se desinstalarán:", + "message2-install": "¿Instalar la selección y las dependencias?", + "message2-update": "¿Actualizar la selección y las dependencias?", + "message2-delete": "¿Desinstalar este y TODOS los módulos dependientes?" + }, + "module-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres desinstalar este módulo?" + }, + "api-key-delete": { + "title": "Confirmación de eliminación", + "message": "¿Estás seguro de que quieres eliminar esta clave API?" + }, + "app-restart": { + "title": "Cierre de la aplicación", + "message": "Reinicia la aplicación para aplicar los cambios. Dependiendo de tu servicio de alojamiento, la aplicación puede reiniciarse automáticamente o puede que necesites hacerlo manualmente. ¿Estás seguro de que quieres cerrar la aplicación ahora?" + }, + "error-details": { + "title": "Detalles del error" + }, + "impersonate-no-url": { + "title": "Iniciar sesión en nombre de", + "message": "La URL de la tienda no se agregó a la configuración de la tienda. Por favor, contacta al administrador" + }, + "asset-upload-error": { + "title": "Error de carga", + "message": "¡Elige una carpeta! ¡No se puede cargar un archivo en la raíz!" + }, + "run-import": { + "title": "Confirmación de importación", + "message": "¿Estás seguro de que quieres importar datos de muestra?" + }, + "create-folder": { + "title": "El nombre de una carpeta debe cumplir con las siguientes reglas de nomenclatura:\n El nombre de la carpeta debe tener entre 3 y 63 caracteres de longitud.\n El nombre de la carpeta debe comenzar con una letra o número, y solo puede contener letras, números y guiones (-).\n Cada guion (-) debe estar inmediatamente precedido y seguido por una letra o número; no se permiten guiones consecutivos.\n Todas las letras en el nombre de una carpeta deben estar en minúsculas" + }, + "storefront-cache-reset-successfully": { + "title": "Reinicio de caché", + "message": "El caché de la aplicación de la tienda se ha reiniciado con éxito" + } + }, + "commands": { + "login-on-behalf": "Iniciar sesión en nombre de", + "reset-storefront-cache": "Reiniciar caché" + } + }, + "permissions": { + "platform:asset:access": "Ver activos en el menú principal", + "platform:asset:delete": "Eliminar activos de la Plataforma", + "platform:asset:update": "Cambiar activos de la Plataforma", + "platform:asset:create": "Cargar nuevos activos de la Plataforma", + "platform:asset:read": "Descargar activos de la Plataforma", + "platform:module:read": "Ver detalles del módulo", + "platform:module:access": "Ver módulos en el menú principal", + "platform:module:manage": "Instalar/desinstalar módulos", + "platform:setting:read": "Leer configuraciones de la Plataforma", + "platform:setting:access": "Ver configuraciones en el menú principal", + "platform:setting:update": "Cambiar configuraciones de la Plataforma", + "platform:dynamic_properties:read": "Ver detalles de propiedades dinámicas", + "platform:dynamic_properties:create": "Crear nuevas propiedades dinámicas", + "platform:dynamic_properties:access": "Ver propiedades dinámicas en el menú principal", + "platform:dynamic_properties:update": "Cambiar propiedades dinámicas", + "platform:dynamic_properties:delete": "Eliminar propiedades dinámicas", + "platform:security:read": "Ver detalles de usuarios y roles", + "platform:security:create": "Crear nuevos usuarios y roles", + "platform:security:access": "Ver seguridad en el menú principal", + "platform:security:update": "Cambiar usuarios y roles", + "platform:security:delete": "Eliminar usuarios y roles", + "platform:security:verifyEmail": "Cambiar estado verificado y enviar correo electrónico de verificación", + "background_jobs:manage": "Acceso a la consola de Hangfire", + "platform:exportImport:access": "Ver Exportar/Importar en el menú principal", + "platform:import": "Importar datos de la Plataforma y módulos", + "platform:export": "Exportar datos de la Plataforma y módulos", + "platform:security:loginOnBehalf": "Iniciar sesión en nombre de un cliente" + }, + "settings": { + "VirtoCommerce": { + "Core": { + "General": { + "Languages": { + "title": "Idiomas", + "description": "Lista de idiomas disponibles" + } + } + }, + "ModulesAutoInstalled": { + "description": "La bandera indica que los módulos se instalan automáticamente", + "title": "Módulos instalados" + }, + "ModulesAutoInstallState": { + "title": "Estado de autoinstalación de módulos", + "description": "Estado actual del asistente de autoinstalación de módulos" + }, + "SetupStep": { + "title": "Paso de configuración actual", + "description": "Paso actual en el asistente de configuración" + }, + "SampleDataState": { + "title": "Estado de datos de muestra", + "description": "Estado actual del asistente de datos de muestra" + }, + "SendDiagnosticData": { + "title": "Enviar datos de diagnóstico", + "description": "Enviar datos de diagnóstico de VC Platform a VC. Solo se puede desactivar con la compra de una licencia" + }, + "Platform": { + "Security": { + "AccountTypes": { + "description": "Diccionario para posibles tipos de cuenta", + "title": "Tipos de cuenta" + }, + "DefaultAccountType": { + "title": "Tipo de cuenta predeterminado", + "description": "Valor predeterminado para el tipo de cuenta al crear una nueva cuenta" + }, + "DefaultAccountStatus": { + "title": "Estado de cuenta predeterminado", + "description": "Valor predeterminado para el estado de la cuenta al crear una nueva cuenta" + }, + "DefaultExternalAccountStatus": { + "title": "Estado de cuenta externa predeterminado", + "description": "Valor predeterminado para el estado de la cuenta al crear una nueva cuenta durante el inicio de sesión externo" + }, + "EnablePruneExpiredTokensJob": { + "description": "Habilita la eliminación de tokens/autorizaciones caducados e inválidos", + "title": "Eliminar tokens caducados" + }, + "CronPruneExpiredTokensJob": { + "description": "Expresión cron para el trabajo de eliminación de tokens/autorizaciones caducados e inválidos", + "title": "Cron para el trabajo de eliminación de tokens" + }, + "FileExtensionsBlackList": { + "description": "Extensiones de archivo prohibidas para cargar por la Plataforma (además de 'FileExtensionsBlackList' en appsettings.json)", + "title": "Lista negra" + }, + "FileExtensionsWhiteList": { + "description": "Extensiones de archivo permitidas para cargar por la Plataforma (además de 'FileExtensionsWhiteList' en appsettings.json)", + "title": "Lista blanca" + } + }, + "UI": { + "MainMenu": { + "State": { + "description": "Estado persistente del menú principal", + "title": "Estado persistente del menú principal" + } + }, + "Language": { + "description": "Idioma predeterminado (código de dos letras de ISO 639-1, insensible a mayúsculas y minúsculas). Ejemplo: es, en", + "title": "Idioma" + }, + "RegionalFormat": { + "description": "Formato regional predeterminado (código de configuración regional CLDR, con guion o guion bajo como delimitador, insensible a mayúsculas y minúsculas). Ejemplo: es, es_ES, sr_Cyrl, sr_Cyrl_RS", + "title": "Formato regional" + }, + "TimeZone": { + "description": "Zona horaria predeterminada (nombre de zona horaria IANA [base de datos tz], exactamente como en la base de datos, sensible a mayúsculas y minúsculas). Ejemplos: America/New_York, Europe/Madrid", + "title": "Zona horaria" + }, + "UseTimeAgo": { + "description": "Cuando se establece en verdadero (por defecto), el sistema muestra la fecha en formato 'hace unos segundos' siempre que sea posible", + "title": "Usar formato de tiempo relativo cuando sea posible" + }, + "FullDateThreshold": { + "description": "El formato de tiempo relativo cambiará a un formato de fecha completa después de un cierto número de unidades de tiempo", + "title": "Umbral de fecha completa" + }, + "FullDateThresholdUnit": { + "description": "Unidad del umbral de fecha completa", + "title": "Unidad del umbral de fecha completa" + }, + "Customization": { + "description": "JSON contiene configuraciones de personalización de la interfaz de usuario del gestor", + "title": "Personalización de la interfaz de usuario del gestor" + }, + "ShowMeridian": { + "description": "Mostrar indicador de meridiano de tiempo (AM o PM)", + "title": "Mostrar meridiano de tiempo" + } + }, + "Cache": { + "Enabled": { + "description": "Esta configuración te permite habilitar y deshabilitar globalmente el almacenamiento en caché para toda la aplicación de la Plataforma", + "title": "Habilitar o deshabilitar caché globalmente" + }, + "AbsoulteExpiration": { + "description": "Especifica el tiempo máximo que los datos almacenados en caché se mantienen en el caché. Formato: [-][d.]hh:mm:ss[.fffffff]", + "title": "Tiempo de vida global de los objetos en caché" + } + } + }, + "Other": { + "AccountStatuses": { + "title": "Estados de cuenta", + "description": "Cambiar estados de cuenta" + } + } + } + } +} diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Common.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Common.json new file mode 100644 index 0000000000..78333b8e79 --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Common.json @@ -0,0 +1,188 @@ +{ + "platform": { + "commands": { + "add": "Ajouter", + "activate": "Activer", + "assign": "Assigner", + "cancel": "Annuler", + "clear": "Effacer", + "clear-all": "Tout effacer", + "clone": "Cloner", + "close": "Fermer", + "confirm": "Confirmer", + "copy-link": "Copier le lien", + "copy": "Copier", + "create": "Créer", + "cut": "Couper", + "delete": "Supprimer", + "add-all": "Tout ajouter", + "remove-all": "Tout supprimer", + "download": "Télécharger", + "edit": "Modifier", + "export": "Exporter", + "generate": "Générer", + "import": "Importer", + "import-sample-data": "Importer des données d'exemple", + "install": "Installer", + "manage": "Gérer", + "more": "Plus", + "no": "Non", + "new-folder": "Nouveau dossier", + "new-license": "Renouveler la licence", + "ok": "OK", + "paste": "Coller", + "pick-selected": "Sélectionner", + "preview": "Aperçu", + "open-browser": "Ouvrir dans le navigateur", + "redo": "Rétablir", + "refresh": "Actualiser", + "remove": "Supprimer", + "reset": "Réinitialiser", + "restart": "Redémarrer", + "save": "Enregistrer", + "send": "Envoyer", + "select-all": "Tout sélectionner", + "set-to-default": "Rétablir par défaut", + "start-export": "Démarrer l'exportation", + "settings": "Paramètres", + "sign-out": "Se déconnecter", + "undo": "Annuler", + "uninstall": "Désinstaller", + "unselect-all": "Tout désélectionner", + "update": "Mettre à jour", + "upload": "Téléverser", + "yes": "Oui", + "add-new-property": "Ajouter une nouvelle propriété", + "manage-type-properties": "Types de propriétés", + "manage-profile": "Gérer le profil", + "minimize": "Réduire", + "maximize": "Agrandir", + "stop-sending": "Arrêter l'envoi", + "set-active": "Définir comme actif", + "reject-user": "Rejeter l'utilisateur", + "change-password": "Changer le mot de passe", + "unlock-account": "Débloquer le compte", + "lock-account": "Verrouiller le compte", + "today": "Aujourd'hui", + "time": "Heure", + "now": "Maintenant", + "date": "Date", + "see-details": "Voir les détails", + "dismiss": "Ignorer", + "hide-empty-property-values": "Masquer les valeurs vides", + "show-empty-property-values": "Afficher les valeurs vides", + "titles": { + "refresh": "Actualiser", + "new-folder": "Nouveau dossier", + "upload": "Téléverser" + } + }, + "list": { + "no-data": "Aucune donnée", + "count": "Nombre", + "loading": "Chargement...", + "item-not-found": "Erreur : Non trouvé" + }, + "placeholders": { + "n-a": "N/A", + "no-file": "Choisir un fichier", + "search-keyword": "Rechercher un mot-clé...", + "select-value": "Sélectionner une valeur", + "select-values": "Sélectionner une valeur" + }, + "dialogs": { + "delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les entrées sélectionnées ?" + } + }, + "properties": { + "short-text": { + "title": "Texte court", + "description": "Valeurs de texte de moins de 1024 caractères" + }, + "long-text": { + "title": "Texte long", + "description": "Texte illimité sans restriction de taille" + }, + "integer": { + "title": "Entier", + "description": "Nombre entier" + }, + "decimal": { + "title": "Nombre décimal", + "description": "Nombre décimal avec une précision de 18 et une échelle de 4" + }, + "date-time": { + "title": "Date et heure", + "description": "Sélectionner une date" + }, + "boolean": { + "title": "Booléen", + "description": "Type interrupteur" + }, + "html": { + "title": "HTML", + "description": "Balisage HTML" + }, + "undefined": { + "title": "Non défini" + }, + "image": { + "title": "Image", + "description": "Type image" + } + }, + "genericValueInput": { + "placeholders": { + "short-text": "Entrez un texte court", + "secure-string": "Entrez un texte secret", + "email": "Entrez un email", + "url": "Entrez une URL", + "long-text": "Entrez un texte long", + "integer": "Entrez un nombre entier", + "number": "Entrez un nombre décimal", + "date-time": "Choisissez une date", + "short-text-multivalue": "Ajouter une valeur", + "integer-multivalue": "Ajouter un entier", + "number-multivalue": "Ajouter un décimal", + "short-text-dictionary": "Sélectionner une valeur", + "short-text-dictionary-multivalue": "Sélectionner une valeur", + "short-text-multilang": "Entrez une valeur", + "long-text-multilang": "Entrez une valeur", + "short-text-multivalue-multilang": "Ajouter une valeur", + "short-text-dictionary-multilang": "Sélectionner une valeur", + "short-text-dictionary-multivalue-multilang": "Sélectionner une valeur", + "long-text-dictionary-multivalue-multilang": "Sélectionner une valeur" + } + }, + "short-text-input": { + "placeholder": "Entrez une valeur", + "required": "Ce champ est obligatoire", + "maxLength": "Ce champ ne doit pas contenir plus de {{number}} caractères" + }, + "validators": { + "uriWithoutQuery": { + "error": "Format d'URI invalide. Assurez-vous que l'URI n'a pas de paramètres de requête" + } + }, + "errors": { + "generic-error": "Erreur", + "400": "Mauvaise requête", + "401": "Non autorisé", + "403": "Interdit", + "404": "Non trouvé", + "405": "Méthode non autorisée", + "406": "Non acceptable", + "407": "Authentification proxy requise", + "408": "Délai de requête dépassé", + "409": "Conflit", + "429": "Trop de requêtes", + "500": "Erreur interne du serveur", + "501": "Non implémenté", + "502": "Mauvaise passerelle", + "503": "Service indisponible", + "504": "Délai de passerelle dépassé" + } + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Countries.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Countries.json new file mode 100644 index 0000000000..c229caf8ba --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Countries.json @@ -0,0 +1,270 @@ +{ + "platform": { + "countries": { + "AFG": "Afghanistan", + "EGY": "Égypte", + "ALA": "Åland", + "ALB": "Albanie", + "DZA": "Algérie", + "ASM": "Samoa américaines", + "VIR": "Îles Vierges américaines", + "AND": "Andorre", + "AGO": "Angola", + "AIA": "Anguilla", + "ATA": "Antarctique (statut spécial par le Traité sur l'Antarctique)", + "ATG": "Antigua-et-Barbuda", + "GNQ": "Guinée équatoriale", + "ARG": "Argentine", + "ARM": "Arménie", + "ABW": "Aruba", + "AZE": "Azerbaïdjan", + "ETH": "Éthiopie", + "AUS": "Australie", + "BHS": "Bahamas", + "BHR": "Bahreïn", + "BGD": "Bangladesh", + "BRB": "Barbade", + "BLR": "Biélorussie", + "BEL": "Belgique", + "BLZ": "Belize", + "BEN": "Bénin", + "BMU": "Bermudes", + "BTN": "Bhoutan", + "BOL": "Bolivie", + "BES": "Bonaire, Saint-Eustache et Saba", + "BIH": "Bosnie-Herzégovine", + "BWA": "Botswana", + "BVT": "Île Bouvet", + "BRA": "Brésil", + "VGB": "Îles Vierges britanniques", + "IOT": "Territoire britannique de l'océan Indien", + "BRN": "Brunei", + "BGR": "Bulgarie", + "BFA": "Burkina Faso", + "BDI": "Burundi", + "CHL": "Chili", + "CHN": "République populaire de Chine", + "COK": "Îles Cook", + "CRI": "Costa Rica", + "CUW": "Curaçao", + "DNK": "Danemark", + "DEU": "Allemagne", + "DMA": "Dominique", + "DOM": "République dominicaine", + "DJI": "Djibouti", + "ECU": "Équateur", + "CIV": "Côte d'Ivoire", + "SLV": "Salvador", + "ERI": "Érythrée", + "EST": "Estonie", + "SWZ": "Eswatini", + "FLK": "Îles Malouines", + "FRO": "Îles Féroé", + "FJI": "Fidji", + "FIN": "Finlande", + "FRA": "France", + "GUF": "Guyane française", + "PYF": "Polynésie française", + "ATF": "Terres australes et antarctiques françaises", + "GAB": "Gabon", + "GMB": "Gambie", + "GEO": "Géorgie", + "GHA": "Ghana", + "GIB": "Gibraltar", + "GRD": "Grenade", + "GRC": "Grèce", + "GRL": "Groenland", + "GLP": "Guadeloupe", + "GUM": "Guam", + "GTM": "Guatemala", + "GGY": "Guernesey", + "GIN": "Guinée", + "GNB": "Guinée-Bissau", + "GUY": "Guyana", + "HTI": "Haïti", + "HMD": "Îles Heard-et-MacDonald", + "HND": "Honduras", + "HKG": "Hong Kong", + "IND": "Inde", + "IDN": "Indonésie", + "IMN": "Île de Man", + "IRQ": "Irak", + "IRN": "Iran", + "IRL": "Irlande", + "ISL": "Islande", + "ISR": "Israël", + "ITA": "Italie", + "JAM": "Jamaïque", + "JPN": "Japon", + "YEM": "Yémen", + "JEY": "Jersey", + "JOR": "Jordanie", + "CYM": "Îles Caïmans", + "KHM": "Cambodge", + "CMR": "Cameroun", + "CAN": "Canada", + "CPV": "Cap-Vert", + "KAZ": "Kazakhstan", + "QAT": "Qatar", + "KEN": "Kenya", + "KGZ": "Kirghizistan", + "KIR": "Kiribati", + "CCK": "Îles Cocos", + "COL": "Colombie", + "COM": "Comores", + "COD": "République démocratique du Congo", + "COG": "République du Congo", + "PRK": "Corée du Nord", + "KOR": "Corée du Sud", + "HRV": "Croatie", + "CUB": "Cuba", + "KWT": "Koweït", + "LAO": "Laos", + "LSO": "Lesotho", + "LVA": "Lettonie", + "LBN": "Liban", + "LBR": "Liberia", + "LBY": "Libye", + "LIE": "Liechtenstein", + "LTU": "Lituanie", + "LUX": "Luxembourg", + "MAC": "Macao", + "MDG": "Madagascar", + "MWI": "Malawi", + "MYS": "Malaisie", + "MDV": "Maldives", + "MLI": "Mali", + "MLT": "Malte", + "MAR": "Maroc", + "MHL": "Îles Marshall", + "MTQ": "Martinique", + "MRT": "Mauritanie", + "MUS": "Maurice", + "MYT": "Mayotte", + "MEX": "Mexique", + "FSM": "Micronésie", + "MDA": "Moldavie", + "MCO": "Monaco", + "MNG": "Mongolie", + "MNE": "Monténégro", + "MSR": "Montserrat", + "MOZ": "Mozambique", + "MMR": "Myanmar", + "NAM": "Namibie", + "NRU": "Nauru", + "NPL": "Népal", + "NCL": "Nouvelle-Calédonie", + "NZL": "Nouvelle-Zélande", + "NIC": "Nicaragua", + "NLD": "Pays-Bas", + "NER": "Niger", + "NGA": "Nigeria", + "NIU": "Niue", + "MNP": "Îles Mariannes du Nord", + "MKD": "Macédoine du Nord", + "NFK": "Île Norfolk", + "NOR": "Norvège", + "OMN": "Oman", + "AUT": "Autriche", + "TLS": "Timor oriental", + "PAK": "Pakistan", + "PSE": "Palestine", + "PLW": "Palaos", + "PAN": "Panama", + "PNG": "Papouasie-Nouvelle-Guinée", + "PRY": "Paraguay", + "PER": "Pérou", + "PHL": "Philippines", + "PCN": "Îles Pitcairn", + "POL": "Pologne", + "PRT": "Portugal", + "PRI": "Porto Rico", + "REU": "La Réunion", + "RWA": "Rwanda", + "ROU": "Roumanie", + "RUS": "Russie", + "SLB": "Îles Salomon", + "BLM": "Saint-Barthélemy", + "MAF": "Saint-Martin (partie française)", + "ZMB": "Zambie", + "WSM": "Samoa", + "SMR": "Saint-Marin", + "STP": "Sao Tomé-et-Principe", + "SAU": "Arabie saoudite", + "SWE": "Suède", + "CHE": "Suisse", + "SEN": "Sénégal", + "SRB": "Serbie", + "SYC": "Seychelles", + "SLE": "Sierra Leone", + "ZWE": "Zimbabwe", + "SGP": "Singapour", + "SXM": "Saint-Martin (partie néerlandaise)", + "SVK": "Slovaquie", + "SVN": "Slovénie", + "SOM": "Somalie", + "ESP": "Espagne", + "LKA": "Sri Lanka", + "SHN": "Sainte-Hélène, Ascension et Tristan da Cunha", + "KNA": "Saint-Kitts-et-Nevis", + "LCA": "Sainte-Lucie", + "SPM": "Saint-Pierre-et-Miquelon", + "VCT": "Saint-Vincent-et-les-Grenadines", + "ZAF": "Afrique du Sud", + "SDN": "Soudan", + "SGS": "Géorgie du Sud-et-les Îles Sandwich du Sud", + "SSD": "Soudan du Sud", + "SUR": "Suriname", + "SJM": "Svalbard et Jan Mayen", + "SYR": "Syrie", + "TJK": "Tadjikistan", + "TWN": "Taïwan", + "TZA": "Tanzanie", + "THA": "Thaïlande", + "TGO": "Togo", + "TKL": "Tokelau", + "TON": "Tonga", + "TTO": "Trinité-et-Tobago", + "TCD": "Tchad", + "CZE": "République tchèque", + "TUN": "Tunisie", + "TUR": "Turquie", + "TKM": "Turkménistan", + "TCA": "Îles Turques-et-Caïques", + "TUV": "Tuvalu", + "UGA": "Ouganda", + "UKR": "Ukraine", + "HUN": "Hongrie", + "UMI": "Îles mineures éloignées des États-Unis", + "URY": "Uruguay", + "UZB": "Ouzbékistan", + "VUT": "Vanuatu", + "VAT": "Vatican", + "VEN": "Venezuela", + "ARE": "Émirats arabes unis", + "USA": "États-Unis", + "GBR": "Royaume-Uni", + "VNM": "Viêt Nam", + "WLF": "Wallis-et-Futuna", + "CXR": "Île Christmas", + "ESH": "Sahara occidental", + "CAF": "République centrafricaine", + "CYP": "Chypre" + }, + "CAN": { + "AB": "Alberta", + "BC": "Colombie-Britannique", + "MB": "Manitoba", + "NB": "Nouveau-Brunswick", + "NL": "Terre-Neuve-et-Labrador", + "NT": "Territoires du Nord-Ouest", + "NS": "Nouvelle-Écosse", + "NU": "Nunavut", + "ON": "Ontario", + "PE": "Île-du-Prince-Édouard", + "QC": "Québec", + "SK": "Saskatchewan", + "YT": "Yukon" + } + } +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Platform.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Platform.json new file mode 100644 index 0000000000..28dd40c9ec --- /dev/null +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/fr.VirtoCommerce.Platform.json @@ -0,0 +1,1044 @@ +{ + "platform": { + "menu": { + "home": "Accueil", + "browse": "Parcourir", + "configuration": "Configuration", + "notifications": "Notifications", + "more": "Plus", + "settings": "Paramètres", + "dynamic-properties": "Propriétés dynamiques", + "security": "Sécurité", + "modules": "Modules", + "export-import": "Exporter & Importer", + "user-profile": "Profil utilisateur", + "assets": "Ressources", + "toggle-favorites": "Maj + Espace pour basculer les favoris", + "help": "Aide" + }, + "navigation": { + "back": "Retour" + }, + "blades": { + "system-info": { + "title": "Informations sur la plateforme", + "labels": { + "clr-version": "Version CLR", + "environment-name": "Mode d'environnement", + "is-64-bit-os": "Système d'exploitation 64 bits", + "is-64-bit-process": "Processus 64 bits", + "database-provider": "Fournisseur de base de données" + } + }, + "asset-list": { + "title": "Gestion des ressources", + "bread-crumb-top": "Toutes les ressources", + "labels": { + "picture": "Image", + "name": "Nom", + "size": "Taille", + "modified": "Modifié", + "actions": "Actions", + "group": "Groupe", + "language": "Langue" + } + }, + "asset-upload": { + "title": "Téléchargement de ressource", + "labels": { + "select-files": "Sélectionner des fichiers", + "drag-note": "Glisser-déposer les fichiers ici", + "progress": "Progression", + "asset-uploaded": "Ressource(s) téléchargée(s)" + }, + "placeholders": { + "image-url": "Coller l'URL du fichier ici" + } + }, + "operation-list": { + "labels": { + "login": "Connexion", + "details": "Détails", + "time": "Heure" + } + }, + "dynamicObject-list": { + "title": "Types d'objets dynamiques", + "subtitle": "Choisir le type d'objet pour gérer les propriétés dynamiques", + "labels": { + "no-objects": "Aucun objet ne prend encore en charge les propriétés dynamiques" + } + }, + "dynamicProperty-detail": { + "title": "Gérer la propriété", + "subtitle": "Gérer la propriété", + "subtitle-new": "Nouvelle propriété", + "labels": { + "property-name": "Nom de la propriété", + "required": "Obligatoire", + "multivalue": "Multivaleur", + "multilingual": "Multilingue", + "dictionary": "Dictionnaire", + "description": "Description", + "display-order": "Ordre d'affichage", + "display-name": "Nom d'affichage", + "value-type": "Type de valeur", + "dictionary-values": "Valeurs du dictionnaire", + "manage-dictionary": "Gérer le dictionnaire" + }, + "placeholders": { + "description": "Entrer la description de la propriété", + "display-name": "Entrer le nom d'affichage...", + "display-order": "Ordre d'affichage" + }, + "validations": { + "multivalue": "Une propriété multivaleur ne peut avoir que des types de valeur Texte court, Entier ou Décimal", + "multilingual": "Seules les valeurs texte ou HTML peuvent être multilingues", + "dictionary": "Seuls les dictionnaires de type de valeur Texte court sont pris en charge" + } + }, + "dynamicProperty-list": { + "subtitle": "Gérer les propriétés dynamiques", + "labels": { + "no-properties": "Pas encore de propriétés dynamiques" + } + }, + "notifications-menu": { + "subtitle": "Travailler avec le système de notifications" + }, + "property-dictionary": { + "title": "Valeurs du dictionnaire", + "subtitle": "Gérer les valeurs du dictionnaire", + "labels": { + "edit-value": "Modifier la valeur", + "new-value": "Nouvelle valeur", + "dictionary-name": "Nom de l'entrée du dictionnaire", + "localized-values": "Valeurs localisées", + "current-values": "Valeurs actuelles", + "name": "Nom", + "values": "Valeurs" + }, + "validations": { + "dictionary-name-required": "Obligatoire", + "dictionary-name": "Nom en double trouvé", + "localized-values-required": "Obligatoire", + "localized-values": "Nom en double trouvé", + "dictionary": "Seuls les dictionnaires de type de valeur Texte court sont pris en charge" + }, + "placeholders": { + "dictionary-name": "Entrer le nom", + "localized-values": "Entrer la valeur" + } + }, + "propertyValue-list": { + "title": "Propriétés dynamiques", + "subtitle": "", + "labels": { + "header": "Valeurs des propriétés", + "no-properties": "Cette entité n'a pas encore de propriétés dynamiques. Cliquez sur 'Types de propriétés' et créez des propriétés. Fermez et rouvrez la vue de l'entité actuelle pour charger les propriétés dynamiques" + } + }, + "edit-array": { + "validations": { + "new-value-required": "Obligatoire" + }, + "labels": { + "new-value": "Nouvelle valeur", + "current-values": "Valeurs actuelles", + "values": "Valeurs" + }, + "placeholders": { + "value": "Entrer la valeur" + } + }, + "export-main": { + "title": "Exportation de données", + "labels": { + "platform-entries": "Entrées de la plateforme", + "choose-modules": "Choisir les modules à exporter", + "download-url": "URL de téléchargement", + "errors": "Erreurs", + "start": "Début", + "end": "Fin" + }, + "menu": { + "security": { + "title": "Sécurité", + "description": "Comptes et rôles" + }, + "binary": { + "title": "Binaire", + "description": "Données binaires" + }, + "settings": { + "title": "Paramètres", + "description": "Paramètres de la plateforme" + }, + "dynamic-props": { + "title": "Propriétés dynamiques", + "description": "Propriétés dynamiques de la plateforme" + } + } + }, + "import-main": { + "title": "Importation de données", + "labels": { + "start-import": "Démarrer l'importation", + "select-file": "Sélectionner un fichier .zip à importer. Le fichier doit être produit par l'exportation de données du Commerce Manager", + "drag-note": "Glisser-déposer un fichier .zip à importer. Le fichier doit être produit par l'exportation de données du Commerce Manager", + "upload-failed": "Échec du téléchargement", + "upload-progress": "Progression du téléchargement", + "import-progress": "Progression de l'importation", + "import-finished": "Importation terminée", + "import-data-information": "Informations sur les données importées", + "author": "Auteur", + "data-file-created": "Fichier de données créé", + "created-platform-version": "Créé dans la version de la plateforme", + "platform-entries": "Entrées de la plateforme", + "choose-modules": "Choisir les modules à importer", + "no-data": "Pas de données", + "errors": "Erreurs", + "start": "Début", + "end": "Fin" + }, + "menu": { + "security": { + "title": "Sécurité", + "description": "Comptes et rôles" + }, + "binary": { + "title": "Binaire", + "description": "Données binaires" + }, + "settings": { + "title": "Paramètres", + "description": "Paramètres de la plateforme" + }, + "dynamic-props": { + "title": "Propriétés dynamiques", + "description": "Propriétés dynamiques de la plateforme" + } + } + }, + "exportImport-main": { + "title": "Exportation et importation de données", + "menu": { + "export": { + "title": "Exporter", + "description": "Les données seront sauvegardées dans un fichier pour pouvoir être importées ultérieurement" + }, + "import": { + "title": "Importer", + "description": "Importer des données à partir d'un fichier exporté" + } + } + }, + "resolve-result": { + "title": "Aperçu du résultat", + "labels": { + "subject": "Sujet", + "body": "Corps" + } + }, + "module-settings-detail": { + "title": "Paramètres du module" + }, + "module-wizard-progress-step": { + "title-install": "Installation du module", + "title-update": "Mise à jour du module", + "title-uninstall": "Désinstallation du module", + "labels": { + "start": "Début", + "end": "Fin", + "progress-messages": "Messages de progression", + "process-completed": "Processus d'installation du module terminé", + "restart-application": "Redémarrer l'application maintenant ou plus tard" + } + }, + "module-detail": { + "title": "Informations sur le module", + "labels": { + "i-accept-the": "J'accepte la", + "license-link": "licence", + "license": "Licence", + "agreement": "accord", + "install-from-file": "Installer / mettre à jour le module à partir d'un fichier", + "select-module-file": "Télécharger un fichier de module (.zip) depuis une source externe en dehors du dépôt central des modules", + "upload-progress": "Progression du téléchargement", + "module-info": "Infos du module", + "title": "Titre", + "official": "Module officiel par {{$owner}}", + "owners": "Développé par {{$owner}}", + "author": "Auteur", + "authors": "Auteurs", + "id": "ID", + "version": "Version", + "project-information": "Informations sur le projet", + "description": "Description", + "platform-version": "Version de la plateforme", + "dependencies": "Dépendances", + "optional-dependencies": "Dépendances optionnelles", + "tags": "Tags", + "install-version": "Installer la version", + "errors": "Erreurs" + } + }, + "modules-main": { + "title": "Modules", + "labels": { + "updates": "Mises à jour", + "available": "Disponibles", + "installed": "Installés", + "withErrors": "Erreurs", + "advanced": "Avancé" + } + }, + "modules-list": { + "subtitle": "Gestion des modules", + "labels": { + "grouping": "Afficher les paquets de modules", + "ungrouped": "Autres", + "no-updates": "Aucune mise à jour trouvée", + "no-modules-part1": "Aucun nouveau module à installer", + "no-installed-modules": "Aucun module installé trouvé", + "icon": "Icône", + "up-to-date": "Le module est à jour", + "update-available": "Mise à jour disponible pour ce module", + "module": "Module", + "version": "Version", + "author": "Auteur", + "installed": "Modules installés", + "manual-install-warning": "Attention ! Les modules installés manuellement ne démarreront pas car RefreshProbingFolderOnStart est défini sur false" + } + }, + "history": { + "title": "Événements système", + "subtitle": "Historique des événements", + "labels": { + "type": "Type", + "title": "Titre", + "created": "Créé", + "description": "Description" + } + }, + "historyDetailDefault": { + "title": "Détail de l'événement", + "subtitle": "Détail de l'événement", + "labels": { + "start": "Début", + "end": "Fin", + "elapsed": "Écoulé", + "errors": "Erreurs", + "stats": "Traité {{ processedCount }} sur {{ totalCount }} enregistrements" + } + }, + "menuHeader": { + "labels": { + "history": "Historique", + "clear-recent": "Effacer tout l'historique récent" + } + }, + "account-changePassword": { + "labels": { + "title": "Veuillez entrer un nouveau mot de passe", + "login": "Identifiant", + "force-change-info": "Votre mot de passe a expiré. Vous devez changer le mot de passe pour continuer à utiliser le gestionnaire", + "current-password": "Mot de passe actuel", + "new-password": "Nouveau mot de passe", + "repeat-password": "Répéter le nouveau mot de passe", + "cancel": "Annuler", + "save": "Changer", + "fail": "Désolé, nous n'avons pas pu réinitialiser le mot de passe pour cet utilisateur" + }, + "validations": { + "current-password": "Obligatoire", + "new-password": "L'ancien et le nouveau mot de passe sont identiques !", + "repeat-password": "Les nouveaux mots de passe ne correspondent pas !" + }, + "placeholders": { + "current-password": "Entrez le mot de passe actuel", + "new-password": "Entrez le nouveau mot de passe", + "repeat-password": "Répétez le nouveau mot de passe" + } + }, + "account-resetPassword": { + "subtitle": "Changer le mot de passe de l'utilisateur", + "labels": { + "new-password": "Nouveau mot de passe", + "repeat-password": "Répéter le mot de passe", + "force-password-change": "Obliger cet utilisateur à changer son mot de passe lors de sa prochaine connexion" + }, + "validations": { + "repeat-password": "Les nouveaux mots de passe ne correspondent pas !", + "invalid-token": "Le jeton de réinitialisation du mot de passe est invalide ou a expiré", + "password-too-weak": "Le nouveau mot de passe ne respecte pas une ou plusieurs politiques de sécurité des mots de passe :", + "passwordTooShort": "Les mots de passe doivent comporter au moins {{parameter}} caractères", + "passwordRequiresUniqueChars": "Les mots de passe doivent utiliser au moins {{parameter}} caractères différents", + "passwordRequiresLower": "Les mots de passe doivent contenir au moins une minuscule ('a'-'z')", + "passwordRequiresUpper": "Les mots de passe doivent contenir au moins une majuscule ('A'-'Z')", + "passwordRequiresDigit": "Les mots de passe doivent contenir au moins un chiffre ('0'-'9')", + "passwordRequiresNonAlphanumeric": "Les mots de passe doivent contenir au moins un caractère non alphanumérique", + "recentPasswordUsed": "Vous avez déjà utilisé ce mot de passe dans le passé. Choisissez-en un autre" + }, + "placeholders": { + "new-password": "Entrez le nouveau mot de passe", + "repeat-password": "Répétez le nouveau mot de passe" + } + }, + "account-detail": { + "title-new": "Nouveau compte", + "labels": { + "user-information": "Informations utilisateur", + "is-administrator": "Est administrateur", + "account-type": "Type de compte", + "login": "Identifiant", + "account-state": "État du compte", + "account-email": "Email", + "locked-state": "État verrouillé", + "status": "Statut", + "verified": "Vérifié", + "resend-link": "Renvoyer le lien", + "link-sent": "Le lien a été envoyé", + "last-login-date": "Date de dernière connexion" + }, + "placeholders": { + "account-type": "Sélectionner ...", + "email": "Entrez l'email", + "user-name": "Entrez le nom d'utilisateur", + "status": "Sélectionner ..." + } + }, + "account-list": { + "title": "Utilisateurs", + "subtitle": "Service de sécurité", + "labels": { + "name": "Nom", + "account-type": "Type de compte", + "login": "Identifiant", + "state": "État", + "status": "Statut" + } + }, + "account-api": { + "labels": { + "api-key": "Clé API", + "is-active": "est active" + }, + "placeholders": { + "api-key": "Entrez la clé API" + } + }, + "role-detail": { + "subtitle": "Détails du rôle", + "labels": { + "summary": "Résumé", + "name": "Nom", + "description": "Description", + "assigned-permissions": "Permissions attribuées", + "permission-name": "Nom", + "assigned-scopes": "Portées attribuées", + "no-permissions-assigned": "Aucune permission attribuée" + }, + "placeholders": { + "name": "Entrez le nom", + "description": "Entrez la description" + } + }, + "account-roles": { + "subtitle": "Attribuer des rôles", + "labels": { + "select-roles": "Sélectionnez les rôles à attribuer", + "no-roles": "Aucun rôle à attribuer" + } + }, + "account-roles-list": { + "title": "", + "labels": { + "assigned-roles": "Rôles attribués", + "no-assigned": "Aucun rôle attribué" + } + }, + "permission-scopes": { + "subtitle": "Configurer les portées des permissions", + "labels": { + "select-bounded-scopes": "Sélectionner les portées limitées", + "selected": "Sélectionné", + "scope-name": "Nom et paramètres de la portée", + "no-scopes": "Aucune portée" + } + }, + "role-permissions": { + "subtitle": "Attribuer des permissions", + "labels": { + "select-permissions": "Sélectionner les permissions à attribuer" + } + }, + "new-role-wizard": { + "title": "Nouveau rôle", + "labels": { + "summary": "Résumé", + "name": "Nom", + "description": "Description", + "assign-permissions": "Attribuer des permissions" + }, + "placeholders": { + "name": "Entrez le nom", + "description": "Entrez la description" + } + }, + "role-list": { + "title": "Rôles", + "subtitle": "Service de sécurité", + "labels": { + "name": "Nom" + } + }, + "oauthapps": { + "labels": { + "clientId": "ID client", + "displayName": "Nom d'affichage", + "type": "Type", + "clientSecret": "Secret client", + "assigned-permissions": "Permissions attribuées", + "redirectUris": "URIs de redirection", + "postLogoutRedirectUris": "URIs de redirection après déconnexion" + }, + "placeholders": { + "clientId": "Saisissez l'ID client", + "displayName": "Saisissez le nom d'affichage", + "type": "Saisissez le type", + "clientSecret": "Saisissez le secret client" + } + }, + "oauthapps-list": { + "title": "Applications OAuth", + "subtitle": "Service de sécurité" + }, + "oauthapps-detail": { + "title": "Modifier l'application OAuth", + "title-new": "Créer une application OAuth", + "subtitle": "Service de sécurité", + "labels": { + "clientSecret-warning": "Attention ! Vous devez copier le secret maintenant. Il sera caché après la fermeture du panneau", + "urls": "URLs" + }, + "blades": { + "edit-redirectUris": { + "title": "URIs de redirection", + "subtitle": "Gérer les URIs de redirection" + }, + "edit-postLogoutRedirectUris": { + "title": "URIs de redirection après déconnexion", + "subtitle": "Gérer les URIs de redirection après déconnexion" + } + } + }, + "login": { + "labels": { + "sign-in": "Connectez-vous au gestionnaire {{title}}", + "login": "Identifiant", + "password": "Mot de passe", + "remember-me": "Se souvenir de moi", + "external-sign-in": "Se connecter avec {{displayName}}", + "forgot-password": "Mot de passe oublié ?", + "log-in": "Se connecter", + "log-in-placeholder": "Entrez votre email ou nom d'utilisateur", + "password-placeholder": "Entrez votre mot de passe", + "azure-log-in-label": "Se connecter au site d'administration via Azure", + "password-log-in-type": "Utilisateur système", + "or": "ou", + "signing-in": "Connexion en cours..." + } + }, + "forgotpassword": { + "title": "Mot de passe oublié ?", + "labels": { + "login": "Identifiant ou email", + "description": "Nous vous enverrons un email avec les instructions pour réinitialiser votre mot de passe", + "success": "Un email avec les instructions vous a été envoyé", + "fail": "Désolé, nous n'avons pas pu réinitialiser le mot de passe pour cet utilisateur", + "back": "Retour", + "submit": "Envoyer", + "time-limit": "Vous pouvez réessayer dans {{countdown}}", + "time-limit-end": "Vous pouvez réessayer maintenant" + }, + "placeholders": { + "login-or-email": "Entrez l'identifiant ou l'email" + } + }, + "access-denied": { + "title": "Accès refusé", + "labels": { + "message": "Vous n'avez pas accès à cette ressource. Veuillez contacter votre administrateur", + "button": "Se connecter avec d'autres identifiants" + } + }, + "resetpassword": { + "title": "Réinitialisation du mot de passe", + "labels": { + "success": "Votre mot de passe a été réinitialisé", + "fail": "Désolé, nous n'avons pas pu réinitialiser le mot de passe pour cet utilisateur", + "submit": "Réinitialiser", + "log-in": "Se connecter" + } + }, + "license": { + "title": "Licence actuelle", + "title-new": "Activation d'une nouvelle licence", + "license-info": "Informations de licence", + "license-activation": "Activation de la licence", + "labels": { + "info-running-no-license": "Cette instance de Virto Commerce fonctionne avec", + "info-open-source-license": "une licence communautaire Open Source", + "info0": "Acquisition ou renouvellement de la licence :", + "info1": "Soumettez le ", + "info2": "Nous traiterons votre demande et vous contacterons bientôt", + "info3": "Une fois que vous aurez reçu le \"Code d'activation\" et/ou le fichier de licence, remplissez l'un des champs d'activation ci-dessous", + "info4": "Le système affichera les nouvelles informations de licence. Vérifiez-les et cliquez sur \"Activer\" pour confirmer", + "customer": "Licence émise pour", + "type": "Type", + "expiration": "Expiration", + "email": "Email du client", + "request-license": "Formulaire de demande de licence", + "code-descr": "Entrez le \"Code d'activation\" de licence reçu et appuyez sur [Entrée]. C'est la méthode d'activation de licence la plus rapide. (Nécessite une connexion Internet)", + "file-descr": "Vous pouvez également fournir le fichier de licence reçu. (Activation hors ligne)", + "upload-progress": "Progression du téléchargement", + "errors": "Erreur d'activation" + }, + "placeholders": { + "code": "Entrez le code d'activation" + } + }, + "new-account-wizard": { + "labels": { + "login": "Identifiant", + "email": "Email", + "password": "Mot de passe", + "repeat-password": "Répéter le mot de passe", + "assign-roles": "Attribuer des rôles" + }, + "placeholders": { + "email": "Entrez l'email", + "login": "Entrez l'identifiant", + "password": "Entrez le nouveau mot de passe", + "repeat-password": "Répétez le nouveau mot de passe" + }, + "validations": { + "repeat-password": "Les mots de passe saisis ne correspondent pas !", + "password-too-weak": "Le mot de passe saisi ne respecte pas une ou plusieurs politiques de sécurité des mots de passe :" + } + }, + "security-main": { + "title": "Sécurité", + "subtitle": "Gestion des utilisateurs" + }, + "entitySetting-list": { + "title": "Paramètres" + }, + "setting-dictionary": { + "subtitle": "Gérer les valeurs du dictionnaire", + "labels": { + "new-value": "Veuillez entrer une valeur", + "current-values": "Valeurs actuelles", + "value": "Valeur" + }, + "validations": { + "new-value-required": "Obligatoire", + "new-value": "Valeur en double trouvée" + }, + "placeholders": { + "new-value": "Veuillez entrer une valeur" + } + }, + "settings-detail": { + "title": "Valeurs des paramètres", + "hide-description": "Masquer" + }, + "settingGroup-list": { + "title": "Paramètres", + "bread-crumb-top": "Tous les paramètres" + }, + "settings-uploader": { + "drag-drop-comment": "Glissez et déposez le fichier ici", + "or": "ou", + "browse-your-files": "parcourez vos fichiers" + }, + "localizable-setting-value-list": { + "subtitle": "Gérer les valeurs du dictionnaire" + }, + "localizable-setting-value-details": { + "title": "Modifier la valeur du dictionnaire", + "alias": "Valeur système" + }, + "user-profile": { + "title": "Profil utilisateur", + "labels": { + "language": "Langue", + "language-description": "Langue d'affichage. Effacez pour utiliser la langue du navigateur ou la langue par défaut", + "regional-format": "Format régional", + "regional-format-description": "Format régional des nombres, de la monnaie, de la date et de l'heure. Effacez pour utiliser le format régional du navigateur ou par défaut", + "time-zone": "Fuseau horaire", + "time-zone-description": "Fuseau horaire actuel de l'utilisateur au format IANA (base de données tz). Sélectionnez la ville la plus proche dans votre fuseau horaire. Effacez pour utiliser le fuseau horaire du navigateur ou par défaut", + "use-time-ago": "Utiliser le format 'il y a' si possible", + "full-date-threshold-group": "Utiliser le format de date complet pour les dates antérieures à...", + "full-date-threshold-description": "Valeur numérique des unités de temps", + "full-date-threshold-unit-description": "Unité de temps (par exemple, heures ou années)" + }, + "placeholders": { + "full-date-threshold": "Entrez la valeur seuil", + "full-date-threshold-unit": "Sélectionnez l'unité seuil" + }, + "full-date-threshold-units": { + "Never": "Jamais", + "Seconds": "Secondes", + "Minutes": "Minutes", + "Hours": "Heures", + "Days": "Jours", + "Weeks": "Semaines", + "Months": "Mois", + "Quarters": "Trimestres", + "Years": "Années" + } + } + }, + "templates": { + "sampleDataChoose": { + "labels": { + "choose-sample-data-type": "Choisir le type de données d'exemple", + "size": "taille", + "version": "version" + } + }, + "sampleDataInitialization": { + "labels": { + "sample-data-initialization": "Initialisation des données d'exemple", + "starting-initialization": "Démarrage de l'initialisation des données d'exemple...", + "errors": "Erreurs", + "start": "Début", + "end": "Fin" + } + }, + "licensing": { + "license-absent": "Licence communautaire", + "license-present": "Licence {{type}}, expire le {{expirationDate | amParse | date}}", + "community": "Édition communautaire en cours d'exécution, cliquez pour demander une licence commerciale", + "expired": "Votre licence a expiré le {{expirationDate | amParse | date}}, veuillez la renouveler", + "purchase": "Acheter", + "renew": "Renouveler", + "expiration-date": "Date d'expiration" + }, + "password-expiry": { + "expire-days": "Pour protéger votre compte, vous devrez changer votre mot de passe dans {{count}} jours. ", + "expire-today": "Pour protéger votre compte, vous devrez changer votre mot de passe aujourd'hui. ", + "change-link": "Changer maintenant" + }, + "modulesAutoInstallation": { + "labels": { + "module-auto-installation": "Installation automatique des modules", + "loading": "Récupération des informations sur les modules...", + "finished": "Installation terminée. Cliquez sur Redémarrer pour continuer", + "start": "Début", + "end": "Fin" + } + } + }, + "widgets": { + "operations": { + "title": "Changements", + "blade-subtitle": "Historique des changements" + }, + "dynamicProperty": { + "title": "Propriétés dynamiques" + }, + "entitySettings": { + "title": "Paramètres" + }, + "accountApi": { + "title": "Clé API", + "blade-subtitle": "Clé API" + }, + "accountRoles": { + "title": "Rôles", + "blade-subtitle": "Gérer les rôles" + } + }, + "dialogs": { + "folders-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les dossiers ou fichiers sélectionnés ?" + }, + "properties-save": { + "title": "Enregistrer les modifications", + "message": "Les propriétés ont été modifiées. Voulez-vous enregistrer les changements ?" + }, + "notification-template-save": { + "title": "Enregistrer les modifications", + "message": "Le modèle de notification a été modifié. Voulez-vous enregistrer les changements ?" + }, + "role-save": { + "title": "Enregistrer les modifications", + "message": "Le rôle a été modifié. Voulez-vous enregistrer les changements ?" + }, + "roles-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les rôles sélectionnés ?" + }, + "account-save": { + "title": "Enregistrer les modifications", + "message": "Le compte a été modifié. Voulez-vous enregistrer les changements ?" + }, + "account-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les comptes sélectionnés ?" + }, + "oauthapps-save": { + "title": "Enregistrer les modifications", + "message": "L'application OAuth a été modifiée. Voulez-vous enregistrer les changements ?" + }, + "oauthapps-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer l'application OAuth sélectionnée ?" + }, + "dynamic-property-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer cette propriété dynamique ?" + }, + "settings-value-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les valeurs sélectionnées ?" + }, + "settings-save": { + "title": "Enregistrer les modifications", + "message": "Les paramètres ont été modifiés. Voulez-vous enregistrer les changements ?" + }, + "settings-delete": { + "title": "Confirmation de suppression", + "message": "Les paramètres ont été modifiés. Voulez-vous enregistrer les changements ?" + }, + "localizable-setting-value-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer les valeurs de dictionnaire sélectionnées ?" + }, + "localizable-setting-value-save": { + "title": "Enregistrer les modifications", + "message": "Cette valeur de dictionnaire a été modifiée. Voulez-vous enregistrer les changements ?" + }, + "email-sending-success": { + "title": "Envoi réussi", + "message": "L'email a été envoyé avec succès !" + }, + "email-send-error": { + "title": "Erreur d'envoi", + "message": "L'email n'a pas été envoyé ! Erreur : {{error}}" + }, + "dictionary-items-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer {{quantity}} élément(s) de dictionnaire sélectionné(s) ?" + }, + "module-action": { + "title-install": "Confirmation d'installation", + "title-update": "Confirmation de mise à jour", + "title-delete": "Confirmation de désinstallation", + "message0-install": "Vous êtes sur le point d'installer :", + "message0-update": "Vous êtes sur le point de mettre à jour :", + "message0-delete": "Vous êtes sur le point de désinstaller :", + "message1-install": "Les dépendances suivantes seront également installées :", + "message1-delete": "Les modules dépendants suivants seront également désinstallés :", + "message2-install": "Installer la sélection et les dépendances ?", + "message2-update": "Mettre à jour la sélection et les dépendances ?", + "message2-delete": "Désinstaller ce module et TOUS les modules dépendants ?" + }, + "module-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir désinstaller ce module ?" + }, + "api-key-delete": { + "title": "Confirmation de suppression", + "message": "Êtes-vous sûr de vouloir supprimer cette clé API ?" + }, + "app-restart": { + "title": "Arrêt de l'application", + "message": "Redémarrez l'application pour appliquer les changements. Selon votre service d'hébergement, l'application peut redémarrer automatiquement ou vous devrez peut-être le faire manuellement. Êtes-vous sûr de vouloir fermer l'application maintenant ?" + }, + "error-details": { + "title": "Détails de l'erreur" + }, + "impersonate-no-url": { + "title": "Connexion au nom de", + "message": "L'URL de la boutique n'a pas été ajoutée aux paramètres de la boutique. Veuillez contacter l'administrateur" + }, + "asset-upload-error": { + "title": "Erreur de téléchargement", + "message": "Choisissez un dossier ! Impossible de télécharger un fichier à la racine !" + }, + "run-import": { + "title": "Confirmation d'importation", + "message": "Êtes-vous sûr de vouloir importer les données d'exemple ?" + }, + "create-folder": { + "title": "Le nom d'un dossier doit respecter les règles de nommage suivantes :\n Le nom du dossier doit comporter entre 3 et 63 caractères.\n Le nom du dossier doit commencer par une lettre ou un chiffre et ne peut contenir que des lettres, des chiffres et des traits d'union (-).\n Chaque trait d'union (-) doit être immédiatement précédé et suivi d'une lettre ou d'un chiffre ; les traits d'union consécutifs ne sont pas autorisés.\n Toutes les lettres d'un nom de dossier doivent être en minuscules" + }, + "storefront-cache-reset-successfully": { + "title": "Réinitialisation du cache", + "message": "Le cache de l'application frontale a été réinitialisé avec succès" + } + }, + "commands": { + "login-on-behalf": "Se connecter au nom de", + "reset-storefront-cache": "Réinitialiser le cache" + } + }, + "permissions": { + "platform:asset:access": "Voir les ressources dans le menu principal", + "platform:asset:delete": "Supprimer les ressources de la plateforme", + "platform:asset:update": "Modifier les ressources de la plateforme", + "platform:asset:create": "Télécharger de nouvelles ressources de la plateforme", + "platform:asset:read": "Télécharger les ressources de la plateforme", + "platform:module:read": "Voir les détails du module", + "platform:module:access": "Voir les modules dans le menu principal", + "platform:module:manage": "Installer/désinstaller les modules", + "platform:setting:read": "Lire les paramètres de la plateforme", + "platform:setting:access": "Voir les paramètres dans le menu principal", + "platform:setting:update": "Modifier les paramètres de la plateforme", + "platform:dynamic_properties:read": "Voir les détails des propriétés dynamiques", + "platform:dynamic_properties:create": "Créer de nouvelles propriétés dynamiques", + "platform:dynamic_properties:access": "Voir les propriétés dynamiques dans le menu principal", + "platform:dynamic_properties:update": "Modifier les propriétés dynamiques", + "platform:dynamic_properties:delete": "Supprimer les propriétés dynamiques", + "platform:security:read": "Voir les détails des utilisateurs et des rôles", + "platform:security:create": "Créer de nouveaux utilisateurs et rôles", + "platform:security:access": "Voir la sécurité dans le menu principal", + "platform:security:update": "Modifier les utilisateurs et les rôles", + "platform:security:delete": "Supprimer les utilisateurs et les rôles", + "platform:security:verifyEmail": "Modifier l'état vérifié et envoyer un email de vérification", + "background_jobs:manage": "Accès à la console Hangfire", + "platform:exportImport:access": "Voir Exporter/Importer dans le menu principal", + "platform:import": "Importer les données de la plateforme et des modules", + "platform:export": "Exporter les données de la plateforme et des modules", + "platform:security:loginOnBehalf": "Se connecter au nom d'un client" + }, + "settings": { + "VirtoCommerce": { + "Core": { + "General": { + "Languages": { + "title": "Langues", + "description": "Liste des langues disponibles" + } + } + }, + "ModulesAutoInstalled": { + "description": "L'indicateur indique que les modules sont automatiquement installés", + "title": "Modules installés" + }, + "ModulesAutoInstallState": { + "title": "État d'auto-installation des modules", + "description": "État actuel de l'assistant d'auto-installation des modules" + }, + "SetupStep": { + "title": "Étape de configuration actuelle", + "description": "Étape actuelle dans l'assistant de configuration" + }, + "SampleDataState": { + "title": "État des données d'exemple", + "description": "État actuel de l'assistant de données d'exemple" + }, + "SendDiagnosticData": { + "title": "Envoyer des données de diagnostic", + "description": "Envoyer les données de diagnostic de VC Platform à VC. Ne peut être désactivé qu'avec l'achat d'une licence" + }, + "Platform": { + "Security": { + "AccountTypes": { + "description": "Dictionnaire pour les types de compte possibles", + "title": "Types de compte" + }, + "DefaultAccountType": { + "title": "Type de compte par défaut", + "description": "Valeur par défaut pour le type de compte lors de la création d'un nouveau compte" + }, + "DefaultAccountStatus": { + "title": "Statut de compte par défaut", + "description": "Valeur par défaut pour le statut du compte lors de la création d'un nouveau compte" + }, + "DefaultExternalAccountStatus": { + "title": "Statut de compte externe par défaut", + "description": "Valeur par défaut pour le statut du compte lors de la création d'un nouveau compte pendant une connexion externe" + }, + "EnablePruneExpiredTokensJob": { + "description": "Active la suppression des jetons/autorisations expirés et invalides", + "title": "Supprimer les jetons expirés" + }, + "CronPruneExpiredTokensJob": { + "description": "Expression Cron pour la tâche de suppression des jetons/autorisations expirés et invalides", + "title": "Cron pour la tâche de suppression des jetons" + }, + "FileExtensionsBlackList": { + "description": "Extensions de fichiers interdites au téléchargement par la plateforme (en plus de 'FileExtensionsBlackList' dans appsettings.json)", + "title": "Liste noire" + }, + "FileExtensionsWhiteList": { + "description": "Extensions de fichiers autorisées au téléchargement par la plateforme (en plus de 'FileExtensionsWhiteList' dans appsettings.json)", + "title": "Liste blanche" + } + }, + "UI": { + "MainMenu": { + "State": { + "description": "État persistant du menu principal", + "title": "État persistant du menu principal" + } + }, + "Language": { + "description": "Langue par défaut (code à deux lettres de ISO 639-1, insensible à la casse). Exemple : fr, en", + "title": "Langue" + }, + "RegionalFormat": { + "description": "Format régional par défaut (code de locale CLDR, avec tiret ou underscore comme délimiteur, insensible à la casse). Exemple : fr, fr_FR, sr_Cyrl, sr_Cyrl_RS", + "title": "Format régional" + }, + "TimeZone": { + "description": "Fuseau horaire par défaut (nom de fuseau horaire IANA [base de données tz], exactement comme dans la base de données, sensible à la casse). Exemples : Europe/Paris, America/New_York", + "title": "Fuseau horaire" + }, + "UseTimeAgo": { + "description": "Lorsque défini sur true (par défaut), le système affiche la date au format 'il y a quelques secondes' lorsque c'est possible", + "title": "Utiliser le format 'il y a' quand c'est possible" + }, + "FullDateThreshold": { + "description": "Le format 'il y a' passera à un format de date complet après un certain nombre d'unités de temps", + "title": "Seuil de date complète" + }, + "FullDateThresholdUnit": { + "description": "Unité du seuil de date complète", + "title": "Unité du seuil de date complète" + }, + "Customization": { + "description": "JSON contenant les paramètres de personnalisation de l'interface utilisateur du gestionnaire", + "title": "Personnalisation de l'interface utilisateur du gestionnaire" + }, + "ShowMeridian": { + "description": "Afficher l'indicateur de l'heure de méridien (AM ou PM)", + "title": "Afficher le méridien" + } + }, + "Cache": { + "Enabled": { + "description": "Ce paramètre vous permet d'activer et de désactiver globalement la mise en cache pour toute l'application de la plateforme", + "title": "Activer ou désactiver le cache globalement" + }, + "AbsoulteExpiration": { + "description": "Spécifie la durée maximale pendant laquelle les données mises en cache sont stockées dans le cache. Format : [-][j.]hh:mm:ss[.fffffff]", + "title": "Durée de vie globale des objets en cache" + } + } + }, + "Other": { + "AccountStatuses": { + "title": "Statuts de compte", + "description": "Modifier les statuts de compte" + } + } + } + } +} diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Common.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Common.json index f6396222d6..6bebe5dddf 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Common.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Common.json @@ -4,65 +4,73 @@ "add": "Добавить", "activate": "Активировать", "assign": "Назначить", - "cancel": "Закрыть", + "cancel": "Отменить", "clear": "Очистить", "clear-all": "Очистить все", - "clone": "Скопировать", + "clone": "Клонировать", "close": "Закрыть", "confirm": "Подтвердить", - "copy-link": "Скопировать ссылку", + "copy-link": "Копировать ссылку", + "copy": "Копировать", "create": "Создать", "cut": "Вырезать", "delete": "Удалить", + "add-all": "Добавить все", + "remove-all": "Удалить все", "download": "Скачать", "edit": "Редактировать", "export": "Экспортировать", - "generate": "Создать", + "generate": "Сгенерировать", "import": "Импортировать", + "import-sample-data": "Импортировать примеры данных", "install": "Установить", "manage": "Управлять", - "more": "Больше", + "more": "Ещё", "no": "Нет", "new-folder": "Новая папка", "new-license": "Продлить лицензию", - "ok": "Ок", + "ok": "ОК", "paste": "Вставить", - "pick-selected": "Выбрать выделенные", - "preview": "Предварительный просмотр", + "pick-selected": "Выбрать выделенное", + "preview": "Предпросмотр", "open-browser": "Открыть в браузере", - "redo": "Переделать", + "redo": "Повторить", "refresh": "Обновить", "remove": "Удалить", "reset": "Сбросить", - "restart": "Перезагрузить", + "restart": "Перезапустить", "save": "Сохранить", "send": "Отправить", - "select-all": "Выбрать Все", + "select-all": "Выбрать все", + "set-to-default": "Установить по умолчанию", "start-export": "Начать экспорт", "settings": "Настройки", - "sign-out": "Выход", + "sign-out": "Выйти", "undo": "Отменить", - "uninstall": "Деинсталлировать", - "unselect-all": "Отменить выделение Всех", + "uninstall": "Удалить", + "unselect-all": "Снять выделение со всех", "update": "Обновить", "upload": "Загрузить", "yes": "Да", "add-new-property": "Добавить новое свойство", - "manage-type-properties": "Управление типом свойств", + "manage-type-properties": "Типы свойств", "manage-profile": "Управление профилем", - "minimize": "Минимизировать", - "maximize": "Максимизировать", + "minimize": "Свернуть", + "maximize": "Развернуть", "stop-sending": "Остановить отправку", - "set-active": "Сделать Активным", + "set-active": "Сделать активным", "reject-user": "Отклонить пользователя", "change-password": "Изменить пароль", - "unlock-account": "Разблокировать учетную запись", + "unlock-account": "Разблокировать аккаунт", + "lock-account": "Заблокировать аккаунт", "today": "Сегодня", "time": "Время", "now": "Сейчас", "date": "Дата", - "see-details": "Подробнее", - "dismiss": "Пропустить", + "see-details": "Посмотреть детали", + "dismiss": "Закрыть", + "hide-empty-property-values": "Скрыть пустые значения", + "show-empty-property-values": "Показать пустые значения", "titles": { "refresh": "Обновить", "new-folder": "Новая папка", @@ -73,12 +81,14 @@ "no-data": "Нет данных", "count": "Количество", "loading": "Загрузка...", - "item-not-found": "Ошибка: не найден" + "item-not-found": "Ошибка: Не найдено" }, "placeholders": { - "n-a": "N/A", - "no-file": "Выбрать файл", - "search-keyword": "Поиск по ключевому слову..." + "n-a": "Н/Д", + "no-file": "Выберите файл", + "search-keyword": "Поиск по ключевому слову...", + "select-value": "Выберите значение", + "select-values": "Выберите значение" }, "dialogs": { "delete": { @@ -89,45 +99,45 @@ "properties": { "short-text": { "title": "Короткий текст", - "description": "Текстовые значения менее 1024 символов." + "description": "Текстовые значения до 1024 символов" }, "long-text": { - "title": "Длинный текст.", - "description": "Текст без ограничения размера." + "title": "Длинный текст", + "description": "Текст без ограничения размера" }, "integer": { - "title": "Целое", - "description": "Целое число." + "title": "Целое число", + "description": "Целое число" }, "decimal": { - "title": "Десятичное Число", - "description": "Десятичное число с точностью 18 и шкалой 4." + "title": "Десятичное число", + "description": "Десятичное число с точностью 18 и масштабом 4" }, "date-time": { "title": "Дата и время", - "description": "Выбрать дату." + "description": "Выберите дату" }, "boolean": { - "title": "Логический тип данных", - "description": "Тип переключения." + "title": "Логическое значение", + "description": "Тип переключателя" }, "html": { "title": "HTML", - "description": "Разметка HTML." + "description": "HTML-разметка" }, "undefined": { "title": "Не определено" }, "image": { "title": "Изображение", - "description": "Тип изображения." + "description": "Тип изображения" } }, "genericValueInput": { "placeholders": { "short-text": "Введите короткий текст", "secure-string": "Введите секретный текст", - "email": "Введите адрес электронной почты", + "email": "Введите email", "url": "Введите URL", "long-text": "Введите длинный текст", "integer": "Введите целое число", @@ -136,20 +146,43 @@ "short-text-multivalue": "Добавить значение", "integer-multivalue": "Добавить целое число", "number-multivalue": "Добавить десятичное число", - "short-text-dictionary": "Выбрать значение", - "short-text-dictionary-multivalue": "Выбрать значение", - "short-text-multilang": "Ввести значение", - "long-text-multilang": "Ввести значение", + "short-text-dictionary": "Выберите значение", + "short-text-dictionary-multivalue": "Выберите значение", + "short-text-multilang": "Введите значение", + "long-text-multilang": "Введите значение", "short-text-multivalue-multilang": "Добавить значение", - "short-text-dictionary-multilang": "Выбрать значение", - "short-text-dictionary-multivalue-multilang": "Выбрать значение", - "long-text-dictionary-multivalue-multilang": "Выбрать значение" - }, - "short-text-input": { - "placeholder": "Введите значение", - "required": "Обязательное поле", - "maxLength": "Значение в данном поле не должно превышать {{number}} символов" + "short-text-dictionary-multilang": "Выберите значение", + "short-text-dictionary-multivalue-multilang": "Выберите значение", + "long-text-dictionary-multivalue-multilang": "Выберите значение" } + }, + "short-text-input": { + "placeholder": "Введите значение", + "required": "Это поле обязательно для заполнения", + "maxLength": "Это поле не должно содержать более {{number}} символов" + }, + "validators": { + "uriWithoutQuery": { + "error": "Неверный формат URI. Убедитесь, что URI не содержит параметров запроса" + } + }, + "errors": { + "generic-error": "Ошибка", + "400": "Неверный запрос", + "401": "Не авторизован", + "403": "Доступ запрещен", + "404": "Не найдено", + "405": "Метод не разрешен", + "406": "Неприемлемо", + "407": "Требуется аутентификация прокси", + "408": "Время ожидания запроса истекло", + "409": "Конфликт", + "429": "Слишком много запросов", + "500": "Внутренняя ошибка сервера", + "501": "Не реализовано", + "502": "Плохой шлюз", + "503": "Сервис недоступен", + "504": "Время ожидания шлюза истекло" } } -} +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Platform.json b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Platform.json index 9281fa5628..7d5e021271 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Platform.json +++ b/src/VirtoCommerce.Platform.Web/wwwroot/Localizations/ru.VirtoCommerce.Platform.json @@ -2,15 +2,15 @@ "platform": { "menu": { "home": "Главная", - "browse": "Просмотреть", + "browse": "Обзор", "configuration": "Конфигурация", "notifications": "Уведомления", - "more": "Больше", + "more": "Ещё", "settings": "Настройки", "dynamic-properties": "Динамические свойства", "security": "Безопасность", "modules": "Модули", - "export-import": "Экспорт & Импорт", + "export-import": "Экспорт и импорт", "user-profile": "Профиль пользователя", "assets": "Ресурсы", "toggle-favorites": "Shift + Пробел для переключения избранного", @@ -21,13 +21,21 @@ }, "blades": { "system-info": { - "title": "Информация о платформе" + "title": "Информация о платформе", + "labels": { + "clr-version": "Версия CLR", + "environment-name": "Название среды", + "is-64-bit-os": "64-битная операционная система", + "is-64-bit-process": "64-битный процесс", + "database-provider": "Провайдер базы данных" + } }, "asset-list": { "title": "Управление ресурсами", + "bread-crumb-top": "Все ресурсы", "labels": { - "picture": "Картинка", - "name": "Название", + "picture": "Изображение", + "name": "Имя", "size": "Размер", "modified": "Изменено", "actions": "Действия", @@ -38,100 +46,117 @@ "asset-upload": { "title": "Загрузка ресурса", "labels": { - "select-files": "Выбрать файлы", + "select-files": "Выберите файлы", "drag-note": "Перетащите файлы сюда", "progress": "Прогресс", - "asset-uploaded": "Загружено ресурсов." + "asset-uploaded": "Ресурс(ы) загружен(ы)" }, "placeholders": { - "image-url": "Вставьте URL файла" + "image-url": "Вставьте URL файла сюда" } }, "operation-list": { "labels": { - "login": "Вход", + "login": "Логин", "details": "Подробности", "time": "Время" } }, "dynamicObject-list": { "title": "Типы динамических объектов", - "subtitle": "Выбрать тип объекта для управления динамическими свойствами", + "subtitle": "Выберите тип объекта для управления динамическими свойствами", "labels": { - "no-objects": "Нет объектов, поддерживающих динамические свойства." + "no-objects": "Пока нет объектов, поддерживающих динамические свойства" } }, "dynamicProperty-detail": { - "title": "Управление свойствами", - "subtitle": "Управление свойствами", + "title": "Управление свойством", + "subtitle": "Управление свойством", "subtitle-new": "Новое свойство", "labels": { - "property-name": "Название свойства", + "property-name": "Имя свойства", "required": "Обязательное", "multivalue": "Многозначное", "multilingual": "Многоязычное", "dictionary": "Словарь", "description": "Описание", - "display-order": "Отображение заказа", - "display-name": "Отображаемое название", + "display-order": "Порядок отображения", + "display-name": "Отображаемое имя", "value-type": "Тип значения", - "dictionary-values": "Значения словаря", + "dictionary-values": "Словарные значения", "manage-dictionary": "Управление словарем" }, "placeholders": { "description": "Введите описание свойства", - "display-name": "Введите отображаемое название...", - "display-order": "Отображение заказа" + "display-name": "Введите отображаемое имя...", + "display-order": "Порядок отображения" }, "validations": { - "multivalue": "Многозначное свойство может иметь тип ShortText, Integer или Decimal.", - "multilingual": "Только текстовые значения или значения HTML могут быть многоязычными.", - "dictionary": "Поддерживаются только словари типа ShortText." + "multivalue": "Многозначное свойство может иметь только тип значения ShortText, Integer или Decimal", + "multilingual": "Только текст или HTML значение может быть многоязычным", + "dictionary": "Поддерживаются только словари с типом значения ShortText" } }, "dynamicProperty-list": { "subtitle": "Управление динамическими свойствами", "labels": { - "no-properties": "Нет динамических свойств." + "no-properties": "Пока нет динамических свойств" } }, + "notifications-menu": { + "subtitle": "Работа с системой уведомлений" + }, "property-dictionary": { "title": "Значения словаря", "subtitle": "Управление значениями словаря", "labels": { "edit-value": "Редактировать значение", "new-value": "Новое значение", - "dictionary-name": "Название словаря", + "dictionary-name": "Имя записи словаря", "localized-values": "Локализованные значения", "current-values": "Текущие значения", - "name": "Название", + "name": "Имя", "values": "Значения" }, "validations": { - "dictionary-name-required": "Обязательное", - "dictionary-name": "Найдено дублирующее название", - "localized-values-required": "Обязательное", - "localized-values": "Найдено дублирующее название", - "dictionary": "Поддерживаются только словари типа ShortText." + "dictionary-name-required": "Обязательно", + "dictionary-name": "Найдено дублирующееся имя", + "localized-values-required": "Обязательно", + "localized-values": "Найдено дублирующееся имя", + "dictionary": "Поддерживаются только словари с типом значения ShortText" }, "placeholders": { - "dictionary-name": "Введите название", + "dictionary-name": "Введите имя", "localized-values": "Введите значение" } }, "propertyValue-list": { - "title": "Значения свойств", + "title": "Динамические свойства", + "subtitle": "", "labels": { "header": "Значения свойств", - "no-properties": "У этого объекта еще нет динамических свойств. Нажмите 'Управление типами свойств' для создания новых. Закройте и откройте повторно текущий объект для загрузки динамических свойств." + "no-properties": "У этой сущности пока нет динамических свойств. Нажмите 'Типы свойств' и создайте некоторые свойства. Закройте и снова откройте текущее представление сущности, чтобы загрузить динамические свойства" + } + }, + "edit-array": { + "validations": { + "new-value-required": "Обязательно" + }, + "labels": { + "new-value": "Новое значение", + "current-values": "Текущие значения", + "values": "Значения" + }, + "placeholders": { + "value": "Введите значение" } }, "export-main": { "title": "Экспорт данных", "labels": { - "platform-entries": "Позиции платформы", + "platform-entries": "Записи платформы", "choose-modules": "Выберите модули для экспорта", - "download-url": "Загрузить Url", + "download-url": "URL для скачивания", "errors": "Ошибки", "start": "Начало", "end": "Конец" @@ -142,8 +167,8 @@ "description": "Аккаунты и роли" }, "binary": { - "title": "Двоичный код", - "description": "Двоичные данные" + "title": "Бинарные данные", + "description": "Бинарные данные" }, "settings": { "title": "Настройки", @@ -159,17 +184,17 @@ "title": "Импорт данных", "labels": { "start-import": "Начать импорт", - "select-file": "Выберите файл .zip для импорта. Файл должен быть создан путем экспорта данных Commerce Manager.", - "drag-note": "Перетащите файл .zip для импорта. Файл должен быть создан путем экспорта данных Commerce Manager.", - "upload-failed": "Загрузка файла не удалась", + "select-file": "Выберите .zip файл для импорта. Файл должен быть создан экспортом данных Commerce Manager", + "drag-note": "Перетащите .zip файл для импорта. Файл должен быть создан экспортом данных Commerce Manager", + "upload-failed": "Сбой загрузки", "upload-progress": "Прогресс загрузки", - "import-progress": "Процесс импорта", - "import-finished": "Импорт завершён", - "import-data-information": "Информация об импорте данных", + "import-progress": "Прогресс импорта", + "import-finished": "Импорт завершен", + "import-data-information": "Информация об импортируемых данных", "author": "Автор", - "data-file-created": "Создан файл с данными", - "created-platform-version": "Создан в версии платформы", - "platform-entries": "Позиции платформы", + "data-file-created": "Файл данных создан", + "created-platform-version": "Создано в версии платформы", + "platform-entries": "Записи платформы", "choose-modules": "Выберите модули для импорта", "no-data": "Нет данных", "errors": "Ошибки", @@ -182,8 +207,8 @@ "description": "Аккаунты и роли" }, "binary": { - "title": "Двоичный код", - "description": "Двоичные данные" + "title": "Бинарные данные", + "description": "Бинарные данные" }, "settings": { "title": "Настройки", @@ -200,149 +225,61 @@ "menu": { "export": { "title": "Экспорт", - "description": "Данные будут сохранены в файл, чтобы впоследствии их можно было импортировать." + "description": "Данные будут сохранены в файл, чтобы их можно было импортировать позже" }, "import": { "title": "Импорт", - "description": "Импорт данных из экспортированного файла." + "description": "Импорт данных из экспортированного файла" } } }, - "notification-journal-details": { - "title": "Сведения об уведомлении", - "labels": { - "notification-info": "Информация Уведомления", - "display-name": "Отображаемое название", - "source": "Источник", - "sending-gateway": "Канал отправления", - "active": "Активно", - "not-active": "Неактивно", - "start-sending-date": "Начать отправку данных", - "sent-success": "Успешность отправки", - "not-sent": "Не отправлено", - "sent": "Отправлено", - "sent-date": "Отправленные данные", - "sender": "Отправитель", - "recipient": "Получатель", - "sending-attempts-count": "Количество попыток отправки", - "last-fail-attempt-date": "Дата последней неудачной попытки", - "last-fail-attempt-message": "Сообщение последней неудачной попытки" - } - }, - "notifications-edit-template": { - "title": "Изменить шаблон уведомления", - "title-new": "Создать шаблон уведомления", - "labels": { - "note": "Это список параметров уведомления. Вы можете вставить этот код, и значения параметров будут добавлены в Ваш шаблон", - "parameter-name": "Название параметра", - "parameter-description": "Описание параметра", - "paremeter-code": "Код параметра в шаблоне (скопируйте этот код и вставьте в любом месте вашего шаблона)", - "language": "Язык", - "blank-note": "Оставьте поле пустым для использования языка по умолчанию", - "sender": "Отправитель", - "recipient": "Получатель", - "subject": "Тема", - "body": "Основной текст" - }, - "placeholders": { - "language": "Выбрать..." - } - }, - "notifications-menu": { - "subtitle": "Работа с системой уведомлений" - }, - "notification-templates-list": { - "title": "Шаблоны уведомлений", - "labels": { - "subject": "Тема", - "body": "Основной текст", - "language": "Язык" - } - }, - "notifications-test-resolve": { - "title": "Предварительный просмотр уведомления", - "subtitle": "Введите тестовые данные для {{type}}", - "labels": { - "test": "Тест", - "enter-test-data": "Введите тестовые данные" - } - }, - "notifications-test-send": { - "title": "Отправка уведомлений", - "subtitle": "Введите тестовые данные для {{type}}", - "labels": { - "send": "Отправка", - "enter-test-data": "Введите тестовые данные" - } - }, - "notifications-journal": { - "title": "История уведомлений", - "subtitle": "Просмотр истории уведомлений", - "labels": { - "display-name": "Отображаемое название", - "recipient": "Получатель", - "sent-date": "Дата отправки", - "channel": "Канал", - "error": "Ошибка", - "processing": "Обработка", - "success": "Успех", - "no-notifications": "Пока нет уведомлений" - } - }, - "notifications-list": { - "title": "Уведомления", - "subtitle": "Просмотр шаблонов уведомлений", - "labels": { - "no-notifications": "Пока нет зарегистрированных уведомлений" - } - }, "resolve-result": { "title": "Предварительный просмотр результата", "labels": { "subject": "Тема", - "body": "Основной текст" + "body": "Тело" } }, "module-settings-detail": { - "title": "Настройки модуля", - "hide-description": "Скрыть" + "title": "Настройки модуля" }, "module-wizard-progress-step": { "title-install": "Установка модуля", "title-update": "Обновление модуля", - "title-uninstall": "Деинсталляция модуля", + "title-uninstall": "Удаление модуля", "labels": { "start": "Начало", "end": "Конец", - "progress-messages": "Сообщение о ходе выполнения", - "process-completed": "Процесс установки модуля завершен.", - "restart-application": "Перезапустить приложение сейчас или позже." + "progress-messages": "Сообщения о прогрессе", + "process-completed": "Процесс установки модуля завершен", + "restart-application": "Перезапустить приложение сейчас или позже" } }, "module-detail": { "title": "Информация о модуле", "labels": { "i-accept-the": "Я принимаю", - "license-link": "лицензия", + "license-link": "лицензионное", "license": "Лицензия", - "agreement": "соглашение.", + "agreement": "соглашение", "install-from-file": "Установить / обновить модуль из файла", - "select-module-file": "Загрузить файл модуля (.zip) за пределами центрального хранилища модулей", + "select-module-file": "Загрузите файл модуля (.zip) из внешнего источника за пределами центрального репозитория модулей", "upload-progress": "Прогресс загрузки", "module-info": "Информация о модуле", "title": "Название", - "official": "Официальный модуль {{$owner}}", - "owners": "Разработан {{$owner}}", + "official": "Официальный модуль от {{$owner}}", + "owners": "Разработано {{$owner}}", "author": "Автор", "authors": "Авторы", "id": "ID", "version": "Версия", - "project-information": "Информация о Проекте", + "project-information": "Информация о проекте", "description": "Описание", - "platform-version": "Версия Платформы", + "platform-version": "Версия платформы", "dependencies": "Зависимости", + "optional-dependencies": "Опциональные зависимости", "tags": "Теги", - "install-version": "Установленная версия", + "install-version": "Установить версию", "errors": "Ошибки" } }, @@ -350,28 +287,28 @@ "title": "Модули", "labels": { "updates": "Обновления", - "available": "Доступный", - "installed": "Установленный", + "available": "Доступные", + "installed": "Установленные", "withErrors": "Ошибки", - "advanced": "Усовершенствованный" + "advanced": "Расширенные" } }, "modules-list": { - "subtitle": "Управление Модулями", + "subtitle": "Управление модулями", "labels": { - "grouping": "Показать связки Модулей", + "grouping": "Показать наборы модулей", "ungrouped": "Другие", - "no-updates": "Обновления не найдены.", - "no-modules-part1": "Нет новых Модулей для установки.", - "no-installed-modules": "Установленные Модули не найдены.", + "no-updates": "Обновлений не найдено", + "no-modules-part1": "Нет новых модулей для установки", + "no-installed-modules": "Установленных модулей не найдено", "icon": "Иконка", - "up-to-date": "Модуль обновлен", - "update-available": "Доступно обновление для данного модуля", + "up-to-date": "Модуль актуален", + "update-available": "Доступно обновление для этого модуля", "module": "Модуль", "version": "Версия", "author": "Автор", "installed": "Установленные модули", - "manual-install-warning": "Внимание! Ручная установка модулей отключена, поскольку RefreshProbingFolderOnStart установлен в false." + "manual-install-warning": "Внимание! Модули, установленные вручную, не запустятся, так как RefreshProbingFolderOnStart имеет значение false" } }, "history": { @@ -379,36 +316,43 @@ "subtitle": "История событий", "labels": { "type": "Тип", - "title": "Название", + "title": "Заголовок", "created": "Создано", "description": "Описание" } }, "historyDetailDefault": { - "title": "Информация о событии", - "subtitle": "Информация о событии", + "title": "Детали события", + "subtitle": "Детали события", "labels": { "start": "Начало", "end": "Конец", + "elapsed": "Прошло времени", "errors": "Ошибки", - "stats": "Обработано - {{ processedCount }} из {{ totalCount }} документов" + "stats": "Обработано {{ processedCount }} из {{ totalCount }} записей" } }, "menuHeader": { "labels": { "history": "История", - "clear-recent": "Очистить все последние" + "clear-recent": "Очистить все недавние" } }, "account-changePassword": { "labels": { + "title": "Пожалуйста, введите новый пароль", + "login": "Логин", + "force-change-info": "Срок действия вашего пароля истек. Вы должны изменить пароль, чтобы продолжить использование менеджера", "current-password": "Текущий пароль", "new-password": "Новый пароль", - "repeat-password": "Повторите пароль" + "repeat-password": "Повторите новый пароль", + "cancel": "Отмена", + "save": "Изменить", + "fail": "Извините, мы не смогли сбросить пароль для этого пользователя" }, "validations": { - "current-password": "Необходимо", - "new-password": "Старый и новый пароли являются одинаковыми!", + "current-password": "Обязательно", + "new-password": "Старый и новый пароли совпадают!", "repeat-password": "Новые пароли не совпадают!" }, "placeholders": { @@ -418,21 +362,23 @@ } }, "account-resetPassword": { - "subtitle": "Смена пароля", + "subtitle": "Изменить пароль пользователя", "labels": { "new-password": "Новый пароль", "repeat-password": "Повторите пароль", - "force-password-change": "Требовать смены пароля при следующем входе" + "force-password-change": "Принудительное изменение пароля для этого пользователя при следующем входе в систему" }, "validations": { "repeat-password": "Новые пароли не совпадают!", - "invalid-token": "Токен смены пароля некорректен или срок его действия истёк", - "password-too-weak": "Новый пароль не удовлетворяет одной или нескольким политикам безопасности паролей:", - "passwordTooShort": "Длина паролей должна составлять {{parameter}} или более символов", - "passwordRequiresLower": "Пароли должны содержать хотя бы одну строчную букву ('a'-'z')", - "passwordRequiresUpper": "Пароли должны содержать хотя бы одну заглавную букву ('A'-'Z')", - "passwordRequiresDigit": "Пароли должны содержать хотя бы одну цифру ('0'-'9')", - "passwordRequiresNonAlphanumeric": "Пароли должны содержать хотя бы один знак препинания или другой специальный символ" + "invalid-token": "Токен сброса пароля недействителен или истек", + "password-too-weak": "Новый пароль не соответствует одному или нескольким правилам безопасности паролей:", + "passwordTooShort": "Пароль должен содержать не менее {{parameter}} символов", + "passwordRequiresUniqueChars": "Пароль должен содержать как минимум {{parameter}} различных символов", + "passwordRequiresLower": "Пароль должен содержать хотя бы одну строчную букву ('a'-'z')", + "passwordRequiresUpper": "Пароль должен содержать хотя бы одну заглавную букву ('A'-'Z')", + "passwordRequiresDigit": "Пароль должен содержать хотя бы одну цифру ('0'-'9')", + "passwordRequiresNonAlphanumeric": "Пароль должен содержать хотя бы один не буквенно-цифровой символ", + "recentPasswordUsed": "Вы уже использовали этот пароль. Выберите другой" }, "placeholders": { "new-password": "Введите новый пароль", @@ -440,86 +386,100 @@ } }, "account-detail": { - "title-new": "Новая учётная запись", + "title-new": "Новая учетная запись", "labels": { "user-information": "Информация о пользователе", "is-administrator": "Администратор", - "account-type": "Тип аккаунта", - "login": "Вход", - "account-state": "Состояние аккаунта", - "account-email": "Адрес электронной почты", - "locked-state": "Заблокирован", - "status": "Статус" + "account-type": "Тип учетной записи", + "login": "Логин", + "account-state": "Состояние учетной записи", + "account-email": "Email", + "locked-state": "Состояние блокировки", + "status": "Статус", + "verified": "Подтвержден", + "resend-link": "Отправить ссылку повторно", + "link-sent": "Ссылка была отправлена", + "last-login-date": "Дата последнего входа" }, "placeholders": { - "account-type": "Выбрать ...", - "email": "Введите адрес электронной почты", + "account-type": "Выберите ...", + "email": "Введите email", "user-name": "Введите имя пользователя", - "status": "Выбрать ..." + "status": "Выберите ..." } }, "account-list": { "title": "Пользователи", - "subtitle": "Сервис безопасности", + "subtitle": "Служба безопасности", "labels": { "name": "Имя", - "account-type": "Тип аккаунта", - "login": "Вход", - "state": "Состояние" + "account-type": "Тип учетной записи", + "login": "Логин", + "state": "Состояние", + "status": "Статус" + } + }, + "account-api": { + "labels": { + "api-key": "API ключ", + "is-active": "активен" + }, + "placeholders": { + "api-key": "Введите API ключ" } }, "role-detail": { - "subtitle": "Сведения о роли", + "subtitle": "Детали роли", "labels": { - "summary": "Резюме", - "name": "Название", + "summary": "Сводка", + "name": "Имя", "description": "Описание", - "assigned-permissions": "Установленные права доступа", - "permission-name": "Название", - "assigned-scopes": "Установленная сфера действия", - "no-permissions-assigned": "Права доступа не заданы" + "assigned-permissions": "Назначенные разрешения", + "permission-name": "Имя", + "assigned-scopes": "Назначенные области", + "no-permissions-assigned": "Нет назначенных разрешений" }, "placeholders": { - "name": "Введите название", + "name": "Введите имя", "description": "Введите описание" } }, "account-roles": { - "subtitle": "Назначение ролей", + "subtitle": "Назначить роли", "labels": { - "select-roles": "Выберите роль для назначения", - "no-roles": "Роли для назначения отсутствуют." + "select-roles": "Назначьте роли", + "no-roles": "Нет назначаемых ролей" } }, "account-roles-list": { "title": "", "labels": { - "assigned-roles": "Установленные роли", - "no-assigned": "Роли не установлены." + "assigned-roles": "Назначенные роли", + "no-assigned": "Нет назначаемых ролей" } }, "permission-scopes": { - "subtitle": "Конфигурация разрешенных сфер деятельности", + "subtitle": "Настройка прав доступа", "labels": { - "select-bounded-scopes": "Выбрать ограниченную сферу", - "selected": "Выбраны", - "scope-name": "Название и параметры сферы деятельности", - "no-scopes": "Нет сфер деятельности." + "select-bounded-scopes": "Выберите права доступа", + "selected": "Выбрано", + "scope-name": "Название диапазона прав и параметры", + "no-scopes": "Диапазон прав не выбран" } }, "role-permissions": { - "subtitle": "Назначение прав доступа", + "subtitle": "Назначить права", "labels": { - "select-permissions": "Выберите права доступа для назначения" + "select-permissions": "Выберите права" } }, "new-role-wizard": { - "title": "Новая Роль", + "title": "Новая роль", "labels": { - "summary": "Резюме", + "summary": "Сводка", "name": "Название", "description": "Описание", - "assign-permissions": "Назначить права доступа" + "assign-permissions": "Назначьте права" }, "placeholders": { "name": "Введите название", @@ -528,68 +488,120 @@ }, "role-list": { "title": "Роли", - "subtitle": "Сервис безопасности", + "subtitle": "Служба безопасности", "labels": { "name": "Название" } }, + "oauthapps": { + "labels": { + "clientId": "ID клиента", + "displayName": "Отображаемое имя", + "type": "Тип", + "clientSecret": "Секрет клиента", + "assigned-permissions": "Назначенные права", + "redirectUris": "URI перенаправления", + "postLogoutRedirectUris": "URI перенаправления после выхода" + }, + "placeholders": { + "clientId": "Введите ID клиента", + "displayName": "Введите отображаемое имя", + "type": "Введите тип", + "clientSecret": "Введите секрет клиента" + } + }, + "oauthapps-list": { + "title": "OAuth приложения", + "subtitle": "Служба безопасности" + }, + "oauthapps-detail": { + "title": "Редактировать OAuth приложение", + "title-new": "Создать OAuth приложение", + "subtitle": "Служба безопасности", + "labels": { + "clientSecret-warning": "Внимание! Скопируйте секрет сейчас. Он будет скрыт после закрытия блейда", + "urls": "URL-адреса" + }, + "blades": { + "edit-redirectUris": { + "title": "URI перенаправления", + "subtitle": "Управление URI перенаправления" + }, + "edit-postLogoutRedirectUris": { + "title": "URI перенаправления после выхода", + "subtitle": "Управление URI перенаправления после выхода" + } + } + }, "login": { "labels": { "sign-in": "Вход в {{title}} Менеджер", "login": "Логин", "password": "Пароль", "remember-me": "Запомнить меня", - "external-sign-in": "Войти при помощи {{displayName}}", + "external-sign-in": "Войти через {{displayName}}", "forgot-password": "Забыли пароль?", "log-in": "Войти", - "log-in-placeholder": "Введите свой адрес электронной почты или имя пользователя", - "password-placeholder": "Введите свой пароль", - "or": "или" + "log-in-placeholder": "Введите ваш email или имя пользователя", + "password-placeholder": "Введите ваш пароль", + "azure-log-in-label": "Войти в админ-сайт через Azure", + "password-log-in-type": "Системный пользователь", + "or": "или", + "signing-in": "Выполняется вход..." } }, "forgotpassword": { "title": "Забыли пароль?", "labels": { - "login": "Логин или адрес электронной почты", - "description": "Мы вышлем Вам письмо с инструкциями по восстановлению пароля.", - "success": "Письмо с инструкциями было отправлено.", - "fail": "К сожалению, пароль для данного пользователя не может быть восстановлен.", + "login": "Логин или email", + "description": "Мы отправим вам email с инструкциями по сбросу пароля", + "success": "Email с инструкциями был отправлен вам", + "fail": "Извините, мы не смогли сбросить пароль для этого пользователя", "back": "Назад", - "submit": "Принять" + "submit": "Отправить", + "time-limit": "Вы можете попробовать снова через {{countdown}}", + "time-limit-end": "Вы можете попробовать снова сейчас" }, "placeholders": { - "login-or-email": "Пожалуйста, введите логин или адрес электронной почты" + "login-or-email": "Введите логин или email" + } + }, + "access-denied": { + "title": "Доступ запрещен", + "labels": { + "message": "У вас нет доступа к этому ресурсу. Пожалуйста, обратитесь к вашему администратору", + "button": "Войти с другими учетными данными" } }, "resetpassword": { - "title": "Восстановление пароля", + "title": "Сброс пароля", "labels": { - "success": "Ваш пароль был восстановлен", - "fail": "К сожалению, пароль для данного пользователя не может быть восстановлен.", - "submit": "Восстановить", + "success": "Ваш пароль был сброшен", + "fail": "Извините, мы не смогли сбросить пароль для этого пользователя", + "submit": "Сбросить", "log-in": "Войти" } }, "license": { "title": "Текущая лицензия", - "title-new": "Новая активация лицензии", + "title-new": "Активация новой лицензии", "license-info": "Информация о лицензии", "license-activation": "Активация лицензии", "labels": { - "info-running-no-license": "Эта лицензия Virto Commerce работает на", - "info-open-source-license": "Лицензия Сообщества Open Source.", - "info0": "Приобретение или продление лицензии:", - "info1": "Отправить ", - "info2": "Мы обработаем Ваш запрос и вскоре свяжемся с Вами.", - "info3": "После получения \"Кода Активации\" и / или файла лицензии необходимо заполнить одно из полей активации ниже.", - "info4": "Система отобразит новую информацию о лицензии. Просмотрите ее и нажмите \"Активировать\" для подтверждения.", + "info-running-no-license": "Эта версия Virto Commerce работает на", + "info-open-source-license": "лицензии Open Source Community", + "info0": "Получение или продление лицензии:", + "info1": "Отправьте ", + "info2": "Мы обработаем ваш запрос и свяжемся с вами в ближайшее время", + "info3": "После получения \"Кода активации\" и/или файла лицензии, заполните одно из полей активации ниже", + "info4": "Система отобразит информацию о новой лицензии. Проверьте ее и нажмите \"Активировать\" для подтверждения", "customer": "Лицензия выдана", "type": "Тип", - "expiration": "Окончание", - "email": "Электронная почта клиента", - "request-license": "Форма запроса лицензии.", - "code-descr": "Введите полученный с лицензией \"Код Активации\" и нажмите [Enter]. Это самый быстрый способ активировать лицензию. (Требуется подключение к Интернету)", - "file-descr": "По желанию предоставляется файл с полученной Лицензией. (Активация оффлайн)", + "expiration": "Срок действия", + "email": "Email клиента", + "request-license": "Форма запроса лицензии", + "code-descr": "Введите полученный \"Код активации\" лицензии и нажмите [Enter]. Это самый быстрый способ активации лицензии (требуется подключение к интернету)", + "file-descr": "Или предоставьте полученный файл лицензии (офлайн активация)", "upload-progress": "Прогресс загрузки", "errors": "Ошибка активации" }, @@ -600,20 +612,20 @@ "new-account-wizard": { "labels": { "login": "Логин", - "email": "Электронная почта", + "email": "Email", "password": "Пароль", "repeat-password": "Повторите пароль", - "assign-roles": "Установленные роли" + "assign-roles": "Назначьте роли" }, "placeholders": { - "email": "Введите адрес электронной почты", + "email": "Введите email", "login": "Введите логин", "password": "Введите новый пароль", "repeat-password": "Повторите новый пароль" }, "validations": { - "repeat-password": "Введённые пароли не совпадают!", - "password-too-weak": "Введённый пароль не удовлетворяет одной или нескольким политикам безопасности паролей:" + "repeat-password": "Введенные пароли не совпадают!", + "password-too-weak": "Введенный пароль не соответствует одной или нескольким правилам безопасности паролей:" } }, "security-main": { @@ -624,14 +636,14 @@ "title": "Настройки" }, "setting-dictionary": { - "subtitle": "Управление значениями словаря", + "subtitle": "Управление словарными значениями", "labels": { "new-value": "Пожалуйста, введите значение", - "current-values": "Текущее значение", + "current-values": "Текущие значения", "value": "Значение" }, "validations": { - "new-value-required": "Необходимо", + "new-value-required": "Обязательно", "new-value": "Найдено дублирующее значение" }, "placeholders": { @@ -639,36 +651,42 @@ } }, "settings-detail": { - "title": "Настройки значений" + "title": "Значения настроек", + "hide-description": "Скрыть" }, "settingGroup-list": { "title": "Настройки", "bread-crumb-top": "Все настройки" }, + "settings-uploader": { + "drag-drop-comment": "Перетащите файл сюда", + "or": "или", + "browse-your-files": "выберите файлы" + }, "localizable-setting-value-list": { "subtitle": "Управление значениями словаря" }, "localizable-setting-value-details": { - "title": "Редактирование значения словаря", + "title": "Редактировать значение словаря", "alias": "Системное значение" }, "user-profile": { "title": "Профиль пользователя", "labels": { "language": "Язык", - "language-description": "Язык отображения. Clear to use browser or fallback language.", + "language-description": "Язык отображения. Очистите, чтобы использовать язык браузера или язык по умолчанию", "regional-format": "Региональный формат", - "regional-format-description": "Региональный формат номеров, валюты, даты и времени. Clear to use browser or fallback regional format.", + "regional-format-description": "Региональный формат чисел, валюты, даты и времени. Очистите, чтобы использовать формат браузера или формат по умолчанию", "time-zone": "Часовой пояс", - "time-zone-description": "Текущий часовой пояс пользователя в формате IANA (tz database). Выберите ближайший город в вашем часовом поясе. Clear to use browser or fallback time zone.", - "use-time-ago": "Используйте time ago формат, если это возможно", - "full-date-threshold-group": "Используйте полный формат даты для дат, раньше...", + "time-zone-description": "Текущий часовой пояс пользователя в формате IANA (база данных tz). Выберите ближайший город в вашем часовом поясе. Очистите, чтобы использовать часовой пояс браузера или пояс по умолчанию", + "use-time-ago": "Использовать формат 'время назад', если это возможно", + "full-date-threshold-group": "Использовать полный формат даты для дат, предшествующих...", "full-date-threshold-description": "Числовое значение единиц времени", - "full-date-threshold-unit-description": "Единица времени (то есть часы или годы)" + "full-date-threshold-unit-description": "Единица времени (например, часы или годы)" }, "placeholders": { "full-date-threshold": "Введите пороговое значение", - "full-date-threshold-unit": "Выберите измерение для даты порогового значения" + "full-date-threshold-unit": "Выберите единицу изменерения порогового значения" }, "full-date-threshold-units": { "Never": "Никогда", @@ -686,34 +704,39 @@ "templates": { "sampleDataChoose": { "labels": { - "choose-sample-data-type": "Выберите образец типа данных", + "choose-sample-data-type": "Выберите тип примера данных", "size": "размер", "version": "версия" } }, "sampleDataInitialization": { "labels": { - "sample-data-initialization": "Пример инициализации данных", - "starting-initialization": "Запуск инициализации исходных данных...", + "sample-data-initialization": "Инициализация примера данных", + "starting-initialization": "Начало инициализации примера данных...", "errors": "Ошибки", "start": "Начало", "end": "Конец" } }, "licensing": { - "license-absent": "Лицензия сообщества", - "license-present": "Лицензия {{type}}, действительно до {{expirationDate | amParse | date}}", - "community": "Работа с общественной версией, нажмите, чтобы запросить коммерческую лицензию.", - "expired": "Срок действия лицензии истёк {{expirationDate | amParse | date}}, пожалуйста, обновите.", + "license-absent": "Общественная лицензия", + "license-present": "Лицензия {{type}}, истекает {{expirationDate | amParse | date}}", + "community": "Работает общественная версия, нажмите для запроса коммерческой лицензии", + "expired": "Ваша лицензия истекла {{expirationDate | amParse | date}}, пожалуйста, продлите ее", "purchase": "Купить", - "renew": "Обновить", - "expiration-date": "Действительна до" + "renew": "Продлить", + "expiration-date": "Дата истечения" + }, + "password-expiry": { + "expire-days": "Для защиты вашей учетной записи вам нужно будет изменить пароль через {{count}} дней. ", + "expire-today": "Для защиты вашей учетной записи вам нужно будет изменить пароль сегодня. ", + "change-link": "Изменить сейчас" }, "modulesAutoInstallation": { "labels": { "module-auto-installation": "Автоматическая установка модулей", - "loading": "Поиск информации о модулях...", - "finished": "Установка завершена. Нажмите Перезагрузить, чтобы продолжить.", + "loading": "Получение информации о модулях...", + "finished": "Установка завершена. Нажмите Перезапустить, чтобы продолжить", "start": "Начало", "end": "Конец" } @@ -731,8 +754,8 @@ "title": "Настройки" }, "accountApi": { - "title": "Аккаунты API", - "blade-subtitle": "Аккаунты API" + "title": "API ключ", + "blade-subtitle": "API ключ" }, "accountRoles": { "title": "Роли", @@ -741,67 +764,75 @@ }, "dialogs": { "folders-delete": { - "title": "Подтверждение удаления", + "title": "Подтвердить удаление", "message": "Вы уверены, что хотите удалить выбранные папки или файлы?" }, "properties-save": { - "title": "Сохранение изменений", + "title": "Сохранить изменения", "message": "Свойства были изменены. Вы хотите сохранить изменения?" }, "notification-template-save": { - "title": "Сохранение изменений", + "title": "Сохранить изменения", "message": "Шаблон уведомления был изменен. Вы хотите сохранить изменения?" }, "role-save": { - "title": "Сохранение изменений", + "title": "Сохранить изменения", "message": "Роль была изменена. Вы хотите сохранить изменения?" }, "roles-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить выбранные Роли?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить выбранные роли?" }, "account-save": { - "title": "Сохранение изменений", - "message": "Аккаунт был изменен. Вы хотите сохранить изменения?" + "title": "Сохранить изменения", + "message": "Учетная запись была изменена. Вы хотите сохранить изменения?" }, "account-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить выбранные Аккаунты?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить выбранные учетные записи?" + }, + "oauthapps-save": { + "title": "Сохранить изменения", + "message": "OAuth приложение было изменено. Вы хотите сохранить изменения?" + }, + "oauthapps-delete": { + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить выбранное OAuth приложение?" }, "dynamic-property-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить это Динамическое Свойство?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить это динамическое свойство?" }, "settings-value-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить выбранные Значения?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить выбранные значения?" }, "settings-save": { - "title": "Сохранение изменений", + "title": "Сохранить изменения", "message": "Настройки были изменены. Вы хотите сохранить изменения?" }, "settings-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить выбранные Настройки?" + "title": "Подтвердить удаление", + "message": "Настройки были изменены. Вы хотите сохранить изменения?" }, "localizable-setting-value-delete": { - "title": "Подтверждение удаления", + "title": "Подтвердить удаление", "message": "Вы уверены, что хотите удалить выбранные значения словаря?" }, "localizable-setting-value-save": { - "title": "Сохранение изменений", - "message": "Значение словаря было изменено. Вы хотите сохранить изменения?" + "title": "Сохранить изменения", + "message": "Это словарное значение было изменено. Вы хотите сохранить изменения?" }, "email-sending-success": { - "title": "Успех отправки", - "message": "Письмо было успешно отправлено!" + "title": "Успешная отправка", + "message": "Электронное письмо было успешно отправлено!" }, "email-send-error": { "title": "Ошибка при отправке", - "message": "Письмо не было отправлено! Ошибка: {{error}}" + "message": "Электронное письмо не было отправлено! Ошибка: {{error}}" }, "dictionary-items-delete": { - "title": "Подтверждение удаления", + "title": "Подтвердить удаление", "message": "Вы уверены, что хотите удалить {{quantity}} выбранных элементов словаря?" }, "module-action": { @@ -811,32 +842,81 @@ "message0-install": "Вы собираетесь установить:", "message0-update": "Вы собираетесь обновить:", "message0-delete": "Вы собираетесь удалить:", - "message1-install": "Также будут установлены следующие зависимости:", - "message1-delete": "Также будут удалены следующие связанные модули:", - "message2-install": "Установить подбор и зависимости?", - "message2-update": "Обновить подбор и зависимости?", - "message2-delete": "Удалить этот и ВСЕ зависящие модули?" + "message1-install": "Следующие зависимости также будут установлены:", + "message1-delete": "Следующие зависимые модули также будут удалены:", + "message2-install": "Установить выбранное и зависимости?", + "message2-update": "Обновить выбранное и зависимости?", + "message2-delete": "Удалить это и ВСЕ зависимые модули?" }, "module-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить этот Модуль?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить этот модуль?" }, "api-key-delete": { - "title": "Подтверждение удаления", - "message": "Вы уверены, что хотите удалить этот ключ API?" + "title": "Подтвердить удаление", + "message": "Вы уверены, что хотите удалить этот API ключ?" }, "app-restart": { "title": "Завершение работы приложения", - "message": "Приложению требуется перезапуск (в зависимости от среды, хост перезапустит его, либо потребуется сделать это вручную). Вы действительно хотите завершить работу приложения?" + "message": "Перезапустите приложение, чтобы применились изменения. В зависимости от вашего хостинг-сервиса, приложение может перезапуститься автоматически или может потребоваться ручной перезапуск. Вы уверены, что хотите закрыть приложение сейчас?" }, "error-details": { - "title": "Сведения об ошибке" + "title": "Подробнее об ошибке" + }, + "impersonate-no-url": { + "title": "Вход от имени", + "message": "URL магазина не был добавлен в настройки магазина. Пожалуйста, обратитесь к администратору" + }, + "asset-upload-error": { + "title": "Ошибка загрузки", + "message": "Выберите папку! Нельзя загрузить файл в корневую директорию!" + }, + "run-import": { + "title": "Подтверждение импорта", + "message": "Вы уверены, что хотите импортировать примеры данных?" }, "create-folder": { - "title": "Название директории должно следовать следующим правилам:\n Длина имени дериктории от 3 до 63 символов.\n Имя дериктории начинается с цифры или буквы и содержит только цифры(0-9), буквы(а-я) и символ подчёркивания (-).\n За каждым символом подчёркивания полжна следовать буква или цифра. Повторяющиеся символы подчёркивания не допустимы!.\n Все буквы должны быть в нижнем регистре." + "title": "Имя папки должно соответствовать следующим правилам именования:\n Имя папки должно быть длиной от 3 до 63 символов.\n Имя папки должно начинаться с буквы или цифры и может содержать только буквы, цифры и дефис (-).\n Каждый дефис (-) должен непосредственно предшествовать букве или цифре и следовать за ней; последовательные дефисы не допускаются.\n Все буквы в имени папки должны быть в нижнем регистре" + }, + "storefront-cache-reset-successfully": { + "title": "Сброс кэша", + "message": "Кэш фронтенд-приложения был успешно сброшен" } + }, + "commands": { + "login-on-behalf": "Войти от имени", + "reset-storefront-cache": "Сбросить кэш" } }, + "permissions": { + "platform:asset:access": "Просмотр ресурсов в главном меню", + "platform:asset:delete": "Удаление ресурсов платформы", + "platform:asset:update": "Изменение ресурсов платформы", + "platform:asset:create": "Загрузка новых ресурсов платформы", + "platform:asset:read": "Скачивание ресурсов платформы", + "platform:module:read": "Просмотр деталей модуля", + "platform:module:access": "Просмотр модулей в главном меню", + "platform:module:manage": "Установка/удаление модулей", + "platform:setting:read": "Чтение настроек платформы", + "platform:setting:access": "Просмотр настроек в главном меню", + "platform:setting:update": "Изменение настроек платформы", + "platform:dynamic_properties:read": "Просмотр деталей динамических свойств", + "platform:dynamic_properties:create": "Создание новых динамических свойств", + "platform:dynamic_properties:access": "Просмотр динамических свойств в главном меню", + "platform:dynamic_properties:update": "Изменение динамических свойств", + "platform:dynamic_properties:delete": "Удаление динамических свойств", + "platform:security:read": "Просмотр деталей пользователей и ролей", + "platform:security:create": "Создание новых пользователей и ролей", + "platform:security:access": "Просмотр безопасности в главном меню", + "platform:security:update": "Изменение пользователей и ролей", + "platform:security:delete": "Удаление пользователей и ролей", + "platform:security:verifyEmail": "Изменение состояния подтверждения и отправка письма для подтверждения", + "background_jobs:manage": "Доступ к консоли Hangfire", + "platform:exportImport:access": "Просмотр Экспорта/Импорта в главном меню", + "platform:import": "Импорт данных платформы и модулей", + "platform:export": "Экспорт данных платформы и модулей", + "platform:security:loginOnBehalf": "Вход от имени клиента" + }, "settings": { "VirtoCommerce": { "Core": { @@ -846,7 +926,119 @@ "description": "Список доступных языков" } } + }, + "ModulesAutoInstalled": { + "description": "Флаг указывает, что модули установлены автоматически", + "title": "Модули установлены" + }, + "ModulesAutoInstallState": { + "title": "Состояние автоустановки модулей", + "description": "Текущее состояние мастера автоустановки модулей" + }, + "SetupStep": { + "title": "Текущий шаг установки", + "description": "Текущий шаг в мастере установки" + }, + "SampleDataState": { + "title": "Состояние примера данных", + "description": "Текущее состояние мастера примера данных" + }, + "SendDiagnosticData": { + "title": "Отправлять диагностические данные", + "description": "Отправлять диагностические данные VC Platform в VC. Может быть отключено только при покупке лицензии" + }, + "Platform": { + "Security": { + "AccountTypes": { + "description": "Словарь для возможных типов учетных записей", + "title": "Типы учетных записей" + }, + "DefaultAccountType": { + "title": "Тип учетной записи по умолчанию", + "description": "Значение по умолчанию для типа учетной записи при создании новой учетной записи" + }, + "DefaultAccountStatus": { + "title": "Статус учетной записи по умолчанию", + "description": "Значение по умолчанию для статуса учетной записи при создании новой учетной записи" + }, + "DefaultExternalAccountStatus": { + "title": "Статус внешней учетной записи по умолчанию", + "description": "Значение по умолчанию для статуса учетной записи при создании новой учетной записи во время внешнего входа" + }, + "EnablePruneExpiredTokensJob": { + "description": "Включает очистку просроченных и недействительных токенов/авторизаций", + "title": "Очистка просроченных токенов" + }, + "CronPruneExpiredTokensJob": { + "description": "Cron-выражение для задачи очистки просроченных и недействительных токенов/авторизаций", + "title": "Cron для задачи очистки токенов" + }, + "FileExtensionsBlackList": { + "description": "Расширения файлов, запрещенные для загрузки платформой (дополнительно к 'FileExtensionsBlackList' в appsettings.json)", + "title": "Черный список" + }, + "FileExtensionsWhiteList": { + "description": "Расширения файлов, разрешенные для загрузки платформой (дополнительно к 'FileExtensionsWhiteList' в appsettings.json)", + "title": "Белый список" + } + }, + "UI": { + "MainMenu": { + "State": { + "description": "Сохраненное состояние главного меню", + "title": "Сохраненное состояние главного меню" + } + }, + "Language": { + "description": "Язык по умолчанию (двухбуквенный код из ISO 639-1, без учета регистра). Пример: ru, en", + "title": "Язык" + }, + "RegionalFormat": { + "description": "Региональный формат по умолчанию (код локали CLDR, с тире или подчеркиванием в качестве разделителя, без учета регистра). Пример: ru, ru_RU, sr_Cyrl, sr_Cyrl_RS", + "title": "Региональный формат" + }, + "TimeZone": { + "description": "Часовой пояс по умолчанию (название часового пояса IANA [база данных tz], точно как в базе данных, с учетом регистра). Примеры: Europe/Moscow, America/New_York", + "title": "Часовой пояс" + }, + "UseTimeAgo": { + "description": "Когда установлено значение true (по умолчанию), система отображает дату в формате 'несколько секунд назад', если это возможно", + "title": "Использовать формат 'время назад', когда возможно" + }, + "FullDateThreshold": { + "description": "Формат 'время назад' переключится на полный формат даты через определенное количество единиц времени", + "title": "Порог перехода на полный формат даты" + }, + "FullDateThresholdUnit": { + "description": "Единица измерения порога перехода на полный формат даты", + "title": "Единица порога перехода на полный форматы даты" + }, + "Customization": { + "description": "JSON содержит персональные настройки интерфейса менеджера", + "title": "Настройка интерфейса менеджера" + }, + "ShowMeridian": { + "description": "Показывать индикатор времени суток (AM или PM)", + "title": "Показывать индикатор времени суток" + } + }, + "Cache": { + "Enabled": { + "description": "Эта настройка позволяет включать и отключать кэширование для всей платформы", + "title": "Включить или отключить кэширование" + }, + "AbsoulteExpiration": { + "description": "Указывает максимальное время хранения кэшированных данных в кэше. Формат: [-][д.]чч:мм:сс[.fffffff]", + "title": "Глобальное время жизни объектов в кэше" + } + } + }, + "Other": { + "AccountStatuses": { + "title": "Статусы учетных записей", + "description": "Изменение статусов учетных записей" + } } } } -} +} \ No newline at end of file diff --git a/src/VirtoCommerce.Platform.Web/wwwroot/js/app/security/services/auth.js b/src/VirtoCommerce.Platform.Web/wwwroot/js/app/security/services/auth.js index efc5dc3654..57e75c9425 100644 --- a/src/VirtoCommerce.Platform.Web/wwwroot/js/app/security/services/auth.js +++ b/src/VirtoCommerce.Platform.Web/wwwroot/js/app/security/services/auth.js @@ -103,12 +103,10 @@ angular.module('platformWebApp') }; authContext.logout = function () { - var extenralSignInData = externalSignInStorage.get(); - if (extenralSignInData && extenralSignInData.providerType) { + var externalSignInData = externalSignInStorage.get(); + if (externalSignInData && externalSignInData.providerType) { externalSignInStorage.remove(); - changeAuth({}); - var url = 'externalsignin/signout?authenticationType=' + extenralSignInData.providerType; - $window.location.href = url; + $window.location.href = 'externalsignin/signout?authenticationType=' + externalSignInData.providerType; } else { authDataStorage.clearStoredData();