refac: i18n (#244)

This commit is contained in:
Patrick Thoelken
2025-01-16 16:10:00 +01:00
committed by GitHub
parent 430bfabfb4
commit 5073113568
20 changed files with 141 additions and 42 deletions

1
.gitignore vendored
View File

@@ -20,6 +20,7 @@ cookies.txt
__debug*
ui/
.idea
.idea/
frontend/.pnp.cjs
frontend/.pnp.loader.mjs
frontend/.yarn/install-state.gz

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'Ajustes generales de descarga'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -6,10 +6,10 @@ keys:
startButton: Start
abortAllButton: Alle Abbrechen
updateBinButton: yt-dlp Binärdatei aktualisieren
darkThemeButton: Dunkel Modus
lightThemeButton: Hell Modus
darkThemeButton: Dunkler Modus
lightThemeButton: Heller Modus
settingsAnchor: Einstellungen
serverAddressTitle: Server Adresse
serverAddressTitle: Adresse des Servers
serverPortTitle: Port
extractAudioCheckbox: Audio extrahieren
noMTimeCheckbox: Datei-Änderungszeitpunkt nicht festlegen
@@ -22,9 +22,9 @@ keys:
overridesAnchor: Überschreibungen
pathOverrideOption: Ausgabe-Pfad Überschreibung aktivieren
filenameOverrideOption: Ausgabe-Dateiname Überschreibung aktivieren
customFilename: Custom filename (leave blank to use default)
customFilename: Benutzerdefinierter Dateiname (Leer lassen um Standardwert zu nutzen)
customPath: Benutzerdefinierter Pfad
customArgs: Benutzerdefinierte yt-dlp Argumente aktivieren (viel Macht = viel Verantwortung)
customArgs: Benutzerdefinierte yt-dlp Argumente aktivieren (Auf viel Macht folgt große Verantwortung)
customArgsInput: Benutzerdefinierte yt-dlp Argumente
rpcConnErr: Fehler beim Verbinden mit RPC Server
splashText: Keine aktiven Downloads
@@ -42,24 +42,31 @@ keys:
loadingLabel: Lädt...
appTitle: App Titel
savedTemplates: Gespeicherte Vorlage
templatesEditor: Vorlagen Bearbeiter
templatesEditor: Vorlageneditor
templatesEditorNameLabel: Vorlagen Name
templatesEditorContentLabel: Vorlagen Inhalt
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
logsTitle: 'Logausgabe'
awaitingLogs: 'Warte auf Log ...'
bulkDownload: 'Alles in einem ZIP-Archiv herunterladen'
rpcPollingTimeTitle: RPC-Abfragezeit
rpcPollingTimeDescription: Ein kürzeres Intervall führt zu einer höheren CPU-Auslastung (Server- und Clientseite)
rpcPollingTimeDescription: Ein kürzerer Intervall führt zu einer höheren CPU-Auslastung (Server- und Clientseite)
templatesReloadInfo: Um eine neue Vorlage zu registrieren, muss die Seite möglicherweise neu geladen werden.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamStatusWaiting: Warte auf Start
livestreamStatusDownloading: Herunterladen
livestreamStatusCompleted: Abgeschlossen
livestreamStatusErrored: Fehlerhaft
livestreamStatusUnknown: Status unbekannt
livestreamNoMonitoring: Aktuell wird kein Livestream überwacht
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
urlBase: URL-Basis für Reverse-Proxy-Unterstützung (Unterverzeichnis), standardmäßig leer
Damit wird der noch nicht gestartete Livestream überwacht. Jeder Prozess wird mit --wait-for-video 10 ausgeführt.
Wenn ein bereits gestarteter Livestream vorhanden ist, wird er zwar heruntergeladen, aber sein Fortschritt wird nicht verfolgt.
Sobald der Livestream gestartet ist, wird er auf der Download-Seite angezeigt.
livestreamExperimentalWarning: Dieses Feature ist aktuell noch experimentell, sei vorsichtig, denn es könnte sein, dass etwas nicht genau funktioniert!
accentSelect: 'Farbtöne'
urlBase: URL-Basis für Reverse-Proxy-Unterstützung (Unterverzeichnis), standardmäßig leer
generalDownloadSettings: 'Allgemeine Download Einstellungen'
deleteCookies: 'Cookies löschen'
noFilesFound: 'Keine Dateien gefunden'
tableView: 'Tabellenansicht'
deleteSelected: 'Ausgewählte löschen'

View File

@@ -58,9 +58,15 @@ keys:
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
accentSelect: 'Accent'
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -50,12 +50,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -64,4 +66,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -47,12 +47,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -61,4 +63,9 @@ keys:
accentSelect: 'Accent'
urlBase: base URL, per supporto a reverse proxy (subdir), default vuoto
rpcPollingTimeTitle: Intervallo di polling RPC
rpcPollingTimeDescription: Un intervallo più corto implica un maggior utilizzo di CPU (lato client e server)
rpcPollingTimeDescription: Un intervallo più corto implica un maggior utilizzo di CPU (lato client e server)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -47,12 +47,14 @@ keys:
logsTitle: 'ログ'
awaitingLogs: 'ログを待機中...'
bulkDownload: 'ダウンロードしたファイルをZIPで保存'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: ライブストリームURL
livestreamStatusWaiting: 開始を待っています
livestreamStatusDownloading: ダウンロード中
livestreamStatusCompleted: 完了
livestreamStatusErrored: エラー
livestreamStatusUnknown: 不明
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
まだ開始されていないライブストリームを監視します。各プロセスは、--wait-for-video 10 で実行されます。
すでに開始されているライブストリームが提供された場合、ダウンロードは継続されますが進行状況は追跡されません。
@@ -61,4 +63,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -58,9 +58,15 @@ keys:
livestreamStatusCompleted: Concluído
livestreamStatusErrored: Erro
livestreamStatusUnknown: Desconhecido
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
Isso monitorará uma transmissão ao vivo que ainda não começou. Cada processo será executado com --wait-for-video 10.
Se uma transmissão ao vivo já iniciada for fornecida, ela ainda será baixada, mas seu progresso não será rastreado.
Uma vez iniciada, a transmissão ao vivo será migrada para a página de downloads.
livestreamExperimentalWarning: Este recurso ainda é experimental. Algo pode quebrar!
accentSelect: 'Accent'
accentSelect: 'Accent'
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Логи'
awaitingLogs: 'Ожидание логов...'
bulkDownload: 'Скачать файлы в zip архиве'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -58,9 +58,15 @@ keys:
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
Once started the livestream will be migrated to the downloads page.
livestreamExperimentalWarning: This feature is still experimental. Something might break!
accentSelect: 'Accent'
accentSelect: 'Accent'
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -46,12 +46,14 @@ keys:
logsTitle: 'Logs'
awaitingLogs: 'Awaiting logs...'
bulkDownload: 'Download files in a zip archive'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: Livestream URL
livestreamStatusWaiting: Waiting/Wait start
livestreamStatusDownloading: Downloading
livestreamStatusCompleted: Completed
livestreamStatusErrored: Errored
livestreamStatusUnknown: Unknown
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
This will monitor yet to start livestream. Each process will be executed with --wait-for-video 10.
If an already started livestream is provided it will be still downloaded but its progress will not be tracked.
@@ -60,4 +62,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -48,12 +48,14 @@ keys:
logsTitle: '日志'
awaitingLogs: '正在等待日志…'
bulkDownload: '下载 zip 压缩包中的文件'
templatesReloadInfo: To register a new template it might need a page reload.
livestreamURLInput: 直播 URL
livestreamStatusWaiting: 等待直播开始
livestreamStatusDownloading: 下载中
livestreamStatusCompleted: 已完成
livestreamStatusErrored: 发生错误
livestreamStatusUnknown: 未知
livestreamNoMonitoring: No livestreams monitored
livestreamDownloadInfo: |
本功能将会监控即将开始的直播流,每个进程都会传入参数:--wait-for-video 10 重试间隔10秒
如果直播已经开始,那么依然可以下载,但是不会记录下载进度。
@@ -62,4 +64,9 @@ keys:
accentSelect: 'Accent'
urlBase: URL base, for reverse proxy support (subdir), defaults to empty
rpcPollingTimeTitle: RPC polling time
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
rpcPollingTimeDescription: A lower interval results in higher CPU usage (server and client side)
generalDownloadSettings: 'General Download Settings'
deleteCookies: Delete Cookies
noFilesFound: 'No Files Found'
tableView: 'Table View'
deleteSelected: 'Delete selected'

View File

@@ -11,6 +11,9 @@ import { useSubscription } from '../hooks/observable'
import { useToast } from '../hooks/toast'
import { ffetch } from '../lib/httpClient'
import { useAtomValue } from 'jotai'
import { useI18n } from '../hooks/useI18n'
const { i18n } = useI18n()
const validateCookie = (cookie: string) => pipe(
cookie,
@@ -164,7 +167,7 @@ const CookiesTextField: React.FC = () => {
defaultValue={savedCookies}
onChange={(e) => cookies$.next(e.currentTarget.value)}
/>
<Button onClick={deleteCookies}>Delete cookies</Button>
<Button onClick={deleteCookies}>{i18n.t('deleteCookies')}</Button>
</>
)
}

View File

@@ -34,7 +34,7 @@ const HomeSpeedDial: React.FC<Props> = ({ onDownloadOpen, onEditorOpen }) => {
>
<SpeedDialAction
icon={listView ? <ViewAgendaIcon /> : <FormatListBulleted />}
tooltipTitle={listView ? 'Card view' : 'Table view'}
tooltipTitle={listView ? 'Card view' : i18n.t('tableView')}
onClick={() => setListView(state => !state)}
/>
<SpeedDialAction

View File

@@ -31,7 +31,7 @@ export default function NoLivestreams() {
</SvgIcon>
</Title>
<Title fontWeight={'500'} fontSize={36} color={'gray'}>
No livestreams monitored
{i18n.t('livestreamNoMonitoring')}
</Title>
</FlexContainer>
)

View File

@@ -216,7 +216,7 @@ export default function Downloaded() {
onClick={() => setShowMenu(false)}
>
<List sx={{ width: '100%', bgcolor: 'background.paper' }}>
{selectable.length === 0 && 'No files found'}
{selectable.length === 0 && i18n.t('noFilesFound')}
{selectable.map((file, idx) => (
<ListItem
onContextMenu={(e) => {
@@ -275,7 +275,7 @@ export default function Downloaded() {
>
<SpeedDialAction
icon={<DeleteForeverIcon />}
tooltipTitle={`Delete selected`}
tooltipTitle={i18n.t('deleteSelected')}
tooltipOpen
onClick={() => {
if (selected$.value.length > 0) {

View File

@@ -284,8 +284,8 @@ export default function Settings() {
label={i18n.t('themeSelect')}
onChange={handleThemeChange}
>
<MenuItem value="light">Light</MenuItem>
<MenuItem value="dark">Dark</MenuItem>
<MenuItem value="light">{i18n.t('lightThemeButton')}</MenuItem>
<MenuItem value="dark">{i18n.t('darkThemeButton')}</MenuItem>
<MenuItem value="system">System</MenuItem>
</Select>
</FormControl>
@@ -308,7 +308,7 @@ export default function Settings() {
</Grid>
</Grid>
<Typography variant="h6" color="primary" sx={{ mt: 2, mb: 0.5 }}>
General download settings
{i18n.t('generalDownloadSettings')}
</Typography>
<FormControlLabel