From f1fbc2e83ae48fcb8821aba0cc8e4dba471e4d0d Mon Sep 17 00:00:00 2001
From: jensilo <k@jensheise.com>
Date: Fri, 15 Dec 2023 00:41:37 +0100
Subject: [PATCH] add english translation

---
 translations/en.json | 228 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 227 insertions(+), 1 deletion(-)

diff --git a/translations/en.json b/translations/en.json
index 9e26dfe..d84f63e 100644
--- a/translations/en.json
+++ b/translations/en.json
@@ -1 +1,227 @@
-{}
\ No newline at end of file
+{
+  "user": {
+    "firstname": "First Name",
+    "lastname": "Last Name",
+    "email": "Email",
+    "email.help": "The email address is determined by the OAuth provider you sign in with. You cannot change this email address. We use this email address to identify you.",
+    "auth": {
+      "login": {
+        "title": "Sign In",
+        "action": "Log In",
+        "with-provider": "Sign in with {{ .provider }}",
+        "error": {
+          "oauth": "Error signing in with OAuth. Please try again.",
+          "invalid-provider": "This provider is not supported for OAuth login."
+        }
+      }
+    },
+    "settings": {
+      "for": "Settings for {{ .firstname }} {{ .lastname }}",
+      "updated": "Settings updated.",
+      "update-error": "Settings could not be updated."
+    }
+  },
+  "template": {
+    "set": {
+      "title": "Template Set",
+      "list": "Overview of Template Sets",
+      "list.empty": "No template sets have been created yet.",
+      "new": "Create New Template Set",
+      "information": "Information",
+      "name": "Name",
+      "version": "Version",
+      "type": "Type",
+      "description": "Description",
+      "createdAt": "Created at",
+      "updatedAt": "Last updated at",
+      "action": {
+        "actions": "Actions",
+        "edit": "Edit",
+        "delete": "Delete"
+      },
+      "delete": {
+        "title": "Are you sure you want to delete the template set \"{{ .name }}\"?",
+        "text": "If you delete the template set \"{{ .name }}\", all included templates will also be irrevocably deleted from the system.",
+        "confirm": "Delete anyway",
+        "cancel": "Cancel and keep"
+      },
+      "edit": {
+        "title": "Edit Template Set",
+        "name": "Name",
+        "version": "Version",
+        "description": "Description",
+        "confirm": "Save",
+        "cancel": "Cancel",
+        "updated": "The template set has been updated."
+      }
+    },
+    "title": "Template",
+    "list": "Overview of Templates {{ .name }}",
+    "list.empty": "No templates have been created yet.",
+    "new": {
+      "title": "Create New Template",
+      "button": "Create New Template",
+      "invalid-json": "The JSON configuration is invalid. Please check the syntax.",
+      "config-incomplete": "The JSON configuration is incomplete. Please check the template documentation.",
+      "did-not-validate": "The template could not be validated. Make sure the template type is correct. Please check the template documentation."
+    },
+    "delete": {
+      "title": "Are you sure you want to delete the template \"{{ .name }}\"?",
+      "text": "If you delete the template \"{{ .name }}\", it will be irrevocably removed from the system.",
+      "confirm": "Delete anyway",
+      "cancel": "Cancel and keep"
+    },
+    "edit": {
+      "title": "Edit Template",
+      "updated": "The template has been updated."
+    },
+    "copy": {
+      "title": "Copy Template",
+      "modal-title": "Copy template \"{{ .name }}\"",
+      "text": "The template \"{{ .name }}\" can be copied to another template set. Specify the name of the template in the new template set and select the template set.",
+      "name": "Name",
+      "template-set": "Template Set",
+      "invalid-template-set-id": "Please select a suggested template set. The identifier is invalid.",
+      "template-set-not-found": "The template set was not found. Please check the identifier and try again.",
+      "success": "The template has been successfully copied to the template set.",
+      "copied-link": "Switch to the template set the template was copied to."
+    },
+    "name": "Name",
+    "version": "Version",
+    "config": "Configuration (JSON)",
+    "action": {
+      "actions": "Actions",
+      "edit": "Edit",
+      "delete": "Delete"
+    }
+  },
+  "eiffel": {
+    "parser": {
+      "error": {
+        "invalid-template": "The EIFFEL template is invalid. Please check the template documentation.",
+        "missing-rule": "In the variant {{ .variant }} of the template {{ .template }}, an attempt is made to use a rule \"{{ .rule }}\" that is not defined.",
+        "invalid-variant": "The variant is invalid.",
+        "missing-rule-parser": "The required parser for the rule is not available. Probably the rule type \"{{ .type }}\" is not correct. Please check the template documentation.",
+        "missing-segment": "An input for the rule \"{{ .name }}\" ({{ .technicalName }}) is missing.",
+        "invalid-rule-value": "The value \"value\" for the rule \"{{ .rule }}\" of type \"{{ .type }}\" is invalid. Please check the template documentation.",
+        "not-a-slice": "The value \"value\" for the rule \"{{ .rule }}\" of type \"{{ .type }}\" is not a list. Please check the template documentation.",
+        "not-a-string": "The value \"value\" for the rule \"{{ .rule }}\" of type \"{{ .type }}\" should consist of a string or a list of strings, but another type was found. Please check the template documentation."
+      },
+      "equals.error": "Expected value: \"{{ .expected }}\".",
+      "equals-any.error": "Expected value: {{ .expected }}."
+    },
+    "elicitation": {
+      "call-to-action": "Capture requirements with EIFFEL",
+      "parse": {
+        "flawless-success": "The requirement is flawless.",
+        "success": "The requirement is valid, but potential problems were found."
+      },
+      "form": {
+        "title": "Capture Requirement (Alt + P)",
+        "submit": "Check Requirement (Alt + Enter)",
+        "parsing-error": "The requirement does not conform to the template.",
+        "rule-description": "{{ .rule }}",
+        "rule-description.optional-flag": "(Optional)",
+        "hint": "Hint",
+        "explanation": "Explanation",
+        "no-further-info": "No further information has been provided for this rule.",
+        "value": "Expected",
+        "value-single-select": "A value from",
+        "copy-and-clear": "Copy and clear"
+      },
+      "template": {
+        "search": {
+          "title": "Search Template",
+          "shortcut": "Alt + F",
+          "select": "Select",
+          "placeholder": "Search templates - enter name here...",
+          "start": "Search in the input field for a template and select it for capturing.",
+          "call-to-action": "No template has been selected yet. Please use the search to find a template.",
+          "not-found": "No templates found.",
+          "query-too-short": "Enter at least 3 characters to start the search.",
+          "not-yet-selected": "No template has been selected yet."
+        },
+        "not-found": "The template was not found.",
+        "variant": {
+          "left.shortcut": "<- + Alt",
+          "right.shortcut": "Alt + ->",
+          "not-found": "The variant was not found.",
+          "description": "Variant Description"
+        },
+        "construction": "Template Construction",
+        "example": "Example Sentence",
+        "description.title": "Description",
+        "description": "Template Description",
+        "settings": "Settings",
+        "copy-after-parse": "Automatically copy the requirement after successful verification and clear the form (manually: Alt + K)"
+      }
+    },
+    "output": {
+      "recent": {
+        "title": "Recently Captured Requirements",
+        "description": "Your last 150 captured requirements are stored on your device and displayed here. You can copy these requirements by clicking.",
+        "empty": "No requirements have been captured yet.",
+        "empty-button": "Clear last requirements"
+      }
+    }
+  },
+  "harmony": {
+    "head": {
+      "welcome": "Welcome to HARMONY & EIFFEL",
+      "title.suffix": "HARMONY"
+    },
+    "text": {
+      "welcome": "<p>Highly Adaptable Requirements Management and Organization sYstem - HARMONY<br/>\nElicitation Interface for eFFective Language - EIFFEL<br/>\n<br/>\nThe idea is to simplify the elicitation of requirements by using templates, offering users a way to enter and validate template-based requirements more easily. The templates intended for the design of the system are derived from the PARIS pattern language. This is an approach and also a research project by Prof. Dr. rer. oec. Oliver Linssen.<br/>\nThe design, however, supports various other templates. Templates can be defined with JSON configurations, examples of already designed templates can be found at <a href=\"https://github.com/org-harmony/harmony/tree/main/docs/templates\">docs/templates/</a>. Further documentation explains how to create templates using the existing configuration files as examples.<br/>\n<br/>\nHARMONY continues to evolve to meet more (and hopefully one day all) needs of requirements management.<br/>\nJoin us on this journey, whether you are a contributor, user, or just an observer!<br/>\n<br/>\nThe project and all participants look forward to your feedback, as we continuously work to improve HARMONY and EIFFEL. The project is still in active development.<br/></p>"
+    },
+    "footer": {
+      "visit": "Visit <strong>HARMONY</strong> at {{ .link }}."
+    },
+    "menu": {
+      "home": "Home",
+      "eiffel": "EIFFEL",
+      "template-sets": "Templates",
+      "user": "Profile",
+      "login": "Login",
+      "logout": "Logout",
+      "language": {
+        "label": "Language",
+        "de": "German",
+        "en": "English"
+      }
+    },
+    "error": {
+      "generic": "Unfortunately, an unexpected error has occurred.",
+      "generic-reload": "Unfortunately, an unexpected error has occurred. Please reload the page.",
+      "validation": {
+        "email": {
+          "generic": "Please enter a valid email address."
+        },
+        "required": {
+          "generic": "Please fill out this field.",
+          "field": {
+            "ID": "Please enter an ID.",
+            "Name": "Please enter a name.",
+            "Version": "Please enter a version.",
+            "Variants": "Please enter a variant.",
+            "TemplateSetID": "Please select a valid template set."
+          }
+        },
+        "semantic-version": {
+          "generic": "Please enter a valid version number.",
+          "field": {
+            "Version": "Please enter a valid version number."
+          }
+        }
+      }
+    },
+    "generic": {
+      "close": "Close",
+      "refresh": "Refresh",
+      "save": "Save",
+      "create": "Create",
+      "search": "Search",
+      "copy": "Copy",
+      "copy-again": "Copy Again"
+    }
+  }
+}
\ No newline at end of file
-- 
GitLab