Anfuehrungszeichen: 199 falsche Schlusszeichen im sichtbaren Text
Deutsch oeffnet mit „ und schliesst mit “. An 199 Stellen, die ein
Mensch liest, stand als Schlusszeichen ein GERADES " -- „Nächstes"
statt „Nächstes“. Auf sechzehn oeffentlichen Seiten, in vierzig
Dateien des Workspace und in zwoelf Servermodulen, die Texte
verschicken.
Auf dem Bildschirm sieht man den Unterschied sofort. Beim Schreiben
nicht: Das gerade " liegt auf der Tastatur, die anderen nicht.
WARUM EIN ERSTER ANLAUF ZURUECKGENOMMEN WURDE
Ein gerades " ist an vielen Stellen SYNTAX und kein Schriftzeichen --
Grenze einer Zeichenkette, Grenze eines HTML-Attributs, Zeichen in
einem regulaeren Ausdruck. Wer stumpf ersetzt, macht aus
„<a href="https://… ein kaputtes Attribut
/^["'„»\s]+|["'“«.\s]+$/ einen kaputten Ausdruck
"… nichts „mal " + "eben …" eine kaputte Zeichenkette
DIE UNTERSCHEIDUNG LAEUFT AN MERKMALEN, NICHT AN EINER LISTE
< > = dazwischen -> HTML-Marke oder Attribut
endet auf Leerzeichen -> die Zeichenkette hoert hier auf, der
Satz geht in der naechsten Zeile weiter.
Ein deutsches Schlusszeichen steht NIE
hinter einem Leerzeichen.
Rueckstrich mittendrin -> regulaerer Ausdruck
${ ohne } -> mitten in einem Ausdruck
Eine Liste erlaubter Ausnahmen waere die naechste, die niemand
pflegt. Zwoelf Stellen bleiben dadurch stehen, alle zwoelf einzeln
angesehen und alle zwoelf zu Recht -- dort steht das richtige
Schlusszeichen ohnehin weiter unten im Satz.
Fuenf davon waren allerdings ECHTE Fehler HINTER dem Link
(`…>HasiDog</a>".`) -- die erste Regel hatte nur das Attribut
gesehen, nicht den Satz danach. Gezielt nachgezogen.
Ein maskiertes `\"` in workspace-vorlagen.js (28 Hooks) wird zu “ --
ohne Rueckstrich, denn “ begrenzt nichts.
KOMMENTARE BLEIBEN, WIE SIE SIND. Dort liest es niemand ausser mir;
eine Wache, die auch Kosmetik anmahnt, wird weggeklickt. Beim ersten
Messen fielen ausserdem acht Stellen aus buehne.html faelschlich an,
weil `/* */` in HTML (in <style> und <script>) nicht ausgeblendet
war -- jetzt schon.
DIE WACHE DAZU
pruef-struktur prueft es ab sofort mit derselben Regel: 322 Dateien
mit sichtbarem Text, 0 Funde, und die zwoelf bewussten Ausnahmen
werden GEZAEHLT und genannt (erlaubt: 12). Eine Ausnahme, die niemand
sieht, waechst -- und irgendwann steht der echte Fall darin.
GEPRUEFT
pruef-struktur 59 -> 68 Pruefungen, 0 Fehler
node --check auf allen geaenderten JS-Dateien
nachgemessen: 199 geaendert, 12 mit Grund stehen geblieben
gruen geblieben: bewerbung-aufgaben 163, nachwuchs 262,
reaktion 421, support 63, content 45, terminregel 35, treff 85
Und nachgesehen, ob eine Pruefung noch die alte Schreibweise
ERWARTET: 13 Fundstellen, alle dreizehn nur Text in ihrer eigenen
Ausgabe, keine einzige ein Vergleich mit dem Seitentext.
GEGENPROBE: In reaktion.html ein Schlusszeichen zurueckgedreht ->
„workspace/reaktion.html:546 „Nächstes"", mit Datei und Zeile. Und
die Erkennung einzeln gegen HTML-Attribut, fortgesetzte
Zeichenkette, regulaeren Ausdruck und eingesetzten Wert geprueft.
Stempel gesetzt: workspace 670 Verweise in 45 Dateien, oeffentlich
554 in 48 Seiten.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -20,18 +20,18 @@ window.I18N_PAGE = {
|
||||
en: "Who is Casper?", fr: "Qui est Casper ?", pt: "Quem é o Casper?",
|
||||
},
|
||||
cas_wer_1: {
|
||||
de: `Husky Casper ist einer von DogFathers treuen Begleitern und längst Teil der Marke geworden. Zusammen mit Kater Simba gehört er zur „Familie" hinter der Kamera.`,
|
||||
"de-CH": `Husky Casper isch eine vo DogFathers treue Begleiter und scho lang Teil vo de Marke worde. Zäme mit em Kater Simba ghört er zur „Familie" hinter de Kamera.`,
|
||||
en: `Husky Casper is one of DogFather's loyal companions and has long become part of the brand. Together with cat Simba, he belongs to the „family" behind the camera.`,
|
||||
de: `Husky Casper ist einer von DogFathers treuen Begleitern und längst Teil der Marke geworden. Zusammen mit Kater Simba gehört er zur „Familie“ hinter der Kamera.`,
|
||||
"de-CH": `Husky Casper isch eine vo DogFathers treue Begleiter und scho lang Teil vo de Marke worde. Zäme mit em Kater Simba ghört er zur „Familie“ hinter de Kamera.`,
|
||||
en: `Husky Casper is one of DogFather's loyal companions and has long become part of the brand. Together with cat Simba, he belongs to the „family“ behind the camera.`,
|
||||
fr: `Le husky Casper est l'un des fidèles compagnons de DogFather et fait depuis longtemps partie de la marque. Avec le chat Simba, il fait partie de la « famille » derrière la caméra.`,
|
||||
pt: `O husky Casper é um dos fiéis companheiros de DogFather e há muito se tornou parte da marca. Junto com o gato Simba, ele faz parte da „família" por trás das câmeras.`,
|
||||
pt: `O husky Casper é um dos fiéis companheiros de DogFather e há muito se tornou parte da marca. Junto com o gato Simba, ele faz parte da „família“ por trás das câmeras.`,
|
||||
},
|
||||
cas_wer_2: {
|
||||
de: `Die gemeinsame Geschichte von DogFather und Casper gibt es sogar als Buch: <strong>„Hasidog & Casper"</strong>.`,
|
||||
"de-CH": `Die gmeinsam Gschicht vo DogFather und Casper git's sogar als Buech: <strong>„Hasidog & Casper"</strong>.`,
|
||||
en: `The shared story of DogFather and Casper even exists as a book: <strong>„Hasidog & Casper"</strong>.`,
|
||||
de: `Die gemeinsame Geschichte von DogFather und Casper gibt es sogar als Buch: <strong>„Hasidog & Casper“</strong>.`,
|
||||
"de-CH": `Die gmeinsam Gschicht vo DogFather und Casper git's sogar als Buech: <strong>„Hasidog & Casper“</strong>.`,
|
||||
en: `The shared story of DogFather and Casper even exists as a book: <strong>„Hasidog & Casper“</strong>.`,
|
||||
fr: `L'histoire commune de DogFather et Casper existe même sous forme de livre : <strong>« Hasidog & Casper »</strong>.`,
|
||||
pt: `A história compartilhada de DogFather e Casper existe até em forma de livro: <strong>„Hasidog & Casper"</strong>.`,
|
||||
pt: `A história compartilhada de DogFather e Casper existe até em forma de livro: <strong>„Hasidog & Casper“</strong>.`,
|
||||
},
|
||||
cas_story_h2: {
|
||||
de: "Casper – Ein Husky mit dem größten Herzen der Welt 🐾🩵",
|
||||
|
||||
@@ -21,11 +21,11 @@ window.I18N_PAGE = {
|
||||
en: "More Than Followers", fr: "Plus que des followers", pt: "Mais do que seguidores",
|
||||
},
|
||||
com_mehr_1: {
|
||||
de: `Team Dogi soll niemals nur „DogFather und Follower" sein, sondern eine echte Gemeinschaft. Jeder verdient Spotlight 🩵`,
|
||||
"de-CH": `Team Dogi söll niemals nur „DogFather und Follower" si, sondern e echti Gmeinschaft. Jede verdient Spotlight 🩵`,
|
||||
en: `Team Dogi should never be just „DogFather and followers", but a real community. Everyone deserves the spotlight 🩵`,
|
||||
de: `Team Dogi soll niemals nur „DogFather und Follower“ sein, sondern eine echte Gemeinschaft. Jeder verdient Spotlight 🩵`,
|
||||
"de-CH": `Team Dogi söll niemals nur „DogFather und Follower“ si, sondern e echti Gmeinschaft. Jede verdient Spotlight 🩵`,
|
||||
en: `Team Dogi should never be just „DogFather and followers“, but a real community. Everyone deserves the spotlight 🩵`,
|
||||
fr: `Team Dogi ne doit jamais être seulement « DogFather et ses followers », mais une véritable communauté. Chacun mérite sa place sous les projecteurs 🩵`,
|
||||
pt: `Team Dogi nunca deve ser apenas „DogFather e seguidores", mas sim uma comunidade de verdade. Todo mundo merece seu momento de destaque 🩵`,
|
||||
pt: `Team Dogi nunca deve ser apenas „DogFather e seguidores“, mas sim uma comunidade de verdade. Todo mundo merece seu momento de destaque 🩵`,
|
||||
},
|
||||
com_mehr_2: {
|
||||
de: "Discord ist das Community-Zentrum — hier trifft man sich, tauscht sich aus und ist Teil des Alltags von Team Dogi.",
|
||||
|
||||
@@ -237,11 +237,11 @@ window.I18N_PAGE = {
|
||||
en: "Side Projects & Passions", fr: "Projets annexes et passions", pt: "Projetos paralelos e paixões",
|
||||
},
|
||||
df_neben_1: {
|
||||
de: `Eigene Songs und kreative Musikprojekte unter dem Namen „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>".`,
|
||||
"de-CH": `Eigeni Songs und kreativi Musikprojekt under em Name „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>".`,
|
||||
en: `Own songs and creative music projects under the name „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>".`,
|
||||
de: `Eigene Songs und kreative Musikprojekte unter dem Namen „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>“.`,
|
||||
"de-CH": `Eigeni Songs und kreativi Musikprojekt under em Name „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>“.`,
|
||||
en: `Own songs and creative music projects under the name „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>“.`,
|
||||
fr: `Chansons personnelles et projets musicaux créatifs sous le nom « <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a> ».`,
|
||||
pt: `Músicas próprias e projetos musicais criativos sob o nome „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>".`,
|
||||
pt: `Músicas próprias e projetos musicais criativos sob o nome „<a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">HasiDog</a>“.`,
|
||||
},
|
||||
df_neben_2: {
|
||||
de: "Eigene Ideen für Tassen, Decken, Popsockets, Schlüsselanhänger, Sticker und weitere Produkte.",
|
||||
|
||||
@@ -22,8 +22,8 @@ window.I18N_PAGE = {
|
||||
en: "Who is HasiDog?", fr: "Qui est HasiDog ?", pt: "Quem é o HasiDog?",
|
||||
},
|
||||
hd_was_1: {
|
||||
de: `HasiDog ist mehr als ein Spitzname — es ist die verspielte, familiäre Marke rund um DogFathers Community. Unter dem Namen „Hasidog" erscheint auch die eigene Musik auf <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a>.`,
|
||||
"de-CH": `HasiDog isch meh als en Spitzname — es isch die verspielt, familiäri Marke rund um DogFathers Community. Under em Name „Hasidog" chunt au eigeni Musig uf <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a> use.`,
|
||||
de: `HasiDog ist mehr als ein Spitzname — es ist die verspielte, familiäre Marke rund um DogFathers Community. Unter dem Namen „Hasidog“ erscheint auch die eigene Musik auf <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a>.`,
|
||||
"de-CH": `HasiDog isch meh als en Spitzname — es isch die verspielt, familiäri Marke rund um DogFathers Community. Under em Name „Hasidog“ chunt au eigeni Musig uf <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a> use.`,
|
||||
en: `HasiDog is more than a nickname — it's the playful, close-knit brand around DogFather's community. Original music also appears under the name "Hasidog" on <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a>.`,
|
||||
fr: `HasiDog est bien plus qu'un surnom — c'est la marque ludique et familiale qui entoure la communauté de DogFather. Sous le nom « Hasidog » sort aussi une musique originale sur <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a>.`,
|
||||
pt: `HasiDog é mais do que um apelido — é a marca divertida e familiar em torno da comunidade do DogFather. Sob o nome "Hasidog" também sai música original no <a href="https://open.spotify.com/intl-de/artist/2INiE1VVJGUQdEURsltuJU" target="_blank" rel="noopener">Spotify</a>.`,
|
||||
@@ -394,7 +394,7 @@ window.I18N_PAGE = {
|
||||
},
|
||||
|
||||
hd_schlaf_h2: {
|
||||
de: `„Schlaft schön." 🩵`, "de-CH": `„Schlafed schön." 🩵`,
|
||||
de: `„Schlaft schön.“ 🩵`, "de-CH": `„Schlafed schön.“ 🩵`,
|
||||
en: `"Sleep well." 🩵`, fr: `« Faites de beaux rêves. » 🩵`, pt: `"Durmam bem." 🩵`,
|
||||
},
|
||||
hd_schlaf_lead: {
|
||||
@@ -416,7 +416,7 @@ window.I18N_PAGE = {
|
||||
en: "🐺 Casper", fr: "🐺 Casper", pt: "🐺 Casper",
|
||||
},
|
||||
hd_familie_h3_buch: {
|
||||
de: `📖 Das Buch — „HasiDog & Casper"`, "de-CH": `📖 S Buech — „HasiDog & Casper"`,
|
||||
de: `📖 Das Buch — „HasiDog & Casper“`, "de-CH": `📖 S Buech — „HasiDog & Casper“`,
|
||||
en: `📖 The book — "HasiDog & Casper"`, fr: `📖 Le livre — « HasiDog & Casper »`, pt: `📖 O livro — "HasiDog & Casper"`,
|
||||
},
|
||||
hd_familie_h3_com: {
|
||||
|
||||
@@ -230,7 +230,7 @@ window.I18N_PAGE = {
|
||||
en: "November 2025", fr: "Novembre 2025", pt: "Novembro de 2025",
|
||||
},
|
||||
zr_ev13_h3: {
|
||||
de: `Das Buch „HasiDog & Casper"`, "de-CH": `Ds Buech „HasiDog & Casper"`,
|
||||
de: `Das Buch „HasiDog & Casper“`, "de-CH": `Ds Buech „HasiDog & Casper“`,
|
||||
en: `The Book "HasiDog & Casper"`, fr: `Le livre « HasiDog & Casper »`, pt: `O livro "HasiDog & Casper"`,
|
||||
},
|
||||
zr_ev13_p: {
|
||||
|
||||
@@ -863,7 +863,7 @@
|
||||
Stand haben. Die Nummer wird zusammen mit CACHE_NAME in sw.js
|
||||
hochgezaehlt -- beide gehoeren zusammen. */
|
||||
navigator.serviceWorker
|
||||
.register("/webdesign/sw.js?v=202609301254", { scope: "/webdesign/" })
|
||||
.register("/webdesign/sw.js?v=202610010152", { scope: "/webdesign/" })
|
||||
.catch(function () { /* still schlucken: ohne SW funktioniert alles weiter */ });
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user