VYPR
Medium severity4.3NVD Advisory· Published May 31, 2026

CVE-2026-10173

CVE-2026-10173

Description

Reflected XSS in Orthanc Explorer 2's StudyList.vue via unsanitized remote-source URL parameter allows arbitrary JavaScript execution.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Reflected XSS in Orthanc Explorer 2's StudyList.vue via unsanitized remote-source URL parameter allows arbitrary JavaScript execution.

Vulnerability

A reflected cross-site scripting (XSS) vulnerability exists in Orthanc Explorer 2 up to version 1.12.0. The flaw resides in the file WebApplication/src/components/StudyList.vue. The remote-source URL query parameter is read from this.$route.query without sanitization and stored in this.remoteSource. This value is then injected into a vue-i18n translation string and rendered via v-html. The i18n message template includes HTML, and vue-i18n v9 does not HTML-encode named parameters by default, allowing arbitrary HTML/JavaScript injection [1][2].

Exploitation

An attacker can craft a URL containing a malicious payload in the remote-source parameter, such as ``. No authentication or prior access is required; the victim only needs to click the crafted link. The attack is remote and requires no additional user interaction beyond the initial click [2].

Impact

Successful exploitation allows arbitrary JavaScript execution in the victim's browser within the context of the Orthanc Explorer application. This can lead to session hijacking, unauthorized actions on behalf of the user, exposure of sensitive medical data, or delivery of further client-side attacks. The CVE assigns a CVSS v3 score of 4.3 (Medium), while the issue report rates it as High (CVSS 7.4) due to the potential impact [2].

Mitigation

The fix is provided in commit 21f78ce5da668bf5233efcd1896ec7c6e3b22eae, which sanitizes the remote-source value using resourceHelpers.sanitizeToAlphanumeric [1]. Users should update to a version containing this patch. No workaround is documented. The patch has been made publicly available.

AI Insight generated on May 31, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

1

Patches

1
21f78ce5da66

Fix #108 + upgrade i18n

