From 53f7dbb5682a79f26fea7cce41bd35fb7e38ed7f Mon Sep 17 00:00:00 2001
From: Philipp Wolfer <ph.wolfer@gmail.com>
Date: Sun, 10 Dec 2023 14:48:38 +0100
Subject: [PATCH] update translations for weblate

---
 .../locales/de/messages.gotext.json           | 398 ++++++++++++--
 .../locales/en/messages.gotext.json           | 501 ++++++++++++++++--
 2 files changed, 802 insertions(+), 97 deletions(-)

diff --git a/internal/translations/locales/de/messages.gotext.json b/internal/translations/locales/de/messages.gotext.json
index 0c41b77..a7a0848 100644
--- a/internal/translations/locales/de/messages.gotext.json
+++ b/internal/translations/locales/de/messages.gotext.json
@@ -2,18 +2,267 @@
     "language": "de",
     "messages": [
         {
-            "id": "Authenticate a service",
-            "message": "Authenticate a service",
-            "translation": "An einem Service anmelden"
+            "id": "export: {ExportCapabilities__}",
+            "message": "export: {ExportCapabilities__}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "ExportCapabilities__",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "strings.Join(info.ExportCapabilities, \", \")"
+                }
+            ]
         },
         {
-            "id": "For backends requiring authentication this command can be used to authenticate.\n\nAuthentication is always done per configured service. That means you can have\nmultiple services using the same backend but different authentication.",
-            "message": "For backends requiring authentication this command can be used to authenticate.\n\nAuthentication is always done per configured service. That means you can have\nmultiple services using the same backend but different authentication.",
+            "id": "import: {ImportCapabilities__}",
+            "message": "import: {ImportCapabilities__}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "ImportCapabilities__",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "strings.Join(info.ImportCapabilities, \", \")"
+                }
+            ]
+        },
+        {
+            "id": "Failed reading config: {Err}",
+            "message": "Failed reading config: {Err}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ]
+        },
+        {
+            "id": "Service name",
+            "message": "Service name",
             "translation": ""
         },
         {
-            "id": "failed loading service configuration",
-            "message": "failed loading service configuration",
+            "id": "a service with this name already exists",
+            "message": "a service with this name already exists",
+            "translation": ""
+        },
+        {
+            "id": "Saved service {Name} using backend {Backend}",
+            "message": "Saved service {Name} using backend {Backend}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                },
+                {
+                    "id": "Backend",
+                    "string": "%[2]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "service.Backend"
+                }
+            ]
+        },
+        {
+            "id": "The backend {Backend} requires authentication. Authenticate now?",
+            "message": "The backend {Backend} requires authentication. Authenticate now?",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Backend"
+                }
+            ]
+        },
+        {
+            "id": "Delete the service configuration \"{Service}\"?",
+            "message": "Delete the service configuration \"{Service}\"?",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Service",
+                    "string": "%[1]v",
+                    "type": "go.uploadedlobster.com/scotty/internal/config.ServiceConfig",
+                    "underlyingType": "struct{Name string; Backend string; ConfigValues map[string]any}",
+                    "argNum": 1,
+                    "expr": "service"
+                }
+            ]
+        },
+        {
+            "id": "Aborted",
+            "message": "Aborted",
+            "translation": ""
+        },
+        {
+            "id": "Service \"{Name}\" deleted",
+            "message": "Service \"{Name}\" deleted",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                }
+            ]
+        },
+        {
+            "id": "Updated service {Name} using backend {Backend}",
+            "message": "Updated service {Name} using backend {Backend}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                },
+                {
+                    "id": "Backend",
+                    "string": "%[2]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "service.Backend"
+                }
+            ]
+        },
+        {
+            "id": "backend: {Backend}",
+            "message": "backend: {Backend}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "s.Backend"
+                }
+            ]
+        },
+        {
+            "id": "Token received, you can close this window now.",
+            "message": "Token received, you can close this window now.",
+            "translation": ""
+        },
+        {
+            "id": "backend {Backend} does not implement {InterfaceName}",
+            "message": "backend {Backend} does not implement {InterfaceName}",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.Backend"
+                },
+                {
+                    "id": "InterfaceName",
+                    "string": "%[2]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "interfaceName"
+                }
+            ]
+        },
+        {
+            "id": "unknown backend \"{BackendName}\"",
+            "message": "unknown backend \"{BackendName}\"",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "BackendName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "backendName"
+                }
+            ]
+        },
+        {
+            "id": "Client ID",
+            "message": "Client ID",
+            "translation": ""
+        },
+        {
+            "id": "Client secret",
+            "message": "Client secret",
+            "translation": ""
+        },
+        {
+            "id": "Server URL",
+            "message": "Server URL",
+            "translation": ""
+        },
+        {
+            "id": "User name",
+            "message": "User name",
+            "translation": ""
+        },
+        {
+            "id": "Access token",
+            "message": "Access token",
+            "translation": ""
+        },
+        {
+            "id": "File path",
+            "message": "File path",
+            "translation": ""
+        },
+        {
+            "id": "Append to file",
+            "message": "Append to file",
+            "translation": ""
+        },
+        {
+            "id": "Playlist title",
+            "message": "Playlist title",
+            "translation": ""
+        },
+        {
+            "id": "Unique playlist identifier",
+            "message": "Unique playlist identifier",
+            "translation": ""
+        },
+        {
+            "id": "Disable auto correction of submitted listens",
+            "message": "Disable auto correction of submitted listens",
+            "translation": ""
+        },
+        {
+            "id": "Include skipped listens",
+            "message": "Include skipped listens",
             "translation": ""
         },
         {
@@ -47,15 +296,10 @@
                     "type": "string",
                     "underlyingType": "string",
                     "argNum": 1,
-                    "expr": "serviceConfig.Name"
+                    "expr": "service.Name"
                 }
             ]
         },
