fix(i18n): add missing save/importTitle keys, sync admin keys across all languages
Local Build and Deploy / deploy (push) Successful in 1m6s
Local Build and Deploy / deploy (push) Successful in 1m6s
This commit is contained in:
1 parent
06610e9ae3
commit
b78d691281
22 files changed
+4126
-187
No files matched your search
+15
-13
@@ -1592,7 +1592,7 @@
|
||||
},
|
||||
"embedPage": {
|
||||
"title": "Radio Embed",
|
||||
"subtitle": "Copy-ready embed code for the live stream. Read-only \u2014 nothing here writes to the database. Configure the stream URL in Radio Settings (radio_stream_url).",
|
||||
"subtitle": "Copy-ready embed code for the live stream. Read-only — nothing here writes to the database. Configure the stream URL in Radio Settings (radio_stream_url).",
|
||||
"streamUrl": "Stream URL",
|
||||
"configured": "Configured",
|
||||
"missing": "Missing",
|
||||
@@ -1609,7 +1609,7 @@
|
||||
"audioSnippet": "Audio player snippet",
|
||||
"audioSnippetDesc": "Drop-in HTML5 audio player pointed straight at the stream. Works anywhere plain HTML is allowed.",
|
||||
"iframeSnippet": "Iframe wrapper snippet",
|
||||
"iframeSnippetDesc": "Embeds the site\u2019s own radio player page in an iframe \u2014 keeps your styling and now-playing info. Adjust width/height to taste.",
|
||||
"iframeSnippetDesc": "Embeds the site’s own radio player page in an iframe — keeps your styling and now-playing info. Adjust width/height to taste.",
|
||||
"audioUnsupported": "Your browser does not support the audio element."
|
||||
},
|
||||
"banners": {
|
||||
@@ -1619,7 +1619,7 @@
|
||||
"addBanner": "Add banner",
|
||||
"createBanner": "Create banner",
|
||||
"deleteBanner": "Delete banner",
|
||||
"noBanners": "No banners yet \u2014 add one above.",
|
||||
"noBanners": "No banners yet — add one above.",
|
||||
"existing": "Existing banners ({count})",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
@@ -1650,7 +1650,7 @@
|
||||
"description": "Description",
|
||||
"createRank": "Create rank",
|
||||
"existing": "Existing ranks ({count})",
|
||||
"noRanks": "No ranks yet \u2014 add one above.",
|
||||
"noRanks": "No ranks yet — add one above.",
|
||||
"activeLabel": "active",
|
||||
"inactiveLabel": "inactive",
|
||||
"save": "Save",
|
||||
@@ -1677,13 +1677,13 @@
|
||||
},
|
||||
"apiKeysForm": {
|
||||
"title": "Radio API Keys",
|
||||
"subtitle": "API keys for external radio integrations (radio_api_keys). Keys are generated server-side and shown masked \u2014 copy the full value from the database when first issued.",
|
||||
"subtitle": "API keys for external radio integrations (radio_api_keys). Keys are generated server-side and shown masked — copy the full value from the database when first issued.",
|
||||
"dbError": "Could not load API keys (database unavailable).",
|
||||
"totalKeys": "Total keys",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"generateKey": "Generate key",
|
||||
"generateHint": "The secret key is generated automatically with cryptographic randomness \u2014 you do not enter it.",
|
||||
"generateHint": "The secret key is generated automatically with cryptographic randomness — you do not enter it.",
|
||||
"name": "Name",
|
||||
"namePlaceholder": "AzureCast bridge",
|
||||
"rateLimit": "Rate limit (requests/min)",
|
||||
@@ -1691,7 +1691,7 @@
|
||||
"allowedIpsPlaceholder": "comma-separated, blank = any",
|
||||
"generate": "Generate key",
|
||||
"existingKeys": "Existing keys ({count})",
|
||||
"noKeys": "No API keys yet \u2014 generate one above.",
|
||||
"noKeys": "No API keys yet — generate one above.",
|
||||
"colName": "Name",
|
||||
"colKey": "Key",
|
||||
"colAllowedIps": "Allowed IPs",
|
||||
@@ -1711,7 +1711,7 @@
|
||||
"pointsForm": {
|
||||
"title": "Radio Listener Points",
|
||||
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
|
||||
"points": "Points",
|
||||
"points": "Points",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"perMinute": "Per minute",
|
||||
@@ -1743,12 +1743,12 @@
|
||||
"artist": "Artist",
|
||||
"album": "Album",
|
||||
"artworkUrl": "Artwork URL",
|
||||
"artworkUrlPlaceholder": "https://\u2026/cover.png",
|
||||
"artworkUrlPlaceholder": "https://…/cover.png",
|
||||
"duration": "Duration (seconds)",
|
||||
"durationPlaceholder": "e.g. 215",
|
||||
"sortOrder": "Sort order",
|
||||
"playlist": "Playlist ({count})",
|
||||
"noTracks": "No AutoDJ tracks yet \u2014 add one above.",
|
||||
"noTracks": "No AutoDJ tracks yet — add one above.",
|
||||
"colOrder": "Order",
|
||||
"colTitle": "Title",
|
||||
"colArtist": "Artist",
|
||||
@@ -1766,7 +1766,7 @@
|
||||
},
|
||||
"monitoring": {
|
||||
"title": "Radio Monitoring",
|
||||
"subtitle": "Read-only live probe of the configured radio endpoints (radio_now_playing_api_url, radio_listeners_api_url). Each request fails soft with a {timeout}s timeout \u2014 no data is written. Configure URLs under Settings.",
|
||||
"subtitle": "Read-only live probe of the configured radio endpoints (radio_now_playing_api_url, radio_listeners_api_url). Each request fails soft with a {timeout}s timeout — no data is written. Configure URLs under Settings.",
|
||||
"stream": "Stream",
|
||||
"online": "Online",
|
||||
"offline": "Offline",
|
||||
@@ -1781,7 +1781,7 @@
|
||||
"noNowPlayingHint": "no now-playing API set",
|
||||
"noListenersHint": "no listeners API set",
|
||||
"endpointDiagnostics": "Endpoint diagnostics",
|
||||
"diagnosticsLegend": "<span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-green-600/20 text-[var(--color-text)]\">OK</span> reachable \u00b7 <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-[var(--color-primary)]/18 text-[var(--color-text)]\">WARN</span> not configured \u00b7 <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-red-500/22 text-[var(--color-text)]\">ERROR</span> fetch failed / timed out.",
|
||||
"diagnosticsLegend": "<span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-green-600/20 text-[var(--color-text)]\">OK</span> reachable · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-[var(--color-primary)]/18 text-[var(--color-text)]\">WARN</span> not configured · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-red-500/22 text-[var(--color-text)]\">ERROR</span> fetch failed / timed out.",
|
||||
"streamUrl": "Stream URL",
|
||||
"unreachable": "unreachable",
|
||||
"refresh": "Refresh"
|
||||
@@ -2164,7 +2164,9 @@
|
||||
"auditTime": "Time",
|
||||
"auditUser": "User",
|
||||
"auditAction": "Action",
|
||||
"auditTarget": "Target"
|
||||
"auditTarget": "Target",
|
||||
"save": "Save",
|
||||
"importTitle": "Import permissions"
|
||||
},
|
||||
"rooms": {
|
||||
"title": "Rooms",
|
||||
|
||||
Reference in new issue
Block a user