Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2b2d50e5e | ||
|
|
55d61e37f3 | ||
|
|
fa19f5a704 | ||
|
|
b995031255 | ||
|
|
d096444ca0 | ||
|
|
10358d4f53 | ||
|
|
78f41b8380 | ||
|
|
90d4bc7c04 | ||
|
|
b59c17f120 | ||
|
|
c279e7fd38 | ||
|
|
8a4fcb3e62 | ||
|
|
680ef7088b |
Generated
+15
-34
@@ -233,7 +233,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
|
||||
"integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.29.0",
|
||||
"@babel/generator": "^7.29.0",
|
||||
@@ -1931,6 +1930,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@bubblewrap/core/node_modules/inquirer/node_modules/@types/node": {
|
||||
"version": "25.9.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz",
|
||||
"integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==",
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": ">=7.24.0 <7.24.7"
|
||||
}
|
||||
},
|
||||
"node_modules/@bubblewrap/core/node_modules/mute-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
|
||||
@@ -1954,7 +1963,8 @@
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
|
||||
"integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
"optional": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@bubblewrap/validator": {
|
||||
"version": "1.22.0",
|
||||
@@ -2077,7 +2087,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=20.19.0"
|
||||
},
|
||||
@@ -2126,7 +2135,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=20.19.0"
|
||||
}
|
||||
@@ -2564,7 +2572,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz",
|
||||
"integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"preact": "~10.12.1"
|
||||
}
|
||||
@@ -2808,7 +2815,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz",
|
||||
"integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/core": "^0.22.12"
|
||||
}
|
||||
@@ -2845,7 +2851,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz",
|
||||
"integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -2858,7 +2863,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz",
|
||||
"integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -2883,7 +2887,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz",
|
||||
"integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12",
|
||||
"tinycolor2": "^1.6.0"
|
||||
@@ -2927,7 +2930,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz",
|
||||
"integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -3051,7 +3053,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz",
|
||||
"integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -3064,7 +3065,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz",
|
||||
"integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -3080,7 +3080,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz",
|
||||
"integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jimp/utils": "^0.22.12"
|
||||
},
|
||||
@@ -5343,7 +5342,6 @@
|
||||
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -5378,7 +5376,6 @@
|
||||
"integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fast-uri": "^3.0.1",
|
||||
@@ -5472,8 +5469,7 @@
|
||||
"version": "5.10.4",
|
||||
"resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-5.10.4.tgz",
|
||||
"integrity": "sha512-gt0VUqZ2+mr25ScbUcKZgJr96jKYm4vjOcxEWCEh/E5F4dWqhyo3dBhPRvNNnkKiWxkMd2cBwj3ZYH3rK39fkA==",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"peer": true
|
||||
"license": "SEE LICENSE IN LICENSE"
|
||||
},
|
||||
"node_modules/aria-query": {
|
||||
"version": "5.3.1",
|
||||
@@ -5597,7 +5593,6 @@
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
|
||||
"integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.11",
|
||||
"form-data": "^4.0.5",
|
||||
@@ -5821,7 +5816,6 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.9.0",
|
||||
"caniuse-lite": "^1.0.30001759",
|
||||
@@ -5906,8 +5900,7 @@
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.4.tgz",
|
||||
"integrity": "sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/bulma-block-list": {
|
||||
"version": "1.1.0",
|
||||
@@ -6165,7 +6158,6 @@
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz",
|
||||
"integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@kurkle/color": "^0.3.0"
|
||||
},
|
||||
@@ -6588,7 +6580,6 @@
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -6777,7 +6768,6 @@
|
||||
"integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
|
||||
"deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-sfc": "2.7.16",
|
||||
"csstype": "^3.1.0"
|
||||
@@ -8335,8 +8325,7 @@
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz",
|
||||
"integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==",
|
||||
"license": "Apache-2.0",
|
||||
"peer": true
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/ieee754": {
|
||||
"version": "1.2.1",
|
||||
@@ -10403,7 +10392,6 @@
|
||||
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz",
|
||||
"integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"dijkstrajs": "^1.0.1",
|
||||
"pngjs": "^5.0.0",
|
||||
@@ -10758,7 +10746,6 @@
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
|
||||
"integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.8"
|
||||
},
|
||||
@@ -10942,7 +10929,6 @@
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz",
|
||||
"integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"chokidar": "^4.0.0",
|
||||
"immutable": "^5.1.5",
|
||||
@@ -10964,7 +10950,6 @@
|
||||
"integrity": "sha512-Do7u6iRb6K+lrllcTkB1BXcHwOxcKe3rEfOF/GcCLE2w3WpddakRAosJOHFUR37DpsvimQXEt5abs3NzUjEIqg==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.5.0",
|
||||
"colorjs.io": "^0.5.0",
|
||||
@@ -12730,7 +12715,6 @@
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
|
||||
"integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
"fdir": "^6.5.0",
|
||||
@@ -14123,7 +14107,6 @@
|
||||
"integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.21.3",
|
||||
"postcss": "^8.4.43",
|
||||
@@ -14183,7 +14166,6 @@
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.31.tgz",
|
||||
"integrity": "sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.31",
|
||||
"@vue/compiler-sfc": "3.5.31",
|
||||
@@ -14871,7 +14853,6 @@
|
||||
"integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
|
||||
@@ -117,15 +117,6 @@ const emit = defineEmits<{
|
||||
</b-radio-button>
|
||||
</div>
|
||||
</div>
|
||||
<b-message
|
||||
v-if="selectedLaneId && !isMachineAvailable(selectedLaneId)"
|
||||
type="is-warning"
|
||||
has-icon
|
||||
:closable="false"
|
||||
data-testid="self-serve-machine-unavailable-guidance"
|
||||
>
|
||||
{{ $t("self_wash.machine_unavailable_for_lane") }}
|
||||
</b-message>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -26,7 +26,7 @@ const pages = {
|
||||
to: "/user/wash/start",
|
||||
label: "Selv vask",
|
||||
icon: "tint",
|
||||
disabled: !IS_DEV,
|
||||
disabled: false,
|
||||
},
|
||||
bookings: {
|
||||
to: "/user/bookings",
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
"api": "API",
|
||||
"app": "app",
|
||||
"appen": "appen",
|
||||
"ar": "år",
|
||||
"ar": "@:{'words.generated.years'}",
|
||||
"are": "are",
|
||||
"arsag": "årsag",
|
||||
"at": "at",
|
||||
@@ -679,7 +679,7 @@
|
||||
"nøgle": "nøgle",
|
||||
"nogle": "nogle",
|
||||
"nok": "nok",
|
||||
"nøkkel": "nøgle",
|
||||
"nøkkel": "@:{'words.generated.nøgle'}",
|
||||
"nøkkelen": "nøglen",
|
||||
"not": "not",
|
||||
"note": "note",
|
||||
@@ -1599,7 +1599,25 @@
|
||||
"view_lane_new_tab": "@:{'words.generated.abn'} @:{'words.generated.bane'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_lane_setup_new_tab": "@:{'words.generated.abn'} baneopsætning @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_order_new_tab": "@:{'words.generated.abn'} @:{'words.generated.ordre'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_vehicle_new_tab": "?@:{'words.generated.bn'} @:{'words.generated.k'}?@:{'words.generated.ret'}?j {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}"
|
||||
"view_vehicle_new_tab": "?@:{'words.generated.bn'} @:{'words.generated.k'}?@:{'words.generated.ret'}?j {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"accept_self_serve_wash": "Godkend selvbetjent vask",
|
||||
"accept_self_serve_wash_confirm": "Flyt denne kladde til kunde #{customerNumber} med selvbetjeningsdetaljerne?",
|
||||
"accept_self_serve_wash_success": "Den selvbetjente vask blev godkendt.",
|
||||
"email_notifications_section": "E-mail notifikationer",
|
||||
"resend_booking_completion_confirmation": "(Gen)send bekræftelse for færdig booking",
|
||||
"resend_booking_completion_confirmation_error": "Bekræftelsen for færdig booking kunne ikke sendes",
|
||||
"resend_booking_completion_confirmation_success": "Bekræftelsen for færdig booking er sendt",
|
||||
"resend_booking_confirmation": "(Gen)send bookingbekræftelse",
|
||||
"resend_booking_confirmation_error": "Bookingbekræftelsen kunne ikke sendes",
|
||||
"resend_booking_confirmation_success": "Bookingbekræftelsen er sendt",
|
||||
"resend_wash_certificate": "(Gen)send vaskecertifikat",
|
||||
"resend_wash_certificate_error": "Vaskecertifikatet kunne ikke sendes",
|
||||
"resend_wash_certificate_success": "Vaskecertifikatet er sendt",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Chauffør",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Selvbetjent vask",
|
||||
"self_serve_wash_attachment_for_customer": "Selvbetjent vask for kunde #{customerNumber}"
|
||||
},
|
||||
"show_details": "@:{'words.generated.vis'} @:{'words.generated.detaljer'}",
|
||||
"show_order_details": "@:{'words.generated.vis'} @:{'words.generated.ordredetaljer'}",
|
||||
@@ -2439,6 +2457,59 @@
|
||||
"username_desc": "@.capitalize:{'words.generated.brugernavnet'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Vælg repository",
|
||||
"add_health_url": "tilføj health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åbn GitHub token-indstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domæne",
|
||||
"ssl_domain_message": "Skal være et DNS-domæne, der routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domæne",
|
||||
"https_domain_for_coolify": "Domæne kontrolleret af load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opret manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
},
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-udgivelser",
|
||||
"channel_names": {
|
||||
@@ -2884,59 +2955,6 @@
|
||||
"severity": "Alvorlighed",
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Vælg repository",
|
||||
"add_health_url": "tilføj health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åbn GitHub token-indstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domæne",
|
||||
"ssl_domain_message": "Skal være et DNS-domæne, der routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domæne",
|
||||
"https_domain_for_coolify": "Domæne kontrolleret af load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opret manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1061,7 +1061,7 @@
|
||||
"uhrzeit": "Uhrzeit",
|
||||
"um": "um",
|
||||
"umbenannt": "umbenannt",
|
||||
"umbenennen": "umbenennen",
|
||||
"umbenennen": "@:{'words.generated.rename'}",
|
||||
"umsatz": "Umsatz",
|
||||
"umweltgeb": "Umweltgeb",
|
||||
"unabhangig": "unabhängig",
|
||||
@@ -1709,7 +1709,25 @@
|
||||
"view_lane_new_tab": "@:{'words.generated.spur'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}",
|
||||
"view_lane_setup_new_tab": "Spurkonfiguration @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}",
|
||||
"view_order_new_tab": "@:{'words.generated.auftrag'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}",
|
||||
"view_vehicle_new_tab": "@:{'words.generated.fahrzeug'} {reg} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}"
|
||||
"view_vehicle_new_tab": "@:{'words.generated.fahrzeug'} {reg} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}",
|
||||
"accept_self_serve_wash": "Self-Service-Wäsche akzeptieren",
|
||||
"accept_self_serve_wash_confirm": "Diesen Entwurf mit den Self-Service-Details zu Kunde #{customerNumber} verschieben?",
|
||||
"accept_self_serve_wash_success": "Die Self-Service-Wäsche wurde akzeptiert.",
|
||||
"email_notifications_section": "E-Mail-Benachrichtigungen",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Fahrer",
|
||||
"self_serve_elapsed": "Zeit",
|
||||
"self_serve_wash_attachment": "Self-Service-Wäsche",
|
||||
"self_serve_wash_attachment_for_customer": "Self-Service-Wäsche für Kunde #{customerNumber}"
|
||||
},
|
||||
"show_details": "@.capitalize:{'words.generated.details'} @:{'words.generated.anzeigen'}",
|
||||
"show_order_details": "@:{'words.generated.auftragsdetails'} @:{'words.generated.anzeigen'}",
|
||||
@@ -2549,6 +2567,59 @@
|
||||
"username_desc": "@.capitalize:{'words.generated.der'} @:{'words.generated.benutzername'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub und Coolify",
|
||||
"subtitle": "GitHub-Repositories und Branches kanalspezifischen Coolify-Services zuordnen.",
|
||||
"choose_repository": "Repository auswählen",
|
||||
"add_health_url": "Health-URL hinzufügen",
|
||||
"github_token_not_configured": "GitHub-Token ist nicht konfiguriert; private Repositories können nicht aufgelistet werden.",
|
||||
"open_github_token_settings": "GitHub-Token-Einstellungen öffnen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Neueste: {commit}",
|
||||
"coolify_instance": "Coolify-Instanz",
|
||||
"coolify_instance_message": "Leer lassen für manuelle Deployment-Einträge.",
|
||||
"no_coolify_instance": "Keine Coolify-Instanz",
|
||||
"coolify_instance_placeholder": "Coolify-Instanz-ID",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Bestehenden Service auswählen oder UUID einfügen.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load-Balancer-Domain",
|
||||
"ssl_domain_message": "Muss eine DNS-Domain sein, die zum Coolify Load Balancer geroutet wird. Beispiel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load-Balancer-Domain",
|
||||
"https_domain_for_coolify": "Domain unter Kontrolle des Load Balancers",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto-Deploy",
|
||||
"auto_deploy_tooltip": "Automatisch Deployments erstellen, wenn sich dieses Ziel ändert.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Coolify anweisen, HTTPS für die konfigurierte Domain bereitzustellen.",
|
||||
"deploy_now": "Jetzt deployen",
|
||||
"deploy_now_tooltip": "Deployment direkt nach dem Speichern des Ziels starten.",
|
||||
"create_missing_service": "Fehlenden Service erstellen",
|
||||
"create_missing_service_tooltip": "Release Manager erlauben, einen fehlenden Coolify-Service zu erstellen.",
|
||||
"test_access_tooltip": "Prüfen, ob der konfigurierte GitHub-Token dieses Repository und den Branch lesen kann."
|
||||
},
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Schrittweise API- und Front-End-Releases",
|
||||
"channel_names": {
|
||||
@@ -2744,7 +2815,8 @@
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Lokales Frontend verwenden"
|
||||
"use_local_frontend": "Lokales Frontend verwenden",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
@@ -2768,7 +2840,8 @@
|
||||
"save_target": "Ziel speichern",
|
||||
"delete": "Löschen",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter"
|
||||
"next": "Weiter",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
@@ -2978,58 +3051,20 @@
|
||||
"any_severity": "Beliebiger Schweregrad",
|
||||
"no_timeline_events": "Keine Timeline-Events entsprechen den aktuellen Filtern."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub und Coolify",
|
||||
"subtitle": "GitHub-Repositories und Branches kanalspezifischen Coolify-Services zuordnen.",
|
||||
"choose_repository": "Repository auswählen",
|
||||
"add_health_url": "Health-URL hinzufügen",
|
||||
"github_token_not_configured": "GitHub-Token ist nicht konfiguriert; private Repositories können nicht aufgelistet werden.",
|
||||
"open_github_token_settings": "GitHub-Token-Einstellungen öffnen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Neueste: {commit}",
|
||||
"coolify_instance": "Coolify-Instanz",
|
||||
"coolify_instance_message": "Leer lassen für manuelle Deployment-Einträge.",
|
||||
"no_coolify_instance": "Keine Coolify-Instanz",
|
||||
"coolify_instance_placeholder": "Coolify-Instanz-ID",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Bestehenden Service auswählen oder UUID einfügen.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load-Balancer-Domain",
|
||||
"ssl_domain_message": "Muss eine DNS-Domain sein, die zum Coolify Load Balancer geroutet wird. Beispiel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load-Balancer-Domain",
|
||||
"https_domain_for_coolify": "Domain unter Kontrolle des Load Balancers",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto-Deploy",
|
||||
"auto_deploy_tooltip": "Automatisch Deployments erstellen, wenn sich dieses Ziel ändert.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Coolify anweisen, HTTPS für die konfigurierte Domain bereitzustellen.",
|
||||
"deploy_now": "Jetzt deployen",
|
||||
"deploy_now_tooltip": "Deployment direkt nach dem Speichern des Ziels starten.",
|
||||
"create_missing_service": "Fehlenden Service erstellen",
|
||||
"create_missing_service_tooltip": "Release Manager erlauben, einen fehlenden Coolify-Service zu erstellen.",
|
||||
"test_access_tooltip": "Prüfen, ob der konfigurierte GitHub-Token dieses Repository und den Branch lesen kann."
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1433,7 +1433,25 @@
|
||||
"view_lane_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_lane_setup_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.setup'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_order_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.vehicle'} {reg} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}"
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.vehicle'} {reg} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"accept_self_serve_wash": "Accept self-serve wash",
|
||||
"accept_self_serve_wash_confirm": "Move this draft to customer #{customerNumber} with the self-serve details?",
|
||||
"accept_self_serve_wash_success": "The self-serve wash was accepted.",
|
||||
"email_notifications_section": "Email notifications",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Customer",
|
||||
"self_serve_driver": "Driver",
|
||||
"self_serve_elapsed": "Elapsed",
|
||||
"self_serve_wash_attachment": "Self-serve wash",
|
||||
"self_serve_wash_attachment_for_customer": "Self-serve wash for customer #{customerNumber}"
|
||||
},
|
||||
"show_details": "@.capitalize:{'words.generated.show'} @:{'words.generated.details'}",
|
||||
"show_order_details": "@.capitalize:{'words.generated.show'} @:{'words.generated.order'} @:{'words.generated.details'}",
|
||||
@@ -2273,6 +2291,59 @@
|
||||
"username_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.username'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub and Coolify",
|
||||
"subtitle": "Map GitHub repositories and branches to channel-specific Coolify services.",
|
||||
"choose_repository": "Choose repository",
|
||||
"add_health_url": "add health URL",
|
||||
"github_token_not_configured": "GitHub token is not configured; private repositories cannot be listed.",
|
||||
"open_github_token_settings": "Open GitHub token settings",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Latest: {commit}",
|
||||
"coolify_instance": "Coolify instance",
|
||||
"coolify_instance_message": "Leave empty for manual deployment records.",
|
||||
"no_coolify_instance": "No Coolify instance",
|
||||
"coolify_instance_placeholder": "Coolify instance id",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Select an existing service or paste a UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load balancer domain",
|
||||
"ssl_domain_message": "Must be a DNS domain routed to the Coolify load balancer. Example: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer domain",
|
||||
"https_domain_for_coolify": "Domain controlled by the load balancer",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Automatically create deployments when this target changes.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Ask Coolify to provision HTTPS for the configured domain.",
|
||||
"deploy_now": "Deploy now",
|
||||
"deploy_now_tooltip": "Start a deployment immediately after saving the target.",
|
||||
"create_missing_service": "Create missing service",
|
||||
"create_missing_service_tooltip": "Allow Release Manager to create a missing Coolify service.",
|
||||
"test_access_tooltip": "Verify the configured GitHub token can read this repository and branch."
|
||||
},
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradual API and Front-End releases",
|
||||
"channel_names": {
|
||||
@@ -2718,59 +2789,6 @@
|
||||
"severity": "Severity",
|
||||
"any_severity": "Any severity",
|
||||
"no_timeline_events": "No timeline events match the current filters."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub and Coolify",
|
||||
"subtitle": "Map GitHub repositories and branches to channel-specific Coolify services.",
|
||||
"choose_repository": "Choose repository",
|
||||
"add_health_url": "add health URL",
|
||||
"github_token_not_configured": "GitHub token is not configured; private repositories cannot be listed.",
|
||||
"open_github_token_settings": "Open GitHub token settings",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Latest: {commit}",
|
||||
"coolify_instance": "Coolify instance",
|
||||
"coolify_instance_message": "Leave empty for manual deployment records.",
|
||||
"no_coolify_instance": "No Coolify instance",
|
||||
"coolify_instance_placeholder": "Coolify instance id",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Select an existing service or paste a UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load balancer domain",
|
||||
"ssl_domain_message": "Must be a DNS domain routed to the Coolify load balancer. Example: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer domain",
|
||||
"https_domain_for_coolify": "Domain controlled by the load balancer",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Automatically create deployments when this target changes.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Ask Coolify to provision HTTPS for the configured domain.",
|
||||
"deploy_now": "Deploy now",
|
||||
"deploy_now_tooltip": "Start a deployment immediately after saving the target.",
|
||||
"create_missing_service": "Create missing service",
|
||||
"create_missing_service_tooltip": "Allow Release Manager to create a missing Coolify service.",
|
||||
"test_access_tooltip": "Verify the configured GitHub token can read this repository and branch."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -549,7 +549,25 @@
|
||||
"view_lane_new_tab": "@:{'templates.generated.compat.admin.pos.settings_wheel.view_lane_new_tab'}",
|
||||
"view_lane_setup_new_tab": "@:{'templates.generated.compat.admin.pos.settings_wheel.view_lane_setup_new_tab'}",
|
||||
"view_order_new_tab": "@:{'templates.generated.compat.admin.pos.settings_wheel.view_order_new_tab'}",
|
||||
"view_vehicle_new_tab": "@:{'templates.generated.compat.admin.pos.settings_wheel.view_vehicle_new_tab'}"
|
||||
"view_vehicle_new_tab": "@:{'templates.generated.compat.admin.pos.settings_wheel.view_vehicle_new_tab'}",
|
||||
"accept_self_serve_wash": "@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash'}",
|
||||
"accept_self_serve_wash_confirm": "@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash_confirm'}",
|
||||
"accept_self_serve_wash_success": "@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash_success'}",
|
||||
"email_notifications_section": "@:{'templates.generated.compat.admin.pos.settings_wheel.email_notifications_section'}",
|
||||
"resend_booking_completion_confirmation": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation'}",
|
||||
"resend_booking_completion_confirmation_error": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_error'}",
|
||||
"resend_booking_completion_confirmation_success": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_success'}",
|
||||
"resend_booking_confirmation": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation'}",
|
||||
"resend_booking_confirmation_error": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation_error'}",
|
||||
"resend_booking_confirmation_success": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation_success'}",
|
||||
"resend_wash_certificate": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate'}",
|
||||
"resend_wash_certificate_error": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate_error'}",
|
||||
"resend_wash_certificate_success": "@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate_success'}",
|
||||
"self_serve_customer": "@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_customer'}",
|
||||
"self_serve_driver": "@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_driver'}",
|
||||
"self_serve_elapsed": "@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_elapsed'}",
|
||||
"self_serve_wash_attachment": "@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_wash_attachment'}",
|
||||
"self_serve_wash_attachment_for_customer": "@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_wash_attachment_for_customer'}"
|
||||
},
|
||||
"show_details": "@:{'templates.generated.compat.admin.pos.show_details'}",
|
||||
"show_order_details": "@:{'templates.generated.compat.admin.pos.show_order_details'}",
|
||||
@@ -1498,6 +1516,59 @@
|
||||
"username_desc": "@:{'templates.generated.compat.configuration.xlvask.username_desc'}"
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "@:{'templates.generated.compat.configuration.release_manager.integrations.title'}",
|
||||
"subtitle": "@:{'templates.generated.compat.configuration.release_manager.integrations.subtitle'}",
|
||||
"choose_repository": "@:{'templates.generated.compat.configuration.release_manager.integrations.choose_repository'}",
|
||||
"add_health_url": "@:{'templates.generated.compat.configuration.release_manager.integrations.add_health_url'}",
|
||||
"github_token_not_configured": "@:{'templates.generated.compat.configuration.release_manager.integrations.github_token_not_configured'}",
|
||||
"open_github_token_settings": "@:{'templates.generated.compat.configuration.release_manager.integrations.open_github_token_settings'}",
|
||||
"channel": "@:{'templates.generated.compat.configuration.release_manager.integrations.channel'}",
|
||||
"app": "@:{'templates.generated.compat.configuration.release_manager.integrations.app'}",
|
||||
"repository": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository'}",
|
||||
"repository_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository_message'}",
|
||||
"repository_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository_placeholder'}",
|
||||
"branch": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch'}",
|
||||
"branch_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch_message'}",
|
||||
"branch_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch_placeholder'}",
|
||||
"latest_prefix": "@:{'templates.generated.compat.configuration.release_manager.integrations.latest_prefix'}",
|
||||
"coolify_instance": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance'}",
|
||||
"coolify_instance_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_message'}",
|
||||
"no_coolify_instance": "@:{'templates.generated.compat.configuration.release_manager.integrations.no_coolify_instance'}",
|
||||
"coolify_instance_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_placeholder'}",
|
||||
"coolify_service_uuid": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid'}",
|
||||
"coolify_service_uuid_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_message'}",
|
||||
"coolify_service_uuid_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_placeholder'}",
|
||||
"health_url": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url'}",
|
||||
"health_url_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_message'}",
|
||||
"health_url_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_placeholder'}",
|
||||
"ssl_domain": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain'}",
|
||||
"ssl_domain_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_message'}",
|
||||
"ssl_domain_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_placeholder'}",
|
||||
"https_domain_for_coolify": "@:{'templates.generated.compat.configuration.release_manager.integrations.https_domain_for_coolify'}",
|
||||
"endpoint_mode": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode'}",
|
||||
"endpoint_mode_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_message'}",
|
||||
"endpoint_mode_auto": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_auto'}",
|
||||
"endpoint_mode_manual": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_manual'}",
|
||||
"manual_endpoint_host": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host'}",
|
||||
"manual_endpoint_host_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_message'}",
|
||||
"manual_endpoint_host_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_placeholder'}",
|
||||
"manual_endpoint_port": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port'}",
|
||||
"manual_endpoint_port_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port_message'}",
|
||||
"app_port": "@:{'templates.generated.compat.configuration.release_manager.integrations.app_port'}",
|
||||
"app_port_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.app_port_message'}",
|
||||
"auto_gateway_endpoint": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_gateway_endpoint'}",
|
||||
"pending_automatic_endpoint": "@:{'templates.generated.compat.configuration.release_manager.integrations.pending_automatic_endpoint'}",
|
||||
"auto_deploy": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy'}",
|
||||
"auto_deploy_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy_tooltip'}",
|
||||
"coolify_ssl": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl'}",
|
||||
"coolify_ssl_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl_tooltip'}",
|
||||
"deploy_now": "@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now'}",
|
||||
"deploy_now_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now_tooltip'}",
|
||||
"create_missing_service": "@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service'}",
|
||||
"create_missing_service_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service_tooltip'}",
|
||||
"test_access_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.test_access_tooltip'}"
|
||||
},
|
||||
"title": "@:{'templates.generated.compat.configuration.release_manager.title'}",
|
||||
"subtitle": "@:{'templates.generated.compat.configuration.release_manager.subtitle'}",
|
||||
"channel_names": {
|
||||
@@ -1910,58 +1981,22 @@
|
||||
"any_severity": "@:{'templates.generated.compat.configuration.release_manager.replay.any_severity'}",
|
||||
"no_timeline_events": "@:{'templates.generated.compat.configuration.release_manager.replay.no_timeline_events'}"
|
||||
},
|
||||
"integrations": {
|
||||
"title": "@:{'templates.generated.compat.configuration.release_manager.integrations.title'}",
|
||||
"subtitle": "@:{'templates.generated.compat.configuration.release_manager.integrations.subtitle'}",
|
||||
"choose_repository": "@:{'templates.generated.compat.configuration.release_manager.integrations.choose_repository'}",
|
||||
"add_health_url": "@:{'templates.generated.compat.configuration.release_manager.integrations.add_health_url'}",
|
||||
"github_token_not_configured": "@:{'templates.generated.compat.configuration.release_manager.integrations.github_token_not_configured'}",
|
||||
"open_github_token_settings": "@:{'templates.generated.compat.configuration.release_manager.integrations.open_github_token_settings'}",
|
||||
"channel": "@:{'templates.generated.compat.configuration.release_manager.integrations.channel'}",
|
||||
"app": "@:{'templates.generated.compat.configuration.release_manager.integrations.app'}",
|
||||
"repository": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository'}",
|
||||
"repository_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository_message'}",
|
||||
"repository_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.repository_placeholder'}",
|
||||
"branch": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch'}",
|
||||
"branch_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch_message'}",
|
||||
"branch_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.branch_placeholder'}",
|
||||
"latest_prefix": "@:{'templates.generated.compat.configuration.release_manager.integrations.latest_prefix'}",
|
||||
"coolify_instance": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance'}",
|
||||
"coolify_instance_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_message'}",
|
||||
"no_coolify_instance": "@:{'templates.generated.compat.configuration.release_manager.integrations.no_coolify_instance'}",
|
||||
"coolify_instance_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_placeholder'}",
|
||||
"coolify_service_uuid": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid'}",
|
||||
"coolify_service_uuid_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_message'}",
|
||||
"coolify_service_uuid_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_placeholder'}",
|
||||
"health_url": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url'}",
|
||||
"health_url_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_message'}",
|
||||
"health_url_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_placeholder'}",
|
||||
"ssl_domain": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain'}",
|
||||
"ssl_domain_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_message'}",
|
||||
"ssl_domain_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_placeholder'}",
|
||||
"https_domain_for_coolify": "@:{'templates.generated.compat.configuration.release_manager.integrations.https_domain_for_coolify'}",
|
||||
"endpoint_mode": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode'}",
|
||||
"endpoint_mode_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_message'}",
|
||||
"endpoint_mode_auto": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_auto'}",
|
||||
"endpoint_mode_manual": "@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_manual'}",
|
||||
"manual_endpoint_host": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host'}",
|
||||
"manual_endpoint_host_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_message'}",
|
||||
"manual_endpoint_host_placeholder": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_placeholder'}",
|
||||
"manual_endpoint_port": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port'}",
|
||||
"manual_endpoint_port_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port_message'}",
|
||||
"app_port": "@:{'templates.generated.compat.configuration.release_manager.integrations.app_port'}",
|
||||
"app_port_message": "@:{'templates.generated.compat.configuration.release_manager.integrations.app_port_message'}",
|
||||
"auto_gateway_endpoint": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_gateway_endpoint'}",
|
||||
"pending_automatic_endpoint": "@:{'templates.generated.compat.configuration.release_manager.integrations.pending_automatic_endpoint'}",
|
||||
"auto_deploy": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy'}",
|
||||
"auto_deploy_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy_tooltip'}",
|
||||
"coolify_ssl": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl'}",
|
||||
"coolify_ssl_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl_tooltip'}",
|
||||
"deploy_now": "@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now'}",
|
||||
"deploy_now_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now_tooltip'}",
|
||||
"create_missing_service": "@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service'}",
|
||||
"create_missing_service_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service_tooltip'}",
|
||||
"test_access_tooltip": "@:{'templates.generated.compat.configuration.release_manager.integrations.test_access_tooltip'}"
|
||||
"loading": {
|
||||
"assignments": "@:{'templates.generated.compat.configuration.release_manager.loading.assignments'}",
|
||||
"channels": "@:{'templates.generated.compat.configuration.release_manager.loading.channels'}",
|
||||
"channels_detail": "@:{'templates.generated.compat.configuration.release_manager.loading.channels_detail'}",
|
||||
"data_services": "@:{'templates.generated.compat.configuration.release_manager.loading.data_services'}",
|
||||
"deployments": "@:{'templates.generated.compat.configuration.release_manager.loading.deployments'}",
|
||||
"github_repositories": "@:{'templates.generated.compat.configuration.release_manager.loading.github_repositories'}",
|
||||
"integrations": "@:{'templates.generated.compat.configuration.release_manager.loading.integrations'}",
|
||||
"operations": "@:{'templates.generated.compat.configuration.release_manager.loading.operations'}",
|
||||
"refreshing_summary": "@:{'templates.generated.compat.configuration.release_manager.loading.refreshing_summary'}",
|
||||
"refreshing_timeline": "@:{'templates.generated.compat.configuration.release_manager.loading.refreshing_timeline'}",
|
||||
"settings": "@:{'templates.generated.compat.configuration.release_manager.loading.settings'}",
|
||||
"summary": "@:{'templates.generated.compat.configuration.release_manager.loading.summary'}",
|
||||
"summary_detail": "@:{'templates.generated.compat.configuration.release_manager.loading.summary_detail'}",
|
||||
"timeline_events": "@:{'templates.generated.compat.configuration.release_manager.loading.timeline_events'}",
|
||||
"timeline_sessions": "@:{'templates.generated.compat.configuration.release_manager.loading.timeline_sessions'}"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1710,7 +1710,25 @@
|
||||
"view_lane_new_tab": "@.capitalize:{'words.generated.se'} kjørefelt @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_lane_setup_new_tab": "@.capitalize:{'words.generated.se'} kjørefeltoppsett @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_order_new_tab": "@.capitalize:{'words.generated.se'} @:{'words.generated.ordre'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.se'} @:{'words.generated.kjøretøy'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}"
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.se'} @:{'words.generated.kjøretøy'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}",
|
||||
"accept_self_serve_wash": "Godta selvbetjent vask",
|
||||
"accept_self_serve_wash_confirm": "Flytt denne kladden til kunde #{customerNumber} med selvbetjeningsdetaljene?",
|
||||
"accept_self_serve_wash_success": "Den selvbetjente vasken ble godtatt.",
|
||||
"email_notifications_section": "E-postvarsler",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Sjåfør",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Selvbetjent vask",
|
||||
"self_serve_wash_attachment_for_customer": "Selvbetjent vask for kunde #{customerNumber}"
|
||||
},
|
||||
"show_details": "@:{'words.generated.vis'} @:{'words.generated.detaljer'}",
|
||||
"show_order_details": "@:{'words.generated.vis'} @:{'words.generated.bestillingsdetaljer'}",
|
||||
@@ -2550,6 +2568,59 @@
|
||||
"username_desc": "@:{'words.generated.brukernavnet'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Velg repository",
|
||||
"add_health_url": "legg til health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigurert; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åpne GitHub token-innstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domene",
|
||||
"ssl_domain_message": "Må være et DNS-domene som routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domene",
|
||||
"https_domain_for_coolify": "Domene kontrollert av load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nå",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opprett manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
},
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-utgivelser",
|
||||
"channel_names": {
|
||||
@@ -2745,7 +2816,8 @@
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Bruk lokal frontend"
|
||||
"use_local_frontend": "Bruk lokal frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
@@ -2769,7 +2841,8 @@
|
||||
"save_target": "Lagre mål",
|
||||
"delete": "Slett",
|
||||
"back": "Tilbake",
|
||||
"next": "Neste"
|
||||
"next": "Neste",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
@@ -2979,58 +3052,20 @@
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Velg repository",
|
||||
"add_health_url": "legg til health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigurert; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åpne GitHub token-innstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domene",
|
||||
"ssl_domain_message": "Må være et DNS-domene som routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domene",
|
||||
"https_domain_for_coolify": "Domene kontrollert av load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nå",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opprett manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1760,7 +1760,25 @@
|
||||
"view_lane_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_lane_setup_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.setup'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_order_new_tab": "@.capitalize:{'words.generated.view'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}",
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.visa'} @:{'words.generated.fordon'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}"
|
||||
"view_vehicle_new_tab": "@.capitalize:{'words.generated.visa'} @:{'words.generated.fordon'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}",
|
||||
"accept_self_serve_wash": "Godkänn självbetjäningstvätt",
|
||||
"accept_self_serve_wash_confirm": "Flytta detta utkast till kund #{customerNumber} med självbetjäningsdetaljerna?",
|
||||
"accept_self_serve_wash_success": "Självbetjäningstvätten godkändes.",
|
||||
"email_notifications_section": "E-postaviseringar",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kund",
|
||||
"self_serve_driver": "Förare",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Självbetjäningstvätt",
|
||||
"self_serve_wash_attachment_for_customer": "Självbetjäningstvätt för kund #{customerNumber}"
|
||||
},
|
||||
"show_details": "@:{'words.generated.show'} @:{'words.generated.details'}",
|
||||
"show_order_details": "@:{'words.generated.show'} @:{'words.generated.order'} @:{'words.generated.details'}",
|
||||
@@ -2600,6 +2618,59 @@
|
||||
"username_desc": "Användarnamnet @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub och Coolify",
|
||||
"subtitle": "Koppla GitHub-repositories och branches till kanalspecifika Coolify-tjänster.",
|
||||
"choose_repository": "Välj repository",
|
||||
"add_health_url": "lägg till health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Öppna GitHub token-inställningar",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domän",
|
||||
"ssl_domain_message": "Måste vara en DNS-domän som routas till Coolify load balancern. Exempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domän",
|
||||
"https_domain_for_coolify": "Domän som kontrolleras av load balancern",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Skapa saknad tjänst",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
},
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvisa API- och Front-End-versioner",
|
||||
"channel_names": {
|
||||
@@ -2795,7 +2866,8 @@
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Använd lokal frontend"
|
||||
"use_local_frontend": "Använd lokal frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
@@ -2819,7 +2891,8 @@
|
||||
"save_target": "Spara mål",
|
||||
"delete": "Radera",
|
||||
"back": "Tillbaka",
|
||||
"next": "Nästa"
|
||||
"next": "Nästa",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
@@ -3029,58 +3102,20 @@
|
||||
"any_severity": "Alla allvarlighetsgrader",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub och Coolify",
|
||||
"subtitle": "Koppla GitHub-repositories och branches till kanalspecifika Coolify-tjänster.",
|
||||
"choose_repository": "Välj repository",
|
||||
"add_health_url": "lägg till health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Öppna GitHub token-inställningar",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domän",
|
||||
"ssl_domain_message": "Måste vara en DNS-domän som routas till Coolify load balancern. Exempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domän",
|
||||
"https_domain_for_coolify": "Domän som kontrolleras av load balancern",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Skapa saknad tjänst",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compat": {
|
||||
"admin": {
|
||||
"pos": {
|
||||
"settings_wheel": {
|
||||
"accept_self_serve_wash": "Godkend selvbetjent vask",
|
||||
"accept_self_serve_wash_confirm": "Flyt denne kladde til kunde #{customerNumber} med selvbetjeningsdetaljerne?",
|
||||
"accept_self_serve_wash_success": "Den selvbetjente vask blev godkendt.",
|
||||
"email_notifications_section": "E-mail notifikationer",
|
||||
"resend_booking_completion_confirmation": "(Gen)send bekræftelse for færdig booking",
|
||||
"resend_booking_completion_confirmation_error": "Bekræftelsen for færdig booking kunne ikke sendes",
|
||||
"resend_booking_completion_confirmation_success": "Bekræftelsen for færdig booking er sendt",
|
||||
"resend_booking_confirmation": "(Gen)send bookingbekræftelse",
|
||||
"resend_booking_confirmation_error": "Bookingbekræftelsen kunne ikke sendes",
|
||||
"resend_booking_confirmation_success": "Bookingbekræftelsen er sendt",
|
||||
"resend_wash_certificate": "(Gen)send vaskecertifikat",
|
||||
"resend_wash_certificate_error": "Vaskecertifikatet kunne ikke sendes",
|
||||
"resend_wash_certificate_success": "Vaskecertifikatet er sendt",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Chauffør",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Selvbetjent vask",
|
||||
"self_serve_wash_attachment_for_customer": "Selvbetjent vask for kunde #{customerNumber}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,507 +298,6 @@
|
||||
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integrationen'}",
|
||||
"title": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.konfiguration'}",
|
||||
"username_desc": "@.capitalize:{'terms.glossary.brugernavnet'} @:{'terms.glossary.bruges'} @:{'terms.glossary.til'} @:{'terms.glossary.at'} @:{'terms.glossary.autentificere'} @:{'terms.glossary.api'} @:{'terms.glossary.forbindelsen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-udgivelser",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard produktionskanal.",
|
||||
"canary": "Tidlig produktionsvalideringskanal.",
|
||||
"internal": "Intern kanal til medarbejdere og superbruger-validering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontrol-API",
|
||||
"tooltip": "Release Manager-handlinger sendes til denne API. Brug produktions-API'en, medmindre du tester en staging-backend.",
|
||||
"example": "Eksempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endpoint",
|
||||
"endpoint_message": "Skift kun dette, når Release Manager-endpoints er tilgængelige på mål-API'en.",
|
||||
"endpoint_aria": "Release Manager kontrol-API URL",
|
||||
"use_tooltip": "Indlæs release-data fra denne API",
|
||||
"use": "Brug",
|
||||
"reset_tooltip": "Vend tilbage til standard kontrol-API",
|
||||
"reset": "Nulstil",
|
||||
"known_endpoints": "Kendte kontrol-API-endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Oversigt",
|
||||
"description": "Kanalstatus, opsætningsfremdrift og seneste release-tilstand."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Opret stabile, canary- og målrettede kanaler med rollout-grænser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tildelinger",
|
||||
"description": "Fastgør brugere, subbrugere eller kunder til en bestemt release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Udrulninger",
|
||||
"description": "Start udrulninger og promover vellykkede builds."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktivér målrettet opsamling og søg i release-tidslinjehændelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationer",
|
||||
"description": "Forbind GitHub-repositories, branches og Coolify-services."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Indstillinger",
|
||||
"description": "Konfigurer Release Managers GitHub-adgang og webhook-indstillinger."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Indl\u00e6ser Release Manager-data...",
|
||||
"refreshing_summary": "Opdaterer Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments og service-health indl\u00e6ses.",
|
||||
"channels": "Indl\u00e6ser release-kanaler...",
|
||||
"channels_detail": "Kanalbaner og release-afh\u00e6ngigheder indl\u00e6ses.",
|
||||
"assignments": "Indl\u00e6ser release-tildelinger...",
|
||||
"deployments": "Indl\u00e6ser release-deployments...",
|
||||
"operations": "Indl\u00e6ser release-operationer...",
|
||||
"data_services": "Indl\u00e6ser release-datatjenester...",
|
||||
"integrations": "Indl\u00e6ser release-integrationer...",
|
||||
"settings": "Indl\u00e6ser Release Manager-indstillinger...",
|
||||
"github_repositories": "Indl\u00e6ser GitHub-repositories...",
|
||||
"timeline_sessions": "Indl\u00e6ser release-tidslinjesessioner...",
|
||||
"timeline_events": "Indl\u00e6ser release-tidslinjeh\u00e6ndelser...",
|
||||
"refreshing_timeline": "Opdaterer release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- og Coolify-mål",
|
||||
"assignments": "Pilot-tildelinger",
|
||||
"deployments": "Første udrulning",
|
||||
"replay": "Replay-opsamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Udrulninger",
|
||||
"timeline_events": "Tidslinjehændelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Oversigt",
|
||||
"subtitle": "Aktuel kanalstatus, release-aktivitet og modulstatus.",
|
||||
"guided_setup": "Guidet opsætning",
|
||||
"next_step": "Næste: {step}",
|
||||
"ready": "Release Manager er klar til daglig drift.",
|
||||
"add_suggested_channel": "Tilføj foreslået kanal",
|
||||
"module_health_empty": "Modul-health snapshots vises, når probes er blevet registreret."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Koer denne Release Manager-handling? Den kan aendre deployment-tilstand og bliver auditeret.",
|
||||
"choose_bundle_prompt": "Indtast bundle-id'et, der skal saettes for denne kanal.",
|
||||
"impact": "Konsekvens",
|
||||
"cause": "Aarsag",
|
||||
"automated_fix": "Automatisk rettelse",
|
||||
"manual_fallback": "Manuel fallback",
|
||||
"related_deployment": "Relateret deployment",
|
||||
"recent_result": "Seneste resultat",
|
||||
"no_automated_action": "Ingen automatisk handling tilgængelig.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Maal",
|
||||
"coolify_target": "Coolify-maal",
|
||||
"service_set": "Service set"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-indstillinger",
|
||||
"subtitle": "Konfigurer GitHub-tokenet, der bruges til private repositories og branch-opslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemmelighed",
|
||||
"github_webhook_secret": "GitHub webhook-hemmelighed",
|
||||
"configured": "Konfigureret",
|
||||
"not_configured": "Ikke konfigureret",
|
||||
"loaded_from": "Indlæst fra {variable}",
|
||||
"set_below": "Angiv {variable} nedenfor",
|
||||
"private_repositories_prefix": "Private repositories læses med serverens miljøvariabel",
|
||||
"private_repositories_or": "eller modulets konfigurationsvariabel",
|
||||
"github_token_message": "Eksempel: github_pat_... med adgang til de private repositories, Release Manager udruller.",
|
||||
"github_token_placeholder": "Lad feltet være tomt for at beholde det eksisterende token",
|
||||
"github_api_url_message": "Konfigureret i ReleaseManager.github_api_url. Brug https://api.github.com medmindre GitHub Enterprise bruges.",
|
||||
"webhook_secret_message": "Valgfrit; lad feltet være tomt for at beholde den eksisterende hemmelighed.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemmelighed",
|
||||
"save": "Gem indstillinger",
|
||||
"back_to_integrations": "Tilbage til integrationer",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Tilføj GitHub-token",
|
||||
"github_token_description": "Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.",
|
||||
"configure_this_in": "Konfigurer dette i",
|
||||
"server_environment_variable": "Serverens miljøvariabel",
|
||||
"takes_precedence": "har forrang, når den er sat.",
|
||||
"recommended_access": "Anbefalet adgang",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.",
|
||||
"github_api_url_title": "Tilføj GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Indtast en fuld HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-eksempel",
|
||||
"github_webhook_secret_title": "Tilføj GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Gem den delte secret i",
|
||||
"review_title": "Gennemgå GitHub-opsætning",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Mangler værdi"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen er ikke klar",
|
||||
"summary_prefix": "Din konto er tildelt",
|
||||
"summary_suffix": ", men kanalen mangler påkrævet release-konfiguration.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Tjekker igen om {seconds}s",
|
||||
"refresh_error": "Release-status kunne ikke opdateres. Det næste automatiske tjek prøver igen.",
|
||||
"ignore": "Ignorer de næste 5 minutter",
|
||||
"check_again": "Tjek igen",
|
||||
"logout": "Log ud",
|
||||
"base_image": "Basis-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du er nu på {channel}",
|
||||
"summary_prefix": "Din konto er blevet tildelt release-kanalen",
|
||||
"summary_suffix": "Denne enhed husker, at du har set denne besked.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"assigned_channel": "Tildelt kanal",
|
||||
"current_app_image": "Nuværende app-image",
|
||||
"current_api": "Nuværende API",
|
||||
"base_image": "Basis-image",
|
||||
"continue": "Fortsæt"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Vælg hvilken tildelt release-kanal denne enhed skal bruge.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Ikke klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Brug lokal frontend",
|
||||
"switch_error": "Release-kanalen kunne ikke skiftes. Den forrige kanal er stadig aktiv."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nej",
|
||||
"off": "fra"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Rediger",
|
||||
"rollback": "Rul tilbage",
|
||||
"update": "Opdater",
|
||||
"create": "Opret",
|
||||
"publish_release": "Publicer release",
|
||||
"clear": "Ryd",
|
||||
"assign": "Tildel",
|
||||
"remove": "Fjern",
|
||||
"test_access": "Test adgang",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promover",
|
||||
"enable": "Aktiver",
|
||||
"search": "Søg",
|
||||
"save_target": "Gem mål",
|
||||
"delete": "Slet",
|
||||
"back": "Tilbage",
|
||||
"next": "Næste"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Handlinger",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrolleret",
|
||||
"subject": "Emne",
|
||||
"reason": "Årsag",
|
||||
"expires": "Udløber",
|
||||
"deployment": "Deployment",
|
||||
"source": "Kilde",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "fuldt redigeret"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "bruger",
|
||||
"subuser": "medarbejder",
|
||||
"customer": "kunde",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "fejl",
|
||||
"warning": "advarsel",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployet",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiveret",
|
||||
"queued": "i kø",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "ikke konfigureret",
|
||||
"warning": "advarsel",
|
||||
"failed": "fejlet",
|
||||
"down": "nede",
|
||||
"error": "fejl",
|
||||
"unknown": "ukendt"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Opret og juster gradvise release-kanaler.",
|
||||
"rollout_percent": "{percent}% udrulning",
|
||||
"already_configured": "Allerede konfigureret",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Navn",
|
||||
"name_message": "Vises til operatører, når de gennemgår en kanal.",
|
||||
"name_placeholder": "Navn",
|
||||
"rollout": "Udrulning",
|
||||
"rollout_message": "0-100 procent af ikke-tildelt trafik.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchende release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchende API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata er sikrere til brede kanaler.",
|
||||
"retention_days": "Opbevaringsdage",
|
||||
"retention_days_message": "1-365 dage.",
|
||||
"enabled": "Aktiveret",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiveret",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tildelinger",
|
||||
"subtitle": "Fastgør brugere, medarbejdere eller kunder til release-kanaler.",
|
||||
"subject": "Emne",
|
||||
"subject_message": "Søg efter brugere, medarbejdere eller kunder, eller skriv et manuelt emne som user:42.",
|
||||
"subject_placeholder": "Søg eller skriv emne",
|
||||
"subject_empty": "Ingen emner fundet",
|
||||
"group_users": "Brugere",
|
||||
"group_subusers": "Medarbejdere",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuel",
|
||||
"manual_user": "Bruger #{id}",
|
||||
"manual_subuser": "Medarbejder #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Brug indtastet værdi {subject}",
|
||||
"subject_type": "Emnetype",
|
||||
"subject_type_message": "Vælg identitetstypen, der skal fastgøres.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Søg på kundenummer eller navn, og vælg derefter den præcise kunde.",
|
||||
"customer_placeholder": "Søg kunde",
|
||||
"subject_id": "Emne-ID",
|
||||
"subject_id_message": "Eksempel: bruger-id 42",
|
||||
"subject_id_placeholder": "Emne-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Fastgjorte emner springer procentudrulningen over.",
|
||||
"reason": "Årsag",
|
||||
"reason_message": "Eksempel: canary-validering for kundesupport.",
|
||||
"reason_placeholder": "Årsag",
|
||||
"expires": "Udløber",
|
||||
"expires_message": "Lad feltet være tomt for ingen automatisk udløb."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Start, promover og inspicer release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Vælg et gemt mål, eller behold manuelle felter redigerbare.",
|
||||
"select_target_or_manual": "Vælg mål eller manuel",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-valg",
|
||||
"commit_selection_message": "Seneste slås op som branchens head med den konfigurerede GitHub-token.",
|
||||
"latest_from_branch": "Seneste fra branch",
|
||||
"specific_commit": "Specifik commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionslabel",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktiver målrettet capture og gennemgå fejltimelines trin for trin.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Eksempel: bruger-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalafgrænsning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalafgrænsning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Udløber",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Alvorlighed",
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Vælg repository",
|
||||
"add_health_url": "tilføj health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åbn GitHub token-indstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domæne",
|
||||
"ssl_domain_message": "Skal være et DNS-domæne, der routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domæne",
|
||||
"https_domain_for_coolify": "Domæne kontrolleret af load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opret manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Vælg repository",
|
||||
"add_health_url": "tilføj health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åbn GitHub token-indstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domæne",
|
||||
"ssl_domain_message": "Skal være et DNS-domæne, der routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domæne",
|
||||
"https_domain_for_coolify": "Domæne kontrolleret af load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opret manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-udgivelser",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard produktionskanal.",
|
||||
"canary": "Tidlig produktionsvalideringskanal.",
|
||||
"internal": "Intern kanal til medarbejdere og superbruger-validering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontrol-API",
|
||||
"tooltip": "Release Manager-handlinger sendes til denne API. Brug produktions-API'en, medmindre du tester en staging-backend.",
|
||||
"example": "Eksempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endpoint",
|
||||
"endpoint_message": "Skift kun dette, når Release Manager-endpoints er tilgængelige på mål-API'en.",
|
||||
"endpoint_aria": "Release Manager kontrol-API URL",
|
||||
"use_tooltip": "Indlæs release-data fra denne API",
|
||||
"use": "Brug",
|
||||
"reset_tooltip": "Vend tilbage til standard kontrol-API",
|
||||
"reset": "Nulstil",
|
||||
"known_endpoints": "Kendte kontrol-API-endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Oversigt",
|
||||
"description": "Kanalstatus, opsætningsfremdrift og seneste release-tilstand."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Opret stabile, canary- og målrettede kanaler med rollout-grænser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tildelinger",
|
||||
"description": "Fastgør brugere, subbrugere eller kunder til en bestemt release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Udrulninger",
|
||||
"description": "Start udrulninger og promover vellykkede builds."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktivér målrettet opsamling og søg i release-tidslinjehændelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationer",
|
||||
"description": "Forbind GitHub-repositories, branches og Coolify-services."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Indstillinger",
|
||||
"description": "Konfigurer Release Managers GitHub-adgang og webhook-indstillinger."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Indlæser Release Manager-data...",
|
||||
"refreshing_summary": "Opdaterer Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments og service-health indlæses.",
|
||||
"channels": "Indlæser release-kanaler...",
|
||||
"channels_detail": "Kanalbaner og release-afhængigheder indlæses.",
|
||||
"assignments": "Indlæser release-tildelinger...",
|
||||
"deployments": "Indlæser release-deployments...",
|
||||
"operations": "Indlæser release-operationer...",
|
||||
"data_services": "Indlæser release-datatjenester...",
|
||||
"integrations": "Indlæser release-integrationer...",
|
||||
"settings": "Indlæser Release Manager-indstillinger...",
|
||||
"github_repositories": "Indlæser GitHub-repositories...",
|
||||
"timeline_sessions": "Indlæser release-tidslinjesessioner...",
|
||||
"timeline_events": "Indlæser release-tidslinjehændelser...",
|
||||
"refreshing_timeline": "Opdaterer release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- og Coolify-mål",
|
||||
"assignments": "Pilot-tildelinger",
|
||||
"deployments": "Første udrulning",
|
||||
"replay": "Replay-opsamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Udrulninger",
|
||||
"timeline_events": "Tidslinjehændelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Oversigt",
|
||||
"subtitle": "Aktuel kanalstatus, release-aktivitet og modulstatus.",
|
||||
"guided_setup": "Guidet opsætning",
|
||||
"next_step": "Næste: {step}",
|
||||
"ready": "Release Manager er klar til daglig drift.",
|
||||
"add_suggested_channel": "Tilføj foreslået kanal",
|
||||
"module_health_empty": "Modul-health snapshots vises, når probes er blevet registreret."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Koer denne Release Manager-handling? Den kan aendre deployment-tilstand og bliver auditeret.",
|
||||
"choose_bundle_prompt": "Indtast bundle-id'et, der skal saettes for denne kanal.",
|
||||
"impact": "Konsekvens",
|
||||
"cause": "Aarsag",
|
||||
"automated_fix": "Automatisk rettelse",
|
||||
"manual_fallback": "Manuel fallback",
|
||||
"related_deployment": "Relateret deployment",
|
||||
"recent_result": "Seneste resultat",
|
||||
"no_automated_action": "Ingen automatisk handling tilgængelig.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Maal",
|
||||
"coolify_target": "Coolify-maal",
|
||||
"service_set": "Service set"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-indstillinger",
|
||||
"subtitle": "Konfigurer GitHub-tokenet, der bruges til private repositories og branch-opslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemmelighed",
|
||||
"github_webhook_secret": "GitHub webhook-hemmelighed",
|
||||
"configured": "Konfigureret",
|
||||
"not_configured": "Ikke konfigureret",
|
||||
"loaded_from": "Indlæst fra {variable}",
|
||||
"set_below": "Angiv {variable} nedenfor",
|
||||
"private_repositories_prefix": "Private repositories læses med serverens miljøvariabel",
|
||||
"private_repositories_or": "eller modulets konfigurationsvariabel",
|
||||
"github_token_message": "Eksempel: github_pat_... med adgang til de private repositories, Release Manager udruller.",
|
||||
"github_token_placeholder": "Lad feltet være tomt for at beholde det eksisterende token",
|
||||
"github_api_url_message": "Konfigureret i ReleaseManager.github_api_url. Brug https://api.github.com medmindre GitHub Enterprise bruges.",
|
||||
"webhook_secret_message": "Valgfrit; lad feltet være tomt for at beholde den eksisterende hemmelighed.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemmelighed",
|
||||
"save": "Gem indstillinger",
|
||||
"back_to_integrations": "Tilbage til integrationer",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Tilføj GitHub-token",
|
||||
"github_token_description": "Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.",
|
||||
"configure_this_in": "Konfigurer dette i",
|
||||
"server_environment_variable": "Serverens miljøvariabel",
|
||||
"takes_precedence": "har forrang, når den er sat.",
|
||||
"recommended_access": "Anbefalet adgang",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.",
|
||||
"github_api_url_title": "Tilføj GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Indtast en fuld HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-eksempel",
|
||||
"github_webhook_secret_title": "Tilføj GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Gem den delte secret i",
|
||||
"review_title": "Gennemgå GitHub-opsætning",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Mangler værdi"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen er ikke klar",
|
||||
"summary_prefix": "Din konto er tildelt",
|
||||
"summary_suffix": ", men kanalen mangler påkrævet release-konfiguration.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Tjekker igen om {seconds}s",
|
||||
"refresh_error": "Release-status kunne ikke opdateres. Det næste automatiske tjek prøver igen.",
|
||||
"ignore": "Ignorer de næste 5 minutter",
|
||||
"check_again": "Tjek igen",
|
||||
"logout": "Log ud",
|
||||
"base_image": "Basis-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du er nu på {channel}",
|
||||
"summary_prefix": "Din konto er blevet tildelt release-kanalen",
|
||||
"summary_suffix": "Denne enhed husker, at du har set denne besked.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"assigned_channel": "Tildelt kanal",
|
||||
"current_app_image": "Nuværende app-image",
|
||||
"current_api": "Nuværende API",
|
||||
"base_image": "Basis-image",
|
||||
"continue": "Fortsæt"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Vælg hvilken tildelt release-kanal denne enhed skal bruge.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Ikke klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Brug lokal frontend",
|
||||
"switch_error": "Release-kanalen kunne ikke skiftes. Den forrige kanal er stadig aktiv."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nej",
|
||||
"off": "fra"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Rediger",
|
||||
"rollback": "Rul tilbage",
|
||||
"update": "Opdater",
|
||||
"create": "Opret",
|
||||
"publish_release": "Publicer release",
|
||||
"clear": "Ryd",
|
||||
"assign": "Tildel",
|
||||
"remove": "Fjern",
|
||||
"test_access": "Test adgang",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promover",
|
||||
"enable": "Aktiver",
|
||||
"search": "Søg",
|
||||
"save_target": "Gem mål",
|
||||
"delete": "Slet",
|
||||
"back": "Tilbage",
|
||||
"next": "Næste"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Handlinger",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrolleret",
|
||||
"subject": "Emne",
|
||||
"reason": "Årsag",
|
||||
"expires": "Udløber",
|
||||
"deployment": "Deployment",
|
||||
"source": "Kilde",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "fuldt redigeret"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "bruger",
|
||||
"subuser": "medarbejder",
|
||||
"customer": "kunde",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "fejl",
|
||||
"warning": "advarsel",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployet",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiveret",
|
||||
"queued": "i kø",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "ikke konfigureret",
|
||||
"warning": "advarsel",
|
||||
"failed": "fejlet",
|
||||
"down": "nede",
|
||||
"error": "fejl",
|
||||
"unknown": "ukendt"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Opret og juster gradvise release-kanaler.",
|
||||
"rollout_percent": "{percent}% udrulning",
|
||||
"already_configured": "Allerede konfigureret",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Navn",
|
||||
"name_message": "Vises til operatører, når de gennemgår en kanal.",
|
||||
"name_placeholder": "Navn",
|
||||
"rollout": "Udrulning",
|
||||
"rollout_message": "0-100 procent af ikke-tildelt trafik.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchende release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchende API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata er sikrere til brede kanaler.",
|
||||
"retention_days": "Opbevaringsdage",
|
||||
"retention_days_message": "1-365 dage.",
|
||||
"enabled": "Aktiveret",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiveret",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tildelinger",
|
||||
"subtitle": "Fastgør brugere, medarbejdere eller kunder til release-kanaler.",
|
||||
"subject": "Emne",
|
||||
"subject_message": "Søg efter brugere, medarbejdere eller kunder, eller skriv et manuelt emne som user:42.",
|
||||
"subject_placeholder": "Søg eller skriv emne",
|
||||
"subject_empty": "Ingen emner fundet",
|
||||
"group_users": "Brugere",
|
||||
"group_subusers": "Medarbejdere",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuel",
|
||||
"manual_user": "Bruger #{id}",
|
||||
"manual_subuser": "Medarbejder #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Brug indtastet værdi {subject}",
|
||||
"subject_type": "Emnetype",
|
||||
"subject_type_message": "Vælg identitetstypen, der skal fastgøres.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Søg på kundenummer eller navn, og vælg derefter den præcise kunde.",
|
||||
"customer_placeholder": "Søg kunde",
|
||||
"subject_id": "Emne-ID",
|
||||
"subject_id_message": "Eksempel: bruger-id 42",
|
||||
"subject_id_placeholder": "Emne-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Fastgjorte emner springer procentudrulningen over.",
|
||||
"reason": "Årsag",
|
||||
"reason_message": "Eksempel: canary-validering for kundesupport.",
|
||||
"reason_placeholder": "Årsag",
|
||||
"expires": "Udløber",
|
||||
"expires_message": "Lad feltet være tomt for ingen automatisk udløb."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Start, promover og inspicer release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Vælg et gemt mål, eller behold manuelle felter redigerbare.",
|
||||
"select_target_or_manual": "Vælg mål eller manuel",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-valg",
|
||||
"commit_selection_message": "Seneste slås op som branchens head med den konfigurerede GitHub-token.",
|
||||
"latest_from_branch": "Seneste fra branch",
|
||||
"specific_commit": "Specifik commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionslabel",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktiver målrettet capture og gennemgå fejltimelines trin for trin.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Eksempel: bruger-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalafgrænsning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalafgrænsning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Udløber",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Alvorlighed",
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,7 @@
|
||||
"api": "API",
|
||||
"app": "app",
|
||||
"appen": "appen",
|
||||
"ar": "år",
|
||||
"ar": "@:{'terms.glossary.years'}",
|
||||
"are": "are",
|
||||
"arsag": "årsag",
|
||||
"at": "at",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"nøgle": "nøgle",
|
||||
"nogle": "nogle",
|
||||
"nok": "nok",
|
||||
"nøkkel": "nøgle",
|
||||
"nøkkel": "@:{'terms.glossary.nøgle'}",
|
||||
"nøkkelen": "nøglen",
|
||||
"not": "not",
|
||||
"note": "note",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compat": {
|
||||
"admin": {
|
||||
"pos": {
|
||||
"settings_wheel": {
|
||||
"accept_self_serve_wash": "Self-Service-Wäsche akzeptieren",
|
||||
"accept_self_serve_wash_confirm": "Diesen Entwurf mit den Self-Service-Details zu Kunde #{customerNumber} verschieben?",
|
||||
"accept_self_serve_wash_success": "Die Self-Service-Wäsche wurde akzeptiert.",
|
||||
"email_notifications_section": "E-Mail-Benachrichtigungen",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Fahrer",
|
||||
"self_serve_elapsed": "Zeit",
|
||||
"self_serve_wash_attachment": "Self-Service-Wäsche",
|
||||
"self_serve_wash_attachment_for_customer": "Self-Service-Wäsche für Kunde #{customerNumber}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,490 +298,6 @@
|
||||
"subtitle": "@:{'terms.glossary.konfiguration'} @:{'terms.glossary.der'} @:{'terms.glossary.xlvask'}-@.capitalize:{'terms.glossary.integration'}",
|
||||
"title": "@:{'terms.glossary.xlvask'}-@:{'terms.glossary.konfiguration'}",
|
||||
"username_desc": "@.capitalize:{'terms.glossary.der'} @:{'terms.glossary.benutzername'} @:{'terms.glossary.wird'} @:{'terms.glossary.zur'} @:{'terms.glossary.authentifizierung'} @:{'terms.glossary.der'} @:{'terms.glossary.api'}-@:{'terms.glossary.verbindung'} @:{'terms.glossary.verwendet'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Schrittweise API- und Front-End-Releases",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard-Produktionskanal.",
|
||||
"canary": "Früher Produktionsvalidierungskanal.",
|
||||
"internal": "Interner Kanal für Mitarbeitende und Superuser-Validierung."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release-Manager-Aktionen werden an diese API gesendet. Verwende die Produktions-Kontroll-API, außer du testest ein Staging-Backend.",
|
||||
"example": "Beispiel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-Endpunkt",
|
||||
"endpoint_message": "Ändere dies nur, wenn Release-Manager-Endpunkte auf der Ziel-API verfügbar sind.",
|
||||
"endpoint_aria": "Release Manager Kontroll-API-URL",
|
||||
"use_tooltip": "Release-Daten von dieser API laden",
|
||||
"use": "Verwenden",
|
||||
"reset_tooltip": "Zur Standard-Kontroll-API zurückkehren",
|
||||
"reset": "Zurücksetzen",
|
||||
"known_endpoints": "Bekannte Kontroll-API-Endpunkte"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Übersicht",
|
||||
"description": "Kanalzustand, Einrichtungsfortschritt und aktueller Release-Status."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanäle",
|
||||
"description": "Stabile, Canary- und Zielkanäle mit Rollout-Grenzen erstellen."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Zuweisungen",
|
||||
"description": "Benutzer, Unterbenutzer oder Kunden einem bestimmten Release-Kanal zuweisen."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Bereitstellungen",
|
||||
"description": "Bereitstellungen starten und erfolgreiche Builds promoten."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Gezielte Erfassung aktivieren und Release-Timeline-Ereignisse durchsuchen."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationen",
|
||||
"description": "GitHub-Repositories, Branches und Coolify-Dienste verbinden."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Einstellungen",
|
||||
"description": "GitHub-Zugriff und Webhook-Einstellungen des Release Managers konfigurieren."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Release Manager-Daten werden geladen...",
|
||||
"refreshing_summary": "Release Manager-Daten werden aktualisiert...",
|
||||
"summary_detail": "Release-Status, Kanale, Deployments und Servicezustand werden geladen.",
|
||||
"channels": "Release-Kanale werden geladen...",
|
||||
"channels_detail": "Kanalansichten und Release-Abhangigkeiten werden geladen.",
|
||||
"assignments": "Release-Zuweisungen werden geladen...",
|
||||
"deployments": "Release-Deployments werden geladen...",
|
||||
"operations": "Release-Operationen werden geladen...",
|
||||
"data_services": "Release-Datendienste werden geladen...",
|
||||
"integrations": "Release-Integrationen werden geladen...",
|
||||
"settings": "Release Manager-Einstellungen werden geladen...",
|
||||
"github_repositories": "GitHub-Repositories werden geladen...",
|
||||
"timeline_sessions": "Release-Timeline-Sessions werden geladen...",
|
||||
"timeline_events": "Release-Timeline-Ereignisse werden geladen...",
|
||||
"refreshing_timeline": "Release-Timeline wird aktualisiert..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanäle",
|
||||
"targets": "GitHub- und Coolify-Ziele",
|
||||
"assignments": "Pilot-Zuweisungen",
|
||||
"deployments": "Erste Bereitstellung",
|
||||
"replay": "Replay-Erfassung"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanäle",
|
||||
"targets": "Ziele",
|
||||
"deployments": "Bereitstellungen",
|
||||
"timeline_events": "Timeline-Ereignisse"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Übersicht",
|
||||
"subtitle": "Aktueller Kanalzustand, Release-Aktivität und Modulstatus.",
|
||||
"guided_setup": "Geführte Einrichtung",
|
||||
"next_step": "Nächster Schritt: {step}",
|
||||
"ready": "Release Manager ist für den täglichen Betrieb bereit.",
|
||||
"add_suggested_channel": "Vorgeschlagenen Kanal hinzufügen",
|
||||
"module_health_empty": "Modul-Health-Snapshots erscheinen, nachdem Probes aufgezeichnet wurden."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release-Manager-Einstellungen",
|
||||
"subtitle": "GitHub-Token für private Repositories und Branch-Abfragen konfigurieren.",
|
||||
"github_token": "GitHub-Token",
|
||||
"github_api_url": "GitHub-API-URL",
|
||||
"webhook_secret": "Webhook-Secret",
|
||||
"github_webhook_secret": "GitHub-Webhook-Secret",
|
||||
"configured": "Konfiguriert",
|
||||
"not_configured": "Nicht konfiguriert",
|
||||
"loaded_from": "Geladen aus {variable}",
|
||||
"set_below": "{variable} unten festlegen",
|
||||
"private_repositories_prefix": "Private Repositories werden mit der Server-Umgebungsvariable gelesen",
|
||||
"private_repositories_or": "oder der Modul-Konfigurationsvariable",
|
||||
"github_token_message": "Beispiel: github_pat_... mit Zugriff auf die privaten Repositories, die Release Manager bereitstellt.",
|
||||
"github_token_placeholder": "Leer lassen, um das vorhandene Token zu behalten",
|
||||
"github_api_url_message": "Konfiguriert in ReleaseManager.github_api_url. https://api.github.com verwenden, sofern GitHub Enterprise nicht genutzt wird.",
|
||||
"webhook_secret_message": "Optional; leer lassen, um das vorhandene Secret zu behalten.",
|
||||
"webhook_secret_placeholder": "Webhook-HMAC-Secret",
|
||||
"save": "Einstellungen speichern",
|
||||
"back_to_integrations": "Zurück zu Integrationen",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-Token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub Webhook Secret",
|
||||
"review": "Prüfung"
|
||||
},
|
||||
"github_token_title": "GitHub-Token hinzufügen",
|
||||
"github_token_description": "Release Manager verwendet diesen Token, um private Repositories, Branches und Commits aufzulisten, bevor ein Deployment-Ziel gespeichert oder getestet wird.",
|
||||
"configure_this_in": "Dies konfigurieren in",
|
||||
"server_environment_variable": "Die Server-Umgebungsvariable",
|
||||
"takes_precedence": "hat Vorrang, wenn sie gesetzt ist.",
|
||||
"recommended_access": "Empfohlener Zugriff",
|
||||
"recommended_access_description": "Fine-grained GitHub-Token mit Contents: read-Zugriff für jedes Release-Repository.",
|
||||
"github_api_url_title": "GitHub API-URL hinzufügen",
|
||||
"github_api_url_description": "GitHub Cloud standardmäßig verwenden oder auf die REST-API-Basis-URL einer GitHub Enterprise Server-Installation zeigen.",
|
||||
"github_api_url_invalid": "Vollständige HTTP- oder HTTPS-URL eingeben.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-Beispiel",
|
||||
"github_webhook_secret_title": "GitHub Webhook Secret hinzufügen",
|
||||
"github_webhook_secret_description": "Dasselbe Secret in GitHub-Repository-Webhooks verwenden, damit Release Manager Deployment-Events vor der Verarbeitung verifizieren kann.",
|
||||
"github_webhook_url": "GitHub Webhook-URL:",
|
||||
"store_shared_secret_in": "Geteiltes Secret speichern in",
|
||||
"review_title": "GitHub-Konfiguration prüfen",
|
||||
"review_description": "Werte speichern und dann unter Integrationen ein privates Repository, einen Branch und einen bestimmten Commit oder den neuesten Commit auswählen, bevor der Zugriff getestet wird.",
|
||||
"ready": "Bereit",
|
||||
"needs_value": "Wert fehlt"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-Kanal ist nicht bereit",
|
||||
"summary_prefix": "Dein Konto ist zugewiesen zu",
|
||||
"summary_suffix": ", aber diesem Kanal fehlt erforderliche Release-Konfiguration.",
|
||||
"release_bundle": "Release-Bundle",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-Einstiegspunkt",
|
||||
"release_runtime": "Release-Laufzeit",
|
||||
"checking_again": "Erneute Prüfung in {seconds}s",
|
||||
"refresh_error": "Release-Status konnte nicht aktualisiert werden. Die nächste automatische Prüfung versucht es erneut.",
|
||||
"ignore": "Nächste 5 Minuten ignorieren",
|
||||
"check_again": "Erneut prüfen",
|
||||
"logout": "Abmelden",
|
||||
"base_image": "Basis-Image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du bist jetzt auf {channel}",
|
||||
"summary_prefix": "Dein Konto wurde dem Release-Kanal",
|
||||
"summary_suffix": "zugewiesen. Dieses Gerät merkt sich, dass du diesen Hinweis gesehen hast.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"assigned_channel": "Zugewiesener Kanal",
|
||||
"current_app_image": "Aktuelles App-Image",
|
||||
"current_api": "Aktuelle API",
|
||||
"base_image": "Basis-Image",
|
||||
"continue": "Fortfahren"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-Kanal",
|
||||
"subtitle": "Wählen Sie, welchen zugewiesenen Release-Kanal dieses Gerät verwenden soll.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Bereit",
|
||||
"unavailable": "Nicht bereit",
|
||||
"release_bundle": "Release-Bundle",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-Einstiegspunkt",
|
||||
"release_runtime": "Release-Laufzeit",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Lokales Frontend verwenden"
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nein",
|
||||
"off": "aus"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Bearbeiten",
|
||||
"rollback": "Zurückrollen",
|
||||
"update": "Aktualisieren",
|
||||
"create": "Erstellen",
|
||||
"clear": "Leeren",
|
||||
"assign": "Zuweisen",
|
||||
"remove": "Entfernen",
|
||||
"test_access": "Zugriff testen",
|
||||
"deploy": "Deployen",
|
||||
"redeploy": "Erneut deployen",
|
||||
"promote": "Promoten",
|
||||
"enable": "Aktivieren",
|
||||
"search": "Suchen",
|
||||
"save_target": "Ziel speichern",
|
||||
"delete": "Löschen",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Rollout",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Aktionen",
|
||||
"module": "Module",
|
||||
"status": "Status",
|
||||
"checked": "Geprüft",
|
||||
"subject": "Subjekt",
|
||||
"reason": "Grund",
|
||||
"expires": "Läuft ab",
|
||||
"deployment": "Deployment",
|
||||
"source": "Quelle",
|
||||
"started": "Gestartet",
|
||||
"target": "Ziel",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "Frontend",
|
||||
"api": "API"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "Metadaten",
|
||||
"full_redacted": "vollständig redigiert"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "Benutzer",
|
||||
"subuser": "Mitarbeiter",
|
||||
"customer": "Kunde",
|
||||
"channel": "Kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "Fehler",
|
||||
"warning": "Warnung",
|
||||
"info": "Info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployt",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiviert",
|
||||
"queued": "in Warteschlange",
|
||||
"deploying": "deploying",
|
||||
"metadata": "Metadaten",
|
||||
"not_configured": "nicht konfiguriert",
|
||||
"warning": "Warnung",
|
||||
"failed": "fehlgeschlagen",
|
||||
"down": "down",
|
||||
"error": "Fehler",
|
||||
"unknown": "unbekannt"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Vorgeschlagener Wert",
|
||||
"suggestion": "Vorschlag",
|
||||
"use_typed_value": "Eingegebenen Wert verwenden",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"api_url": "API URL",
|
||||
"frontend_url": "Frontend URL",
|
||||
"known_release_url": "Bekannte Release-URL",
|
||||
"deploy_here_with_coolify": "{app} hier mit Coolify deployen",
|
||||
"prepare_coolify_target": "Coolify-Ziel mit aktiviertem HTTPS/SSL vorbereiten",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-Repository",
|
||||
"owner_repository": "owner/repository",
|
||||
"git_branch": "Git branch",
|
||||
"deployment_branch": "Deployment branch",
|
||||
"github_commit": "GitHub commit",
|
||||
"git_commit": "Git commit",
|
||||
"use_specific_commit_sha": "Bestimmte Commit-SHA verwenden",
|
||||
"custom_commit": "Benutzerdefinierter Commit",
|
||||
"health_url": "Health URL",
|
||||
"release_health_check": "Release-Health-Check",
|
||||
"coolify_service": "Coolify service",
|
||||
"service_uuid": "Service UUID",
|
||||
"known_coolify_service_uuid": "Known Coolify service UUID",
|
||||
"control_api": "Kontroll-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-Endpunkt",
|
||||
"module": "Module",
|
||||
"timeline_module_key": "Timeline-Modulschlüssel"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "GitHub-Repositories konnten nicht geladen werden.",
|
||||
"github_branches": "GitHub-Branches konnten nicht geladen werden.",
|
||||
"repository_branch_required": "Repository und Branch sind erforderlich, bevor GitHub-Zugriff getestet werden kann.",
|
||||
"github_access_failed": "GitHub-Repository-Zugriffstest ist fehlgeschlagen."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanäle",
|
||||
"subtitle": "Graduale Release-Kanäle erstellen und anpassen.",
|
||||
"rollout_percent": "{percent}% rollout",
|
||||
"already_configured": "Bereits konfiguriert",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Example: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Name",
|
||||
"name_message": "Wird Operatoren bei der Kanalprüfung angezeigt.",
|
||||
"name_placeholder": "Name",
|
||||
"rollout": "Rollout",
|
||||
"rollout_message": "0-100 Prozent des nicht zugewiesenen Traffics.",
|
||||
"frontend_url": "Frontend URL",
|
||||
"frontend_url_message": "Example: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend URL",
|
||||
"no_matching_release_url": "Keine passende Release-URL.",
|
||||
"api_url": "API URL",
|
||||
"api_url_message": "Example: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API URL",
|
||||
"no_matching_api_url": "Keine passende API-URL.",
|
||||
"replay_capture": "Replay-Erfassung",
|
||||
"replay_capture_message": "Metadaten sind für breite Kanäle sicherer.",
|
||||
"retention_days": "Aufbewahrungstage",
|
||||
"retention_days_message": "1-365 Tage.",
|
||||
"enabled": "Aktiviert",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiviert",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Zuweisungen",
|
||||
"subtitle": "Benutzer, Mitarbeiter oder Kunden an Release-Kanäle binden.",
|
||||
"subject": "Subjekt",
|
||||
"subject_message": "Benutzer, Subuser oder Kunden suchen oder ein manuelles Subjekt wie user:42 eingeben.",
|
||||
"subject_placeholder": "Subjekt suchen oder eingeben",
|
||||
"subject_empty": "Keine Subjekte gefunden",
|
||||
"group_users": "Benutzer",
|
||||
"group_subusers": "Subuser",
|
||||
"group_customers": "Kunden",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Benutzer #{id}",
|
||||
"manual_subuser": "Subuser #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Eingegebenen Wert {subject} verwenden",
|
||||
"subject_type": "Subjekttyp",
|
||||
"subject_type_message": "Identitätstyp zum Binden auswählen.",
|
||||
"customer": "Customer",
|
||||
"customer_message": "Nach Kundennummer oder Name suchen und dann den genauen Kunden auswählen.",
|
||||
"customer_placeholder": "Kunde suchen",
|
||||
"subject_id": "Subjekt-ID",
|
||||
"subject_id_message": "Beispiel: Benutzer-ID 42",
|
||||
"subject_id_placeholder": "Subjekt-ID",
|
||||
"channel": "Channel",
|
||||
"channel_message": "Gebundene Subjekte umgehen den prozentualen Rollout.",
|
||||
"reason": "Grund",
|
||||
"reason_message": "Beispiel: Canary-Validierung für Kundensupport.",
|
||||
"reason_placeholder": "Grund",
|
||||
"expires": "Läuft ab",
|
||||
"expires_message": "Leer lassen für kein automatisches Ablaufdatum."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Release-Deployments starten, promoten und prüfen.",
|
||||
"manual_deployment_record": "Manueller Deployment-Eintrag",
|
||||
"target": "Ziel",
|
||||
"target_message": "Gespeichertes Ziel wählen oder manuelle Felder editierbar lassen.",
|
||||
"select_target_or_manual": "Ziel oder manuell auswählen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/front-end-vue",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-Auswahl",
|
||||
"commit_selection_message": "Neueste Version wird mit dem konfigurierten GitHub-Token als Branch-Head aufgelöst.",
|
||||
"latest_from_branch": "Neuester vom Branch",
|
||||
"specific_commit": "Bestimmter Commit",
|
||||
"specific_commit_message": "Example: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionslabel",
|
||||
"version_label_message": "Example: api-2026.05.19",
|
||||
"version_label_placeholder": "Versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Token-Zugriff auf das ausgewählte Repository, den Branch und Commit prüfen."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Gezielte Erfassung aktivieren und Fehler-Timelines Schritt für Schritt prüfen.",
|
||||
"capture_channel": "{channel} erfassen",
|
||||
"target_type": "Zieltyp",
|
||||
"target": "Ziel",
|
||||
"target_message": "Beispiel: Benutzer-ID 42 oder Kanal-Slug canary.",
|
||||
"target_placeholder": "Ziel-ID oder Kanal-Slug",
|
||||
"channel_scope": "Kanalbereich",
|
||||
"channel_scope_message": "Optional; begrenzt Replay-Erfassung auf einen Kanal.",
|
||||
"no_channel_scope": "Kein Kanalbereich",
|
||||
"capture_level": "Erfassungsstufe",
|
||||
"expires": "Läuft ab",
|
||||
"expires_message": "Leer lassen für manuelle Deaktivierung.",
|
||||
"trace_id": "Trace ID",
|
||||
"trace_id_message": "Example: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace id",
|
||||
"channel": "Channel",
|
||||
"channel_placeholder": "Channel",
|
||||
"principal_id": "Principal ID",
|
||||
"principal_id_placeholder": "Principal-ID",
|
||||
"module": "Module",
|
||||
"module_placeholder": "Module",
|
||||
"severity": "Schweregrad",
|
||||
"any_severity": "Beliebiger Schweregrad",
|
||||
"no_timeline_events": "Keine Timeline-Events entsprechen den aktuellen Filtern."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub und Coolify",
|
||||
"subtitle": "GitHub-Repositories und Branches kanalspezifischen Coolify-Services zuordnen.",
|
||||
"choose_repository": "Repository auswählen",
|
||||
"add_health_url": "Health-URL hinzufügen",
|
||||
"github_token_not_configured": "GitHub-Token ist nicht konfiguriert; private Repositories können nicht aufgelistet werden.",
|
||||
"open_github_token_settings": "GitHub-Token-Einstellungen öffnen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Neueste: {commit}",
|
||||
"coolify_instance": "Coolify-Instanz",
|
||||
"coolify_instance_message": "Leer lassen für manuelle Deployment-Einträge.",
|
||||
"no_coolify_instance": "Keine Coolify-Instanz",
|
||||
"coolify_instance_placeholder": "Coolify-Instanz-ID",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Bestehenden Service auswählen oder UUID einfügen.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load-Balancer-Domain",
|
||||
"ssl_domain_message": "Muss eine DNS-Domain sein, die zum Coolify Load Balancer geroutet wird. Beispiel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load-Balancer-Domain",
|
||||
"https_domain_for_coolify": "Domain unter Kontrolle des Load Balancers",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto-Deploy",
|
||||
"auto_deploy_tooltip": "Automatisch Deployments erstellen, wenn sich dieses Ziel ändert.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Coolify anweisen, HTTPS für die konfigurierte Domain bereitzustellen.",
|
||||
"deploy_now": "Jetzt deployen",
|
||||
"deploy_now_tooltip": "Deployment direkt nach dem Speichern des Ziels starten.",
|
||||
"create_missing_service": "Fehlenden Service erstellen",
|
||||
"create_missing_service_tooltip": "Release Manager erlauben, einen fehlenden Coolify-Service zu erstellen.",
|
||||
"test_access_tooltip": "Prüfen, ob der konfigurierte GitHub-Token dieses Repository und den Branch lesen kann."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub und Coolify",
|
||||
"subtitle": "GitHub-Repositories und Branches kanalspezifischen Coolify-Services zuordnen.",
|
||||
"choose_repository": "Repository auswählen",
|
||||
"add_health_url": "Health-URL hinzufügen",
|
||||
"github_token_not_configured": "GitHub-Token ist nicht konfiguriert; private Repositories können nicht aufgelistet werden.",
|
||||
"open_github_token_settings": "GitHub-Token-Einstellungen öffnen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Neueste: {commit}",
|
||||
"coolify_instance": "Coolify-Instanz",
|
||||
"coolify_instance_message": "Leer lassen für manuelle Deployment-Einträge.",
|
||||
"no_coolify_instance": "Keine Coolify-Instanz",
|
||||
"coolify_instance_placeholder": "Coolify-Instanz-ID",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Bestehenden Service auswählen oder UUID einfügen.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load-Balancer-Domain",
|
||||
"ssl_domain_message": "Muss eine DNS-Domain sein, die zum Coolify Load Balancer geroutet wird. Beispiel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load-Balancer-Domain",
|
||||
"https_domain_for_coolify": "Domain unter Kontrolle des Load Balancers",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto-Deploy",
|
||||
"auto_deploy_tooltip": "Automatisch Deployments erstellen, wenn sich dieses Ziel ändert.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Coolify anweisen, HTTPS für die konfigurierte Domain bereitzustellen.",
|
||||
"deploy_now": "Jetzt deployen",
|
||||
"deploy_now_tooltip": "Deployment direkt nach dem Speichern des Ziels starten.",
|
||||
"create_missing_service": "Fehlenden Service erstellen",
|
||||
"create_missing_service_tooltip": "Release Manager erlauben, einen fehlenden Coolify-Service zu erstellen.",
|
||||
"test_access_tooltip": "Prüfen, ob der konfigurierte GitHub-Token dieses Repository und den Branch lesen kann."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Schrittweise API- und Front-End-Releases",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard-Produktionskanal.",
|
||||
"canary": "Früher Produktionsvalidierungskanal.",
|
||||
"internal": "Interner Kanal für Mitarbeitende und Superuser-Validierung."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release-Manager-Aktionen werden an diese API gesendet. Verwende die Produktions-Kontroll-API, außer du testest ein Staging-Backend.",
|
||||
"example": "Beispiel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-Endpunkt",
|
||||
"endpoint_message": "Ändere dies nur, wenn Release-Manager-Endpunkte auf der Ziel-API verfügbar sind.",
|
||||
"endpoint_aria": "Release Manager Kontroll-API-URL",
|
||||
"use_tooltip": "Release-Daten von dieser API laden",
|
||||
"use": "Verwenden",
|
||||
"reset_tooltip": "Zur Standard-Kontroll-API zurückkehren",
|
||||
"reset": "Zurücksetzen",
|
||||
"known_endpoints": "Bekannte Kontroll-API-Endpunkte"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Übersicht",
|
||||
"description": "Kanalzustand, Einrichtungsfortschritt und aktueller Release-Status."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanäle",
|
||||
"description": "Stabile, Canary- und Zielkanäle mit Rollout-Grenzen erstellen."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Zuweisungen",
|
||||
"description": "Benutzer, Unterbenutzer oder Kunden einem bestimmten Release-Kanal zuweisen."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Bereitstellungen",
|
||||
"description": "Bereitstellungen starten und erfolgreiche Builds promoten."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Gezielte Erfassung aktivieren und Release-Timeline-Ereignisse durchsuchen."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationen",
|
||||
"description": "GitHub-Repositories, Branches und Coolify-Dienste verbinden."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Einstellungen",
|
||||
"description": "GitHub-Zugriff und Webhook-Einstellungen des Release Managers konfigurieren."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Release Manager-Daten werden geladen...",
|
||||
"refreshing_summary": "Release Manager-Daten werden aktualisiert...",
|
||||
"summary_detail": "Release-Status, Kanale, Deployments und Servicezustand werden geladen.",
|
||||
"channels": "Release-Kanale werden geladen...",
|
||||
"channels_detail": "Kanalansichten und Release-Abhangigkeiten werden geladen.",
|
||||
"assignments": "Release-Zuweisungen werden geladen...",
|
||||
"deployments": "Release-Deployments werden geladen...",
|
||||
"operations": "Release-Operationen werden geladen...",
|
||||
"data_services": "Release-Datendienste werden geladen...",
|
||||
"integrations": "Release-Integrationen werden geladen...",
|
||||
"settings": "Release Manager-Einstellungen werden geladen...",
|
||||
"github_repositories": "GitHub-Repositories werden geladen...",
|
||||
"timeline_sessions": "Release-Timeline-Sessions werden geladen...",
|
||||
"timeline_events": "Release-Timeline-Ereignisse werden geladen...",
|
||||
"refreshing_timeline": "Release-Timeline wird aktualisiert..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanäle",
|
||||
"targets": "GitHub- und Coolify-Ziele",
|
||||
"assignments": "Pilot-Zuweisungen",
|
||||
"deployments": "Erste Bereitstellung",
|
||||
"replay": "Replay-Erfassung"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanäle",
|
||||
"targets": "Ziele",
|
||||
"deployments": "Bereitstellungen",
|
||||
"timeline_events": "Timeline-Ereignisse"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Übersicht",
|
||||
"subtitle": "Aktueller Kanalzustand, Release-Aktivität und Modulstatus.",
|
||||
"guided_setup": "Geführte Einrichtung",
|
||||
"next_step": "Nächster Schritt: {step}",
|
||||
"ready": "Release Manager ist für den täglichen Betrieb bereit.",
|
||||
"add_suggested_channel": "Vorgeschlagenen Kanal hinzufügen",
|
||||
"module_health_empty": "Modul-Health-Snapshots erscheinen, nachdem Probes aufgezeichnet wurden."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release-Manager-Einstellungen",
|
||||
"subtitle": "GitHub-Token für private Repositories und Branch-Abfragen konfigurieren.",
|
||||
"github_token": "GitHub-Token",
|
||||
"github_api_url": "GitHub-API-URL",
|
||||
"webhook_secret": "Webhook-Secret",
|
||||
"github_webhook_secret": "GitHub-Webhook-Secret",
|
||||
"configured": "Konfiguriert",
|
||||
"not_configured": "Nicht konfiguriert",
|
||||
"loaded_from": "Geladen aus {variable}",
|
||||
"set_below": "{variable} unten festlegen",
|
||||
"private_repositories_prefix": "Private Repositories werden mit der Server-Umgebungsvariable gelesen",
|
||||
"private_repositories_or": "oder der Modul-Konfigurationsvariable",
|
||||
"github_token_message": "Beispiel: github_pat_... mit Zugriff auf die privaten Repositories, die Release Manager bereitstellt.",
|
||||
"github_token_placeholder": "Leer lassen, um das vorhandene Token zu behalten",
|
||||
"github_api_url_message": "Konfiguriert in ReleaseManager.github_api_url. https://api.github.com verwenden, sofern GitHub Enterprise nicht genutzt wird.",
|
||||
"webhook_secret_message": "Optional; leer lassen, um das vorhandene Secret zu behalten.",
|
||||
"webhook_secret_placeholder": "Webhook-HMAC-Secret",
|
||||
"save": "Einstellungen speichern",
|
||||
"back_to_integrations": "Zurück zu Integrationen",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-Token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub Webhook Secret",
|
||||
"review": "Prüfung"
|
||||
},
|
||||
"github_token_title": "GitHub-Token hinzufügen",
|
||||
"github_token_description": "Release Manager verwendet diesen Token, um private Repositories, Branches und Commits aufzulisten, bevor ein Deployment-Ziel gespeichert oder getestet wird.",
|
||||
"configure_this_in": "Dies konfigurieren in",
|
||||
"server_environment_variable": "Die Server-Umgebungsvariable",
|
||||
"takes_precedence": "hat Vorrang, wenn sie gesetzt ist.",
|
||||
"recommended_access": "Empfohlener Zugriff",
|
||||
"recommended_access_description": "Fine-grained GitHub-Token mit Contents: read-Zugriff für jedes Release-Repository.",
|
||||
"github_api_url_title": "GitHub API-URL hinzufügen",
|
||||
"github_api_url_description": "GitHub Cloud standardmäßig verwenden oder auf die REST-API-Basis-URL einer GitHub Enterprise Server-Installation zeigen.",
|
||||
"github_api_url_invalid": "Vollständige HTTP- oder HTTPS-URL eingeben.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-Beispiel",
|
||||
"github_webhook_secret_title": "GitHub Webhook Secret hinzufügen",
|
||||
"github_webhook_secret_description": "Dasselbe Secret in GitHub-Repository-Webhooks verwenden, damit Release Manager Deployment-Events vor der Verarbeitung verifizieren kann.",
|
||||
"github_webhook_url": "GitHub Webhook-URL:",
|
||||
"store_shared_secret_in": "Geteiltes Secret speichern in",
|
||||
"review_title": "GitHub-Konfiguration prüfen",
|
||||
"review_description": "Werte speichern und dann unter Integrationen ein privates Repository, einen Branch und einen bestimmten Commit oder den neuesten Commit auswählen, bevor der Zugriff getestet wird.",
|
||||
"ready": "Bereit",
|
||||
"needs_value": "Wert fehlt"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-Kanal ist nicht bereit",
|
||||
"summary_prefix": "Dein Konto ist zugewiesen zu",
|
||||
"summary_suffix": ", aber diesem Kanal fehlt erforderliche Release-Konfiguration.",
|
||||
"release_bundle": "Release-Bundle",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-Einstiegspunkt",
|
||||
"release_runtime": "Release-Laufzeit",
|
||||
"checking_again": "Erneute Prüfung in {seconds}s",
|
||||
"refresh_error": "Release-Status konnte nicht aktualisiert werden. Die nächste automatische Prüfung versucht es erneut.",
|
||||
"ignore": "Nächste 5 Minuten ignorieren",
|
||||
"check_again": "Erneut prüfen",
|
||||
"logout": "Abmelden",
|
||||
"base_image": "Basis-Image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du bist jetzt auf {channel}",
|
||||
"summary_prefix": "Dein Konto wurde dem Release-Kanal",
|
||||
"summary_suffix": "zugewiesen. Dieses Gerät merkt sich, dass du diesen Hinweis gesehen hast.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"assigned_channel": "Zugewiesener Kanal",
|
||||
"current_app_image": "Aktuelles App-Image",
|
||||
"current_api": "Aktuelle API",
|
||||
"base_image": "Basis-Image",
|
||||
"continue": "Fortfahren"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-Kanal",
|
||||
"subtitle": "Wählen Sie, welchen zugewiesenen Release-Kanal dieses Gerät verwenden soll.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Bereit",
|
||||
"unavailable": "Nicht bereit",
|
||||
"release_bundle": "Release-Bundle",
|
||||
"frontend_version": "Frontend-Version",
|
||||
"api_version": "API-Version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-Einstiegspunkt",
|
||||
"release_runtime": "Release-Laufzeit",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Lokales Frontend verwenden",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nein",
|
||||
"off": "aus"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Bearbeiten",
|
||||
"rollback": "Zurückrollen",
|
||||
"update": "Aktualisieren",
|
||||
"create": "Erstellen",
|
||||
"clear": "Leeren",
|
||||
"assign": "Zuweisen",
|
||||
"remove": "Entfernen",
|
||||
"test_access": "Zugriff testen",
|
||||
"deploy": "Deployen",
|
||||
"redeploy": "Erneut deployen",
|
||||
"promote": "Promoten",
|
||||
"enable": "Aktivieren",
|
||||
"search": "Suchen",
|
||||
"save_target": "Ziel speichern",
|
||||
"delete": "Löschen",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Rollout",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Aktionen",
|
||||
"module": "Module",
|
||||
"status": "Status",
|
||||
"checked": "Geprüft",
|
||||
"subject": "Subjekt",
|
||||
"reason": "Grund",
|
||||
"expires": "Läuft ab",
|
||||
"deployment": "Deployment",
|
||||
"source": "Quelle",
|
||||
"started": "Gestartet",
|
||||
"target": "Ziel",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "Frontend",
|
||||
"api": "API"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "Metadaten",
|
||||
"full_redacted": "vollständig redigiert"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "Benutzer",
|
||||
"subuser": "Mitarbeiter",
|
||||
"customer": "Kunde",
|
||||
"channel": "Kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "Fehler",
|
||||
"warning": "Warnung",
|
||||
"info": "Info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployt",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiviert",
|
||||
"queued": "in Warteschlange",
|
||||
"deploying": "deploying",
|
||||
"metadata": "Metadaten",
|
||||
"not_configured": "nicht konfiguriert",
|
||||
"warning": "Warnung",
|
||||
"failed": "fehlgeschlagen",
|
||||
"down": "down",
|
||||
"error": "Fehler",
|
||||
"unknown": "unbekannt"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Vorgeschlagener Wert",
|
||||
"suggestion": "Vorschlag",
|
||||
"use_typed_value": "Eingegebenen Wert verwenden",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"api_url": "API URL",
|
||||
"frontend_url": "Frontend URL",
|
||||
"known_release_url": "Bekannte Release-URL",
|
||||
"deploy_here_with_coolify": "{app} hier mit Coolify deployen",
|
||||
"prepare_coolify_target": "Coolify-Ziel mit aktiviertem HTTPS/SSL vorbereiten",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-Repository",
|
||||
"owner_repository": "owner/repository",
|
||||
"git_branch": "Git branch",
|
||||
"deployment_branch": "Deployment branch",
|
||||
"github_commit": "GitHub commit",
|
||||
"git_commit": "Git commit",
|
||||
"use_specific_commit_sha": "Bestimmte Commit-SHA verwenden",
|
||||
"custom_commit": "Benutzerdefinierter Commit",
|
||||
"health_url": "Health URL",
|
||||
"release_health_check": "Release-Health-Check",
|
||||
"coolify_service": "Coolify service",
|
||||
"service_uuid": "Service UUID",
|
||||
"known_coolify_service_uuid": "Known Coolify service UUID",
|
||||
"control_api": "Kontroll-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-Endpunkt",
|
||||
"module": "Module",
|
||||
"timeline_module_key": "Timeline-Modulschlüssel"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "GitHub-Repositories konnten nicht geladen werden.",
|
||||
"github_branches": "GitHub-Branches konnten nicht geladen werden.",
|
||||
"repository_branch_required": "Repository und Branch sind erforderlich, bevor GitHub-Zugriff getestet werden kann.",
|
||||
"github_access_failed": "GitHub-Repository-Zugriffstest ist fehlgeschlagen."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanäle",
|
||||
"subtitle": "Graduale Release-Kanäle erstellen und anpassen.",
|
||||
"rollout_percent": "{percent}% rollout",
|
||||
"already_configured": "Bereits konfiguriert",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Example: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Name",
|
||||
"name_message": "Wird Operatoren bei der Kanalprüfung angezeigt.",
|
||||
"name_placeholder": "Name",
|
||||
"rollout": "Rollout",
|
||||
"rollout_message": "0-100 Prozent des nicht zugewiesenen Traffics.",
|
||||
"frontend_url": "Frontend URL",
|
||||
"frontend_url_message": "Example: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend URL",
|
||||
"no_matching_release_url": "Keine passende Release-URL.",
|
||||
"api_url": "API URL",
|
||||
"api_url_message": "Example: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API URL",
|
||||
"no_matching_api_url": "Keine passende API-URL.",
|
||||
"replay_capture": "Replay-Erfassung",
|
||||
"replay_capture_message": "Metadaten sind für breite Kanäle sicherer.",
|
||||
"retention_days": "Aufbewahrungstage",
|
||||
"retention_days_message": "1-365 Tage.",
|
||||
"enabled": "Aktiviert",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiviert",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Zuweisungen",
|
||||
"subtitle": "Benutzer, Mitarbeiter oder Kunden an Release-Kanäle binden.",
|
||||
"subject": "Subjekt",
|
||||
"subject_message": "Benutzer, Subuser oder Kunden suchen oder ein manuelles Subjekt wie user:42 eingeben.",
|
||||
"subject_placeholder": "Subjekt suchen oder eingeben",
|
||||
"subject_empty": "Keine Subjekte gefunden",
|
||||
"group_users": "Benutzer",
|
||||
"group_subusers": "Subuser",
|
||||
"group_customers": "Kunden",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Benutzer #{id}",
|
||||
"manual_subuser": "Subuser #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Eingegebenen Wert {subject} verwenden",
|
||||
"subject_type": "Subjekttyp",
|
||||
"subject_type_message": "Identitätstyp zum Binden auswählen.",
|
||||
"customer": "Customer",
|
||||
"customer_message": "Nach Kundennummer oder Name suchen und dann den genauen Kunden auswählen.",
|
||||
"customer_placeholder": "Kunde suchen",
|
||||
"subject_id": "Subjekt-ID",
|
||||
"subject_id_message": "Beispiel: Benutzer-ID 42",
|
||||
"subject_id_placeholder": "Subjekt-ID",
|
||||
"channel": "Channel",
|
||||
"channel_message": "Gebundene Subjekte umgehen den prozentualen Rollout.",
|
||||
"reason": "Grund",
|
||||
"reason_message": "Beispiel: Canary-Validierung für Kundensupport.",
|
||||
"reason_placeholder": "Grund",
|
||||
"expires": "Läuft ab",
|
||||
"expires_message": "Leer lassen für kein automatisches Ablaufdatum."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Release-Deployments starten, promoten und prüfen.",
|
||||
"manual_deployment_record": "Manueller Deployment-Eintrag",
|
||||
"target": "Ziel",
|
||||
"target_message": "Gespeichertes Ziel wählen oder manuelle Felder editierbar lassen.",
|
||||
"select_target_or_manual": "Ziel oder manuell auswählen",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/front-end-vue",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-Auswahl",
|
||||
"commit_selection_message": "Neueste Version wird mit dem konfigurierten GitHub-Token als Branch-Head aufgelöst.",
|
||||
"latest_from_branch": "Neuester vom Branch",
|
||||
"specific_commit": "Bestimmter Commit",
|
||||
"specific_commit_message": "Example: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionslabel",
|
||||
"version_label_message": "Example: api-2026.05.19",
|
||||
"version_label_placeholder": "Versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Token-Zugriff auf das ausgewählte Repository, den Branch und Commit prüfen."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Gezielte Erfassung aktivieren und Fehler-Timelines Schritt für Schritt prüfen.",
|
||||
"capture_channel": "{channel} erfassen",
|
||||
"target_type": "Zieltyp",
|
||||
"target": "Ziel",
|
||||
"target_message": "Beispiel: Benutzer-ID 42 oder Kanal-Slug canary.",
|
||||
"target_placeholder": "Ziel-ID oder Kanal-Slug",
|
||||
"channel_scope": "Kanalbereich",
|
||||
"channel_scope_message": "Optional; begrenzt Replay-Erfassung auf einen Kanal.",
|
||||
"no_channel_scope": "Kein Kanalbereich",
|
||||
"capture_level": "Erfassungsstufe",
|
||||
"expires": "Läuft ab",
|
||||
"expires_message": "Leer lassen für manuelle Deaktivierung.",
|
||||
"trace_id": "Trace ID",
|
||||
"trace_id_message": "Example: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace id",
|
||||
"channel": "Channel",
|
||||
"channel_placeholder": "Channel",
|
||||
"principal_id": "Principal ID",
|
||||
"principal_id_placeholder": "Principal-ID",
|
||||
"module": "Module",
|
||||
"module_placeholder": "Module",
|
||||
"severity": "Schweregrad",
|
||||
"any_severity": "Beliebiger Schweregrad",
|
||||
"no_timeline_events": "Keine Timeline-Events entsprechen den aktuellen Filtern."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
"uhrzeit": "Uhrzeit",
|
||||
"um": "um",
|
||||
"umbenannt": "umbenannt",
|
||||
"umbenennen": "umbenennen",
|
||||
"umbenennen": "@:{'terms.glossary.rename'}",
|
||||
"umsatz": "Umsatz",
|
||||
"umweltgeb": "Umweltgeb",
|
||||
"unabhangig": "unabhängig",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compat": {
|
||||
"admin": {
|
||||
"pos": {
|
||||
"settings_wheel": {
|
||||
"accept_self_serve_wash": "Accept self-serve wash",
|
||||
"accept_self_serve_wash_confirm": "Move this draft to customer #{customerNumber} with the self-serve details?",
|
||||
"accept_self_serve_wash_success": "The self-serve wash was accepted.",
|
||||
"email_notifications_section": "Email notifications",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Customer",
|
||||
"self_serve_driver": "Driver",
|
||||
"self_serve_elapsed": "Elapsed",
|
||||
"self_serve_wash_attachment": "Self-serve wash",
|
||||
"self_serve_wash_attachment_for_customer": "Self-serve wash for customer #{customerNumber}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,507 +298,6 @@
|
||||
"subtitle": "@.capitalize:{'terms.glossary.configuration'} @:{'terms.glossary.of'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integration'}",
|
||||
"title": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.configuration'}",
|
||||
"username_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.username'} @:{'terms.glossary.is'} @:{'terms.glossary.used'} @:{'terms.glossary.to'} @:{'terms.glossary.authenticate'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.api'} @:{'terms.glossary.connection'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradual API and Front-End releases",
|
||||
"channel_names": {
|
||||
"stable": "Stable",
|
||||
"canary": "Canary",
|
||||
"internal": "Internal"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Default production channel.",
|
||||
"canary": "Early production validation channel.",
|
||||
"internal": "Internal staff and superuser validation channel."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Control API",
|
||||
"tooltip": "Release Manager actions are sent to this API. Use the production control API unless testing a staged backend.",
|
||||
"example": "Example: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API endpoint",
|
||||
"endpoint_message": "Switch this only when Release Manager endpoints are available on the target API.",
|
||||
"endpoint_aria": "Release Manager control API URL",
|
||||
"use_tooltip": "Load release data from this API",
|
||||
"use": "Use",
|
||||
"reset_tooltip": "Return to the default control API",
|
||||
"reset": "Reset",
|
||||
"known_endpoints": "Known control API endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Overview",
|
||||
"description": "Channel health, setup progress, and the latest release state."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Channels",
|
||||
"description": "Create stable, canary, and targeted channels with rollout limits."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Assignments",
|
||||
"description": "Pin users, subusers, or customers to a specific release channel."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Deployments",
|
||||
"description": "Trigger deployments and promote successful builds."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Enable targeted capture and search release timeline events."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrations",
|
||||
"description": "Connect GitHub repositories, branches, and Coolify services."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Settings",
|
||||
"description": "Configure Release Manager GitHub access and webhook settings."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Loading release manager data...",
|
||||
"refreshing_summary": "Refreshing release manager data...",
|
||||
"summary_detail": "Release status, channels, deployments, and service health are being loaded.",
|
||||
"channels": "Loading release channels...",
|
||||
"channels_detail": "Channel lanes and release dependencies are being loaded.",
|
||||
"assignments": "Loading release assignments...",
|
||||
"deployments": "Loading release deployments...",
|
||||
"operations": "Loading release operations...",
|
||||
"data_services": "Loading release data services...",
|
||||
"integrations": "Loading release integrations...",
|
||||
"settings": "Loading Release Manager settings...",
|
||||
"github_repositories": "Loading GitHub repositories...",
|
||||
"timeline_sessions": "Loading release timeline sessions...",
|
||||
"timeline_events": "Loading release timeline events...",
|
||||
"refreshing_timeline": "Refreshing release timeline..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Channels",
|
||||
"targets": "GitHub and Coolify targets",
|
||||
"assignments": "Pilot assignments",
|
||||
"deployments": "First deployment",
|
||||
"replay": "Replay capture"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Channels",
|
||||
"targets": "Targets",
|
||||
"deployments": "Deployments",
|
||||
"timeline_events": "Timeline events"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"subtitle": "Current channel health, release activity, and module status.",
|
||||
"guided_setup": "Guided setup",
|
||||
"next_step": "Next: {step}",
|
||||
"ready": "Release Manager is ready for day-to-day operations.",
|
||||
"add_suggested_channel": "Add suggested channel",
|
||||
"module_health_empty": "Module health snapshots appear after probes have been recorded."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager Settings",
|
||||
"subtitle": "Configure the GitHub token used for private repositories and branch lookups.",
|
||||
"github_token": "GitHub token",
|
||||
"github_api_url": "GitHub API URL",
|
||||
"webhook_secret": "Webhook secret",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"configured": "Configured",
|
||||
"not_configured": "Not configured",
|
||||
"loaded_from": "Loaded from {variable}",
|
||||
"set_below": "Set {variable} below",
|
||||
"private_repositories_prefix": "Private repositories are read with the server environment variable",
|
||||
"private_repositories_or": "or the module config variable",
|
||||
"github_token_message": "Example: github_pat_... with access to the private repositories Release Manager deploys.",
|
||||
"github_token_placeholder": "Leave blank to keep the existing token",
|
||||
"github_api_url_message": "Configured in ReleaseManager.github_api_url. Use https://api.github.com unless using GitHub Enterprise.",
|
||||
"webhook_secret_message": "Optional; leave blank to keep the existing secret.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC secret",
|
||||
"save": "Save settings",
|
||||
"back_to_integrations": "Back to integrations",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub token",
|
||||
"github_api_url": "GitHub API URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Review"
|
||||
},
|
||||
"github_token_title": "Add GitHub token",
|
||||
"github_token_description": "Release Manager uses this token to list private repositories, branches, and commits before a deployment target is saved or tested.",
|
||||
"configure_this_in": "Configure this in",
|
||||
"server_environment_variable": "The server environment variable",
|
||||
"takes_precedence": "takes precedence when it is set.",
|
||||
"recommended_access": "Recommended access",
|
||||
"recommended_access_description": "Fine-grained GitHub token with Contents: read access for each release repository.",
|
||||
"github_api_url_title": "Add GitHub API URL",
|
||||
"github_api_url_description": "Use GitHub Cloud by default, or point this at the REST API base URL for a GitHub Enterprise Server installation.",
|
||||
"github_api_url_invalid": "Enter a full HTTP or HTTPS URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise example",
|
||||
"github_webhook_secret_title": "Add GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Use the same secret in GitHub repository webhooks so Release Manager can verify deployment events before handling them.",
|
||||
"github_webhook_url": "GitHub webhook URL:",
|
||||
"store_shared_secret_in": "Store the shared secret in",
|
||||
"review_title": "Review GitHub setup",
|
||||
"review_description": "Save the values, then use Integrations to select a private repository, branch, and specific commit or latest commit before testing access.",
|
||||
"ready": "Ready",
|
||||
"needs_value": "Needs value"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release channel is not ready",
|
||||
"summary_prefix": "Your account is assigned to",
|
||||
"summary_suffix": ", but that channel is missing required release configuration.",
|
||||
"release_bundle": "Release bundle",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"frontend_base_url": "Frontend URL",
|
||||
"api_base_url": "API URL",
|
||||
"frontend_entry": "Frontend entry",
|
||||
"release_runtime": "Release runtime",
|
||||
"checking_again": "Checking again in {seconds}s",
|
||||
"refresh_error": "Release status could not be refreshed. The next automatic check will try again.",
|
||||
"ignore": "Ignore next 5 minutes",
|
||||
"check_again": "Check again",
|
||||
"logout": "Logout",
|
||||
"base_image": "Base image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "You are now on {channel}",
|
||||
"summary_prefix": "Your account has been assigned to the",
|
||||
"summary_suffix": "release channel. This device will remember that you have seen this notice.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"assigned_channel": "Assigned channel",
|
||||
"current_app_image": "Current app image",
|
||||
"current_api": "Current API",
|
||||
"base_image": "Base image",
|
||||
"continue": "Continue"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release channel",
|
||||
"subtitle": "Choose which assigned release channel this device should use.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Default",
|
||||
"ready": "Ready",
|
||||
"unavailable": "Not ready",
|
||||
"release_bundle": "Release bundle",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"frontend_base_url": "Frontend URL",
|
||||
"api_base_url": "API URL",
|
||||
"frontend_entry": "Frontend entry",
|
||||
"release_runtime": "Release runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Use local frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "yes",
|
||||
"no": "no",
|
||||
"off": "off"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Edit",
|
||||
"rollback": "Rollback",
|
||||
"update": "Update",
|
||||
"create": "Create",
|
||||
"publish_release": "Publish release",
|
||||
"clear": "Clear",
|
||||
"assign": "Assign",
|
||||
"remove": "Remove",
|
||||
"test_access": "Test access",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promote",
|
||||
"enable": "Enable",
|
||||
"search": "Search",
|
||||
"save_target": "Save target",
|
||||
"delete": "Delete",
|
||||
"back": "Back",
|
||||
"next": "Next"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Channel",
|
||||
"rollout": "Rollout",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Actions",
|
||||
"module": "Module",
|
||||
"status": "Status",
|
||||
"checked": "Checked",
|
||||
"subject": "Subject",
|
||||
"reason": "Reason",
|
||||
"expires": "Expires",
|
||||
"deployment": "Deployment",
|
||||
"source": "Source",
|
||||
"started": "Started",
|
||||
"target": "Target",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "full_redacted"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "user",
|
||||
"subuser": "subuser",
|
||||
"customer": "customer",
|
||||
"channel": "channel"
|
||||
},
|
||||
"severity": {
|
||||
"error": "error",
|
||||
"warning": "warning",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "active",
|
||||
"deployed": "deployed",
|
||||
"stable": "stable",
|
||||
"enabled": "enabled",
|
||||
"queued": "queued",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "not configured",
|
||||
"warning": "warning",
|
||||
"failed": "failed",
|
||||
"down": "down",
|
||||
"error": "error",
|
||||
"unknown": "unknown"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Suggested value",
|
||||
"suggestion": "Suggestion",
|
||||
"use_typed_value": "Use typed value",
|
||||
"custom": "Custom",
|
||||
"api_url": "API URL",
|
||||
"frontend_url": "Frontend URL",
|
||||
"known_release_url": "Known release URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} here with Coolify",
|
||||
"prepare_coolify_target": "Prepare a Coolify target with HTTPS/SSL enabled",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub repository",
|
||||
"owner_repository": "owner/repository",
|
||||
"git_branch": "Git branch",
|
||||
"deployment_branch": "Deployment branch",
|
||||
"github_commit": "GitHub commit",
|
||||
"git_commit": "Git commit",
|
||||
"use_specific_commit_sha": "Use specific commit SHA",
|
||||
"custom_commit": "Custom commit",
|
||||
"health_url": "Health URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify service",
|
||||
"service_uuid": "Service UUID",
|
||||
"known_coolify_service_uuid": "Known Coolify service UUID",
|
||||
"control_api": "Control API",
|
||||
"release_manager_api_endpoint": "Release Manager API endpoint",
|
||||
"module": "Module",
|
||||
"timeline_module_key": "Timeline module key"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Could not load GitHub repositories.",
|
||||
"github_branches": "Could not load GitHub branches.",
|
||||
"repository_branch_required": "Repository and branch are required before testing GitHub access.",
|
||||
"github_access_failed": "GitHub repository access test failed."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Channels",
|
||||
"subtitle": "Create and tune gradual release channels.",
|
||||
"rollout_percent": "{percent}% rollout",
|
||||
"already_configured": "Already configured",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Example: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Name",
|
||||
"name_message": "Shown to operators when reviewing a channel.",
|
||||
"name_placeholder": "Name",
|
||||
"rollout": "Rollout",
|
||||
"rollout_message": "0-100 percent of unassigned traffic.",
|
||||
"frontend_url": "Frontend URL",
|
||||
"frontend_url_message": "Example: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend URL",
|
||||
"no_matching_release_url": "No matching release URL.",
|
||||
"api_url": "API URL",
|
||||
"api_url_message": "Example: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API URL",
|
||||
"no_matching_api_url": "No matching API URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata is safer for broad channels.",
|
||||
"retention_days": "Retention days",
|
||||
"retention_days_message": "1-365 days.",
|
||||
"enabled": "Enabled",
|
||||
"default_channel": "Default channel",
|
||||
"replay_enabled": "Replay enabled",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Assignments",
|
||||
"subtitle": "Pin users, subusers, or customers to release channels.",
|
||||
"subject": "Subject",
|
||||
"subject_message": "Search users, subusers, or customers, or type a manual subject like user:42.",
|
||||
"subject_placeholder": "Search or type subject",
|
||||
"subject_empty": "No subjects found",
|
||||
"group_users": "Users",
|
||||
"group_subusers": "Subusers",
|
||||
"group_customers": "Customers",
|
||||
"group_manual": "Manual",
|
||||
"manual_user": "User #{id}",
|
||||
"manual_subuser": "Subuser #{id}",
|
||||
"manual_customer": "Customer #{id}",
|
||||
"manual_description": "Use typed value {subject}",
|
||||
"subject_type": "Subject type",
|
||||
"subject_type_message": "Choose the identity type to pin.",
|
||||
"customer": "Customer",
|
||||
"customer_message": "Search by customer number or name, then select the exact customer.",
|
||||
"customer_placeholder": "Search customer",
|
||||
"subject_id": "Subject ID",
|
||||
"subject_id_message": "Example: user id 42",
|
||||
"subject_id_placeholder": "Subject id",
|
||||
"channel": "Channel",
|
||||
"channel_message": "Pinned subjects bypass percentage rollout.",
|
||||
"reason": "Reason",
|
||||
"reason_message": "Example: canary validation for customer support.",
|
||||
"reason_placeholder": "Reason",
|
||||
"expires": "Expires",
|
||||
"expires_message": "Leave blank for no automatic expiry."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Trigger, promote, and inspect release deployments.",
|
||||
"manual_deployment_record": "Manual deployment record",
|
||||
"target": "Target",
|
||||
"target_message": "Pick a saved target or keep manual fields editable.",
|
||||
"select_target_or_manual": "Select target or manual",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/front-end-vue",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit selection",
|
||||
"commit_selection_message": "Latest resolves to the branch head with the configured GitHub token.",
|
||||
"latest_from_branch": "Latest from branch",
|
||||
"specific_commit": "Specific commit",
|
||||
"specific_commit_message": "Example: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Version label",
|
||||
"version_label_message": "Example: api-2026.05.19",
|
||||
"version_label_placeholder": "version label",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Verify token access to the selected repository, branch, and commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Enable targeted capture and step through failure timelines.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Target type",
|
||||
"target": "Target",
|
||||
"target_message": "Example: user id 42 or channel slug canary.",
|
||||
"target_placeholder": "Target id or channel slug",
|
||||
"channel_scope": "Channel scope",
|
||||
"channel_scope_message": "Optional; limits replay capture to a channel.",
|
||||
"no_channel_scope": "No channel scope",
|
||||
"capture_level": "Capture level",
|
||||
"expires": "Expires",
|
||||
"expires_message": "Leave blank for manual disable.",
|
||||
"trace_id": "Trace ID",
|
||||
"trace_id_message": "Example: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace id",
|
||||
"channel": "Channel",
|
||||
"channel_placeholder": "Channel",
|
||||
"principal_id": "Principal ID",
|
||||
"principal_id_placeholder": "Principal id",
|
||||
"module": "Module",
|
||||
"module_placeholder": "Module",
|
||||
"severity": "Severity",
|
||||
"any_severity": "Any severity",
|
||||
"no_timeline_events": "No timeline events match the current filters."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub and Coolify",
|
||||
"subtitle": "Map GitHub repositories and branches to channel-specific Coolify services.",
|
||||
"choose_repository": "Choose repository",
|
||||
"add_health_url": "add health URL",
|
||||
"github_token_not_configured": "GitHub token is not configured; private repositories cannot be listed.",
|
||||
"open_github_token_settings": "Open GitHub token settings",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Latest: {commit}",
|
||||
"coolify_instance": "Coolify instance",
|
||||
"coolify_instance_message": "Leave empty for manual deployment records.",
|
||||
"no_coolify_instance": "No Coolify instance",
|
||||
"coolify_instance_placeholder": "Coolify instance id",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Select an existing service or paste a UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load balancer domain",
|
||||
"ssl_domain_message": "Must be a DNS domain routed to the Coolify load balancer. Example: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer domain",
|
||||
"https_domain_for_coolify": "Domain controlled by the load balancer",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Automatically create deployments when this target changes.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Ask Coolify to provision HTTPS for the configured domain.",
|
||||
"deploy_now": "Deploy now",
|
||||
"deploy_now_tooltip": "Start a deployment immediately after saving the target.",
|
||||
"create_missing_service": "Create missing service",
|
||||
"create_missing_service_tooltip": "Allow Release Manager to create a missing Coolify service.",
|
||||
"test_access_tooltip": "Verify the configured GitHub token can read this repository and branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub and Coolify",
|
||||
"subtitle": "Map GitHub repositories and branches to channel-specific Coolify services.",
|
||||
"choose_repository": "Choose repository",
|
||||
"add_health_url": "add health URL",
|
||||
"github_token_not_configured": "GitHub token is not configured; private repositories cannot be listed.",
|
||||
"open_github_token_settings": "Open GitHub token settings",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/backend-php",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Latest: {commit}",
|
||||
"coolify_instance": "Coolify instance",
|
||||
"coolify_instance_message": "Leave empty for manual deployment records.",
|
||||
"no_coolify_instance": "No Coolify instance",
|
||||
"coolify_instance_placeholder": "Coolify instance id",
|
||||
"coolify_service_uuid": "Coolify service UUID",
|
||||
"coolify_service_uuid_message": "Select an existing service or paste a UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service UUID",
|
||||
"health_url": "Health URL",
|
||||
"health_url_message": "Example: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health URL",
|
||||
"ssl_domain": "Load balancer domain",
|
||||
"ssl_domain_message": "Must be a DNS domain routed to the Coolify load balancer. Example: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer domain",
|
||||
"https_domain_for_coolify": "Domain controlled by the load balancer",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Automatically create deployments when this target changes.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Ask Coolify to provision HTTPS for the configured domain.",
|
||||
"deploy_now": "Deploy now",
|
||||
"deploy_now_tooltip": "Start a deployment immediately after saving the target.",
|
||||
"create_missing_service": "Create missing service",
|
||||
"create_missing_service_tooltip": "Allow Release Manager to create a missing Coolify service.",
|
||||
"test_access_tooltip": "Verify the configured GitHub token can read this repository and branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradual API and Front-End releases",
|
||||
"channel_names": {
|
||||
"stable": "Stable",
|
||||
"canary": "Canary",
|
||||
"internal": "Internal"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Default production channel.",
|
||||
"canary": "Early production validation channel.",
|
||||
"internal": "Internal staff and superuser validation channel."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Control API",
|
||||
"tooltip": "Release Manager actions are sent to this API. Use the production control API unless testing a staged backend.",
|
||||
"example": "Example: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API endpoint",
|
||||
"endpoint_message": "Switch this only when Release Manager endpoints are available on the target API.",
|
||||
"endpoint_aria": "Release Manager control API URL",
|
||||
"use_tooltip": "Load release data from this API",
|
||||
"use": "Use",
|
||||
"reset_tooltip": "Return to the default control API",
|
||||
"reset": "Reset",
|
||||
"known_endpoints": "Known control API endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Overview",
|
||||
"description": "Channel health, setup progress, and the latest release state."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Channels",
|
||||
"description": "Create stable, canary, and targeted channels with rollout limits."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Assignments",
|
||||
"description": "Pin users, subusers, or customers to a specific release channel."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Deployments",
|
||||
"description": "Trigger deployments and promote successful builds."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Enable targeted capture and search release timeline events."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrations",
|
||||
"description": "Connect GitHub repositories, branches, and Coolify services."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Settings",
|
||||
"description": "Configure Release Manager GitHub access and webhook settings."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Loading release manager data...",
|
||||
"refreshing_summary": "Refreshing release manager data...",
|
||||
"summary_detail": "Release status, channels, deployments, and service health are being loaded.",
|
||||
"channels": "Loading release channels...",
|
||||
"channels_detail": "Channel lanes and release dependencies are being loaded.",
|
||||
"assignments": "Loading release assignments...",
|
||||
"deployments": "Loading release deployments...",
|
||||
"operations": "Loading release operations...",
|
||||
"data_services": "Loading release data services...",
|
||||
"integrations": "Loading release integrations...",
|
||||
"settings": "Loading Release Manager settings...",
|
||||
"github_repositories": "Loading GitHub repositories...",
|
||||
"timeline_sessions": "Loading release timeline sessions...",
|
||||
"timeline_events": "Loading release timeline events...",
|
||||
"refreshing_timeline": "Refreshing release timeline..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Channels",
|
||||
"targets": "GitHub and Coolify targets",
|
||||
"assignments": "Pilot assignments",
|
||||
"deployments": "First deployment",
|
||||
"replay": "Replay capture"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Channels",
|
||||
"targets": "Targets",
|
||||
"deployments": "Deployments",
|
||||
"timeline_events": "Timeline events"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Overview",
|
||||
"subtitle": "Current channel health, release activity, and module status.",
|
||||
"guided_setup": "Guided setup",
|
||||
"next_step": "Next: {step}",
|
||||
"ready": "Release Manager is ready for day-to-day operations.",
|
||||
"add_suggested_channel": "Add suggested channel",
|
||||
"module_health_empty": "Module health snapshots appear after probes have been recorded."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager Settings",
|
||||
"subtitle": "Configure the GitHub token used for private repositories and branch lookups.",
|
||||
"github_token": "GitHub token",
|
||||
"github_api_url": "GitHub API URL",
|
||||
"webhook_secret": "Webhook secret",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"configured": "Configured",
|
||||
"not_configured": "Not configured",
|
||||
"loaded_from": "Loaded from {variable}",
|
||||
"set_below": "Set {variable} below",
|
||||
"private_repositories_prefix": "Private repositories are read with the server environment variable",
|
||||
"private_repositories_or": "or the module config variable",
|
||||
"github_token_message": "Example: github_pat_... with access to the private repositories Release Manager deploys.",
|
||||
"github_token_placeholder": "Leave blank to keep the existing token",
|
||||
"github_api_url_message": "Configured in ReleaseManager.github_api_url. Use https://api.github.com unless using GitHub Enterprise.",
|
||||
"webhook_secret_message": "Optional; leave blank to keep the existing secret.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC secret",
|
||||
"save": "Save settings",
|
||||
"back_to_integrations": "Back to integrations",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub token",
|
||||
"github_api_url": "GitHub API URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Review"
|
||||
},
|
||||
"github_token_title": "Add GitHub token",
|
||||
"github_token_description": "Release Manager uses this token to list private repositories, branches, and commits before a deployment target is saved or tested.",
|
||||
"configure_this_in": "Configure this in",
|
||||
"server_environment_variable": "The server environment variable",
|
||||
"takes_precedence": "takes precedence when it is set.",
|
||||
"recommended_access": "Recommended access",
|
||||
"recommended_access_description": "Fine-grained GitHub token with Contents: read access for each release repository.",
|
||||
"github_api_url_title": "Add GitHub API URL",
|
||||
"github_api_url_description": "Use GitHub Cloud by default, or point this at the REST API base URL for a GitHub Enterprise Server installation.",
|
||||
"github_api_url_invalid": "Enter a full HTTP or HTTPS URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise example",
|
||||
"github_webhook_secret_title": "Add GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Use the same secret in GitHub repository webhooks so Release Manager can verify deployment events before handling them.",
|
||||
"github_webhook_url": "GitHub webhook URL:",
|
||||
"store_shared_secret_in": "Store the shared secret in",
|
||||
"review_title": "Review GitHub setup",
|
||||
"review_description": "Save the values, then use Integrations to select a private repository, branch, and specific commit or latest commit before testing access.",
|
||||
"ready": "Ready",
|
||||
"needs_value": "Needs value"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release channel is not ready",
|
||||
"summary_prefix": "Your account is assigned to",
|
||||
"summary_suffix": ", but that channel is missing required release configuration.",
|
||||
"release_bundle": "Release bundle",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"frontend_base_url": "Frontend URL",
|
||||
"api_base_url": "API URL",
|
||||
"frontend_entry": "Frontend entry",
|
||||
"release_runtime": "Release runtime",
|
||||
"checking_again": "Checking again in {seconds}s",
|
||||
"refresh_error": "Release status could not be refreshed. The next automatic check will try again.",
|
||||
"ignore": "Ignore next 5 minutes",
|
||||
"check_again": "Check again",
|
||||
"logout": "Logout",
|
||||
"base_image": "Base image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "You are now on {channel}",
|
||||
"summary_prefix": "Your account has been assigned to the",
|
||||
"summary_suffix": "release channel. This device will remember that you have seen this notice.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"assigned_channel": "Assigned channel",
|
||||
"current_app_image": "Current app image",
|
||||
"current_api": "Current API",
|
||||
"base_image": "Base image",
|
||||
"continue": "Continue"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release channel",
|
||||
"subtitle": "Choose which assigned release channel this device should use.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Default",
|
||||
"ready": "Ready",
|
||||
"unavailable": "Not ready",
|
||||
"release_bundle": "Release bundle",
|
||||
"frontend_version": "Frontend version",
|
||||
"api_version": "API version",
|
||||
"frontend_base_url": "Frontend URL",
|
||||
"api_base_url": "API URL",
|
||||
"frontend_entry": "Frontend entry",
|
||||
"release_runtime": "Release runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Use local frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "yes",
|
||||
"no": "no",
|
||||
"off": "off"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Edit",
|
||||
"rollback": "Rollback",
|
||||
"update": "Update",
|
||||
"create": "Create",
|
||||
"publish_release": "Publish release",
|
||||
"clear": "Clear",
|
||||
"assign": "Assign",
|
||||
"remove": "Remove",
|
||||
"test_access": "Test access",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promote",
|
||||
"enable": "Enable",
|
||||
"search": "Search",
|
||||
"save_target": "Save target",
|
||||
"delete": "Delete",
|
||||
"back": "Back",
|
||||
"next": "Next"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Channel",
|
||||
"rollout": "Rollout",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Actions",
|
||||
"module": "Module",
|
||||
"status": "Status",
|
||||
"checked": "Checked",
|
||||
"subject": "Subject",
|
||||
"reason": "Reason",
|
||||
"expires": "Expires",
|
||||
"deployment": "Deployment",
|
||||
"source": "Source",
|
||||
"started": "Started",
|
||||
"target": "Target",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "full_redacted"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "user",
|
||||
"subuser": "subuser",
|
||||
"customer": "customer",
|
||||
"channel": "channel"
|
||||
},
|
||||
"severity": {
|
||||
"error": "error",
|
||||
"warning": "warning",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "active",
|
||||
"deployed": "deployed",
|
||||
"stable": "stable",
|
||||
"enabled": "enabled",
|
||||
"queued": "queued",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "not configured",
|
||||
"warning": "warning",
|
||||
"failed": "failed",
|
||||
"down": "down",
|
||||
"error": "error",
|
||||
"unknown": "unknown"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Suggested value",
|
||||
"suggestion": "Suggestion",
|
||||
"use_typed_value": "Use typed value",
|
||||
"custom": "Custom",
|
||||
"api_url": "API URL",
|
||||
"frontend_url": "Frontend URL",
|
||||
"known_release_url": "Known release URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} here with Coolify",
|
||||
"prepare_coolify_target": "Prepare a Coolify target with HTTPS/SSL enabled",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub repository",
|
||||
"owner_repository": "owner/repository",
|
||||
"git_branch": "Git branch",
|
||||
"deployment_branch": "Deployment branch",
|
||||
"github_commit": "GitHub commit",
|
||||
"git_commit": "Git commit",
|
||||
"use_specific_commit_sha": "Use specific commit SHA",
|
||||
"custom_commit": "Custom commit",
|
||||
"health_url": "Health URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify service",
|
||||
"service_uuid": "Service UUID",
|
||||
"known_coolify_service_uuid": "Known Coolify service UUID",
|
||||
"control_api": "Control API",
|
||||
"release_manager_api_endpoint": "Release Manager API endpoint",
|
||||
"module": "Module",
|
||||
"timeline_module_key": "Timeline module key"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Could not load GitHub repositories.",
|
||||
"github_branches": "Could not load GitHub branches.",
|
||||
"repository_branch_required": "Repository and branch are required before testing GitHub access.",
|
||||
"github_access_failed": "GitHub repository access test failed."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Channels",
|
||||
"subtitle": "Create and tune gradual release channels.",
|
||||
"rollout_percent": "{percent}% rollout",
|
||||
"already_configured": "Already configured",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Example: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Name",
|
||||
"name_message": "Shown to operators when reviewing a channel.",
|
||||
"name_placeholder": "Name",
|
||||
"rollout": "Rollout",
|
||||
"rollout_message": "0-100 percent of unassigned traffic.",
|
||||
"frontend_url": "Frontend URL",
|
||||
"frontend_url_message": "Example: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend URL",
|
||||
"no_matching_release_url": "No matching release URL.",
|
||||
"api_url": "API URL",
|
||||
"api_url_message": "Example: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API URL",
|
||||
"no_matching_api_url": "No matching API URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata is safer for broad channels.",
|
||||
"retention_days": "Retention days",
|
||||
"retention_days_message": "1-365 days.",
|
||||
"enabled": "Enabled",
|
||||
"default_channel": "Default channel",
|
||||
"replay_enabled": "Replay enabled",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Assignments",
|
||||
"subtitle": "Pin users, subusers, or customers to release channels.",
|
||||
"subject": "Subject",
|
||||
"subject_message": "Search users, subusers, or customers, or type a manual subject like user:42.",
|
||||
"subject_placeholder": "Search or type subject",
|
||||
"subject_empty": "No subjects found",
|
||||
"group_users": "Users",
|
||||
"group_subusers": "Subusers",
|
||||
"group_customers": "Customers",
|
||||
"group_manual": "Manual",
|
||||
"manual_user": "User #{id}",
|
||||
"manual_subuser": "Subuser #{id}",
|
||||
"manual_customer": "Customer #{id}",
|
||||
"manual_description": "Use typed value {subject}",
|
||||
"subject_type": "Subject type",
|
||||
"subject_type_message": "Choose the identity type to pin.",
|
||||
"customer": "Customer",
|
||||
"customer_message": "Search by customer number or name, then select the exact customer.",
|
||||
"customer_placeholder": "Search customer",
|
||||
"subject_id": "Subject ID",
|
||||
"subject_id_message": "Example: user id 42",
|
||||
"subject_id_placeholder": "Subject id",
|
||||
"channel": "Channel",
|
||||
"channel_message": "Pinned subjects bypass percentage rollout.",
|
||||
"reason": "Reason",
|
||||
"reason_message": "Example: canary validation for customer support.",
|
||||
"reason_placeholder": "Reason",
|
||||
"expires": "Expires",
|
||||
"expires_message": "Leave blank for no automatic expiry."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Trigger, promote, and inspect release deployments.",
|
||||
"manual_deployment_record": "Manual deployment record",
|
||||
"target": "Target",
|
||||
"target_message": "Pick a saved target or keep manual fields editable.",
|
||||
"select_target_or_manual": "Select target or manual",
|
||||
"channel": "Channel",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Example: truckwash/front-end-vue",
|
||||
"repository_placeholder": "owner/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Example: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit selection",
|
||||
"commit_selection_message": "Latest resolves to the branch head with the configured GitHub token.",
|
||||
"latest_from_branch": "Latest from branch",
|
||||
"specific_commit": "Specific commit",
|
||||
"specific_commit_message": "Example: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Version label",
|
||||
"version_label_message": "Example: api-2026.05.19",
|
||||
"version_label_placeholder": "version label",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Verify token access to the selected repository, branch, and commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Enable targeted capture and step through failure timelines.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Target type",
|
||||
"target": "Target",
|
||||
"target_message": "Example: user id 42 or channel slug canary.",
|
||||
"target_placeholder": "Target id or channel slug",
|
||||
"channel_scope": "Channel scope",
|
||||
"channel_scope_message": "Optional; limits replay capture to a channel.",
|
||||
"no_channel_scope": "No channel scope",
|
||||
"capture_level": "Capture level",
|
||||
"expires": "Expires",
|
||||
"expires_message": "Leave blank for manual disable.",
|
||||
"trace_id": "Trace ID",
|
||||
"trace_id_message": "Example: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace id",
|
||||
"channel": "Channel",
|
||||
"channel_placeholder": "Channel",
|
||||
"principal_id": "Principal ID",
|
||||
"principal_id_placeholder": "Principal id",
|
||||
"module": "Module",
|
||||
"module_placeholder": "Module",
|
||||
"severity": "Severity",
|
||||
"any_severity": "Any severity",
|
||||
"no_timeline_events": "No timeline events match the current filters."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,7 +98,25 @@
|
||||
"view_lane_new_tab": "@:{'phrases.compat.admin.pos.settings_wheel.view_lane_new_tab'}",
|
||||
"view_lane_setup_new_tab": "@:{'phrases.compat.admin.pos.settings_wheel.view_lane_setup_new_tab'}",
|
||||
"view_order_new_tab": "@:{'phrases.compat.admin.pos.settings_wheel.view_order_new_tab'}",
|
||||
"view_vehicle_new_tab": "@:{'phrases.compat.admin.pos.settings_wheel.view_vehicle_new_tab'}"
|
||||
"view_vehicle_new_tab": "@:{'phrases.compat.admin.pos.settings_wheel.view_vehicle_new_tab'}",
|
||||
"accept_self_serve_wash": "@:{'phrases.compat.admin.pos.settings_wheel.accept_self_serve_wash'}",
|
||||
"accept_self_serve_wash_confirm": "@:{'phrases.compat.admin.pos.settings_wheel.accept_self_serve_wash_confirm'}",
|
||||
"accept_self_serve_wash_success": "@:{'phrases.compat.admin.pos.settings_wheel.accept_self_serve_wash_success'}",
|
||||
"email_notifications_section": "@:{'phrases.compat.admin.pos.settings_wheel.email_notifications_section'}",
|
||||
"resend_booking_completion_confirmation": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation'}",
|
||||
"resend_booking_completion_confirmation_error": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_error'}",
|
||||
"resend_booking_completion_confirmation_success": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_success'}",
|
||||
"resend_booking_confirmation": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_confirmation'}",
|
||||
"resend_booking_confirmation_error": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_confirmation_error'}",
|
||||
"resend_booking_confirmation_success": "@:{'phrases.compat.admin.pos.settings_wheel.resend_booking_confirmation_success'}",
|
||||
"resend_wash_certificate": "@:{'phrases.compat.admin.pos.settings_wheel.resend_wash_certificate'}",
|
||||
"resend_wash_certificate_error": "@:{'phrases.compat.admin.pos.settings_wheel.resend_wash_certificate_error'}",
|
||||
"resend_wash_certificate_success": "@:{'phrases.compat.admin.pos.settings_wheel.resend_wash_certificate_success'}",
|
||||
"self_serve_customer": "@:{'phrases.compat.admin.pos.settings_wheel.self_serve_customer'}",
|
||||
"self_serve_driver": "@:{'phrases.compat.admin.pos.settings_wheel.self_serve_driver'}",
|
||||
"self_serve_elapsed": "@:{'phrases.compat.admin.pos.settings_wheel.self_serve_elapsed'}",
|
||||
"self_serve_wash_attachment": "@:{'phrases.compat.admin.pos.settings_wheel.self_serve_wash_attachment'}",
|
||||
"self_serve_wash_attachment_for_customer": "@:{'phrases.compat.admin.pos.settings_wheel.self_serve_wash_attachment_for_customer'}"
|
||||
},
|
||||
"show_details": "@:{'phrases.compat.admin.pos.show_details'}",
|
||||
"show_order_details": "@:{'phrases.compat.admin.pos.show_order_details'}",
|
||||
|
||||
@@ -351,473 +351,6 @@
|
||||
"title": "@:{'phrases.compat.configuration.xlvask.title'}",
|
||||
"username": "@:auth.username",
|
||||
"username_desc": "@:{'phrases.compat.configuration.xlvask.username_desc'}"
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.subtitle'}",
|
||||
"channel_names": {
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.channel_names.stable'}",
|
||||
"canary": "@:{'phrases.compat.configuration.release_manager.channel_names.canary'}",
|
||||
"internal": "@:{'phrases.compat.configuration.release_manager.channel_names.internal'}"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.stable'}",
|
||||
"canary": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.canary'}",
|
||||
"internal": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.internal'}"
|
||||
},
|
||||
"control_api": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.control_api.title'}",
|
||||
"tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.tooltip'}",
|
||||
"example": "@:{'phrases.compat.configuration.release_manager.control_api.example'}",
|
||||
"endpoint_label": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_label'}",
|
||||
"endpoint_message": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_message'}",
|
||||
"endpoint_aria": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_aria'}",
|
||||
"use_tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.use_tooltip'}",
|
||||
"use": "@:{'phrases.compat.configuration.release_manager.control_api.use'}",
|
||||
"reset_tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.reset_tooltip'}",
|
||||
"reset": "@:{'phrases.compat.configuration.release_manager.control_api.reset'}",
|
||||
"known_endpoints": "@:{'phrases.compat.configuration.release_manager.control_api.known_endpoints'}"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.overview.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.overview.description'}"
|
||||
},
|
||||
"channels": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.channels.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.channels.description'}"
|
||||
},
|
||||
"assignments": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.assignments.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.assignments.description'}"
|
||||
},
|
||||
"deployments": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.deployments.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.deployments.description'}"
|
||||
},
|
||||
"replay": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.replay.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.replay.description'}"
|
||||
},
|
||||
"integrations": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.integrations.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.integrations.description'}"
|
||||
},
|
||||
"settings": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.settings.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.settings.description'}"
|
||||
}
|
||||
},
|
||||
"setup": {
|
||||
"channels": "@:{'phrases.compat.configuration.release_manager.setup.channels'}",
|
||||
"targets": "@:{'phrases.compat.configuration.release_manager.setup.targets'}",
|
||||
"assignments": "@:{'phrases.compat.configuration.release_manager.setup.assignments'}",
|
||||
"deployments": "@:{'phrases.compat.configuration.release_manager.setup.deployments'}",
|
||||
"replay": "@:{'phrases.compat.configuration.release_manager.setup.replay'}"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "@:{'phrases.compat.configuration.release_manager.stats.channels'}",
|
||||
"targets": "@:{'phrases.compat.configuration.release_manager.stats.targets'}",
|
||||
"deployments": "@:{'phrases.compat.configuration.release_manager.stats.deployments'}",
|
||||
"timeline_events": "@:{'phrases.compat.configuration.release_manager.stats.timeline_events'}"
|
||||
},
|
||||
"overview": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.overview.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.overview.subtitle'}",
|
||||
"guided_setup": "@:{'phrases.compat.configuration.release_manager.overview.guided_setup'}",
|
||||
"next_step": "@:{'phrases.compat.configuration.release_manager.overview.next_step'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.overview.ready'}",
|
||||
"add_suggested_channel": "@:{'phrases.compat.configuration.release_manager.overview.add_suggested_channel'}",
|
||||
"module_health_empty": "@:{'phrases.compat.configuration.release_manager.overview.module_health_empty'}"
|
||||
},
|
||||
"settings": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.settings.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.settings.subtitle'}",
|
||||
"github_token": "@:{'phrases.compat.configuration.release_manager.settings.github_token'}",
|
||||
"github_api_url": "@:{'phrases.compat.configuration.release_manager.settings.github_api_url'}",
|
||||
"webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret'}",
|
||||
"github_webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.github_webhook_secret'}",
|
||||
"configured": "@:{'phrases.compat.configuration.release_manager.settings.configured'}",
|
||||
"not_configured": "@:{'phrases.compat.configuration.release_manager.settings.not_configured'}",
|
||||
"loaded_from": "@:{'phrases.compat.configuration.release_manager.settings.loaded_from'}",
|
||||
"set_below": "@:{'phrases.compat.configuration.release_manager.settings.set_below'}",
|
||||
"private_repositories_prefix": "@:{'phrases.compat.configuration.release_manager.settings.private_repositories_prefix'}",
|
||||
"private_repositories_or": "@:{'phrases.compat.configuration.release_manager.settings.private_repositories_or'}",
|
||||
"github_token_message": "@:{'phrases.compat.configuration.release_manager.settings.github_token_message'}",
|
||||
"github_token_placeholder": "@:{'phrases.compat.configuration.release_manager.settings.github_token_placeholder'}",
|
||||
"github_api_url_message": "@:{'phrases.compat.configuration.release_manager.settings.github_api_url_message'}",
|
||||
"webhook_secret_message": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret_message'}",
|
||||
"webhook_secret_placeholder": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret_placeholder'}",
|
||||
"save": "@:{'phrases.compat.configuration.release_manager.settings.save'}",
|
||||
"back_to_integrations": "@:{'phrases.compat.configuration.release_manager.settings.back_to_integrations'}",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_token'}",
|
||||
"github_api_url": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_api_url'}",
|
||||
"github_webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_webhook_secret'}",
|
||||
"review": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.review'}"
|
||||
},
|
||||
"github_token_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_token_title'}",
|
||||
"github_token_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_token_description'}",
|
||||
"configure_this_in": "@:{'phrases.compat.configuration.release_manager.settings.guide.configure_this_in'}",
|
||||
"server_environment_variable": "@:{'phrases.compat.configuration.release_manager.settings.guide.server_environment_variable'}",
|
||||
"takes_precedence": "@:{'phrases.compat.configuration.release_manager.settings.guide.takes_precedence'}",
|
||||
"recommended_access": "@:{'phrases.compat.configuration.release_manager.settings.guide.recommended_access'}",
|
||||
"recommended_access_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.recommended_access_description'}",
|
||||
"github_api_url_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_title'}",
|
||||
"github_api_url_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_description'}",
|
||||
"github_api_url_invalid": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_invalid'}",
|
||||
"github_cloud": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_cloud'}",
|
||||
"enterprise_example": "@:{'phrases.compat.configuration.release_manager.settings.guide.enterprise_example'}",
|
||||
"github_webhook_secret_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_secret_title'}",
|
||||
"github_webhook_secret_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_secret_description'}",
|
||||
"github_webhook_url": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_url'}",
|
||||
"store_shared_secret_in": "@:{'phrases.compat.configuration.release_manager.settings.guide.store_shared_secret_in'}",
|
||||
"review_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.review_title'}",
|
||||
"review_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.review_description'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.settings.guide.ready'}",
|
||||
"needs_value": "@:{'phrases.compat.configuration.release_manager.settings.guide.needs_value'}"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.kicker'}",
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.title'}",
|
||||
"summary_prefix": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.summary_prefix'}",
|
||||
"summary_suffix": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.summary_suffix'}",
|
||||
"release_bundle": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.release_bundle'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.api_version'}",
|
||||
"frontend_base_url": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_base_url'}",
|
||||
"api_base_url": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.api_base_url'}",
|
||||
"frontend_entry": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_entry'}",
|
||||
"release_runtime": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.release_runtime'}",
|
||||
"checking_again": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.checking_again'}",
|
||||
"refresh_error": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.refresh_error'}",
|
||||
"ignore": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.ignore'}",
|
||||
"check_again": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.check_again'}",
|
||||
"logout": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.logout'}",
|
||||
"base_image": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.base_image'}"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "@:{'phrases.compat.configuration.release_manager.channel_switched.kicker'}",
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_switched.title'}",
|
||||
"summary_prefix": "@:{'phrases.compat.configuration.release_manager.channel_switched.summary_prefix'}",
|
||||
"summary_suffix": "@:{'phrases.compat.configuration.release_manager.channel_switched.summary_suffix'}",
|
||||
"bundle": "@:{'phrases.compat.configuration.release_manager.channel_switched.bundle'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.channel_switched.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.channel_switched.api'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_switched.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_switched.api_version'}",
|
||||
"assigned_channel": "@:{'phrases.compat.configuration.release_manager.channel_switched.assigned_channel'}",
|
||||
"current_app_image": "@:{'phrases.compat.configuration.release_manager.channel_switched.current_app_image'}",
|
||||
"current_api": "@:{'phrases.compat.configuration.release_manager.channel_switched.current_api'}",
|
||||
"base_image": "@:{'phrases.compat.configuration.release_manager.channel_switched.base_image'}",
|
||||
"continue": "@:{'phrases.compat.configuration.release_manager.channel_switched.continue'}"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_selector.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.channel_selector.subtitle'}",
|
||||
"sidebar_title": "@:{'phrases.compat.configuration.release_manager.channel_selector.sidebar_title'}",
|
||||
"default": "@:{'phrases.compat.configuration.release_manager.channel_selector.default'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.channel_selector.ready'}",
|
||||
"unavailable": "@:{'phrases.compat.configuration.release_manager.channel_selector.unavailable'}",
|
||||
"release_bundle": "@:{'phrases.compat.configuration.release_manager.channel_selector.release_bundle'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_selector.api_version'}",
|
||||
"frontend_base_url": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_base_url'}",
|
||||
"api_base_url": "@:{'phrases.compat.configuration.release_manager.channel_selector.api_base_url'}",
|
||||
"frontend_entry": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_entry'}",
|
||||
"release_runtime": "@:{'phrases.compat.configuration.release_manager.channel_selector.release_runtime'}",
|
||||
"bundle": "@:{'phrases.compat.configuration.release_manager.channel_selector.bundle'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.channel_selector.api'}",
|
||||
"use_local_frontend": "@:{'phrases.compat.configuration.release_manager.channel_selector.use_local_frontend'}"
|
||||
},
|
||||
"common": {
|
||||
"yes": "@:{'phrases.compat.configuration.release_manager.common.yes'}",
|
||||
"no": "@:{'phrases.compat.configuration.release_manager.common.no'}",
|
||||
"off": "@:{'phrases.compat.configuration.release_manager.common.off'}"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "@:{'phrases.compat.configuration.release_manager.actions.edit'}",
|
||||
"rollback": "@:{'phrases.compat.configuration.release_manager.actions.rollback'}",
|
||||
"update": "@:{'phrases.compat.configuration.release_manager.actions.update'}",
|
||||
"create": "@:{'phrases.compat.configuration.release_manager.actions.create'}",
|
||||
"clear": "@:{'phrases.compat.configuration.release_manager.actions.clear'}",
|
||||
"assign": "@:{'phrases.compat.configuration.release_manager.actions.assign'}",
|
||||
"remove": "@:{'phrases.compat.configuration.release_manager.actions.remove'}",
|
||||
"test_access": "@:{'phrases.compat.configuration.release_manager.actions.test_access'}",
|
||||
"deploy": "@:{'phrases.compat.configuration.release_manager.actions.deploy'}",
|
||||
"redeploy": "@:{'phrases.compat.configuration.release_manager.actions.redeploy'}",
|
||||
"promote": "@:{'phrases.compat.configuration.release_manager.actions.promote'}",
|
||||
"enable": "@:{'phrases.compat.configuration.release_manager.actions.enable'}",
|
||||
"search": "@:{'phrases.compat.configuration.release_manager.actions.search'}",
|
||||
"save_target": "@:{'phrases.compat.configuration.release_manager.actions.save_target'}",
|
||||
"delete": "@:{'phrases.compat.configuration.release_manager.actions.delete'}",
|
||||
"back": "@:{'phrases.compat.configuration.release_manager.actions.back'}",
|
||||
"next": "@:{'phrases.compat.configuration.release_manager.actions.next'}"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.tables.channel'}",
|
||||
"rollout": "@:{'phrases.compat.configuration.release_manager.tables.rollout'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.tables.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.tables.api'}",
|
||||
"replay": "@:{'phrases.compat.configuration.release_manager.tables.replay'}",
|
||||
"actions": "@:{'phrases.compat.configuration.release_manager.tables.actions'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.tables.module'}",
|
||||
"status": "@:{'phrases.compat.configuration.release_manager.tables.status'}",
|
||||
"checked": "@:{'phrases.compat.configuration.release_manager.tables.checked'}",
|
||||
"subject": "@:{'phrases.compat.configuration.release_manager.tables.subject'}",
|
||||
"reason": "@:{'phrases.compat.configuration.release_manager.tables.reason'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.tables.expires'}",
|
||||
"deployment": "@:{'phrases.compat.configuration.release_manager.tables.deployment'}",
|
||||
"source": "@:{'phrases.compat.configuration.release_manager.tables.source'}",
|
||||
"started": "@:{'phrases.compat.configuration.release_manager.tables.started'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.tables.target'}",
|
||||
"coolify": "@:{'phrases.compat.configuration.release_manager.tables.coolify'}",
|
||||
"auto": "@:{'phrases.compat.configuration.release_manager.tables.auto'}"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.values.app.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.values.app.api'}"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "@:{'phrases.compat.configuration.release_manager.values.capture_level.metadata'}",
|
||||
"full_redacted": "@:{'phrases.compat.configuration.release_manager.values.capture_level.full_redacted'}"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "@:{'phrases.compat.configuration.release_manager.values.subject_type.user'}",
|
||||
"subuser": "@:{'phrases.compat.configuration.release_manager.values.subject_type.subuser'}",
|
||||
"customer": "@:{'phrases.compat.configuration.release_manager.values.subject_type.customer'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.values.subject_type.channel'}"
|
||||
},
|
||||
"severity": {
|
||||
"error": "@:{'phrases.compat.configuration.release_manager.values.severity.error'}",
|
||||
"warning": "@:{'phrases.compat.configuration.release_manager.values.severity.warning'}",
|
||||
"info": "@:{'phrases.compat.configuration.release_manager.values.severity.info'}"
|
||||
},
|
||||
"status": {
|
||||
"ok": "@:{'phrases.compat.configuration.release_manager.values.status.ok'}",
|
||||
"active": "@:{'phrases.compat.configuration.release_manager.values.status.active'}",
|
||||
"deployed": "@:{'phrases.compat.configuration.release_manager.values.status.deployed'}",
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.values.status.stable'}",
|
||||
"enabled": "@:{'phrases.compat.configuration.release_manager.values.status.enabled'}",
|
||||
"queued": "@:{'phrases.compat.configuration.release_manager.values.status.queued'}",
|
||||
"deploying": "@:{'phrases.compat.configuration.release_manager.values.status.deploying'}",
|
||||
"metadata": "@:{'phrases.compat.configuration.release_manager.values.status.metadata'}",
|
||||
"not_configured": "@:{'phrases.compat.configuration.release_manager.values.status.not_configured'}",
|
||||
"warning": "@:{'phrases.compat.configuration.release_manager.values.status.warning'}",
|
||||
"failed": "@:{'phrases.compat.configuration.release_manager.values.status.failed'}",
|
||||
"down": "@:{'phrases.compat.configuration.release_manager.values.status.down'}",
|
||||
"error": "@:{'phrases.compat.configuration.release_manager.values.status.error'}",
|
||||
"unknown": "@:{'phrases.compat.configuration.release_manager.values.status.unknown'}"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "@:{'phrases.compat.configuration.release_manager.autocomplete.suggested_value'}",
|
||||
"suggestion": "@:{'phrases.compat.configuration.release_manager.autocomplete.suggestion'}",
|
||||
"use_typed_value": "@:{'phrases.compat.configuration.release_manager.autocomplete.use_typed_value'}",
|
||||
"custom": "@:{'phrases.compat.configuration.release_manager.autocomplete.custom'}",
|
||||
"api_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.api_url'}",
|
||||
"frontend_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.frontend_url'}",
|
||||
"known_release_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.known_release_url'}",
|
||||
"deploy_here_with_coolify": "@:{'phrases.compat.configuration.release_manager.autocomplete.deploy_here_with_coolify'}",
|
||||
"prepare_coolify_target": "@:{'phrases.compat.configuration.release_manager.autocomplete.prepare_coolify_target'}",
|
||||
"coolify_ssl": "@:{'phrases.compat.configuration.release_manager.autocomplete.coolify_ssl'}",
|
||||
"github_repository": "@:{'phrases.compat.configuration.release_manager.autocomplete.github_repository'}",
|
||||
"owner_repository": "@:{'phrases.compat.configuration.release_manager.autocomplete.owner_repository'}",
|
||||
"git_branch": "@:{'phrases.compat.configuration.release_manager.autocomplete.git_branch'}",
|
||||
"deployment_branch": "@:{'phrases.compat.configuration.release_manager.autocomplete.deployment_branch'}",
|
||||
"github_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.github_commit'}",
|
||||
"git_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.git_commit'}",
|
||||
"use_specific_commit_sha": "@:{'phrases.compat.configuration.release_manager.autocomplete.use_specific_commit_sha'}",
|
||||
"custom_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.custom_commit'}",
|
||||
"health_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.health_url'}",
|
||||
"release_health_check": "@:{'phrases.compat.configuration.release_manager.autocomplete.release_health_check'}",
|
||||
"coolify_service": "@:{'phrases.compat.configuration.release_manager.autocomplete.coolify_service'}",
|
||||
"service_uuid": "@:{'phrases.compat.configuration.release_manager.autocomplete.service_uuid'}",
|
||||
"known_coolify_service_uuid": "@:{'phrases.compat.configuration.release_manager.autocomplete.known_coolify_service_uuid'}",
|
||||
"control_api": "@:{'phrases.compat.configuration.release_manager.autocomplete.control_api'}",
|
||||
"release_manager_api_endpoint": "@:{'phrases.compat.configuration.release_manager.autocomplete.release_manager_api_endpoint'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.autocomplete.module'}",
|
||||
"timeline_module_key": "@:{'phrases.compat.configuration.release_manager.autocomplete.timeline_module_key'}"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "@:{'phrases.compat.configuration.release_manager.errors.github_repositories'}",
|
||||
"github_branches": "@:{'phrases.compat.configuration.release_manager.errors.github_branches'}",
|
||||
"repository_branch_required": "@:{'phrases.compat.configuration.release_manager.errors.repository_branch_required'}",
|
||||
"github_access_failed": "@:{'phrases.compat.configuration.release_manager.errors.github_access_failed'}"
|
||||
},
|
||||
"channels": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channels.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.channels.subtitle'}",
|
||||
"rollout_percent": "@:{'phrases.compat.configuration.release_manager.channels.rollout_percent'}",
|
||||
"already_configured": "@:{'phrases.compat.configuration.release_manager.channels.already_configured'}",
|
||||
"slug": "@:{'phrases.compat.configuration.release_manager.channels.slug'}",
|
||||
"slug_message": "@:{'phrases.compat.configuration.release_manager.channels.slug_message'}",
|
||||
"slug_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.slug_placeholder'}",
|
||||
"name": "@:{'phrases.compat.configuration.release_manager.channels.name'}",
|
||||
"name_message": "@:{'phrases.compat.configuration.release_manager.channels.name_message'}",
|
||||
"name_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.name_placeholder'}",
|
||||
"rollout": "@:{'phrases.compat.configuration.release_manager.channels.rollout'}",
|
||||
"rollout_message": "@:{'phrases.compat.configuration.release_manager.channels.rollout_message'}",
|
||||
"frontend_url": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url'}",
|
||||
"frontend_url_message": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url_message'}",
|
||||
"frontend_url_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url_placeholder'}",
|
||||
"no_matching_release_url": "@:{'phrases.compat.configuration.release_manager.channels.no_matching_release_url'}",
|
||||
"api_url": "@:{'phrases.compat.configuration.release_manager.channels.api_url'}",
|
||||
"api_url_message": "@:{'phrases.compat.configuration.release_manager.channels.api_url_message'}",
|
||||
"api_url_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.api_url_placeholder'}",
|
||||
"no_matching_api_url": "@:{'phrases.compat.configuration.release_manager.channels.no_matching_api_url'}",
|
||||
"replay_capture": "@:{'phrases.compat.configuration.release_manager.channels.replay_capture'}",
|
||||
"replay_capture_message": "@:{'phrases.compat.configuration.release_manager.channels.replay_capture_message'}",
|
||||
"retention_days": "@:{'phrases.compat.configuration.release_manager.channels.retention_days'}",
|
||||
"retention_days_message": "@:{'phrases.compat.configuration.release_manager.channels.retention_days_message'}",
|
||||
"enabled": "@:{'phrases.compat.configuration.release_manager.channels.enabled'}",
|
||||
"default_channel": "@:{'phrases.compat.configuration.release_manager.channels.default_channel'}",
|
||||
"replay_enabled": "@:{'phrases.compat.configuration.release_manager.channels.replay_enabled'}",
|
||||
"frontend_chip": "@:{'phrases.compat.configuration.release_manager.channels.frontend_chip'}",
|
||||
"api_chip": "@:{'phrases.compat.configuration.release_manager.channels.api_chip'}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.assignments.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.assignments.subtitle'}",
|
||||
"subject": "@:{'phrases.compat.configuration.release_manager.assignments.subject'}",
|
||||
"subject_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_message'}",
|
||||
"subject_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.subject_placeholder'}",
|
||||
"subject_empty": "@:{'phrases.compat.configuration.release_manager.assignments.subject_empty'}",
|
||||
"group_users": "@:{'phrases.compat.configuration.release_manager.assignments.group_users'}",
|
||||
"group_subusers": "@:{'phrases.compat.configuration.release_manager.assignments.group_subusers'}",
|
||||
"group_customers": "@:{'phrases.compat.configuration.release_manager.assignments.group_customers'}",
|
||||
"group_manual": "@:{'phrases.compat.configuration.release_manager.assignments.group_manual'}",
|
||||
"manual_user": "@:{'phrases.compat.configuration.release_manager.assignments.manual_user'}",
|
||||
"manual_subuser": "@:{'phrases.compat.configuration.release_manager.assignments.manual_subuser'}",
|
||||
"manual_customer": "@:{'phrases.compat.configuration.release_manager.assignments.manual_customer'}",
|
||||
"manual_description": "@:{'phrases.compat.configuration.release_manager.assignments.manual_description'}",
|
||||
"subject_type": "@:{'phrases.compat.configuration.release_manager.assignments.subject_type'}",
|
||||
"subject_type_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_type_message'}",
|
||||
"customer": "@:{'phrases.compat.configuration.release_manager.assignments.customer'}",
|
||||
"customer_message": "@:{'phrases.compat.configuration.release_manager.assignments.customer_message'}",
|
||||
"customer_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.customer_placeholder'}",
|
||||
"subject_id": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id'}",
|
||||
"subject_id_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id_message'}",
|
||||
"subject_id_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id_placeholder'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.assignments.channel'}",
|
||||
"channel_message": "@:{'phrases.compat.configuration.release_manager.assignments.channel_message'}",
|
||||
"reason": "@:{'phrases.compat.configuration.release_manager.assignments.reason'}",
|
||||
"reason_message": "@:{'phrases.compat.configuration.release_manager.assignments.reason_message'}",
|
||||
"reason_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.reason_placeholder'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.assignments.expires'}",
|
||||
"expires_message": "@:{'phrases.compat.configuration.release_manager.assignments.expires_message'}"
|
||||
},
|
||||
"deployments": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.deployments.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.deployments.subtitle'}",
|
||||
"manual_deployment_record": "@:{'phrases.compat.configuration.release_manager.deployments.manual_deployment_record'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.deployments.target'}",
|
||||
"target_message": "@:{'phrases.compat.configuration.release_manager.deployments.target_message'}",
|
||||
"select_target_or_manual": "@:{'phrases.compat.configuration.release_manager.deployments.select_target_or_manual'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.deployments.channel'}",
|
||||
"app": "@:{'phrases.compat.configuration.release_manager.deployments.app'}",
|
||||
"repository": "@:{'phrases.compat.configuration.release_manager.deployments.repository'}",
|
||||
"repository_message": "@:{'phrases.compat.configuration.release_manager.deployments.repository_message'}",
|
||||
"repository_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.repository_placeholder'}",
|
||||
"branch": "@:{'phrases.compat.configuration.release_manager.deployments.branch'}",
|
||||
"branch_message": "@:{'phrases.compat.configuration.release_manager.deployments.branch_message'}",
|
||||
"branch_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.branch_placeholder'}",
|
||||
"commit_selection": "@:{'phrases.compat.configuration.release_manager.deployments.commit_selection'}",
|
||||
"commit_selection_message": "@:{'phrases.compat.configuration.release_manager.deployments.commit_selection_message'}",
|
||||
"latest_from_branch": "@:{'phrases.compat.configuration.release_manager.deployments.latest_from_branch'}",
|
||||
"specific_commit": "@:{'phrases.compat.configuration.release_manager.deployments.specific_commit'}",
|
||||
"specific_commit_message": "@:{'phrases.compat.configuration.release_manager.deployments.specific_commit_message'}",
|
||||
"commit_sha_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.commit_sha_placeholder'}",
|
||||
"version_label": "@:{'phrases.compat.configuration.release_manager.deployments.version_label'}",
|
||||
"version_label_message": "@:{'phrases.compat.configuration.release_manager.deployments.version_label_message'}",
|
||||
"version_label_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.version_label_placeholder'}",
|
||||
"commit_prefix": "@:{'phrases.compat.configuration.release_manager.deployments.commit_prefix'}",
|
||||
"test_access_tooltip": "@:{'phrases.compat.configuration.release_manager.deployments.test_access_tooltip'}"
|
||||
},
|
||||
"replay": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.replay.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.replay.subtitle'}",
|
||||
"capture_channel": "@:{'phrases.compat.configuration.release_manager.replay.capture_channel'}",
|
||||
"target_type": "@:{'phrases.compat.configuration.release_manager.replay.target_type'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.replay.target'}",
|
||||
"target_message": "@:{'phrases.compat.configuration.release_manager.replay.target_message'}",
|
||||
"target_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.target_placeholder'}",
|
||||
"channel_scope": "@:{'phrases.compat.configuration.release_manager.replay.channel_scope'}",
|
||||
"channel_scope_message": "@:{'phrases.compat.configuration.release_manager.replay.channel_scope_message'}",
|
||||
"no_channel_scope": "@:{'phrases.compat.configuration.release_manager.replay.no_channel_scope'}",
|
||||
"capture_level": "@:{'phrases.compat.configuration.release_manager.replay.capture_level'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.replay.expires'}",
|
||||
"expires_message": "@:{'phrases.compat.configuration.release_manager.replay.expires_message'}",
|
||||
"trace_id": "@:{'phrases.compat.configuration.release_manager.replay.trace_id'}",
|
||||
"trace_id_message": "@:{'phrases.compat.configuration.release_manager.replay.trace_id_message'}",
|
||||
"trace_id_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.trace_id_placeholder'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.replay.channel'}",
|
||||
"channel_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.channel_placeholder'}",
|
||||
"principal_id": "@:{'phrases.compat.configuration.release_manager.replay.principal_id'}",
|
||||
"principal_id_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.principal_id_placeholder'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.replay.module'}",
|
||||
"module_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.module_placeholder'}",
|
||||
"severity": "@:{'phrases.compat.configuration.release_manager.replay.severity'}",
|
||||
"any_severity": "@:{'phrases.compat.configuration.release_manager.replay.any_severity'}",
|
||||
"no_timeline_events": "@:{'phrases.compat.configuration.release_manager.replay.no_timeline_events'}"
|
||||
},
|
||||
"integrations": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.integrations.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.integrations.subtitle'}",
|
||||
"choose_repository": "@:{'phrases.compat.configuration.release_manager.integrations.choose_repository'}",
|
||||
"add_health_url": "@:{'phrases.compat.configuration.release_manager.integrations.add_health_url'}",
|
||||
"github_token_not_configured": "@:{'phrases.compat.configuration.release_manager.integrations.github_token_not_configured'}",
|
||||
"open_github_token_settings": "@:{'phrases.compat.configuration.release_manager.integrations.open_github_token_settings'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.integrations.channel'}",
|
||||
"app": "@:{'phrases.compat.configuration.release_manager.integrations.app'}",
|
||||
"repository": "@:{'phrases.compat.configuration.release_manager.integrations.repository'}",
|
||||
"repository_message": "@:{'phrases.compat.configuration.release_manager.integrations.repository_message'}",
|
||||
"repository_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.repository_placeholder'}",
|
||||
"branch": "@:{'phrases.compat.configuration.release_manager.integrations.branch'}",
|
||||
"branch_message": "@:{'phrases.compat.configuration.release_manager.integrations.branch_message'}",
|
||||
"branch_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.branch_placeholder'}",
|
||||
"latest_prefix": "@:{'phrases.compat.configuration.release_manager.integrations.latest_prefix'}",
|
||||
"coolify_instance": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance'}",
|
||||
"coolify_instance_message": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance_message'}",
|
||||
"no_coolify_instance": "@:{'phrases.compat.configuration.release_manager.integrations.no_coolify_instance'}",
|
||||
"coolify_instance_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance_placeholder'}",
|
||||
"coolify_service_uuid": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid'}",
|
||||
"coolify_service_uuid_message": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid_message'}",
|
||||
"coolify_service_uuid_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid_placeholder'}",
|
||||
"health_url": "@:{'phrases.compat.configuration.release_manager.integrations.health_url'}",
|
||||
"health_url_message": "@:{'phrases.compat.configuration.release_manager.integrations.health_url_message'}",
|
||||
"health_url_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.health_url_placeholder'}",
|
||||
"ssl_domain": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain'}",
|
||||
"ssl_domain_message": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain_message'}",
|
||||
"ssl_domain_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain_placeholder'}",
|
||||
"https_domain_for_coolify": "@:{'phrases.compat.configuration.release_manager.integrations.https_domain_for_coolify'}",
|
||||
"endpoint_mode": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode'}",
|
||||
"endpoint_mode_message": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_message'}",
|
||||
"endpoint_mode_auto": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_auto'}",
|
||||
"endpoint_mode_manual": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_manual'}",
|
||||
"manual_endpoint_host": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host'}",
|
||||
"manual_endpoint_host_message": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host_message'}",
|
||||
"manual_endpoint_host_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host_placeholder'}",
|
||||
"manual_endpoint_port": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_port'}",
|
||||
"manual_endpoint_port_message": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_port_message'}",
|
||||
"app_port": "@:{'phrases.compat.configuration.release_manager.integrations.app_port'}",
|
||||
"app_port_message": "@:{'phrases.compat.configuration.release_manager.integrations.app_port_message'}",
|
||||
"auto_gateway_endpoint": "@:{'phrases.compat.configuration.release_manager.integrations.auto_gateway_endpoint'}",
|
||||
"pending_automatic_endpoint": "@:{'phrases.compat.configuration.release_manager.integrations.pending_automatic_endpoint'}",
|
||||
"auto_deploy": "@:{'phrases.compat.configuration.release_manager.integrations.auto_deploy'}",
|
||||
"auto_deploy_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.auto_deploy_tooltip'}",
|
||||
"coolify_ssl": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_ssl'}",
|
||||
"coolify_ssl_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_ssl_tooltip'}",
|
||||
"deploy_now": "@:{'phrases.compat.configuration.release_manager.integrations.deploy_now'}",
|
||||
"deploy_now_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.deploy_now_tooltip'}",
|
||||
"create_missing_service": "@:{'phrases.compat.configuration.release_manager.integrations.create_missing_service'}",
|
||||
"create_missing_service_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.create_missing_service_tooltip'}",
|
||||
"test_access_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.test_access_tooltip'}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.integrations.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.integrations.subtitle'}",
|
||||
"choose_repository": "@:{'phrases.compat.configuration.release_manager.integrations.choose_repository'}",
|
||||
"add_health_url": "@:{'phrases.compat.configuration.release_manager.integrations.add_health_url'}",
|
||||
"github_token_not_configured": "@:{'phrases.compat.configuration.release_manager.integrations.github_token_not_configured'}",
|
||||
"open_github_token_settings": "@:{'phrases.compat.configuration.release_manager.integrations.open_github_token_settings'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.integrations.channel'}",
|
||||
"app": "@:{'phrases.compat.configuration.release_manager.integrations.app'}",
|
||||
"repository": "@:{'phrases.compat.configuration.release_manager.integrations.repository'}",
|
||||
"repository_message": "@:{'phrases.compat.configuration.release_manager.integrations.repository_message'}",
|
||||
"repository_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.repository_placeholder'}",
|
||||
"branch": "@:{'phrases.compat.configuration.release_manager.integrations.branch'}",
|
||||
"branch_message": "@:{'phrases.compat.configuration.release_manager.integrations.branch_message'}",
|
||||
"branch_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.branch_placeholder'}",
|
||||
"latest_prefix": "@:{'phrases.compat.configuration.release_manager.integrations.latest_prefix'}",
|
||||
"coolify_instance": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance'}",
|
||||
"coolify_instance_message": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance_message'}",
|
||||
"no_coolify_instance": "@:{'phrases.compat.configuration.release_manager.integrations.no_coolify_instance'}",
|
||||
"coolify_instance_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_instance_placeholder'}",
|
||||
"coolify_service_uuid": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid'}",
|
||||
"coolify_service_uuid_message": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid_message'}",
|
||||
"coolify_service_uuid_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_service_uuid_placeholder'}",
|
||||
"health_url": "@:{'phrases.compat.configuration.release_manager.integrations.health_url'}",
|
||||
"health_url_message": "@:{'phrases.compat.configuration.release_manager.integrations.health_url_message'}",
|
||||
"health_url_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.health_url_placeholder'}",
|
||||
"ssl_domain": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain'}",
|
||||
"ssl_domain_message": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain_message'}",
|
||||
"ssl_domain_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.ssl_domain_placeholder'}",
|
||||
"https_domain_for_coolify": "@:{'phrases.compat.configuration.release_manager.integrations.https_domain_for_coolify'}",
|
||||
"endpoint_mode": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode'}",
|
||||
"endpoint_mode_message": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_message'}",
|
||||
"endpoint_mode_auto": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_auto'}",
|
||||
"endpoint_mode_manual": "@:{'phrases.compat.configuration.release_manager.integrations.endpoint_mode_manual'}",
|
||||
"manual_endpoint_host": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host'}",
|
||||
"manual_endpoint_host_message": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host_message'}",
|
||||
"manual_endpoint_host_placeholder": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_host_placeholder'}",
|
||||
"manual_endpoint_port": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_port'}",
|
||||
"manual_endpoint_port_message": "@:{'phrases.compat.configuration.release_manager.integrations.manual_endpoint_port_message'}",
|
||||
"app_port": "@:{'phrases.compat.configuration.release_manager.integrations.app_port'}",
|
||||
"app_port_message": "@:{'phrases.compat.configuration.release_manager.integrations.app_port_message'}",
|
||||
"auto_gateway_endpoint": "@:{'phrases.compat.configuration.release_manager.integrations.auto_gateway_endpoint'}",
|
||||
"pending_automatic_endpoint": "@:{'phrases.compat.configuration.release_manager.integrations.pending_automatic_endpoint'}",
|
||||
"auto_deploy": "@:{'phrases.compat.configuration.release_manager.integrations.auto_deploy'}",
|
||||
"auto_deploy_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.auto_deploy_tooltip'}",
|
||||
"coolify_ssl": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_ssl'}",
|
||||
"coolify_ssl_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.coolify_ssl_tooltip'}",
|
||||
"deploy_now": "@:{'phrases.compat.configuration.release_manager.integrations.deploy_now'}",
|
||||
"deploy_now_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.deploy_now_tooltip'}",
|
||||
"create_missing_service": "@:{'phrases.compat.configuration.release_manager.integrations.create_missing_service'}",
|
||||
"create_missing_service_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.create_missing_service_tooltip'}",
|
||||
"test_access_tooltip": "@:{'phrases.compat.configuration.release_manager.integrations.test_access_tooltip'}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,435 @@
|
||||
{
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.subtitle'}",
|
||||
"channel_names": {
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.channel_names.stable'}",
|
||||
"canary": "@:{'phrases.compat.configuration.release_manager.channel_names.canary'}",
|
||||
"internal": "@:{'phrases.compat.configuration.release_manager.channel_names.internal'}"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.stable'}",
|
||||
"canary": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.canary'}",
|
||||
"internal": "@:{'phrases.compat.configuration.release_manager.channel_descriptions.internal'}"
|
||||
},
|
||||
"control_api": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.control_api.title'}",
|
||||
"tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.tooltip'}",
|
||||
"example": "@:{'phrases.compat.configuration.release_manager.control_api.example'}",
|
||||
"endpoint_label": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_label'}",
|
||||
"endpoint_message": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_message'}",
|
||||
"endpoint_aria": "@:{'phrases.compat.configuration.release_manager.control_api.endpoint_aria'}",
|
||||
"use_tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.use_tooltip'}",
|
||||
"use": "@:{'phrases.compat.configuration.release_manager.control_api.use'}",
|
||||
"reset_tooltip": "@:{'phrases.compat.configuration.release_manager.control_api.reset_tooltip'}",
|
||||
"reset": "@:{'phrases.compat.configuration.release_manager.control_api.reset'}",
|
||||
"known_endpoints": "@:{'phrases.compat.configuration.release_manager.control_api.known_endpoints'}"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.overview.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.overview.description'}"
|
||||
},
|
||||
"channels": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.channels.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.channels.description'}"
|
||||
},
|
||||
"assignments": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.assignments.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.assignments.description'}"
|
||||
},
|
||||
"deployments": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.deployments.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.deployments.description'}"
|
||||
},
|
||||
"replay": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.replay.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.replay.description'}"
|
||||
},
|
||||
"integrations": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.integrations.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.integrations.description'}"
|
||||
},
|
||||
"settings": {
|
||||
"label": "@:{'phrases.compat.configuration.release_manager.tabs.settings.label'}",
|
||||
"description": "@:{'phrases.compat.configuration.release_manager.tabs.settings.description'}"
|
||||
}
|
||||
},
|
||||
"setup": {
|
||||
"channels": "@:{'phrases.compat.configuration.release_manager.setup.channels'}",
|
||||
"targets": "@:{'phrases.compat.configuration.release_manager.setup.targets'}",
|
||||
"assignments": "@:{'phrases.compat.configuration.release_manager.setup.assignments'}",
|
||||
"deployments": "@:{'phrases.compat.configuration.release_manager.setup.deployments'}",
|
||||
"replay": "@:{'phrases.compat.configuration.release_manager.setup.replay'}"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "@:{'phrases.compat.configuration.release_manager.stats.channels'}",
|
||||
"targets": "@:{'phrases.compat.configuration.release_manager.stats.targets'}",
|
||||
"deployments": "@:{'phrases.compat.configuration.release_manager.stats.deployments'}",
|
||||
"timeline_events": "@:{'phrases.compat.configuration.release_manager.stats.timeline_events'}"
|
||||
},
|
||||
"overview": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.overview.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.overview.subtitle'}",
|
||||
"guided_setup": "@:{'phrases.compat.configuration.release_manager.overview.guided_setup'}",
|
||||
"next_step": "@:{'phrases.compat.configuration.release_manager.overview.next_step'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.overview.ready'}",
|
||||
"add_suggested_channel": "@:{'phrases.compat.configuration.release_manager.overview.add_suggested_channel'}",
|
||||
"module_health_empty": "@:{'phrases.compat.configuration.release_manager.overview.module_health_empty'}"
|
||||
},
|
||||
"settings": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.settings.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.settings.subtitle'}",
|
||||
"github_token": "@:{'phrases.compat.configuration.release_manager.settings.github_token'}",
|
||||
"github_api_url": "@:{'phrases.compat.configuration.release_manager.settings.github_api_url'}",
|
||||
"webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret'}",
|
||||
"github_webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.github_webhook_secret'}",
|
||||
"configured": "@:{'phrases.compat.configuration.release_manager.settings.configured'}",
|
||||
"not_configured": "@:{'phrases.compat.configuration.release_manager.settings.not_configured'}",
|
||||
"loaded_from": "@:{'phrases.compat.configuration.release_manager.settings.loaded_from'}",
|
||||
"set_below": "@:{'phrases.compat.configuration.release_manager.settings.set_below'}",
|
||||
"private_repositories_prefix": "@:{'phrases.compat.configuration.release_manager.settings.private_repositories_prefix'}",
|
||||
"private_repositories_or": "@:{'phrases.compat.configuration.release_manager.settings.private_repositories_or'}",
|
||||
"github_token_message": "@:{'phrases.compat.configuration.release_manager.settings.github_token_message'}",
|
||||
"github_token_placeholder": "@:{'phrases.compat.configuration.release_manager.settings.github_token_placeholder'}",
|
||||
"github_api_url_message": "@:{'phrases.compat.configuration.release_manager.settings.github_api_url_message'}",
|
||||
"webhook_secret_message": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret_message'}",
|
||||
"webhook_secret_placeholder": "@:{'phrases.compat.configuration.release_manager.settings.webhook_secret_placeholder'}",
|
||||
"save": "@:{'phrases.compat.configuration.release_manager.settings.save'}",
|
||||
"back_to_integrations": "@:{'phrases.compat.configuration.release_manager.settings.back_to_integrations'}",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_token'}",
|
||||
"github_api_url": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_api_url'}",
|
||||
"github_webhook_secret": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.github_webhook_secret'}",
|
||||
"review": "@:{'phrases.compat.configuration.release_manager.settings.guide.steps.review'}"
|
||||
},
|
||||
"github_token_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_token_title'}",
|
||||
"github_token_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_token_description'}",
|
||||
"configure_this_in": "@:{'phrases.compat.configuration.release_manager.settings.guide.configure_this_in'}",
|
||||
"server_environment_variable": "@:{'phrases.compat.configuration.release_manager.settings.guide.server_environment_variable'}",
|
||||
"takes_precedence": "@:{'phrases.compat.configuration.release_manager.settings.guide.takes_precedence'}",
|
||||
"recommended_access": "@:{'phrases.compat.configuration.release_manager.settings.guide.recommended_access'}",
|
||||
"recommended_access_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.recommended_access_description'}",
|
||||
"github_api_url_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_title'}",
|
||||
"github_api_url_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_description'}",
|
||||
"github_api_url_invalid": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_api_url_invalid'}",
|
||||
"github_cloud": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_cloud'}",
|
||||
"enterprise_example": "@:{'phrases.compat.configuration.release_manager.settings.guide.enterprise_example'}",
|
||||
"github_webhook_secret_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_secret_title'}",
|
||||
"github_webhook_secret_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_secret_description'}",
|
||||
"github_webhook_url": "@:{'phrases.compat.configuration.release_manager.settings.guide.github_webhook_url'}",
|
||||
"store_shared_secret_in": "@:{'phrases.compat.configuration.release_manager.settings.guide.store_shared_secret_in'}",
|
||||
"review_title": "@:{'phrases.compat.configuration.release_manager.settings.guide.review_title'}",
|
||||
"review_description": "@:{'phrases.compat.configuration.release_manager.settings.guide.review_description'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.settings.guide.ready'}",
|
||||
"needs_value": "@:{'phrases.compat.configuration.release_manager.settings.guide.needs_value'}"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.kicker'}",
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.title'}",
|
||||
"summary_prefix": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.summary_prefix'}",
|
||||
"summary_suffix": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.summary_suffix'}",
|
||||
"release_bundle": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.release_bundle'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.api_version'}",
|
||||
"frontend_base_url": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_base_url'}",
|
||||
"api_base_url": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.api_base_url'}",
|
||||
"frontend_entry": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.frontend_entry'}",
|
||||
"release_runtime": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.release_runtime'}",
|
||||
"checking_again": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.checking_again'}",
|
||||
"refresh_error": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.refresh_error'}",
|
||||
"ignore": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.ignore'}",
|
||||
"check_again": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.check_again'}",
|
||||
"logout": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.logout'}",
|
||||
"base_image": "@:{'phrases.compat.configuration.release_manager.channel_unavailable.base_image'}"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "@:{'phrases.compat.configuration.release_manager.channel_switched.kicker'}",
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_switched.title'}",
|
||||
"summary_prefix": "@:{'phrases.compat.configuration.release_manager.channel_switched.summary_prefix'}",
|
||||
"summary_suffix": "@:{'phrases.compat.configuration.release_manager.channel_switched.summary_suffix'}",
|
||||
"bundle": "@:{'phrases.compat.configuration.release_manager.channel_switched.bundle'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.channel_switched.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.channel_switched.api'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_switched.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_switched.api_version'}",
|
||||
"assigned_channel": "@:{'phrases.compat.configuration.release_manager.channel_switched.assigned_channel'}",
|
||||
"current_app_image": "@:{'phrases.compat.configuration.release_manager.channel_switched.current_app_image'}",
|
||||
"current_api": "@:{'phrases.compat.configuration.release_manager.channel_switched.current_api'}",
|
||||
"base_image": "@:{'phrases.compat.configuration.release_manager.channel_switched.base_image'}",
|
||||
"continue": "@:{'phrases.compat.configuration.release_manager.channel_switched.continue'}"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channel_selector.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.channel_selector.subtitle'}",
|
||||
"sidebar_title": "@:{'phrases.compat.configuration.release_manager.channel_selector.sidebar_title'}",
|
||||
"default": "@:{'phrases.compat.configuration.release_manager.channel_selector.default'}",
|
||||
"ready": "@:{'phrases.compat.configuration.release_manager.channel_selector.ready'}",
|
||||
"unavailable": "@:{'phrases.compat.configuration.release_manager.channel_selector.unavailable'}",
|
||||
"release_bundle": "@:{'phrases.compat.configuration.release_manager.channel_selector.release_bundle'}",
|
||||
"frontend_version": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_version'}",
|
||||
"api_version": "@:{'phrases.compat.configuration.release_manager.channel_selector.api_version'}",
|
||||
"frontend_base_url": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_base_url'}",
|
||||
"api_base_url": "@:{'phrases.compat.configuration.release_manager.channel_selector.api_base_url'}",
|
||||
"frontend_entry": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend_entry'}",
|
||||
"release_runtime": "@:{'phrases.compat.configuration.release_manager.channel_selector.release_runtime'}",
|
||||
"bundle": "@:{'phrases.compat.configuration.release_manager.channel_selector.bundle'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.channel_selector.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.channel_selector.api'}",
|
||||
"use_local_frontend": "@:{'phrases.compat.configuration.release_manager.channel_selector.use_local_frontend'}"
|
||||
},
|
||||
"common": {
|
||||
"yes": "@:{'phrases.compat.configuration.release_manager.common.yes'}",
|
||||
"no": "@:{'phrases.compat.configuration.release_manager.common.no'}",
|
||||
"off": "@:{'phrases.compat.configuration.release_manager.common.off'}"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "@:{'phrases.compat.configuration.release_manager.actions.edit'}",
|
||||
"rollback": "@:{'phrases.compat.configuration.release_manager.actions.rollback'}",
|
||||
"update": "@:{'phrases.compat.configuration.release_manager.actions.update'}",
|
||||
"create": "@:{'phrases.compat.configuration.release_manager.actions.create'}",
|
||||
"clear": "@:{'phrases.compat.configuration.release_manager.actions.clear'}",
|
||||
"assign": "@:{'phrases.compat.configuration.release_manager.actions.assign'}",
|
||||
"remove": "@:{'phrases.compat.configuration.release_manager.actions.remove'}",
|
||||
"test_access": "@:{'phrases.compat.configuration.release_manager.actions.test_access'}",
|
||||
"deploy": "@:{'phrases.compat.configuration.release_manager.actions.deploy'}",
|
||||
"redeploy": "@:{'phrases.compat.configuration.release_manager.actions.redeploy'}",
|
||||
"promote": "@:{'phrases.compat.configuration.release_manager.actions.promote'}",
|
||||
"enable": "@:{'phrases.compat.configuration.release_manager.actions.enable'}",
|
||||
"search": "@:{'phrases.compat.configuration.release_manager.actions.search'}",
|
||||
"save_target": "@:{'phrases.compat.configuration.release_manager.actions.save_target'}",
|
||||
"delete": "@:{'phrases.compat.configuration.release_manager.actions.delete'}",
|
||||
"back": "@:{'phrases.compat.configuration.release_manager.actions.back'}",
|
||||
"next": "@:{'phrases.compat.configuration.release_manager.actions.next'}"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.tables.channel'}",
|
||||
"rollout": "@:{'phrases.compat.configuration.release_manager.tables.rollout'}",
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.tables.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.tables.api'}",
|
||||
"replay": "@:{'phrases.compat.configuration.release_manager.tables.replay'}",
|
||||
"actions": "@:{'phrases.compat.configuration.release_manager.tables.actions'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.tables.module'}",
|
||||
"status": "@:{'phrases.compat.configuration.release_manager.tables.status'}",
|
||||
"checked": "@:{'phrases.compat.configuration.release_manager.tables.checked'}",
|
||||
"subject": "@:{'phrases.compat.configuration.release_manager.tables.subject'}",
|
||||
"reason": "@:{'phrases.compat.configuration.release_manager.tables.reason'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.tables.expires'}",
|
||||
"deployment": "@:{'phrases.compat.configuration.release_manager.tables.deployment'}",
|
||||
"source": "@:{'phrases.compat.configuration.release_manager.tables.source'}",
|
||||
"started": "@:{'phrases.compat.configuration.release_manager.tables.started'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.tables.target'}",
|
||||
"coolify": "@:{'phrases.compat.configuration.release_manager.tables.coolify'}",
|
||||
"auto": "@:{'phrases.compat.configuration.release_manager.tables.auto'}"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "@:{'phrases.compat.configuration.release_manager.values.app.frontend'}",
|
||||
"api": "@:{'phrases.compat.configuration.release_manager.values.app.api'}"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "@:{'phrases.compat.configuration.release_manager.values.capture_level.metadata'}",
|
||||
"full_redacted": "@:{'phrases.compat.configuration.release_manager.values.capture_level.full_redacted'}"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "@:{'phrases.compat.configuration.release_manager.values.subject_type.user'}",
|
||||
"subuser": "@:{'phrases.compat.configuration.release_manager.values.subject_type.subuser'}",
|
||||
"customer": "@:{'phrases.compat.configuration.release_manager.values.subject_type.customer'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.values.subject_type.channel'}"
|
||||
},
|
||||
"severity": {
|
||||
"error": "@:{'phrases.compat.configuration.release_manager.values.severity.error'}",
|
||||
"warning": "@:{'phrases.compat.configuration.release_manager.values.severity.warning'}",
|
||||
"info": "@:{'phrases.compat.configuration.release_manager.values.severity.info'}"
|
||||
},
|
||||
"status": {
|
||||
"ok": "@:{'phrases.compat.configuration.release_manager.values.status.ok'}",
|
||||
"active": "@:{'phrases.compat.configuration.release_manager.values.status.active'}",
|
||||
"deployed": "@:{'phrases.compat.configuration.release_manager.values.status.deployed'}",
|
||||
"stable": "@:{'phrases.compat.configuration.release_manager.values.status.stable'}",
|
||||
"enabled": "@:{'phrases.compat.configuration.release_manager.values.status.enabled'}",
|
||||
"queued": "@:{'phrases.compat.configuration.release_manager.values.status.queued'}",
|
||||
"deploying": "@:{'phrases.compat.configuration.release_manager.values.status.deploying'}",
|
||||
"metadata": "@:{'phrases.compat.configuration.release_manager.values.status.metadata'}",
|
||||
"not_configured": "@:{'phrases.compat.configuration.release_manager.values.status.not_configured'}",
|
||||
"warning": "@:{'phrases.compat.configuration.release_manager.values.status.warning'}",
|
||||
"failed": "@:{'phrases.compat.configuration.release_manager.values.status.failed'}",
|
||||
"down": "@:{'phrases.compat.configuration.release_manager.values.status.down'}",
|
||||
"error": "@:{'phrases.compat.configuration.release_manager.values.status.error'}",
|
||||
"unknown": "@:{'phrases.compat.configuration.release_manager.values.status.unknown'}"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "@:{'phrases.compat.configuration.release_manager.autocomplete.suggested_value'}",
|
||||
"suggestion": "@:{'phrases.compat.configuration.release_manager.autocomplete.suggestion'}",
|
||||
"use_typed_value": "@:{'phrases.compat.configuration.release_manager.autocomplete.use_typed_value'}",
|
||||
"custom": "@:{'phrases.compat.configuration.release_manager.autocomplete.custom'}",
|
||||
"api_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.api_url'}",
|
||||
"frontend_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.frontend_url'}",
|
||||
"known_release_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.known_release_url'}",
|
||||
"deploy_here_with_coolify": "@:{'phrases.compat.configuration.release_manager.autocomplete.deploy_here_with_coolify'}",
|
||||
"prepare_coolify_target": "@:{'phrases.compat.configuration.release_manager.autocomplete.prepare_coolify_target'}",
|
||||
"coolify_ssl": "@:{'phrases.compat.configuration.release_manager.autocomplete.coolify_ssl'}",
|
||||
"github_repository": "@:{'phrases.compat.configuration.release_manager.autocomplete.github_repository'}",
|
||||
"owner_repository": "@:{'phrases.compat.configuration.release_manager.autocomplete.owner_repository'}",
|
||||
"git_branch": "@:{'phrases.compat.configuration.release_manager.autocomplete.git_branch'}",
|
||||
"deployment_branch": "@:{'phrases.compat.configuration.release_manager.autocomplete.deployment_branch'}",
|
||||
"github_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.github_commit'}",
|
||||
"git_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.git_commit'}",
|
||||
"use_specific_commit_sha": "@:{'phrases.compat.configuration.release_manager.autocomplete.use_specific_commit_sha'}",
|
||||
"custom_commit": "@:{'phrases.compat.configuration.release_manager.autocomplete.custom_commit'}",
|
||||
"health_url": "@:{'phrases.compat.configuration.release_manager.autocomplete.health_url'}",
|
||||
"release_health_check": "@:{'phrases.compat.configuration.release_manager.autocomplete.release_health_check'}",
|
||||
"coolify_service": "@:{'phrases.compat.configuration.release_manager.autocomplete.coolify_service'}",
|
||||
"service_uuid": "@:{'phrases.compat.configuration.release_manager.autocomplete.service_uuid'}",
|
||||
"known_coolify_service_uuid": "@:{'phrases.compat.configuration.release_manager.autocomplete.known_coolify_service_uuid'}",
|
||||
"control_api": "@:{'phrases.compat.configuration.release_manager.autocomplete.control_api'}",
|
||||
"release_manager_api_endpoint": "@:{'phrases.compat.configuration.release_manager.autocomplete.release_manager_api_endpoint'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.autocomplete.module'}",
|
||||
"timeline_module_key": "@:{'phrases.compat.configuration.release_manager.autocomplete.timeline_module_key'}"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "@:{'phrases.compat.configuration.release_manager.errors.github_repositories'}",
|
||||
"github_branches": "@:{'phrases.compat.configuration.release_manager.errors.github_branches'}",
|
||||
"repository_branch_required": "@:{'phrases.compat.configuration.release_manager.errors.repository_branch_required'}",
|
||||
"github_access_failed": "@:{'phrases.compat.configuration.release_manager.errors.github_access_failed'}"
|
||||
},
|
||||
"channels": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.channels.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.channels.subtitle'}",
|
||||
"rollout_percent": "@:{'phrases.compat.configuration.release_manager.channels.rollout_percent'}",
|
||||
"already_configured": "@:{'phrases.compat.configuration.release_manager.channels.already_configured'}",
|
||||
"slug": "@:{'phrases.compat.configuration.release_manager.channels.slug'}",
|
||||
"slug_message": "@:{'phrases.compat.configuration.release_manager.channels.slug_message'}",
|
||||
"slug_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.slug_placeholder'}",
|
||||
"name": "@:{'phrases.compat.configuration.release_manager.channels.name'}",
|
||||
"name_message": "@:{'phrases.compat.configuration.release_manager.channels.name_message'}",
|
||||
"name_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.name_placeholder'}",
|
||||
"rollout": "@:{'phrases.compat.configuration.release_manager.channels.rollout'}",
|
||||
"rollout_message": "@:{'phrases.compat.configuration.release_manager.channels.rollout_message'}",
|
||||
"frontend_url": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url'}",
|
||||
"frontend_url_message": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url_message'}",
|
||||
"frontend_url_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.frontend_url_placeholder'}",
|
||||
"no_matching_release_url": "@:{'phrases.compat.configuration.release_manager.channels.no_matching_release_url'}",
|
||||
"api_url": "@:{'phrases.compat.configuration.release_manager.channels.api_url'}",
|
||||
"api_url_message": "@:{'phrases.compat.configuration.release_manager.channels.api_url_message'}",
|
||||
"api_url_placeholder": "@:{'phrases.compat.configuration.release_manager.channels.api_url_placeholder'}",
|
||||
"no_matching_api_url": "@:{'phrases.compat.configuration.release_manager.channels.no_matching_api_url'}",
|
||||
"replay_capture": "@:{'phrases.compat.configuration.release_manager.channels.replay_capture'}",
|
||||
"replay_capture_message": "@:{'phrases.compat.configuration.release_manager.channels.replay_capture_message'}",
|
||||
"retention_days": "@:{'phrases.compat.configuration.release_manager.channels.retention_days'}",
|
||||
"retention_days_message": "@:{'phrases.compat.configuration.release_manager.channels.retention_days_message'}",
|
||||
"enabled": "@:{'phrases.compat.configuration.release_manager.channels.enabled'}",
|
||||
"default_channel": "@:{'phrases.compat.configuration.release_manager.channels.default_channel'}",
|
||||
"replay_enabled": "@:{'phrases.compat.configuration.release_manager.channels.replay_enabled'}",
|
||||
"frontend_chip": "@:{'phrases.compat.configuration.release_manager.channels.frontend_chip'}",
|
||||
"api_chip": "@:{'phrases.compat.configuration.release_manager.channels.api_chip'}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.assignments.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.assignments.subtitle'}",
|
||||
"subject": "@:{'phrases.compat.configuration.release_manager.assignments.subject'}",
|
||||
"subject_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_message'}",
|
||||
"subject_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.subject_placeholder'}",
|
||||
"subject_empty": "@:{'phrases.compat.configuration.release_manager.assignments.subject_empty'}",
|
||||
"group_users": "@:{'phrases.compat.configuration.release_manager.assignments.group_users'}",
|
||||
"group_subusers": "@:{'phrases.compat.configuration.release_manager.assignments.group_subusers'}",
|
||||
"group_customers": "@:{'phrases.compat.configuration.release_manager.assignments.group_customers'}",
|
||||
"group_manual": "@:{'phrases.compat.configuration.release_manager.assignments.group_manual'}",
|
||||
"manual_user": "@:{'phrases.compat.configuration.release_manager.assignments.manual_user'}",
|
||||
"manual_subuser": "@:{'phrases.compat.configuration.release_manager.assignments.manual_subuser'}",
|
||||
"manual_customer": "@:{'phrases.compat.configuration.release_manager.assignments.manual_customer'}",
|
||||
"manual_description": "@:{'phrases.compat.configuration.release_manager.assignments.manual_description'}",
|
||||
"subject_type": "@:{'phrases.compat.configuration.release_manager.assignments.subject_type'}",
|
||||
"subject_type_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_type_message'}",
|
||||
"customer": "@:{'phrases.compat.configuration.release_manager.assignments.customer'}",
|
||||
"customer_message": "@:{'phrases.compat.configuration.release_manager.assignments.customer_message'}",
|
||||
"customer_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.customer_placeholder'}",
|
||||
"subject_id": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id'}",
|
||||
"subject_id_message": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id_message'}",
|
||||
"subject_id_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.subject_id_placeholder'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.assignments.channel'}",
|
||||
"channel_message": "@:{'phrases.compat.configuration.release_manager.assignments.channel_message'}",
|
||||
"reason": "@:{'phrases.compat.configuration.release_manager.assignments.reason'}",
|
||||
"reason_message": "@:{'phrases.compat.configuration.release_manager.assignments.reason_message'}",
|
||||
"reason_placeholder": "@:{'phrases.compat.configuration.release_manager.assignments.reason_placeholder'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.assignments.expires'}",
|
||||
"expires_message": "@:{'phrases.compat.configuration.release_manager.assignments.expires_message'}"
|
||||
},
|
||||
"deployments": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.deployments.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.deployments.subtitle'}",
|
||||
"manual_deployment_record": "@:{'phrases.compat.configuration.release_manager.deployments.manual_deployment_record'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.deployments.target'}",
|
||||
"target_message": "@:{'phrases.compat.configuration.release_manager.deployments.target_message'}",
|
||||
"select_target_or_manual": "@:{'phrases.compat.configuration.release_manager.deployments.select_target_or_manual'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.deployments.channel'}",
|
||||
"app": "@:{'phrases.compat.configuration.release_manager.deployments.app'}",
|
||||
"repository": "@:{'phrases.compat.configuration.release_manager.deployments.repository'}",
|
||||
"repository_message": "@:{'phrases.compat.configuration.release_manager.deployments.repository_message'}",
|
||||
"repository_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.repository_placeholder'}",
|
||||
"branch": "@:{'phrases.compat.configuration.release_manager.deployments.branch'}",
|
||||
"branch_message": "@:{'phrases.compat.configuration.release_manager.deployments.branch_message'}",
|
||||
"branch_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.branch_placeholder'}",
|
||||
"commit_selection": "@:{'phrases.compat.configuration.release_manager.deployments.commit_selection'}",
|
||||
"commit_selection_message": "@:{'phrases.compat.configuration.release_manager.deployments.commit_selection_message'}",
|
||||
"latest_from_branch": "@:{'phrases.compat.configuration.release_manager.deployments.latest_from_branch'}",
|
||||
"specific_commit": "@:{'phrases.compat.configuration.release_manager.deployments.specific_commit'}",
|
||||
"specific_commit_message": "@:{'phrases.compat.configuration.release_manager.deployments.specific_commit_message'}",
|
||||
"commit_sha_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.commit_sha_placeholder'}",
|
||||
"version_label": "@:{'phrases.compat.configuration.release_manager.deployments.version_label'}",
|
||||
"version_label_message": "@:{'phrases.compat.configuration.release_manager.deployments.version_label_message'}",
|
||||
"version_label_placeholder": "@:{'phrases.compat.configuration.release_manager.deployments.version_label_placeholder'}",
|
||||
"commit_prefix": "@:{'phrases.compat.configuration.release_manager.deployments.commit_prefix'}",
|
||||
"test_access_tooltip": "@:{'phrases.compat.configuration.release_manager.deployments.test_access_tooltip'}"
|
||||
},
|
||||
"replay": {
|
||||
"title": "@:{'phrases.compat.configuration.release_manager.replay.title'}",
|
||||
"subtitle": "@:{'phrases.compat.configuration.release_manager.replay.subtitle'}",
|
||||
"capture_channel": "@:{'phrases.compat.configuration.release_manager.replay.capture_channel'}",
|
||||
"target_type": "@:{'phrases.compat.configuration.release_manager.replay.target_type'}",
|
||||
"target": "@:{'phrases.compat.configuration.release_manager.replay.target'}",
|
||||
"target_message": "@:{'phrases.compat.configuration.release_manager.replay.target_message'}",
|
||||
"target_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.target_placeholder'}",
|
||||
"channel_scope": "@:{'phrases.compat.configuration.release_manager.replay.channel_scope'}",
|
||||
"channel_scope_message": "@:{'phrases.compat.configuration.release_manager.replay.channel_scope_message'}",
|
||||
"no_channel_scope": "@:{'phrases.compat.configuration.release_manager.replay.no_channel_scope'}",
|
||||
"capture_level": "@:{'phrases.compat.configuration.release_manager.replay.capture_level'}",
|
||||
"expires": "@:{'phrases.compat.configuration.release_manager.replay.expires'}",
|
||||
"expires_message": "@:{'phrases.compat.configuration.release_manager.replay.expires_message'}",
|
||||
"trace_id": "@:{'phrases.compat.configuration.release_manager.replay.trace_id'}",
|
||||
"trace_id_message": "@:{'phrases.compat.configuration.release_manager.replay.trace_id_message'}",
|
||||
"trace_id_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.trace_id_placeholder'}",
|
||||
"channel": "@:{'phrases.compat.configuration.release_manager.replay.channel'}",
|
||||
"channel_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.channel_placeholder'}",
|
||||
"principal_id": "@:{'phrases.compat.configuration.release_manager.replay.principal_id'}",
|
||||
"principal_id_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.principal_id_placeholder'}",
|
||||
"module": "@:{'phrases.compat.configuration.release_manager.replay.module'}",
|
||||
"module_placeholder": "@:{'phrases.compat.configuration.release_manager.replay.module_placeholder'}",
|
||||
"severity": "@:{'phrases.compat.configuration.release_manager.replay.severity'}",
|
||||
"any_severity": "@:{'phrases.compat.configuration.release_manager.replay.any_severity'}",
|
||||
"no_timeline_events": "@:{'phrases.compat.configuration.release_manager.replay.no_timeline_events'}"
|
||||
},
|
||||
"loading": {
|
||||
"assignments": "@:{'phrases.compat.configuration.release_manager.loading.assignments'}",
|
||||
"channels": "@:{'phrases.compat.configuration.release_manager.loading.channels'}",
|
||||
"channels_detail": "@:{'phrases.compat.configuration.release_manager.loading.channels_detail'}",
|
||||
"data_services": "@:{'phrases.compat.configuration.release_manager.loading.data_services'}",
|
||||
"deployments": "@:{'phrases.compat.configuration.release_manager.loading.deployments'}",
|
||||
"github_repositories": "@:{'phrases.compat.configuration.release_manager.loading.github_repositories'}",
|
||||
"integrations": "@:{'phrases.compat.configuration.release_manager.loading.integrations'}",
|
||||
"operations": "@:{'phrases.compat.configuration.release_manager.loading.operations'}",
|
||||
"refreshing_summary": "@:{'phrases.compat.configuration.release_manager.loading.refreshing_summary'}",
|
||||
"refreshing_timeline": "@:{'phrases.compat.configuration.release_manager.loading.refreshing_timeline'}",
|
||||
"settings": "@:{'phrases.compat.configuration.release_manager.loading.settings'}",
|
||||
"summary": "@:{'phrases.compat.configuration.release_manager.loading.summary'}",
|
||||
"summary_detail": "@:{'phrases.compat.configuration.release_manager.loading.summary_detail'}",
|
||||
"timeline_events": "@:{'phrases.compat.configuration.release_manager.loading.timeline_events'}",
|
||||
"timeline_sessions": "@:{'phrases.compat.configuration.release_manager.loading.timeline_sessions'}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compat": {
|
||||
"admin": {
|
||||
"pos": {
|
||||
"settings_wheel": {
|
||||
"accept_self_serve_wash": "Godta selvbetjent vask",
|
||||
"accept_self_serve_wash_confirm": "Flytt denne kladden til kunde #{customerNumber} med selvbetjeningsdetaljene?",
|
||||
"accept_self_serve_wash_success": "Den selvbetjente vasken ble godtatt.",
|
||||
"email_notifications_section": "E-postvarsler",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kunde",
|
||||
"self_serve_driver": "Sjåfør",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Selvbetjent vask",
|
||||
"self_serve_wash_attachment_for_customer": "Selvbetjent vask for kunde #{customerNumber}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,490 +298,6 @@
|
||||
"subtitle": "@.capitalize:{'terms.glossary.konfigurasjon'} @:{'terms.glossary.av'} @:{'terms.glossary.xlvask'}-@:{'terms.glossary.integrasjonen'}",
|
||||
"title": "@:{'terms.glossary.xlvask'}-@:{'terms.glossary.konfigurasjon'}",
|
||||
"username_desc": "@:{'terms.glossary.brukernavnet'} @:{'terms.glossary.brukes'} @:{'terms.glossary.til'} @:{'terms.glossary.a'} @:{'terms.glossary.autentisere'} @:{'terms.glossary.api'}-@:{'terms.glossary.tilkoblingen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-utgivelser",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard produksjonskanal.",
|
||||
"canary": "Tidlig produksjonsvalideringskanal.",
|
||||
"internal": "Intern kanal for ansatte og superbrukervalidering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release Manager-handlinger sendes til denne API-en. Bruk produksjons-API-en med mindre du tester en staging-backend.",
|
||||
"example": "Eksempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endepunkt",
|
||||
"endpoint_message": "Endre dette bare når Release Manager-endepunkter er tilgjengelige på mål-API-en.",
|
||||
"endpoint_aria": "Release Manager kontroll-API URL",
|
||||
"use_tooltip": "Last release-data fra denne API-en",
|
||||
"use": "Bruk",
|
||||
"reset_tooltip": "Gå tilbake til standard kontroll-API",
|
||||
"reset": "Tilbakestill",
|
||||
"known_endpoints": "Kjente kontroll-API-endepunkter"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Oversikt",
|
||||
"description": "Kanalhelse, oppsettsfremdrift og siste release-status."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Opprett stabile, canary- og målrettede kanaler med rollout-grenser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tildelinger",
|
||||
"description": "Knytt brukere, underbrukere eller kunder til en bestemt release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Utrullinger",
|
||||
"description": "Start utrullinger og promoter vellykkede bygg."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktiver målrettet innsamling og søk i release-tidslinjehendelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrasjoner",
|
||||
"description": "Koble GitHub-repositories, branches og Coolify-tjenester."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Innstillinger",
|
||||
"description": "Konfigurer Release Managers GitHub-tilgang og webhook-innstillinger."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Laster Release Manager-data...",
|
||||
"refreshing_summary": "Oppdaterer Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments og servicehelse lastes.",
|
||||
"channels": "Laster release-kanaler...",
|
||||
"channels_detail": "Kanalvisninger og release-avhengigheter lastes.",
|
||||
"assignments": "Laster release-tildelinger...",
|
||||
"deployments": "Laster release-deployments...",
|
||||
"operations": "Laster release-operasjoner...",
|
||||
"data_services": "Laster release-datatjenester...",
|
||||
"integrations": "Laster release-integrasjoner...",
|
||||
"settings": "Laster Release Manager-innstillinger...",
|
||||
"github_repositories": "Laster GitHub-repositories...",
|
||||
"timeline_sessions": "Laster release-tidslinje-sesjoner...",
|
||||
"timeline_events": "Laster release-tidslinjehendelser...",
|
||||
"refreshing_timeline": "Oppdaterer release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- og Coolify-mål",
|
||||
"assignments": "Pilottildelinger",
|
||||
"deployments": "Første utrulling",
|
||||
"replay": "Replay-innsamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Utrullinger",
|
||||
"timeline_events": "Tidslinjehendelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Oversikt",
|
||||
"subtitle": "Aktuell kanalhelse, release-aktivitet og modulstatus.",
|
||||
"guided_setup": "Veiledet oppsett",
|
||||
"next_step": "Neste: {step}",
|
||||
"ready": "Release Manager er klar for daglig drift.",
|
||||
"add_suggested_channel": "Legg til foreslått kanal",
|
||||
"module_health_empty": "Modul-health snapshots vises når probes er registrert."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-innstillinger",
|
||||
"subtitle": "Konfigurer GitHub-tokenet som brukes for private repositories og branch-oppslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemmelighet",
|
||||
"github_webhook_secret": "GitHub webhook-hemmelighet",
|
||||
"configured": "Konfigurert",
|
||||
"not_configured": "Ikke konfigurert",
|
||||
"loaded_from": "Lastet fra {variable}",
|
||||
"set_below": "Angi {variable} nedenfor",
|
||||
"private_repositories_prefix": "Private repositories leses med serverens miljøvariabel",
|
||||
"private_repositories_or": "eller modulens konfigurasjonsvariabel",
|
||||
"github_token_message": "Eksempel: github_pat_... med tilgang til de private repositories Release Manager ruller ut.",
|
||||
"github_token_placeholder": "La stå tomt for å beholde eksisterende token",
|
||||
"github_api_url_message": "Konfigurert i ReleaseManager.github_api_url. Bruk https://api.github.com med mindre GitHub Enterprise brukes.",
|
||||
"webhook_secret_message": "Valgfritt; la stå tomt for å beholde eksisterende hemmelighet.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemmelighet",
|
||||
"save": "Lagre innstillinger",
|
||||
"back_to_integrations": "Tilbake til integrasjoner",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Legg til GitHub-token",
|
||||
"github_token_description": "Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.",
|
||||
"configure_this_in": "Konfigurer dette i",
|
||||
"server_environment_variable": "Serverens miljøvariabel",
|
||||
"takes_precedence": "har forrang når den er satt.",
|
||||
"recommended_access": "Anbefalt tilgang",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.",
|
||||
"github_api_url_title": "Legg til GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Skriv inn en full HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-eksempel",
|
||||
"github_webhook_secret_title": "Legg til GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Lagre den delte secreten i",
|
||||
"review_title": "Gå gjennom GitHub-oppsett",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Mangler værdi"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen er ikke klar",
|
||||
"summary_prefix": "Kontoen din er tildelt",
|
||||
"summary_suffix": ", men kanalen mangler påkrevd release-konfigurasjon.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Sjekker igjen om {seconds}s",
|
||||
"refresh_error": "Release-status kunne ikke oppdateres. Neste automatiske sjekk prøver igjen.",
|
||||
"ignore": "Ignorer de neste 5 minuttene",
|
||||
"check_again": "Sjekk igjen",
|
||||
"logout": "Logg ut",
|
||||
"base_image": "Basis-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du er nå på {channel}",
|
||||
"summary_prefix": "Kontoen din er tildelt release-kanalen",
|
||||
"summary_suffix": "Denne enheten husker at du har sett denne meldingen.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"assigned_channel": "Tildelt kanal",
|
||||
"current_app_image": "Nåværende app-image",
|
||||
"current_api": "Nåværende API",
|
||||
"base_image": "Basis-image",
|
||||
"continue": "Fortsett"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Velg hvilken tildelt release-kanal denne enheten skal bruke.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Ikke klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Bruk lokal frontend"
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nei",
|
||||
"off": "av"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Rediger",
|
||||
"rollback": "Rull tilbake",
|
||||
"update": "Opdater",
|
||||
"create": "Opprett",
|
||||
"clear": "Tøm",
|
||||
"assign": "Tildel",
|
||||
"remove": "Fjern",
|
||||
"test_access": "Test tilgang",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promoter",
|
||||
"enable": "Aktiver",
|
||||
"search": "Søk",
|
||||
"save_target": "Lagre mål",
|
||||
"delete": "Slett",
|
||||
"back": "Tilbake",
|
||||
"next": "Neste"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Handlinger",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrollert",
|
||||
"subject": "Emne",
|
||||
"reason": "Årsag",
|
||||
"expires": "Utløper",
|
||||
"deployment": "Deployment",
|
||||
"source": "Kilde",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "fullt redigert"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "bruker",
|
||||
"subuser": "medarbeider",
|
||||
"customer": "kunde",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "feil",
|
||||
"warning": "advarsel",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployet",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktivert",
|
||||
"queued": "i kø",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "ikke konfigurert",
|
||||
"warning": "advarsel",
|
||||
"failed": "feilet",
|
||||
"down": "nede",
|
||||
"error": "feil",
|
||||
"unknown": "ukjent"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Opprett og juster gradvise release-kanaler.",
|
||||
"rollout_percent": "{percent}% udrulning",
|
||||
"already_configured": "Allerede konfigurert",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Navn",
|
||||
"name_message": "Vises til operatører når de gjennomgår en kanal.",
|
||||
"name_placeholder": "Navn",
|
||||
"rollout": "Udrulning",
|
||||
"rollout_message": "0-100 prosent av ikke-tildelt trafikk.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchende release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchende API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata er sikrere til brede kanaler.",
|
||||
"retention_days": "Oppbevaringsdager",
|
||||
"retention_days_message": "1-365 dage.",
|
||||
"enabled": "Aktivert",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktivert",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tildelinger",
|
||||
"subtitle": "Fest brukere, medarbeidere eller kunder til release-kanaler.",
|
||||
"subject": "Emne",
|
||||
"subject_message": "Søk etter brukere, medarbeidere eller kunder, eller skriv et manuelt emne som user:42.",
|
||||
"subject_placeholder": "Søk eller skriv emne",
|
||||
"subject_empty": "Ingen emner funnet",
|
||||
"group_users": "Brukere",
|
||||
"group_subusers": "Medarbeidere",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Bruker #{id}",
|
||||
"manual_subuser": "Medarbeider #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Bruk inntastet verdi {subject}",
|
||||
"subject_type": "Emnetype",
|
||||
"subject_type_message": "Vælg identitetstypen, der skal fastgøres.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Søk på kundenummer eller navn, og velg deretter nøyaktig kunde.",
|
||||
"customer_placeholder": "Søk kunde",
|
||||
"subject_id": "Emne-ID",
|
||||
"subject_id_message": "Eksempel: bruker-id 42",
|
||||
"subject_id_placeholder": "Emne-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Festede emner hopper over prosentutrullingen.",
|
||||
"reason": "Årsag",
|
||||
"reason_message": "Eksempel: canary-validering for kundesupport.",
|
||||
"reason_placeholder": "Årsag",
|
||||
"expires": "Utløper",
|
||||
"expires_message": "Lad feltet være tomt for ingen automatisk udløb."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Start, promoter og inspiser release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Vælg et gemt mål, eller behold manuelle felter redigerbare.",
|
||||
"select_target_or_manual": "Velg mål eller manuelt",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-valg",
|
||||
"commit_selection_message": "Seneste slås op som branchens head med den konfigurerede GitHub-token.",
|
||||
"latest_from_branch": "Siste fra branch",
|
||||
"specific_commit": "Spesifikk commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versjonsetikett",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktiver målrettet capture og gennemgå fejltimelines trin for trin.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Eksempel: bruker-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalavgrensning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalavgrensning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Utløper",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Alvorlighet",
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Velg repository",
|
||||
"add_health_url": "legg til health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigurert; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åpne GitHub token-innstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domene",
|
||||
"ssl_domain_message": "Må være et DNS-domene som routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domene",
|
||||
"https_domain_for_coolify": "Domene kontrollert av load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nå",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opprett manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub og Coolify",
|
||||
"subtitle": "Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.",
|
||||
"choose_repository": "Velg repository",
|
||||
"add_health_url": "legg til health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigurert; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Åpne GitHub token-innstillinger",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domene",
|
||||
"ssl_domain_message": "Må være et DNS-domene som routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domene",
|
||||
"https_domain_for_coolify": "Domene kontrollert av load balanceren",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nå",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Opprett manglende service",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvise API- og Front-End-utgivelser",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standard produksjonskanal.",
|
||||
"canary": "Tidlig produksjonsvalideringskanal.",
|
||||
"internal": "Intern kanal for ansatte og superbrukervalidering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release Manager-handlinger sendes til denne API-en. Bruk produksjons-API-en med mindre du tester en staging-backend.",
|
||||
"example": "Eksempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endepunkt",
|
||||
"endpoint_message": "Endre dette bare når Release Manager-endepunkter er tilgjengelige på mål-API-en.",
|
||||
"endpoint_aria": "Release Manager kontroll-API URL",
|
||||
"use_tooltip": "Last release-data fra denne API-en",
|
||||
"use": "Bruk",
|
||||
"reset_tooltip": "Gå tilbake til standard kontroll-API",
|
||||
"reset": "Tilbakestill",
|
||||
"known_endpoints": "Kjente kontroll-API-endepunkter"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Oversikt",
|
||||
"description": "Kanalhelse, oppsettsfremdrift og siste release-status."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Opprett stabile, canary- og målrettede kanaler med rollout-grenser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tildelinger",
|
||||
"description": "Knytt brukere, underbrukere eller kunder til en bestemt release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Utrullinger",
|
||||
"description": "Start utrullinger og promoter vellykkede bygg."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktiver målrettet innsamling og søk i release-tidslinjehendelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrasjoner",
|
||||
"description": "Koble GitHub-repositories, branches og Coolify-tjenester."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Innstillinger",
|
||||
"description": "Konfigurer Release Managers GitHub-tilgang og webhook-innstillinger."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Laster Release Manager-data...",
|
||||
"refreshing_summary": "Oppdaterer Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments og servicehelse lastes.",
|
||||
"channels": "Laster release-kanaler...",
|
||||
"channels_detail": "Kanalvisninger og release-avhengigheter lastes.",
|
||||
"assignments": "Laster release-tildelinger...",
|
||||
"deployments": "Laster release-deployments...",
|
||||
"operations": "Laster release-operasjoner...",
|
||||
"data_services": "Laster release-datatjenester...",
|
||||
"integrations": "Laster release-integrasjoner...",
|
||||
"settings": "Laster Release Manager-innstillinger...",
|
||||
"github_repositories": "Laster GitHub-repositories...",
|
||||
"timeline_sessions": "Laster release-tidslinje-sesjoner...",
|
||||
"timeline_events": "Laster release-tidslinjehendelser...",
|
||||
"refreshing_timeline": "Oppdaterer release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- og Coolify-mål",
|
||||
"assignments": "Pilottildelinger",
|
||||
"deployments": "Første utrulling",
|
||||
"replay": "Replay-innsamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Utrullinger",
|
||||
"timeline_events": "Tidslinjehendelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Oversikt",
|
||||
"subtitle": "Aktuell kanalhelse, release-aktivitet og modulstatus.",
|
||||
"guided_setup": "Veiledet oppsett",
|
||||
"next_step": "Neste: {step}",
|
||||
"ready": "Release Manager er klar for daglig drift.",
|
||||
"add_suggested_channel": "Legg til foreslått kanal",
|
||||
"module_health_empty": "Modul-health snapshots vises når probes er registrert."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-innstillinger",
|
||||
"subtitle": "Konfigurer GitHub-tokenet som brukes for private repositories og branch-oppslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemmelighet",
|
||||
"github_webhook_secret": "GitHub webhook-hemmelighet",
|
||||
"configured": "Konfigurert",
|
||||
"not_configured": "Ikke konfigurert",
|
||||
"loaded_from": "Lastet fra {variable}",
|
||||
"set_below": "Angi {variable} nedenfor",
|
||||
"private_repositories_prefix": "Private repositories leses med serverens miljøvariabel",
|
||||
"private_repositories_or": "eller modulens konfigurasjonsvariabel",
|
||||
"github_token_message": "Eksempel: github_pat_... med tilgang til de private repositories Release Manager ruller ut.",
|
||||
"github_token_placeholder": "La stå tomt for å beholde eksisterende token",
|
||||
"github_api_url_message": "Konfigurert i ReleaseManager.github_api_url. Bruk https://api.github.com med mindre GitHub Enterprise brukes.",
|
||||
"webhook_secret_message": "Valgfritt; la stå tomt for å beholde eksisterende hemmelighet.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemmelighet",
|
||||
"save": "Lagre innstillinger",
|
||||
"back_to_integrations": "Tilbake til integrasjoner",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Legg til GitHub-token",
|
||||
"github_token_description": "Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.",
|
||||
"configure_this_in": "Konfigurer dette i",
|
||||
"server_environment_variable": "Serverens miljøvariabel",
|
||||
"takes_precedence": "har forrang når den er satt.",
|
||||
"recommended_access": "Anbefalt tilgang",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.",
|
||||
"github_api_url_title": "Legg til GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Skriv inn en full HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-eksempel",
|
||||
"github_webhook_secret_title": "Legg til GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Lagre den delte secreten i",
|
||||
"review_title": "Gå gjennom GitHub-oppsett",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Mangler værdi"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen er ikke klar",
|
||||
"summary_prefix": "Kontoen din er tildelt",
|
||||
"summary_suffix": ", men kanalen mangler påkrevd release-konfigurasjon.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Sjekker igjen om {seconds}s",
|
||||
"refresh_error": "Release-status kunne ikke oppdateres. Neste automatiske sjekk prøver igjen.",
|
||||
"ignore": "Ignorer de neste 5 minuttene",
|
||||
"check_again": "Sjekk igjen",
|
||||
"logout": "Logg ut",
|
||||
"base_image": "Basis-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du er nå på {channel}",
|
||||
"summary_prefix": "Kontoen din er tildelt release-kanalen",
|
||||
"summary_suffix": "Denne enheten husker at du har sett denne meldingen.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"assigned_channel": "Tildelt kanal",
|
||||
"current_app_image": "Nåværende app-image",
|
||||
"current_api": "Nåværende API",
|
||||
"base_image": "Basis-image",
|
||||
"continue": "Fortsett"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Velg hvilken tildelt release-kanal denne enheten skal bruke.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Ikke klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-versjon",
|
||||
"api_version": "API-versjon",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Bruk lokal frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nei",
|
||||
"off": "av"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Rediger",
|
||||
"rollback": "Rull tilbake",
|
||||
"update": "Opdater",
|
||||
"create": "Opprett",
|
||||
"clear": "Tøm",
|
||||
"assign": "Tildel",
|
||||
"remove": "Fjern",
|
||||
"test_access": "Test tilgang",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promoter",
|
||||
"enable": "Aktiver",
|
||||
"search": "Søk",
|
||||
"save_target": "Lagre mål",
|
||||
"delete": "Slett",
|
||||
"back": "Tilbake",
|
||||
"next": "Neste",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Handlinger",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrollert",
|
||||
"subject": "Emne",
|
||||
"reason": "Årsag",
|
||||
"expires": "Utløper",
|
||||
"deployment": "Deployment",
|
||||
"source": "Kilde",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "fullt redigert"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "bruker",
|
||||
"subuser": "medarbeider",
|
||||
"customer": "kunde",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "feil",
|
||||
"warning": "advarsel",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployet",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktivert",
|
||||
"queued": "i kø",
|
||||
"deploying": "deploying",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "ikke konfigurert",
|
||||
"warning": "advarsel",
|
||||
"failed": "feilet",
|
||||
"down": "nede",
|
||||
"error": "feil",
|
||||
"unknown": "ukjent"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Opprett og juster gradvise release-kanaler.",
|
||||
"rollout_percent": "{percent}% udrulning",
|
||||
"already_configured": "Allerede konfigurert",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Navn",
|
||||
"name_message": "Vises til operatører når de gjennomgår en kanal.",
|
||||
"name_placeholder": "Navn",
|
||||
"rollout": "Udrulning",
|
||||
"rollout_message": "0-100 prosent av ikke-tildelt trafikk.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchende release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchende API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata er sikrere til brede kanaler.",
|
||||
"retention_days": "Oppbevaringsdager",
|
||||
"retention_days_message": "1-365 dage.",
|
||||
"enabled": "Aktivert",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktivert",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tildelinger",
|
||||
"subtitle": "Fest brukere, medarbeidere eller kunder til release-kanaler.",
|
||||
"subject": "Emne",
|
||||
"subject_message": "Søk etter brukere, medarbeidere eller kunder, eller skriv et manuelt emne som user:42.",
|
||||
"subject_placeholder": "Søk eller skriv emne",
|
||||
"subject_empty": "Ingen emner funnet",
|
||||
"group_users": "Brukere",
|
||||
"group_subusers": "Medarbeidere",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Bruker #{id}",
|
||||
"manual_subuser": "Medarbeider #{id}",
|
||||
"manual_customer": "Kunde #{id}",
|
||||
"manual_description": "Bruk inntastet verdi {subject}",
|
||||
"subject_type": "Emnetype",
|
||||
"subject_type_message": "Vælg identitetstypen, der skal fastgøres.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Søk på kundenummer eller navn, og velg deretter nøyaktig kunde.",
|
||||
"customer_placeholder": "Søk kunde",
|
||||
"subject_id": "Emne-ID",
|
||||
"subject_id_message": "Eksempel: bruker-id 42",
|
||||
"subject_id_placeholder": "Emne-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Festede emner hopper over prosentutrullingen.",
|
||||
"reason": "Årsag",
|
||||
"reason_message": "Eksempel: canary-validering for kundesupport.",
|
||||
"reason_placeholder": "Årsag",
|
||||
"expires": "Utløper",
|
||||
"expires_message": "Lad feltet være tomt for ingen automatisk udløb."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Start, promoter og inspiser release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Vælg et gemt mål, eller behold manuelle felter redigerbare.",
|
||||
"select_target_or_manual": "Velg mål eller manuelt",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-valg",
|
||||
"commit_selection_message": "Seneste slås op som branchens head med den konfigurerede GitHub-token.",
|
||||
"latest_from_branch": "Siste fra branch",
|
||||
"specific_commit": "Spesifikk commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versjonsetikett",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionslabel",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktiver målrettet capture og gennemgå fejltimelines trin for trin.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Eksempel: bruker-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalavgrensning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalavgrensning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Utløper",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Alvorlighet",
|
||||
"any_severity": "Alle alvorligheder",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compat": {
|
||||
"admin": {
|
||||
"pos": {
|
||||
"settings_wheel": {
|
||||
"accept_self_serve_wash": "Godkänn självbetjäningstvätt",
|
||||
"accept_self_serve_wash_confirm": "Flytta detta utkast till kund #{customerNumber} med självbetjäningsdetaljerna?",
|
||||
"accept_self_serve_wash_success": "Självbetjäningstvätten godkändes.",
|
||||
"email_notifications_section": "E-postaviseringar",
|
||||
"resend_booking_completion_confirmation": "(Re)send booking completion confirmation",
|
||||
"resend_booking_completion_confirmation_error": "The booking completion confirmation could not be sent",
|
||||
"resend_booking_completion_confirmation_success": "The booking completion confirmation has been sent",
|
||||
"resend_booking_confirmation": "(Re)send booking confirmation",
|
||||
"resend_booking_confirmation_error": "The booking confirmation could not be sent",
|
||||
"resend_booking_confirmation_success": "The booking confirmation has been sent",
|
||||
"resend_wash_certificate": "(Re)send wash certificate",
|
||||
"resend_wash_certificate_error": "The wash certificate could not be sent",
|
||||
"resend_wash_certificate_success": "The wash certificate has been sent",
|
||||
"self_serve_customer": "Kund",
|
||||
"self_serve_driver": "Förare",
|
||||
"self_serve_elapsed": "Tid",
|
||||
"self_serve_wash_attachment": "Självbetjäningstvätt",
|
||||
"self_serve_wash_attachment_for_customer": "Självbetjäningstvätt för kund #{customerNumber}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,490 +298,6 @@
|
||||
"subtitle": "@.capitalize:{'terms.glossary.konfiguration'} @:{'terms.glossary.af'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.integrationen'}",
|
||||
"title": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.konfiguration'}",
|
||||
"username_desc": "Användarnamnet @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.api'}-@:{'terms.glossary.anslutningen'}."
|
||||
},
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvisa API- och Front-End-versioner",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standardkanal för produktion.",
|
||||
"canary": "Tidig produktionsvalideringskanal.",
|
||||
"internal": "Intern kanal för personal och superanvändarvalidering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release Manager-åtgärder skickas till detta API. Använd produktions-API:t om du inte testar en staging-backend.",
|
||||
"example": "Exempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endpoint",
|
||||
"endpoint_message": "Ändra detta endast när Release Manager-endpoints finns på mål-API:t.",
|
||||
"endpoint_aria": "Release Manager kontroll-API URL",
|
||||
"use_tooltip": "Läs in release-data från detta API",
|
||||
"use": "Använd",
|
||||
"reset_tooltip": "Gå tillbaka till standard kontroll-API",
|
||||
"reset": "Återställ",
|
||||
"known_endpoints": "Kända kontroll-API-endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Översikt",
|
||||
"description": "Kanalhälsa, installationsstatus och senaste release-läge."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Skapa stabila, canary- och riktade kanaler med rollout-gränser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tilldelningar",
|
||||
"description": "Koppla användare, underanvändare eller kunder till en specifik release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Utrullningar",
|
||||
"description": "Starta utrullningar och promovera lyckade byggen."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktivera riktad insamling och sök i release-tidslinjehändelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationer",
|
||||
"description": "Anslut GitHub-repositories, branches och Coolify-tjänster."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Inställningar",
|
||||
"description": "Konfigurera Release Managers GitHub-åtkomst och webhook-inställningar."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Laddar Release Manager-data...",
|
||||
"refreshing_summary": "Uppdaterar Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments och servicehalsa laddas.",
|
||||
"channels": "Laddar release-kanaler...",
|
||||
"channels_detail": "Kanalvyer och release-beroenden laddas.",
|
||||
"assignments": "Laddar release-tilldelningar...",
|
||||
"deployments": "Laddar release-deployments...",
|
||||
"operations": "Laddar release-operationer...",
|
||||
"data_services": "Laddar release-datatjanster...",
|
||||
"integrations": "Laddar release-integrationer...",
|
||||
"settings": "Laddar Release Manager-installningar...",
|
||||
"github_repositories": "Laddar GitHub-repositories...",
|
||||
"timeline_sessions": "Laddar release-tidslinjesessioner...",
|
||||
"timeline_events": "Laddar release-tidslinjehandelser...",
|
||||
"refreshing_timeline": "Uppdaterar release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- och Coolify-mål",
|
||||
"assignments": "Pilottilldelningar",
|
||||
"deployments": "Första utrullningen",
|
||||
"replay": "Replay-insamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Utrullningar",
|
||||
"timeline_events": "Tidslinjehändelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Översikt",
|
||||
"subtitle": "Aktuell kanalhälsa, release-aktivitet och modulstatus.",
|
||||
"guided_setup": "Guidad installation",
|
||||
"next_step": "Nästa: {step}",
|
||||
"ready": "Release Manager är klar för daglig drift.",
|
||||
"add_suggested_channel": "Lägg till föreslagen kanal",
|
||||
"module_health_empty": "Modulhälsosnapshots visas när probes har registrerats."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-inställningar",
|
||||
"subtitle": "Konfigurera GitHub-token som används för privata repositories och branch-uppslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemlighet",
|
||||
"github_webhook_secret": "GitHub webhook-hemlighet",
|
||||
"configured": "Konfigurerad",
|
||||
"not_configured": "Inte konfigurerad",
|
||||
"loaded_from": "Inläst från {variable}",
|
||||
"set_below": "Ange {variable} nedan",
|
||||
"private_repositories_prefix": "Privata repositories läses med serverns miljövariabel",
|
||||
"private_repositories_or": "eller modulens konfigurationsvariabel",
|
||||
"github_token_message": "Exempel: github_pat_... med åtkomst till de privata repositories som Release Manager distribuerar.",
|
||||
"github_token_placeholder": "Lämna tomt för att behålla befintlig token",
|
||||
"github_api_url_message": "Konfigurerad i ReleaseManager.github_api_url. Använd https://api.github.com om du inte använder GitHub Enterprise.",
|
||||
"webhook_secret_message": "Valfritt; lämna tomt för att behålla befintlig hemlighet.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemlighet",
|
||||
"save": "Spara inställningar",
|
||||
"back_to_integrations": "Tillbaka till integrationer",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Lägg till GitHub-token",
|
||||
"github_token_description": "Release Manager använder denna token för att lista privata repositories, branches och commits innan ett deployment-mål sparas eller testas.",
|
||||
"configure_this_in": "Konfigurera detta i",
|
||||
"server_environment_variable": "Serverns miljövariabel",
|
||||
"takes_precedence": "har företräde när den är satt.",
|
||||
"recommended_access": "Rekommenderad åtkomst",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-åtkomst till varje release-repository.",
|
||||
"github_api_url_title": "Lägg till GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Ange en fullständig HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-exempel",
|
||||
"github_webhook_secret_title": "Lägg till GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Spara den delade secret i",
|
||||
"review_title": "Granska GitHub-konfiguration",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Saknar värde"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen är inte klar",
|
||||
"summary_prefix": "Ditt konto är tilldelat",
|
||||
"summary_suffix": ", men kanalen saknar obligatorisk release-konfiguration.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Kontrollerar igen om {seconds}s",
|
||||
"refresh_error": "Release-status kunde inte uppdateras. Nästa automatiska kontroll försöker igen.",
|
||||
"ignore": "Ignorera de kommande 5 minuterna",
|
||||
"check_again": "Kontrollera igen",
|
||||
"logout": "Logga ut",
|
||||
"base_image": "Bas-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du är nu på {channel}",
|
||||
"summary_prefix": "Ditt konto har tilldelats release-kanalen",
|
||||
"summary_suffix": "Den här enheten kommer ihåg att du har sett detta meddelande.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"assigned_channel": "Tilldelad kanal",
|
||||
"current_app_image": "Nuvarande app-image",
|
||||
"current_api": "Nuvarande API",
|
||||
"base_image": "Bas-image",
|
||||
"continue": "Fortsätt"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Välj vilken tilldelad release-kanal den här enheten ska använda.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Inte klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Använd lokal frontend"
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nej",
|
||||
"off": "av"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Redigera",
|
||||
"rollback": "Rulla tillbaka",
|
||||
"update": "Uppdatera",
|
||||
"create": "Skapa",
|
||||
"clear": "Rensa",
|
||||
"assign": "Tilldela",
|
||||
"remove": "Ta bort",
|
||||
"test_access": "Testa åtkomst",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promota",
|
||||
"enable": "Aktivera",
|
||||
"search": "Sök",
|
||||
"save_target": "Spara mål",
|
||||
"delete": "Radera",
|
||||
"back": "Tillbaka",
|
||||
"next": "Nästa"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Åtgärder",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrollerad",
|
||||
"subject": "Emne",
|
||||
"reason": "Orsak",
|
||||
"expires": "Upphör",
|
||||
"deployment": "Deployment",
|
||||
"source": "Källa",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "helt redigerad"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "användare",
|
||||
"subuser": "medarbetare",
|
||||
"customer": "kund",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "fel",
|
||||
"warning": "varning",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployad",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiverad",
|
||||
"queued": "i kö",
|
||||
"deploying": "deployar",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "inte konfigurerad",
|
||||
"warning": "varning",
|
||||
"failed": "misslyckad",
|
||||
"down": "nere",
|
||||
"error": "fel",
|
||||
"unknown": "okänd"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Skapa och justera gradvisa release-kanaler.",
|
||||
"rollout_percent": "{percent}% utrullning",
|
||||
"already_configured": "Redan konfigurerad",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Namn",
|
||||
"name_message": "Visas för operatörer när de granskar en kanal.",
|
||||
"name_placeholder": "Namn",
|
||||
"rollout": "Utrullning",
|
||||
"rollout_message": "0-100 procent av otilldelad trafik.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchande release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchande API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata är säkrare för breda kanaler.",
|
||||
"retention_days": "Lagringsdagar",
|
||||
"retention_days_message": "1-365 dagar.",
|
||||
"enabled": "Aktiverad",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiverad",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tilldelningar",
|
||||
"subtitle": "Fäst användare, medarbetare eller kunder till release-kanaler.",
|
||||
"subject": "Ämne",
|
||||
"subject_message": "Sök efter användare, medarbetare eller kunder, eller skriv ett manuellt ämne som user:42.",
|
||||
"subject_placeholder": "Sök eller skriv ämne",
|
||||
"subject_empty": "Inga ämnen hittades",
|
||||
"group_users": "Användare",
|
||||
"group_subusers": "Medarbetare",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Användare #{id}",
|
||||
"manual_subuser": "Medarbetare #{id}",
|
||||
"manual_customer": "Kund #{id}",
|
||||
"manual_description": "Använd inmatat värde {subject}",
|
||||
"subject_type": "Ämnestyp",
|
||||
"subject_type_message": "Välj identitetstypen som ska fästas.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Sök på kundnummer eller namn och välj sedan exakt kund.",
|
||||
"customer_placeholder": "Sök kund",
|
||||
"subject_id": "Ämnes-ID",
|
||||
"subject_id_message": "Exempel: användar-id 42",
|
||||
"subject_id_placeholder": "Ämnes-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Fästa ämnen hoppar över procentutrullningen.",
|
||||
"reason": "Orsak",
|
||||
"reason_message": "Exempel: canary-validering för kundsupport.",
|
||||
"reason_placeholder": "Orsak",
|
||||
"expires": "Upphör",
|
||||
"expires_message": "Lämna tomt för ingen automatisk upphörning."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Starta, promota och inspektera release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Välj ett sparat mål eller behåll manuella fält redigerbara.",
|
||||
"select_target_or_manual": "Vælg mål eller manuel",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-val",
|
||||
"commit_selection_message": "Senaste slås upp som branchens head med konfigurerad GitHub-token.",
|
||||
"latest_from_branch": "Senaste från branch",
|
||||
"specific_commit": "Specifik commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionsetikett",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionsetikett",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktivera riktad capture och gå igenom feltimelines steg för steg.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Exempel: användar-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalavgränsning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalavgränsning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Upphör",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Allvarlighetsgrad",
|
||||
"any_severity": "Alla allvarlighetsgrader",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"integrations": {
|
||||
"title": "GitHub och Coolify",
|
||||
"subtitle": "Koppla GitHub-repositories och branches till kanalspecifika Coolify-tjänster.",
|
||||
"choose_repository": "Välj repository",
|
||||
"add_health_url": "lägg till health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Öppna GitHub token-inställningar",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domän",
|
||||
"ssl_domain_message": "Måste vara en DNS-domän som routas till Coolify load balancern. Exempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domän",
|
||||
"https_domain_for_coolify": "Domän som kontrolleras av load balancern",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Skapa saknad tjänst",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"integrations": {
|
||||
"title": "GitHub och Coolify",
|
||||
"subtitle": "Koppla GitHub-repositories och branches till kanalspecifika Coolify-tjänster.",
|
||||
"choose_repository": "Välj repository",
|
||||
"add_health_url": "lägg till health-URL",
|
||||
"github_token_not_configured": "GitHub-token er ikke konfigureret; private repositories kan ikke vises.",
|
||||
"open_github_token_settings": "Öppna GitHub token-inställningar",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/backend-php",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: release/canary",
|
||||
"branch_placeholder": "branch",
|
||||
"latest_prefix": "Seneste: {commit}",
|
||||
"coolify_instance": "Coolify-instans",
|
||||
"coolify_instance_message": "Lad feltet være tomt for manuelle deployment-poster.",
|
||||
"no_coolify_instance": "Ingen Coolify-instans",
|
||||
"coolify_instance_placeholder": "Coolify-instans-id",
|
||||
"coolify_service_uuid": "Coolify service-UUID",
|
||||
"coolify_service_uuid_message": "Vælg en eksisterende service eller indsæt en UUID.",
|
||||
"coolify_service_uuid_placeholder": "Coolify service-UUID",
|
||||
"health_url": "Health-URL",
|
||||
"health_url_message": "Eksempel: https://api-canary.example.test/ping",
|
||||
"health_url_placeholder": "Health-URL",
|
||||
"ssl_domain": "Load balancer-domän",
|
||||
"ssl_domain_message": "Måste vara en DNS-domän som routas till Coolify load balancern. Exempel: api-v2.truckwash.io",
|
||||
"ssl_domain_placeholder": "Load balancer-domän",
|
||||
"https_domain_for_coolify": "Domän som kontrolleras av load balancern",
|
||||
"endpoint_mode": "Endpoint mode",
|
||||
"endpoint_mode_message": "Use automatic gateway routing or manually override the public host and port.",
|
||||
"endpoint_mode_auto": "Auto",
|
||||
"endpoint_mode_manual": "Manual",
|
||||
"manual_endpoint_host": "Manual host",
|
||||
"manual_endpoint_host_message": "Public host shown in release previews when manual mode is selected.",
|
||||
"manual_endpoint_host_placeholder": "api-v2.truckwash.io",
|
||||
"manual_endpoint_port": "Manual public port",
|
||||
"manual_endpoint_port_message": "Optional public port from 1 to 65535.",
|
||||
"app_port": "App port",
|
||||
"app_port_message": "Internal container port exposed to Coolify routing.",
|
||||
"auto_gateway_endpoint": "Automatic gateway endpoint",
|
||||
"pending_automatic_endpoint": "Automatic endpoint resolution pending",
|
||||
"auto_deploy": "Auto deploy",
|
||||
"auto_deploy_tooltip": "Opret automatisk deployments, når dette mål ændres.",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"coolify_ssl_tooltip": "Bed Coolify om at oprette HTTPS for det konfigurerede domæne.",
|
||||
"deploy_now": "Deploy nu",
|
||||
"deploy_now_tooltip": "Start en deployment straks efter målet gemmes.",
|
||||
"create_missing_service": "Skapa saknad tjänst",
|
||||
"create_missing_service_tooltip": "Tillad Release Manager at oprette en manglende Coolify-service.",
|
||||
"test_access_tooltip": "Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"compat": {
|
||||
"configuration": {
|
||||
"release_manager": {
|
||||
"title": "Release Manager",
|
||||
"subtitle": "Gradvisa API- och Front-End-versioner",
|
||||
"channel_names": {
|
||||
"stable": "Stabil",
|
||||
"canary": "Canary",
|
||||
"internal": "Intern"
|
||||
},
|
||||
"channel_descriptions": {
|
||||
"stable": "Standardkanal för produktion.",
|
||||
"canary": "Tidig produktionsvalideringskanal.",
|
||||
"internal": "Intern kanal för personal och superanvändarvalidering."
|
||||
},
|
||||
"control_api": {
|
||||
"title": "Kontroll-API",
|
||||
"tooltip": "Release Manager-åtgärder skickas till detta API. Använd produktions-API:t om du inte testar en staging-backend.",
|
||||
"example": "Exempel: https://api.truckwash.io:4433",
|
||||
"endpoint_label": "API-endpoint",
|
||||
"endpoint_message": "Ändra detta endast när Release Manager-endpoints finns på mål-API:t.",
|
||||
"endpoint_aria": "Release Manager kontroll-API URL",
|
||||
"use_tooltip": "Läs in release-data från detta API",
|
||||
"use": "Använd",
|
||||
"reset_tooltip": "Gå tillbaka till standard kontroll-API",
|
||||
"reset": "Återställ",
|
||||
"known_endpoints": "Kända kontroll-API-endpoints"
|
||||
},
|
||||
"tabs": {
|
||||
"overview": {
|
||||
"label": "Översikt",
|
||||
"description": "Kanalhälsa, installationsstatus och senaste release-läge."
|
||||
},
|
||||
"channels": {
|
||||
"label": "Kanaler",
|
||||
"description": "Skapa stabila, canary- och riktade kanaler med rollout-gränser."
|
||||
},
|
||||
"assignments": {
|
||||
"label": "Tilldelningar",
|
||||
"description": "Koppla användare, underanvändare eller kunder till en specifik release-kanal."
|
||||
},
|
||||
"deployments": {
|
||||
"label": "Utrullningar",
|
||||
"description": "Starta utrullningar och promovera lyckade byggen."
|
||||
},
|
||||
"replay": {
|
||||
"label": "Replay",
|
||||
"description": "Aktivera riktad insamling och sök i release-tidslinjehändelser."
|
||||
},
|
||||
"integrations": {
|
||||
"label": "Integrationer",
|
||||
"description": "Anslut GitHub-repositories, branches och Coolify-tjänster."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Inställningar",
|
||||
"description": "Konfigurera Release Managers GitHub-åtkomst och webhook-inställningar."
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"summary": "Laddar Release Manager-data...",
|
||||
"refreshing_summary": "Uppdaterar Release Manager-data...",
|
||||
"summary_detail": "Release-status, kanaler, deployments och servicehalsa laddas.",
|
||||
"channels": "Laddar release-kanaler...",
|
||||
"channels_detail": "Kanalvyer och release-beroenden laddas.",
|
||||
"assignments": "Laddar release-tilldelningar...",
|
||||
"deployments": "Laddar release-deployments...",
|
||||
"operations": "Laddar release-operationer...",
|
||||
"data_services": "Laddar release-datatjanster...",
|
||||
"integrations": "Laddar release-integrationer...",
|
||||
"settings": "Laddar Release Manager-installningar...",
|
||||
"github_repositories": "Laddar GitHub-repositories...",
|
||||
"timeline_sessions": "Laddar release-tidslinjesessioner...",
|
||||
"timeline_events": "Laddar release-tidslinjehandelser...",
|
||||
"refreshing_timeline": "Uppdaterar release-tidslinje..."
|
||||
},
|
||||
"setup": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "GitHub- och Coolify-mål",
|
||||
"assignments": "Pilottilldelningar",
|
||||
"deployments": "Första utrullningen",
|
||||
"replay": "Replay-insamling"
|
||||
},
|
||||
"stats": {
|
||||
"channels": "Kanaler",
|
||||
"targets": "Mål",
|
||||
"deployments": "Utrullningar",
|
||||
"timeline_events": "Tidslinjehändelser"
|
||||
},
|
||||
"overview": {
|
||||
"title": "Översikt",
|
||||
"subtitle": "Aktuell kanalhälsa, release-aktivitet och modulstatus.",
|
||||
"guided_setup": "Guidad installation",
|
||||
"next_step": "Nästa: {step}",
|
||||
"ready": "Release Manager är klar för daglig drift.",
|
||||
"add_suggested_channel": "Lägg till föreslagen kanal",
|
||||
"module_health_empty": "Modulhälsosnapshots visas när probes har registrerats."
|
||||
},
|
||||
"settings": {
|
||||
"title": "Release Manager-inställningar",
|
||||
"subtitle": "Konfigurera GitHub-token som används för privata repositories och branch-uppslag.",
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"webhook_secret": "Webhook-hemlighet",
|
||||
"github_webhook_secret": "GitHub webhook-hemlighet",
|
||||
"configured": "Konfigurerad",
|
||||
"not_configured": "Inte konfigurerad",
|
||||
"loaded_from": "Inläst från {variable}",
|
||||
"set_below": "Ange {variable} nedan",
|
||||
"private_repositories_prefix": "Privata repositories läses med serverns miljövariabel",
|
||||
"private_repositories_or": "eller modulens konfigurationsvariabel",
|
||||
"github_token_message": "Exempel: github_pat_... med åtkomst till de privata repositories som Release Manager distribuerar.",
|
||||
"github_token_placeholder": "Lämna tomt för att behålla befintlig token",
|
||||
"github_api_url_message": "Konfigurerad i ReleaseManager.github_api_url. Använd https://api.github.com om du inte använder GitHub Enterprise.",
|
||||
"webhook_secret_message": "Valfritt; lämna tomt för att behålla befintlig hemlighet.",
|
||||
"webhook_secret_placeholder": "Webhook HMAC-hemlighet",
|
||||
"save": "Spara inställningar",
|
||||
"back_to_integrations": "Tillbaka till integrationer",
|
||||
"guide": {
|
||||
"steps": {
|
||||
"github_token": "GitHub-token",
|
||||
"github_api_url": "GitHub API-URL",
|
||||
"github_webhook_secret": "GitHub webhook secret",
|
||||
"review": "Gennemgang"
|
||||
},
|
||||
"github_token_title": "Lägg till GitHub-token",
|
||||
"github_token_description": "Release Manager använder denna token för att lista privata repositories, branches och commits innan ett deployment-mål sparas eller testas.",
|
||||
"configure_this_in": "Konfigurera detta i",
|
||||
"server_environment_variable": "Serverns miljövariabel",
|
||||
"takes_precedence": "har företräde när den är satt.",
|
||||
"recommended_access": "Rekommenderad åtkomst",
|
||||
"recommended_access_description": "Fine-grained GitHub-token med Contents: read-åtkomst till varje release-repository.",
|
||||
"github_api_url_title": "Lägg till GitHub API-URL",
|
||||
"github_api_url_description": "Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.",
|
||||
"github_api_url_invalid": "Ange en fullständig HTTP- eller HTTPS-URL.",
|
||||
"github_cloud": "GitHub Cloud",
|
||||
"enterprise_example": "Enterprise-exempel",
|
||||
"github_webhook_secret_title": "Lägg till GitHub webhook secret",
|
||||
"github_webhook_secret_description": "Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.",
|
||||
"github_webhook_url": "GitHub webhook-URL:",
|
||||
"store_shared_secret_in": "Spara den delade secret i",
|
||||
"review_title": "Granska GitHub-konfiguration",
|
||||
"review_description": "Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.",
|
||||
"ready": "Klar",
|
||||
"needs_value": "Saknar värde"
|
||||
}
|
||||
},
|
||||
"channel_unavailable": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Release-kanalen är inte klar",
|
||||
"summary_prefix": "Ditt konto är tilldelat",
|
||||
"summary_suffix": ", men kanalen saknar obligatorisk release-konfiguration.",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"checking_again": "Kontrollerar igen om {seconds}s",
|
||||
"refresh_error": "Release-status kunde inte uppdateras. Nästa automatiska kontroll försöker igen.",
|
||||
"ignore": "Ignorera de kommande 5 minuterna",
|
||||
"check_again": "Kontrollera igen",
|
||||
"logout": "Logga ut",
|
||||
"base_image": "Bas-image"
|
||||
},
|
||||
"channel_switched": {
|
||||
"kicker": "Release Manager",
|
||||
"title": "Du är nu på {channel}",
|
||||
"summary_prefix": "Ditt konto har tilldelats release-kanalen",
|
||||
"summary_suffix": "Den här enheten kommer ihåg att du har sett detta meddelande.",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"assigned_channel": "Tilldelad kanal",
|
||||
"current_app_image": "Nuvarande app-image",
|
||||
"current_api": "Nuvarande API",
|
||||
"base_image": "Bas-image",
|
||||
"continue": "Fortsätt"
|
||||
},
|
||||
"channel_selector": {
|
||||
"title": "Release-kanal",
|
||||
"subtitle": "Välj vilken tilldelad release-kanal den här enheten ska använda.",
|
||||
"sidebar_title": "Release",
|
||||
"default": "Standard",
|
||||
"ready": "Klar",
|
||||
"unavailable": "Inte klar",
|
||||
"release_bundle": "Release-bundle",
|
||||
"frontend_version": "Frontend-version",
|
||||
"api_version": "API-version",
|
||||
"frontend_base_url": "Frontend-URL",
|
||||
"api_base_url": "API-URL",
|
||||
"frontend_entry": "Frontend-entry",
|
||||
"release_runtime": "Release-runtime",
|
||||
"bundle": "Bundle",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"use_local_frontend": "Använd lokal frontend",
|
||||
"switch_error": "Release channel could not be switched. The previous channel is still active."
|
||||
},
|
||||
"common": {
|
||||
"yes": "ja",
|
||||
"no": "nej",
|
||||
"off": "av"
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Redigera",
|
||||
"rollback": "Rulla tillbaka",
|
||||
"update": "Uppdatera",
|
||||
"create": "Skapa",
|
||||
"clear": "Rensa",
|
||||
"assign": "Tilldela",
|
||||
"remove": "Ta bort",
|
||||
"test_access": "Testa åtkomst",
|
||||
"deploy": "Deploy",
|
||||
"redeploy": "Redeploy",
|
||||
"promote": "Promota",
|
||||
"enable": "Aktivera",
|
||||
"search": "Sök",
|
||||
"save_target": "Spara mål",
|
||||
"delete": "Radera",
|
||||
"back": "Tillbaka",
|
||||
"next": "Nästa",
|
||||
"publish_release": "Publish release"
|
||||
},
|
||||
"tables": {
|
||||
"channel": "Kanal",
|
||||
"rollout": "Udrulning",
|
||||
"frontend": "Frontend",
|
||||
"api": "API",
|
||||
"replay": "Replay",
|
||||
"actions": "Åtgärder",
|
||||
"module": "Modul",
|
||||
"status": "Status",
|
||||
"checked": "Kontrollerad",
|
||||
"subject": "Emne",
|
||||
"reason": "Orsak",
|
||||
"expires": "Upphör",
|
||||
"deployment": "Deployment",
|
||||
"source": "Källa",
|
||||
"started": "Startet",
|
||||
"target": "Mål",
|
||||
"coolify": "Coolify",
|
||||
"auto": "Auto"
|
||||
},
|
||||
"values": {
|
||||
"app": {
|
||||
"frontend": "frontend",
|
||||
"api": "api"
|
||||
},
|
||||
"capture_level": {
|
||||
"metadata": "metadata",
|
||||
"full_redacted": "helt redigerad"
|
||||
},
|
||||
"subject_type": {
|
||||
"user": "användare",
|
||||
"subuser": "medarbetare",
|
||||
"customer": "kund",
|
||||
"channel": "kanal"
|
||||
},
|
||||
"severity": {
|
||||
"error": "fel",
|
||||
"warning": "varning",
|
||||
"info": "info"
|
||||
},
|
||||
"status": {
|
||||
"ok": "ok",
|
||||
"active": "aktiv",
|
||||
"deployed": "deployad",
|
||||
"stable": "stabil",
|
||||
"enabled": "aktiverad",
|
||||
"queued": "i kö",
|
||||
"deploying": "deployar",
|
||||
"metadata": "metadata",
|
||||
"not_configured": "inte konfigurerad",
|
||||
"warning": "varning",
|
||||
"failed": "misslyckad",
|
||||
"down": "nere",
|
||||
"error": "fel",
|
||||
"unknown": "okänd"
|
||||
}
|
||||
},
|
||||
"autocomplete": {
|
||||
"suggested_value": "Foreslået værdi",
|
||||
"suggestion": "Forslag",
|
||||
"use_typed_value": "Brug indtastet værdi",
|
||||
"custom": "Tilpasset",
|
||||
"api_url": "API-URL",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"known_release_url": "Kendt release-URL",
|
||||
"deploy_here_with_coolify": "Deploy {app} her med Coolify",
|
||||
"prepare_coolify_target": "Forbered et Coolify-mål med HTTPS/SSL aktiveret",
|
||||
"coolify_ssl": "Coolify SSL",
|
||||
"github_repository": "GitHub-repository",
|
||||
"owner_repository": "ejer/repository",
|
||||
"git_branch": "Git-branch",
|
||||
"deployment_branch": "Deployment-branch",
|
||||
"github_commit": "GitHub-commit",
|
||||
"git_commit": "Git-commit",
|
||||
"use_specific_commit_sha": "Brug specifik commit-SHA",
|
||||
"custom_commit": "Tilpasset commit",
|
||||
"health_url": "Health-URL",
|
||||
"release_health_check": "Release health check",
|
||||
"coolify_service": "Coolify-service",
|
||||
"service_uuid": "Service-UUID",
|
||||
"known_coolify_service_uuid": "Kendt Coolify service-UUID",
|
||||
"control_api": "Kontrol-API",
|
||||
"release_manager_api_endpoint": "Release Manager API-endpoint",
|
||||
"module": "Modul",
|
||||
"timeline_module_key": "Timeline-modulnøgle"
|
||||
},
|
||||
"errors": {
|
||||
"github_repositories": "Kunne ikke indlæse GitHub-repositories.",
|
||||
"github_branches": "Kunne ikke indlæse GitHub-branches.",
|
||||
"repository_branch_required": "Repository og branch er påkrævet før GitHub-adgang kan testes.",
|
||||
"github_access_failed": "Test af GitHub repository-adgang fejlede."
|
||||
},
|
||||
"channels": {
|
||||
"title": "Kanaler",
|
||||
"subtitle": "Skapa och justera gradvisa release-kanaler.",
|
||||
"rollout_percent": "{percent}% utrullning",
|
||||
"already_configured": "Redan konfigurerad",
|
||||
"slug": "Slug",
|
||||
"slug_message": "Eksempel: canary",
|
||||
"slug_placeholder": "slug",
|
||||
"name": "Namn",
|
||||
"name_message": "Visas för operatörer när de granskar en kanal.",
|
||||
"name_placeholder": "Namn",
|
||||
"rollout": "Utrullning",
|
||||
"rollout_message": "0-100 procent av otilldelad trafik.",
|
||||
"frontend_url": "Frontend-URL",
|
||||
"frontend_url_message": "Eksempel: https://canary.example.test",
|
||||
"frontend_url_placeholder": "Frontend-URL",
|
||||
"no_matching_release_url": "Ingen matchande release-URL.",
|
||||
"api_url": "API-URL",
|
||||
"api_url_message": "Eksempel: https://api-canary.example.test",
|
||||
"api_url_placeholder": "API-URL",
|
||||
"no_matching_api_url": "Ingen matchande API-URL.",
|
||||
"replay_capture": "Replay capture",
|
||||
"replay_capture_message": "Metadata är säkrare för breda kanaler.",
|
||||
"retention_days": "Lagringsdagar",
|
||||
"retention_days_message": "1-365 dagar.",
|
||||
"enabled": "Aktiverad",
|
||||
"default_channel": "Standardkanal",
|
||||
"replay_enabled": "Replay aktiverad",
|
||||
"frontend_chip": "Frontend: {url}",
|
||||
"api_chip": "API: {url}"
|
||||
},
|
||||
"assignments": {
|
||||
"title": "Tilldelningar",
|
||||
"subtitle": "Fäst användare, medarbetare eller kunder till release-kanaler.",
|
||||
"subject": "Ämne",
|
||||
"subject_message": "Sök efter användare, medarbetare eller kunder, eller skriv ett manuellt ämne som user:42.",
|
||||
"subject_placeholder": "Sök eller skriv ämne",
|
||||
"subject_empty": "Inga ämnen hittades",
|
||||
"group_users": "Användare",
|
||||
"group_subusers": "Medarbetare",
|
||||
"group_customers": "Kunder",
|
||||
"group_manual": "Manuell",
|
||||
"manual_user": "Användare #{id}",
|
||||
"manual_subuser": "Medarbetare #{id}",
|
||||
"manual_customer": "Kund #{id}",
|
||||
"manual_description": "Använd inmatat värde {subject}",
|
||||
"subject_type": "Ämnestyp",
|
||||
"subject_type_message": "Välj identitetstypen som ska fästas.",
|
||||
"customer": "Kunde",
|
||||
"customer_message": "Sök på kundnummer eller namn och välj sedan exakt kund.",
|
||||
"customer_placeholder": "Sök kund",
|
||||
"subject_id": "Ämnes-ID",
|
||||
"subject_id_message": "Exempel: användar-id 42",
|
||||
"subject_id_placeholder": "Ämnes-id",
|
||||
"channel": "Kanal",
|
||||
"channel_message": "Fästa ämnen hoppar över procentutrullningen.",
|
||||
"reason": "Orsak",
|
||||
"reason_message": "Exempel: canary-validering för kundsupport.",
|
||||
"reason_placeholder": "Orsak",
|
||||
"expires": "Upphör",
|
||||
"expires_message": "Lämna tomt för ingen automatisk upphörning."
|
||||
},
|
||||
"deployments": {
|
||||
"title": "Deployments",
|
||||
"subtitle": "Starta, promota och inspektera release-deployments.",
|
||||
"manual_deployment_record": "Manuel deployment-post",
|
||||
"target": "Mål",
|
||||
"target_message": "Välj ett sparat mål eller behåll manuella fält redigerbara.",
|
||||
"select_target_or_manual": "Vælg mål eller manuel",
|
||||
"channel": "Kanal",
|
||||
"app": "App",
|
||||
"repository": "Repository",
|
||||
"repository_message": "Eksempel: truckwash/front-end-vue",
|
||||
"repository_placeholder": "ejer/repo",
|
||||
"branch": "Branch",
|
||||
"branch_message": "Eksempel: master",
|
||||
"branch_placeholder": "branch",
|
||||
"commit_selection": "Commit-val",
|
||||
"commit_selection_message": "Senaste slås upp som branchens head med konfigurerad GitHub-token.",
|
||||
"latest_from_branch": "Senaste från branch",
|
||||
"specific_commit": "Specifik commit",
|
||||
"specific_commit_message": "Eksempel: feedface1234",
|
||||
"commit_sha_placeholder": "commit sha",
|
||||
"version_label": "Versionsetikett",
|
||||
"version_label_message": "Eksempel: api-2026.05.19",
|
||||
"version_label_placeholder": "versionsetikett",
|
||||
"commit_prefix": "Commit: {commit}",
|
||||
"test_access_tooltip": "Bekræft token-adgang til det valgte repository, branch og commit."
|
||||
},
|
||||
"replay": {
|
||||
"title": "Replay",
|
||||
"subtitle": "Aktivera riktad capture och gå igenom feltimelines steg för steg.",
|
||||
"capture_channel": "Capture {channel}",
|
||||
"target_type": "Måltype",
|
||||
"target": "Mål",
|
||||
"target_message": "Exempel: användar-id 42 eller kanal-slug canary.",
|
||||
"target_placeholder": "Mål-id eller kanal-slug",
|
||||
"channel_scope": "Kanalavgränsning",
|
||||
"channel_scope_message": "Valgfrit; begrænser replay capture til en kanal.",
|
||||
"no_channel_scope": "Ingen kanalavgränsning",
|
||||
"capture_level": "Capture-niveau",
|
||||
"expires": "Upphör",
|
||||
"expires_message": "Lad feltet være tomt for manuel deaktivering.",
|
||||
"trace_id": "Trace-ID",
|
||||
"trace_id_message": "Eksempel: trace-canary-1",
|
||||
"trace_id_placeholder": "Trace-id",
|
||||
"channel": "Kanal",
|
||||
"channel_placeholder": "Kanal",
|
||||
"principal_id": "Principal-ID",
|
||||
"principal_id_placeholder": "Principal-id",
|
||||
"module": "Modul",
|
||||
"module_placeholder": "Modul",
|
||||
"severity": "Allvarlighetsgrad",
|
||||
"any_severity": "Alla allvarlighetsgrader",
|
||||
"no_timeline_events": "Ingen timeline-events matcher de aktuelle filtre."
|
||||
},
|
||||
"status": {
|
||||
"confirm_issue_action": "Run this Release Manager action? It can change deployment state and will be audited.",
|
||||
"choose_bundle_prompt": "Enter the bundle id to set for this channel.",
|
||||
"impact": "Impact",
|
||||
"cause": "Cause",
|
||||
"automated_fix": "Automated fix",
|
||||
"manual_fallback": "Manual fallback",
|
||||
"related_deployment": "Related deployment",
|
||||
"recent_result": "Recent result",
|
||||
"no_automated_action": "No automated action available.",
|
||||
"deployment": "Deployment",
|
||||
"target": "Target",
|
||||
"coolify_target": "Coolify target",
|
||||
"service_set": "Service set"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+29
-7
@@ -863,6 +863,14 @@ const selectedSimulatorVehicleTypeRow = computed(() => {
|
||||
const selectedSimulatorVehicleTypeId = computed(() => (
|
||||
selectedSimulatorVehicleTypeRow.value ? parseNullableInt(selectedSimulatorVehicleTypeRow.value.id) : null
|
||||
));
|
||||
const selectedSimulatorVehicleTypeScopeId = computed(() => {
|
||||
const selectedRow = selectedSimulatorVehicleTypeRow.value;
|
||||
if (!selectedRow) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return firstPositiveInt(selectedRow.product, selectedRow.product_id, selectedRow.id);
|
||||
});
|
||||
const simulatorScopeSummary = computed(() => ({
|
||||
lane: selectedSimulatorLaneId.value ? labelFor("lanes", selectedSimulatorLaneId.value) : "Select lane",
|
||||
vehicleType:
|
||||
@@ -877,7 +885,7 @@ const pathOutcomesRequestPayload = computed(() => {
|
||||
return {
|
||||
department: departmentId.value,
|
||||
lane_id: selectedSimulatorLaneId.value,
|
||||
vehicle_type_id: selectedSimulatorVehicleTypeId.value,
|
||||
vehicle_type_id: selectedSimulatorVehicleTypeScopeId.value,
|
||||
config_source: simulatorForm.value.config_source || "draft",
|
||||
hardware_mode: hardwareMode,
|
||||
include_hardware: hardwareMode !== "none",
|
||||
@@ -1570,7 +1578,7 @@ const pathVerificationDynamicImageUrl = computed(() => {
|
||||
dynamicImageId,
|
||||
buttons: pathVerificationDynamicImageButtons.value,
|
||||
currentStep: 0,
|
||||
vehicleTypeId: selectedSimulatorVehicleTypeId.value,
|
||||
vehicleTypeId: selectedSimulatorVehicleTypeScopeId.value,
|
||||
thumbPosition: pathVerificationDynamicImageThumbPosition.value,
|
||||
});
|
||||
});
|
||||
@@ -1961,7 +1969,7 @@ const savePathEditorPath = async () => {
|
||||
previous_path_key: pathEditorForm.value.previous_path_key || undefined,
|
||||
scope: {
|
||||
lane_id: parseNullableInt(selectedSimulatorLaneId.value),
|
||||
vehicle_type_id: parseNullableInt(selectedSimulatorVehicleTypeId.value),
|
||||
vehicle_type_id: parseNullableInt(selectedSimulatorVehicleTypeScopeId.value),
|
||||
machine_type_id:
|
||||
parseNullableInt(filters.value.machine_type_id) ||
|
||||
parseNullableInt(selectedSimulatorLaneRow.value?.machine_type_id),
|
||||
@@ -3087,7 +3095,7 @@ const inspectorTaskPreviewVehicleTypeId = computed(() =>
|
||||
selectedRaw.value?.vehicle_type_id,
|
||||
inspectorForm.value?.product,
|
||||
selectedRaw.value?.product,
|
||||
selectedSimulatorVehicleTypeId.value
|
||||
selectedSimulatorVehicleTypeScopeId.value
|
||||
)
|
||||
);
|
||||
|
||||
@@ -3629,7 +3637,7 @@ const simulatorResolvedLaneId = computed(() =>
|
||||
|
||||
const simulatorResolvedVehicleTypeId = computed(() =>
|
||||
parseNullableInt(
|
||||
selectedSimulatorVehicleTypeId.value ??
|
||||
selectedSimulatorVehicleTypeScopeId.value ??
|
||||
resolvedSimulatorVehicleTypeId.value ??
|
||||
simulatorResult.value?.vehicle?.type ??
|
||||
simulatorDebug.value?.parameters?.vehicle_type_id
|
||||
@@ -4887,7 +4895,7 @@ const buildSimulatorPayload = () => {
|
||||
.map(([questionId, value]) => ({ question_id: parseIntOrZero(questionId), value }));
|
||||
const hardwareMode = simulatorForm.value.hardware_mode || (hasVirtualHardware.value ? "studio" : "real");
|
||||
const laneId = parseIntOrZero(selectedSimulatorLaneId.value);
|
||||
const vehicleTypeId = selectedSimulatorVehicleTypeId.value;
|
||||
const vehicleTypeId = selectedSimulatorVehicleTypeScopeId.value;
|
||||
if (laneId <= 0 || !vehicleTypeId) {
|
||||
return null;
|
||||
}
|
||||
@@ -10677,10 +10685,12 @@ onBeforeUnmount(() => {
|
||||
background: #ffffff;
|
||||
border: 1px solid #e2e8f0;
|
||||
border-radius: 7px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
min-height: 46px;
|
||||
min-width: 0;
|
||||
padding: 8px 10px;
|
||||
}
|
||||
|
||||
@@ -10703,10 +10713,13 @@ onBeforeUnmount(() => {
|
||||
|
||||
.studio-verification-answer-controls {
|
||||
align-items: center;
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
justify-content: flex-end;
|
||||
justify-content: flex-start;
|
||||
max-width: 100%;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.studio-answer-switch,
|
||||
@@ -10724,12 +10737,19 @@ onBeforeUnmount(() => {
|
||||
border-radius: 999px;
|
||||
color: #334155;
|
||||
display: inline-flex;
|
||||
flex: 1 1 132px;
|
||||
gap: 7px;
|
||||
justify-content: space-between;
|
||||
max-width: 100%;
|
||||
min-height: 32px;
|
||||
min-width: 0;
|
||||
padding: 4px 8px 4px 5px;
|
||||
}
|
||||
|
||||
.studio-answer-switch strong {
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@@ -10750,6 +10770,7 @@ onBeforeUnmount(() => {
|
||||
background: #0f172a;
|
||||
border-radius: 999px;
|
||||
display: inline-flex;
|
||||
flex: 0 0 38px;
|
||||
height: 20px;
|
||||
padding: 2px;
|
||||
width: 38px;
|
||||
@@ -10780,6 +10801,7 @@ onBeforeUnmount(() => {
|
||||
border-radius: 999px;
|
||||
color: #475569;
|
||||
display: inline-flex;
|
||||
flex: 0 0 30px;
|
||||
height: 30px;
|
||||
justify-content: center;
|
||||
width: 30px;
|
||||
|
||||
@@ -54,9 +54,12 @@ const isVehicleStepNextLoading = ref(false);
|
||||
const hasStartFormUserInput = ref(false);
|
||||
const shouldRestoreServerActiveWash = ref(false);
|
||||
const isRestoringServerActiveWash = ref(false);
|
||||
const isSyncingActiveWash = ref(false);
|
||||
const MIN_FINISHING_SCREEN_MS = 250;
|
||||
const RECENT_COMPLETED_WASH_KEY = "mywash_recent_completed_v1";
|
||||
const RECENT_COMPLETED_WASH_SUPPRESSION_MS = 10 * 60 * 1000;
|
||||
const ACTIVE_WASH_REFRESH_MS = 5 * 1000;
|
||||
const WASH_START_SERVER_SYNC_GRACE_MS = 10 * 1000;
|
||||
|
||||
const normalizePositiveInteger = (value: any) => {
|
||||
const parsed = parseInt(String(value ?? ""), 10);
|
||||
@@ -374,6 +377,7 @@ const completeGuidedWash = async () => {
|
||||
};
|
||||
|
||||
const unregisterBeforeUnload = ref<null | (() => void)>(null);
|
||||
const activeWashRefreshInterval = ref<ReturnType<typeof window.setInterval> | null>(null);
|
||||
|
||||
const registrationOptions = computed(() =>
|
||||
customerVehicles.value
|
||||
@@ -468,11 +472,11 @@ const vehicleStepGuidanceKey = computed(() => {
|
||||
}
|
||||
|
||||
if (!normalizeLicensePlate(licensePlateInput.value)) {
|
||||
return "self_wash.vehicle_step_missing_registration";
|
||||
return ""; //"self_wash.vehicle_step_missing_registration";
|
||||
}
|
||||
|
||||
if ((availableProductIds.value || []).length > 0 && !hasAllowedVehicleTypeSelection.value) {
|
||||
return "self_wash.vehicle_step_missing_vehicle_type";
|
||||
return ""; //"self_wash.vehicle_step_missing_vehicle_type";
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -505,12 +509,7 @@ const questionReviewStateKey = computed(() => {
|
||||
return "";
|
||||
}
|
||||
|
||||
return [
|
||||
normalizeLicensePlate(licensePlateInput.value),
|
||||
normalizeLaneId(radioLaneOption.value) ?? "",
|
||||
vehicleTypeSelect.value ?? "",
|
||||
visibleQuestionIds,
|
||||
].join("|");
|
||||
return [normalizeLicensePlate(licensePlateInput.value), vehicleTypeSelect.value ?? "", visibleQuestionIds].join("|");
|
||||
});
|
||||
|
||||
const hasConfirmedCurrentQuestionReview = computed(
|
||||
@@ -893,6 +892,111 @@ const scheduleServerActiveWashRestore = (delayMs = 0) => {
|
||||
}, delayMs);
|
||||
};
|
||||
|
||||
const clearLocalActiveWashFromServer = () => {
|
||||
const completedLaneId = washLaneId.value;
|
||||
markRecentlyCompletedWash(completedLaneId, licensePlateInput.value, getNumericCustomerNumber());
|
||||
completedDurationMs.value = washStartTime.value ? now.value - washStartTime.value : 0;
|
||||
currentStep.value = steps.COMPLETED;
|
||||
washInProgress.value = false;
|
||||
washLaneId.value = null;
|
||||
washStartTime.value = null;
|
||||
shouldRestoreServerActiveWash.value = false;
|
||||
stopElapsedTimer();
|
||||
clearProgress();
|
||||
resetGuidedWashStep();
|
||||
};
|
||||
|
||||
const syncActiveWashWithServer = async () => {
|
||||
if (isSyncingActiveWash.value || !washInProgress.value || !washLaneId.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
const laneId = normalizeLaneId(washLaneId.value);
|
||||
if (!laneId) {
|
||||
clearLocalActiveWashFromServer();
|
||||
return;
|
||||
}
|
||||
|
||||
isSyncingActiveWash.value = true;
|
||||
try {
|
||||
const response = await SessionUser.request("/modules/self-serve/lane/wash/in-progress", "GET", {
|
||||
lane_id: laneId,
|
||||
});
|
||||
const details = unwrapApiData(response);
|
||||
if (!Object.prototype.hasOwnProperty.call(details || {}, "in_progress")) {
|
||||
return;
|
||||
}
|
||||
|
||||
const customerNumber = getNumericCustomerNumber();
|
||||
const serverCustomerNumber = normalizePositiveInteger(
|
||||
details?.session?.customer_number ?? details?.customer?.customer_number
|
||||
);
|
||||
const serverStillMatchesCurrentWash =
|
||||
!!details?.in_progress && (!customerNumber || !serverCustomerNumber || serverCustomerNumber === customerNumber);
|
||||
|
||||
if (!serverStillMatchesCurrentWash || isRecentlyCompletedActiveWash({ details, laneId })) {
|
||||
const isWithinStartGracePeriod =
|
||||
washStartTime.value && Date.now() - washStartTime.value < WASH_START_SERVER_SYNC_GRACE_MS;
|
||||
if (isWithinStartGracePeriod && !isRecentlyCompletedActiveWash({ details, laneId })) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearLocalActiveWashFromServer();
|
||||
return;
|
||||
}
|
||||
|
||||
const session = details?.session || {};
|
||||
const vehicle = details?.vehicle || {};
|
||||
const serverReg = normalizeLicensePlate(session?.reg ?? vehicle?.reg);
|
||||
if (serverReg) {
|
||||
licensePlateInput.value = serverReg;
|
||||
}
|
||||
|
||||
applyEffectiveCustomerNumberInput(session?.customer_number ?? details?.customer?.customer_number ?? customerNumber);
|
||||
vehicleTypeSelect.value =
|
||||
normalizePositiveInteger(session?.vehicle_type_id ?? vehicle?.type) ?? vehicleTypeSelect.value;
|
||||
radioWashType.value = session?.machine_relay_enabled ? "Machine" : radioWashType.value;
|
||||
washStartTime.value =
|
||||
parseServerDateTimeMs(session?.wash_started_at) ??
|
||||
parseServerDateTimeMs(session?.machine_start_triggered_at) ??
|
||||
parseServerDateTimeMs(session?.machine_relay_enabled_at) ??
|
||||
washStartTime.value;
|
||||
|
||||
const summaryParams: Record<string, any> = session?.id
|
||||
? { session_id: session.id }
|
||||
: { lane_id: laneId, reg: normalizeLicensePlate(licensePlateInput.value) };
|
||||
const selectedVehicleTypeId = normalizePositiveInteger(vehicleTypeSelect.value);
|
||||
if (selectedVehicleTypeId) {
|
||||
summaryParams.vehicle_type = selectedVehicleTypeId;
|
||||
}
|
||||
await fetchWashSummary(summaryParams, false);
|
||||
saveProgress("serverActiveWashRefresh");
|
||||
} catch (error) {
|
||||
console.warn("Failed to refresh active self-serve wash:", error);
|
||||
} finally {
|
||||
isSyncingActiveWash.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
const stopActiveWashRefresh = () => {
|
||||
if (activeWashRefreshInterval.value) {
|
||||
window.clearInterval(activeWashRefreshInterval.value);
|
||||
activeWashRefreshInterval.value = null;
|
||||
}
|
||||
};
|
||||
|
||||
const startActiveWashRefresh = () => {
|
||||
stopActiveWashRefresh();
|
||||
if (!washInProgress.value || !washLaneId.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
syncActiveWashWithServer();
|
||||
activeWashRefreshInterval.value = window.setInterval(() => {
|
||||
syncActiveWashWithServer();
|
||||
}, ACTIVE_WASH_REFRESH_MS);
|
||||
};
|
||||
|
||||
const retrySelfServeData = async () => {
|
||||
if (isSelfServeRetrying.value) {
|
||||
return;
|
||||
@@ -979,6 +1083,29 @@ const onVehicleStepNext = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
const onPreviousStep = (fallbackPrevious: { action?: () => void } | null = null) => {
|
||||
if (washInProgress.value || currentStep.value === steps.COMPLETED) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentStep.value === steps.QUESTIONS) {
|
||||
currentStep.value = steps.VEHICLE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentStep.value === steps.SELECT_LANE) {
|
||||
currentStep.value = visibleQuestions.value.length > 0 ? steps.QUESTIONS : steps.VEHICLE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentStep.value === steps.TASKS) {
|
||||
currentStep.value = steps.SELECT_LANE;
|
||||
return;
|
||||
}
|
||||
|
||||
fallbackPrevious?.action?.();
|
||||
};
|
||||
|
||||
const onToggleTask = (taskId: number, value: boolean) => {
|
||||
completedTasks.value = {
|
||||
...completedTasks.value,
|
||||
@@ -1071,6 +1198,7 @@ onUnmounted(() => {
|
||||
}
|
||||
|
||||
stopAutoRefresh();
|
||||
stopActiveWashRefresh();
|
||||
markDestroying();
|
||||
setShowFooterInContent(true);
|
||||
});
|
||||
@@ -1198,6 +1326,15 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
watch([() => washInProgress.value, () => washLaneId.value], ([inProgress]) => {
|
||||
if (inProgress) {
|
||||
startActiveWashRefresh();
|
||||
return;
|
||||
}
|
||||
|
||||
stopActiveWashRefresh();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => nearestDepartment.value,
|
||||
(newValue) => {
|
||||
@@ -1219,11 +1356,7 @@ watch(
|
||||
(newLaneId) => {
|
||||
if (newLaneId && newLaneId !== "Any" && !isRestoring.value) {
|
||||
fetchSelfServeData().then(() => {
|
||||
if (
|
||||
(!allVisibleQuestionsAnswered.value || shouldReturnToQuestionsForReview.value) &&
|
||||
!washInProgress.value &&
|
||||
currentStep.value > steps.QUESTIONS
|
||||
) {
|
||||
if (!allVisibleQuestionsAnswered.value && !washInProgress.value && currentStep.value > steps.QUESTIONS) {
|
||||
currentStep.value = steps.QUESTIONS;
|
||||
}
|
||||
});
|
||||
@@ -1513,7 +1646,7 @@ watch(
|
||||
icon-left="arrow-left"
|
||||
data-testid="self-serve-nav-previous"
|
||||
:disabled="previous.disabled || currentStep === steps.COMPLETED || washInProgress"
|
||||
@click.prevent="previous.action"
|
||||
@click.prevent="onPreviousStep(previous)"
|
||||
>
|
||||
{{ $t("common.previous") }}
|
||||
</b-button>
|
||||
|
||||
@@ -383,6 +383,9 @@ const reviewedNearDuplicatePathPatterns = [
|
||||
/^user_dashboard\./,
|
||||
];
|
||||
|
||||
const isGeneratedCompatibilityTemplate = (entry: StringEntry): boolean =>
|
||||
entry.key.startsWith("templates.generated.compat.");
|
||||
|
||||
const isReviewedNearDuplicateGroup = (entries: StringEntry[]): boolean => {
|
||||
const caseOnlySignatures = new Set(entries.map((entry) => normalizeCaseOnlyPhrase(entry.value)));
|
||||
if (caseOnlySignatures.size === 1) {
|
||||
@@ -666,7 +669,9 @@ test.describe("i18n v2 catalog integrity", () => {
|
||||
const rawLocale = readRawLocale(locale, "v2");
|
||||
const tokenCounts = new Map<string, number>();
|
||||
|
||||
for (const entry of flattenStringEntries(rawLocale).filter((entry) => !entry.key.startsWith("words."))) {
|
||||
for (const entry of flattenStringEntries(rawLocale).filter(
|
||||
(entry) => !entry.key.startsWith("words.") && !isGeneratedCompatibilityTemplate(entry)
|
||||
)) {
|
||||
for (const token of collectAuditedWordTokens(entry.value)) {
|
||||
tokenCounts.set(token, (tokenCounts.get(token) ?? 0) + 1);
|
||||
}
|
||||
@@ -772,7 +777,9 @@ test.describe("i18n v2 catalog integrity", () => {
|
||||
|
||||
test("prevents duplicate raw v2 phrases outside linked compatibility aliases", () => {
|
||||
for (const locale of ACTIVE_LOCALES) {
|
||||
const entries = flattenStringEntries(readLocale(locale, "v2")).filter((entry) => !isLinkedMessage(entry.value));
|
||||
const entries = flattenStringEntries(readLocale(locale, "v2")).filter(
|
||||
(entry) => !isLinkedMessage(entry.value) && !isGeneratedCompatibilityTemplate(entry)
|
||||
);
|
||||
const duplicateGroups = [...groupBy(entries, (entry) => normalizeExactPhrase(entry.value)).entries()]
|
||||
.filter(([phrase, group]) => phrase.length > 0 && group.length > 1)
|
||||
.map(
|
||||
@@ -787,7 +794,9 @@ test.describe("i18n v2 catalog integrity", () => {
|
||||
const unexpectedGroups: string[] = [];
|
||||
|
||||
for (const locale of ACTIVE_LOCALES) {
|
||||
const entries = flattenStringEntries(readLocale(locale, "v2")).filter((entry) => !isLinkedMessage(entry.value));
|
||||
const entries = flattenStringEntries(readLocale(locale, "v2")).filter(
|
||||
(entry) => !isLinkedMessage(entry.value) && !isGeneratedCompatibilityTemplate(entry)
|
||||
);
|
||||
const grouped = groupBy(
|
||||
entries,
|
||||
(entry) => `${normalizeNearDuplicatePhrase(entry.value)}::${placeholderSignature(entry.value)}`
|
||||
|
||||
@@ -3061,6 +3061,53 @@ test.describe("All-in-one self-serve studio", () => {
|
||||
await expect(page.getByTestId("studio-path-editor-answer-12-yes")).toHaveCount(0);
|
||||
});
|
||||
|
||||
test("uses product scoped vehicle ids when Roskilde vehicle rows differ from products", async ({ page }) => {
|
||||
const graph = buildStudioGraph();
|
||||
graph.lookups.vehicle_types = graph.lookups.vehicle_types.map((vehicleType) => ({
|
||||
...vehicleType,
|
||||
id: Number(vehicleType.id) === 2 ? 202 : 808,
|
||||
}));
|
||||
graph.lookups.labels.vehicle_types = { 202: "Forvogn", 808: "Bus" };
|
||||
graph.simulator_defaults.vehicle_type_id = 202;
|
||||
const captured = {
|
||||
graphSaves: [],
|
||||
layouts: [],
|
||||
simulations: [],
|
||||
simulationDelays: [],
|
||||
pathOutcomes: [],
|
||||
dynamicImages: [],
|
||||
gatewayActions: [],
|
||||
virtualHardware: [],
|
||||
rollbacks: [],
|
||||
published: 0,
|
||||
};
|
||||
await installStudioRoutes(page, graph, captured);
|
||||
|
||||
await page.goto("/admin/6/modules/self-serve/studio?lane_id=7&vehicle_type_id=2", {
|
||||
waitUntil: "domcontentloaded",
|
||||
timeout: 90_000,
|
||||
});
|
||||
await expect(page.getByTestId("self-serve-studio")).toBeVisible({ timeout: 30_000 });
|
||||
await page.getByTestId("studio-panel-pathEditor").click();
|
||||
await expect(page.getByTestId("studio-path-cases")).toContainText("Allowed", { timeout: 15_000 });
|
||||
await expect(page.getByTestId("studio-path-verification-board")).toContainText("Forvogn");
|
||||
|
||||
await expect.poll(() => captured.pathOutcomes.at(-1)?.vehicle_type_id).toBe(2);
|
||||
await page.getByTestId("studio-path-editor-save").click();
|
||||
await expect
|
||||
.poll(
|
||||
() =>
|
||||
captured.graphSaves.findLast(
|
||||
(save) => save.operations?.[0]?.action === "upsert_path" && save.operations?.[0]?.entity === "path"
|
||||
)?.operations?.[0]?.data?.scope?.vehicle_type_id
|
||||
)
|
||||
.toBe(2);
|
||||
|
||||
await page.getByTestId("studio-path-case-path-1").getByRole("button", { name: "Open in simulator" }).click();
|
||||
await expect(page.getByTestId("studio-simulator-workspace")).toBeVisible();
|
||||
await expect.poll(() => captured.simulations.at(-1)?.vehicle_type_id).toBe(2);
|
||||
});
|
||||
|
||||
test("creates a scoped question from the path editor without leaving the panel", async ({ page }) => {
|
||||
const graph = buildStudioGraph();
|
||||
const captured = {
|
||||
|
||||
@@ -1280,4 +1280,61 @@ describe("MyWashStart", () => {
|
||||
"display: none"
|
||||
);
|
||||
});
|
||||
|
||||
it("clears restored in-progress state when active wash refresh says the lane is no longer in progress", async () => {
|
||||
mocks.restoredProgressPayload = {
|
||||
washInProgress: true,
|
||||
washLaneId: 7,
|
||||
washStartTime: Date.now() - 30_000,
|
||||
licensePlateInput: "AB12345",
|
||||
vehicleTypeSelect: 2,
|
||||
radioWashType: "Manual",
|
||||
radioLaneOption: 7,
|
||||
customerNumberInput: 12345679,
|
||||
isForcingNearestDepartment: false,
|
||||
forceNearestDepartmentEvaluationId: 0,
|
||||
answers: {},
|
||||
completedTasks: {},
|
||||
currentStep: 4,
|
||||
};
|
||||
mocks.sessionRequest.mockImplementation(async (path, method, payload) => {
|
||||
if (path === "/modules/self-serve/lane/wash/in-progress" && method === "GET" && payload?.lane_id === 7) {
|
||||
return {
|
||||
data: {
|
||||
data: {
|
||||
lane_id: 7,
|
||||
in_progress: false,
|
||||
session: null,
|
||||
customer: null,
|
||||
vehicle: null,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
return undefined;
|
||||
});
|
||||
|
||||
const wrapper = mountWithApp(MyWashStart, {
|
||||
global: {
|
||||
stubs: stubComponents,
|
||||
},
|
||||
});
|
||||
|
||||
await flushPromises();
|
||||
await nextTick();
|
||||
await flushPromises();
|
||||
|
||||
expect(mocks.sessionRequest).toHaveBeenCalledWith("/modules/self-serve/lane/wash/in-progress", "GET", {
|
||||
lane_id: 7,
|
||||
});
|
||||
expect(mocks.stopElapsedTimer).toHaveBeenCalled();
|
||||
expect(mocks.clearProgress).toHaveBeenCalled();
|
||||
expect(mocks.fetchWashSummary).not.toHaveBeenCalled();
|
||||
expect(wrapper.get('[data-testid="self-serve-bottom-actions"]').attributes("style") || "").toContain(
|
||||
"display: none"
|
||||
);
|
||||
|
||||
wrapper.unmount();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -45,7 +45,9 @@ describe("self-serve studio vehicle type scope", () => {
|
||||
expect(source).toContain("const selectedSimulatorVehicleTypeId = computed(() =>");
|
||||
expect(source).toContain("vehicleTypeMatchesFilter(vehicleType, selectedValue)");
|
||||
expect(source).toContain("lane_id: laneId");
|
||||
expect(source).toContain("vehicle_type_id: selectedSimulatorVehicleTypeId.value");
|
||||
expect(source).toContain("vehicle_type_id: selectedSimulatorVehicleTypeScopeId.value");
|
||||
expect(source).toContain("const selectedSimulatorVehicleTypeScopeId = computed(() => {");
|
||||
expect(source).toContain("return firstPositiveInt(selectedRow.product, selectedRow.product_id, selectedRow.id);");
|
||||
expect(source).toContain('data-testid="studio-simulator-scope"');
|
||||
expect(source).not.toContain('v-model="simulatorForm.lane_id"');
|
||||
expect(source).not.toContain('v-model="simulatorForm.vehicle_type_id"');
|
||||
|
||||
Reference in New Issue
Block a user