-        {
-            "id": "service configuration (required)",
-            "message": "service configuration (required)",
-            "translation": "Servicekonfiguration (notwendig)"
-        },
         {
             "id": "exporting",
             "message": "exporting",
@@ -77,6 +321,31 @@
             "translatorComment": "Copied from source.",
             "fuzzy": true
         },
+        {
+            "id": "Yes",
+            "message": "Yes",
+            "translation": ""
+        },
+        {
+            "id": "No",
+            "message": "No",
+            "translation": ""
+        },
+        {
+            "id": "no existing service configurations",
+            "message": "no existing service configurations",
+            "translation": ""
+        },
+        {
+            "id": "Service",
+            "message": "Service",
+            "translation": ""
+        },
+        {
+            "id": "Backend",
+            "message": "Backend",
+            "translation": ""
+        },
         {
             "id": "Transferring {Entity} from {SourceName} to {TargetName}...",
             "message": "Transferring {Entity} from {SourceName} to {TargetName}...",
@@ -85,7 +354,7 @@
                 {
                     "id": "Entity",
                     "string": "%[1]s",
-                    "type": "string",
+                    "type": "go.uploadedlobster.com/scotty/internal/models.Entity",
                     "underlyingType": "string",
                     "argNum": 1,
                     "expr": "c.entity"
@@ -109,48 +378,44 @@
             ]
         },
         {
-            "id": "From timestamp: {Timestamp} ({Unix})",
-            "message": "From timestamp: {Timestamp} ({Unix})",
-            "translation": "Ab Zeitstempel: {Timestamp} ({Unix})",
+            "id": "From timestamp: {Arg_1} ({Arg_2})",
+            "message": "From timestamp: {Arg_1} ({Arg_2})",
+            "translation": "",
             "placeholders": [
                 {
-                    "id": "Timestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "timestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
+                    "id": "Arg_2",
                     "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "timestamp.Unix()"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 2
                 }
             ]
         },
         {
-            "id": "Import failed, last reported timestamp was {LastTimestamp} ({Unix})",
-            "message": "Import failed, last reported timestamp was {LastTimestamp} ({Unix})",
-            "translation": "Import fehlgeschlagen, der letzte Zeitstempel war {LastTimestamp} ({Unix})",
+            "id": "Import failed, last reported timestamp was {Arg_1} ({Arg_2})",
+            "message": "Import failed, last reported timestamp was {Arg_1} ({Arg_2})",
+            "translation": "",
             "placeholders": [
                 {
-                    "id": "LastTimestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "result.LastTimestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
-                    "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "result.LastTimestamp.Unix()"
+                    "id": "Arg_2",
+                    "string": "%[2]s",
+                    "type": "",
+                    "underlyingType": "string",
+                    "argNum": 2
                 }
             ]
         },
