feat: replace mpv config UI with raw text editor
This commit is contained in:
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Lizenzen",
|
"licenses": "Lizenzen",
|
||||||
"switchProfile": "Profil wechseln",
|
"switchProfile": "Profil wechseln",
|
||||||
"subtitleStyling": "Untertitel-Stil",
|
"subtitleStyling": "Untertitel-Stil",
|
||||||
"mpvConfig": "MPV-Konfiguration",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Protokolle"
|
"logs": "Protokolle"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Player-Backend",
|
"playerBackend": "Player-Backend",
|
||||||
"exoPlayer": "ExoPlayer (Empfohlen)",
|
"exoPlayer": "ExoPlayer (Empfohlen)",
|
||||||
"exoPlayerDescription": "Android-nativer Player mit besserer Hardware-Unterstützung",
|
"exoPlayerDescription": "Android-nativer Player mit besserer Hardware-Unterstützung",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung",
|
"mpvDescription": "Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung",
|
||||||
"hardwareDecoding": "Hardware-Decodierung",
|
"hardwareDecoding": "Hardware-Decodierung",
|
||||||
"hardwareDecodingDescription": "Hardwarebeschleunigung verwenden, sofern verfügbar",
|
"hardwareDecodingDescription": "Hardwarebeschleunigung verwenden, sofern verfügbar",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV-Konfiguration",
|
"title": "mpv-Konfiguration",
|
||||||
"description": "Erweiterte Videoplayer-Einstellungen",
|
"description": "Erweiterte Videoplayer-Einstellungen",
|
||||||
"properties": "Eigenschaften",
|
|
||||||
"presets": "Voreinstellungen",
|
"presets": "Voreinstellungen",
|
||||||
"noProperties": "Keine Eigenschaften konfiguriert",
|
|
||||||
"noPresets": "Keine gespeicherten Voreinstellungen",
|
"noPresets": "Keine gespeicherten Voreinstellungen",
|
||||||
"addProperty": "Eigenschaft hinzufügen",
|
|
||||||
"editProperty": "Eigenschaft bearbeiten",
|
|
||||||
"deleteProperty": "Eigenschaft löschen",
|
|
||||||
"propertyKey": "Eigenschaftsschlüssel",
|
|
||||||
"propertyKeyHint": "z.B. hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Eigenschaftswert",
|
|
||||||
"propertyValueHint": "z.B. auto, 256000000",
|
|
||||||
"saveAsPreset": "Als Voreinstellung speichern...",
|
"saveAsPreset": "Als Voreinstellung speichern...",
|
||||||
"presetName": "Name der Voreinstellung",
|
"presetName": "Name der Voreinstellung",
|
||||||
"presetNameHint": "Namen für diese Voreinstellung eingeben",
|
"presetNameHint": "Namen für diese Voreinstellung eingeben",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Voreinstellung geladen",
|
"presetLoaded": "Voreinstellung geladen",
|
||||||
"presetDeleted": "Voreinstellung gelöscht",
|
"presetDeleted": "Voreinstellung gelöscht",
|
||||||
"confirmDeletePreset": "Möchten Sie diese Voreinstellung wirklich löschen?",
|
"confirmDeletePreset": "Möchten Sie diese Voreinstellung wirklich löschen?",
|
||||||
"confirmDeleteProperty": "Möchten Sie diese Eigenschaft wirklich löschen?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} Einträge"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Aktion bestätigen"
|
"confirmAction": "Aktion bestätigen"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licenses",
|
"licenses": "Licenses",
|
||||||
"switchProfile": "Switch Profile",
|
"switchProfile": "Switch Profile",
|
||||||
"subtitleStyling": "Subtitle Styling",
|
"subtitleStyling": "Subtitle Styling",
|
||||||
"mpvConfig": "MPV Configuration",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Logs"
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Player Backend",
|
"playerBackend": "Player Backend",
|
||||||
"exoPlayer": "ExoPlayer (Recommended)",
|
"exoPlayer": "ExoPlayer (Recommended)",
|
||||||
"exoPlayerDescription": "Android native player with better hardware support",
|
"exoPlayerDescription": "Android native player with better hardware support",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Advanced player with more features and ASS subtitle support",
|
"mpvDescription": "Advanced player with more features and ASS subtitle support",
|
||||||
"hardwareDecoding": "Hardware Decoding",
|
"hardwareDecoding": "Hardware Decoding",
|
||||||
"hardwareDecodingDescription": "Use hardware acceleration when available",
|
"hardwareDecodingDescription": "Use hardware acceleration when available",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV Configuration",
|
"title": "mpv.conf",
|
||||||
"description": "Advanced video player settings",
|
"description": "Advanced video player settings",
|
||||||
"properties": "Properties",
|
|
||||||
"presets": "Presets",
|
"presets": "Presets",
|
||||||
"noProperties": "No properties configured",
|
|
||||||
"noPresets": "No saved presets",
|
"noPresets": "No saved presets",
|
||||||
"addProperty": "Add Property",
|
|
||||||
"editProperty": "Edit Property",
|
|
||||||
"deleteProperty": "Delete Property",
|
|
||||||
"propertyKey": "Property Key",
|
|
||||||
"propertyKeyHint": "e.g., hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Property Value",
|
|
||||||
"propertyValueHint": "e.g., auto, 256000000",
|
|
||||||
"saveAsPreset": "Save as Preset...",
|
"saveAsPreset": "Save as Preset...",
|
||||||
"presetName": "Preset Name",
|
"presetName": "Preset Name",
|
||||||
"presetNameHint": "Enter a name for this preset",
|
"presetNameHint": "Enter a name for this preset",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Preset loaded",
|
"presetLoaded": "Preset loaded",
|
||||||
"presetDeleted": "Preset deleted",
|
"presetDeleted": "Preset deleted",
|
||||||
"confirmDeletePreset": "Are you sure you want to delete this preset?",
|
"confirmDeletePreset": "Are you sure you want to delete this preset?",
|
||||||
"confirmDeleteProperty": "Are you sure you want to delete this property?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} entries"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Confirm Action"
|
"confirmAction": "Confirm Action"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licencias",
|
"licenses": "Licencias",
|
||||||
"switchProfile": "Cambiar Perfil",
|
"switchProfile": "Cambiar Perfil",
|
||||||
"subtitleStyling": "Estilo de Subtítulos",
|
"subtitleStyling": "Estilo de Subtítulos",
|
||||||
"mpvConfig": "Configuración de MPV",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Logs"
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Reproductor",
|
"playerBackend": "Reproductor",
|
||||||
"exoPlayer": "ExoPlayer (Recomendado)",
|
"exoPlayer": "ExoPlayer (Recomendado)",
|
||||||
"exoPlayerDescription": "Reproductor nativo de Android con mejor soporte de hardware",
|
"exoPlayerDescription": "Reproductor nativo de Android con mejor soporte de hardware",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Reproductor avanzado con más funciones y soporte de subtítulos ASS",
|
"mpvDescription": "Reproductor avanzado con más funciones y soporte de subtítulos ASS",
|
||||||
"hardwareDecoding": "Decodificación por Hardware",
|
"hardwareDecoding": "Decodificación por Hardware",
|
||||||
"hardwareDecodingDescription": "Usar aceleración por hardware cuando esté disponible",
|
"hardwareDecodingDescription": "Usar aceleración por hardware cuando esté disponible",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "Configuración de MPV",
|
"title": "Configuración de mpv",
|
||||||
"description": "Ajustes avanzados del reproductor de video",
|
"description": "Ajustes avanzados del reproductor de video",
|
||||||
"properties": "Propiedades",
|
|
||||||
"presets": "Ajustes preestablecidos",
|
"presets": "Ajustes preestablecidos",
|
||||||
"noProperties": "No hay propiedades configuradas",
|
|
||||||
"noPresets": "No hay ajustes guardados",
|
"noPresets": "No hay ajustes guardados",
|
||||||
"addProperty": "Añadir Propiedad",
|
|
||||||
"editProperty": "Editar Propiedad",
|
|
||||||
"deleteProperty": "Eliminar Propiedad",
|
|
||||||
"propertyKey": "Clave de la Propiedad",
|
|
||||||
"propertyKeyHint": "ej., hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Valor de la Propiedad",
|
|
||||||
"propertyValueHint": "ej., auto, 256000000",
|
|
||||||
"saveAsPreset": "Guardar como Ajuste...",
|
"saveAsPreset": "Guardar como Ajuste...",
|
||||||
"presetName": "Nombre del Ajuste",
|
"presetName": "Nombre del Ajuste",
|
||||||
"presetNameHint": "Introduce un nombre para este ajuste",
|
"presetNameHint": "Introduce un nombre para este ajuste",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Ajuste cargado",
|
"presetLoaded": "Ajuste cargado",
|
||||||
"presetDeleted": "Ajuste eliminado",
|
"presetDeleted": "Ajuste eliminado",
|
||||||
"confirmDeletePreset": "¿Estás seguro de que quieres eliminar este ajuste?",
|
"confirmDeletePreset": "¿Estás seguro de que quieres eliminar este ajuste?",
|
||||||
"confirmDeleteProperty": "¿Estás seguro de que quieres eliminar esta propiedad?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} entradas"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Confirmar Acción"
|
"confirmAction": "Confirmar Acción"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licenses",
|
"licenses": "Licenses",
|
||||||
"switchProfile": "Changer de profil",
|
"switchProfile": "Changer de profil",
|
||||||
"subtitleStyling": "Configuration des sous-titres",
|
"subtitleStyling": "Configuration des sous-titres",
|
||||||
"mpvConfig": "Configuration MPV",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Logs"
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Moteur de lecture",
|
"playerBackend": "Moteur de lecture",
|
||||||
"exoPlayer": "ExoPlayer (Recommandé)",
|
"exoPlayer": "ExoPlayer (Recommandé)",
|
||||||
"exoPlayerDescription": "Lecteur natif Android avec meilleur support matériel",
|
"exoPlayerDescription": "Lecteur natif Android avec meilleur support matériel",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS",
|
"mpvDescription": "Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS",
|
||||||
"hardwareDecoding": "Décodage matériel",
|
"hardwareDecoding": "Décodage matériel",
|
||||||
"hardwareDecodingDescription": "Utilisez l'accélération matérielle lorsqu'elle est disponible.",
|
"hardwareDecodingDescription": "Utilisez l'accélération matérielle lorsqu'elle est disponible.",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "Configuration MPV",
|
"title": "Configuration mpv",
|
||||||
"description": "Paramètres avancés du lecteur vidéo",
|
"description": "Paramètres avancés du lecteur vidéo",
|
||||||
"properties": "Propriétés",
|
|
||||||
"presets": "Préréglages",
|
"presets": "Préréglages",
|
||||||
"noProperties": "Aucune propriété configurée",
|
|
||||||
"noPresets": "Aucun préréglage enregistré",
|
"noPresets": "Aucun préréglage enregistré",
|
||||||
"addProperty": "Ajouter une propriété",
|
|
||||||
"editProperty": "Modifier la propriété",
|
|
||||||
"deleteProperty": "Supprimer la propriété",
|
|
||||||
"propertyKey": "Clé",
|
|
||||||
"propertyKeyHint": "e.g., hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Valeur",
|
|
||||||
"propertyValueHint": "e.g., auto, 256000000",
|
|
||||||
"saveAsPreset": "Enregistrer comme préréglage...",
|
"saveAsPreset": "Enregistrer comme préréglage...",
|
||||||
"presetName": "Nom du préréglage",
|
"presetName": "Nom du préréglage",
|
||||||
"presetNameHint": "Entrez un nom pour ce préréglage",
|
"presetNameHint": "Entrez un nom pour ce préréglage",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Préréglage chargé",
|
"presetLoaded": "Préréglage chargé",
|
||||||
"presetDeleted": "Préréglage supprimé",
|
"presetDeleted": "Préréglage supprimé",
|
||||||
"confirmDeletePreset": "Êtes-vous sûr de vouloir supprimer ce préréglage ?",
|
"confirmDeletePreset": "Êtes-vous sûr de vouloir supprimer ce préréglage ?",
|
||||||
"confirmDeleteProperty": "Êtes-vous sûr de vouloir supprimer cette propriété ?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} entrées"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Confirmer l'action"
|
"confirmAction": "Confirmer l'action"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licenze",
|
"licenses": "Licenze",
|
||||||
"switchProfile": "Cambia profilo",
|
"switchProfile": "Cambia profilo",
|
||||||
"subtitleStyling": "Stile sottotitoli",
|
"subtitleStyling": "Stile sottotitoli",
|
||||||
"mpvConfig": "Configurazione MPV",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Registro"
|
"logs": "Registro"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Motore di riproduzione",
|
"playerBackend": "Motore di riproduzione",
|
||||||
"exoPlayer": "ExoPlayer (Consigliato)",
|
"exoPlayer": "ExoPlayer (Consigliato)",
|
||||||
"exoPlayerDescription": "Lettore nativo Android con migliore supporto hardware",
|
"exoPlayerDescription": "Lettore nativo Android con migliore supporto hardware",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Lettore avanzato con più funzionalità e supporto sottotitoli ASS",
|
"mpvDescription": "Lettore avanzato con più funzionalità e supporto sottotitoli ASS",
|
||||||
"hardwareDecoding": "Decodifica Hardware",
|
"hardwareDecoding": "Decodifica Hardware",
|
||||||
"hardwareDecodingDescription": "Utilizza l'accelerazione hardware quando disponibile",
|
"hardwareDecodingDescription": "Utilizza l'accelerazione hardware quando disponibile",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "Configurazione MPV",
|
"title": "Configurazione mpv",
|
||||||
"description": "Impostazioni avanzate del lettore video",
|
"description": "Impostazioni avanzate del lettore video",
|
||||||
"properties": "Proprietà",
|
|
||||||
"presets": "Preset",
|
"presets": "Preset",
|
||||||
"noProperties": "Nessuna proprietà configurata",
|
|
||||||
"noPresets": "Nessun preset salvato",
|
"noPresets": "Nessun preset salvato",
|
||||||
"addProperty": "Aggiungi proprietà",
|
|
||||||
"editProperty": "Modifica proprietà",
|
|
||||||
"deleteProperty": "Elimina proprietà",
|
|
||||||
"propertyKey": "Chiave proprietà",
|
|
||||||
"propertyKeyHint": "es. hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Valore proprietà",
|
|
||||||
"propertyValueHint": "es. auto, 256000000",
|
|
||||||
"saveAsPreset": "Salva come preset...",
|
"saveAsPreset": "Salva come preset...",
|
||||||
"presetName": "Nome preset",
|
"presetName": "Nome preset",
|
||||||
"presetNameHint": "Inserisci un nome per questo preset",
|
"presetNameHint": "Inserisci un nome per questo preset",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Preset caricato",
|
"presetLoaded": "Preset caricato",
|
||||||
"presetDeleted": "Preset eliminato",
|
"presetDeleted": "Preset eliminato",
|
||||||
"confirmDeletePreset": "Sei sicuro di voler eliminare questo preset?",
|
"confirmDeletePreset": "Sei sicuro di voler eliminare questo preset?",
|
||||||
"confirmDeleteProperty": "Sei sicuro di voler eliminare questa proprietà?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} voci"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Conferma azione"
|
"confirmAction": "Conferma azione"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "라이선스",
|
"licenses": "라이선스",
|
||||||
"switchProfile": "프로필 전환",
|
"switchProfile": "프로필 전환",
|
||||||
"subtitleStyling": "자막 스타일 설정",
|
"subtitleStyling": "자막 스타일 설정",
|
||||||
"mpvConfig": "MPV 설정",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "로그"
|
"logs": "로그"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "플레이어 백엔드",
|
"playerBackend": "플레이어 백엔드",
|
||||||
"exoPlayer": "ExoPlayer (권장)",
|
"exoPlayer": "ExoPlayer (권장)",
|
||||||
"exoPlayerDescription": "더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어",
|
"exoPlayerDescription": "더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "더 많은 기능과 ASS 자막을 지원하는 고급 플레이어",
|
"mpvDescription": "더 많은 기능과 ASS 자막을 지원하는 고급 플레이어",
|
||||||
"hardwareDecoding": "하드웨어 디코딩",
|
"hardwareDecoding": "하드웨어 디코딩",
|
||||||
"hardwareDecodingDescription": "가능한 경우 하드웨어 가속을 사용합니다",
|
"hardwareDecodingDescription": "가능한 경우 하드웨어 가속을 사용합니다",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV 설정",
|
"title": "mpv 설정",
|
||||||
"description": "고급 비디오 플레이어 설정",
|
"description": "고급 비디오 플레이어 설정",
|
||||||
"properties": "속성",
|
|
||||||
"presets": "사전 설정",
|
"presets": "사전 설정",
|
||||||
"noProperties": "설정된 속성이 없습니다",
|
|
||||||
"noPresets": "저장된 사전 설정이 없습니다",
|
"noPresets": "저장된 사전 설정이 없습니다",
|
||||||
"addProperty": "속성 추가",
|
|
||||||
"editProperty": "속성 편집",
|
|
||||||
"deleteProperty": "속성 삭제",
|
|
||||||
"propertyKey": "속성 키",
|
|
||||||
"propertyKeyHint": "예: hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "속성값",
|
|
||||||
"propertyValueHint": "예: auto, 256000000",
|
|
||||||
"saveAsPreset": "프리셋으로 저장...",
|
"saveAsPreset": "프리셋으로 저장...",
|
||||||
"presetName": "프리셋 이름",
|
"presetName": "프리셋 이름",
|
||||||
"presetNameHint": "이 프리셋의 이름을 입력하세요",
|
"presetNameHint": "이 프리셋의 이름을 입력하세요",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "프리셋이 로드 되었습니다",
|
"presetLoaded": "프리셋이 로드 되었습니다",
|
||||||
"presetDeleted": "프리셋이 삭제 되었습니다",
|
"presetDeleted": "프리셋이 삭제 되었습니다",
|
||||||
"confirmDeletePreset": "이 프리셋을 삭제 하시겠습니까?",
|
"confirmDeletePreset": "이 프리셋을 삭제 하시겠습니까?",
|
||||||
"confirmDeleteProperty": "이 속성을 삭제 하시겠습니까?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} 항목"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "확인"
|
"confirmAction": "확인"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licenties",
|
"licenses": "Licenties",
|
||||||
"switchProfile": "Wissel van profiel",
|
"switchProfile": "Wissel van profiel",
|
||||||
"subtitleStyling": "Ondertitel opmaak",
|
"subtitleStyling": "Ondertitel opmaak",
|
||||||
"mpvConfig": "MPV-configuratie",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Logbestanden"
|
"logs": "Logbestanden"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Speler backend",
|
"playerBackend": "Speler backend",
|
||||||
"exoPlayer": "ExoPlayer (Aanbevolen)",
|
"exoPlayer": "ExoPlayer (Aanbevolen)",
|
||||||
"exoPlayerDescription": "Android-native speler met betere hardware-ondersteuning",
|
"exoPlayerDescription": "Android-native speler met betere hardware-ondersteuning",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Geavanceerde speler met meer functies en ASS-ondertitelondersteuning",
|
"mpvDescription": "Geavanceerde speler met meer functies en ASS-ondertitelondersteuning",
|
||||||
"hardwareDecoding": "Hardware decodering",
|
"hardwareDecoding": "Hardware decodering",
|
||||||
"hardwareDecodingDescription": "Gebruik hardware versnelling indien beschikbaar",
|
"hardwareDecodingDescription": "Gebruik hardware versnelling indien beschikbaar",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV-configuratie",
|
"title": "mpv-configuratie",
|
||||||
"description": "Geavanceerde videospeler-instellingen",
|
"description": "Geavanceerde videospeler-instellingen",
|
||||||
"properties": "Eigenschappen",
|
|
||||||
"presets": "Voorinstellingen",
|
"presets": "Voorinstellingen",
|
||||||
"noProperties": "Geen eigenschappen geconfigureerd",
|
|
||||||
"noPresets": "Geen opgeslagen voorinstellingen",
|
"noPresets": "Geen opgeslagen voorinstellingen",
|
||||||
"addProperty": "Eigenschap toevoegen",
|
|
||||||
"editProperty": "Eigenschap bewerken",
|
|
||||||
"deleteProperty": "Eigenschap verwijderen",
|
|
||||||
"propertyKey": "Eigenschapssleutel",
|
|
||||||
"propertyKeyHint": "bijv. hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Eigenschapswaarde",
|
|
||||||
"propertyValueHint": "bijv. auto, 256000000",
|
|
||||||
"saveAsPreset": "Opslaan als voorinstelling...",
|
"saveAsPreset": "Opslaan als voorinstelling...",
|
||||||
"presetName": "Naam voorinstelling",
|
"presetName": "Naam voorinstelling",
|
||||||
"presetNameHint": "Voer een naam in voor deze voorinstelling",
|
"presetNameHint": "Voer een naam in voor deze voorinstelling",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Voorinstelling geladen",
|
"presetLoaded": "Voorinstelling geladen",
|
||||||
"presetDeleted": "Voorinstelling verwijderd",
|
"presetDeleted": "Voorinstelling verwijderd",
|
||||||
"confirmDeletePreset": "Weet je zeker dat je deze voorinstelling wilt verwijderen?",
|
"confirmDeletePreset": "Weet je zeker dat je deze voorinstelling wilt verwijderen?",
|
||||||
"confirmDeleteProperty": "Weet je zeker dat je deze eigenschap wilt verwijderen?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} items"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Bevestig actie"
|
"confirmAction": "Bevestig actie"
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
/// To regenerate, run: `dart run slang`
|
/// To regenerate, run: `dart run slang`
|
||||||
///
|
///
|
||||||
/// Locales: 9
|
/// Locales: 9
|
||||||
/// Strings: 7263 (807 per locale)
|
/// Strings: 7173 (797 per locale)
|
||||||
///
|
///
|
||||||
/// Built on 2026-03-02 at 20:21 UTC
|
/// Built on 2026-03-02 at 21:41 UTC
|
||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint, unused_import
|
// ignore_for_file: type=lint, unused_import
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensDe implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Lizenzen';
|
@override String get licenses => 'Lizenzen';
|
||||||
@override String get switchProfile => 'Profil wechseln';
|
@override String get switchProfile => 'Profil wechseln';
|
||||||
@override String get subtitleStyling => 'Untertitel-Stil';
|
@override String get subtitleStyling => 'Untertitel-Stil';
|
||||||
@override String get mpvConfig => 'MPV-Konfiguration';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Protokolle';
|
@override String get logs => 'Protokolle';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Player-Backend';
|
@override String get playerBackend => 'Player-Backend';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Empfohlen)';
|
@override String get exoPlayer => 'ExoPlayer (Empfohlen)';
|
||||||
@override String get exoPlayerDescription => 'Android-nativer Player mit besserer Hardware-Unterstützung';
|
@override String get exoPlayerDescription => 'Android-nativer Player mit besserer Hardware-Unterstützung';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung';
|
@override String get mpvDescription => 'Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung';
|
||||||
@override String get hardwareDecoding => 'Hardware-Decodierung';
|
@override String get hardwareDecoding => 'Hardware-Decodierung';
|
||||||
@override String get hardwareDecodingDescription => 'Hardwarebeschleunigung verwenden, sofern verfügbar';
|
@override String get hardwareDecodingDescription => 'Hardwarebeschleunigung verwenden, sofern verfügbar';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigDe implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsDe _root; // ignore: unused_field
|
final TranslationsDe _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'MPV-Konfiguration';
|
@override String get title => 'mpv-Konfiguration';
|
||||||
@override String get description => 'Erweiterte Videoplayer-Einstellungen';
|
@override String get description => 'Erweiterte Videoplayer-Einstellungen';
|
||||||
@override String get properties => 'Eigenschaften';
|
|
||||||
@override String get presets => 'Voreinstellungen';
|
@override String get presets => 'Voreinstellungen';
|
||||||
@override String get noProperties => 'Keine Eigenschaften konfiguriert';
|
|
||||||
@override String get noPresets => 'Keine gespeicherten Voreinstellungen';
|
@override String get noPresets => 'Keine gespeicherten Voreinstellungen';
|
||||||
@override String get addProperty => 'Eigenschaft hinzufügen';
|
|
||||||
@override String get editProperty => 'Eigenschaft bearbeiten';
|
|
||||||
@override String get deleteProperty => 'Eigenschaft löschen';
|
|
||||||
@override String get propertyKey => 'Eigenschaftsschlüssel';
|
|
||||||
@override String get propertyKeyHint => 'z.B. hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Eigenschaftswert';
|
|
||||||
@override String get propertyValueHint => 'z.B. auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Als Voreinstellung speichern...';
|
@override String get saveAsPreset => 'Als Voreinstellung speichern...';
|
||||||
@override String get presetName => 'Name der Voreinstellung';
|
@override String get presetName => 'Name der Voreinstellung';
|
||||||
@override String get presetNameHint => 'Namen für diese Voreinstellung eingeben';
|
@override String get presetNameHint => 'Namen für diese Voreinstellung eingeben';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigDe implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Voreinstellung geladen';
|
@override String get presetLoaded => 'Voreinstellung geladen';
|
||||||
@override String get presetDeleted => 'Voreinstellung gelöscht';
|
@override String get presetDeleted => 'Voreinstellung gelöscht';
|
||||||
@override String get confirmDeletePreset => 'Möchten Sie diese Voreinstellung wirklich löschen?';
|
@override String get confirmDeletePreset => 'Möchten Sie diese Voreinstellung wirklich löschen?';
|
||||||
@override String get confirmDeleteProperty => 'Möchten Sie diese Eigenschaft wirklich löschen?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} Einträge';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsDe {
|
|||||||
'screens.licenses' => 'Lizenzen',
|
'screens.licenses' => 'Lizenzen',
|
||||||
'screens.switchProfile' => 'Profil wechseln',
|
'screens.switchProfile' => 'Profil wechseln',
|
||||||
'screens.subtitleStyling' => 'Untertitel-Stil',
|
'screens.subtitleStyling' => 'Untertitel-Stil',
|
||||||
'screens.mpvConfig' => 'MPV-Konfiguration',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Protokolle',
|
'screens.logs' => 'Protokolle',
|
||||||
'update.available' => 'Update verfügbar',
|
'update.available' => 'Update verfügbar',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Version ${version} ist verfügbar',
|
'update.versionAvailable' => ({required Object version}) => 'Version ${version} ist verfügbar',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsDe {
|
|||||||
'settings.playerBackend' => 'Player-Backend',
|
'settings.playerBackend' => 'Player-Backend',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Empfohlen)',
|
'settings.exoPlayer' => 'ExoPlayer (Empfohlen)',
|
||||||
'settings.exoPlayerDescription' => 'Android-nativer Player mit besserer Hardware-Unterstützung',
|
'settings.exoPlayerDescription' => 'Android-nativer Player mit besserer Hardware-Unterstützung',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung',
|
'settings.mpvDescription' => 'Erweiterter Player mit mehr Funktionen und ASS-Untertitel-Unterstützung',
|
||||||
'settings.hardwareDecoding' => 'Hardware-Decodierung',
|
'settings.hardwareDecoding' => 'Hardware-Decodierung',
|
||||||
'settings.hardwareDecodingDescription' => 'Hardwarebeschleunigung verwenden, sofern verfügbar',
|
'settings.hardwareDecodingDescription' => 'Hardwarebeschleunigung verwenden, sofern verfügbar',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsDe {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Hintergrunddeckkraft',
|
'subtitlingStyling.backgroundOpacity' => 'Hintergrunddeckkraft',
|
||||||
'subtitlingStyling.backgroundColor' => 'Hintergrundfarbe',
|
'subtitlingStyling.backgroundColor' => 'Hintergrundfarbe',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV-Konfiguration',
|
'mpvConfig.title' => 'mpv-Konfiguration',
|
||||||
'mpvConfig.description' => 'Erweiterte Videoplayer-Einstellungen',
|
'mpvConfig.description' => 'Erweiterte Videoplayer-Einstellungen',
|
||||||
'mpvConfig.properties' => 'Eigenschaften',
|
|
||||||
'mpvConfig.presets' => 'Voreinstellungen',
|
'mpvConfig.presets' => 'Voreinstellungen',
|
||||||
'mpvConfig.noProperties' => 'Keine Eigenschaften konfiguriert',
|
|
||||||
'mpvConfig.noPresets' => 'Keine gespeicherten Voreinstellungen',
|
'mpvConfig.noPresets' => 'Keine gespeicherten Voreinstellungen',
|
||||||
'mpvConfig.addProperty' => 'Eigenschaft hinzufügen',
|
|
||||||
'mpvConfig.editProperty' => 'Eigenschaft bearbeiten',
|
|
||||||
'mpvConfig.deleteProperty' => 'Eigenschaft löschen',
|
|
||||||
'mpvConfig.propertyKey' => 'Eigenschaftsschlüssel',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'z.B. hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Eigenschaftswert',
|
|
||||||
'mpvConfig.propertyValueHint' => 'z.B. auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Als Voreinstellung speichern...',
|
'mpvConfig.saveAsPreset' => 'Als Voreinstellung speichern...',
|
||||||
'mpvConfig.presetName' => 'Name der Voreinstellung',
|
'mpvConfig.presetName' => 'Name der Voreinstellung',
|
||||||
'mpvConfig.presetNameHint' => 'Namen für diese Voreinstellung eingeben',
|
'mpvConfig.presetNameHint' => 'Namen für diese Voreinstellung eingeben',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsDe {
|
|||||||
'mpvConfig.presetLoaded' => 'Voreinstellung geladen',
|
'mpvConfig.presetLoaded' => 'Voreinstellung geladen',
|
||||||
'mpvConfig.presetDeleted' => 'Voreinstellung gelöscht',
|
'mpvConfig.presetDeleted' => 'Voreinstellung gelöscht',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Möchten Sie diese Voreinstellung wirklich löschen?',
|
'mpvConfig.confirmDeletePreset' => 'Möchten Sie diese Voreinstellung wirklich löschen?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Möchten Sie diese Eigenschaft wirklich löschen?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} Einträge',
|
|
||||||
'dialog.confirmAction' => 'Aktion bestätigen',
|
'dialog.confirmAction' => 'Aktion bestätigen',
|
||||||
'discover.title' => 'Entdecken',
|
'discover.title' => 'Entdecken',
|
||||||
'discover.switchProfile' => 'Profil wechseln',
|
'discover.switchProfile' => 'Profil wechseln',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsDe {
|
|||||||
'liveTv.noChannels' => 'Keine Kanäle verfügbar',
|
'liveTv.noChannels' => 'Keine Kanäle verfügbar',
|
||||||
'liveTv.noDvr' => 'Kein DVR auf einem Server konfiguriert',
|
'liveTv.noDvr' => 'Kein DVR auf einem Server konfiguriert',
|
||||||
'liveTv.tuneFailed' => 'Kanal konnte nicht eingestellt werden',
|
'liveTv.tuneFailed' => 'Kanal konnte nicht eingestellt werden',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Kanäle werden geladen...',
|
'liveTv.loading' => 'Kanäle werden geladen...',
|
||||||
'liveTv.nowPlaying' => 'Läuft gerade',
|
'liveTv.nowPlaying' => 'Läuft gerade',
|
||||||
'liveTv.noPrograms' => 'Keine Programmdaten verfügbar',
|
'liveTv.noPrograms' => 'Keine Programmdaten verfügbar',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsDe {
|
|||||||
'liveTv.reloadGuide' => 'Programmführer neu laden',
|
'liveTv.reloadGuide' => 'Programmführer neu laden',
|
||||||
'liveTv.allChannels' => 'Alle Kanäle',
|
'liveTv.allChannels' => 'Alle Kanäle',
|
||||||
'liveTv.now' => 'Jetzt',
|
'liveTv.now' => 'Jetzt',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Heute',
|
'liveTv.today' => 'Heute',
|
||||||
'liveTv.midnight' => 'Mitternacht',
|
'liveTv.midnight' => 'Mitternacht',
|
||||||
'liveTv.overnight' => 'Nacht',
|
'liveTv.overnight' => 'Nacht',
|
||||||
|
|||||||
+14
-54
@@ -289,8 +289,8 @@ class TranslationsScreensEn {
|
|||||||
/// en: 'Subtitle Styling'
|
/// en: 'Subtitle Styling'
|
||||||
String get subtitleStyling => 'Subtitle Styling';
|
String get subtitleStyling => 'Subtitle Styling';
|
||||||
|
|
||||||
/// en: 'MPV Configuration'
|
/// en: 'mpv.conf'
|
||||||
String get mpvConfig => 'MPV Configuration';
|
String get mpvConfig => 'mpv.conf';
|
||||||
|
|
||||||
/// en: 'Logs'
|
/// en: 'Logs'
|
||||||
String get logs => 'Logs';
|
String get logs => 'Logs';
|
||||||
@@ -487,8 +487,8 @@ class TranslationsSettingsEn {
|
|||||||
/// en: 'Android native player with better hardware support'
|
/// en: 'Android native player with better hardware support'
|
||||||
String get exoPlayerDescription => 'Android native player with better hardware support';
|
String get exoPlayerDescription => 'Android native player with better hardware support';
|
||||||
|
|
||||||
/// en: 'MPV'
|
/// en: 'mpv'
|
||||||
String get mpv => 'MPV';
|
String get mpv => 'mpv';
|
||||||
|
|
||||||
/// en: 'Advanced player with more features and ASS subtitle support'
|
/// en: 'Advanced player with more features and ASS subtitle support'
|
||||||
String get mpvDescription => 'Advanced player with more features and ASS subtitle support';
|
String get mpvDescription => 'Advanced player with more features and ASS subtitle support';
|
||||||
@@ -1313,45 +1313,18 @@ class TranslationsMpvConfigEn {
|
|||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
|
|
||||||
/// en: 'MPV Configuration'
|
/// en: 'mpv.conf'
|
||||||
String get title => 'MPV Configuration';
|
String get title => 'mpv.conf';
|
||||||
|
|
||||||
/// en: 'Advanced video player settings'
|
/// en: 'Advanced video player settings'
|
||||||
String get description => 'Advanced video player settings';
|
String get description => 'Advanced video player settings';
|
||||||
|
|
||||||
/// en: 'Properties'
|
|
||||||
String get properties => 'Properties';
|
|
||||||
|
|
||||||
/// en: 'Presets'
|
/// en: 'Presets'
|
||||||
String get presets => 'Presets';
|
String get presets => 'Presets';
|
||||||
|
|
||||||
/// en: 'No properties configured'
|
|
||||||
String get noProperties => 'No properties configured';
|
|
||||||
|
|
||||||
/// en: 'No saved presets'
|
/// en: 'No saved presets'
|
||||||
String get noPresets => 'No saved presets';
|
String get noPresets => 'No saved presets';
|
||||||
|
|
||||||
/// en: 'Add Property'
|
|
||||||
String get addProperty => 'Add Property';
|
|
||||||
|
|
||||||
/// en: 'Edit Property'
|
|
||||||
String get editProperty => 'Edit Property';
|
|
||||||
|
|
||||||
/// en: 'Delete Property'
|
|
||||||
String get deleteProperty => 'Delete Property';
|
|
||||||
|
|
||||||
/// en: 'Property Key'
|
|
||||||
String get propertyKey => 'Property Key';
|
|
||||||
|
|
||||||
/// en: 'e.g., hwdec, demuxer-max-bytes'
|
|
||||||
String get propertyKeyHint => 'e.g., hwdec, demuxer-max-bytes';
|
|
||||||
|
|
||||||
/// en: 'Property Value'
|
|
||||||
String get propertyValue => 'Property Value';
|
|
||||||
|
|
||||||
/// en: 'e.g., auto, 256000000'
|
|
||||||
String get propertyValueHint => 'e.g., auto, 256000000';
|
|
||||||
|
|
||||||
/// en: 'Save as Preset...'
|
/// en: 'Save as Preset...'
|
||||||
String get saveAsPreset => 'Save as Preset...';
|
String get saveAsPreset => 'Save as Preset...';
|
||||||
|
|
||||||
@@ -1379,11 +1352,8 @@ class TranslationsMpvConfigEn {
|
|||||||
/// en: 'Are you sure you want to delete this preset?'
|
/// en: 'Are you sure you want to delete this preset?'
|
||||||
String get confirmDeletePreset => 'Are you sure you want to delete this preset?';
|
String get confirmDeletePreset => 'Are you sure you want to delete this preset?';
|
||||||
|
|
||||||
/// en: 'Are you sure you want to delete this property?'
|
/// en: 'gpu-api=vulkan hwdec=auto # comment'
|
||||||
String get confirmDeleteProperty => 'Are you sure you want to delete this property?';
|
String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
|
|
||||||
/// en: '${count} entries'
|
|
||||||
String entriesCount({required Object count}) => '${count} entries';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -2983,7 +2953,7 @@ extension on Translations {
|
|||||||
'screens.licenses' => 'Licenses',
|
'screens.licenses' => 'Licenses',
|
||||||
'screens.switchProfile' => 'Switch Profile',
|
'screens.switchProfile' => 'Switch Profile',
|
||||||
'screens.subtitleStyling' => 'Subtitle Styling',
|
'screens.subtitleStyling' => 'Subtitle Styling',
|
||||||
'screens.mpvConfig' => 'MPV Configuration',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Logs',
|
'screens.logs' => 'Logs',
|
||||||
'update.available' => 'Update Available',
|
'update.available' => 'Update Available',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Version ${version} is available',
|
'update.versionAvailable' => ({required Object version}) => 'Version ${version} is available',
|
||||||
@@ -3043,7 +3013,7 @@ extension on Translations {
|
|||||||
'settings.playerBackend' => 'Player Backend',
|
'settings.playerBackend' => 'Player Backend',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Recommended)',
|
'settings.exoPlayer' => 'ExoPlayer (Recommended)',
|
||||||
'settings.exoPlayerDescription' => 'Android native player with better hardware support',
|
'settings.exoPlayerDescription' => 'Android native player with better hardware support',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Advanced player with more features and ASS subtitle support',
|
'settings.mpvDescription' => 'Advanced player with more features and ASS subtitle support',
|
||||||
'settings.hardwareDecoding' => 'Hardware Decoding',
|
'settings.hardwareDecoding' => 'Hardware Decoding',
|
||||||
'settings.hardwareDecodingDescription' => 'Use hardware acceleration when available',
|
'settings.hardwareDecodingDescription' => 'Use hardware acceleration when available',
|
||||||
@@ -3307,19 +3277,10 @@ extension on Translations {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Background Opacity',
|
'subtitlingStyling.backgroundOpacity' => 'Background Opacity',
|
||||||
'subtitlingStyling.backgroundColor' => 'Background Color',
|
'subtitlingStyling.backgroundColor' => 'Background Color',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV Configuration',
|
'mpvConfig.title' => 'mpv.conf',
|
||||||
'mpvConfig.description' => 'Advanced video player settings',
|
'mpvConfig.description' => 'Advanced video player settings',
|
||||||
'mpvConfig.properties' => 'Properties',
|
|
||||||
'mpvConfig.presets' => 'Presets',
|
'mpvConfig.presets' => 'Presets',
|
||||||
'mpvConfig.noProperties' => 'No properties configured',
|
|
||||||
'mpvConfig.noPresets' => 'No saved presets',
|
'mpvConfig.noPresets' => 'No saved presets',
|
||||||
'mpvConfig.addProperty' => 'Add Property',
|
|
||||||
'mpvConfig.editProperty' => 'Edit Property',
|
|
||||||
'mpvConfig.deleteProperty' => 'Delete Property',
|
|
||||||
'mpvConfig.propertyKey' => 'Property Key',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'e.g., hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Property Value',
|
|
||||||
'mpvConfig.propertyValueHint' => 'e.g., auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Save as Preset...',
|
'mpvConfig.saveAsPreset' => 'Save as Preset...',
|
||||||
'mpvConfig.presetName' => 'Preset Name',
|
'mpvConfig.presetName' => 'Preset Name',
|
||||||
'mpvConfig.presetNameHint' => 'Enter a name for this preset',
|
'mpvConfig.presetNameHint' => 'Enter a name for this preset',
|
||||||
@@ -3329,8 +3290,7 @@ extension on Translations {
|
|||||||
'mpvConfig.presetLoaded' => 'Preset loaded',
|
'mpvConfig.presetLoaded' => 'Preset loaded',
|
||||||
'mpvConfig.presetDeleted' => 'Preset deleted',
|
'mpvConfig.presetDeleted' => 'Preset deleted',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Are you sure you want to delete this preset?',
|
'mpvConfig.confirmDeletePreset' => 'Are you sure you want to delete this preset?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Are you sure you want to delete this property?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} entries',
|
|
||||||
'dialog.confirmAction' => 'Confirm Action',
|
'dialog.confirmAction' => 'Confirm Action',
|
||||||
'discover.title' => 'Discover',
|
'discover.title' => 'Discover',
|
||||||
'discover.switchProfile' => 'Switch Profile',
|
'discover.switchProfile' => 'Switch Profile',
|
||||||
@@ -3437,8 +3397,6 @@ extension on Translations {
|
|||||||
'liveTv.noChannels' => 'No channels available',
|
'liveTv.noChannels' => 'No channels available',
|
||||||
'liveTv.noDvr' => 'No DVR configured on any server',
|
'liveTv.noDvr' => 'No DVR configured on any server',
|
||||||
'liveTv.tuneFailed' => 'Failed to tune channel',
|
'liveTv.tuneFailed' => 'Failed to tune channel',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Loading channels...',
|
'liveTv.loading' => 'Loading channels...',
|
||||||
'liveTv.nowPlaying' => 'Now Playing',
|
'liveTv.nowPlaying' => 'Now Playing',
|
||||||
'liveTv.noPrograms' => 'No program data available',
|
'liveTv.noPrograms' => 'No program data available',
|
||||||
@@ -3449,6 +3407,8 @@ extension on Translations {
|
|||||||
'liveTv.reloadGuide' => 'Reload Guide',
|
'liveTv.reloadGuide' => 'Reload Guide',
|
||||||
'liveTv.allChannels' => 'All Channels',
|
'liveTv.allChannels' => 'All Channels',
|
||||||
'liveTv.now' => 'Now',
|
'liveTv.now' => 'Now',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Today',
|
'liveTv.today' => 'Today',
|
||||||
'liveTv.midnight' => 'Midnight',
|
'liveTv.midnight' => 'Midnight',
|
||||||
'liveTv.overnight' => 'Overnight',
|
'liveTv.overnight' => 'Overnight',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensEs implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Licencias';
|
@override String get licenses => 'Licencias';
|
||||||
@override String get switchProfile => 'Cambiar Perfil';
|
@override String get switchProfile => 'Cambiar Perfil';
|
||||||
@override String get subtitleStyling => 'Estilo de Subtítulos';
|
@override String get subtitleStyling => 'Estilo de Subtítulos';
|
||||||
@override String get mpvConfig => 'Configuración de MPV';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Logs';
|
@override String get logs => 'Logs';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Reproductor';
|
@override String get playerBackend => 'Reproductor';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Recomendado)';
|
@override String get exoPlayer => 'ExoPlayer (Recomendado)';
|
||||||
@override String get exoPlayerDescription => 'Reproductor nativo de Android con mejor soporte de hardware';
|
@override String get exoPlayerDescription => 'Reproductor nativo de Android con mejor soporte de hardware';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Reproductor avanzado con más funciones y soporte de subtítulos ASS';
|
@override String get mpvDescription => 'Reproductor avanzado con más funciones y soporte de subtítulos ASS';
|
||||||
@override String get hardwareDecoding => 'Decodificación por Hardware';
|
@override String get hardwareDecoding => 'Decodificación por Hardware';
|
||||||
@override String get hardwareDecodingDescription => 'Usar aceleración por hardware cuando esté disponible';
|
@override String get hardwareDecodingDescription => 'Usar aceleración por hardware cuando esté disponible';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigEs implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsEs _root; // ignore: unused_field
|
final TranslationsEs _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'Configuración de MPV';
|
@override String get title => 'Configuración de mpv';
|
||||||
@override String get description => 'Ajustes avanzados del reproductor de video';
|
@override String get description => 'Ajustes avanzados del reproductor de video';
|
||||||
@override String get properties => 'Propiedades';
|
|
||||||
@override String get presets => 'Ajustes preestablecidos';
|
@override String get presets => 'Ajustes preestablecidos';
|
||||||
@override String get noProperties => 'No hay propiedades configuradas';
|
|
||||||
@override String get noPresets => 'No hay ajustes guardados';
|
@override String get noPresets => 'No hay ajustes guardados';
|
||||||
@override String get addProperty => 'Añadir Propiedad';
|
|
||||||
@override String get editProperty => 'Editar Propiedad';
|
|
||||||
@override String get deleteProperty => 'Eliminar Propiedad';
|
|
||||||
@override String get propertyKey => 'Clave de la Propiedad';
|
|
||||||
@override String get propertyKeyHint => 'ej., hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Valor de la Propiedad';
|
|
||||||
@override String get propertyValueHint => 'ej., auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Guardar como Ajuste...';
|
@override String get saveAsPreset => 'Guardar como Ajuste...';
|
||||||
@override String get presetName => 'Nombre del Ajuste';
|
@override String get presetName => 'Nombre del Ajuste';
|
||||||
@override String get presetNameHint => 'Introduce un nombre para este ajuste';
|
@override String get presetNameHint => 'Introduce un nombre para este ajuste';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigEs implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Ajuste cargado';
|
@override String get presetLoaded => 'Ajuste cargado';
|
||||||
@override String get presetDeleted => 'Ajuste eliminado';
|
@override String get presetDeleted => 'Ajuste eliminado';
|
||||||
@override String get confirmDeletePreset => '¿Estás seguro de que quieres eliminar este ajuste?';
|
@override String get confirmDeletePreset => '¿Estás seguro de que quieres eliminar este ajuste?';
|
||||||
@override String get confirmDeleteProperty => '¿Estás seguro de que quieres eliminar esta propiedad?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} entradas';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsEs {
|
|||||||
'screens.licenses' => 'Licencias',
|
'screens.licenses' => 'Licencias',
|
||||||
'screens.switchProfile' => 'Cambiar Perfil',
|
'screens.switchProfile' => 'Cambiar Perfil',
|
||||||
'screens.subtitleStyling' => 'Estilo de Subtítulos',
|
'screens.subtitleStyling' => 'Estilo de Subtítulos',
|
||||||
'screens.mpvConfig' => 'Configuración de MPV',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Logs',
|
'screens.logs' => 'Logs',
|
||||||
'update.available' => 'Actualización disponible',
|
'update.available' => 'Actualización disponible',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Versión ${version} disponible',
|
'update.versionAvailable' => ({required Object version}) => 'Versión ${version} disponible',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsEs {
|
|||||||
'settings.playerBackend' => 'Reproductor',
|
'settings.playerBackend' => 'Reproductor',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Recomendado)',
|
'settings.exoPlayer' => 'ExoPlayer (Recomendado)',
|
||||||
'settings.exoPlayerDescription' => 'Reproductor nativo de Android con mejor soporte de hardware',
|
'settings.exoPlayerDescription' => 'Reproductor nativo de Android con mejor soporte de hardware',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Reproductor avanzado con más funciones y soporte de subtítulos ASS',
|
'settings.mpvDescription' => 'Reproductor avanzado con más funciones y soporte de subtítulos ASS',
|
||||||
'settings.hardwareDecoding' => 'Decodificación por Hardware',
|
'settings.hardwareDecoding' => 'Decodificación por Hardware',
|
||||||
'settings.hardwareDecodingDescription' => 'Usar aceleración por hardware cuando esté disponible',
|
'settings.hardwareDecodingDescription' => 'Usar aceleración por hardware cuando esté disponible',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsEs {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Opacidad de Fondo',
|
'subtitlingStyling.backgroundOpacity' => 'Opacidad de Fondo',
|
||||||
'subtitlingStyling.backgroundColor' => 'Color de Fondo',
|
'subtitlingStyling.backgroundColor' => 'Color de Fondo',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'Configuración de MPV',
|
'mpvConfig.title' => 'Configuración de mpv',
|
||||||
'mpvConfig.description' => 'Ajustes avanzados del reproductor de video',
|
'mpvConfig.description' => 'Ajustes avanzados del reproductor de video',
|
||||||
'mpvConfig.properties' => 'Propiedades',
|
|
||||||
'mpvConfig.presets' => 'Ajustes preestablecidos',
|
'mpvConfig.presets' => 'Ajustes preestablecidos',
|
||||||
'mpvConfig.noProperties' => 'No hay propiedades configuradas',
|
|
||||||
'mpvConfig.noPresets' => 'No hay ajustes guardados',
|
'mpvConfig.noPresets' => 'No hay ajustes guardados',
|
||||||
'mpvConfig.addProperty' => 'Añadir Propiedad',
|
|
||||||
'mpvConfig.editProperty' => 'Editar Propiedad',
|
|
||||||
'mpvConfig.deleteProperty' => 'Eliminar Propiedad',
|
|
||||||
'mpvConfig.propertyKey' => 'Clave de la Propiedad',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'ej., hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Valor de la Propiedad',
|
|
||||||
'mpvConfig.propertyValueHint' => 'ej., auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Guardar como Ajuste...',
|
'mpvConfig.saveAsPreset' => 'Guardar como Ajuste...',
|
||||||
'mpvConfig.presetName' => 'Nombre del Ajuste',
|
'mpvConfig.presetName' => 'Nombre del Ajuste',
|
||||||
'mpvConfig.presetNameHint' => 'Introduce un nombre para este ajuste',
|
'mpvConfig.presetNameHint' => 'Introduce un nombre para este ajuste',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsEs {
|
|||||||
'mpvConfig.presetLoaded' => 'Ajuste cargado',
|
'mpvConfig.presetLoaded' => 'Ajuste cargado',
|
||||||
'mpvConfig.presetDeleted' => 'Ajuste eliminado',
|
'mpvConfig.presetDeleted' => 'Ajuste eliminado',
|
||||||
'mpvConfig.confirmDeletePreset' => '¿Estás seguro de que quieres eliminar este ajuste?',
|
'mpvConfig.confirmDeletePreset' => '¿Estás seguro de que quieres eliminar este ajuste?',
|
||||||
'mpvConfig.confirmDeleteProperty' => '¿Estás seguro de que quieres eliminar esta propiedad?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} entradas',
|
|
||||||
'dialog.confirmAction' => 'Confirmar Acción',
|
'dialog.confirmAction' => 'Confirmar Acción',
|
||||||
'discover.title' => 'Descubrir',
|
'discover.title' => 'Descubrir',
|
||||||
'discover.switchProfile' => 'Cambiar Perfil',
|
'discover.switchProfile' => 'Cambiar Perfil',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsEs {
|
|||||||
'liveTv.noChannels' => 'No hay canales disponibles',
|
'liveTv.noChannels' => 'No hay canales disponibles',
|
||||||
'liveTv.noDvr' => 'No hay DVR configurado en ningún servidor',
|
'liveTv.noDvr' => 'No hay DVR configurado en ningún servidor',
|
||||||
'liveTv.tuneFailed' => 'Error al sintonizar el canal',
|
'liveTv.tuneFailed' => 'Error al sintonizar el canal',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Cargando canales...',
|
'liveTv.loading' => 'Cargando canales...',
|
||||||
'liveTv.nowPlaying' => 'Reproduciendo ahora',
|
'liveTv.nowPlaying' => 'Reproduciendo ahora',
|
||||||
'liveTv.noPrograms' => 'No hay datos de programación disponibles',
|
'liveTv.noPrograms' => 'No hay datos de programación disponibles',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsEs {
|
|||||||
'liveTv.reloadGuide' => 'Recargar guía',
|
'liveTv.reloadGuide' => 'Recargar guía',
|
||||||
'liveTv.allChannels' => 'Todos los canales',
|
'liveTv.allChannels' => 'Todos los canales',
|
||||||
'liveTv.now' => 'Ahora',
|
'liveTv.now' => 'Ahora',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Hoy',
|
'liveTv.today' => 'Hoy',
|
||||||
'liveTv.midnight' => 'Medianoche',
|
'liveTv.midnight' => 'Medianoche',
|
||||||
'liveTv.overnight' => 'Madrugada',
|
'liveTv.overnight' => 'Madrugada',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensFr implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Licenses';
|
@override String get licenses => 'Licenses';
|
||||||
@override String get switchProfile => 'Changer de profil';
|
@override String get switchProfile => 'Changer de profil';
|
||||||
@override String get subtitleStyling => 'Configuration des sous-titres';
|
@override String get subtitleStyling => 'Configuration des sous-titres';
|
||||||
@override String get mpvConfig => 'Configuration MPV';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Logs';
|
@override String get logs => 'Logs';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Moteur de lecture';
|
@override String get playerBackend => 'Moteur de lecture';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Recommandé)';
|
@override String get exoPlayer => 'ExoPlayer (Recommandé)';
|
||||||
@override String get exoPlayerDescription => 'Lecteur natif Android avec meilleur support matériel';
|
@override String get exoPlayerDescription => 'Lecteur natif Android avec meilleur support matériel';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS';
|
@override String get mpvDescription => 'Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS';
|
||||||
@override String get hardwareDecoding => 'Décodage matériel';
|
@override String get hardwareDecoding => 'Décodage matériel';
|
||||||
@override String get hardwareDecodingDescription => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.';
|
@override String get hardwareDecodingDescription => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigFr implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsFr _root; // ignore: unused_field
|
final TranslationsFr _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'Configuration MPV';
|
@override String get title => 'Configuration mpv';
|
||||||
@override String get description => 'Paramètres avancés du lecteur vidéo';
|
@override String get description => 'Paramètres avancés du lecteur vidéo';
|
||||||
@override String get properties => 'Propriétés';
|
|
||||||
@override String get presets => 'Préréglages';
|
@override String get presets => 'Préréglages';
|
||||||
@override String get noProperties => 'Aucune propriété configurée';
|
|
||||||
@override String get noPresets => 'Aucun préréglage enregistré';
|
@override String get noPresets => 'Aucun préréglage enregistré';
|
||||||
@override String get addProperty => 'Ajouter une propriété';
|
|
||||||
@override String get editProperty => 'Modifier la propriété';
|
|
||||||
@override String get deleteProperty => 'Supprimer la propriété';
|
|
||||||
@override String get propertyKey => 'Clé';
|
|
||||||
@override String get propertyKeyHint => 'e.g., hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Valeur';
|
|
||||||
@override String get propertyValueHint => 'e.g., auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Enregistrer comme préréglage...';
|
@override String get saveAsPreset => 'Enregistrer comme préréglage...';
|
||||||
@override String get presetName => 'Nom du préréglage';
|
@override String get presetName => 'Nom du préréglage';
|
||||||
@override String get presetNameHint => 'Entrez un nom pour ce préréglage';
|
@override String get presetNameHint => 'Entrez un nom pour ce préréglage';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigFr implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Préréglage chargé';
|
@override String get presetLoaded => 'Préréglage chargé';
|
||||||
@override String get presetDeleted => 'Préréglage supprimé';
|
@override String get presetDeleted => 'Préréglage supprimé';
|
||||||
@override String get confirmDeletePreset => 'Êtes-vous sûr de vouloir supprimer ce préréglage ?';
|
@override String get confirmDeletePreset => 'Êtes-vous sûr de vouloir supprimer ce préréglage ?';
|
||||||
@override String get confirmDeleteProperty => 'Êtes-vous sûr de vouloir supprimer cette propriété ?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} entrées';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsFr {
|
|||||||
'screens.licenses' => 'Licenses',
|
'screens.licenses' => 'Licenses',
|
||||||
'screens.switchProfile' => 'Changer de profil',
|
'screens.switchProfile' => 'Changer de profil',
|
||||||
'screens.subtitleStyling' => 'Configuration des sous-titres',
|
'screens.subtitleStyling' => 'Configuration des sous-titres',
|
||||||
'screens.mpvConfig' => 'Configuration MPV',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Logs',
|
'screens.logs' => 'Logs',
|
||||||
'update.available' => 'Mise à jour disponible',
|
'update.available' => 'Mise à jour disponible',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Version ${version} disponible',
|
'update.versionAvailable' => ({required Object version}) => 'Version ${version} disponible',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsFr {
|
|||||||
'settings.playerBackend' => 'Moteur de lecture',
|
'settings.playerBackend' => 'Moteur de lecture',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Recommandé)',
|
'settings.exoPlayer' => 'ExoPlayer (Recommandé)',
|
||||||
'settings.exoPlayerDescription' => 'Lecteur natif Android avec meilleur support matériel',
|
'settings.exoPlayerDescription' => 'Lecteur natif Android avec meilleur support matériel',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS',
|
'settings.mpvDescription' => 'Lecteur avancé avec plus de fonctionnalités et support des sous-titres ASS',
|
||||||
'settings.hardwareDecoding' => 'Décodage matériel',
|
'settings.hardwareDecoding' => 'Décodage matériel',
|
||||||
'settings.hardwareDecodingDescription' => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.',
|
'settings.hardwareDecodingDescription' => 'Utilisez l\'accélération matérielle lorsqu\'elle est disponible.',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsFr {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Opacité d\'arrière-plan',
|
'subtitlingStyling.backgroundOpacity' => 'Opacité d\'arrière-plan',
|
||||||
'subtitlingStyling.backgroundColor' => 'Couleur d\'arrière-plan',
|
'subtitlingStyling.backgroundColor' => 'Couleur d\'arrière-plan',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'Configuration MPV',
|
'mpvConfig.title' => 'Configuration mpv',
|
||||||
'mpvConfig.description' => 'Paramètres avancés du lecteur vidéo',
|
'mpvConfig.description' => 'Paramètres avancés du lecteur vidéo',
|
||||||
'mpvConfig.properties' => 'Propriétés',
|
|
||||||
'mpvConfig.presets' => 'Préréglages',
|
'mpvConfig.presets' => 'Préréglages',
|
||||||
'mpvConfig.noProperties' => 'Aucune propriété configurée',
|
|
||||||
'mpvConfig.noPresets' => 'Aucun préréglage enregistré',
|
'mpvConfig.noPresets' => 'Aucun préréglage enregistré',
|
||||||
'mpvConfig.addProperty' => 'Ajouter une propriété',
|
|
||||||
'mpvConfig.editProperty' => 'Modifier la propriété',
|
|
||||||
'mpvConfig.deleteProperty' => 'Supprimer la propriété',
|
|
||||||
'mpvConfig.propertyKey' => 'Clé',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'e.g., hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Valeur',
|
|
||||||
'mpvConfig.propertyValueHint' => 'e.g., auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Enregistrer comme préréglage...',
|
'mpvConfig.saveAsPreset' => 'Enregistrer comme préréglage...',
|
||||||
'mpvConfig.presetName' => 'Nom du préréglage',
|
'mpvConfig.presetName' => 'Nom du préréglage',
|
||||||
'mpvConfig.presetNameHint' => 'Entrez un nom pour ce préréglage',
|
'mpvConfig.presetNameHint' => 'Entrez un nom pour ce préréglage',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsFr {
|
|||||||
'mpvConfig.presetLoaded' => 'Préréglage chargé',
|
'mpvConfig.presetLoaded' => 'Préréglage chargé',
|
||||||
'mpvConfig.presetDeleted' => 'Préréglage supprimé',
|
'mpvConfig.presetDeleted' => 'Préréglage supprimé',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Êtes-vous sûr de vouloir supprimer ce préréglage ?',
|
'mpvConfig.confirmDeletePreset' => 'Êtes-vous sûr de vouloir supprimer ce préréglage ?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Êtes-vous sûr de vouloir supprimer cette propriété ?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} entrées',
|
|
||||||
'dialog.confirmAction' => 'Confirmer l\'action',
|
'dialog.confirmAction' => 'Confirmer l\'action',
|
||||||
'discover.title' => 'Découvrez',
|
'discover.title' => 'Découvrez',
|
||||||
'discover.switchProfile' => 'Changer de profil',
|
'discover.switchProfile' => 'Changer de profil',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsFr {
|
|||||||
'liveTv.noChannels' => 'Aucune chaîne disponible',
|
'liveTv.noChannels' => 'Aucune chaîne disponible',
|
||||||
'liveTv.noDvr' => 'Aucun DVR configuré sur les serveurs',
|
'liveTv.noDvr' => 'Aucun DVR configuré sur les serveurs',
|
||||||
'liveTv.tuneFailed' => 'Impossible de syntoniser la chaîne',
|
'liveTv.tuneFailed' => 'Impossible de syntoniser la chaîne',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Chargement des chaînes...',
|
'liveTv.loading' => 'Chargement des chaînes...',
|
||||||
'liveTv.nowPlaying' => 'En cours de lecture',
|
'liveTv.nowPlaying' => 'En cours de lecture',
|
||||||
'liveTv.noPrograms' => 'Aucune donnée de programme disponible',
|
'liveTv.noPrograms' => 'Aucune donnée de programme disponible',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsFr {
|
|||||||
'liveTv.reloadGuide' => 'Recharger le guide',
|
'liveTv.reloadGuide' => 'Recharger le guide',
|
||||||
'liveTv.allChannels' => 'Toutes les chaînes',
|
'liveTv.allChannels' => 'Toutes les chaînes',
|
||||||
'liveTv.now' => 'Maintenant',
|
'liveTv.now' => 'Maintenant',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Aujourd\'hui',
|
'liveTv.today' => 'Aujourd\'hui',
|
||||||
'liveTv.midnight' => 'Minuit',
|
'liveTv.midnight' => 'Minuit',
|
||||||
'liveTv.overnight' => 'Nuit',
|
'liveTv.overnight' => 'Nuit',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensIt implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Licenze';
|
@override String get licenses => 'Licenze';
|
||||||
@override String get switchProfile => 'Cambia profilo';
|
@override String get switchProfile => 'Cambia profilo';
|
||||||
@override String get subtitleStyling => 'Stile sottotitoli';
|
@override String get subtitleStyling => 'Stile sottotitoli';
|
||||||
@override String get mpvConfig => 'Configurazione MPV';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Registro';
|
@override String get logs => 'Registro';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Motore di riproduzione';
|
@override String get playerBackend => 'Motore di riproduzione';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Consigliato)';
|
@override String get exoPlayer => 'ExoPlayer (Consigliato)';
|
||||||
@override String get exoPlayerDescription => 'Lettore nativo Android con migliore supporto hardware';
|
@override String get exoPlayerDescription => 'Lettore nativo Android con migliore supporto hardware';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Lettore avanzato con più funzionalità e supporto sottotitoli ASS';
|
@override String get mpvDescription => 'Lettore avanzato con più funzionalità e supporto sottotitoli ASS';
|
||||||
@override String get hardwareDecoding => 'Decodifica Hardware';
|
@override String get hardwareDecoding => 'Decodifica Hardware';
|
||||||
@override String get hardwareDecodingDescription => 'Utilizza l\'accelerazione hardware quando disponibile';
|
@override String get hardwareDecodingDescription => 'Utilizza l\'accelerazione hardware quando disponibile';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigIt implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsIt _root; // ignore: unused_field
|
final TranslationsIt _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'Configurazione MPV';
|
@override String get title => 'Configurazione mpv';
|
||||||
@override String get description => 'Impostazioni avanzate del lettore video';
|
@override String get description => 'Impostazioni avanzate del lettore video';
|
||||||
@override String get properties => 'Proprietà';
|
|
||||||
@override String get presets => 'Preset';
|
@override String get presets => 'Preset';
|
||||||
@override String get noProperties => 'Nessuna proprietà configurata';
|
|
||||||
@override String get noPresets => 'Nessun preset salvato';
|
@override String get noPresets => 'Nessun preset salvato';
|
||||||
@override String get addProperty => 'Aggiungi proprietà';
|
|
||||||
@override String get editProperty => 'Modifica proprietà';
|
|
||||||
@override String get deleteProperty => 'Elimina proprietà';
|
|
||||||
@override String get propertyKey => 'Chiave proprietà';
|
|
||||||
@override String get propertyKeyHint => 'es. hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Valore proprietà';
|
|
||||||
@override String get propertyValueHint => 'es. auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Salva come preset...';
|
@override String get saveAsPreset => 'Salva come preset...';
|
||||||
@override String get presetName => 'Nome preset';
|
@override String get presetName => 'Nome preset';
|
||||||
@override String get presetNameHint => 'Inserisci un nome per questo preset';
|
@override String get presetNameHint => 'Inserisci un nome per questo preset';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigIt implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Preset caricato';
|
@override String get presetLoaded => 'Preset caricato';
|
||||||
@override String get presetDeleted => 'Preset eliminato';
|
@override String get presetDeleted => 'Preset eliminato';
|
||||||
@override String get confirmDeletePreset => 'Sei sicuro di voler eliminare questo preset?';
|
@override String get confirmDeletePreset => 'Sei sicuro di voler eliminare questo preset?';
|
||||||
@override String get confirmDeleteProperty => 'Sei sicuro di voler eliminare questa proprietà?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} voci';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsIt {
|
|||||||
'screens.licenses' => 'Licenze',
|
'screens.licenses' => 'Licenze',
|
||||||
'screens.switchProfile' => 'Cambia profilo',
|
'screens.switchProfile' => 'Cambia profilo',
|
||||||
'screens.subtitleStyling' => 'Stile sottotitoli',
|
'screens.subtitleStyling' => 'Stile sottotitoli',
|
||||||
'screens.mpvConfig' => 'Configurazione MPV',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Registro',
|
'screens.logs' => 'Registro',
|
||||||
'update.available' => 'Aggiornamento disponibile',
|
'update.available' => 'Aggiornamento disponibile',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Versione ${version} disponibile',
|
'update.versionAvailable' => ({required Object version}) => 'Versione ${version} disponibile',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsIt {
|
|||||||
'settings.playerBackend' => 'Motore di riproduzione',
|
'settings.playerBackend' => 'Motore di riproduzione',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Consigliato)',
|
'settings.exoPlayer' => 'ExoPlayer (Consigliato)',
|
||||||
'settings.exoPlayerDescription' => 'Lettore nativo Android con migliore supporto hardware',
|
'settings.exoPlayerDescription' => 'Lettore nativo Android con migliore supporto hardware',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Lettore avanzato con più funzionalità e supporto sottotitoli ASS',
|
'settings.mpvDescription' => 'Lettore avanzato con più funzionalità e supporto sottotitoli ASS',
|
||||||
'settings.hardwareDecoding' => 'Decodifica Hardware',
|
'settings.hardwareDecoding' => 'Decodifica Hardware',
|
||||||
'settings.hardwareDecodingDescription' => 'Utilizza l\'accelerazione hardware quando disponibile',
|
'settings.hardwareDecodingDescription' => 'Utilizza l\'accelerazione hardware quando disponibile',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsIt {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Opacità sfondo',
|
'subtitlingStyling.backgroundOpacity' => 'Opacità sfondo',
|
||||||
'subtitlingStyling.backgroundColor' => 'Colore sfondo',
|
'subtitlingStyling.backgroundColor' => 'Colore sfondo',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'Configurazione MPV',
|
'mpvConfig.title' => 'Configurazione mpv',
|
||||||
'mpvConfig.description' => 'Impostazioni avanzate del lettore video',
|
'mpvConfig.description' => 'Impostazioni avanzate del lettore video',
|
||||||
'mpvConfig.properties' => 'Proprietà',
|
|
||||||
'mpvConfig.presets' => 'Preset',
|
'mpvConfig.presets' => 'Preset',
|
||||||
'mpvConfig.noProperties' => 'Nessuna proprietà configurata',
|
|
||||||
'mpvConfig.noPresets' => 'Nessun preset salvato',
|
'mpvConfig.noPresets' => 'Nessun preset salvato',
|
||||||
'mpvConfig.addProperty' => 'Aggiungi proprietà',
|
|
||||||
'mpvConfig.editProperty' => 'Modifica proprietà',
|
|
||||||
'mpvConfig.deleteProperty' => 'Elimina proprietà',
|
|
||||||
'mpvConfig.propertyKey' => 'Chiave proprietà',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'es. hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Valore proprietà',
|
|
||||||
'mpvConfig.propertyValueHint' => 'es. auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Salva come preset...',
|
'mpvConfig.saveAsPreset' => 'Salva come preset...',
|
||||||
'mpvConfig.presetName' => 'Nome preset',
|
'mpvConfig.presetName' => 'Nome preset',
|
||||||
'mpvConfig.presetNameHint' => 'Inserisci un nome per questo preset',
|
'mpvConfig.presetNameHint' => 'Inserisci un nome per questo preset',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsIt {
|
|||||||
'mpvConfig.presetLoaded' => 'Preset caricato',
|
'mpvConfig.presetLoaded' => 'Preset caricato',
|
||||||
'mpvConfig.presetDeleted' => 'Preset eliminato',
|
'mpvConfig.presetDeleted' => 'Preset eliminato',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Sei sicuro di voler eliminare questo preset?',
|
'mpvConfig.confirmDeletePreset' => 'Sei sicuro di voler eliminare questo preset?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Sei sicuro di voler eliminare questa proprietà?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} voci',
|
|
||||||
'dialog.confirmAction' => 'Conferma azione',
|
'dialog.confirmAction' => 'Conferma azione',
|
||||||
'discover.title' => 'Esplora',
|
'discover.title' => 'Esplora',
|
||||||
'discover.switchProfile' => 'Cambia profilo',
|
'discover.switchProfile' => 'Cambia profilo',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsIt {
|
|||||||
'liveTv.noChannels' => 'Nessun canale disponibile',
|
'liveTv.noChannels' => 'Nessun canale disponibile',
|
||||||
'liveTv.noDvr' => 'Nessun DVR configurato su nessun server',
|
'liveTv.noDvr' => 'Nessun DVR configurato su nessun server',
|
||||||
'liveTv.tuneFailed' => 'Impossibile sintonizzare il canale',
|
'liveTv.tuneFailed' => 'Impossibile sintonizzare il canale',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Caricamento canali...',
|
'liveTv.loading' => 'Caricamento canali...',
|
||||||
'liveTv.nowPlaying' => 'In riproduzione',
|
'liveTv.nowPlaying' => 'In riproduzione',
|
||||||
'liveTv.noPrograms' => 'Nessun dato di programma disponibile',
|
'liveTv.noPrograms' => 'Nessun dato di programma disponibile',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsIt {
|
|||||||
'liveTv.reloadGuide' => 'Ricarica guida',
|
'liveTv.reloadGuide' => 'Ricarica guida',
|
||||||
'liveTv.allChannels' => 'Tutti i canali',
|
'liveTv.allChannels' => 'Tutti i canali',
|
||||||
'liveTv.now' => 'Ora',
|
'liveTv.now' => 'Ora',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Oggi',
|
'liveTv.today' => 'Oggi',
|
||||||
'liveTv.midnight' => 'Mezzanotte',
|
'liveTv.midnight' => 'Mezzanotte',
|
||||||
'liveTv.overnight' => 'Notte',
|
'liveTv.overnight' => 'Notte',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensKo implements TranslationsScreensEn {
|
|||||||
@override String get licenses => '라이선스';
|
@override String get licenses => '라이선스';
|
||||||
@override String get switchProfile => '프로필 전환';
|
@override String get switchProfile => '프로필 전환';
|
||||||
@override String get subtitleStyling => '자막 스타일 설정';
|
@override String get subtitleStyling => '자막 스타일 설정';
|
||||||
@override String get mpvConfig => 'MPV 설정';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => '로그';
|
@override String get logs => '로그';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => '플레이어 백엔드';
|
@override String get playerBackend => '플레이어 백엔드';
|
||||||
@override String get exoPlayer => 'ExoPlayer (권장)';
|
@override String get exoPlayer => 'ExoPlayer (권장)';
|
||||||
@override String get exoPlayerDescription => '더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어';
|
@override String get exoPlayerDescription => '더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => '더 많은 기능과 ASS 자막을 지원하는 고급 플레이어';
|
@override String get mpvDescription => '더 많은 기능과 ASS 자막을 지원하는 고급 플레이어';
|
||||||
@override String get hardwareDecoding => '하드웨어 디코딩';
|
@override String get hardwareDecoding => '하드웨어 디코딩';
|
||||||
@override String get hardwareDecodingDescription => '가능한 경우 하드웨어 가속을 사용합니다';
|
@override String get hardwareDecodingDescription => '가능한 경우 하드웨어 가속을 사용합니다';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigKo implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsKo _root; // ignore: unused_field
|
final TranslationsKo _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'MPV 설정';
|
@override String get title => 'mpv 설정';
|
||||||
@override String get description => '고급 비디오 플레이어 설정';
|
@override String get description => '고급 비디오 플레이어 설정';
|
||||||
@override String get properties => '속성';
|
|
||||||
@override String get presets => '사전 설정';
|
@override String get presets => '사전 설정';
|
||||||
@override String get noProperties => '설정된 속성이 없습니다';
|
|
||||||
@override String get noPresets => '저장된 사전 설정이 없습니다';
|
@override String get noPresets => '저장된 사전 설정이 없습니다';
|
||||||
@override String get addProperty => '속성 추가';
|
|
||||||
@override String get editProperty => '속성 편집';
|
|
||||||
@override String get deleteProperty => '속성 삭제';
|
|
||||||
@override String get propertyKey => '속성 키';
|
|
||||||
@override String get propertyKeyHint => '예: hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => '속성값';
|
|
||||||
@override String get propertyValueHint => '예: auto, 256000000';
|
|
||||||
@override String get saveAsPreset => '프리셋으로 저장...';
|
@override String get saveAsPreset => '프리셋으로 저장...';
|
||||||
@override String get presetName => '프리셋 이름';
|
@override String get presetName => '프리셋 이름';
|
||||||
@override String get presetNameHint => '이 프리셋의 이름을 입력하세요';
|
@override String get presetNameHint => '이 프리셋의 이름을 입력하세요';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigKo implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => '프리셋이 로드 되었습니다';
|
@override String get presetLoaded => '프리셋이 로드 되었습니다';
|
||||||
@override String get presetDeleted => '프리셋이 삭제 되었습니다';
|
@override String get presetDeleted => '프리셋이 삭제 되었습니다';
|
||||||
@override String get confirmDeletePreset => '이 프리셋을 삭제 하시겠습니까?';
|
@override String get confirmDeletePreset => '이 프리셋을 삭제 하시겠습니까?';
|
||||||
@override String get confirmDeleteProperty => '이 속성을 삭제 하시겠습니까?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} 항목';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsKo {
|
|||||||
'screens.licenses' => '라이선스',
|
'screens.licenses' => '라이선스',
|
||||||
'screens.switchProfile' => '프로필 전환',
|
'screens.switchProfile' => '프로필 전환',
|
||||||
'screens.subtitleStyling' => '자막 스타일 설정',
|
'screens.subtitleStyling' => '자막 스타일 설정',
|
||||||
'screens.mpvConfig' => 'MPV 설정',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => '로그',
|
'screens.logs' => '로그',
|
||||||
'update.available' => '사용 가능한 업데이트',
|
'update.available' => '사용 가능한 업데이트',
|
||||||
'update.versionAvailable' => ({required Object version}) => '버전 ${version} 출시됨',
|
'update.versionAvailable' => ({required Object version}) => '버전 ${version} 출시됨',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsKo {
|
|||||||
'settings.playerBackend' => '플레이어 백엔드',
|
'settings.playerBackend' => '플레이어 백엔드',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (권장)',
|
'settings.exoPlayer' => 'ExoPlayer (권장)',
|
||||||
'settings.exoPlayerDescription' => '더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어',
|
'settings.exoPlayerDescription' => '더 나은 하드웨어 지원을 제공하는 Android 네이티브 플레이어',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => '더 많은 기능과 ASS 자막을 지원하는 고급 플레이어',
|
'settings.mpvDescription' => '더 많은 기능과 ASS 자막을 지원하는 고급 플레이어',
|
||||||
'settings.hardwareDecoding' => '하드웨어 디코딩',
|
'settings.hardwareDecoding' => '하드웨어 디코딩',
|
||||||
'settings.hardwareDecodingDescription' => '가능한 경우 하드웨어 가속을 사용합니다',
|
'settings.hardwareDecodingDescription' => '가능한 경우 하드웨어 가속을 사용합니다',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsKo {
|
|||||||
'subtitlingStyling.backgroundOpacity' => '배경 불투명도',
|
'subtitlingStyling.backgroundOpacity' => '배경 불투명도',
|
||||||
'subtitlingStyling.backgroundColor' => '배경색',
|
'subtitlingStyling.backgroundColor' => '배경색',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV 설정',
|
'mpvConfig.title' => 'mpv 설정',
|
||||||
'mpvConfig.description' => '고급 비디오 플레이어 설정',
|
'mpvConfig.description' => '고급 비디오 플레이어 설정',
|
||||||
'mpvConfig.properties' => '속성',
|
|
||||||
'mpvConfig.presets' => '사전 설정',
|
'mpvConfig.presets' => '사전 설정',
|
||||||
'mpvConfig.noProperties' => '설정된 속성이 없습니다',
|
|
||||||
'mpvConfig.noPresets' => '저장된 사전 설정이 없습니다',
|
'mpvConfig.noPresets' => '저장된 사전 설정이 없습니다',
|
||||||
'mpvConfig.addProperty' => '속성 추가',
|
|
||||||
'mpvConfig.editProperty' => '속성 편집',
|
|
||||||
'mpvConfig.deleteProperty' => '속성 삭제',
|
|
||||||
'mpvConfig.propertyKey' => '속성 키',
|
|
||||||
'mpvConfig.propertyKeyHint' => '예: hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => '속성값',
|
|
||||||
'mpvConfig.propertyValueHint' => '예: auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => '프리셋으로 저장...',
|
'mpvConfig.saveAsPreset' => '프리셋으로 저장...',
|
||||||
'mpvConfig.presetName' => '프리셋 이름',
|
'mpvConfig.presetName' => '프리셋 이름',
|
||||||
'mpvConfig.presetNameHint' => '이 프리셋의 이름을 입력하세요',
|
'mpvConfig.presetNameHint' => '이 프리셋의 이름을 입력하세요',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsKo {
|
|||||||
'mpvConfig.presetLoaded' => '프리셋이 로드 되었습니다',
|
'mpvConfig.presetLoaded' => '프리셋이 로드 되었습니다',
|
||||||
'mpvConfig.presetDeleted' => '프리셋이 삭제 되었습니다',
|
'mpvConfig.presetDeleted' => '프리셋이 삭제 되었습니다',
|
||||||
'mpvConfig.confirmDeletePreset' => '이 프리셋을 삭제 하시겠습니까?',
|
'mpvConfig.confirmDeletePreset' => '이 프리셋을 삭제 하시겠습니까?',
|
||||||
'mpvConfig.confirmDeleteProperty' => '이 속성을 삭제 하시겠습니까?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} 항목',
|
|
||||||
'dialog.confirmAction' => '확인',
|
'dialog.confirmAction' => '확인',
|
||||||
'discover.title' => '발견',
|
'discover.title' => '발견',
|
||||||
'discover.switchProfile' => '사용자 전환',
|
'discover.switchProfile' => '사용자 전환',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsKo {
|
|||||||
'liveTv.noChannels' => '사용 가능한 채널이 없습니다',
|
'liveTv.noChannels' => '사용 가능한 채널이 없습니다',
|
||||||
'liveTv.noDvr' => '서버에 DVR이 구성되어 있지 않습니다',
|
'liveTv.noDvr' => '서버에 DVR이 구성되어 있지 않습니다',
|
||||||
'liveTv.tuneFailed' => '채널 튜닝에 실패했습니다',
|
'liveTv.tuneFailed' => '채널 튜닝에 실패했습니다',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => '채널 로딩 중...',
|
'liveTv.loading' => '채널 로딩 중...',
|
||||||
'liveTv.nowPlaying' => '현재 재생 중',
|
'liveTv.nowPlaying' => '현재 재생 중',
|
||||||
'liveTv.noPrograms' => '프로그램 데이터가 없습니다',
|
'liveTv.noPrograms' => '프로그램 데이터가 없습니다',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsKo {
|
|||||||
'liveTv.reloadGuide' => '편성표 새로고침',
|
'liveTv.reloadGuide' => '편성표 새로고침',
|
||||||
'liveTv.allChannels' => '전체 채널',
|
'liveTv.allChannels' => '전체 채널',
|
||||||
'liveTv.now' => '지금',
|
'liveTv.now' => '지금',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => '오늘',
|
'liveTv.today' => '오늘',
|
||||||
'liveTv.midnight' => '자정',
|
'liveTv.midnight' => '자정',
|
||||||
'liveTv.overnight' => '심야',
|
'liveTv.overnight' => '심야',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensNl implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Licenties';
|
@override String get licenses => 'Licenties';
|
||||||
@override String get switchProfile => 'Wissel van profiel';
|
@override String get switchProfile => 'Wissel van profiel';
|
||||||
@override String get subtitleStyling => 'Ondertitel opmaak';
|
@override String get subtitleStyling => 'Ondertitel opmaak';
|
||||||
@override String get mpvConfig => 'MPV-configuratie';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Logbestanden';
|
@override String get logs => 'Logbestanden';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Speler backend';
|
@override String get playerBackend => 'Speler backend';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Aanbevolen)';
|
@override String get exoPlayer => 'ExoPlayer (Aanbevolen)';
|
||||||
@override String get exoPlayerDescription => 'Android-native speler met betere hardware-ondersteuning';
|
@override String get exoPlayerDescription => 'Android-native speler met betere hardware-ondersteuning';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Geavanceerde speler met meer functies en ASS-ondertitelondersteuning';
|
@override String get mpvDescription => 'Geavanceerde speler met meer functies en ASS-ondertitelondersteuning';
|
||||||
@override String get hardwareDecoding => 'Hardware decodering';
|
@override String get hardwareDecoding => 'Hardware decodering';
|
||||||
@override String get hardwareDecodingDescription => 'Gebruik hardware versnelling indien beschikbaar';
|
@override String get hardwareDecodingDescription => 'Gebruik hardware versnelling indien beschikbaar';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigNl implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsNl _root; // ignore: unused_field
|
final TranslationsNl _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'MPV-configuratie';
|
@override String get title => 'mpv-configuratie';
|
||||||
@override String get description => 'Geavanceerde videospeler-instellingen';
|
@override String get description => 'Geavanceerde videospeler-instellingen';
|
||||||
@override String get properties => 'Eigenschappen';
|
|
||||||
@override String get presets => 'Voorinstellingen';
|
@override String get presets => 'Voorinstellingen';
|
||||||
@override String get noProperties => 'Geen eigenschappen geconfigureerd';
|
|
||||||
@override String get noPresets => 'Geen opgeslagen voorinstellingen';
|
@override String get noPresets => 'Geen opgeslagen voorinstellingen';
|
||||||
@override String get addProperty => 'Eigenschap toevoegen';
|
|
||||||
@override String get editProperty => 'Eigenschap bewerken';
|
|
||||||
@override String get deleteProperty => 'Eigenschap verwijderen';
|
|
||||||
@override String get propertyKey => 'Eigenschapssleutel';
|
|
||||||
@override String get propertyKeyHint => 'bijv. hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Eigenschapswaarde';
|
|
||||||
@override String get propertyValueHint => 'bijv. auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Opslaan als voorinstelling...';
|
@override String get saveAsPreset => 'Opslaan als voorinstelling...';
|
||||||
@override String get presetName => 'Naam voorinstelling';
|
@override String get presetName => 'Naam voorinstelling';
|
||||||
@override String get presetNameHint => 'Voer een naam in voor deze voorinstelling';
|
@override String get presetNameHint => 'Voer een naam in voor deze voorinstelling';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigNl implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Voorinstelling geladen';
|
@override String get presetLoaded => 'Voorinstelling geladen';
|
||||||
@override String get presetDeleted => 'Voorinstelling verwijderd';
|
@override String get presetDeleted => 'Voorinstelling verwijderd';
|
||||||
@override String get confirmDeletePreset => 'Weet je zeker dat je deze voorinstelling wilt verwijderen?';
|
@override String get confirmDeletePreset => 'Weet je zeker dat je deze voorinstelling wilt verwijderen?';
|
||||||
@override String get confirmDeleteProperty => 'Weet je zeker dat je deze eigenschap wilt verwijderen?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} items';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsNl {
|
|||||||
'screens.licenses' => 'Licenties',
|
'screens.licenses' => 'Licenties',
|
||||||
'screens.switchProfile' => 'Wissel van profiel',
|
'screens.switchProfile' => 'Wissel van profiel',
|
||||||
'screens.subtitleStyling' => 'Ondertitel opmaak',
|
'screens.subtitleStyling' => 'Ondertitel opmaak',
|
||||||
'screens.mpvConfig' => 'MPV-configuratie',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Logbestanden',
|
'screens.logs' => 'Logbestanden',
|
||||||
'update.available' => 'Update beschikbaar',
|
'update.available' => 'Update beschikbaar',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Versie ${version} is beschikbaar',
|
'update.versionAvailable' => ({required Object version}) => 'Versie ${version} is beschikbaar',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsNl {
|
|||||||
'settings.playerBackend' => 'Speler backend',
|
'settings.playerBackend' => 'Speler backend',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Aanbevolen)',
|
'settings.exoPlayer' => 'ExoPlayer (Aanbevolen)',
|
||||||
'settings.exoPlayerDescription' => 'Android-native speler met betere hardware-ondersteuning',
|
'settings.exoPlayerDescription' => 'Android-native speler met betere hardware-ondersteuning',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Geavanceerde speler met meer functies en ASS-ondertitelondersteuning',
|
'settings.mpvDescription' => 'Geavanceerde speler met meer functies en ASS-ondertitelondersteuning',
|
||||||
'settings.hardwareDecoding' => 'Hardware decodering',
|
'settings.hardwareDecoding' => 'Hardware decodering',
|
||||||
'settings.hardwareDecodingDescription' => 'Gebruik hardware versnelling indien beschikbaar',
|
'settings.hardwareDecodingDescription' => 'Gebruik hardware versnelling indien beschikbaar',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsNl {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Achtergrond transparantie',
|
'subtitlingStyling.backgroundOpacity' => 'Achtergrond transparantie',
|
||||||
'subtitlingStyling.backgroundColor' => 'Achtergrondkleur',
|
'subtitlingStyling.backgroundColor' => 'Achtergrondkleur',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV-configuratie',
|
'mpvConfig.title' => 'mpv-configuratie',
|
||||||
'mpvConfig.description' => 'Geavanceerde videospeler-instellingen',
|
'mpvConfig.description' => 'Geavanceerde videospeler-instellingen',
|
||||||
'mpvConfig.properties' => 'Eigenschappen',
|
|
||||||
'mpvConfig.presets' => 'Voorinstellingen',
|
'mpvConfig.presets' => 'Voorinstellingen',
|
||||||
'mpvConfig.noProperties' => 'Geen eigenschappen geconfigureerd',
|
|
||||||
'mpvConfig.noPresets' => 'Geen opgeslagen voorinstellingen',
|
'mpvConfig.noPresets' => 'Geen opgeslagen voorinstellingen',
|
||||||
'mpvConfig.addProperty' => 'Eigenschap toevoegen',
|
|
||||||
'mpvConfig.editProperty' => 'Eigenschap bewerken',
|
|
||||||
'mpvConfig.deleteProperty' => 'Eigenschap verwijderen',
|
|
||||||
'mpvConfig.propertyKey' => 'Eigenschapssleutel',
|
|
||||||
'mpvConfig.propertyKeyHint' => 'bijv. hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Eigenschapswaarde',
|
|
||||||
'mpvConfig.propertyValueHint' => 'bijv. auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Opslaan als voorinstelling...',
|
'mpvConfig.saveAsPreset' => 'Opslaan als voorinstelling...',
|
||||||
'mpvConfig.presetName' => 'Naam voorinstelling',
|
'mpvConfig.presetName' => 'Naam voorinstelling',
|
||||||
'mpvConfig.presetNameHint' => 'Voer een naam in voor deze voorinstelling',
|
'mpvConfig.presetNameHint' => 'Voer een naam in voor deze voorinstelling',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsNl {
|
|||||||
'mpvConfig.presetLoaded' => 'Voorinstelling geladen',
|
'mpvConfig.presetLoaded' => 'Voorinstelling geladen',
|
||||||
'mpvConfig.presetDeleted' => 'Voorinstelling verwijderd',
|
'mpvConfig.presetDeleted' => 'Voorinstelling verwijderd',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Weet je zeker dat je deze voorinstelling wilt verwijderen?',
|
'mpvConfig.confirmDeletePreset' => 'Weet je zeker dat je deze voorinstelling wilt verwijderen?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Weet je zeker dat je deze eigenschap wilt verwijderen?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} items',
|
|
||||||
'dialog.confirmAction' => 'Bevestig actie',
|
'dialog.confirmAction' => 'Bevestig actie',
|
||||||
'discover.title' => 'Ontdekken',
|
'discover.title' => 'Ontdekken',
|
||||||
'discover.switchProfile' => 'Wissel van profiel',
|
'discover.switchProfile' => 'Wissel van profiel',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsNl {
|
|||||||
'liveTv.noChannels' => 'Geen zenders beschikbaar',
|
'liveTv.noChannels' => 'Geen zenders beschikbaar',
|
||||||
'liveTv.noDvr' => 'Geen DVR geconfigureerd op een server',
|
'liveTv.noDvr' => 'Geen DVR geconfigureerd op een server',
|
||||||
'liveTv.tuneFailed' => 'Kan zender niet afstemmen',
|
'liveTv.tuneFailed' => 'Kan zender niet afstemmen',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Zenders laden...',
|
'liveTv.loading' => 'Zenders laden...',
|
||||||
'liveTv.nowPlaying' => 'Nu aan het afspelen',
|
'liveTv.nowPlaying' => 'Nu aan het afspelen',
|
||||||
'liveTv.noPrograms' => 'Geen programmagegevens beschikbaar',
|
'liveTv.noPrograms' => 'Geen programmagegevens beschikbaar',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsNl {
|
|||||||
'liveTv.reloadGuide' => 'Gids herladen',
|
'liveTv.reloadGuide' => 'Gids herladen',
|
||||||
'liveTv.allChannels' => 'Alle zenders',
|
'liveTv.allChannels' => 'Alle zenders',
|
||||||
'liveTv.now' => 'Nu',
|
'liveTv.now' => 'Nu',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Vandaag',
|
'liveTv.today' => 'Vandaag',
|
||||||
'liveTv.midnight' => 'Middernacht',
|
'liveTv.midnight' => 'Middernacht',
|
||||||
'liveTv.overnight' => 'Nacht',
|
'liveTv.overnight' => 'Nacht',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensSv implements TranslationsScreensEn {
|
|||||||
@override String get licenses => 'Licenser';
|
@override String get licenses => 'Licenser';
|
||||||
@override String get switchProfile => 'Byt profil';
|
@override String get switchProfile => 'Byt profil';
|
||||||
@override String get subtitleStyling => 'Undertext-styling';
|
@override String get subtitleStyling => 'Undertext-styling';
|
||||||
@override String get mpvConfig => 'MPV-konfiguration';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => 'Loggar';
|
@override String get logs => 'Loggar';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => 'Spelarmotor';
|
@override String get playerBackend => 'Spelarmotor';
|
||||||
@override String get exoPlayer => 'ExoPlayer (Rekommenderad)';
|
@override String get exoPlayer => 'ExoPlayer (Rekommenderad)';
|
||||||
@override String get exoPlayerDescription => 'Android-nativ spelare med bättre hårdvarustöd';
|
@override String get exoPlayerDescription => 'Android-nativ spelare med bättre hårdvarustöd';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => 'Avancerad spelare med fler funktioner och ASS-undertextstöd';
|
@override String get mpvDescription => 'Avancerad spelare med fler funktioner och ASS-undertextstöd';
|
||||||
@override String get hardwareDecoding => 'Hårdvaruavkodning';
|
@override String get hardwareDecoding => 'Hårdvaruavkodning';
|
||||||
@override String get hardwareDecodingDescription => 'Använd hårdvaruacceleration när tillgängligt';
|
@override String get hardwareDecodingDescription => 'Använd hårdvaruacceleration när tillgängligt';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigSv implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsSv _root; // ignore: unused_field
|
final TranslationsSv _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'MPV-konfiguration';
|
@override String get title => 'mpv-konfiguration';
|
||||||
@override String get description => 'Avancerade videospelares inställningar';
|
@override String get description => 'Avancerade videospelares inställningar';
|
||||||
@override String get properties => 'Egenskaper';
|
|
||||||
@override String get presets => 'Förval';
|
@override String get presets => 'Förval';
|
||||||
@override String get noProperties => 'Inga egenskaper konfigurerade';
|
|
||||||
@override String get noPresets => 'Inga sparade förval';
|
@override String get noPresets => 'Inga sparade förval';
|
||||||
@override String get addProperty => 'Lägg till egenskap';
|
|
||||||
@override String get editProperty => 'Redigera egenskap';
|
|
||||||
@override String get deleteProperty => 'Ta bort egenskap';
|
|
||||||
@override String get propertyKey => 'Egenskapsnyckel';
|
|
||||||
@override String get propertyKeyHint => 't.ex. hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => 'Egenskapsvärde';
|
|
||||||
@override String get propertyValueHint => 't.ex. auto, 256000000';
|
|
||||||
@override String get saveAsPreset => 'Spara som förval...';
|
@override String get saveAsPreset => 'Spara som förval...';
|
||||||
@override String get presetName => 'Förvalnamn';
|
@override String get presetName => 'Förvalnamn';
|
||||||
@override String get presetNameHint => 'Ange ett namn för detta förval';
|
@override String get presetNameHint => 'Ange ett namn för detta förval';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigSv implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => 'Förval laddat';
|
@override String get presetLoaded => 'Förval laddat';
|
||||||
@override String get presetDeleted => 'Förval borttaget';
|
@override String get presetDeleted => 'Förval borttaget';
|
||||||
@override String get confirmDeletePreset => 'Är du säker på att du vill ta bort detta förval?';
|
@override String get confirmDeletePreset => 'Är du säker på att du vill ta bort detta förval?';
|
||||||
@override String get confirmDeleteProperty => 'Är du säker på att du vill ta bort denna egenskap?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} poster';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsSv {
|
|||||||
'screens.licenses' => 'Licenser',
|
'screens.licenses' => 'Licenser',
|
||||||
'screens.switchProfile' => 'Byt profil',
|
'screens.switchProfile' => 'Byt profil',
|
||||||
'screens.subtitleStyling' => 'Undertext-styling',
|
'screens.subtitleStyling' => 'Undertext-styling',
|
||||||
'screens.mpvConfig' => 'MPV-konfiguration',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => 'Loggar',
|
'screens.logs' => 'Loggar',
|
||||||
'update.available' => 'Uppdatering tillgänglig',
|
'update.available' => 'Uppdatering tillgänglig',
|
||||||
'update.versionAvailable' => ({required Object version}) => 'Version ${version} är tillgänglig',
|
'update.versionAvailable' => ({required Object version}) => 'Version ${version} är tillgänglig',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsSv {
|
|||||||
'settings.playerBackend' => 'Spelarmotor',
|
'settings.playerBackend' => 'Spelarmotor',
|
||||||
'settings.exoPlayer' => 'ExoPlayer (Rekommenderad)',
|
'settings.exoPlayer' => 'ExoPlayer (Rekommenderad)',
|
||||||
'settings.exoPlayerDescription' => 'Android-nativ spelare med bättre hårdvarustöd',
|
'settings.exoPlayerDescription' => 'Android-nativ spelare med bättre hårdvarustöd',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => 'Avancerad spelare med fler funktioner och ASS-undertextstöd',
|
'settings.mpvDescription' => 'Avancerad spelare med fler funktioner och ASS-undertextstöd',
|
||||||
'settings.hardwareDecoding' => 'Hårdvaruavkodning',
|
'settings.hardwareDecoding' => 'Hårdvaruavkodning',
|
||||||
'settings.hardwareDecodingDescription' => 'Använd hårdvaruacceleration när tillgängligt',
|
'settings.hardwareDecodingDescription' => 'Använd hårdvaruacceleration när tillgängligt',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsSv {
|
|||||||
'subtitlingStyling.backgroundOpacity' => 'Bakgrundsopacitet',
|
'subtitlingStyling.backgroundOpacity' => 'Bakgrundsopacitet',
|
||||||
'subtitlingStyling.backgroundColor' => 'Bakgrundsfärg',
|
'subtitlingStyling.backgroundColor' => 'Bakgrundsfärg',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV-konfiguration',
|
'mpvConfig.title' => 'mpv-konfiguration',
|
||||||
'mpvConfig.description' => 'Avancerade videospelares inställningar',
|
'mpvConfig.description' => 'Avancerade videospelares inställningar',
|
||||||
'mpvConfig.properties' => 'Egenskaper',
|
|
||||||
'mpvConfig.presets' => 'Förval',
|
'mpvConfig.presets' => 'Förval',
|
||||||
'mpvConfig.noProperties' => 'Inga egenskaper konfigurerade',
|
|
||||||
'mpvConfig.noPresets' => 'Inga sparade förval',
|
'mpvConfig.noPresets' => 'Inga sparade förval',
|
||||||
'mpvConfig.addProperty' => 'Lägg till egenskap',
|
|
||||||
'mpvConfig.editProperty' => 'Redigera egenskap',
|
|
||||||
'mpvConfig.deleteProperty' => 'Ta bort egenskap',
|
|
||||||
'mpvConfig.propertyKey' => 'Egenskapsnyckel',
|
|
||||||
'mpvConfig.propertyKeyHint' => 't.ex. hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => 'Egenskapsvärde',
|
|
||||||
'mpvConfig.propertyValueHint' => 't.ex. auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => 'Spara som förval...',
|
'mpvConfig.saveAsPreset' => 'Spara som förval...',
|
||||||
'mpvConfig.presetName' => 'Förvalnamn',
|
'mpvConfig.presetName' => 'Förvalnamn',
|
||||||
'mpvConfig.presetNameHint' => 'Ange ett namn för detta förval',
|
'mpvConfig.presetNameHint' => 'Ange ett namn för detta förval',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsSv {
|
|||||||
'mpvConfig.presetLoaded' => 'Förval laddat',
|
'mpvConfig.presetLoaded' => 'Förval laddat',
|
||||||
'mpvConfig.presetDeleted' => 'Förval borttaget',
|
'mpvConfig.presetDeleted' => 'Förval borttaget',
|
||||||
'mpvConfig.confirmDeletePreset' => 'Är du säker på att du vill ta bort detta förval?',
|
'mpvConfig.confirmDeletePreset' => 'Är du säker på att du vill ta bort detta förval?',
|
||||||
'mpvConfig.confirmDeleteProperty' => 'Är du säker på att du vill ta bort denna egenskap?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} poster',
|
|
||||||
'dialog.confirmAction' => 'Bekräfta åtgärd',
|
'dialog.confirmAction' => 'Bekräfta åtgärd',
|
||||||
'discover.title' => 'Upptäck',
|
'discover.title' => 'Upptäck',
|
||||||
'discover.switchProfile' => 'Byt profil',
|
'discover.switchProfile' => 'Byt profil',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsSv {
|
|||||||
'liveTv.noChannels' => 'Inga kanaler tillgängliga',
|
'liveTv.noChannels' => 'Inga kanaler tillgängliga',
|
||||||
'liveTv.noDvr' => 'Ingen DVR konfigurerad på någon server',
|
'liveTv.noDvr' => 'Ingen DVR konfigurerad på någon server',
|
||||||
'liveTv.tuneFailed' => 'Kunde inte ställa in kanalen',
|
'liveTv.tuneFailed' => 'Kunde inte ställa in kanalen',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => 'Laddar kanaler...',
|
'liveTv.loading' => 'Laddar kanaler...',
|
||||||
'liveTv.nowPlaying' => 'Spelas nu',
|
'liveTv.nowPlaying' => 'Spelas nu',
|
||||||
'liveTv.noPrograms' => 'Ingen programdata tillgänglig',
|
'liveTv.noPrograms' => 'Ingen programdata tillgänglig',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsSv {
|
|||||||
'liveTv.reloadGuide' => 'Ladda om programguide',
|
'liveTv.reloadGuide' => 'Ladda om programguide',
|
||||||
'liveTv.allChannels' => 'Alla kanaler',
|
'liveTv.allChannels' => 'Alla kanaler',
|
||||||
'liveTv.now' => 'Nu',
|
'liveTv.now' => 'Nu',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => 'Idag',
|
'liveTv.today' => 'Idag',
|
||||||
'liveTv.midnight' => 'Midnatt',
|
'liveTv.midnight' => 'Midnatt',
|
||||||
'liveTv.overnight' => 'Natt',
|
'liveTv.overnight' => 'Natt',
|
||||||
|
|||||||
+10
-30
@@ -169,7 +169,7 @@ class _TranslationsScreensZh implements TranslationsScreensEn {
|
|||||||
@override String get licenses => '许可证';
|
@override String get licenses => '许可证';
|
||||||
@override String get switchProfile => '切换用户';
|
@override String get switchProfile => '切换用户';
|
||||||
@override String get subtitleStyling => '字幕样式';
|
@override String get subtitleStyling => '字幕样式';
|
||||||
@override String get mpvConfig => 'MPV 配置';
|
@override String get mpvConfig => 'mpv.conf';
|
||||||
@override String get logs => '日志';
|
@override String get logs => '日志';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn {
|
|||||||
@override String get playerBackend => '播放器引擎';
|
@override String get playerBackend => '播放器引擎';
|
||||||
@override String get exoPlayer => 'ExoPlayer(推荐)';
|
@override String get exoPlayer => 'ExoPlayer(推荐)';
|
||||||
@override String get exoPlayerDescription => 'Android 原生播放器,硬件支持更好';
|
@override String get exoPlayerDescription => 'Android 原生播放器,硬件支持更好';
|
||||||
@override String get mpv => 'MPV';
|
@override String get mpv => 'mpv';
|
||||||
@override String get mpvDescription => '功能更多的高级播放器,支持 ASS 字幕';
|
@override String get mpvDescription => '功能更多的高级播放器,支持 ASS 字幕';
|
||||||
@override String get hardwareDecoding => '硬件解码';
|
@override String get hardwareDecoding => '硬件解码';
|
||||||
@override String get hardwareDecodingDescription => '如果可用,使用硬件加速';
|
@override String get hardwareDecodingDescription => '如果可用,使用硬件加速';
|
||||||
@@ -595,19 +595,10 @@ class _TranslationsMpvConfigZh implements TranslationsMpvConfigEn {
|
|||||||
final TranslationsZh _root; // ignore: unused_field
|
final TranslationsZh _root; // ignore: unused_field
|
||||||
|
|
||||||
// Translations
|
// Translations
|
||||||
@override String get title => 'MPV 配置';
|
@override String get title => 'mpv 配置';
|
||||||
@override String get description => '高级视频播放器设置';
|
@override String get description => '高级视频播放器设置';
|
||||||
@override String get properties => '属性';
|
|
||||||
@override String get presets => '预设';
|
@override String get presets => '预设';
|
||||||
@override String get noProperties => '未配置任何属性';
|
|
||||||
@override String get noPresets => '没有保存的预设';
|
@override String get noPresets => '没有保存的预设';
|
||||||
@override String get addProperty => '添加属性';
|
|
||||||
@override String get editProperty => '编辑属性';
|
|
||||||
@override String get deleteProperty => '删除属性';
|
|
||||||
@override String get propertyKey => '属性键';
|
|
||||||
@override String get propertyKeyHint => '例如 hwdec, demuxer-max-bytes';
|
|
||||||
@override String get propertyValue => '属性值';
|
|
||||||
@override String get propertyValueHint => '例如 auto, 256000000';
|
|
||||||
@override String get saveAsPreset => '保存为预设...';
|
@override String get saveAsPreset => '保存为预设...';
|
||||||
@override String get presetName => '预设名称';
|
@override String get presetName => '预设名称';
|
||||||
@override String get presetNameHint => '输入此预设的名称';
|
@override String get presetNameHint => '输入此预设的名称';
|
||||||
@@ -617,8 +608,7 @@ class _TranslationsMpvConfigZh implements TranslationsMpvConfigEn {
|
|||||||
@override String get presetLoaded => '预设已加载';
|
@override String get presetLoaded => '预设已加载';
|
||||||
@override String get presetDeleted => '预设已删除';
|
@override String get presetDeleted => '预设已删除';
|
||||||
@override String get confirmDeletePreset => '确定要删除此预设吗?';
|
@override String get confirmDeletePreset => '确定要删除此预设吗?';
|
||||||
@override String get confirmDeleteProperty => '确定要删除此属性吗?';
|
@override String get configPlaceholder => 'gpu-api=vulkan\nhwdec=auto\n# comment';
|
||||||
@override String entriesCount({required Object count}) => '${count} 条目';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Path: dialog
|
// Path: dialog
|
||||||
@@ -1362,7 +1352,7 @@ extension on TranslationsZh {
|
|||||||
'screens.licenses' => '许可证',
|
'screens.licenses' => '许可证',
|
||||||
'screens.switchProfile' => '切换用户',
|
'screens.switchProfile' => '切换用户',
|
||||||
'screens.subtitleStyling' => '字幕样式',
|
'screens.subtitleStyling' => '字幕样式',
|
||||||
'screens.mpvConfig' => 'MPV 配置',
|
'screens.mpvConfig' => 'mpv.conf',
|
||||||
'screens.logs' => '日志',
|
'screens.logs' => '日志',
|
||||||
'update.available' => '有可用更新',
|
'update.available' => '有可用更新',
|
||||||
'update.versionAvailable' => ({required Object version}) => '版本 ${version} 已发布',
|
'update.versionAvailable' => ({required Object version}) => '版本 ${version} 已发布',
|
||||||
@@ -1422,7 +1412,7 @@ extension on TranslationsZh {
|
|||||||
'settings.playerBackend' => '播放器引擎',
|
'settings.playerBackend' => '播放器引擎',
|
||||||
'settings.exoPlayer' => 'ExoPlayer(推荐)',
|
'settings.exoPlayer' => 'ExoPlayer(推荐)',
|
||||||
'settings.exoPlayerDescription' => 'Android 原生播放器,硬件支持更好',
|
'settings.exoPlayerDescription' => 'Android 原生播放器,硬件支持更好',
|
||||||
'settings.mpv' => 'MPV',
|
'settings.mpv' => 'mpv',
|
||||||
'settings.mpvDescription' => '功能更多的高级播放器,支持 ASS 字幕',
|
'settings.mpvDescription' => '功能更多的高级播放器,支持 ASS 字幕',
|
||||||
'settings.hardwareDecoding' => '硬件解码',
|
'settings.hardwareDecoding' => '硬件解码',
|
||||||
'settings.hardwareDecodingDescription' => '如果可用,使用硬件加速',
|
'settings.hardwareDecodingDescription' => '如果可用,使用硬件加速',
|
||||||
@@ -1686,19 +1676,10 @@ extension on TranslationsZh {
|
|||||||
'subtitlingStyling.backgroundOpacity' => '背景不透明度',
|
'subtitlingStyling.backgroundOpacity' => '背景不透明度',
|
||||||
'subtitlingStyling.backgroundColor' => '背景颜色',
|
'subtitlingStyling.backgroundColor' => '背景颜色',
|
||||||
'subtitlingStyling.position' => 'Position',
|
'subtitlingStyling.position' => 'Position',
|
||||||
'mpvConfig.title' => 'MPV 配置',
|
'mpvConfig.title' => 'mpv 配置',
|
||||||
'mpvConfig.description' => '高级视频播放器设置',
|
'mpvConfig.description' => '高级视频播放器设置',
|
||||||
'mpvConfig.properties' => '属性',
|
|
||||||
'mpvConfig.presets' => '预设',
|
'mpvConfig.presets' => '预设',
|
||||||
'mpvConfig.noProperties' => '未配置任何属性',
|
|
||||||
'mpvConfig.noPresets' => '没有保存的预设',
|
'mpvConfig.noPresets' => '没有保存的预设',
|
||||||
'mpvConfig.addProperty' => '添加属性',
|
|
||||||
'mpvConfig.editProperty' => '编辑属性',
|
|
||||||
'mpvConfig.deleteProperty' => '删除属性',
|
|
||||||
'mpvConfig.propertyKey' => '属性键',
|
|
||||||
'mpvConfig.propertyKeyHint' => '例如 hwdec, demuxer-max-bytes',
|
|
||||||
'mpvConfig.propertyValue' => '属性值',
|
|
||||||
'mpvConfig.propertyValueHint' => '例如 auto, 256000000',
|
|
||||||
'mpvConfig.saveAsPreset' => '保存为预设...',
|
'mpvConfig.saveAsPreset' => '保存为预设...',
|
||||||
'mpvConfig.presetName' => '预设名称',
|
'mpvConfig.presetName' => '预设名称',
|
||||||
'mpvConfig.presetNameHint' => '输入此预设的名称',
|
'mpvConfig.presetNameHint' => '输入此预设的名称',
|
||||||
@@ -1708,8 +1689,7 @@ extension on TranslationsZh {
|
|||||||
'mpvConfig.presetLoaded' => '预设已加载',
|
'mpvConfig.presetLoaded' => '预设已加载',
|
||||||
'mpvConfig.presetDeleted' => '预设已删除',
|
'mpvConfig.presetDeleted' => '预设已删除',
|
||||||
'mpvConfig.confirmDeletePreset' => '确定要删除此预设吗?',
|
'mpvConfig.confirmDeletePreset' => '确定要删除此预设吗?',
|
||||||
'mpvConfig.confirmDeleteProperty' => '确定要删除此属性吗?',
|
'mpvConfig.configPlaceholder' => 'gpu-api=vulkan\nhwdec=auto\n# comment',
|
||||||
'mpvConfig.entriesCount' => ({required Object count}) => '${count} 条目',
|
|
||||||
'dialog.confirmAction' => '确认操作',
|
'dialog.confirmAction' => '确认操作',
|
||||||
'discover.title' => '发现',
|
'discover.title' => '发现',
|
||||||
'discover.switchProfile' => '切换用户',
|
'discover.switchProfile' => '切换用户',
|
||||||
@@ -1816,8 +1796,6 @@ extension on TranslationsZh {
|
|||||||
'liveTv.noChannels' => '没有可用的频道',
|
'liveTv.noChannels' => '没有可用的频道',
|
||||||
'liveTv.noDvr' => '没有服务器配置了DVR',
|
'liveTv.noDvr' => '没有服务器配置了DVR',
|
||||||
'liveTv.tuneFailed' => '无法调谐频道',
|
'liveTv.tuneFailed' => '无法调谐频道',
|
||||||
_ => null,
|
|
||||||
} ?? switch (path) {
|
|
||||||
'liveTv.loading' => '正在加载频道...',
|
'liveTv.loading' => '正在加载频道...',
|
||||||
'liveTv.nowPlaying' => '正在播放',
|
'liveTv.nowPlaying' => '正在播放',
|
||||||
'liveTv.noPrograms' => '没有可用的节目数据',
|
'liveTv.noPrograms' => '没有可用的节目数据',
|
||||||
@@ -1828,6 +1806,8 @@ extension on TranslationsZh {
|
|||||||
'liveTv.reloadGuide' => '重新加载节目指南',
|
'liveTv.reloadGuide' => '重新加载节目指南',
|
||||||
'liveTv.allChannels' => '所有频道',
|
'liveTv.allChannels' => '所有频道',
|
||||||
'liveTv.now' => '现在',
|
'liveTv.now' => '现在',
|
||||||
|
_ => null,
|
||||||
|
} ?? switch (path) {
|
||||||
'liveTv.today' => '今天',
|
'liveTv.today' => '今天',
|
||||||
'liveTv.midnight' => '午夜',
|
'liveTv.midnight' => '午夜',
|
||||||
'liveTv.overnight' => '凌晨',
|
'liveTv.overnight' => '凌晨',
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "Licenser",
|
"licenses": "Licenser",
|
||||||
"switchProfile": "Byt profil",
|
"switchProfile": "Byt profil",
|
||||||
"subtitleStyling": "Undertext-styling",
|
"subtitleStyling": "Undertext-styling",
|
||||||
"mpvConfig": "MPV-konfiguration",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "Loggar"
|
"logs": "Loggar"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "Spelarmotor",
|
"playerBackend": "Spelarmotor",
|
||||||
"exoPlayer": "ExoPlayer (Rekommenderad)",
|
"exoPlayer": "ExoPlayer (Rekommenderad)",
|
||||||
"exoPlayerDescription": "Android-nativ spelare med bättre hårdvarustöd",
|
"exoPlayerDescription": "Android-nativ spelare med bättre hårdvarustöd",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "Avancerad spelare med fler funktioner och ASS-undertextstöd",
|
"mpvDescription": "Avancerad spelare med fler funktioner och ASS-undertextstöd",
|
||||||
"hardwareDecoding": "Hårdvaruavkodning",
|
"hardwareDecoding": "Hårdvaruavkodning",
|
||||||
"hardwareDecodingDescription": "Använd hårdvaruacceleration när tillgängligt",
|
"hardwareDecodingDescription": "Använd hårdvaruacceleration när tillgängligt",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV-konfiguration",
|
"title": "mpv-konfiguration",
|
||||||
"description": "Avancerade videospelares inställningar",
|
"description": "Avancerade videospelares inställningar",
|
||||||
"properties": "Egenskaper",
|
|
||||||
"presets": "Förval",
|
"presets": "Förval",
|
||||||
"noProperties": "Inga egenskaper konfigurerade",
|
|
||||||
"noPresets": "Inga sparade förval",
|
"noPresets": "Inga sparade förval",
|
||||||
"addProperty": "Lägg till egenskap",
|
|
||||||
"editProperty": "Redigera egenskap",
|
|
||||||
"deleteProperty": "Ta bort egenskap",
|
|
||||||
"propertyKey": "Egenskapsnyckel",
|
|
||||||
"propertyKeyHint": "t.ex. hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "Egenskapsvärde",
|
|
||||||
"propertyValueHint": "t.ex. auto, 256000000",
|
|
||||||
"saveAsPreset": "Spara som förval...",
|
"saveAsPreset": "Spara som förval...",
|
||||||
"presetName": "Förvalnamn",
|
"presetName": "Förvalnamn",
|
||||||
"presetNameHint": "Ange ett namn för detta förval",
|
"presetNameHint": "Ange ett namn för detta förval",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "Förval laddat",
|
"presetLoaded": "Förval laddat",
|
||||||
"presetDeleted": "Förval borttaget",
|
"presetDeleted": "Förval borttaget",
|
||||||
"confirmDeletePreset": "Är du säker på att du vill ta bort detta förval?",
|
"confirmDeletePreset": "Är du säker på att du vill ta bort detta förval?",
|
||||||
"confirmDeleteProperty": "Är du säker på att du vill ta bort denna egenskap?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} poster"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "Bekräfta åtgärd"
|
"confirmAction": "Bekräfta åtgärd"
|
||||||
|
|||||||
+4
-14
@@ -64,7 +64,7 @@
|
|||||||
"licenses": "许可证",
|
"licenses": "许可证",
|
||||||
"switchProfile": "切换用户",
|
"switchProfile": "切换用户",
|
||||||
"subtitleStyling": "字幕样式",
|
"subtitleStyling": "字幕样式",
|
||||||
"mpvConfig": "MPV 配置",
|
"mpvConfig": "mpv.conf",
|
||||||
"logs": "日志"
|
"logs": "日志"
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"playerBackend": "播放器引擎",
|
"playerBackend": "播放器引擎",
|
||||||
"exoPlayer": "ExoPlayer(推荐)",
|
"exoPlayer": "ExoPlayer(推荐)",
|
||||||
"exoPlayerDescription": "Android 原生播放器,硬件支持更好",
|
"exoPlayerDescription": "Android 原生播放器,硬件支持更好",
|
||||||
"mpv": "MPV",
|
"mpv": "mpv",
|
||||||
"mpvDescription": "功能更多的高级播放器,支持 ASS 字幕",
|
"mpvDescription": "功能更多的高级播放器,支持 ASS 字幕",
|
||||||
"hardwareDecoding": "硬件解码",
|
"hardwareDecoding": "硬件解码",
|
||||||
"hardwareDecodingDescription": "如果可用,使用硬件加速",
|
"hardwareDecodingDescription": "如果可用,使用硬件加速",
|
||||||
@@ -420,19 +420,10 @@
|
|||||||
"position": "Position"
|
"position": "Position"
|
||||||
},
|
},
|
||||||
"mpvConfig": {
|
"mpvConfig": {
|
||||||
"title": "MPV 配置",
|
"title": "mpv 配置",
|
||||||
"description": "高级视频播放器设置",
|
"description": "高级视频播放器设置",
|
||||||
"properties": "属性",
|
|
||||||
"presets": "预设",
|
"presets": "预设",
|
||||||
"noProperties": "未配置任何属性",
|
|
||||||
"noPresets": "没有保存的预设",
|
"noPresets": "没有保存的预设",
|
||||||
"addProperty": "添加属性",
|
|
||||||
"editProperty": "编辑属性",
|
|
||||||
"deleteProperty": "删除属性",
|
|
||||||
"propertyKey": "属性键",
|
|
||||||
"propertyKeyHint": "例如 hwdec, demuxer-max-bytes",
|
|
||||||
"propertyValue": "属性值",
|
|
||||||
"propertyValueHint": "例如 auto, 256000000",
|
|
||||||
"saveAsPreset": "保存为预设...",
|
"saveAsPreset": "保存为预设...",
|
||||||
"presetName": "预设名称",
|
"presetName": "预设名称",
|
||||||
"presetNameHint": "输入此预设的名称",
|
"presetNameHint": "输入此预设的名称",
|
||||||
@@ -442,8 +433,7 @@
|
|||||||
"presetLoaded": "预设已加载",
|
"presetLoaded": "预设已加载",
|
||||||
"presetDeleted": "预设已删除",
|
"presetDeleted": "预设已删除",
|
||||||
"confirmDeletePreset": "确定要删除此预设吗?",
|
"confirmDeletePreset": "确定要删除此预设吗?",
|
||||||
"confirmDeleteProperty": "确定要删除此属性吗?",
|
"configPlaceholder": "gpu-api=vulkan\nhwdec=auto\n# comment"
|
||||||
"entriesCount": "${count} 条目"
|
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"confirmAction": "确认操作"
|
"confirmAction": "确认操作"
|
||||||
|
|||||||
@@ -1,45 +1,22 @@
|
|||||||
/// Represents a single MPV configuration entry
|
|
||||||
class MpvConfigEntry {
|
|
||||||
final String key;
|
|
||||||
final String value;
|
|
||||||
final bool isEnabled;
|
|
||||||
|
|
||||||
const MpvConfigEntry({required this.key, required this.value, this.isEnabled = true});
|
|
||||||
|
|
||||||
factory MpvConfigEntry.fromJson(Map<String, dynamic> json) {
|
|
||||||
return MpvConfigEntry(
|
|
||||||
key: json['key'] as String,
|
|
||||||
value: json['value'] as String,
|
|
||||||
isEnabled: json['isEnabled'] as bool? ?? true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {'key': key, 'value': value, 'isEnabled': isEnabled};
|
|
||||||
|
|
||||||
MpvConfigEntry copyWith({String? key, String? value, bool? isEnabled}) {
|
|
||||||
return MpvConfigEntry(key: key ?? this.key, value: value ?? this.value, isEnabled: isEnabled ?? this.isEnabled);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Represents a saved preset of MPV configurations
|
/// Represents a saved preset of MPV configurations
|
||||||
class MpvPreset {
|
class MpvPreset {
|
||||||
final String name;
|
final String name;
|
||||||
final List<MpvConfigEntry> entries;
|
final String text;
|
||||||
final DateTime createdAt;
|
final DateTime createdAt;
|
||||||
|
|
||||||
const MpvPreset({required this.name, required this.entries, required this.createdAt});
|
const MpvPreset({required this.name, required this.text, required this.createdAt});
|
||||||
|
|
||||||
factory MpvPreset.fromJson(Map<String, dynamic> json) {
|
factory MpvPreset.fromJson(Map<String, dynamic> json) {
|
||||||
return MpvPreset(
|
return MpvPreset(
|
||||||
name: json['name'] as String,
|
name: json['name'] as String,
|
||||||
entries: (json['entries'] as List).map((e) => MpvConfigEntry.fromJson(e as Map<String, dynamic>)).toList(),
|
text: json['text'] as String,
|
||||||
createdAt: DateTime.parse(json['createdAt'] as String),
|
createdAt: DateTime.parse(json['createdAt'] as String),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
'name': name,
|
'name': name,
|
||||||
'entries': entries.map((e) => e.toJson()).toList(),
|
'text': text,
|
||||||
'createdAt': createdAt.toIso8601String(),
|
'createdAt': createdAt.toIso8601String(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:plezy/widgets/app_icon.dart';
|
import 'package:plezy/widgets/app_icon.dart';
|
||||||
import 'package:material_symbols_icons/symbols.dart';
|
import 'package:material_symbols_icons/symbols.dart';
|
||||||
|
import '../../focus/dpad_navigator.dart';
|
||||||
|
import '../../focus/key_event_utils.dart';
|
||||||
import '../../i18n/strings.g.dart';
|
import '../../i18n/strings.g.dart';
|
||||||
import '../../models/mpv_config_models.dart';
|
import '../../models/mpv_config_models.dart';
|
||||||
import '../../focus/focusable_button.dart';
|
import '../../focus/focusable_button.dart';
|
||||||
@@ -20,158 +23,41 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
late SettingsService _settingsService;
|
late SettingsService _settingsService;
|
||||||
bool _isLoading = true;
|
bool _isLoading = true;
|
||||||
|
|
||||||
List<MpvConfigEntry> _entries = [];
|
late TextEditingController _textController;
|
||||||
|
final _savePresetFocusNode = FocusNode();
|
||||||
List<MpvPreset> _presets = [];
|
List<MpvPreset> _presets = [];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
_textController = TextEditingController();
|
||||||
_loadSettings();
|
_loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_textController.dispose();
|
||||||
|
_savePresetFocusNode.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _loadSettings() async {
|
Future<void> _loadSettings() async {
|
||||||
_settingsService = await SettingsService.getInstance();
|
_settingsService = await SettingsService.getInstance();
|
||||||
|
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
_entries = _settingsService.getMpvConfigEntries();
|
_textController.text = _settingsService.getMpvConfigText();
|
||||||
_presets = _settingsService.getMpvPresets();
|
_presets = _settingsService.getMpvPresets();
|
||||||
_isLoading = false;
|
_isLoading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _saveEntries() async {
|
Future<void> _saveText() async {
|
||||||
await _settingsService.setMpvConfigEntries(_entries);
|
await _settingsService.setMpvConfigText(_textController.text);
|
||||||
}
|
|
||||||
|
|
||||||
void _toggleEntry(int index) {
|
|
||||||
setState(() {
|
|
||||||
_entries[index] = _entries[index].copyWith(isEnabled: !_entries[index].isEnabled);
|
|
||||||
});
|
|
||||||
_saveEntries();
|
|
||||||
}
|
|
||||||
|
|
||||||
void _deleteEntry(int index) {
|
|
||||||
setState(() {
|
|
||||||
_entries.removeAt(index);
|
|
||||||
});
|
|
||||||
_saveEntries();
|
|
||||||
}
|
|
||||||
|
|
||||||
void _addEntry(MpvConfigEntry entry) {
|
|
||||||
setState(() {
|
|
||||||
_entries.add(entry);
|
|
||||||
});
|
|
||||||
_saveEntries();
|
|
||||||
}
|
|
||||||
|
|
||||||
void _updateEntry(int index, MpvConfigEntry entry) {
|
|
||||||
setState(() {
|
|
||||||
_entries[index] = entry;
|
|
||||||
});
|
|
||||||
_saveEntries();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _showEntryDialog({int? editIndex}) async {
|
|
||||||
final isEdit = editIndex != null;
|
|
||||||
final existingEntry = isEdit ? _entries[editIndex] : null;
|
|
||||||
|
|
||||||
final keyController = TextEditingController(text: existingEntry?.key ?? '');
|
|
||||||
final valueController = TextEditingController(text: existingEntry?.value ?? '');
|
|
||||||
final keyFocusNode = FocusNode();
|
|
||||||
final valueFocusNode = FocusNode();
|
|
||||||
final saveFocusNode = FocusNode();
|
|
||||||
|
|
||||||
final result = await showDialog<bool>(
|
|
||||||
context: context,
|
|
||||||
builder: (context) => AlertDialog(
|
|
||||||
title: Text(isEdit ? t.mpvConfig.editProperty : t.mpvConfig.addProperty),
|
|
||||||
content: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
TextField(
|
|
||||||
controller: keyController,
|
|
||||||
focusNode: keyFocusNode,
|
|
||||||
decoration: InputDecoration(labelText: t.mpvConfig.propertyKey, hintText: t.mpvConfig.propertyKeyHint),
|
|
||||||
autofocus: true,
|
|
||||||
textInputAction: TextInputAction.next,
|
|
||||||
onSubmitted: (_) => valueFocusNode.requestFocus(),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
TextField(
|
|
||||||
controller: valueController,
|
|
||||||
focusNode: valueFocusNode,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText: t.mpvConfig.propertyValue,
|
|
||||||
hintText: t.mpvConfig.propertyValueHint,
|
|
||||||
),
|
|
||||||
textInputAction: TextInputAction.done,
|
|
||||||
onSubmitted: (_) => saveFocusNode.requestFocus(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
actions: [
|
|
||||||
FocusableButton(
|
|
||||||
onPressed: () => Navigator.pop(context, false),
|
|
||||||
child: TextButton(onPressed: () => Navigator.pop(context, false), child: Text(t.common.cancel)),
|
|
||||||
),
|
|
||||||
FocusableButton(
|
|
||||||
focusNode: saveFocusNode,
|
|
||||||
onPressed: () {
|
|
||||||
if (keyController.text.isNotEmpty && valueController.text.isNotEmpty) {
|
|
||||||
Navigator.pop(context, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: TextButton(
|
|
||||||
onPressed: () {
|
|
||||||
if (keyController.text.isNotEmpty && valueController.text.isNotEmpty) {
|
|
||||||
Navigator.pop(context, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: Text(t.common.save),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result == true) {
|
|
||||||
final entry = MpvConfigEntry(
|
|
||||||
key: keyController.text.trim(),
|
|
||||||
value: valueController.text.trim(),
|
|
||||||
isEnabled: existingEntry?.isEnabled ?? true,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (isEdit) {
|
|
||||||
_updateEntry(editIndex, entry);
|
|
||||||
} else {
|
|
||||||
_addEntry(entry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
keyController.dispose();
|
|
||||||
valueController.dispose();
|
|
||||||
keyFocusNode.dispose();
|
|
||||||
valueFocusNode.dispose();
|
|
||||||
saveFocusNode.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<bool> _showConfirmDeleteDialog({required String title, required String content}) {
|
|
||||||
return showDeleteConfirmation(context, title: title, message: content);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _showDeleteEntryDialog(int index) async {
|
|
||||||
final confirmed = await _showConfirmDeleteDialog(
|
|
||||||
title: t.mpvConfig.deleteProperty,
|
|
||||||
content: t.mpvConfig.confirmDeleteProperty,
|
|
||||||
);
|
|
||||||
if (confirmed) {
|
|
||||||
_deleteEntry(index);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _showSavePresetDialog() async {
|
Future<void> _showSavePresetDialog() async {
|
||||||
if (_entries.isEmpty) return;
|
if (_textController.text.trim().isEmpty) return;
|
||||||
|
|
||||||
final nameController = TextEditingController();
|
final nameController = TextEditingController();
|
||||||
final saveFocusNode = FocusNode();
|
final saveFocusNode = FocusNode();
|
||||||
@@ -215,7 +101,7 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
saveFocusNode.dispose();
|
saveFocusNode.dispose();
|
||||||
|
|
||||||
if (result == true) {
|
if (result == true) {
|
||||||
await _settingsService.saveMpvPreset(nameController.text.trim(), _entries);
|
await _settingsService.saveMpvPreset(nameController.text.trim(), _textController.text);
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
_presets = _settingsService.getMpvPresets();
|
_presets = _settingsService.getMpvPresets();
|
||||||
@@ -233,7 +119,7 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
await _settingsService.loadMpvPreset(preset.name);
|
await _settingsService.loadMpvPreset(preset.name);
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
_entries = _settingsService.getMpvConfigEntries();
|
_textController.text = _settingsService.getMpvConfigText();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
@@ -242,9 +128,10 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _deletePreset(MpvPreset preset) async {
|
Future<void> _deletePreset(MpvPreset preset) async {
|
||||||
final confirmed = await _showConfirmDeleteDialog(
|
final confirmed = await showDeleteConfirmation(
|
||||||
|
context,
|
||||||
title: t.mpvConfig.deletePreset,
|
title: t.mpvConfig.deletePreset,
|
||||||
content: t.mpvConfig.confirmDeletePreset,
|
message: t.mpvConfig.confirmDeletePreset,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (confirmed) {
|
if (confirmed) {
|
||||||
@@ -271,9 +158,9 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
sliver: SliverList(
|
sliver: SliverList(
|
||||||
delegate: SliverChildListDelegate([
|
delegate: SliverChildListDelegate([
|
||||||
_buildPresetsCard(),
|
_buildConfigEditor(),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
_buildEntriesCard(),
|
_buildPresetsCard(),
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
@@ -282,6 +169,58 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildConfigEditor() {
|
||||||
|
return Focus(
|
||||||
|
canRequestFocus: false,
|
||||||
|
onKeyEvent: (_, event) {
|
||||||
|
// Back/Escape: move focus to the save preset button instead of exiting.
|
||||||
|
// Suppress the KeyUp so it doesn't reach handleBackKeyNavigation
|
||||||
|
// on the new focus chain after focus moves away from the text field.
|
||||||
|
if (event.logicalKey.isBackKey) {
|
||||||
|
if (event is KeyDownEvent) {
|
||||||
|
BackKeyUpSuppressor.suppressBackUntilKeyUp();
|
||||||
|
_savePresetFocusNode.requestFocus();
|
||||||
|
}
|
||||||
|
return KeyEventResult.handled;
|
||||||
|
}
|
||||||
|
// We must consume Enter to prevent parent handlers from unfocusing,
|
||||||
|
// but that also blocks Flutter's text editing shortcuts (which are
|
||||||
|
// higher in the focus tree). So we manually insert newlines here.
|
||||||
|
if (event.logicalKey == LogicalKeyboardKey.enter ||
|
||||||
|
event.logicalKey == LogicalKeyboardKey.numpadEnter) {
|
||||||
|
if (event is KeyDownEvent || event is KeyRepeatEvent) {
|
||||||
|
final sel = _textController.selection;
|
||||||
|
if (sel.isValid) {
|
||||||
|
final text = _textController.text;
|
||||||
|
_textController.value = TextEditingValue(
|
||||||
|
text: text.replaceRange(sel.start, sel.end, '\n'),
|
||||||
|
selection: TextSelection.collapsed(offset: sel.start + 1),
|
||||||
|
);
|
||||||
|
_saveText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return KeyEventResult.handled;
|
||||||
|
}
|
||||||
|
if (event.logicalKey.isSelectKey) {
|
||||||
|
return KeyEventResult.handled;
|
||||||
|
}
|
||||||
|
return KeyEventResult.ignored;
|
||||||
|
},
|
||||||
|
child: TextField(
|
||||||
|
controller: _textController,
|
||||||
|
maxLines: null,
|
||||||
|
minLines: 12,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
hintText: t.mpvConfig.configPlaceholder,
|
||||||
|
border: const OutlineInputBorder(),
|
||||||
|
contentPadding: const EdgeInsets.all(12),
|
||||||
|
),
|
||||||
|
style: const TextStyle(fontFamily: 'monospace', fontSize: 13),
|
||||||
|
onChanged: (_) => _saveText(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Widget _buildPresetsCard() {
|
Widget _buildPresetsCard() {
|
||||||
return Card(
|
return Card(
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -295,10 +234,11 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
|
focusNode: _savePresetFocusNode,
|
||||||
leading: const AppIcon(Symbols.save_rounded, fill: 1),
|
leading: const AppIcon(Symbols.save_rounded, fill: 1),
|
||||||
title: Text(t.mpvConfig.saveAsPreset),
|
title: Text(t.mpvConfig.saveAsPreset),
|
||||||
enabled: _entries.isNotEmpty,
|
enabled: _textController.text.trim().isNotEmpty,
|
||||||
onTap: _entries.isNotEmpty ? _showSavePresetDialog : null,
|
onTap: _textController.text.trim().isNotEmpty ? _showSavePresetDialog : null,
|
||||||
),
|
),
|
||||||
if (_presets.isNotEmpty) ...[
|
if (_presets.isNotEmpty) ...[
|
||||||
const Divider(),
|
const Divider(),
|
||||||
@@ -306,7 +246,6 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
(preset) => ListTile(
|
(preset) => ListTile(
|
||||||
leading: const AppIcon(Symbols.folder_rounded, fill: 1),
|
leading: const AppIcon(Symbols.folder_rounded, fill: 1),
|
||||||
title: Text(preset.name),
|
title: Text(preset.name),
|
||||||
subtitle: Text(t.mpvConfig.entriesCount(count: preset.entries.length)),
|
|
||||||
trailing: PopupMenuButton<String>(
|
trailing: PopupMenuButton<String>(
|
||||||
onSelected: (value) {
|
onSelected: (value) {
|
||||||
if (value == 'load') {
|
if (value == 'load') {
|
||||||
@@ -337,71 +276,4 @@ class _MpvConfigScreenState extends State<MpvConfigScreen> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildEntriesCard() {
|
|
||||||
return Card(
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.all(16),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Text(
|
|
||||||
t.mpvConfig.properties,
|
|
||||||
style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
IconButton(
|
|
||||||
icon: const AppIcon(Symbols.add_rounded, fill: 1),
|
|
||||||
onPressed: () => _showEntryDialog(),
|
|
||||||
tooltip: t.mpvConfig.addProperty,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
if (_entries.isNotEmpty) ...[
|
|
||||||
const Divider(height: 1),
|
|
||||||
...List.generate(_entries.length, (index) {
|
|
||||||
final entry = _entries[index];
|
|
||||||
return ListTile(
|
|
||||||
leading: Switch(value: entry.isEnabled, onChanged: (_) => _toggleEntry(index)),
|
|
||||||
title: Text(
|
|
||||||
entry.key,
|
|
||||||
style: TextStyle(color: entry.isEnabled ? null : Theme.of(context).colorScheme.onSurfaceVariant),
|
|
||||||
),
|
|
||||||
subtitle: Text(
|
|
||||||
entry.value,
|
|
||||||
style: TextStyle(color: entry.isEnabled ? null : Theme.of(context).colorScheme.onSurfaceVariant),
|
|
||||||
),
|
|
||||||
trailing: PopupMenuButton<String>(
|
|
||||||
onSelected: (value) {
|
|
||||||
if (value == 'edit') {
|
|
||||||
_showEntryDialog(editIndex: index);
|
|
||||||
} else if (value == 'delete') {
|
|
||||||
_showDeleteEntryDialog(index);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
itemBuilder: (context) => [
|
|
||||||
PopupMenuItem(value: 'edit', child: Text(t.mpvConfig.editProperty)),
|
|
||||||
PopupMenuItem(value: 'delete', child: Text(t.mpvConfig.deleteProperty)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
] else
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16),
|
|
||||||
child: Text(
|
|
||||||
t.mpvConfig.noProperties,
|
|
||||||
style: Theme.of(
|
|
||||||
context,
|
|
||||||
).textTheme.bodyMedium?.copyWith(color: Theme.of(context).colorScheme.onSurfaceVariant),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ class SettingsService extends BaseSharedPreferencesService {
|
|||||||
static const String _keyDownloadOnWifiOnly = 'download_on_wifi_only';
|
static const String _keyDownloadOnWifiOnly = 'download_on_wifi_only';
|
||||||
static const String _keyVideoPlayerNavigationEnabled = 'video_player_navigation_enabled';
|
static const String _keyVideoPlayerNavigationEnabled = 'video_player_navigation_enabled';
|
||||||
static const String _keyShowPerformanceOverlay = 'show_performance_overlay';
|
static const String _keyShowPerformanceOverlay = 'show_performance_overlay';
|
||||||
static const String _keyMpvConfigEntries = 'mpv_config_entries';
|
static const String _keyMpvConfigEntries = 'mpv_config_entries'; // Legacy
|
||||||
|
static const String _keyMpvConfigText = 'mpv_config_text';
|
||||||
static const String _keyMpvConfigPresets = 'mpv_config_presets';
|
static const String _keyMpvConfigPresets = 'mpv_config_presets';
|
||||||
static const String _keyMaxVolume = 'max_volume';
|
static const String _keyMaxVolume = 'max_volume';
|
||||||
static const String _keyEnableDiscordRPC = 'enable_discord_rpc';
|
static const String _keyEnableDiscordRPC = 'enable_discord_rpc';
|
||||||
@@ -923,31 +924,61 @@ class SettingsService extends BaseSharedPreferencesService {
|
|||||||
return prefs.getBool(_keyDownloadOnWifiOnly) ?? false;
|
return prefs.getBool(_keyDownloadOnWifiOnly) ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MPV Config Entries
|
// MPV Config (raw text)
|
||||||
|
|
||||||
/// Get all MPV config entries
|
/// Get the raw MPV config text. Migrates from legacy JSON entries on first read.
|
||||||
List<MpvConfigEntry> getMpvConfigEntries() {
|
String getMpvConfigText() {
|
||||||
final jsonString = prefs.getString(_keyMpvConfigEntries);
|
final text = prefs.getString(_keyMpvConfigText);
|
||||||
if (jsonString == null) return [];
|
if (text != null) return text;
|
||||||
|
|
||||||
try {
|
// Migrate from legacy JSON entries
|
||||||
final List<dynamic> decoded = json.decode(jsonString);
|
final legacyJson = prefs.getString(_keyMpvConfigEntries);
|
||||||
return decoded.map((e) => MpvConfigEntry.fromJson(e as Map<String, dynamic>)).toList();
|
if (legacyJson != null) {
|
||||||
} catch (e) {
|
try {
|
||||||
return [];
|
final List<dynamic> decoded = json.decode(legacyJson);
|
||||||
|
final lines = <String>[];
|
||||||
|
for (final item in decoded) {
|
||||||
|
if (item is Map<String, dynamic>) {
|
||||||
|
final key = item['key'] as String? ?? '';
|
||||||
|
final value = item['value'] as String? ?? '';
|
||||||
|
final enabled = item['isEnabled'] as bool? ?? true;
|
||||||
|
if (key.isNotEmpty) {
|
||||||
|
lines.add(enabled ? '$key=$value' : '#$key=$value');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final migrated = lines.join('\n');
|
||||||
|
prefs.setString(_keyMpvConfigText, migrated);
|
||||||
|
return migrated;
|
||||||
|
} catch (_) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Save all MPV config entries
|
/// Save the raw MPV config text
|
||||||
Future<void> setMpvConfigEntries(List<MpvConfigEntry> entries) async {
|
Future<void> setMpvConfigText(String text) async {
|
||||||
final jsonString = json.encode(entries.map((e) => e.toJson()).toList());
|
await prefs.setString(_keyMpvConfigText, text);
|
||||||
await prefs.setString(_keyMpvConfigEntries, jsonString);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get only enabled MPV config entries (for player initialization)
|
/// Parse raw config text into a Map<String, String> (skip blanks and # comments)
|
||||||
|
static Map<String, String> parseMpvConfigText(String text) {
|
||||||
|
final result = <String, String>{};
|
||||||
|
for (final line in text.split('\n')) {
|
||||||
|
final trimmed = line.trim();
|
||||||
|
if (trimmed.isEmpty || trimmed.startsWith('#')) continue;
|
||||||
|
final eqIndex = trimmed.indexOf('=');
|
||||||
|
if (eqIndex <= 0) continue;
|
||||||
|
final key = trimmed.substring(0, eqIndex).trim();
|
||||||
|
final value = trimmed.substring(eqIndex + 1).trim();
|
||||||
|
if (key.isNotEmpty) result[key] = value;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get enabled MPV config entries (for player initialization)
|
||||||
Map<String, String> getEnabledMpvConfigEntries() {
|
Map<String, String> getEnabledMpvConfigEntries() {
|
||||||
final entries = getMpvConfigEntries();
|
return parseMpvConfigText(getMpvConfigText());
|
||||||
return Map.fromEntries(entries.where((e) => e.isEnabled).map((e) => MapEntry(e.key, e.value)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MPV Presets
|
// MPV Presets
|
||||||
@@ -959,20 +990,36 @@ class SettingsService extends BaseSharedPreferencesService {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final List<dynamic> decoded = json.decode(jsonString);
|
final List<dynamic> decoded = json.decode(jsonString);
|
||||||
return decoded.map((e) => MpvPreset.fromJson(e as Map<String, dynamic>)).toList();
|
return decoded.map((e) {
|
||||||
|
final map = e as Map<String, dynamic>;
|
||||||
|
// Migrate legacy presets with entries list to text
|
||||||
|
if (map.containsKey('entries') && !map.containsKey('text')) {
|
||||||
|
final entries = map['entries'] as List;
|
||||||
|
final lines = <String>[];
|
||||||
|
for (final item in entries) {
|
||||||
|
if (item is Map<String, dynamic>) {
|
||||||
|
final key = item['key'] as String? ?? '';
|
||||||
|
final value = item['value'] as String? ?? '';
|
||||||
|
final enabled = item['isEnabled'] as bool? ?? true;
|
||||||
|
if (key.isNotEmpty) {
|
||||||
|
lines.add(enabled ? '$key=$value' : '#$key=$value');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map['text'] = lines.join('\n');
|
||||||
|
}
|
||||||
|
return MpvPreset.fromJson(map);
|
||||||
|
}).toList();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Save a new preset (overwrites existing with same name)
|
/// Save a new preset (overwrites existing with same name)
|
||||||
Future<void> saveMpvPreset(String name, List<MpvConfigEntry> entries) async {
|
Future<void> saveMpvPreset(String name, String text) async {
|
||||||
final presets = getMpvPresets();
|
final presets = getMpvPresets();
|
||||||
|
|
||||||
// Remove existing preset with same name
|
|
||||||
presets.removeWhere((p) => p.name == name);
|
presets.removeWhere((p) => p.name == name);
|
||||||
|
presets.add(MpvPreset(name: name, text: text, createdAt: DateTime.now()));
|
||||||
presets.add(MpvPreset(name: name, entries: entries, createdAt: DateTime.now()));
|
|
||||||
|
|
||||||
final jsonString = json.encode(presets.map((p) => p.toJson()).toList());
|
final jsonString = json.encode(presets.map((p) => p.toJson()).toList());
|
||||||
await prefs.setString(_keyMpvConfigPresets, jsonString);
|
await prefs.setString(_keyMpvConfigPresets, jsonString);
|
||||||
@@ -987,12 +1034,12 @@ class SettingsService extends BaseSharedPreferencesService {
|
|||||||
await prefs.setString(_keyMpvConfigPresets, jsonString);
|
await prefs.setString(_keyMpvConfigPresets, jsonString);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Load a preset (replaces current entries)
|
/// Load a preset (replaces current config text)
|
||||||
Future<void> loadMpvPreset(String name) async {
|
Future<void> loadMpvPreset(String name) async {
|
||||||
final presets = getMpvPresets();
|
final presets = getMpvPresets();
|
||||||
final preset = presets.firstWhere((p) => p.name == name, orElse: () => throw Exception('Preset not found: $name'));
|
final preset = presets.firstWhere((p) => p.name == name, orElse: () => throw Exception('Preset not found: $name'));
|
||||||
|
|
||||||
await setMpvConfigEntries(preset.entries);
|
await setMpvConfigText(preset.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Discord Rich Presence
|
// Discord Rich Presence
|
||||||
@@ -1248,6 +1295,7 @@ class SettingsService extends BaseSharedPreferencesService {
|
|||||||
prefs.remove(_keyVideoPlayerNavigationEnabled),
|
prefs.remove(_keyVideoPlayerNavigationEnabled),
|
||||||
prefs.remove(_keyShowPerformanceOverlay),
|
prefs.remove(_keyShowPerformanceOverlay),
|
||||||
prefs.remove(_keyMpvConfigEntries),
|
prefs.remove(_keyMpvConfigEntries),
|
||||||
|
prefs.remove(_keyMpvConfigText),
|
||||||
prefs.remove(_keyMpvConfigPresets),
|
prefs.remove(_keyMpvConfigPresets),
|
||||||
prefs.remove(_keyEnableDiscordRPC),
|
prefs.remove(_keyEnableDiscordRPC),
|
||||||
prefs.remove(_keyAutoPip),
|
prefs.remove(_keyAutoPip),
|
||||||
|
|||||||
Reference in New Issue
Block a user