feat: add square art and logo editing to metadata editor

close #837
This commit is contained in:
edde746
2026-04-10 18:38:54 +02:00
parent 0b20300572
commit 9d9d9bb311
33 changed files with 240 additions and 48 deletions
+4
View File
@@ -887,8 +887,12 @@
"summary": "Resumé",
"poster": "Plakat",
"background": "Baggrund",
"logo": "Logo",
"squareArt": "Kvadratisk billede",
"selectPoster": "Vælg plakat",
"selectBackground": "Vælg baggrund",
"selectLogo": "Vælg logo",
"selectSquareArt": "Vælg kvadratisk billede",
"fromUrl": "Fra URL",
"uploadFile": "Upload fil",
"enterImageUrl": "Indtast billed-URL",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Zusammenfassung",
"poster": "Poster",
"background": "Hintergrund",
"logo": "Logo",
"squareArt": "Quadratisches Bild",
"selectPoster": "Poster auswählen",
"selectBackground": "Hintergrund auswählen",
"selectLogo": "Logo auswählen",
"selectSquareArt": "Quadratisches Bild auswählen",
"fromUrl": "Von URL",
"uploadFile": "Datei hochladen",
"enterImageUrl": "Bild-URL eingeben",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Summary",
"poster": "Poster",
"background": "Background",
"logo": "Logo",
"squareArt": "Square Art",
"selectPoster": "Select Poster",
"selectBackground": "Select Background",
"selectLogo": "Select Logo",
"selectSquareArt": "Select Square Art",
"fromUrl": "From URL",
"uploadFile": "Upload File",
"enterImageUrl": "Enter image URL",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Resumen",
"poster": "Póster",
"background": "Fondo",
"logo": "Logo",
"squareArt": "Imagen cuadrada",
"selectPoster": "Seleccionar póster",
"selectBackground": "Seleccionar fondo",
"selectLogo": "Seleccionar logo",
"selectSquareArt": "Seleccionar imagen cuadrada",
"fromUrl": "Desde URL",
"uploadFile": "Subir archivo",
"enterImageUrl": "Introducir URL de imagen",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Résumé",
"poster": "Affiche",
"background": "Arrière-plan",
"logo": "Logo",
"squareArt": "Image carrée",
"selectPoster": "Sélectionner l'affiche",
"selectBackground": "Sélectionner l'arrière-plan",
"selectLogo": "Sélectionner le logo",
"selectSquareArt": "Sélectionner l'image carrée",
"fromUrl": "Depuis une URL",
"uploadFile": "Importer un fichier",
"enterImageUrl": "Entrer l'URL de l'image",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Trama",
"poster": "Poster",
"background": "Sfondo",
"logo": "Logo",
"squareArt": "Immagine quadrata",
"selectPoster": "Seleziona poster",
"selectBackground": "Seleziona sfondo",
"selectLogo": "Seleziona logo",
"selectSquareArt": "Seleziona immagine quadrata",
"fromUrl": "Da URL",
"uploadFile": "Carica file",
"enterImageUrl": "Inserisci URL immagine",
+4
View File
@@ -887,8 +887,12 @@
"summary": "あらすじ",
"poster": "ポスター",
"background": "背景",
"logo": "ロゴ",
"squareArt": "正方形アート",
"selectPoster": "ポスターを選択",
"selectBackground": "背景を選択",
"selectLogo": "ロゴを選択",
"selectSquareArt": "正方形アートを選択",
"fromUrl": "URLから",
"uploadFile": "ファイルをアップロード",
"enterImageUrl": "画像URLを入力",
+4
View File
@@ -887,8 +887,12 @@
"summary": "줄거리",
"poster": "포스터",
"background": "배경",
"logo": "로고",
"squareArt": "정사각형 아트",
"selectPoster": "포스터 선택",
"selectBackground": "배경 선택",
"selectLogo": "로고 선택",
"selectSquareArt": "정사각형 아트 선택",
"fromUrl": "URL에서",
"uploadFile": "파일 업로드",
"enterImageUrl": "이미지 URL 입력",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Sammendrag",
"poster": "Plakat",
"background": "Bakgrunn",
"logo": "Logo",
"squareArt": "Kvadratisk bilde",
"selectPoster": "Velg plakat",
"selectBackground": "Velg bakgrunn",
"selectLogo": "Velg logo",
"selectSquareArt": "Velg kvadratisk bilde",
"fromUrl": "Fra URL",
"uploadFile": "Last opp fil",
"enterImageUrl": "Skriv inn bilde-URL",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Samenvatting",
"poster": "Poster",
"background": "Achtergrond",
"logo": "Logo",
"squareArt": "Vierkante afbeelding",
"selectPoster": "Poster selecteren",
"selectBackground": "Achtergrond selecteren",
"selectLogo": "Logo selecteren",
"selectSquareArt": "Vierkante afbeelding selecteren",
"fromUrl": "Vanaf URL",
"uploadFile": "Bestand uploaden",
"enterImageUrl": "Voer afbeeldings-URL in",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Opis",
"poster": "Plakat",
"background": "Tło",
"logo": "Logo",
"squareArt": "Kwadratowy obraz",
"selectPoster": "Wybierz plakat",
"selectBackground": "Wybierz tło",
"selectLogo": "Wybierz logo",
"selectSquareArt": "Wybierz kwadratowy obraz",
"fromUrl": "Z URL",
"uploadFile": "Prześlij plik",
"enterImageUrl": "Wprowadź URL obrazu",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Sinopse",
"poster": "Poster",
"background": "Plano de Fundo",
"logo": "Logo",
"squareArt": "Imagem Quadrada",
"selectPoster": "Selecionar Poster",
"selectBackground": "Selecionar Plano de Fundo",
"selectLogo": "Selecionar Logo",
"selectSquareArt": "Selecionar Imagem Quadrada",
"fromUrl": "Da URL",
"uploadFile": "Enviar Arquivo",
"enterImageUrl": "Insira a URL da imagem",
+4
View File
@@ -887,8 +887,12 @@
"summary": "Описание",
"poster": "Постер",
"background": "Фон",
"logo": "Логотип",
"squareArt": "Квадратное изображение",
"selectPoster": "Выбрать постер",
"selectBackground": "Выбрать фон",
"selectLogo": "Выбрать логотип",
"selectSquareArt": "Выбрать квадратное изображение",
"fromUrl": "По URL",
"uploadFile": "Загрузить файл",
"enterImageUrl": "Введите URL изображения",
+2 -2
View File
@@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 15
/// Strings: 12885 (859 per locale)
/// Strings: 12945 (863 per locale)
///
/// Built on 2026-04-09 at 23:27 UTC
/// Built on 2026-04-10 at 16:32 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditDa implements TranslationsMetadataEditEn {
@override String get summary => 'Resumé';
@override String get poster => 'Plakat';
@override String get background => 'Baggrund';
@override String get logo => 'Logo';
@override String get squareArt => 'Kvadratisk billede';
@override String get selectPoster => 'Vælg plakat';
@override String get selectBackground => 'Vælg baggrund';
@override String get selectLogo => 'Vælg logo';
@override String get selectSquareArt => 'Vælg kvadratisk billede';
@override String get fromUrl => 'Fra URL';
@override String get uploadFile => 'Upload fil';
@override String get enterImageUrl => 'Indtast billed-URL';
@@ -2159,8 +2163,12 @@ extension on TranslationsDa {
'metadataEdit.summary' => 'Resumé',
'metadataEdit.poster' => 'Plakat',
'metadataEdit.background' => 'Baggrund',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Kvadratisk billede',
'metadataEdit.selectPoster' => 'Vælg plakat',
'metadataEdit.selectBackground' => 'Vælg baggrund',
'metadataEdit.selectLogo' => 'Vælg logo',
'metadataEdit.selectSquareArt' => 'Vælg kvadratisk billede',
'metadataEdit.fromUrl' => 'Fra URL',
'metadataEdit.uploadFile' => 'Upload fil',
'metadataEdit.enterImageUrl' => 'Indtast billed-URL',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditDe implements TranslationsMetadataEditEn {
@override String get summary => 'Zusammenfassung';
@override String get poster => 'Poster';
@override String get background => 'Hintergrund';
@override String get logo => 'Logo';
@override String get squareArt => 'Quadratisches Bild';
@override String get selectPoster => 'Poster auswählen';
@override String get selectBackground => 'Hintergrund auswählen';
@override String get selectLogo => 'Logo auswählen';
@override String get selectSquareArt => 'Quadratisches Bild auswählen';
@override String get fromUrl => 'Von URL';
@override String get uploadFile => 'Datei hochladen';
@override String get enterImageUrl => 'Bild-URL eingeben';
@@ -2159,8 +2163,12 @@ extension on TranslationsDe {
'metadataEdit.summary' => 'Zusammenfassung',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Hintergrund',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Quadratisches Bild',
'metadataEdit.selectPoster' => 'Poster auswählen',
'metadataEdit.selectBackground' => 'Hintergrund auswählen',
'metadataEdit.selectLogo' => 'Logo auswählen',
'metadataEdit.selectSquareArt' => 'Quadratisches Bild auswählen',
'metadataEdit.fromUrl' => 'Von URL',
'metadataEdit.uploadFile' => 'Datei hochladen',
'metadataEdit.enterImageUrl' => 'Bild-URL eingeben',
+16
View File
@@ -2508,12 +2508,24 @@ class TranslationsMetadataEditEn {
/// en: 'Background'
String get background => 'Background';
/// en: 'Logo'
String get logo => 'Logo';
/// en: 'Square Art'
String get squareArt => 'Square Art';
/// en: 'Select Poster'
String get selectPoster => 'Select Poster';
/// en: 'Select Background'
String get selectBackground => 'Select Background';
/// en: 'Select Logo'
String get selectLogo => 'Select Logo';
/// en: 'Select Square Art'
String get selectSquareArt => 'Select Square Art';
/// en: 'From URL'
String get fromUrl => 'From URL';
@@ -3884,8 +3896,12 @@ extension on Translations {
'metadataEdit.summary' => 'Summary',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Background',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Square Art',
'metadataEdit.selectPoster' => 'Select Poster',
'metadataEdit.selectBackground' => 'Select Background',
'metadataEdit.selectLogo' => 'Select Logo',
'metadataEdit.selectSquareArt' => 'Select Square Art',
'metadataEdit.fromUrl' => 'From URL',
'metadataEdit.uploadFile' => 'Upload File',
'metadataEdit.enterImageUrl' => 'Enter image URL',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditEs implements TranslationsMetadataEditEn {
@override String get summary => 'Resumen';
@override String get poster => 'Póster';
@override String get background => 'Fondo';
@override String get logo => 'Logo';
@override String get squareArt => 'Imagen cuadrada';
@override String get selectPoster => 'Seleccionar póster';
@override String get selectBackground => 'Seleccionar fondo';
@override String get selectLogo => 'Seleccionar logo';
@override String get selectSquareArt => 'Seleccionar imagen cuadrada';
@override String get fromUrl => 'Desde URL';
@override String get uploadFile => 'Subir archivo';
@override String get enterImageUrl => 'Introducir URL de imagen';
@@ -2159,8 +2163,12 @@ extension on TranslationsEs {
'metadataEdit.summary' => 'Resumen',
'metadataEdit.poster' => 'Póster',
'metadataEdit.background' => 'Fondo',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Imagen cuadrada',
'metadataEdit.selectPoster' => 'Seleccionar póster',
'metadataEdit.selectBackground' => 'Seleccionar fondo',
'metadataEdit.selectLogo' => 'Seleccionar logo',
'metadataEdit.selectSquareArt' => 'Seleccionar imagen cuadrada',
'metadataEdit.fromUrl' => 'Desde URL',
'metadataEdit.uploadFile' => 'Subir archivo',
'metadataEdit.enterImageUrl' => 'Introducir URL de imagen',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditFr implements TranslationsMetadataEditEn {
@override String get summary => 'Résumé';
@override String get poster => 'Affiche';
@override String get background => 'Arrière-plan';
@override String get logo => 'Logo';
@override String get squareArt => 'Image carrée';
@override String get selectPoster => 'Sélectionner l\'affiche';
@override String get selectBackground => 'Sélectionner l\'arrière-plan';
@override String get selectLogo => 'Sélectionner le logo';
@override String get selectSquareArt => 'Sélectionner l\'image carrée';
@override String get fromUrl => 'Depuis une URL';
@override String get uploadFile => 'Importer un fichier';
@override String get enterImageUrl => 'Entrer l\'URL de l\'image';
@@ -2159,8 +2163,12 @@ extension on TranslationsFr {
'metadataEdit.summary' => 'Résumé',
'metadataEdit.poster' => 'Affiche',
'metadataEdit.background' => 'Arrière-plan',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Image carrée',
'metadataEdit.selectPoster' => 'Sélectionner l\'affiche',
'metadataEdit.selectBackground' => 'Sélectionner l\'arrière-plan',
'metadataEdit.selectLogo' => 'Sélectionner le logo',
'metadataEdit.selectSquareArt' => 'Sélectionner l\'image carrée',
'metadataEdit.fromUrl' => 'Depuis une URL',
'metadataEdit.uploadFile' => 'Importer un fichier',
'metadataEdit.enterImageUrl' => 'Entrer l\'URL de l\'image',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditIt implements TranslationsMetadataEditEn {
@override String get summary => 'Trama';
@override String get poster => 'Poster';
@override String get background => 'Sfondo';
@override String get logo => 'Logo';
@override String get squareArt => 'Immagine quadrata';
@override String get selectPoster => 'Seleziona poster';
@override String get selectBackground => 'Seleziona sfondo';
@override String get selectLogo => 'Seleziona logo';
@override String get selectSquareArt => 'Seleziona immagine quadrata';
@override String get fromUrl => 'Da URL';
@override String get uploadFile => 'Carica file';
@override String get enterImageUrl => 'Inserisci URL immagine';
@@ -2159,8 +2163,12 @@ extension on TranslationsIt {
'metadataEdit.summary' => 'Trama',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Sfondo',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Immagine quadrata',
'metadataEdit.selectPoster' => 'Seleziona poster',
'metadataEdit.selectBackground' => 'Seleziona sfondo',
'metadataEdit.selectLogo' => 'Seleziona logo',
'metadataEdit.selectSquareArt' => 'Seleziona immagine quadrata',
'metadataEdit.fromUrl' => 'Da URL',
'metadataEdit.uploadFile' => 'Carica file',
'metadataEdit.enterImageUrl' => 'Inserisci URL immagine',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditJa implements TranslationsMetadataEditEn {
@override String get summary => 'あらすじ';
@override String get poster => 'ポスター';
@override String get background => '背景';
@override String get logo => 'ロゴ';
@override String get squareArt => '正方形アート';
@override String get selectPoster => 'ポスターを選択';
@override String get selectBackground => '背景を選択';
@override String get selectLogo => 'ロゴを選択';
@override String get selectSquareArt => '正方形アートを選択';
@override String get fromUrl => 'URLから';
@override String get uploadFile => 'ファイルをアップロード';
@override String get enterImageUrl => '画像URLを入力';
@@ -2159,8 +2163,12 @@ extension on TranslationsJa {
'metadataEdit.summary' => 'あらすじ',
'metadataEdit.poster' => 'ポスター',
'metadataEdit.background' => '背景',
'metadataEdit.logo' => 'ロゴ',
'metadataEdit.squareArt' => '正方形アート',
'metadataEdit.selectPoster' => 'ポスターを選択',
'metadataEdit.selectBackground' => '背景を選択',
'metadataEdit.selectLogo' => 'ロゴを選択',
'metadataEdit.selectSquareArt' => '正方形アートを選択',
'metadataEdit.fromUrl' => 'URLから',
'metadataEdit.uploadFile' => 'ファイルをアップロード',
'metadataEdit.enterImageUrl' => '画像URLを入力',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditKo implements TranslationsMetadataEditEn {
@override String get summary => '줄거리';
@override String get poster => '포스터';
@override String get background => '배경';
@override String get logo => '로고';
@override String get squareArt => '정사각형 아트';
@override String get selectPoster => '포스터 선택';
@override String get selectBackground => '배경 선택';
@override String get selectLogo => '로고 선택';
@override String get selectSquareArt => '정사각형 아트 선택';
@override String get fromUrl => 'URL에서';
@override String get uploadFile => '파일 업로드';
@override String get enterImageUrl => '이미지 URL 입력';
@@ -2159,8 +2163,12 @@ extension on TranslationsKo {
'metadataEdit.summary' => '줄거리',
'metadataEdit.poster' => '포스터',
'metadataEdit.background' => '배경',
'metadataEdit.logo' => '로고',
'metadataEdit.squareArt' => '정사각형 아트',
'metadataEdit.selectPoster' => '포스터 선택',
'metadataEdit.selectBackground' => '배경 선택',
'metadataEdit.selectLogo' => '로고 선택',
'metadataEdit.selectSquareArt' => '정사각형 아트 선택',
'metadataEdit.fromUrl' => 'URL에서',
'metadataEdit.uploadFile' => '파일 업로드',
'metadataEdit.enterImageUrl' => '이미지 URL 입력',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditNb implements TranslationsMetadataEditEn {
@override String get summary => 'Sammendrag';
@override String get poster => 'Plakat';
@override String get background => 'Bakgrunn';
@override String get logo => 'Logo';
@override String get squareArt => 'Kvadratisk bilde';
@override String get selectPoster => 'Velg plakat';
@override String get selectBackground => 'Velg bakgrunn';
@override String get selectLogo => 'Velg logo';
@override String get selectSquareArt => 'Velg kvadratisk bilde';
@override String get fromUrl => 'Fra URL';
@override String get uploadFile => 'Last opp fil';
@override String get enterImageUrl => 'Skriv inn bilde-URL';
@@ -2159,8 +2163,12 @@ extension on TranslationsNb {
'metadataEdit.summary' => 'Sammendrag',
'metadataEdit.poster' => 'Plakat',
'metadataEdit.background' => 'Bakgrunn',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Kvadratisk bilde',
'metadataEdit.selectPoster' => 'Velg plakat',
'metadataEdit.selectBackground' => 'Velg bakgrunn',
'metadataEdit.selectLogo' => 'Velg logo',
'metadataEdit.selectSquareArt' => 'Velg kvadratisk bilde',
'metadataEdit.fromUrl' => 'Fra URL',
'metadataEdit.uploadFile' => 'Last opp fil',
'metadataEdit.enterImageUrl' => 'Skriv inn bilde-URL',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditNl implements TranslationsMetadataEditEn {
@override String get summary => 'Samenvatting';
@override String get poster => 'Poster';
@override String get background => 'Achtergrond';
@override String get logo => 'Logo';
@override String get squareArt => 'Vierkante afbeelding';
@override String get selectPoster => 'Poster selecteren';
@override String get selectBackground => 'Achtergrond selecteren';
@override String get selectLogo => 'Logo selecteren';
@override String get selectSquareArt => 'Vierkante afbeelding selecteren';
@override String get fromUrl => 'Vanaf URL';
@override String get uploadFile => 'Bestand uploaden';
@override String get enterImageUrl => 'Voer afbeeldings-URL in';
@@ -2159,8 +2163,12 @@ extension on TranslationsNl {
'metadataEdit.summary' => 'Samenvatting',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Achtergrond',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Vierkante afbeelding',
'metadataEdit.selectPoster' => 'Poster selecteren',
'metadataEdit.selectBackground' => 'Achtergrond selecteren',
'metadataEdit.selectLogo' => 'Logo selecteren',
'metadataEdit.selectSquareArt' => 'Vierkante afbeelding selecteren',
'metadataEdit.fromUrl' => 'Vanaf URL',
'metadataEdit.uploadFile' => 'Bestand uploaden',
'metadataEdit.enterImageUrl' => 'Voer afbeeldings-URL in',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditPl implements TranslationsMetadataEditEn {
@override String get summary => 'Opis';
@override String get poster => 'Plakat';
@override String get background => 'Tło';
@override String get logo => 'Logo';
@override String get squareArt => 'Kwadratowy obraz';
@override String get selectPoster => 'Wybierz plakat';
@override String get selectBackground => 'Wybierz tło';
@override String get selectLogo => 'Wybierz logo';
@override String get selectSquareArt => 'Wybierz kwadratowy obraz';
@override String get fromUrl => 'Z URL';
@override String get uploadFile => 'Prześlij plik';
@override String get enterImageUrl => 'Wprowadź URL obrazu';
@@ -2159,8 +2163,12 @@ extension on TranslationsPl {
'metadataEdit.summary' => 'Opis',
'metadataEdit.poster' => 'Plakat',
'metadataEdit.background' => 'Tło',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Kwadratowy obraz',
'metadataEdit.selectPoster' => 'Wybierz plakat',
'metadataEdit.selectBackground' => 'Wybierz tło',
'metadataEdit.selectLogo' => 'Wybierz logo',
'metadataEdit.selectSquareArt' => 'Wybierz kwadratowy obraz',
'metadataEdit.fromUrl' => 'Z URL',
'metadataEdit.uploadFile' => 'Prześlij plik',
'metadataEdit.enterImageUrl' => 'Wprowadź URL obrazu',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditPt implements TranslationsMetadataEditEn {
@override String get summary => 'Sinopse';
@override String get poster => 'Poster';
@override String get background => 'Plano de Fundo';
@override String get logo => 'Logo';
@override String get squareArt => 'Imagem Quadrada';
@override String get selectPoster => 'Selecionar Poster';
@override String get selectBackground => 'Selecionar Plano de Fundo';
@override String get selectLogo => 'Selecionar Logo';
@override String get selectSquareArt => 'Selecionar Imagem Quadrada';
@override String get fromUrl => 'Da URL';
@override String get uploadFile => 'Enviar Arquivo';
@override String get enterImageUrl => 'Insira a URL da imagem';
@@ -2159,8 +2163,12 @@ extension on TranslationsPt {
'metadataEdit.summary' => 'Sinopse',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Plano de Fundo',
'metadataEdit.logo' => 'Logo',
'metadataEdit.squareArt' => 'Imagem Quadrada',
'metadataEdit.selectPoster' => 'Selecionar Poster',
'metadataEdit.selectBackground' => 'Selecionar Plano de Fundo',
'metadataEdit.selectLogo' => 'Selecionar Logo',
'metadataEdit.selectSquareArt' => 'Selecionar Imagem Quadrada',
'metadataEdit.fromUrl' => 'Da URL',
'metadataEdit.uploadFile' => 'Enviar Arquivo',
'metadataEdit.enterImageUrl' => 'Insira a URL da imagem',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditRu implements TranslationsMetadataEditEn {
@override String get summary => 'Описание';
@override String get poster => 'Постер';
@override String get background => 'Фон';
@override String get logo => 'Логотип';
@override String get squareArt => 'Квадратное изображение';
@override String get selectPoster => 'Выбрать постер';
@override String get selectBackground => 'Выбрать фон';
@override String get selectLogo => 'Выбрать логотип';
@override String get selectSquareArt => 'Выбрать квадратное изображение';
@override String get fromUrl => 'По URL';
@override String get uploadFile => 'Загрузить файл';
@override String get enterImageUrl => 'Введите URL изображения';
@@ -2159,8 +2163,12 @@ extension on TranslationsRu {
'metadataEdit.summary' => 'Описание',
'metadataEdit.poster' => 'Постер',
'metadataEdit.background' => 'Фон',
'metadataEdit.logo' => 'Логотип',
'metadataEdit.squareArt' => 'Квадратное изображение',
'metadataEdit.selectPoster' => 'Выбрать постер',
'metadataEdit.selectBackground' => 'Выбрать фон',
'metadataEdit.selectLogo' => 'Выбрать логотип',
'metadataEdit.selectSquareArt' => 'Выбрать квадратное изображение',
'metadataEdit.fromUrl' => 'По URL',
'metadataEdit.uploadFile' => 'Загрузить файл',
'metadataEdit.enterImageUrl' => 'Введите URL изображения',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditSv implements TranslationsMetadataEditEn {
@override String get summary => 'Sammanfattning';
@override String get poster => 'Poster';
@override String get background => 'Bakgrund';
@override String get logo => 'Logotyp';
@override String get squareArt => 'Kvadratisk bild';
@override String get selectPoster => 'Välj poster';
@override String get selectBackground => 'Välj bakgrund';
@override String get selectLogo => 'Välj logotyp';
@override String get selectSquareArt => 'Välj kvadratisk bild';
@override String get fromUrl => 'Från URL';
@override String get uploadFile => 'Ladda upp fil';
@override String get enterImageUrl => 'Ange bild-URL';
@@ -2159,8 +2163,12 @@ extension on TranslationsSv {
'metadataEdit.summary' => 'Sammanfattning',
'metadataEdit.poster' => 'Poster',
'metadataEdit.background' => 'Bakgrund',
'metadataEdit.logo' => 'Logotyp',
'metadataEdit.squareArt' => 'Kvadratisk bild',
'metadataEdit.selectPoster' => 'Välj poster',
'metadataEdit.selectBackground' => 'Välj bakgrund',
'metadataEdit.selectLogo' => 'Välj logotyp',
'metadataEdit.selectSquareArt' => 'Välj kvadratisk bild',
'metadataEdit.fromUrl' => 'Från URL',
'metadataEdit.uploadFile' => 'Ladda upp fil',
'metadataEdit.enterImageUrl' => 'Ange bild-URL',
+8
View File
@@ -1110,8 +1110,12 @@ class _TranslationsMetadataEditZh implements TranslationsMetadataEditEn {
@override String get summary => '简介';
@override String get poster => '海报';
@override String get background => '背景';
@override String get logo => '标志';
@override String get squareArt => '方形图片';
@override String get selectPoster => '选择海报';
@override String get selectBackground => '选择背景';
@override String get selectLogo => '选择标志';
@override String get selectSquareArt => '选择方形图片';
@override String get fromUrl => '从 URL';
@override String get uploadFile => '上传文件';
@override String get enterImageUrl => '输入图片 URL';
@@ -2159,8 +2163,12 @@ extension on TranslationsZh {
'metadataEdit.summary' => '简介',
'metadataEdit.poster' => '海报',
'metadataEdit.background' => '背景',
'metadataEdit.logo' => '标志',
'metadataEdit.squareArt' => '方形图片',
'metadataEdit.selectPoster' => '选择海报',
'metadataEdit.selectBackground' => '选择背景',
'metadataEdit.selectLogo' => '选择标志',
'metadataEdit.selectSquareArt' => '选择方形图片',
'metadataEdit.fromUrl' => '从 URL',
'metadataEdit.uploadFile' => '上传文件',
'metadataEdit.enterImageUrl' => '输入图片 URL',
+4
View File
@@ -887,8 +887,12 @@
"summary": "Sammanfattning",
"poster": "Poster",
"background": "Bakgrund",
"logo": "Logotyp",
"squareArt": "Kvadratisk bild",
"selectPoster": "Välj poster",
"selectBackground": "Välj bakgrund",
"selectLogo": "Välj logotyp",
"selectSquareArt": "Välj kvadratisk bild",
"fromUrl": "Från URL",
"uploadFile": "Ladda upp fil",
"enterImageUrl": "Ange bild-URL",
+4
View File
@@ -887,8 +887,12 @@
"summary": "简介",
"poster": "海报",
"background": "背景",
"logo": "标志",
"squareArt": "方形图片",
"selectPoster": "选择海报",
"selectBackground": "选择背景",
"selectLogo": "选择标志",
"selectSquareArt": "选择方形图片",
"fromUrl": "从 URL",
"uploadFile": "上传文件",
"enterImageUrl": "输入图片 URL",
+37 -38
View File
@@ -367,6 +367,8 @@ class _MetadataEditScreenState extends State<MetadataEditScreen> {
bool get _showTagline => _mediaType == PlexMediaType.movie || _mediaType == PlexMediaType.show;
bool get _showBackground =>
_mediaType == PlexMediaType.movie || _mediaType == PlexMediaType.show || _mediaType == PlexMediaType.episode;
bool get _showExtendedArtwork =>
_mediaType == PlexMediaType.movie || _mediaType == PlexMediaType.show || _mediaType == PlexMediaType.collection;
bool get _showAdvanced => _mediaType != PlexMediaType.episode;
List<({String key, String label})> get _tagFields {
@@ -606,6 +608,35 @@ class _MetadataEditScreenState extends State<MetadataEditScreen> {
);
}
Widget _buildArtworkTile({
required double width,
required double height,
required String? imagePath,
required String label,
required String element,
BoxFit fit = BoxFit.cover,
}) {
return ListTile(
leading: SizedBox(
width: width,
height: height,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(4)),
child: PlexOptimizedImage(
client: _client,
imagePath: imagePath,
width: width,
height: height,
fit: fit,
),
),
),
title: Text(label),
trailing: const AppIcon(Symbols.chevron_right_rounded),
onTap: () => _openArtworkPicker(element),
);
}
Widget _buildArtworkCard() {
final meta = _fullMetadata ?? widget.metadata;
@@ -620,45 +651,13 @@ class _MetadataEditScreenState extends State<MetadataEditScreen> {
style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
),
),
ListTile(
leading: SizedBox(
width: 40,
height: 60,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(4)),
child: PlexOptimizedImage(
client: _client,
imagePath: meta.thumb,
width: 40,
height: 60,
fit: BoxFit.cover,
),
),
),
title: Text(t.metadataEdit.poster),
trailing: const AppIcon(Symbols.chevron_right_rounded),
onTap: () => _openArtworkPicker('posters'),
),
_buildArtworkTile(width: 40, height: 60, imagePath: meta.thumb, label: t.metadataEdit.poster, element: 'posters'),
if (_showBackground)
ListTile(
leading: SizedBox(
width: 80,
height: 45,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(4)),
child: PlexOptimizedImage(
client: _client,
imagePath: meta.art,
width: 80,
height: 45,
fit: BoxFit.cover,
),
),
),
title: Text(t.metadataEdit.background),
trailing: const AppIcon(Symbols.chevron_right_rounded),
onTap: () => _openArtworkPicker('arts'),
),
_buildArtworkTile(width: 80, height: 45, imagePath: meta.art, label: t.metadataEdit.background, element: 'arts'),
if (_showExtendedArtwork)
_buildArtworkTile(width: 80, height: 32, imagePath: meta.clearLogo, label: t.metadataEdit.logo, element: 'clearLogos', fit: BoxFit.contain),
if (_showExtendedArtwork)
_buildArtworkTile(width: 50, height: 50, imagePath: meta.backgroundSquare, label: t.metadataEdit.squareArt, element: 'squareArts'),
],
),
);
+13 -8
View File
@@ -31,7 +31,15 @@ class _ArtworkPickerDialogState extends State<ArtworkPickerDialog> {
bool _isLoading = true;
bool _isApplying = false;
bool get _isPosters => widget.element == 'posters';
({int crossAxisCount, double aspectRatio, String title}) get _elementConfig {
return switch (widget.element) {
'posters' => (crossAxisCount: 3, aspectRatio: 2.0 / 3.0, title: t.metadataEdit.selectPoster),
'arts' => (crossAxisCount: 2, aspectRatio: 16.0 / 9.0, title: t.metadataEdit.selectBackground),
'clearLogos' => (crossAxisCount: 2, aspectRatio: 2.5 / 1.0, title: t.metadataEdit.selectLogo),
'squareArts' => (crossAxisCount: 3, aspectRatio: 1.0, title: t.metadataEdit.selectSquareArt),
_ => (crossAxisCount: 3, aspectRatio: 2.0 / 3.0, title: t.metadataEdit.selectPoster),
};
}
@override
void initState() {
@@ -124,10 +132,8 @@ class _ArtworkPickerDialogState extends State<ArtworkPickerDialog> {
@override
Widget build(BuildContext context) {
final title = _isPosters ? t.metadataEdit.selectPoster : t.metadataEdit.selectBackground;
return AlertDialog(
title: Text(title),
title: Text(_elementConfig.title),
content: SizedBox(
width: 500,
height: 400,
@@ -177,15 +183,14 @@ class _ArtworkPickerDialogState extends State<ArtworkPickerDialog> {
}
Widget _buildGrid() {
final crossAxisCount = _isPosters ? 3 : 2;
final aspectRatio = _isPosters ? 2.0 / 3.0 : 16.0 / 9.0;
final config = _elementConfig;
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: crossAxisCount,
crossAxisCount: config.crossAxisCount,
crossAxisSpacing: 8,
mainAxisSpacing: 8,
childAspectRatio: aspectRatio,
childAspectRatio: config.aspectRatio,
),
itemCount: _artworkList!.length,
itemBuilder: (context, index) {