@@ -178,7 +443,7 @@
                 {
                     "id": "Entity",
                     "string": "%[3]s",
-                    "type": "string",
+                    "type": "go.uploadedlobster.com/scotty/internal/models.Entity",
                     "underlyingType": "string",
                     "argNum": 3,
                     "expr": "c.entity"
@@ -214,25 +479,48 @@
             ]
         },
         {
-            "id": "Latest timestamp: {LastTimestamp} ({Unix})",
-            "message": "Latest timestamp: {LastTimestamp} ({Unix})",
-            "translation": "Neuester Zeitstempel: {LastTimestamp} ({Unix})",
+            "id": "Latest timestamp: {Arg_1} ({Arg_2})",
+            "message": "Latest timestamp: {Arg_1} ({Arg_2})",
+            "translation": "",
             "placeholders": [
                 {
-                    "id": "LastTimestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "result.LastTimestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
+                    "id": "Arg_2",
                     "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "result.LastTimestamp.Unix()"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 2
+                }
+            ]
+        },
+        {
+            "id": "no configuration file defined, cannot write config",
+            "message": "no configuration file defined, cannot write config",
+            "translation": ""
+        },
+        {
+            "id": "key must only consist of A-Za-z0-9_-",
+            "message": "key must only consist of A-Za-z0-9_-",
+            "translation": ""
+        },
+        {
+            "id": "no service configuration \"{Name}\"",
+            "message": "no service configuration \"{Name}\"",
+            "translation": "",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "name"
                 }
             ]
         }