29 files changed · +440 356
  • release-notes.md+1 0 modified
    @@ -3,6 +3,7 @@ Pending changes
     
     Fixes:
     - Added support for files without `MediaStorageSOPClassUID` ([issue](https://github.com/orthanc-server/orthanc-builder/issues/35))
    +- Fix #108 [Reflected XSS via remote-source URL Parameter](https://github.com/orthanc-server/orthanc-explorer-2/issues/108)
     
     1.12.0 (2026-04-23)
     ==================
    
  • WebApplication/package.json+1 1 modified
    @@ -30,7 +30,7 @@
         "uppie": "^4.1.0",
         "uuid": "^9.0.1",
         "vue": "^3.5.13",
    -    "vue-i18n": "^9.14.5",
    +    "vue-i18n": "^11.0.1",
         "vue-router": "^4.5.0",
         "vue3-observe-visibility": "^1.0.2",
         "vuex": "^4.1.0"
    
  • WebApplication/package-lock.json+291 215 modified
    @@ -30,7 +30,7 @@
             "uppie": "^4.1.0",
             "uuid": "^9.0.1",
             "vue": "^3.5.13",
    -        "vue-i18n": "^9.14.5",
    +        "vue-i18n": "^11.0.1",
             "vue-router": "^4.5.0",
             "vue3-observe-visibility": "^1.0.2",
             "vuex": "^4.1.0"
    @@ -41,27 +41,27 @@
           }
         },
         "node_modules/@babel/helper-string-parser": {
    -      "version": "7.25.9",
    -      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
    -      "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
    +      "version": "7.27.1",
    +      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
    +      "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
           "engines": {
             "node": ">=6.9.0"
           }
         },
         "node_modules/@babel/helper-validator-identifier": {
    -      "version": "7.25.9",
    -      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
    -      "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
    +      "version": "7.28.5",
    +      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
    +      "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
           "engines": {
             "node": ">=6.9.0"
           }
         },
         "node_modules/@babel/parser": {
    -      "version": "7.26.9",
    -      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
    -      "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
    +      "version": "7.29.3",
    +      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz",
    +      "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==",
           "dependencies": {
    -        "@babel/types": "^7.26.9"
    +        "@babel/types": "^7.29.0"
           },
           "bin": {
             "parser": "bin/babel-parser.js"
    @@ -71,12 +71,12 @@
           }
         },
         "node_modules/@babel/types": {
    -      "version": "7.26.9",
    -      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
    -      "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
    +      "version": "7.29.0",
    +      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
    +      "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
           "dependencies": {
    -        "@babel/helper-string-parser": "^7.25.9",
    -        "@babel/helper-validator-identifier": "^7.25.9"
    +        "@babel/helper-string-parser": "^7.27.1",
    +        "@babel/helper-validator-identifier": "^7.28.5"
           },
           "engines": {
             "node": ">=6.9.0"
    @@ -88,9 +88,9 @@
           "integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ=="
         },
         "node_modules/@esbuild/aix-ppc64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
    -      "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
    +      "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
           "cpu": [
             "ppc64"
           ],
    @@ -104,9 +104,9 @@
           }
         },
         "node_modules/@esbuild/android-arm": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
    -      "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
    +      "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
           "cpu": [
             "arm"
           ],
    @@ -120,9 +120,9 @@
           }
         },
         "node_modules/@esbuild/android-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
    -      "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
    +      "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
           "cpu": [
             "arm64"
           ],
    @@ -136,9 +136,9 @@
           }
         },
         "node_modules/@esbuild/android-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
    -      "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
    +      "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
           "cpu": [
             "x64"
           ],
    @@ -152,9 +152,9 @@
           }
         },
         "node_modules/@esbuild/darwin-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
    -      "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
    +      "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
           "cpu": [
             "arm64"
           ],
    @@ -168,9 +168,9 @@
           }
         },
         "node_modules/@esbuild/darwin-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
    -      "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
    +      "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
           "cpu": [
             "x64"
           ],
    @@ -184,9 +184,9 @@
           }
         },
         "node_modules/@esbuild/freebsd-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
    -      "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
    +      "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
           "cpu": [
             "arm64"
           ],
    @@ -200,9 +200,9 @@
           }
         },
         "node_modules/@esbuild/freebsd-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
    -      "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
    +      "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
           "cpu": [
             "x64"
           ],
    @@ -216,9 +216,9 @@
           }
         },
         "node_modules/@esbuild/linux-arm": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
    -      "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
    +      "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
           "cpu": [
             "arm"
           ],
    @@ -232,9 +232,9 @@
           }
         },
         "node_modules/@esbuild/linux-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
    -      "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
    +      "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
           "cpu": [
             "arm64"
           ],
    @@ -248,9 +248,9 @@
           }
         },
         "node_modules/@esbuild/linux-ia32": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
    -      "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
    +      "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
           "cpu": [
             "ia32"
           ],
    @@ -264,9 +264,9 @@
           }
         },
         "node_modules/@esbuild/linux-loong64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
    -      "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
    +      "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
           "cpu": [
             "loong64"
           ],
    @@ -280,9 +280,9 @@
           }
         },
         "node_modules/@esbuild/linux-mips64el": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
    -      "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
    +      "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
           "cpu": [
             "mips64el"
           ],
    @@ -296,9 +296,9 @@
           }
         },
         "node_modules/@esbuild/linux-ppc64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
    -      "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
    +      "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
           "cpu": [
             "ppc64"
           ],
    @@ -312,9 +312,9 @@
           }
         },
         "node_modules/@esbuild/linux-riscv64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
    -      "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
    +      "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
           "cpu": [
             "riscv64"
           ],
    @@ -328,9 +328,9 @@
           }
         },
         "node_modules/@esbuild/linux-s390x": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
    -      "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
    +      "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
           "cpu": [
             "s390x"
           ],
    @@ -344,9 +344,9 @@
           }
         },
         "node_modules/@esbuild/linux-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
    -      "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
    +      "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
           "cpu": [
             "x64"
           ],
    @@ -360,9 +360,9 @@
           }
         },
         "node_modules/@esbuild/netbsd-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
    -      "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
    +      "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
           "cpu": [
             "arm64"
           ],
    @@ -376,9 +376,9 @@
           }
         },
         "node_modules/@esbuild/netbsd-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
    -      "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
    +      "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
           "cpu": [
             "x64"
           ],
    @@ -392,9 +392,9 @@
           }
         },
         "node_modules/@esbuild/openbsd-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
    -      "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
    +      "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
           "cpu": [
             "arm64"
           ],
    @@ -408,9 +408,9 @@
           }
         },
         "node_modules/@esbuild/openbsd-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
    -      "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
    +      "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
           "cpu": [
             "x64"
           ],
    @@ -423,10 +423,26 @@
             "node": ">=18"
           }
         },
    +    "node_modules/@esbuild/openharmony-arm64": {
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
    +      "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
    +      "cpu": [
    +        "arm64"
    +      ],
    +      "dev": true,
    +      "optional": true,
    +      "os": [
    +        "openharmony"
    +      ],
    +      "engines": {
    +        "node": ">=18"
    +      }
    +    },
         "node_modules/@esbuild/sunos-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
    -      "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
    +      "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
           "cpu": [
             "x64"
           ],
    @@ -440,9 +456,9 @@
           }
         },
         "node_modules/@esbuild/win32-arm64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
    -      "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
    +      "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
           "cpu": [
             "arm64"
           ],
    @@ -456,9 +472,9 @@
           }
         },
         "node_modules/@esbuild/win32-ia32": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
    -      "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
    +      "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
           "cpu": [
             "ia32"
           ],
    @@ -472,9 +488,9 @@
           }
         },
         "node_modules/@esbuild/win32-x64": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
    -      "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
    +      "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
           "cpu": [
             "x64"
           ],
    @@ -518,12 +534,28 @@
           }
         },
         "node_modules/@intlify/core-base": {
    -      "version": "9.14.5",
    -      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.14.5.tgz",
    -      "integrity": "sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==",
    +      "version": "11.4.0",
    +      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.4.0.tgz",
    +      "integrity": "sha512-nlxFOnmjJgVkL1PsuSMagyh3qIHTwc2KlO2R3qQQV1ydrcwh1XpM7opWUGqvGaLlktttopDzbLBpr/k5tvbNmA==",
           "dependencies": {
    -        "@intlify/message-compiler": "9.14.5",
    -        "@intlify/shared": "9.14.5"
    +        "@intlify/devtools-types": "11.4.0",
    +        "@intlify/message-compiler": "11.4.0",
    +        "@intlify/shared": "11.4.0"
    +      },
    +      "engines": {
    +        "node": ">= 16"
    +      },
    +      "funding": {
    +        "url": "https://github.com/sponsors/kazupon"
    +      }
    +    },
    +    "node_modules/@intlify/devtools-types": {
    +      "version": "11.4.0",
    +      "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.4.0.tgz",
    +      "integrity": "sha512-LtQ04kG8/2Nv6AbuINpkjODuhKHdd+MGLlXKW3I0GTCeDsDIBZUot82nnyK7D6+qersF08FqSvoN/eGPcL3c7Q==",
    +      "dependencies": {
    +        "@intlify/core-base": "11.4.0",
    +        "@intlify/shared": "11.4.0"
           },
           "engines": {
             "node": ">= 16"
    @@ -533,11 +565,11 @@
           }
         },
         "node_modules/@intlify/message-compiler": {
    -      "version": "9.14.5",
    -      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.14.5.tgz",
    -      "integrity": "sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==",
    +      "version": "11.4.0",
    +      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.4.0.tgz",
    +      "integrity": "sha512-v455gVZqMb0er63Wd/akX8DXTnwSubgrgQaRigLB60V3xpnq3B99oPvGXW+N4G/5QFt8Ls84FJ8qHJUVnRCs1A==",
           "dependencies": {
    -        "@intlify/shared": "9.14.5",
    +        "@intlify/shared": "11.4.0",
             "source-map-js": "^1.0.2"
           },
           "engines": {
    @@ -548,9 +580,9 @@
           }
         },
         "node_modules/@intlify/shared": {
    -      "version": "9.14.5",
    -      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.14.5.tgz",
    -      "integrity": "sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==",
    +      "version": "11.4.0",
    +      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.4.0.tgz",
    +      "integrity": "sha512-r9qUeLeO0TMZmUZ+mXS6IGQ6xwzZJaVMK6j4CdoA3eQP8xp3JtCfwkZ30gB4+knlN40pmBdDXgx85SWhMCzHng==",
           "engines": {
             "node": ">= 16"
           },
    @@ -559,9 +591,9 @@
           }
         },
         "node_modules/@jridgewell/sourcemap-codec": {
    -      "version": "1.5.0",
    -      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
    -      "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
    +      "version": "1.5.5",
    +      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
    +      "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
         },
         "node_modules/@parcel/watcher": {
           "version": "2.5.6",
    @@ -1660,49 +1692,60 @@
           }
         },
         "node_modules/@vue/compiler-core": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
    -      "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.33.tgz",
    +      "integrity": "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==",
           "dependencies": {
    -        "@babel/parser": "^7.25.3",
    -        "@vue/shared": "3.5.13",
    -        "entities": "^4.5.0",
    +        "@babel/parser": "^7.29.2",
    +        "@vue/shared": "3.5.33",
    +        "entities": "^7.0.1",
             "estree-walker": "^2.0.2",
    -        "source-map-js": "^1.2.0"
    +        "source-map-js": "^1.2.1"
    +      }
    +    },
    +    "node_modules/@vue/compiler-core/node_modules/entities": {
    +      "version": "7.0.1",
    +      "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
    +      "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
    +      "engines": {
    +        "node": ">=0.12"
    +      },
    +      "funding": {
    +        "url": "https://github.com/fb55/entities?sponsor=1"
           }
         },
         "node_modules/@vue/compiler-dom": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
    -      "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.33.tgz",
    +      "integrity": "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==",
           "dependencies": {
    -        "@vue/compiler-core": "3.5.13",
    -        "@vue/shared": "3.5.13"
    +        "@vue/compiler-core": "3.5.33",
    +        "@vue/shared": "3.5.33"
           }
         },
         "node_modules/@vue/compiler-sfc": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
    -      "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
    -      "dependencies": {
    -        "@babel/parser": "^7.25.3",
    -        "@vue/compiler-core": "3.5.13",
    -        "@vue/compiler-dom": "3.5.13",
    -        "@vue/compiler-ssr": "3.5.13",
    -        "@vue/shared": "3.5.13",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.33.tgz",
    +      "integrity": "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==",
    +      "dependencies": {
    +        "@babel/parser": "^7.29.2",
    +        "@vue/compiler-core": "3.5.33",
    +        "@vue/compiler-dom": "3.5.33",
    +        "@vue/compiler-ssr": "3.5.33",
    +        "@vue/shared": "3.5.33",
             "estree-walker": "^2.0.2",
    -        "magic-string": "^0.30.11",
    -        "postcss": "^8.4.48",
    -        "source-map-js": "^1.2.0"
    +        "magic-string": "^0.30.21",
    +        "postcss": "^8.5.10",
    +        "source-map-js": "^1.2.1"
           }
         },
         "node_modules/@vue/compiler-ssr": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
    -      "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.33.tgz",
    +      "integrity": "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==",
           "dependencies": {
    -        "@vue/compiler-dom": "3.5.13",
    -        "@vue/shared": "3.5.13"
    +        "@vue/compiler-dom": "3.5.33",
    +        "@vue/shared": "3.5.33"
           }
         },
         "node_modules/@vue/devtools-api": {
    @@ -1711,49 +1754,49 @@
           "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
         },
         "node_modules/@vue/reactivity": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
    -      "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.33.tgz",
    +      "integrity": "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==",
           "dependencies": {
    -        "@vue/shared": "3.5.13"
    +        "@vue/shared": "3.5.33"
           }
         },
         "node_modules/@vue/runtime-core": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
    -      "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.33.tgz",
    +      "integrity": "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==",
           "dependencies": {
    -        "@vue/reactivity": "3.5.13",
    -        "@vue/shared": "3.5.13"
    +        "@vue/reactivity": "3.5.33",
    +        "@vue/shared": "3.5.33"
           }
         },
         "node_modules/@vue/runtime-dom": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
    -      "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.33.tgz",
    +      "integrity": "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==",
           "dependencies": {
    -        "@vue/reactivity": "3.5.13",
    -        "@vue/runtime-core": "3.5.13",
    -        "@vue/shared": "3.5.13",
    -        "csstype": "^3.1.3"
    +        "@vue/reactivity": "3.5.33",
    +        "@vue/runtime-core": "3.5.33",
    +        "@vue/shared": "3.5.33",
    +        "csstype": "^3.2.3"
           }
         },
         "node_modules/@vue/server-renderer": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
    -      "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.33.tgz",
    +      "integrity": "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==",
           "dependencies": {
    -        "@vue/compiler-ssr": "3.5.13",
    -        "@vue/shared": "3.5.13"
    +        "@vue/compiler-ssr": "3.5.33",
    +        "@vue/shared": "3.5.33"
           },
           "peerDependencies": {
    -        "vue": "3.5.13"
    +        "vue": "3.5.33"
           }
         },
         "node_modules/@vue/shared": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
    -      "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ=="
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.33.tgz",
    +      "integrity": "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ=="
         },
         "node_modules/@vuepic/vue-datepicker": {
           "version": "11.0.2",
    @@ -1877,9 +1920,9 @@
           "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
         },
         "node_modules/csstype": {
    -      "version": "3.1.3",
    -      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
    -      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
    +      "version": "3.2.3",
    +      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
    +      "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
         },
         "node_modules/date-fns": {
           "version": "4.1.0",
    @@ -1973,9 +2016,9 @@
           }
         },
         "node_modules/esbuild": {
    -      "version": "0.25.1",
    -      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
    -      "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
    +      "version": "0.25.12",
    +      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
    +      "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
           "dev": true,
           "hasInstallScript": true,
           "bin": {
    @@ -1985,31 +2028,32 @@
             "node": ">=18"
           },
           "optionalDependencies": {
    -        "@esbuild/aix-ppc64": "0.25.1",
    -        "@esbuild/android-arm": "0.25.1",
    -        "@esbuild/android-arm64": "0.25.1",
    -        "@esbuild/android-x64": "0.25.1",
    -        "@esbuild/darwin-arm64": "0.25.1",
    -        "@esbuild/darwin-x64": "0.25.1",
    -        "@esbuild/freebsd-arm64": "0.25.1",
    -        "@esbuild/freebsd-x64": "0.25.1",
    -        "@esbuild/linux-arm": "0.25.1",
    -        "@esbuild/linux-arm64": "0.25.1",
    -        "@esbuild/linux-ia32": "0.25.1",
    -        "@esbuild/linux-loong64": "0.25.1",
    -        "@esbuild/linux-mips64el": "0.25.1",
    -        "@esbuild/linux-ppc64": "0.25.1",
    -        "@esbuild/linux-riscv64": "0.25.1",
    -        "@esbuild/linux-s390x": "0.25.1",
    -        "@esbuild/linux-x64": "0.25.1",
    -        "@esbuild/netbsd-arm64": "0.25.1",
    -        "@esbuild/netbsd-x64": "0.25.1",
    -        "@esbuild/openbsd-arm64": "0.25.1",
    -        "@esbuild/openbsd-x64": "0.25.1",
    -        "@esbuild/sunos-x64": "0.25.1",
    -        "@esbuild/win32-arm64": "0.25.1",
    -        "@esbuild/win32-ia32": "0.25.1",
    -        "@esbuild/win32-x64": "0.25.1"
    +        "@esbuild/aix-ppc64": "0.25.12",
    +        "@esbuild/android-arm": "0.25.12",
    +        "@esbuild/android-arm64": "0.25.12",
    +        "@esbuild/android-x64": "0.25.12",
    +        "@esbuild/darwin-arm64": "0.25.12",
    +        "@esbuild/darwin-x64": "0.25.12",
    +        "@esbuild/freebsd-arm64": "0.25.12",
    +        "@esbuild/freebsd-x64": "0.25.12",
    +        "@esbuild/linux-arm": "0.25.12",
    +        "@esbuild/linux-arm64": "0.25.12",
    +        "@esbuild/linux-ia32": "0.25.12",
    +        "@esbuild/linux-loong64": "0.25.12",
    +        "@esbuild/linux-mips64el": "0.25.12",
    +        "@esbuild/linux-ppc64": "0.25.12",
    +        "@esbuild/linux-riscv64": "0.25.12",
    +        "@esbuild/linux-s390x": "0.25.12",
    +        "@esbuild/linux-x64": "0.25.12",
    +        "@esbuild/netbsd-arm64": "0.25.12",
    +        "@esbuild/netbsd-x64": "0.25.12",
    +        "@esbuild/openbsd-arm64": "0.25.12",
    +        "@esbuild/openbsd-x64": "0.25.12",
    +        "@esbuild/openharmony-arm64": "0.25.12",
    +        "@esbuild/sunos-x64": "0.25.12",
    +        "@esbuild/win32-arm64": "0.25.12",
    +        "@esbuild/win32-ia32": "0.25.12",
    +        "@esbuild/win32-x64": "0.25.12"
           }
         },
         "node_modules/escape-string-regexp": {
    @@ -2282,11 +2326,11 @@
           "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA=="
         },
         "node_modules/magic-string": {
    -      "version": "0.30.17",
    -      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
    -      "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
    +      "version": "0.30.21",
    +      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
    +      "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
           "dependencies": {
    -        "@jridgewell/sourcemap-codec": "^1.5.0"
    +        "@jridgewell/sourcemap-codec": "^1.5.5"
           }
         },
         "node_modules/markdown-it": {
    @@ -2344,9 +2388,9 @@
           "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="
         },
         "node_modules/nanoid": {
    -      "version": "3.3.8",
    -      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
    -      "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
    +      "version": "3.3.12",
    +      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
    +      "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
           "funding": [
             {
               "type": "github",
    @@ -2429,9 +2473,9 @@
           }
         },
         "node_modules/postcss": {
    -      "version": "8.5.3",
    -      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
    -      "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
    +      "version": "8.5.14",
    +      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
    +      "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
           "funding": [
             {
               "type": "opencollective",
    @@ -2447,7 +2491,7 @@
             }
           ],
           "dependencies": {
    -        "nanoid": "^3.3.8",
    +        "nanoid": "^3.3.11",
             "picocolors": "^1.1.1",
             "source-map-js": "^1.2.1"
           },
    @@ -3112,6 +3156,20 @@
           "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
           "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
         },
    +    "node_modules/typescript": {
    +      "version": "6.0.3",
    +      "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
    +      "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
    +      "optional": true,
    +      "peer": true,
    +      "bin": {
    +        "tsc": "bin/tsc",
    +        "tsserver": "bin/tsserver"
    +      },
    +      "engines": {
    +        "node": ">=14.17"
    +      }
    +    },
         "node_modules/uc.micro": {
           "version": "2.1.0",
           "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
    @@ -3215,15 +3273,15 @@
           }
         },
         "node_modules/vue": {
    -      "version": "3.5.13",
    -      "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
    -      "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
    +      "version": "3.5.33",
    +      "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.33.tgz",
    +      "integrity": "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==",
           "dependencies": {
    -        "@vue/compiler-dom": "3.5.13",
    -        "@vue/compiler-sfc": "3.5.13",
    -        "@vue/runtime-dom": "3.5.13",
    -        "@vue/server-renderer": "3.5.13",
    -        "@vue/shared": "3.5.13"
    +        "@vue/compiler-dom": "3.5.33",
    +        "@vue/compiler-sfc": "3.5.33",
    +        "@vue/runtime-dom": "3.5.33",
    +        "@vue/server-renderer": "3.5.33",
    +        "@vue/shared": "3.5.33"
           },
           "peerDependencies": {
             "typescript": "*"
    @@ -3235,12 +3293,13 @@
           }
         },
         "node_modules/vue-i18n": {
    -      "version": "9.14.5",
    -      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.14.5.tgz",
    -      "integrity": "sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==",
    +      "version": "11.4.0",
    +      "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-11.4.0.tgz",
    +      "integrity": "sha512-gxLVtcwdvOgwKSzkdb7nHKlW0N85A6aDNmHLnq6V+3w2/BXy/os5l71P7TIlgIQTxX0zJjiz89iImoHi51GieQ==",
           "dependencies": {
    -        "@intlify/core-base": "9.14.5",
    -        "@intlify/shared": "9.14.5",
    +        "@intlify/core-base": "11.4.0",
    +        "@intlify/devtools-types": "11.4.0",
    +        "@intlify/shared": "11.4.0",
             "@vue/devtools-api": "^6.5.0"
           },
           "engines": {
    @@ -3299,6 +3358,23 @@
           "engines": {
             "node": ">= 8"
           }
    +    },
    +    "node_modules/yaml": {
    +      "version": "2.8.4",
    +      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
    +      "integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
    +      "dev": true,
    +      "optional": true,
    +      "peer": true,
    +      "bin": {
    +        "yaml": "bin.mjs"
    +      },
    +      "engines": {
    +        "node": ">= 14.6"
    +      },
    +      "funding": {
    +        "url": "https://github.com/sponsors/eemeli"
    +      }
         }
       }
     }
    
  • WebApplication/src/components/CreateWorklistModal.vue+1 1 modified
    @@ -311,7 +311,7 @@ export default {
                 }
             },
             translate(tagName) {
    -            return translateDicomTag(this.$i18n.t, this.$i18n.te, tagName);
    +            return translateDicomTag(tagName);
             },
             handleInput(isComputationSource) {
                 if (!isComputationSource) {
    
  • WebApplication/src/components/Modal.vue+2 1 modified
    @@ -29,7 +29,8 @@ export default {
             <div class="modal-body">
               <slot name="modalBody">
                 <span
    -              v-html="bodyText"></span><!-- Safe to use v-html here since the bodyText only contains translated messages -->
    +              style="white-space: pre-line" 
    +              v-html="bodyText"></span><!-- Safe to use v-html here since the bodyText only contains translated messages + preserve \n -->
               </slot>
             </div>
             <div class="modal-footer">
    
  • WebApplication/src/components/ModifyModal.vue+1 1 modified
    @@ -828,7 +828,7 @@ export default {
                             <div v-if="resourceLevel == 'study' && !isAnonymization && samePatientStudiesCount > 1"
                                 class="row border-bottom border-3 py-3">
                                 <div class="col-md-9"
    -                                v-html="$t('modify.study_step_0_patient_has_other_studies_html', { count: samePatientStudiesCount })">
    +                                style="white-space: pre-line" v-html="$t('modify.study_step_0_patient_has_other_studies_html', { count: samePatientStudiesCount })">
                                 </div>
                                 <div class="col-md-3">
                                     <button type="button" class="btn btn-primary w-100"
    
  • WebApplication/src/components/ResourceDetailText.vue+1 1 modified
    @@ -24,7 +24,7 @@ export default {
                 uiOptions: state => state.configuration.uiOptions,
             }),
             title() {
    -            return translateDicomTag(this.$i18n.t, this.$i18n.te, this.tag);
    +            return translateDicomTag(this.tag);
             },
             value() {
                 if (this.hasValue) {
    
  • WebApplication/src/components/SeriesList.vue+4 4 modified
    @@ -29,16 +29,16 @@ export default {
         methods: {
             columnTitle(tagName) {
                 if (tagName == "instances_number") {
    -                return "# " + this.$i18n.t('instances');
    +                return "# " + this.$t('instances');
                 } else {
    -                return translateDicomTag(this.$i18n.t, this.$i18n.te, tagName);
    +                return translateDicomTag(tagName);
                 }
             },
             columnTooltip(tagName) {
                 if (tagName == "instances_number") {
    -                return this.$i18n.t("instances_number");
    +                return this.$t("instances_number");
                 } else {
    -                return translateDicomTag(this.$i18n.t, this.$i18n.te, tagName);
    +                return translateDicomTag(tagName);
                 }
             },
             onDeletedSeries(seriesId) {
    
  • WebApplication/src/components/SettingsLabels.vue+1 1 modified
    @@ -110,7 +110,7 @@ export default {
                         </label>
                     </div>
                     <div class="mt-1">
    -                    <p class="instructions-text" v-html="$t('settings.available_labels_global_instructions_html')"
    +                    <p class="instructions-text" style="white-space: pre-line" v-html="$t('settings.available_labels_global_instructions_html')"
                             :class="{ 'instructions-text-disabled': !limitAvailableLabels }"></p>
                     </div>
                     <div class="form-check" style="height: 3rem"><label for="new-label-input" class="form-label"><span
    
  • WebApplication/src/components/StudyList.vue+7 6 modified
    @@ -8,6 +8,7 @@ import { mapState, mapGetters } from "vuex"
     import { baseOe2Url } from "../globalConfigurations"
     import { translateDicomTag } from "../locales/i18n"
     import dateHelpers from "../helpers/date-helpers"
    +import resourceHelpers from "../helpers/resource-helpers"
     import $ from "jquery"
     import { endOfMonth, endOfYear, startOfMonth, startOfYear, subMonths, subDays, startOfWeek, endOfWeek, subYears } from 'date-fns';
     import api from "../orthancApi";
    @@ -423,15 +424,15 @@ export default {
             },
             columnTitle(tagName) {
                 if (tagName == "seriesCount") {
    -                return this.$i18n.t('series_count_header');
    +                return this.$t('series_count_header');
                 } else if (tagName == "instancesCount") {
    -                return this.$i18n.t('instances_count_header');
    +                return this.$t('instances_count_header');
                 } else if (tagName == "seriesAndInstancesCount") {
    -                return this.$i18n.t('series_and_instances_count_header');
    +                return this.$t('series_and_instances_count_header');
                 } else if (tagName == "modalities") {
    -                return translateDicomTag(this.$i18n.t, this.$i18n.te, "ModalitiesInStudy");
    +                return translateDicomTag("ModalitiesInStudy");
                 } else {
    -                return translateDicomTag(this.$i18n.t, this.$i18n.te, tagName);
    +                return translateDicomTag(tagName);
                 }
             },
             columnTooltip(tagName) {
    @@ -647,7 +648,7 @@ export default {
                     } else if (filters["source-type"].toLowerCase() === "dicom-web") {
                         this.sourceType = SourceType.REMOTE_DICOM_WEB;
                     }
    -                this.remoteSource = filters["remote-source"];
    +                this.remoteSource = resourceHelpers.sanitizeToAlphanumeric(filters["remote-source"]);
                 } else {
                     this.sourceType = SourceType.LOCAL_ORTHANC;
                     this.remoteSource = null;
    
  • WebApplication/src/components/TokenLanding.vue+4 4 modified
    @@ -82,7 +82,7 @@ export default {
         },
         methods: {
             titleForTag(tag) {
    -            return translateDicomTag(this.$i18n.t, this.$i18n.te, tag);
    +            return translateDicomTag(tag);
             },
             valueForTag(tag) {
                 if (tag in this.studyMainDicomTags) {
    @@ -214,9 +214,9 @@ export default {
                             <span class="visually-hidden">Loading...</span>
                         </div>
                     </span>
    -                <p v-if="tokenChecked && errorCode == 'invalid'" v-html="$t('token.error_token_invalid_html')"></p>
    -                <p v-if="tokenChecked && errorCode == 'expired'" v-html="$t('token.error_token_expired_html')"></p>
    -                <p v-if="tokenChecked && errorCode == 'unknown'" v-html="$t('token.error_token_unknown_html')"></p>
    +                <p v-if="tokenChecked && errorCode == 'invalid'" style="white-space: pre-line" v-html="$t('token.error_token_invalid_html')"></p>
    +                <p v-if="tokenChecked && errorCode == 'expired'" style="white-space: pre-line" v-html="$t('token.error_token_expired_html')"></p>
    +                <p v-if="tokenChecked && errorCode == 'unknown'" style="white-space: pre-line" v-html="$t('token.error_token_unknown_html')"></p>
                 </div>
                 <div v-if="tokenChecked && showOptions" class="w-100">
                     <div v-if="showStudyDetails" class="w-100">
    
  • WebApplication/src/components/Worklists.vue+1 1 modified
    @@ -121,7 +121,7 @@ export default {
                 }
             },
             columnTitle(tagName) {
    -            return translateDicomTag(this.$i18n.t, this.$i18n.te, tagName);
    +            return translateDicomTag(tagName);
             },
             columnTooltip(tagName) {
                 return this.columnTitle(tagName);
    
  • WebApplication/src/helpers/resource-helpers.js+5 0 modified
    @@ -212,5 +212,10 @@ export default {
     
         isPatientTag(tagName) {
             return ["PatientID", "PatientBirthDate", "PatientName", "PatientSex", "OtherPatientIDs"].indexOf(tagName) != -1;
    +    },
    +
    +    sanitizeToAlphanumeric(unsafe) {
    +        // Keep only alphanumeric, underscores, and hyphens (ex, for a peer name or a remote modality)
    +        return unsafe.replace(/[^a-zA-Z0-9_-]/g, '');
         }
     }
    
  • WebApplication/src/locales/ar.json+8 8 modified
    @@ -25,13 +25,13 @@
       },
    
       "default": "افتراضي",
    
       "delete": "حذف",
    
    -  "delete_instance_body": "هل أنت متأكد أنك تريد حذف هذه الصورة؟<br/>لا يمكن التراجع عن هذا الإجراء!",
    
    +  "delete_instance_body": "هل أنت متأكد أنك تريد حذف هذه الصورة؟\nلا يمكن التراجع عن هذا الإجراء!",
    
       "delete_instance_title": "حذف النسخة؟",
    
    -  "delete_series_body": "هل أنت متأكد أنك تريد حذف هذه السلسلة؟<br/>لا يمكن التراجع عن هذا الإجراء!",
    
    +  "delete_series_body": "هل أنت متأكد أنك تريد حذف هذه السلسلة؟\nلا يمكن التراجع عن هذا الإجراء!",
    
       "delete_series_title": "حذف السلسلة؟",
    
    -  "delete_studies_body": "هل أنت متأكد أنك تريد حذف هذه الدراسات؟<br/>لا يمكن التراجع عن هذا الإجراء!",
    
    +  "delete_studies_body": "هل أنت متأكد أنك تريد حذف هذه الدراسات؟\nلا يمكن التراجع عن هذا الإجراء!",
    
       "delete_studies_title": "حذف الدراسات؟",
    
    -  "delete_study_body": "هل أنت متأكد أنك تريد حذف هذه الدراسة؟<br/>لا يمكن التراجع عن هذا الإجراء!",
    
    +  "delete_study_body": "هل أنت متأكد أنك تريد حذف هذه الدراسة؟\nلا يمكن التراجع عن هذا الإجراء!",
    
       "delete_study_title": "حذف الدراسة؟",
    
       "description": "الوصف",
    
       "dicom_modalities": "اجهزة تصوير تستخدم دايكوم",
    
    @@ -147,7 +147,7 @@
         "study_step_0_modify_study_button_title_html": "تعديل علامات الدراسة",
    
         "study_step_0_modify_study_html": "تعديل علامات المريض/الدراسة في هذه الدراسة فقط؟",
    
         "study_step_0_patient_has_other_studies_button_title_html": "تعديل علامات المريض",
    
    -    "study_step_0_patient_has_other_studies_html": "هذا المريض لديه <strong>{count}</strong> دراسات في المجموع.<br/>هل تريد تعديل المريض في جميع هذه الدراسات؟",
    
    +    "study_step_0_patient_has_other_studies_html": "هذا المريض لديه <strong>{count}</strong> دراسات في المجموع.\nهل تريد تعديل المريض في جميع هذه الدراسات؟",
    
         "warning_create_new_study_from_series_html": "يوجد مريض بنفس المعرف PatientID مع علامات مختلفة. هل تريد استخدام اسم المريض وجنسه وتاريخ ميلاده الحالي؟"
    
       },
    
       "my_jobs": "وظائفي",
    
    @@ -196,7 +196,7 @@
       "series_plural": "سلاسل",
    
       "settings": {
    
         "allow_all_currents_and_futures_labels": "جميع التسميات الحالية والمستقبلية",
    
    -    "available_labels_global_instructions_html": "نظرًا لأنك قمت بتمكين الأذونات وأنت مسؤول، تتيح لك هذه الصفحة إنشاء/حذف التسميات المتاحة. لن يتمكن المستخدمون من إنشاء تسميات أخرى.<br/>بمجرد تحديث هذه القائمة، لا تنس النقر على <strong>حفظ</strong> لتطبيق التغييرات.",
    
    +    "available_labels_global_instructions_html": "نظرًا لأنك قمت بتمكين الأذونات وأنت مسؤول، تتيح لك هذه الصفحة إنشاء/حذف التسميات المتاحة. لن يتمكن المستخدمون من إنشاء تسميات أخرى.\nبمجرد تحديث هذه القائمة، لا تنس النقر على <strong>حفظ</strong> لتطبيق التغييرات.",
    
         "available_labels_title": "التسميات المتاحة",
    
         "create_new_label": "إنشاء تسمية جديدة",
    
         "dicom_AET": "AET دايكوم",
    
    @@ -255,8 +255,8 @@
       "this_study_is_already_stored_locally_show": "عرضها!",
    
       "token": {
    
         "error_token_expired_html": "انتهت صلاحية الرمز الخاص بك.",
    
    -    "error_token_invalid_html": "الرمز الخاص بك غير صالح.<br/>تحقق مما إذا كنت قد لصقته بالكامل، أو اتصل بالشخص الذي قدمه لك.",
    
    -    "error_token_unknown_html": "الرمز الخاص بك غير صالح.<br/>تحقق مما إذا كنت قد لصقته بالكامل، أو اتصل بالشخص الذي قدمه لك.",
    
    +    "error_token_invalid_html": "الرمز الخاص بك غير صالح.\nتحقق مما إذا كنت قد لصقته بالكامل، أو اتصل بالشخص الذي قدمه لك.",
    
    +    "error_token_unknown_html": "الرمز الخاص بك غير صالح.\nتحقق مما إذا كنت قد لصقته بالكامل، أو اتصل بالشخص الذي قدمه لك.",
    
         "token_being_checked_html": "جاري التحقق من الرمز الخاص بك."
    
       },
    
       "trace": "تتبع",
    
    
  • WebApplication/src/locales/de.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "Standard",
         "delete": "Löschen",
    -    "delete_instance_body": "Sind Sie sicher, dass Sie diese Instanz löschen möchten?<br/>Diese Aktion kann nicht rückgängig gemacht werden!",
    +    "delete_instance_body": "Sind Sie sicher, dass Sie diese Instanz löschen möchten?\nDiese Aktion kann nicht rückgängig gemacht werden!",
         "delete_instance_title": "Instanz löschen?",
    -    "delete_series_body": "Sind Sie sicher, dass Sie diese Serie löschen möchten?<br/>Diese Aktion kann nicht rückgängig gemacht werden!",
    +    "delete_series_body": "Sind Sie sicher, dass Sie diese Serie löschen möchten?\nDiese Aktion kann nicht rückgängig gemacht werden!",
         "delete_series_title": "Serien löschen?",
    -    "delete_studies_body": "Sind Sie sicher, dass Sie diese Studien löschen möchten?<br/>Diese Aktion kann nicht rückgängig gemacht werden!",
    +    "delete_studies_body": "Sind Sie sicher, dass Sie diese Studien löschen möchten?\nDiese Aktion kann nicht rückgängig gemacht werden!",
         "delete_studies_title": "Studien löschen?",
    -    "delete_study_body": "Sind Sie sicher, dass Sie diese Studie löschen möchten?<br/>Diese Aktion kann nicht rückgängig gemacht werden!",
    +    "delete_study_body": "Sind Sie sicher, dass Sie diese Studie löschen möchten?\nDiese Aktion kann nicht rückgängig gemacht werden!",
         "delete_study_title": "Studie löschen?",
         "description": "Beschreibung",
         "dicom_modalities": "DICOM Modalitäten",
    @@ -126,7 +126,7 @@
             "study_step_0_modify_study_button_title_html": "Studien-Tags ändern",
             "study_step_0_modify_study_html": "Patienten-/Studien-Tags in dieser Studie ändern?",
             "study_step_0_patient_has_other_studies_button_title_html": "Patienten-Tags ändern",
    -        "study_step_0_patient_has_other_studies_html": "Dieser Patient hat insgesamt <strong>{count}</strong> Studien.<br/>Möchten Sie den Patienten in all diesen Studien ändern?",
    +        "study_step_0_patient_has_other_studies_html": "Dieser Patient hat insgesamt <strong>{count}</strong> Studien.\nMöchten Sie den Patienten in all diesen Studien ändern?",
             "warning_create_new_study_from_series_html": "Ein Patient mit derselben Patienten-ID existiert bereits mit unterschiedlichen Tags. Möchten Sie den vorhandenen Patientennamen, das Geschlecht und das Geburtsdatum verwenden?"
         },
         "my_jobs": "Meine Aufträge",
    @@ -193,8 +193,8 @@
         "this_patient_has_other_studies_show": "Andere Studien anzeigen!",
         "token": {
             "error_token_expired_html": "Ihr Token ist abgelaufen.",
    -        "error_token_invalid_html": "Ihr Token ist ungültig.<br/>Überprüfen Sie, ob Sie es vollständig eingefügt haben, oder kontaktieren Sie die Person, die es Ihnen zur Verfügung gestellt hat.",
    -        "error_token_unknown_html": "Ihr Token ist ungültig.<br/>Überprüfen Sie, ob Sie es vollständig eingefügt haben, oder kontaktieren Sie die Person, die es Ihnen zur Verfügung gestellt hat.",
    +        "error_token_invalid_html": "Ihr Token ist ungültig.\nÜberprüfen Sie, ob Sie es vollständig eingefügt haben, oder kontaktieren Sie die Person, die es Ihnen zur Verfügung gestellt hat.",
    +        "error_token_unknown_html": "Ihr Token ist ungültig.\nÜberprüfen Sie, ob Sie es vollständig eingefügt haben, oder kontaktieren Sie die Person, die es Ihnen zur Verfügung gestellt hat.",
             "token_being_checked_html": "Ihr Token wird überprüft."
         },
         "trace": "Trace",
    
  • WebApplication/src/locales/en.json+8 8 modified
    @@ -36,13 +36,13 @@
         },
         "default": "Default",
         "delete": "Delete",
    -    "delete_instance_body": "Are you sure you want to delete this instance?<br/>This action can not be undone!",
    +    "delete_instance_body": "Are you sure you want to delete this instance?\nThis action can not be undone!",
         "delete_instance_title": "Delete instance?",
    -    "delete_series_body": "Are you sure you want to delete this series?<br/>This action can not be undone!",
    +    "delete_series_body": "Are you sure you want to delete this series?\nThis action can not be undone!",
         "delete_series_title": "Delete series?",
    -    "delete_studies_body": "Are you sure you want to delete these studies?<br/>This action can not be undone!",
    +    "delete_studies_body": "Are you sure you want to delete these studies?\nThis action can not be undone!",
         "delete_studies_title": "Delete studies?",
    -    "delete_study_body": "Are you sure you want to delete this study?<br/>This action can not be undone!",
    +    "delete_study_body": "Are you sure you want to delete this study?\nThis action can not be undone!",
         "delete_study_title": "Delete study?",
         "description": "Description",
         "dicom_modalities": "DICOM Modalities",
    @@ -204,7 +204,7 @@
             "study_step_0_modify_study_button_title_html": "Modify Study tags",
             "study_step_0_modify_study_html": "Modify Patient/Study tags in this study only?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modify Patient tags",
    -        "study_step_0_patient_has_other_studies_html": "This patient has <strong>{count}</strong> studies in total.<br/>Do you want to modify the patient in all these studies?",
    +        "study_step_0_patient_has_other_studies_html": "This patient has <strong>{count}</strong> studies in total.\nDo you want to modify the patient in all these studies?",
             "validate_select_patient": "Validate and select the patient to attach this study to.",
             "warning_create_new_study_from_series_html": "A patient with the same PatientID already exists with differing tags.  Do you want to use the existing PatientName, PatientSex and PatientBirthDate?"
         },
    @@ -259,7 +259,7 @@
         "series_plural": "Series",
         "settings": {
             "allow_all_currents_and_futures_labels": "All current and future labels",
    -        "available_labels_global_instructions_html": "Since you have enabled permissions and you are an administrator, this page enables you to create/delete the available labels.  Users won't be able to create other labels.<br/>Once you have updated this list, don't forget to click <strong>Save</strong> to apply your changes.",
    +        "available_labels_global_instructions_html": "Since you have enabled permissions and you are an administrator, this page enables you to create/delete the available labels.  Users won't be able to create other labels.\nOnce you have updated this list, don't forget to click <strong>Save</strong> to apply your changes.",
             "available_labels_title": "Available labels",
             "create_new_label": "Create new label",
             "dicom_AET": "DICOM AET",
    @@ -326,8 +326,8 @@
             "download_study": "Download the DICOM study",
             "download_studies": "Download the {count} DICOM studies",
             "error_token_expired_html": "Your token has expired.",
    -        "error_token_invalid_html": "Your token is invalid.<br/>Check if you have pasted it completely, or contact the person who has provided it to you.",
    -        "error_token_unknown_html": "Your token is invalid.<br/>Check if you have pasted it completely, or contact the person who has provided it to you.",
    +        "error_token_invalid_html": "Your token is invalid.\nCheck if you have pasted it completely, or contact the person who has provided it to you.",
    +        "error_token_unknown_html": "Your token is invalid.\nCheck if you have pasted it completely, or contact the person who has provided it to you.",
             "landing_options_single_study_intro_text": "You've reached the publication page of this study:",
             "landing_options_multiple_studies_intro_text": "You've reached the publication of {count} studies",
             "open_study_in_viewer": "View the DICOM study",
    
  • WebApplication/src/locales/es.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "Predeterminado",
         "delete": "Eliminar",
    -    "delete_instance_body": "¿Estás seguro de que quieres eliminar este elemento?<br/>Esta acción no se puede deshacer!",
    +    "delete_instance_body": "¿Estás seguro de que quieres eliminar este elemento?\nEsta acción no se puede deshacer!",
         "delete_instance_title": "¿Eliminar elemento?",
    -    "delete_series_body": "¿Estás seguro de que quieres eliminar esta serie?<br/>Esta acción no se puede deshacer!",
    +    "delete_series_body": "¿Estás seguro de que quieres eliminar esta serie?\nEsta acción no se puede deshacer!",
         "delete_series_title": "¿Eliminar serie?",
    -    "delete_studies_body": "¿Estás seguro de que quieres eliminar estos estudios?<br/>Esta acción no se puede deshacer!",
    +    "delete_studies_body": "¿Estás seguro de que quieres eliminar estos estudios?\nEsta acción no se puede deshacer!",
         "delete_studies_title": "¿Eliminar estudios?",
    -    "delete_study_body": "¿Estás seguro de que quieres eliminar este estudio?<br/>Esta acción no se puede deshacer!",
    +    "delete_study_body": "¿Estás seguro de que quieres eliminar este estudio?\nEsta acción no se puede deshacer!",
         "delete_study_title": "¿Eliminar estudio?",
         "description": "Descripción",
         "dicom_modalities": "Modalidades DICOM",
    @@ -106,7 +106,7 @@
             "study_step_0_modify_study_button_title_html": "Modificar etiquetas de estudio",
             "study_step_0_modify_study_html": "¿Modificar etiquetas de paciente/estudio solo en este estudio?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modificar etiquetas de pacientes",
    -        "study_step_0_patient_has_other_studies_html": "Este paciente tiene <strong>{count}</strong> estudios en total.<br/>¿Quieres modificar al paciente en todos estos estudios?",
    +        "study_step_0_patient_has_other_studies_html": "Este paciente tiene <strong>{count}</strong> estudios en total.\n¿Quieres modificar al paciente en todos estos estudios?",
             "warning_create_new_study_from_series_html": "Ya existe un paciente con el mismo ID de paciente con etiquetas diferentes. ¿Desea utilizar las etiquetas PatientName, PatientSex and PatientBirthDate existentes?"
         },
         "my_jobs": "Mis trabajos",
    @@ -173,8 +173,8 @@
         "this_patient_has_other_studies_show": "Mostrarlos!",
         "token": {
             "error_token_expired_html": "Tu token ha caducado.",
    -        "error_token_invalid_html": "Tu token es inválido.<br/>Comprueba que lo has pegado por completo o contacta a la persona que te lo ha facilitado.",
    -        "error_token_unknown_html": "Tu token es inválido.<br/>Comprueba que lo has pegado por completo o contacta a la persona que te lo ha facilitado.",
    +        "error_token_invalid_html": "Tu token es inválido.\nComprueba que lo has pegado por completo o contacta a la persona que te lo ha facilitado.",
    +        "error_token_unknown_html": "Tu token es inválido.\nComprueba que lo has pegado por completo o contacta a la persona que te lo ha facilitado.",
             "token_being_checked_html": "Tu token está siendo verificado."
         },
         "trace": "Rastreo",
    
  • WebApplication/src/locales/fr.json+8 8 modified
    @@ -25,13 +25,13 @@
         },
         "default": "Par défaut",
         "delete": "Supprimer",
    -    "delete_instance_body": "Êtes vous sûr de vouloir supprimer cette instance ?<br/>Cette opération est définitive.",
    +    "delete_instance_body": "Êtes vous sûr de vouloir supprimer cette instance ?\nCette opération est définitive.",
         "delete_instance_title": "Supprimer l'instance ?",
    -    "delete_series_body": "Êtes vous sûr de vouloir supprimer cette série ?<br/>Cette opération est définitive.",
    +    "delete_series_body": "Êtes vous sûr de vouloir supprimer cette série ?\nCette opération est définitive.",
         "delete_series_title": "Supprimer la série ?",
    -    "delete_studies_body": "Êtes vous sûr de vouloir supprimer ces examens ?<br/>Cette opération est définitive.",
    +    "delete_studies_body": "Êtes vous sûr de vouloir supprimer ces examens ?\nCette opération est définitive.",
         "delete_studies_title": "Supprimer les examens ?",
    -    "delete_study_body": "Êtes vous sûr de vouloir supprimer cet examen ?<br/>Cette opération est définitive.",
    +    "delete_study_body": "Êtes vous sûr de vouloir supprimer cet examen ?\nCette opération est définitive.",
         "delete_study_title": "Supprimer l'examen ?",
         "description": "Description",
         "dicom_modalities": "Modalités DICOM",
    @@ -184,7 +184,7 @@
             "study_step_0_modify_study_button_title_html": "Modifier les tags de l'examen",
             "study_step_0_modify_study_html": "Modifier les tags relatif au patient et à l'examen uniquement dans cet examen ?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modifier les tags du Patient",
    -        "study_step_0_patient_has_other_studies_html": "Ce patient a <strong>{count}</strong> examen au total.<br/>Voulez-vous modifier le patient dans tous ces examens ?",
    +        "study_step_0_patient_has_other_studies_html": "Ce patient a <strong>{count}</strong> examen au total.\nVoulez-vous modifier le patient dans tous ces examens ?",
             "validate_select_patient": "Valider et sélectionner le patient auquel attacher cet examen.",
             "warning_create_new_study_from_series_html": "Un patient avec le même identifiant existe déjà avec des tags différents.  Voulez-vous utiliser les nom, sexe et date de naissance du patient existant ?"
         },
    @@ -239,7 +239,7 @@
         "series_plural": "Séries",
         "settings": {
             "allow_all_currents_and_futures_labels": "Toutes les étiquettes actuelles et futures",
    -        "available_labels_global_instructions_html": "Les permissions étant activées, cette page vous permet de modifier la liste des étiquettes disponibles.  Les autres utilisateurs ne pourront pas créer de nouvelles étiquettes.<br/>N'oubliez pas d'enregistrer vos modifications.",
    +        "available_labels_global_instructions_html": "Les permissions étant activées, cette page vous permet de modifier la liste des étiquettes disponibles.  Les autres utilisateurs ne pourront pas créer de nouvelles étiquettes.\nN'oubliez pas d'enregistrer vos modifications.",
             "available_labels_title": "Étiquettes disponibles",
             "create_new_label": "Créer une étiquette",
             "dicom_AET": "DICOM AET",
    @@ -306,8 +306,8 @@
             "download_study": "Télécharger l'examen en DICOM",
             "download_studies": "Télécharger les {count} examens en DICOM",
             "error_token_expired_html": "Votre lien a expiré.",
    -        "error_token_invalid_html": "Votre lien n'est pas valide.<br/>Vérifiez que vous l'avez collé complètement ou contactez la personne qui vous l'a fourni.",
    -        "error_token_unknown_html": "Votre lien n'est pas valide.<br/>Vérifiez que vous l'avez collé complètement ou contactez la personne qui vous l'a fourni.",
    +        "error_token_invalid_html": "Votre lien n'est pas valide.\nVérifiez que vous l'avez collé complètement ou contactez la personne qui vous l'a fourni.",
    +        "error_token_unknown_html": "Votre lien n'est pas valide.\nVérifiez que vous l'avez collé complètement ou contactez la personne qui vous l'a fourni.",
             "landing_options_single_study_intro_text": "Vous arrivez sur le partage de l'examen suivant:",
             "landing_options_multiple_studies_intro_text": "Vous arrivez sur le partage de {count} examens.",
             "open_study_in_viewer": "Visualiser l'examen",
    
  • WebApplication/src/locales/i18n.js+9 9 modified
    @@ -40,16 +40,16 @@ const i18n = createI18n({
     
     document._mustTranslateDicomTags = false;
     
    -function translateDicomTag($t, $te, tagName) {
    -  if (document._mustTranslateDicomTags) {
    -    if ($te('dicom_tags.' + tagName)) {
    -      return $t('dicom_tags.' + tagName)
    -    } else {
    -      return tagName;
    -    }
    -  } else {
    -    return tagName;
    +function translateDicomTag(tagName) {
    +  const { t, te } = i18n.global
    +
    +  if (!document._mustTranslateDicomTags) {
    +    return tagName
       }
    +
    +  const key = `dicom_tags.${tagName}`
    +
    +  return te(key) ? t(key) : tagName
     }
     
     export {
    
  • WebApplication/src/locales/it.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "Predefinito",
         "delete": "Cancella",
    -    "delete_instance_body": "Sei sicuro di voler cancellare questa istanza?<br/>Questa azione non potrà essere annullata!",
    +    "delete_instance_body": "Sei sicuro di voler cancellare questa istanza?\nQuesta azione non potrà essere annullata!",
         "delete_instance_title": "Cancellare istanza?",
    -    "delete_series_body": "Sei sicuro di voler cancellare la serie?<br/>Questa azione non potrà essere annullata!",
    +    "delete_series_body": "Sei sicuro di voler cancellare la serie?\nQuesta azione non potrà essere annullata!",
         "delete_series_title": "Cancellare la serie?",
    -    "delete_studies_body": "Sei sicuro di voler cancellare questi studi?<br/>Questa azione non potrà essere annullata!",
    +    "delete_studies_body": "Sei sicuro di voler cancellare questi studi?\nQuesta azione non potrà essere annullata!",
         "delete_studies_title": "Cancellare gli studi?",
    -    "delete_study_body": "Sei sicuro di voler cancellare lo studio?<br/>Questa azione non potrà essere annullata!",
    +    "delete_study_body": "Sei sicuro di voler cancellare lo studio?\nQuesta azione non potrà essere annullata!",
         "delete_study_title": "Cancellare lo Studio?",
         "description": "Descrizione",
         "dicom_modalities": "DICOM Modalità",
    @@ -106,7 +106,7 @@
             "study_step_0_modify_study_button_title_html": "Modifica etichette Studio",
             "study_step_0_modify_study_html": "Modifica etichette Paziente/Studio solo in questo studio?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modifica etichette Paziente",
    -        "study_step_0_patient_has_other_studies_html": "Questo paziente ha <strong>{count}</strong> studi in totale.<br/>vuoi moficare il paziente in tutti questi studi?",
    +        "study_step_0_patient_has_other_studies_html": "Questo paziente ha <strong>{count}</strong> studi in totale.\nvuoi moficare il paziente in tutti questi studi?",
             "warning_create_new_study_from_series_html": "Un paziente con lo stesso ID Paziente esiste già con delle etichette differenti.  Vuoi usare Nome Paziente, Sesso Paziente e Data di Nascita Paziente esistente?"
         },
         "my_jobs": "I miei Lavori",
    @@ -173,8 +173,8 @@
         "this_patient_has_other_studies_show": "Mostra altri!",
         "token": {
             "error_token_expired_html": "Il tuo token è scaduto.",
    -        "error_token_invalid_html": "Il tuo token non è valido.<br/>Controlla di averlo incollato completamente o contatta la persona che te lo ha fornito.",
    -        "error_token_unknown_html": "Il tuo token è sconosciuto.<br/>Controlla di averlo incollato completamente o contatta la persona che te lo ha fornito.",
    +        "error_token_invalid_html": "Il tuo token non è valido.\nControlla di averlo incollato completamente o contatta la persona che te lo ha fornito.",
    +        "error_token_unknown_html": "Il tuo token è sconosciuto.\nControlla di averlo incollato completamente o contatta la persona che te lo ha fornito.",
             "token_being_checked_html": "Il tuo token è in fase di verifica."
         },
         "trace": "Traccia",
    
  • WebApplication/src/locales/ja.json+8 8 modified
    @@ -25,13 +25,13 @@
       },
       "default": "デフォルト",
       "delete": "削除",
    -  "delete_instance_body": "このインスタンスを削除してもよろしいですか?<br/>この操作は元に戻せません!",
    +  "delete_instance_body": "このインスタンスを削除してもよろしいですか?\nこの操作は元に戻せません!",
       "delete_instance_title": "インスタンスを削除しますか?",
    -  "delete_series_body": "このシリーズを削除してもよろしいですか?<br/>この操作は元に戻せません!",
    +  "delete_series_body": "このシリーズを削除してもよろしいですか?\nこの操作は元に戻せません!",
       "delete_series_title": "シリーズを削除しますか?",
    -  "delete_studies_body": "これらのスタディを削除してもよろしいですか?<br/>この操作は元に戻せません!",
    +  "delete_studies_body": "これらのスタディを削除してもよろしいですか?\nこの操作は元に戻せません!",
       "delete_studies_title": "検査を削除しますか?",
    -  "delete_study_body": "このスタディを削除してもよろしいですか?<br/>この操作は元に戻せません!",
    +  "delete_study_body": "このスタディを削除してもよろしいですか?\nこの操作は元に戻せません!",
       "delete_study_title": "スタディを削除しますか?",
       "description": "説明",
       "dicom_modalities": "DICOMモダリティ",
    @@ -147,7 +147,7 @@
         "study_step_0_modify_study_button_title_html": "スタディタグを変更",
         "study_step_0_modify_study_html": "このスタディのみで患者/スタディタグを変更しますか?",
         "study_step_0_patient_has_other_studies_button_title_html": "患者タグを変更",
    -    "study_step_0_patient_has_other_studies_html": "この患者には合計で<strong>{count}</strong>件のスタディがあります。<br/>これらの全てのスタディで患者情報を変更しますか?",
    +    "study_step_0_patient_has_other_studies_html": "この患者には合計で<strong>{count}</strong>件のスタディがあります。\nこれらの全てのスタディで患者情報を変更しますか?",
         "warning_create_new_study_from_series_html": "同じ患者IDを持つ別の患者が、異なるタグで既に存在します。既存のPatientName、PatientSex、PatientBirthDateを使用しますか?"
       },
       "my_jobs": "マイジョブ",
    @@ -199,7 +199,7 @@
       "series_plural": "シリーズ",
       "settings": {
         "allow_all_currents_and_futures_labels": "現在および将来の全てのラベルを許可",
    -    "available_labels_global_instructions_html": "権限が有効で管理者の場合、このページで利用可能なラベルの作成/削除が可能です。ユーザーは他のラベルを作成できません。<br/>このリストを更新したら、<strong>保存</strong>をクリックして変更を適用することを忘れないでください。",
    +    "available_labels_global_instructions_html": "権限が有効で管理者の場合、このページで利用可能なラベルの作成/削除が可能です。ユーザーは他のラベルを作成できません。\nこのリストを更新したら、<strong>保存</strong>をクリックして変更を適用することを忘れないでください。",
         "available_labels_title": "利用可能なラベル",
         "create_new_label": "新規ラベルを作成",
         "dicom_AET": "DICOM AET",
    @@ -260,8 +260,8 @@
         "download_study": "DICOMスタディをダウンロード",
         "download_studies": "{count}件のDICOMスタディをダウンロード",
         "error_token_expired_html": "トークンの有効期限が切れました。",
    -    "error_token_invalid_html": "トークンが無効です。<br/>完全に貼り付けたか、提供元に連絡してください。",
    -    "error_token_unknown_html": "トークンが無効です。<br/>完全に貼り付けたか、提供元に連絡してください。",
    +    "error_token_invalid_html": "トークンが無効です。\n完全に貼り付けたか、提供元に連絡してください。",
    +    "error_token_unknown_html": "トークンが無効です。\n完全に貼り付けたか、提供元に連絡してください。",
         "landing_options_single_study_intro_text": "このスタディの公開ページにアクセスしました:",
         "landing_options_multiple_studies_intro_text": "{count}件のスタディの公開ページにアクセスしました",
         "open_study_in_viewer": "DICOMスタディを表示",
    
  • WebApplication/src/locales/ka.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "სტანდარტული",
         "delete": "წაშლა",
    -    "delete_instance_body": "ნამდვილად გსურთ ობიექტის წაშლა?<br/> სურათის დაბრუნება შეუძლებელი იქნება",
    +    "delete_instance_body": "ნამდვილად გსურთ ობიექტის წაშლა?\n სურათის დაბრუნება შეუძლებელი იქნება",
         "delete_instance_title": "ობიექტის წაშლა",
    -    "delete_series_body": "ნამდვილად გსურთ სერიის წაშლა?<br/> სერიის დაბრუნება შეუძლებელი იქნება",
    +    "delete_series_body": "ნამდვილად გსურთ სერიის წაშლა?\n სერიის დაბრუნება შეუძლებელი იქნება",
         "delete_series_title": "სერიის წაშლა",
    -    "delete_studies_body": "ნამდვილად გსურთ კვლევების წაშლა?<br/> კვლევის დაბრუნება შეუძლებელი იქნება",
    +    "delete_studies_body": "ნამდვილად გსურთ კვლევების წაშლა?\n კვლევის დაბრუნება შეუძლებელი იქნება",
         "delete_studies_title": "კვლევების წაშლა",
    -    "delete_study_body": "ნამდვილად გსურთ კვლევის წაშლა?<br/> კვლევის დაბრუნება შეუძლებელი იქნება",
    +    "delete_study_body": "ნამდვილად გსურთ კვლევის წაშლა?\n კვლევის დაბრუნება შეუძლებელი იქნება",
         "delete_study_title": "კვლევის წაშლა",
         "description": "აღწერა",
         "dicom_modalities": "DICOM აპარატები",
    @@ -106,7 +106,7 @@
             "study_step_0_modify_study_button_title_html": "კვლევის თეგების ცვლილება",
             "study_step_0_modify_study_html": "შეიცვალოს პაციენტის/კვლევის თეგები მხოლოდ ამ კვლევისთვის?",
             "study_step_0_patient_has_other_studies_button_title_html": "პაციენტის თეგების ცვლილება",
    -        "study_step_0_patient_has_other_studies_html": "ამ პაციენტს ჯამში აქვს<strong>{count}</strong> კვლევა.<br/> გსურთ პაციენტის ცვლილება ყველა კვლევაში?",
    +        "study_step_0_patient_has_other_studies_html": "ამ პაციენტს ჯამში აქვს<strong>{count}</strong> კვლევა.\n გსურთ პაციენტის ცვლილება ყველა კვლევაში?",
             "warning_create_new_study_from_series_html": "უკვე არსებობს პაციენტი იგივე ID-თ და განსხვავებული თეგებით. გსურთ გამოიყენოთ არსებული სახელი, სქესი და დაბადების თარიღი?"
         },
         "my_jobs": "ჩემი დავალებები",
    @@ -173,8 +173,8 @@
         "this_patient_has_other_studies_show": "ჩვენება",
         "token": {
             "error_token_expired_html": "თქვენი დაშვების კოდის ვადა ამოწურულია.",
    -        "error_token_invalid_html": "თქვენი დაშვების კოდი არ არის ძალაში. <br/> გადაამოწმეთ რომ სწორად გაქვთ დაკოპირებული, ან დაეკონტაქტეთ ადამიანს ვინც გამოგიგზავნათ.",
    -        "error_token_unknown_html": "თქვენი დაშვების კოდი არ არის ძალაში. <br/> გადაამოწმეთ რომ სწორად გაქვთ დაკოპირებული, ან დაეკონტაქტეთ ადამიანს ვინც გამოგიგზავნათ.",
    +        "error_token_invalid_html": "თქვენი დაშვების კოდი არ არის ძალაში. \n გადაამოწმეთ რომ სწორად გაქვთ დაკოპირებული, ან დაეკონტაქტეთ ადამიანს ვინც გამოგიგზავნათ.",
    +        "error_token_unknown_html": "თქვენი დაშვების კოდი არ არის ძალაში. \n გადაამოწმეთ რომ სწორად გაქვთ დაკოპირებული, ან დაეკონტაქტეთ ადამიანს ვინც გამოგიგზავნათ.",
             "token_being_checked_html": "თქვენი დაშვების კოდი მოწმდება."
         },
         "trace": "ყველაზე დეტალური",
    
  • WebApplication/src/locales/pt.json+8 8 modified
    @@ -25,13 +25,13 @@
         },
         "default": "Padrão",
         "delete": "Excluir",
    -    "delete_instance_body": "Tem certeza que deseja excluir esta instância?<br/>Esta ação não pode ser desfeita!",
    +    "delete_instance_body": "Tem certeza que deseja excluir esta instância?\nEsta ação não pode ser desfeita!",
         "delete_instance_title": "Excluir instância?",
    -    "delete_series_body": "Tem certeza que deseja excluir esta série?<br/>Esta ação não pode ser desfeita!",
    +    "delete_series_body": "Tem certeza que deseja excluir esta série?\nEsta ação não pode ser desfeita!",
         "delete_series_title": "Excluir série?",
    -    "delete_studies_body": "Tem certeza que deseja excluir estes exames?<br/>Esta ação não pode ser desfeita!",
    +    "delete_studies_body": "Tem certeza que deseja excluir estes exames?\nEsta ação não pode ser desfeita!",
         "delete_studies_title": "Excluir exames?",
    -    "delete_study_body": "Tem certeza que deseja excluir este exame?<br/>Esta ação não pode ser desfeita!",
    +    "delete_study_body": "Tem certeza que deseja excluir este exame?\nEsta ação não pode ser desfeita!",
         "delete_study_title": "Excluir exame?",
         "description": "Descrição",
         "dicom_modalities": "Modalidades DICOM",
    @@ -147,7 +147,7 @@
             "study_step_0_modify_study_button_title_html": "Modificar tags do exame",
             "study_step_0_modify_study_html": "Modificar tags de Paciente/Exame apenas neste exame?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modificar tags do paciente",
    -        "study_step_0_patient_has_other_studies_html": "Este paciente tem <strong>{count}</strong> exames no total.<br/>Deseja modificar o paciente em todos esses exames?",
    +        "study_step_0_patient_has_other_studies_html": "Este paciente tem <strong>{count}</strong> exames no total.\nDeseja modificar o paciente em todos esses exames?",
             "warning_create_new_study_from_series_html": "Um paciente com o mesmo PatientID já existe com tags diferentes. Deseja usar o PatientName, PatientSex e PatientBirthDate existentes?"
         },
         "my_jobs": "Meus trabalhos",
    @@ -196,7 +196,7 @@
         "series_plural": "Séries",
         "settings": {
             "allow_all_currents_and_futures_labels": "Todas as etiquetas atuais e futuras",
    -        "available_labels_global_instructions_html": "Como você habilitou permissões e é um administrador, esta página permite criar/excluir as etiquetas disponíveis. Os usuários não poderão criar outras etiquetas.<br/>Após atualizar esta lista, não esqueça de clicar em <strong>Salvar</strong> para aplicar suas alterações.",
    +        "available_labels_global_instructions_html": "Como você habilitou permissões e é um administrador, esta página permite criar/excluir as etiquetas disponíveis. Os usuários não poderão criar outras etiquetas.\nApós atualizar esta lista, não esqueça de clicar em <strong>Salvar</strong> para aplicar suas alterações.",
             "available_labels_title": "Etiquetas disponíveis",
             "create_new_label": "Criar nova etiqueta",
             "dicom_AET": "AET DICOM",
    @@ -255,8 +255,8 @@
         "this_study_is_already_stored_locally_show": "Mostrar!",
         "token": {
             "error_token_expired_html": "Seu token expirou.",
    -        "error_token_invalid_html": "Seu token é inválido.<br/>Verifique se você o colou completamente ou entre em contato com a pessoa que o forneceu.",
    -        "error_token_unknown_html": "Seu token é inválido.<br/>Verifique se você o colou completamente ou entre em contato com a pessoa que o forneceu.",
    +        "error_token_invalid_html": "Seu token é inválido.\nVerifique se você o colou completamente ou entre em contato com a pessoa que o forneceu.",
    +        "error_token_unknown_html": "Seu token é inválido.\nVerifique se você o colou completamente ou entre em contato com a pessoa que o forneceu.",
             "token_being_checked_html": "Seu token está sendo verificado."
         },
         "trace": "Rastrear",
    
  • WebApplication/src/locales/ro.json+8 8 modified
    @@ -25,13 +25,13 @@
         },
         "default": "Implicit",
         "delete": "Șterge",
    -    "delete_instance_body": "Ești sigur că vrei să ștergi această instanță?<br/>Această acțiune nu poate fi anulată!",
    +    "delete_instance_body": "Ești sigur că vrei să ștergi această instanță?\nAceastă acțiune nu poate fi anulată!",
         "delete_instance_title": "Șterge instanța?",
    -    "delete_series_body": "Ești sigur că vrei să ștergi această serie?<br/>Această acțiune nu poate fi anulată!",
    +    "delete_series_body": "Ești sigur că vrei să ștergi această serie?\nAceastă acțiune nu poate fi anulată!",
         "delete_series_title": "Șterge seria?",
    -    "delete_studies_body": "Ești sigur că vrei să ștergi aceste studii?<br/>Această acțiune nu poate fi anulată!",
    +    "delete_studies_body": "Ești sigur că vrei să ștergi aceste studii?\nAceastă acțiune nu poate fi anulată!",
         "delete_studies_title": "Șterge studiile?",
    -    "delete_study_body": "Ești sigur că vrei să ștergi acest studiu?<br/>Această acțiune nu poate fi anulată!",
    +    "delete_study_body": "Ești sigur că vrei să ștergi acest studiu?\nAceastă acțiune nu poate fi anulată!",
         "delete_study_title": "Șterge studiul?",
         "description": "Descriere",
         "dicom_modalities": "Modalități DICOM",
    @@ -144,7 +144,7 @@
             "study_step_0_modify_study_button_title_html": "Modifică etichetele studiului",
             "study_step_0_modify_study_html": "Modifică etichetele Pacient/Studiu din acest studiu doar?",
             "study_step_0_patient_has_other_studies_button_title_html": "Modifică etichetele pacientului",
    -        "study_step_0_patient_has_other_studies_html": "Acest pacient are <strong>{count}</strong> studii în total.<br/>Vrei să modifici pacientul în toate aceste studii?",
    +        "study_step_0_patient_has_other_studies_html": "Acest pacient are <strong>{count}</strong> studii în total.\nVrei să modifici pacientul în toate aceste studii?",
             "warning_create_new_study_from_series_html": "Există deja un pacient cu același PatientID cu etichete diferite. Vrei să folosești Numele Pacientului existent, Sexul Pacientului și Data Nașterii Pacientului?"
         },
         "my_jobs": "Lucrările mele",
    @@ -189,7 +189,7 @@
         "series_plural": "Serii",
         "settings": {
             "allow_all_currents_and_futures_labels": "Toate etichetele curente și viitoare",
    -        "available_labels_global_instructions_html": "Deoarece ai activat permisiunile și ești administrator, această pagină îți permite să creezi/ștergi etichetele disponibile. Utilizatorii nu vor putea crea alte etichete.<br/>După ce ai actualizat această listă, nu uita să faci clic pe <strong>Salvează</strong> pentru a aplica modificările.",
    +        "available_labels_global_instructions_html": "Deoarece ai activat permisiunile și ești administrator, această pagină îți permite să creezi/ștergi etichetele disponibile. Utilizatorii nu vor putea crea alte etichete.\nDupă ce ai actualizat această listă, nu uita să faci clic pe <strong>Salvează</strong> pentru a aplica modificările.",
             "available_labels_title": "Etichete disponibile",
             "create_new_label": "Creează o etichetă nouă",
             "dicom_AET": "DICOM AET",
    @@ -248,8 +248,8 @@
         "this_study_is_already_stored_locally_show": "Arată-l!",
         "token": {
             "error_token_expired_html": "Token-ul tău a expirat.",
    -        "error_token_invalid_html": "Token-ul tău este invalid.<br/>Verifică dacă l-ai lipit complet sau contactează persoana care ți l-a furnizat.",
    -        "error_token_unknown_html": "Token-ul tău este invalid.<br/>Verifică dacă l-ai lipit complet sau contactează persoana care ți l-a furnizat.",
    +        "error_token_invalid_html": "Token-ul tău este invalid.\nVerifică dacă l-ai lipit complet sau contactează persoana care ți l-a furnizat.",
    +        "error_token_unknown_html": "Token-ul tău este invalid.\nVerifică dacă l-ai lipit complet sau contactează persoana care ți l-a furnizat.",
             "token_being_checked_html": "Token-ul tău este în curs de verificare."
         },
         "trace": "Urmărește",
    
  • WebApplication/src/locales/ru.json+6 6 modified
    @@ -16,13 +16,13 @@
         },
         "default": "По умолчанию",
         "delete": "Удалить",
    -    "delete_instance_body": "Вы уверены, что хотите удалить этот экземпляр?<br/>Это действие нельзя отменить!",
    +    "delete_instance_body": "Вы уверены, что хотите удалить этот экземпляр?\nЭто действие нельзя отменить!",
         "delete_instance_title": "Удалить экземпляр?",
    -    "delete_series_body": "Вы уверены, что хотите удалить эту серию?<br/>Это действие нельзя отменить!",
    +    "delete_series_body": "Вы уверены, что хотите удалить эту серию?\nЭто действие нельзя отменить!",
         "delete_series_title": "Удалить серию?",
    -    "delete_studies_body": "Вы уверены, что хотите удалить эти исследования?<br/>Это действие нельзя отменить!",
    +    "delete_studies_body": "Вы уверены, что хотите удалить эти исследования?\nЭто действие нельзя отменить!",
         "delete_studies_title": "Удалить исследования?",
    -    "delete_study_body": "Вы уверены, что хотите удалить это исследование?<br/>Это действие нельзя отменить!",
    +    "delete_study_body": "Вы уверены, что хотите удалить это исследование?\nЭто действие нельзя отменить!",
         "delete_study_title": "Удалить исследование?",
         "description": "Описание",
         "dicom_modalities": "Модальности DICOM",
    @@ -193,8 +193,8 @@
         "this_patient_has_other_studies_show": "Показать их!",
         "token": {
             "error_token_expired_html": "Ваш токен просрочен.",
    -        "error_token_invalid_html": "Ваш токен недействителен. <br/> Проверьте, вставили ли его полностью, или обратитесь к человеку, который вам его предоставил.",
    -        "error_token_unknown_html": "Ваш токен недействителен. <br/> Проверьте, вставили ли его полностью, или обратитесь к человеку, который вам его предоставил.",
    +        "error_token_invalid_html": "Ваш токен недействителен. \n Проверьте, вставили ли его полностью, или обратитесь к человеку, который вам его предоставил.",
    +        "error_token_unknown_html": "Ваш токен недействителен. \n Проверьте, вставили ли его полностью, или обратитесь к человеку, который вам его предоставил.",
             "token_being_checked_html": "Ваш токен проверяется."
         },
         "trace": "Трассировка",
    
  • WebApplication/src/locales/si.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "Privzeto",
         "delete": "Izbriši",
    -    "delete_instance_body": "Ste prepričani, da želite izbrisati ta primerek?<br/>Tega dejanja se ne da razveljaviti!",
    +    "delete_instance_body": "Ste prepričani, da želite izbrisati ta primerek?\nTega dejanja se ne da razveljaviti!",
         "delete_instance_title": "Izbriši primerek?",
    -    "delete_series_body": "Ste prepričani, da želite izbrisati to serijo?<br/>Tega dejanja se ne da razveljaviti!",
    +    "delete_series_body": "Ste prepričani, da želite izbrisati to serijo?\nTega dejanja se ne da razveljaviti!",
         "delete_series_title": "Izbriši serijo?",
    -    "delete_studies_body": "Ste prepričani, da želite izbrisati te študije?<br/>Tega dejanja se ne da razveljaviti!",
    +    "delete_studies_body": "Ste prepričani, da želite izbrisati te študije?\nTega dejanja se ne da razveljaviti!",
         "delete_studies_title": "Izbriši študije?",
    -    "delete_study_body": "Ste prepričani, da želite izbrisati to študijo?<br/>Tega dejanja se ne da razveljaviti!",
    +    "delete_study_body": "Ste prepričani, da želite izbrisati to študijo?\nTega dejanja se ne da razveljaviti!",
         "delete_study_title": "Izbriši študijo?",
         "description": "Opis",
         "dicom_modalities": "DICOM modalnosti",
    @@ -129,7 +129,7 @@
             "study_step_0_modify_study_button_title_html": "Spremeni oznake študije",
             "study_step_0_modify_study_html": "Želite spremeniti oznake pacienta/študije samo v tej študiji?",
             "study_step_0_patient_has_other_studies_button_title_html": "Spremeni oznake pacientov",
    -        "study_step_0_patient_has_other_studies_html": "Ta pacient ima skupno <strong>{count}</strong> študij.<br/>Ali želite spremeniti pacienta v vseh teh študijah?",
    +        "study_step_0_patient_has_other_studies_html": "Ta pacient ima skupno <strong>{count}</strong> študij.\nAli želite spremeniti pacienta v vseh teh študijah?",
             "warning_create_new_study_from_series_html": "Pacient z istim ID-jem, ampak drugačnimi oznakami, že obstaja. Ali želite uporabiti obstoječe ime pacienta, njegov spol in datum rojstva?"
         },
         "my_jobs": "Moja opravila",
    @@ -197,8 +197,8 @@
         "this_patient_has_other_studies_show": "Prikaži jih",
         "token": {
             "error_token_expired_html": "Vaš žeton je potekel.",
    -        "error_token_invalid_html": "Vaš žeton ni veljaven.<br/>Preverite, ali ste ga prilepili v celoti, ali pa se obrnite na osebo, ki vam ga je posredovala.",
    -        "error_token_unknown_html": "Vaš žeton ni veljaven.<br/>Preverite, ali ste ga prilepili v celoti, ali pa se obrnite na osebo, ki vam ga je posredovala.",
    +        "error_token_invalid_html": "Vaš žeton ni veljaven.\nPreverite, ali ste ga prilepili v celoti, ali pa se obrnite na osebo, ki vam ga je posredovala.",
    +        "error_token_unknown_html": "Vaš žeton ni veljaven.\nPreverite, ali ste ga prilepili v celoti, ali pa se obrnite na osebo, ki vam ga je posredovala.",
             "token_being_checked_html": "Vaš žeton se preverja."
         },
         "trace": "Napredno",
    
  • WebApplication/src/locales/uk.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "За замовчуванням",
         "delete": "Видалити",
    -    "delete_instance_body": "Ви впевнені, що хочете видалити цей екземпляр?<br/>Цю дію не можна скасувати!",
    +    "delete_instance_body": "Ви впевнені, що хочете видалити цей екземпляр?\nЦю дію не можна скасувати!",
         "delete_instance_title": "Видалити екземпляр?",
    -    "delete_series_body": "Ви впевнені, що хочете видалити ці серії?<br/>Цю дію не можна скасувати!",
    +    "delete_series_body": "Ви впевнені, що хочете видалити ці серії?\nЦю дію не можна скасувати!",
         "delete_series_title": "Видалити серії?",
    -    "delete_studies_body": "Ви впевнені, що хочете видалити ці дослідження?<br/>Цю дію не можна скасувати!",
    +    "delete_studies_body": "Ви впевнені, що хочете видалити ці дослідження?\nЦю дію не можна скасувати!",
         "delete_studies_title": "Видалити дослідження?",
    -    "delete_study_body": "Ви впевнені, що хочете видалити це дослідження?<br/>Цю дію не можна скасувати!",
    +    "delete_study_body": "Ви впевнені, що хочете видалити це дослідження?\nЦю дію не можна скасувати!",
         "delete_study_title": "Видалити дослідження?",
         "description": "Опис",
         "dicom_modalities": "Модальності DICOM",
    @@ -126,7 +126,7 @@
             "study_step_0_modify_study_button_title_html": "Змінити теги дослідження",
             "study_step_0_modify_study_html": "Змінити теги пацієнта/дослідження лише в цьому дослідженні?",
             "study_step_0_patient_has_other_studies_button_title_html": "Змінити теги пацієнта",
    -        "study_step_0_patient_has_other_studies_html": "Загальна кількість досліджень цього пацієнта: <strong>{count}</strong>.<br/>Ви бажаєте змінити пацієнта в усіх цих дослідженнях ?",
    +        "study_step_0_patient_has_other_studies_html": "Загальна кількість досліджень цього пацієнта: <strong>{count}</strong>.\nВи бажаєте змінити пацієнта в усіх цих дослідженнях ?",
             "warning_create_new_study_from_series_html": "Вже існує пацієнт із іншими тегами і з таким самим ID пацієнта. Чи бажаєте ви використовувати наявні ім'я пацієнта, стать пацієнта і дату народження пацієнта?"
         },
         "my_jobs": "Мої завдання",
    @@ -194,8 +194,8 @@
         "this_patient_has_other_studies_show": "Показати їх!",
         "token": {
             "error_token_expired_html": "Ваш токен прострочений.",
    -        "error_token_invalid_html": "Ваш токен недійсний.<br/>Перевірте, чи вставили його повністю, або зверніться до особи, яка вам його надала.",
    -        "error_token_unknown_html": "Ваш токен недійсний.<br/>Перевірте, чи вставили його повністю, або зверніться до особи, яка вам його надала.",
    +        "error_token_invalid_html": "Ваш токен недійсний.\nПеревірте, чи вставили його повністю, або зверніться до особи, яка вам його надала.",
    +        "error_token_unknown_html": "Ваш токен недійсний.\nПеревірте, чи вставили його повністю, або зверніться до особи, яка вам його надала.",
             "token_being_checked_html": "Ваш токен перевіряється."
         },
         "trace": "Трасування",
    
  • WebApplication/src/locales/vi.json+8 8 modified
    @@ -25,13 +25,13 @@
         },
         "default": "Mặc định",
         "delete": "Xóa",
    -"delete_instance_body": "Bạn có chắc muốn xóa ảnh này?<br/>Hành động này không thể hoàn tác!",
    +"delete_instance_body": "Bạn có chắc muốn xóa ảnh này?\nHành động này không thể hoàn tác!",
         "delete_instance_title": "Xóa ảnh?",
    -    "delete_series_body": "Bạn có chắc muốn xóa chuỗi ảnh?<br/>Hành động này không thể hoàn tác!",
    +    "delete_series_body": "Bạn có chắc muốn xóa chuỗi ảnh?\nHành động này không thể hoàn tác!",
         "delete_series_title": "Xóa chuỗi ảnh?",
    -    "delete_studies_body": "Bạn có chắc muốn xóa những phiên chụp?<br/>Hành động này không thể hoàn tác!",
    +    "delete_studies_body": "Bạn có chắc muốn xóa những phiên chụp?\nHành động này không thể hoàn tác!",
         "delete_studies_title": "Xóa những phiên chụp?",
    -    "delete_study_body": "Bạn có chắc muốn xóa phiên chụp?<br/>Hành động này không thể hoàn tác!",
    +    "delete_study_body": "Bạn có chắc muốn xóa phiên chụp?\nHành động này không thể hoàn tác!",
         "delete_study_title": "Xóa phiên chụp?",
         "description": "Phần mô tả",
         "dicom_modalities": "Các phương thức ảnh DICOM",
    @@ -147,7 +147,7 @@
             "study_step_0_modify_study_button_title_html": "Chỉnh sửa thẻ phiên chụp",
             "study_step_0_modify_study_html": "Chỉnh sửa thẻ bệnh nhân/phiên chụp chỉ trong phiên chụp này?",
             "study_step_0_patient_has_other_studies_button_title_html": "Chỉnh sửa thẻ bệnh nhân",
    -        "study_step_0_patient_has_other_studies_html": "Bệnh nhân này có <strong>{count}</strong> phiên chụp tổng cộng.<br/>Bạn có muốn chỉnh sửa bệnh nhân trong tất cả phiên chụp này không?",
    +        "study_step_0_patient_has_other_studies_html": "Bệnh nhân này có <strong>{count}</strong> phiên chụp tổng cộng.\nBạn có muốn chỉnh sửa bệnh nhân trong tất cả phiên chụp này không?",
             "warning_create_new_study_from_series_html": "Một bệnh nhân có cùng ID bệnh nhân đã tồn tại với các thẻ khác nhau. Bạn có muốn sử dụng tên, giới tính và ngày sinh bệnh nhân hiện có không?"
         },
         "my_jobs": "Công việc của tôi",
    @@ -196,7 +196,7 @@
         "series_plural": "Chuỗi ảnh",
         "settings": {
             "allow_all_currents_and_futures_labels": "Tất cả các nhãn hiện tại và tương lai",
    -        "available_labels_global_instructions_html": "Vì bạn đã bật quyền và bạn là quản trị viên, trang này cho phép bạn tạo/xóa các nhãn có sẵn. Người dùng sẽ không thể tạo các nhãn khác.<br/>Sau khi bạn đã cập nhật danh sách này, đừng quên nhấp vào <strong>Lưu</strong> để áp dụng các thay đổi của bạn.",
    +        "available_labels_global_instructions_html": "Vì bạn đã bật quyền và bạn là quản trị viên, trang này cho phép bạn tạo/xóa các nhãn có sẵn. Người dùng sẽ không thể tạo các nhãn khác.\nSau khi bạn đã cập nhật danh sách này, đừng quên nhấp vào <strong>Lưu</strong> để áp dụng các thay đổi của bạn.",
             "available_labels_title": "Nhãn đang có",
             "create_new_label": "Tạo nhãn mới",
             "dicom_AET": "DICOM AET",
    @@ -255,8 +255,8 @@
         "this_study_is_already_stored_locally_show": "Hiển thị nó!",
         "token": {
             "error_token_expired_html": "Token của bạn đã hết hạn.",
    -        "error_token_invalid_html": "Token của bạn không hợp lệ.<br/>Kiểm tra nếu bạn đã dán nó hoặc liên hệ với người đã cung cấp nó cho bạn.",
    -        "error_token_unknown_html": "Token của bạn không hợp lệ.<br/>Kiểm tra nếu bạn đã dán nó hoặc liên hệ với người đã cung cấp nó cho bạn.",
    +        "error_token_invalid_html": "Token của bạn không hợp lệ.\nKiểm tra nếu bạn đã dán nó hoặc liên hệ với người đã cung cấp nó cho bạn.",
    +        "error_token_unknown_html": "Token của bạn không hợp lệ.\nKiểm tra nếu bạn đã dán nó hoặc liên hệ với người đã cung cấp nó cho bạn.",
             "token_being_checked_html": "Token của bạn đang được kiểm tra."
         },
         "trace": "Theo dõi",
    
  • WebApplication/src/locales/zh.json+7 7 modified
    @@ -16,13 +16,13 @@
         },
         "default": "默认",
         "delete": "删除",
    -    "delete_instance_body": "您确定要删除此实例吗?<br/>此操作无法撤销!",
    +    "delete_instance_body": "您确定要删除此实例吗?\n此操作无法撤销!",
         "delete_instance_title": "删除实例?",
    -    "delete_series_body": "您确定要删除此系列吗?<br/>此操作无法撤销!",
    +    "delete_series_body": "您确定要删除此系列吗?\n此操作无法撤销!",
         "delete_series_title": "删除系列?",
    -    "delete_studies_body": "您确定要删除这些研究吗?<br/>此操作无法撤销!",
    +    "delete_studies_body": "您确定要删除这些研究吗?\n此操作无法撤销!",
         "delete_studies_title": "删除研究?",
    -    "delete_study_body": "您确定要删除此研究吗?<br/>此操作无法撤销!",
    +    "delete_study_body": "您确定要删除此研究吗?\n此操作无法撤销!",
         "delete_study_title": "删除研究?",
         "description": "描述",
         "dicom_modalities": "DICOM模态",
    @@ -124,7 +124,7 @@
             "study_step_0_modify_study_button_title_html": "修改研究标签",
             "study_step_0_modify_study_html": "仅修改此研究的患者/研究标签?",
             "study_step_0_patient_has_other_studies_button_title_html": "修改患者标签",
    -        "study_step_0_patient_has_other_studies_html": "该患者共有<strong>{count}</strong>个研究。<br/>您是否要在所有这些研究中修改患者?",
    +        "study_step_0_patient_has_other_studies_html": "该患者共有<strong>{count}</strong>个研究。\n您是否要在所有这些研究中修改患者?",
             "warning_create_new_study_from_series_html": "已存在具有不同标签的具有相同PatientID的患者。您是否要使用现有的PatientName、PatientSex和PatientBirthDate?"
         },
         "my_jobs": "我的作业",
    @@ -191,8 +191,8 @@
         "this_patient_has_other_studies_show": "显示它们!",
         "token": {
             "error_token_expired_html": "您的令牌已过期。",
    -        "error_token_invalid_html": "您的令牌无效。<br/>请确保完整粘贴或与提供给您的人员联系。",
    -        "error_token_unknown_html": "您的令牌无效。<br/>请确保完整粘贴或与提供给您的人员联系。",
    +        "error_token_invalid_html": "您的令牌无效。\n请确保完整粘贴或与提供给您的人员联系。",
    +        "error_token_unknown_html": "您的令牌无效。\n请确保完整粘贴或与提供给您的人员联系。",
             "token_being_checked_html": "正在验证您的令牌。"
         },
         "trace": "跟踪",
    

Vulnerability mechanics

Synthesis attempt was rejected by the grounding validator. Re-run pending.

References

6

News mentions

0

No linked articles in our index yet.