Album: Milow als 10. Song ins de/en/neo-Album (neo = Boarisch-Variante) + Profil-ZIPs auf 10 Songs (v1309)

This commit is contained in:
rene 2026-06-21 21:10:38 +02:00
parent 786a2f442f
commit 01a04358be
17 changed files with 45 additions and 35 deletions

View file

@ -1 +1 @@
1308 1309

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title> <title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen --> <!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1308"></script> <script src="/js/boot-early.js?v=1309"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung --> <!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1308"> <link rel="stylesheet" href="/css/design-system.css?v=1309">
<link rel="stylesheet" href="/css/layout.css?v=1308"> <link rel="stylesheet" href="/css/layout.css?v=1309">
<link rel="stylesheet" href="/css/components.css?v=1308"> <link rel="stylesheet" href="/css/components.css?v=1309">
<link rel="stylesheet" href="/css/utilities.css?v=1308"> <link rel="stylesheet" href="/css/utilities.css?v=1309">
<link rel="stylesheet" href="/css/lists.css?v=1308"> <link rel="stylesheet" href="/css/lists.css?v=1309">
</head> </head>
<body> <body>
@ -624,12 +624,12 @@
<div id="modal-container"></div> <div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features --> <!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1308"></script> <script src="/js/api.js?v=1309"></script>
<script src="/js/ui.js?v=1308"></script> <script src="/js/ui.js?v=1309"></script>
<script src="/js/app.js?v=1308"></script> <script src="/js/app.js?v=1309"></script>
<script src="/js/worlds.js?v=1308"></script> <script src="/js/worlds.js?v=1309"></script>
<script src="/js/offline-indicator.js?v=1308"></script> <script src="/js/offline-indicator.js?v=1309"></script>
<script src="/js/contact-form.js?v=1308"></script> <script src="/js/contact-form.js?v=1309"></script>
<!-- Feature-Seiten werden lazy geladen --> <!-- Feature-Seiten werden lazy geladen -->
@ -639,7 +639,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) --> <!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1308"></script> <script src="/js/boot.js?v=1309"></script>
</body> </body>

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung. Router, State-Management, Navigation, Initialisierung.
============================================================ */ ============================================================ */
const APP_VER = '1308'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VER = '1309'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator) window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator)
window.APP_VERSION = APP_VERSION; window.APP_VERSION = APP_VERSION;

View file