diff --git a/internal/translations/locales/en/messages.gotext.json b/internal/translations/locales/en/messages.gotext.json
index 0b8d9c4..03ce260 100644
--- a/internal/translations/locales/en/messages.gotext.json
+++ b/internal/translations/locales/en/messages.gotext.json
@@ -1,6 +1,363 @@
 {
     "language": "en",
     "messages": [
+        {
+            "id": "export: {ExportCapabilities__}",
+            "message": "export: {ExportCapabilities__}",
+            "translation": "export: {ExportCapabilities__}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "ExportCapabilities__",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "strings.Join(info.ExportCapabilities, \", \")"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "import: {ImportCapabilities__}",
+            "message": "import: {ImportCapabilities__}",
+            "translation": "import: {ImportCapabilities__}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "ImportCapabilities__",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "strings.Join(info.ImportCapabilities, \", \")"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Failed reading config: {Err}",
+            "message": "Failed reading config: {Err}",
+            "translation": "Failed reading config: {Err}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Err",
+                    "string": "%[1]v",
+                    "type": "error",
+                    "underlyingType": "interface{Error() string}",
+                    "argNum": 1,
+                    "expr": "err"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Service name",
+            "message": "Service name",
+            "translation": "Service name",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "a service with this name already exists",
+            "message": "a service with this name already exists",
+            "translation": "a service with this name already exists",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Saved service {Name} using backend {Backend}",
+            "message": "Saved service {Name} using backend {Backend}",
+            "translation": "Saved service {Name} using backend {Backend}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                },
+                {
+                    "id": "Backend",
+                    "string": "%[2]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "service.Backend"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "The backend {Backend} requires authentication. Authenticate now?",
+            "message": "The backend {Backend} requires authentication. Authenticate now?",
+            "translation": "The backend {Backend} requires authentication. Authenticate now?",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Backend"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Delete the service configuration \"{Service}\"?",
+            "message": "Delete the service configuration \"{Service}\"?",
+            "translation": "Delete the service configuration \"{Service}\"?",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Service",
+                    "string": "%[1]v",
+                    "type": "go.uploadedlobster.com/scotty/internal/config.ServiceConfig",
+                    "underlyingType": "struct{Name string; Backend string; ConfigValues map[string]any}",
+                    "argNum": 1,
+                    "expr": "service"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Aborted",
+            "message": "Aborted",
+            "translation": "Aborted",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Service \"{Name}\" deleted",
+            "message": "Service \"{Name}\" deleted",
+            "translation": "Service \"{Name}\" deleted",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Updated service {Name} using backend {Backend}",
+            "message": "Updated service {Name} using backend {Backend}",
+            "translation": "Updated service {Name} using backend {Backend}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                },
+                {
+                    "id": "Backend",
+                    "string": "%[2]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "service.Backend"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "backend: {Backend}",
+            "message": "backend: {Backend}",
+            "translation": "backend: {Backend}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "s.Backend"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Token received, you can close this window now.",
+            "message": "Token received, you can close this window now.",
+            "translation": "Token received, you can close this window now.",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "backend {Backend} does not implement {InterfaceName}",
+            "message": "backend {Backend} does not implement {InterfaceName}",
+            "translation": "backend {Backend} does not implement {InterfaceName}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Backend",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "config.Backend"
+                },
+                {
+                    "id": "InterfaceName",
+                    "string": "%[2]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 2,
+                    "expr": "interfaceName"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "unknown backend \"{BackendName}\"",
+            "message": "unknown backend \"{BackendName}\"",
+            "translation": "unknown backend \"{BackendName}\"",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "BackendName",
+                    "string": "%[1]s",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "backendName"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Client ID",
+            "message": "Client ID",
+            "translation": "Client ID",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Client secret",
+            "message": "Client secret",
+            "translation": "Client secret",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Server URL",
+            "message": "Server URL",
+            "translation": "Server URL",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "User name",
+            "message": "User name",
+            "translation": "User name",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Access token",
+            "message": "Access token",
+            "translation": "Access token",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "File path",
+            "message": "File path",
+            "translation": "File path",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Append to file",
+            "message": "Append to file",
+            "translation": "Append to file",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Playlist title",
+            "message": "Playlist title",
+            "translation": "Playlist title",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Unique playlist identifier",
+            "message": "Unique playlist identifier",
+            "translation": "Unique playlist identifier",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Disable auto correction of submitted listens",
+            "message": "Disable auto correction of submitted listens",
+            "translation": "Disable auto correction of submitted listens",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Include skipped listens",
+            "message": "Include skipped listens",
+            "translation": "Include skipped listens",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Visit the URL for authorization: {Url}",
+            "message": "Visit the URL for authorization: {Url}",
+            "translation": "Visit the URL for authorization: {Url}",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Url",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "authUrl.Url"
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "Error: OAuth state mismatch",
+            "message": "Error: OAuth state mismatch",
+            "translation": "Error: OAuth state mismatch",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Access token received, you can use {Name} now.",
+            "message": "Access token received, you can use {Name} now.",
+            "translation": "Access token received, you can use {Name} now.",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "service.Name"
+                }
+            ],
+            "fuzzy": true
+        },
         {
             "id": "exporting",
             "message": "exporting",
@@ -22,6 +379,41 @@
             "translatorComment": "Copied from source.",
             "fuzzy": true
         },
+        {
+            "id": "Yes",
+            "message": "Yes",
+            "translation": "Yes",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "No",
+            "message": "No",
+            "translation": "No",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "no existing service configurations",
+            "message": "no existing service configurations",
+            "translation": "no existing service configurations",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Service",
+            "message": "Service",
+            "translation": "Service",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "Backend",
+            "message": "Backend",
+            "translation": "Backend",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
         {
             "id": "Transferring {Entity} from {SourceName} to {TargetName}...",
             "message": "Transferring {Entity} from {SourceName} to {TargetName}...",
@@ -31,7 +423,7 @@
                 {
                     "id": "Entity",
                     "string": "%[1]s",
-                    "type": "string",
+                    "type": "go.uploadedlobster.com/scotty/internal/models.Entity",
                     "underlyingType": "string",
                     "argNum": 1,
                     "expr": "c.entity"
@@ -56,51 +448,47 @@
             "fuzzy": true
         },
         {
-            "id": "From timestamp: {Timestamp} ({Unix})",
-            "message": "From timestamp: {Timestamp} ({Unix})",
-            "translation": "From timestamp: {Timestamp} ({Unix})",
+            "id": "From timestamp: {Arg_1} ({Arg_2})",
+            "message": "From timestamp: {Arg_1} ({Arg_2})",
+            "translation": "From timestamp: {Arg_1} ({Arg_2})",
             "translatorComment": "Copied from source.",
             "placeholders": [
                 {
-                    "id": "Timestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "timestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
+                    "id": "Arg_2",
                     "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "timestamp.Unix()"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 2
                 }
             ],
             "fuzzy": true
         },
         {
-            "id": "Import failed, last reported timestamp was {LastTimestamp} ({Unix})",
-            "message": "Import failed, last reported timestamp was {LastTimestamp} ({Unix})",
-            "translation": "Import failed, last reported timestamp was {LastTimestamp} ({Unix})",
+            "id": "Import failed, last reported timestamp was {Arg_1} ({Arg_2})",
+            "message": "Import failed, last reported timestamp was {Arg_1} ({Arg_2})",
+            "translation": "Import failed, last reported timestamp was {Arg_1} ({Arg_2})",
             "translatorComment": "Copied from source.",
             "placeholders": [
                 {
-                    "id": "LastTimestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "result.LastTimestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
-                    "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "result.LastTimestamp.Unix()"
+                    "id": "Arg_2",
+                    "string": "%[2]s",
+                    "type": "",
+                    "underlyingType": "string",
+                    "argNum": 2
                 }
             ],
             "fuzzy": true
@@ -130,7 +518,7 @@
                 {
                     "id": "Entity",
                     "string": "%[3]s",
-                    "type": "string",
+                    "type": "go.uploadedlobster.com/scotty/internal/models.Entity",
                     "underlyingType": "string",
                     "argNum": 3,
                     "expr": "c.entity"
@@ -171,26 +559,55 @@
             "fuzzy": true
         },
         {
-            "id": "Latest timestamp: {LastTimestamp} ({Unix})",
-            "message": "Latest timestamp: {LastTimestamp} ({Unix})",
-            "translation": "Latest timestamp: {LastTimestamp} ({Unix})",
+            "id": "Latest timestamp: {Arg_1} ({Arg_2})",
+            "message": "Latest timestamp: {Arg_1} ({Arg_2})",
+            "translation": "Latest timestamp: {Arg_1} ({Arg_2})",
             "translatorComment": "Copied from source.",
             "placeholders": [
                 {
-                    "id": "LastTimestamp",
+                    "id": "Arg_1",
                     "string": "%[1]v",
-                    "type": "time.Time",
-                    "underlyingType": "struct{wall uint64; ext int64; loc *time.Location}",
-                    "argNum": 1,
-                    "expr": "result.LastTimestamp"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 1
                 },
                 {
-                    "id": "Unix",
+                    "id": "Arg_2",
                     "string": "%[2]v",
-                    "type": "int64",
-                    "underlyingType": "int64",
-                    "argNum": 2,
-                    "expr": "result.LastTimestamp.Unix()"
+                    "type": "",
+                    "underlyingType": "interface{}",
+                    "argNum": 2
+                }
+            ],
+            "fuzzy": true
+        },
+        {
+            "id": "no configuration file defined, cannot write config",
+            "message": "no configuration file defined, cannot write config",
+            "translation": "no configuration file defined, cannot write config",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "key must only consist of A-Za-z0-9_-",
+            "message": "key must only consist of A-Za-z0-9_-",
+            "translation": "key must only consist of A-Za-z0-9_-",
+            "translatorComment": "Copied from source.",
+            "fuzzy": true
+        },
+        {
+            "id": "no service configuration \"{Name}\"",
+            "message": "no service configuration \"{Name}\"",
+            "translation": "no service configuration \"{Name}\"",
+            "translatorComment": "Copied from source.",
+            "placeholders": [
+                {
+                    "id": "Name",
+                    "string": "%[1]v",
+                    "type": "string",
+                    "underlyingType": "string",
+                    "argNum": 1,
+                    "expr": "name"
                 }
             ],
             "fuzzy": true