fix: translations of new options

This commit is contained in:
Tazio
2025-12-01 11:06:50 +01:00
parent e30d20e6d1
commit bf7e10b1cb
8 changed files with 6428 additions and 12334 deletions
+6363 -12315
View File
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -132,7 +132,14 @@
"validationErrorEnterNumber": "Please enter a valid number",
"validationErrorDuration": "Duration must be between ${min} and ${max} ${unit}",
"shortcutAlreadyAssigned": "Shortcut already assigned to ${action}",
"shortcutUpdated": "Shortcut updated for ${action}"
"shortcutUpdated": "Shortcut updated for ${action}",
"autoSkip": "Auto Skip",
"autoSkipIntro": "Auto Skip Intro",
"autoSkipIntroDescription": "Automatically skip intro markers after a few seconds",
"autoSkipCredits": "Auto Skip Credits",
"autoSkipCreditsDescription": "Automatically skip credits and play next episode",
"autoSkipDelay": "Auto Skip Delay",
"autoSkipDelayDescription": "Wait ${seconds} seconds before auto-skipping"
},
"search": {
"hint": "Search movies, shows, music...",
+8 -1
View File
@@ -133,7 +133,14 @@
"validationErrorEnterNumber": "Bitte eine gültige Zahl eingeben",
"validationErrorDuration": "Dauer muss zwischen ${min} und ${max} ${unit} liegen",
"shortcutAlreadyAssigned": "Tastenkürzel bereits zugewiesen an ${action}",
"shortcutUpdated": "Tastenkürzel aktualisiert für ${action}"
"shortcutUpdated": "Tastenkürzel aktualisiert für ${action}",
"autoSkip": "Automatisches Überspringen",
"autoSkipIntro": "Intro automatisch überspringen",
"autoSkipIntroDescription": "Intro-Marker nach wenigen Sekunden automatisch überspringen",
"autoSkipCredits": "Abspann automatisch überspringen",
"autoSkipCreditsDescription": "Abspann automatisch überspringen und nächste Episode abspielen",
"autoSkipDelay": "Verzögerung für automatisches Überspringen",
"autoSkipDelayDescription": "${seconds} Sekunden vor dem automatischen Überspringen warten"
},
"search": {
"hint": "Filme, Serien, Musik suchen...",
+8 -1
View File
@@ -133,7 +133,14 @@
"validationErrorEnterNumber": "Inserisci un numero valido",
"validationErrorDuration": "la durata deve essere compresa tra ${min} e ${max} ${unit}",
"shortcutAlreadyAssigned": "Scorciatoia già assegnata a ${action}",
"shortcutUpdated": "Scorciatoia aggiornata per ${action}"
"shortcutUpdated": "Scorciatoia aggiornata per ${action}",
"autoSkip": "Salto Automatico",
"autoSkipIntro": "Salta Intro Automaticamente",
"autoSkipIntroDescription": "Salta automaticamente i marcatori dell'intro dopo alcuni secondi",
"autoSkipCredits": "Salta Crediti Automaticamente",
"autoSkipCreditsDescription": "Salta automaticamente i crediti e riproduci l'episodio successivo",
"autoSkipDelay": "Ritardo Salto Automatico",
"autoSkipDelayDescription": "Aspetta ${seconds} secondi prima del salto automatico"
},
"search": {
"hint": "Cerca film. spettacoli, musica...",
+8 -1
View File
@@ -133,7 +133,14 @@
"validationErrorEnterNumber": "Voer een geldig nummer in",
"validationErrorDuration": "Duur moet tussen ${min} en ${max} ${unit} zijn",
"shortcutAlreadyAssigned": "Sneltoets al toegewezen aan ${action}",
"shortcutUpdated": "Sneltoets bijgewerkt voor ${action}"
"shortcutUpdated": "Sneltoets bijgewerkt voor ${action}",
"autoSkip": "Automatisch Overslaan",
"autoSkipIntro": "Intro Automatisch Overslaan",
"autoSkipIntroDescription": "Intro-markeringen na enkele seconden automatisch overslaan",
"autoSkipCredits": "Credits Automatisch Overslaan",
"autoSkipCreditsDescription": "Credits automatisch overslaan en volgende aflevering afspelen",
"autoSkipDelay": "Vertraging Automatisch Overslaan",
"autoSkipDelayDescription": "${seconds} seconden wachten voor automatisch overslaan"
},
"search": {
"hint": "Zoek films, series, muziek...",
+8 -1
View File
@@ -133,7 +133,14 @@
"validationErrorEnterNumber": "Vänligen ange ett giltigt nummer",
"validationErrorDuration": "Tiden måste vara mellan ${min} och ${max} ${unit}",
"shortcutAlreadyAssigned": "Genväg redan tilldelad ${action}",
"shortcutUpdated": "Genväg uppdaterad för ${action}"
"shortcutUpdated": "Genväg uppdaterad för ${action}",
"autoSkip": "Auto Hoppa Över",
"autoSkipIntro": "Hoppa Över Intro Automatiskt",
"autoSkipIntroDescription": "Hoppa automatiskt över intro-markörer efter några sekunder",
"autoSkipCredits": "Hoppa Över Credits Automatiskt",
"autoSkipCreditsDescription": "Hoppa automatiskt över credits och spela nästa avsnitt",
"autoSkipDelay": "Fördröjning Auto Hoppa Över",
"autoSkipDelayDescription": "Vänta ${seconds} sekunder innan automatisk överhoppning"
},
"search": {
"hint": "Sök filmer, serier, musik...",
+8 -1
View File
@@ -133,7 +133,14 @@
"validationErrorEnterNumber": "请输入一个有效的数字",
"validationErrorDuration": "时长必须介于 ${min} 和 ${max} ${unit} 之间",
"shortcutAlreadyAssigned": "快捷键已被分配给 ${action}",
"shortcutUpdated": "快捷键已为 ${action} 更新"
"shortcutUpdated": "快捷键已为 ${action} 更新",
"autoSkip": "自动跳过",
"autoSkipIntro": "自动跳过片头",
"autoSkipIntroDescription": "几秒钟后自动跳过片头标记",
"autoSkipCredits": "自动跳过片尾",
"autoSkipCreditsDescription": "自动跳过片尾并播放下一集",
"autoSkipDelay": "自动跳过延迟",
"autoSkipDelayDescription": "自动跳过前等待 ${seconds} 秒"
},
"search": {
"hint": "搜索电影、系列、音乐...",
+17 -13
View File
@@ -301,7 +301,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
Padding(
padding: const EdgeInsets.fromLTRB(16, 8, 16, 0),
child: Text(
'Auto Skip',
t.settings.autoSkip,
style: Theme.of(context).textTheme.titleSmall?.copyWith(
fontWeight: FontWeight.w600,
color: Theme.of(context).colorScheme.primary,
@@ -310,8 +310,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
SwitchListTile(
secondary: const Icon(Icons.fast_forward),
title: const Text('Auto Skip Intro'),
subtitle: const Text('Automatically skip intro markers after a few seconds'),
title: Text(t.settings.autoSkipIntro),
subtitle: Text(t.settings.autoSkipIntroDescription),
value: _autoSkipIntro,
onChanged: (value) async {
setState(() {
@@ -322,8 +322,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
SwitchListTile(
secondary: const Icon(Icons.skip_next),
title: const Text('Auto Skip Credits'),
subtitle: const Text('Automatically skip credits and play next episode'),
title: Text(t.settings.autoSkipCredits),
subtitle: Text(t.settings.autoSkipCreditsDescription),
value: _autoSkipCredits,
onChanged: (value) async {
setState(() {
@@ -334,8 +334,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
ListTile(
leading: const Icon(Icons.timer),
title: const Text('Auto Skip Delay'),
subtitle: Text('Wait $_autoSkipDelay seconds before auto-skipping'),
title: Text(t.settings.autoSkipDelay),
subtitle: Text(t.settings.autoSkipDelayDescription(seconds: _autoSkipDelay.toString())),
trailing: const Icon(Icons.chevron_right),
onTap: () => _showAutoSkipDelayDialog(),
),
@@ -811,24 +811,28 @@ class _SettingsScreenState extends State<SettingsScreen> {
return StatefulBuilder(
builder: (context, setDialogState) {
return AlertDialog(
title: const Text('Auto Skip Delay'),
title: Text(t.settings.autoSkipDelay),
content: TextField(
controller: controller,
keyboardType: TextInputType.number,
decoration: InputDecoration(
labelText: 'Seconds',
hintText: 'Enter delay between 1-30 seconds',
labelText: t.settings.secondsLabel,
hintText: t.settings.durationHint(min: 1, max: 30),
errorText: errorText,
suffixText: 's',
suffixText: t.settings.secondsShort,
),
autofocus: true,
onChanged: (value) {
final parsed = int.tryParse(value);
setDialogState(() {
if (parsed == null) {
errorText = 'Please enter a valid number';
errorText = t.settings.validationErrorEnterNumber;
} else if (parsed < 1 || parsed > 30) {
errorText = 'Delay must be between 1 and 30 seconds';
errorText = t.settings.validationErrorDuration(
min: 1,
max: 30,
unit: t.settings.secondsLabel.toLowerCase(),
);
} else {
errorText = null;
}