@ -885,7 +885,7 @@ window.Page_settings = (() => {
width="84" height="84" loading="lazy" width="84" height="84" loading="lazy"
style="width:84px;height:84px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0"> style="width:84px;height:84px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0">
<div style="min-width:0"> <div style="min-width:0">
<div style="font-weight:600">9 Songs zum Behalten 🎸</div> <div style="font-weight:600">10 Songs zum Behalten 🎸</div>
<div class="text-xs-secondary" style="margin-top:2px"> <div class="text-xs-secondary" style="margin-top:2px">
Das ganze Album als Download Deutsch, Englisch oder neo" Das ganze Album als Download Deutsch, Englisch oder neo"
(Electro-Remix). Behalten &amp; teilen ausdrücklich erwünscht. (Electro-Remix). Behalten &amp; teilen ausdrücklich erwünscht.
@ -896,17 +896,17 @@ window.Page_settings = (() => {
<a class="btn btn-primary" href="/downloads/ban-yaro-album-de.zip" <a class="btn btn-primary" href="/downloads/ban-yaro-album-de.zip"
download="Ban Yaro - Das Album.zip" download="Ban Yaro - Das Album.zip"
style="flex:1;min-width:130px;justify-content:center;text-decoration:none"> style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
${UI.icon('download-simple')} Deutsch · 45 MB ${UI.icon('download-simple')} Deutsch · 50 MB
</a> </a>
<a class="btn btn-secondary" href="/downloads/ban-yaro-album-en.zip" <a class="btn btn-secondary" href="/downloads/ban-yaro-album-en.zip"
download="Ban Yaro - The Album.zip" download="Ban Yaro - The Album.zip"
style="flex:1;min-width:130px;justify-content:center;text-decoration:none"> style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
${UI.icon('download-simple')} English · 48 MB ${UI.icon('download-simple')} English · 54 MB
</a> </a>
<a class="btn btn-secondary" href="/downloads/ban-yaro-album-neo.zip" <a class="btn btn-secondary" href="/downloads/ban-yaro-album-neo.zip"
download="Ban Yaro - Neon Edition.zip" download="Ban Yaro - Neon Edition.zip"
style="flex:1;min-width:130px;justify-content:center;text-decoration:none"> style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
${UI.icon('download-simple')} neo · 46 MB ${UI.icon('download-simple')} neo · 51 MB
</a> </a>
</div> </div>
</div> </div>

View file

@ -1955,6 +1955,7 @@ window.Worlds = (() => {
{ title: 'Bester Freund', sub: 'Du und ich', file: '/sounds/bester-freund.mp3' }, { title: 'Bester Freund', sub: 'Du und ich', file: '/sounds/bester-freund.mp3' },
{ title: 'Blauer Ball', sub: 'Das Lieblingsspielzeug', file: '/sounds/blauer-ball.mp3' }, { title: 'Blauer Ball', sub: 'Das Lieblingsspielzeug', file: '/sounds/blauer-ball.mp3' },
{ title: 'Mei Revier!', sub: 'Revier-Hymne, breitbeinig', file: '/sounds/mei-revier.mp3' }, { title: 'Mei Revier!', sub: 'Revier-Hymne, breitbeinig', file: '/sounds/mei-revier.mp3' },
{ title: 'Milow', sub: 'Vorbild und bester Freund', file: '/sounds/milow.mp3' },
]; ];
const SONGS_EN = [ const SONGS_EN = [
{ title: 'Ban Yaro Blues', sub: 'The anthem', file: '/sounds/ban-yaro-blues-en.mp3' }, { title: 'Ban Yaro Blues', sub: 'The anthem', file: '/sounds/ban-yaro-blues-en.mp3' },
@ -1966,6 +1967,7 @@ window.Worlds = (() => {
{ title: 'Best Friend', sub: 'You and me', file: '/sounds/best-friend-en.mp3' }, { title: 'Best Friend', sub: 'You and me', file: '/sounds/best-friend-en.mp3' },
{ title: 'Blauer Ball', sub: 'The favourite toy', file: '/sounds/blauer-ball-en.mp3' }, { title: 'Blauer Ball', sub: 'The favourite toy', file: '/sounds/blauer-ball-en.mp3' },
{ title: 'Mei Revier!', sub: 'Turf anthem with attitude', file: '/sounds/mei-revier-en.mp3' }, { title: 'Mei Revier!', sub: 'Turf anthem with attitude', file: '/sounds/mei-revier-en.mp3' },
{ title: 'Milow', sub: 'Role model and best friend', file: '/sounds/milow-en.mp3' },
]; ];
// „neo" = Neon Edition: dieselben EN-Texte, anderer Musikstil (Electro + Garage-Rock). // „neo" = Neon Edition: dieselben EN-Texte, anderer Musikstil (Electro + Garage-Rock).
const SONGS_EN_ELECTRO = [ const SONGS_EN_ELECTRO = [
@ -1978,6 +1980,7 @@ window.Worlds = (() => {
{ title: 'Best Friend', sub: 'Acoustic-soul to synth', file: '/sounds/best-friend-en-electro.mp3' }, { title: 'Best Friend', sub: 'Acoustic-soul to synth', file: '/sounds/best-friend-en-electro.mp3' },
{ title: 'Blauer Ball', sub: 'Boarisch · da blaue Boi', file: '/sounds/blauer-ball-by.mp3' }, { title: 'Blauer Ball', sub: 'Boarisch · da blaue Boi', file: '/sounds/blauer-ball-by.mp3' },
{ title: 'Mei Revier!', sub: 'Boarisch · Gangster-Rap', file: '/sounds/mei-revier-by.mp3' }, { title: 'Mei Revier!', sub: 'Boarisch · Gangster-Rap', file: '/sounds/mei-revier-by.mp3' },
{ title: 'Milow', sub: 'Boarisch · Vorbild & Freund', file: '/sounds/milow-by.mp3' },
]; ];
const ALBUMS = { de: SONGS_DE, en: SONGS_EN, neo: SONGS_EN_ELECTRO }; const ALBUMS = { de: SONGS_DE, en: SONGS_EN, neo: SONGS_EN_ELECTRO };
let _lang = (() => { let _lang = (() => {

View file

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="light dark"> <meta name="color-scheme" content="light dark">
<script src="/js/landing-init.js?v=1308"></script> <script src="/js/landing-init.js?v=1309"></script>
<title>Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz</title> <title>Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz</title>
<meta name="description" content="Ban Yaro: Die kostenlose All-in-One Hunde-App für DACH. Tagebuch, Giftköder-Alarm, Training mit KI, Forum, Wurfbörse, Stammbaum, Inzucht-Check — DSGVO-konform, offline-fähig, direkt im Browser oder als native iPhone-App (Ban Yaro Go)."> <meta name="description" content="Ban Yaro: Die kostenlose All-in-One Hunde-App für DACH. Tagebuch, Giftköder-Alarm, Training mit KI, Forum, Wurfbörse, Stammbaum, Inzucht-Check — DSGVO-konform, offline-fähig, direkt im Browser oder als native iPhone-App (Ban Yaro Go).">
<meta name="keywords" content="Hunde App, Hunde Community, Wurfbörse, Züchter, Welpen kaufen, Stammbaum Hund, Inzuchtkoeffizient, Hundezucht, Impfpass Hund, Giftköder Alarm, Gassi Community, Hundetraining App, Hunde Forum, Hunde KI, Hundefilm Datenbank, Welpen Marktplatz"> <meta name="keywords" content="Hunde App, Hunde Community, Wurfbörse, Züchter, Welpen kaufen, Stammbaum Hund, Inzuchtkoeffizient, Hundezucht, Impfpass Hund, Giftköder Alarm, Gassi Community, Hundetraining App, Hunde Forum, Hunde KI, Hundefilm Datenbank, Welpen Marktplatz">

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -4,7 +4,7 @@
============================================================ */ ============================================================ */
// ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab // ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab
const VER = '1308'; const VER = '1309';
const CACHE_VERSION = `by-v${VER}`; const CACHE_VERSION = `by-v${VER}`;
const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten

View file

@ -27,9 +27,9 @@ make_cover() { # $1=subtitle $2=outfile
-kerning 7 -fill 'rgba(255,255,255,0.92)' -pointsize 60 -annotate +0+160 "$1" \ -kerning 7 -fill 'rgba(255,255,255,0.92)' -pointsize 60 -annotate +0+160 "$1" \
-quality 90 "$2" -quality 90 "$2"
} }
make_cover "DAS ALBUM · 9 SONGS" "$DIST/cover-de.jpg" make_cover "DAS ALBUM · 10 SONGS" "$DIST/cover-de.jpg"
make_cover "THE ALBUM · 9 SONGS" "$DIST/cover-en.jpg" make_cover "THE ALBUM · 10 SONGS" "$DIST/cover-en.jpg"
make_cover "NEON EDITION · 9 SONGS" "$DIST/cover-neo.jpg" make_cover "NEON EDITION · 10 SONGS" "$DIST/cover-neo.jpg"
# Eingebettetes Albumart kleiner halten (sonst blähen sich die MP3s auf) # Eingebettetes Albumart kleiner halten (sonst blähen sich die MP3s auf)
magick "$DIST/cover-de.jpg" -resize 800x800 -quality 85 "$DIST/art-de.jpg" magick "$DIST/cover-de.jpg" -resize 800x800 -quality 85 "$DIST/art-de.jpg"
magick "$DIST/cover-en.jpg" -resize 800x800 -quality 85 "$DIST/art-en.jpg" magick "$DIST/cover-en.jpg" -resize 800x800 -quality 85 "$DIST/art-en.jpg"
@ -49,6 +49,7 @@ DE_TRACKS=(
"bester-freund|Bester Freund|Du und ich" "bester-freund|Bester Freund|Du und ich"
"blauer-ball|Blauer Ball|Das Lieblingsspielzeug" "blauer-ball|Blauer Ball|Das Lieblingsspielzeug"
"mei-revier|Mei Revier!|Revier-Hymne, breitbeinig" "mei-revier|Mei Revier!|Revier-Hymne, breitbeinig"
"milow|Milow|Vorbild und bester Freund"
) )
EN_TRACKS=( EN_TRACKS=(
"ban-yaro-blues-en|Ban Yaro Blues|The anthem" "ban-yaro-blues-en|Ban Yaro Blues|The anthem"
@ -60,6 +61,7 @@ EN_TRACKS=(
"best-friend-en|Best Friend|You and me" "best-friend-en|Best Friend|You and me"
"blauer-ball-en|Blauer Ball|The favourite toy" "blauer-ball-en|Blauer Ball|The favourite toy"
"mei-revier-en|Mei Revier!|Turf anthem with attitude" "mei-revier-en|Mei Revier!|Turf anthem with attitude"
"milow-en|Milow|Role model and best friend"
) )
# „neo" = Neon Edition: gleiche EN-Texte, anderer Musikstil (Electro + Garage-Rock). # „neo" = Neon Edition: gleiche EN-Texte, anderer Musikstil (Electro + Garage-Rock).
NEO_TRACKS=( NEO_TRACKS=(
@ -72,6 +74,7 @@ NEO_TRACKS=(
"best-friend-en-electro|Best Friend|Acoustic-soul to synth" "best-friend-en-electro|Best Friend|Acoustic-soul to synth"
"blauer-ball-by|Blauer Ball|Boarisch · da blaue Boi" "blauer-ball-by|Blauer Ball|Boarisch · da blaue Boi"
"mei-revier-by|Mei Revier!|Boarisch · Gangster-Rap" "mei-revier-by|Mei Revier!|Boarisch · Gangster-Rap"
"milow-by|Milow|Boarisch · Vorbild & Freund"
) )
zip_album() { # $1=lang $2=AlbumName(ID3, Em-Dash ok) $3=Ordner(ASCII) $4=art $5=liner shift 5; rest=tracks zip_album() { # $1=lang $2=AlbumName(ID3, Em-Dash ok) $3=Ordner(ASCII) $4=art $5=liner shift 5; rest=tracks

View file

@ -1,13 +1,14 @@
================================================== ==================================================
BAN YARO — DAS ALBUM BAN YARO — DAS ALBUM
9 Songs 10 Songs
================================================== ==================================================
Neun Lieder über einen Hund namens Ban Yaro: Zehn Lieder über einen Hund namens Ban Yaro:
übers Gassigehen bei jedem Wetter, die erste Fahrt übers Gassigehen bei jedem Wetter, die erste Fahrt
im Anhänger, die große Liebe, den Friseur, den im Anhänger, die große Liebe, den Friseur, den
vollen Napf, das kühle Wasser, den besten Freund — vollen Napf, das kühle Wasser, den besten Freund,
und dazu der blaue Lieblingsball und das eigene Revier. den blauen Lieblingsball, das eigene Revier —
und den besten Nachbarn Milow.
Selbst gemacht, mit viel Herz. Aus der Ban-Yaro-App. Selbst gemacht, mit viel Herz. Aus der Ban-Yaro-App.
@ -23,6 +24,7 @@ TRACKLIST
7. Bester Freund Du und ich 7. Bester Freund Du und ich
8. Blauer Ball Das Lieblingsspielzeug 8. Blauer Ball Das Lieblingsspielzeug
9. Mei Revier! Revier-Hymne, breitbeinig 9. Mei Revier! Revier-Hymne, breitbeinig
10. Milow Vorbild und bester Freund
-------------------------------------------------- --------------------------------------------------
© 2026 Ban Yaro — Musik und Texte. Alle Rechte vorbehalten. © 2026 Ban Yaro — Musik und Texte. Alle Rechte vorbehalten.

View file

@ -1,14 +1,14 @@
================================================== ==================================================
BAN YARO — THE ALBUM BAN YARO — THE ALBUM
9 Songs 10 Songs
================================================== ==================================================
Nine songs about a dog named Ban Yaro: Ten songs about a dog named Ban Yaro:
about walks in every kind of weather, the first about walks in every kind of weather, the first
ride in the trailer, falling in love, the groomer, ride in the trailer, falling in love, the groomer,
a full bowl, cool water, the best friend a human a full bowl, cool water, the best friend a human
could ask for — plus his blue favourite ball and could ask for, his blue favourite ball, his very
his very own turf. own turf — and his best neighbor, Milow.
Homemade, with all our heart. From the Ban Yaro app. Homemade, with all our heart. From the Ban Yaro app.
@ -24,6 +24,7 @@ TRACKLIST
7. Best Friend You and me 7. Best Friend You and me
8. Blauer Ball The favourite toy 8. Blauer Ball The favourite toy
9. Mei Revier! Turf anthem with attitude 9. Mei Revier! Turf anthem with attitude
10. Milow Role model and best friend
-------------------------------------------------- --------------------------------------------------
© 2026 Ban Yaro — music and lyrics. All rights reserved. © 2026 Ban Yaro — music and lyrics. All rights reserved.

View file

@ -1,6 +1,6 @@
================================================== ==================================================
BAN YARO — NEON EDITION BAN YARO — NEON EDITION
9 Songs 10 Songs
================================================== ==================================================
The same seven Ban Yaro songs — reimagined. The same seven Ban Yaro songs — reimagined.
@ -8,8 +8,8 @@ French electronic house meets Swedish garage rock:
vocoders and four-on-the-floor, fuzzy guitars and vocoders and four-on-the-floor, fuzzy guitars and
Hammond organ. Same dog, same heart, brand-new sound. Hammond organ. Same dog, same heart, brand-new sound.
Plus two all-new tracks, sung in Bavarian dialect: Plus three all-new tracks, sung in Bavarian dialect:
the blue ball and the turf anthem. the blue ball, the turf anthem and a tribute to Milow.
Homemade, with all our heart. From the Ban Yaro app. Homemade, with all our heart. From the Ban Yaro app.
@ -25,6 +25,7 @@ TRACKLIST
7. Best Friend Acoustic-soul to synth 7. Best Friend Acoustic-soul to synth
8. Blauer Ball Boarisch · da blaue Boi 8. Blauer Ball Boarisch · da blaue Boi
9. Mei Revier! Boarisch · Gangster-Rap 9. Mei Revier! Boarisch · Gangster-Rap
10. Milow Boarisch · Vorbild & Freund
-------------------------------------------------- --------------------------------------------------
© 2026 Ban Yaro — music and lyrics. All rights reserved. © 2026 Ban Yaro — music and lyrics. All rights reserved.